@splinetool/loader 0.9.28 → 0.9.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/SplineLoader.js +1 -1
- package/package.json +1 -1
package/build/SplineLoader.js
CHANGED
|
@@ -17,7 +17,7 @@ __p += '`),nt&&(ie+=`' +
|
|
|
17
17
|
function print() { __p += __j.call(arguments, '') }
|
|
18
18
|
`:`;
|
|
19
19
|
`)+ie+`return __p
|
|
20
|
-
}`;var Je=ug(function(){return lt(v,Le+"return "+ie).apply(i,N)});if(Je.source=ie,Hf(Je))throw Je;return Je}function t_(o){return ut(o).toLowerCase()}function r_(o){return ut(o).toUpperCase()}function n_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(tt,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=Tn(a),v=Sp(d,m),N=wp(d,m)+1;return Bi(d,v,N).join("")}function i_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(mt,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=wp(d,Tn(a))+1;return Bi(d,0,m).join("")}function o_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(at,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=Sp(d,Tn(a));return Bi(d,m).join("")}function s_(o,a){var u=E,d=b;if(Dt(a)){var m="separator"in a?a.separator:m;u="length"in a?We(a.length):u,d="omission"in a?qr(a.omission):d}o=ut(o);var v=o.length;if(Fo(o)){var N=Tn(o);v=N.length}if(u>=v)return o;var L=u-Vo(d);if(L<1)return d;var M=N?Bi(N,0,L).join(""):o.slice(0,L);if(m===i)return M+d;if(N&&(L+=M.length-L),Wf(m)){if(o.slice(L).search(m)){var Q,te=M;for(m.global||(m=af(m.source,ut(_n.exec(m))+"g")),m.lastIndex=0;Q=m.exec(te);)var ie=Q.index;M=M.slice(0,ie===i?L:ie)}}else if(o.indexOf(qr(m),L)!=L){var me=M.lastIndexOf(m);me>-1&&(M=M.slice(0,me))}return M+d}function a_(o){return o=ut(o),o&&jo.test(o)?o.replace(no,jS):o}var l_=$o(function(o,a,u){return o+(u?" ":"")+a.toUpperCase()}),Jf=fm("toUpperCase");function cg(o,a,u){return o=ut(o),a=u?i:a,a===i?OS(o)?zS(o):wS(o):o.match(a)||[]}var ug=Ze(function(o,a){try{return Hr(o,i,a)}catch(u){return Hf(u)?u:new Ue(u)}}),c_=li(function(o,a){return sn(a,function(u){u=Un(u),si(o,u,Uf(o[u],o))}),o});function u_(o){var a=o==null?0:o.length,u=De();return o=a?Ot(o,function(d){if(typeof d[1]!="function")throw new an(n);return[u(d[0]),d[1]]}):[],Ze(function(d){for(var m=-1;++m<a;){var v=o[m];if(Hr(v[0],this,d))return Hr(v[1],this,d)}})}function f_(o){return jw(cn(o,f))}function Kf(o){return function(){return o}}function h_(o,a){return o==null||o!==o?a:o}var d_=dm(),p_=dm(!0);function Br(o){return o}function Xf(o){return kp(typeof o=="function"?o:cn(o,f))}function m_(o){return Wp(cn(o,f))}function g_(o,a){return qp(o,cn(a,f))}var y_=Ze(function(o,a){return function(u){return Qs(u,o,a)}}),x_=Ze(function(o,a){return function(u){return Qs(o,u,a)}});function Zf(o,a,u){var d=nr(a),m=wl(a,d);u==null&&!(Dt(a)&&(m.length||!d.length))&&(u=a,a=o,o=this,m=wl(a,nr(a)));var v=!(Dt(u)&&"chain"in u)||!!u.chain,N=ui(o);return sn(m,function(L){var M=a[L];o[L]=M,N&&(o.prototype[L]=function(){var Q=this.__chain__;if(v||Q){var te=o(this.__wrapped__),ie=te.__actions__=Or(this.__actions__);return ie.push({func:M,args:arguments,thisArg:o}),te.__chain__=Q,te}return M.apply(o,Ti([this.value()],arguments))})}),o}function v_(){return rr._===this&&(rr._=WS),this}function Yf(){}function b_(o){return o=We(o),Ze(function(a){return $p(a,o)})}var S_=Mf(Ot),w_=Mf(gp),N_=Mf(Qu);function fg(o){return jf(o)?ef(Un(o)):Qw(o)}function C_(o){return function(a){return o==null?i:fo(o,a)}}var L_=mm(),__=mm(!0);function Qf(){return[]}function eh(){return!1}function T_(){return{}}function I_(){return""}function M_(){return!0}function A_(o,a){if(o=We(o),o<1||o>re)return[];var u=Me,d=pr(o,Me);a=De(a),o-=Me;for(var m=nf(d,a);++u<o;)a(u);return m}function O_(o){return ke(o)?Ot(o,Un):$r(o)?[o]:Or(Om(ut(o)))}function P_(o){var a=++kS;return ut(o)+a}var D_=Il(function(o,a){return o+a},0),B_=Af("ceil"),G_=Il(function(o,a){return o/a},1),j_=Af("floor");function E_(o){return o&&o.length?Sl(o,Br,mf):i}function R_(o,a){return o&&o.length?Sl(o,De(a,2),mf):i}function z_(o){return vp(o,Br)}function F_(o,a){return vp(o,De(a,2))}function V_(o){return o&&o.length?Sl(o,Br,vf):i}function U_(o,a){return o&&o.length?Sl(o,De(a,2),vf):i}var k_=Il(function(o,a){return o*a},1),H_=Af("round"),W_=Il(function(o,a){return o-a},0);function q_(o){return o&&o.length?rf(o,Br):0}function $_(o,a){return o&&o.length?rf(o,De(a,2)):0}return x.after=mC,x.ary=Um,x.assign=rL,x.assignIn=rg,x.assignInWith=Vl,x.assignWith=nL,x.at=iL,x.before=km,x.bind=Uf,x.bindAll=c_,x.bindKey=Hm,x.castArray=TC,x.chain=zm,x.chunk=j1,x.compact=E1,x.concat=R1,x.cond=u_,x.conforms=f_,x.constant=Kf,x.countBy=qN,x.create=oL,x.curry=Wm,x.curryRight=qm,x.debounce=$m,x.defaults=sL,x.defaultsDeep=aL,x.defer=gC,x.delay=yC,x.difference=z1,x.differenceBy=F1,x.differenceWith=V1,x.drop=U1,x.dropRight=k1,x.dropRightWhile=H1,x.dropWhile=W1,x.fill=q1,x.filter=JN,x.flatMap=ZN,x.flatMapDeep=YN,x.flatMapDepth=QN,x.flatten=Gm,x.flattenDeep=$1,x.flattenDepth=J1,x.flip=xC,x.flow=d_,x.flowRight=p_,x.fromPairs=K1,x.functions=pL,x.functionsIn=mL,x.groupBy=eC,x.initial=Z1,x.intersection=Y1,x.intersectionBy=Q1,x.intersectionWith=eN,x.invert=yL,x.invertBy=xL,x.invokeMap=rC,x.iteratee=Xf,x.keyBy=nC,x.keys=nr,x.keysIn=Dr,x.map=Gl,x.mapKeys=bL,x.mapValues=SL,x.matches=m_,x.matchesProperty=g_,x.memoize=El,x.merge=wL,x.mergeWith=ng,x.method=y_,x.methodOf=x_,x.mixin=Zf,x.negate=Rl,x.nthArg=b_,x.omit=NL,x.omitBy=CL,x.once=vC,x.orderBy=iC,x.over=S_,x.overArgs=bC,x.overEvery=w_,x.overSome=N_,x.partial=kf,x.partialRight=Jm,x.partition=oC,x.pick=LL,x.pickBy=ig,x.property=fg,x.propertyOf=C_,x.pull=iN,x.pullAll=Em,x.pullAllBy=oN,x.pullAllWith=sN,x.pullAt=aN,x.range=L_,x.rangeRight=__,x.rearg=SC,x.reject=lC,x.remove=lN,x.rest=wC,x.reverse=Ff,x.sampleSize=uC,x.set=TL,x.setWith=IL,x.shuffle=fC,x.slice=cN,x.sortBy=pC,x.sortedUniq=gN,x.sortedUniqBy=yN,x.split=ZL,x.spread=NC,x.tail=xN,x.take=vN,x.takeRight=bN,x.takeRightWhile=SN,x.takeWhile=wN,x.tap=EN,x.throttle=CC,x.thru=Bl,x.toArray=Qm,x.toPairs=og,x.toPairsIn=sg,x.toPath=O_,x.toPlainObject=tg,x.transform=ML,x.unary=LC,x.union=NN,x.unionBy=CN,x.unionWith=LN,x.uniq=_N,x.uniqBy=TN,x.uniqWith=IN,x.unset=AL,x.unzip=Vf,x.unzipWith=Rm,x.update=OL,x.updateWith=PL,x.values=Xo,x.valuesIn=DL,x.without=MN,x.words=cg,x.wrap=_C,x.xor=AN,x.xorBy=ON,x.xorWith=PN,x.zip=DN,x.zipObject=BN,x.zipObjectDeep=GN,x.zipWith=jN,x.entries=og,x.entriesIn=sg,x.extend=rg,x.extendWith=Vl,Zf(x,x),x.add=D_,x.attempt=ug,x.camelCase=EL,x.capitalize=ag,x.ceil=B_,x.clamp=BL,x.clone=IC,x.cloneDeep=AC,x.cloneDeepWith=OC,x.cloneWith=MC,x.conformsTo=PC,x.deburr=lg,x.defaultTo=h_,x.divide=G_,x.endsWith=RL,x.eq=Mn,x.escape=zL,x.escapeRegExp=FL,x.every=$N,x.find=KN,x.findIndex=Dm,x.findKey=lL,x.findLast=XN,x.findLastIndex=Bm,x.findLastKey=cL,x.floor=j_,x.forEach=Fm,x.forEachRight=Vm,x.forIn=uL,x.forInRight=fL,x.forOwn=hL,x.forOwnRight=dL,x.get=qf,x.gt=DC,x.gte=BC,x.has=gL,x.hasIn=$f,x.head=jm,x.identity=Br,x.includes=tC,x.indexOf=X1,x.inRange=GL,x.invoke=vL,x.isArguments=mo,x.isArray=ke,x.isArrayBuffer=GC,x.isArrayLike=Pr,x.isArrayLikeObject=zt,x.isBoolean=jC,x.isBuffer=Gi,x.isDate=EC,x.isElement=RC,x.isEmpty=zC,x.isEqual=FC,x.isEqualWith=VC,x.isError=Hf,x.isFinite=UC,x.isFunction=ui,x.isInteger=Km,x.isLength=zl,x.isMap=Xm,x.isMatch=kC,x.isMatchWith=HC,x.isNaN=WC,x.isNative=qC,x.isNil=JC,x.isNull=$C,x.isNumber=Zm,x.isObject=Dt,x.isObjectLike=Gt,x.isPlainObject=oa,x.isRegExp=Wf,x.isSafeInteger=KC,x.isSet=Ym,x.isString=Fl,x.isSymbol=$r,x.isTypedArray=Ko,x.isUndefined=XC,x.isWeakMap=ZC,x.isWeakSet=YC,x.join=tN,x.kebabCase=VL,x.last=fn,x.lastIndexOf=rN,x.lowerCase=UL,x.lowerFirst=kL,x.lt=QC,x.lte=eL,x.max=E_,x.maxBy=R_,x.mean=z_,x.meanBy=F_,x.min=V_,x.minBy=U_,x.stubArray=Qf,x.stubFalse=eh,x.stubObject=T_,x.stubString=I_,x.stubTrue=M_,x.multiply=k_,x.nth=nN,x.noConflict=v_,x.noop=Yf,x.now=jl,x.pad=HL,x.padEnd=WL,x.padStart=qL,x.parseInt=$L,x.random=jL,x.reduce=sC,x.reduceRight=aC,x.repeat=JL,x.replace=KL,x.result=_L,x.round=H_,x.runInContext=P,x.sample=cC,x.size=hC,x.snakeCase=XL,x.some=dC,x.sortedIndex=uN,x.sortedIndexBy=fN,x.sortedIndexOf=hN,x.sortedLastIndex=dN,x.sortedLastIndexBy=pN,x.sortedLastIndexOf=mN,x.startCase=YL,x.startsWith=QL,x.subtract=W_,x.sum=q_,x.sumBy=$_,x.template=e_,x.times=A_,x.toFinite=fi,x.toInteger=We,x.toLength=eg,x.toLower=t_,x.toNumber=hn,x.toSafeInteger=tL,x.toString=ut,x.toUpper=r_,x.trim=n_,x.trimEnd=i_,x.trimStart=o_,x.truncate=s_,x.unescape=a_,x.uniqueId=P_,x.upperCase=l_,x.upperFirst=Jf,x.each=Fm,x.eachRight=Vm,x.first=jm,Zf(x,function(){var o={};return Fn(x,function(a,u){dt.call(x.prototype,u)||(o[u]=a)}),o}(),{chain:!1}),x.VERSION=e,sn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){x[o].placeholder=x}),sn(["drop","take"],function(o,a){rt.prototype[o]=function(u){u=u===i?1:Xt(We(u),0);var d=this.__filtered__&&!a?new rt(this):this.clone();return d.__filtered__?d.__takeCount__=pr(u,d.__takeCount__):d.__views__.push({size:pr(u,Me),type:o+(d.__dir__<0?"Right":"")}),d},rt.prototype[o+"Right"]=function(u){return this.reverse()[o](u).reverse()}}),sn(["filter","map","takeWhile"],function(o,a){var u=a+1,d=u==z||u==$;rt.prototype[o]=function(m){var v=this.clone();return v.__iteratees__.push({iteratee:De(m,3),type:u}),v.__filtered__=v.__filtered__||d,v}}),sn(["head","last"],function(o,a){var u="take"+(a?"Right":"");rt.prototype[o]=function(){return this[u](1).value()[0]}}),sn(["initial","tail"],function(o,a){var u="drop"+(a?"":"Right");rt.prototype[o]=function(){return this.__filtered__?new rt(this):this[u](1)}}),rt.prototype.compact=function(){return this.filter(Br)},rt.prototype.find=function(o){return this.filter(o).head()},rt.prototype.findLast=function(o){return this.reverse().find(o)},rt.prototype.invokeMap=Ze(function(o,a){return typeof o=="function"?new rt(this):this.map(function(u){return Qs(u,o,a)})}),rt.prototype.reject=function(o){return this.filter(Rl(De(o)))},rt.prototype.slice=function(o,a){o=We(o);var u=this;return u.__filtered__&&(o>0||a<0)?new rt(u):(o<0?u=u.takeRight(-o):o&&(u=u.drop(o)),a!==i&&(a=We(a),u=a<0?u.dropRight(-a):u.take(a-o)),u)},rt.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},rt.prototype.toArray=function(){return this.take(Me)},Fn(rt.prototype,function(o,a){var u=/^(?:filter|find|map|reject)|While$/.test(a),d=/^(?:head|last)$/.test(a),m=x[d?"take"+(a=="last"?"Right":""):a],v=d||/^find/.test(a);!m||(x.prototype[a]=function(){var N=this.__wrapped__,L=d?[1]:arguments,M=N instanceof rt,Q=L[0],te=M||ke(N),ie=function(et){var nt=m.apply(x,Ti([et],L));return d&&me?nt[0]:nt};te&&u&&typeof Q=="function"&&Q.length!=1&&(M=te=!1);var me=this.__chain__,Le=!!this.__actions__.length,Re=v&&!me,Je=M&&!Le;if(!v&&te){N=Je?N:new rt(this);var je=o.apply(N,L);return je.__actions__.push({func:Bl,args:[ie],thisArg:i}),new ln(je,me)}return Re&&Je?o.apply(this,L):(je=this.thru(ie),Re?d?je.value()[0]:je.value():je)})}),sn(["pop","push","shift","sort","splice","unshift"],function(o){var a=sl[o],u=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",d=/^(?:pop|shift)$/.test(o);x.prototype[o]=function(){var m=arguments;if(d&&!this.__chain__){var v=this.value();return a.apply(ke(v)?v:[],m)}return this[u](function(N){return a.apply(ke(N)?N:[],m)})}}),Fn(rt.prototype,function(o,a){var u=x[a];if(u){var d=u.name+"";dt.call(Ho,d)||(Ho[d]=[]),Ho[d].push({name:a,func:u})}}),Ho[Tl(i,S).name]=[{name:"wrapper",func:i}],rt.prototype.clone=aw,rt.prototype.reverse=lw,rt.prototype.value=cw,x.prototype.at=RN,x.prototype.chain=zN,x.prototype.commit=FN,x.prototype.next=VN,x.prototype.plant=kN,x.prototype.reverse=HN,x.prototype.toJSON=x.prototype.valueOf=x.prototype.value=WN,x.prototype.first=x.prototype.head,qs&&(x.prototype[qs]=UN),x},Mi=FS();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(rr._=Mi,define(function(){return Mi})):so?((so.exports=Mi)._=Mi,Ku._=Mi):rr._=Mi}).call(Hs)});import{FileLoader as _B,Loader as TB}from"three";function yg(i){return Array.isArray(i)?i:[i]}var nT=typeof global=="object"&&global&&global.Object===Object&&global,Ul=nT;var iT=typeof self=="object"&&self&&self.Object===Object&&self,oT=Ul||iT||Function("return this")(),qt=oT;var sT=qt.Symbol,Nr=sT;var xg=Object.prototype,aT=xg.hasOwnProperty,lT=xg.toString,aa=Nr?Nr.toStringTag:void 0;function cT(i){var e=aT.call(i,aa),t=i[aa];try{i[aa]=void 0;var r=!0}catch(s){}var n=lT.call(i);return r&&(e?i[aa]=t:delete i[aa]),n}var vg=cT;var uT=Object.prototype,fT=uT.toString;function hT(i){return fT.call(i)}var bg=hT;var dT="[object Null]",pT="[object Undefined]",Sg=Nr?Nr.toStringTag:void 0;function mT(i){return i==null?i===void 0?pT:dT:Sg&&Sg in Object(i)?vg(i):bg(i)}var Xr=mT;function gT(i){return i!=null&&typeof i=="object"}var gr=gT;var yT="[object Symbol]";function xT(i){return typeof i=="symbol"||gr(i)&&Xr(i)==yT}var Zo=xT;function vT(i,e){for(var t=-1,r=i==null?0:i.length,n=Array(r);++t<r;)n[t]=e(i[t],t,i);return n}var kl=vT;var bT=Array.isArray,cr=bT;var ST=1/0,wg=Nr?Nr.prototype:void 0,Ng=wg?wg.toString:void 0;function Cg(i){if(typeof i=="string")return i;if(cr(i))return kl(i,Cg)+"";if(Zo(i))return Ng?Ng.call(i):"";var e=i+"";return e=="0"&&1/i==-ST?"-0":e}var Lg=Cg;function wT(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var yr=wT;function NT(i){return i}var Hl=NT;var CT="[object AsyncFunction]",LT="[object Function]",_T="[object GeneratorFunction]",TT="[object Proxy]";function IT(i){if(!yr(i))return!1;var e=Xr(i);return e==LT||e==_T||e==CT||e==TT}var Yo=IT;var MT=qt["__core-js_shared__"],Wl=MT;var _g=function(){var i=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function AT(i){return!!_g&&_g in i}var Tg=AT;var OT=Function.prototype,PT=OT.toString;function DT(i){if(i!=null){try{return PT.call(i)}catch(e){}try{return i+""}catch(e){}}return""}var di=DT;var BT=/[\\^$.*+?()[\]{}|]/g,GT=/^\[object .+?Constructor\]$/,jT=Function.prototype,ET=Object.prototype,RT=jT.toString,zT=ET.hasOwnProperty,FT=RegExp("^"+RT.call(zT).replace(BT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function VT(i){if(!yr(i)||Tg(i))return!1;var e=Yo(i)?FT:GT;return e.test(di(i))}var Ig=VT;function UT(i,e){return i==null?void 0:i[e]}var Mg=UT;function kT(i,e){var t=Mg(i,e);return Ig(t)?t:void 0}var Gr=kT;var HT=Gr(qt,"WeakMap"),ql=HT;var Ag=Object.create,WT=function(){function i(){}return function(e){if(!yr(e))return{};if(Ag)return Ag(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),Og=WT;function qT(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var Pg=qT;function $T(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var $l=$T;var JT=800,KT=16,XT=Date.now;function ZT(i){var e=0,t=0;return function(){var r=XT(),n=KT-(r-t);if(t=r,n>0){if(++e>=JT)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var Dg=ZT;function YT(i){return function(){return i}}var Bg=YT;var QT=function(){try{var i=Gr(Object,"defineProperty");return i({},"",{}),i}catch(e){}}(),Qo=QT;var eI=Qo?function(i,e){return Qo(i,"toString",{configurable:!0,enumerable:!1,value:Bg(e),writable:!0})}:Hl,Gg=eI;var tI=Dg(Gg),Jl=tI;function rI(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var jg=rI;var nI=9007199254740991,iI=/^(?:0|[1-9]\d*)$/;function oI(i,e){var t=typeof i;return e=e==null?nI:e,!!e&&(t=="number"||t!="symbol"&&iI.test(i))&&i>-1&&i%1==0&&i<e}var Kl=oI;function sI(i,e,t){e=="__proto__"&&Qo?Qo(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var es=sI;function aI(i,e){return i===e||i!==i&&e!==e}var ji=aI;var lI=Object.prototype,cI=lI.hasOwnProperty;function uI(i,e,t){var r=i[e];(!(cI.call(i,e)&&ji(r,t))||t===void 0&&!(e in i))&&es(i,e,t)}var Xl=uI;function fI(i,e,t,r){var n=!t;t||(t={});for(var s=-1,l=e.length;++s<l;){var c=e[s],f=r?r(t[c],i[c],c,t,i):void 0;f===void 0&&(f=i[c]),n?es(t,c,f):Xl(t,c,f)}return t}var dn=fI;var Eg=Math.max;function hI(i,e,t){return e=Eg(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=Eg(r.length-e,0),l=Array(s);++n<s;)l[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=t(l),Pg(i,this,c)}}var Zl=hI;function dI(i,e){return Jl(Zl(i,e,Hl),i+"")}var Rg=dI;var pI=9007199254740991;function mI(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=pI}var Yl=mI;function gI(i){return i!=null&&Yl(i.length)&&!Yo(i)}var Ei=gI;function yI(i,e,t){if(!yr(t))return!1;var r=typeof e;return(r=="number"?Ei(t)&&Kl(e,t.length):r=="string"&&e in t)?ji(t[e],i):!1}var zg=yI;function xI(i){return Rg(function(e,t){var r=-1,n=t.length,s=n>1?t[n-1]:void 0,l=n>2?t[2]:void 0;for(s=i.length>3&&typeof s=="function"?(n--,s):void 0,l&&zg(t[0],t[1],l)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=t[r];c&&i(e,c,r,s)}return e})}var Fg=xI;var vI=Object.prototype;function bI(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||vI;return i===t}var ts=bI;function SI(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Vg=SI;var wI="[object Arguments]";function NI(i){return gr(i)&&Xr(i)==wI}var nh=NI;var Ug=Object.prototype,CI=Ug.hasOwnProperty,LI=Ug.propertyIsEnumerable,_I=nh(function(){return arguments}())?nh:function(i){return gr(i)&&CI.call(i,"callee")&&!LI.call(i,"callee")},go=_I;function TI(){return!1}var kg=TI;var Hg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wg=Hg&&typeof module=="object"&&module&&!module.nodeType&&module,II=Wg&&Wg.exports===Hg,qg=II?qt.Buffer:void 0,MI=qg?qg.isBuffer:void 0,AI=MI||kg,rs=AI;var OI="[object Arguments]",PI="[object Array]",DI="[object Boolean]",BI="[object Date]",GI="[object Error]",jI="[object Function]",EI="[object Map]",RI="[object Number]",zI="[object Object]",FI="[object RegExp]",VI="[object Set]",UI="[object String]",kI="[object WeakMap]",HI="[object ArrayBuffer]",WI="[object DataView]",qI="[object Float32Array]",$I="[object Float64Array]",JI="[object Int8Array]",KI="[object Int16Array]",XI="[object Int32Array]",ZI="[object Uint8Array]",YI="[object Uint8ClampedArray]",QI="[object Uint16Array]",eM="[object Uint32Array]",Tt={};Tt[qI]=Tt[$I]=Tt[JI]=Tt[KI]=Tt[XI]=Tt[ZI]=Tt[YI]=Tt[QI]=Tt[eM]=!0;Tt[OI]=Tt[PI]=Tt[HI]=Tt[DI]=Tt[WI]=Tt[BI]=Tt[GI]=Tt[jI]=Tt[EI]=Tt[RI]=Tt[zI]=Tt[FI]=Tt[VI]=Tt[UI]=Tt[kI]=!1;function tM(i){return gr(i)&&Yl(i.length)&&!!Tt[Xr(i)]}var $g=tM;function rM(i){return function(e){return i(e)}}var ns=rM;var Jg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,la=Jg&&typeof module=="object"&&module&&!module.nodeType&&module,nM=la&&la.exports===Jg,ih=nM&&Ul.process,iM=function(){try{var i=la&&la.require&&la.require("util").types;return i||ih&&ih.binding&&ih.binding("util")}catch(e){}}(),pi=iM;var Kg=pi&&pi.isTypedArray,oM=Kg?ns(Kg):$g,Ql=oM;var sM=Object.prototype,aM=sM.hasOwnProperty;function lM(i,e){var t=cr(i),r=!t&&go(i),n=!t&&!r&&rs(i),s=!t&&!r&&!n&&Ql(i),l=t||r||n||s,c=l?Vg(i.length,String):[],f=c.length;for(var h in i)(e||aM.call(i,h))&&!(l&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Kl(h,f)))&&c.push(h);return c}var ec=lM;function cM(i,e){return function(t){return i(e(t))}}var tc=cM;var uM=tc(Object.keys,Object),Xg=uM;var fM=Object.prototype,hM=fM.hasOwnProperty;function dM(i){if(!ts(i))return Xg(i);var e=[];for(var t in Object(i))hM.call(i,t)&&t!="constructor"&&e.push(t);return e}var Zg=dM;function pM(i){return Ei(i)?ec(i):Zg(i)}var is=pM;function mM(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var Yg=mM;var gM=Object.prototype,yM=gM.hasOwnProperty;function xM(i){if(!yr(i))return Yg(i);var e=ts(i),t=[];for(var r in i)r=="constructor"&&(e||!yM.call(i,r))||t.push(r);return t}var Qg=xM;function vM(i){return Ei(i)?ec(i,!0):Qg(i)}var kn=vM;var bM=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,SM=/^\w*$/;function wM(i,e){if(cr(i))return!1;var t=typeof i;return t=="number"||t=="symbol"||t=="boolean"||i==null||Zo(i)?!0:SM.test(i)||!bM.test(i)||e!=null&&i in Object(e)}var ey=wM;var NM=Gr(Object,"create"),mi=NM;function CM(){this.__data__=mi?mi(null):{},this.size=0}var ty=CM;function LM(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var ry=LM;var _M="__lodash_hash_undefined__",TM=Object.prototype,IM=TM.hasOwnProperty;function MM(i){var e=this.__data__;if(mi){var t=e[i];return t===_M?void 0:t}return IM.call(e,i)?e[i]:void 0}var ny=MM;var AM=Object.prototype,OM=AM.hasOwnProperty;function PM(i){var e=this.__data__;return mi?e[i]!==void 0:OM.call(e,i)}var iy=PM;var DM="__lodash_hash_undefined__";function BM(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=mi&&e===void 0?DM:e,this}var oy=BM;function os(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}os.prototype.clear=ty;os.prototype.delete=ry;os.prototype.get=ny;os.prototype.has=iy;os.prototype.set=oy;var oh=os;function GM(){this.__data__=[],this.size=0}var sy=GM;function jM(i,e){for(var t=i.length;t--;)if(ji(i[t][0],e))return t;return-1}var Ri=jM;var EM=Array.prototype,RM=EM.splice;function zM(i){var e=this.__data__,t=Ri(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():RM.call(e,t,1),--this.size,!0}var ay=zM;function FM(i){var e=this.__data__,t=Ri(e,i);return t<0?void 0:e[t][1]}var ly=FM;function VM(i){return Ri(this.__data__,i)>-1}var cy=VM;function UM(i,e){var t=this.__data__,r=Ri(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var uy=UM;function ss(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}ss.prototype.clear=sy;ss.prototype.delete=ay;ss.prototype.get=ly;ss.prototype.has=cy;ss.prototype.set=uy;var zi=ss;var kM=Gr(qt,"Map"),Fi=kM;function HM(){this.size=0,this.__data__={hash:new oh,map:new(Fi||zi),string:new oh}}var fy=HM;function WM(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var hy=WM;function qM(i,e){var t=i.__data__;return hy(e)?t[typeof e=="string"?"string":"hash"]:t.map}var Vi=qM;function $M(i){var e=Vi(this,i).delete(i);return this.size-=e?1:0,e}var dy=$M;function JM(i){return Vi(this,i).get(i)}var py=JM;function KM(i){return Vi(this,i).has(i)}var my=KM;function XM(i,e){var t=Vi(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var gy=XM;function as(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}as.prototype.clear=fy;as.prototype.delete=dy;as.prototype.get=py;as.prototype.has=my;as.prototype.set=gy;var ca=as;var ZM="Expected a function";function sh(i,e){if(typeof i!="function"||e!=null&&typeof e!="function")throw new TypeError(ZM);var t=function(){var r=arguments,n=e?e.apply(this,r):r[0],s=t.cache;if(s.has(n))return s.get(n);var l=i.apply(this,r);return t.cache=s.set(n,l)||s,l};return t.cache=new(sh.Cache||ca),t}sh.Cache=ca;var yy=sh;var YM=500;function QM(i){var e=yy(i,function(r){return t.size===YM&&t.clear(),r}),t=e.cache;return e}var xy=QM;var eA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,tA=/\\(\\)?/g,rA=xy(function(i){var e=[];return i.charCodeAt(0)===46&&e.push(""),i.replace(eA,function(t,r,n,s){e.push(n?s.replace(tA,"$1"):r||t)}),e}),vy=rA;function nA(i){return i==null?"":Lg(i)}var by=nA;function iA(i,e){return cr(i)?i:ey(i,e)?[i]:vy(by(i))}var ls=iA;var oA=1/0;function sA(i){if(typeof i=="string"||Zo(i))return i;var e=i+"";return e=="0"&&1/i==-oA?"-0":e}var rc=sA;function aA(i,e){e=ls(e,i);for(var t=0,r=e.length;i!=null&&t<r;)i=i[rc(e[t++])];return t&&t==r?i:void 0}var Sy=aA;function lA(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var cs=lA;var wy=Nr?Nr.isConcatSpreadable:void 0;function cA(i){return cr(i)||go(i)||!!(wy&&i&&i[wy])}var Ny=cA;function Cy(i,e,t,r,n){var s=-1,l=i.length;for(t||(t=Ny),n||(n=[]);++s<l;){var c=i[s];e>0&&t(c)?e>1?Cy(c,e-1,t,r,n):cs(n,c):r||(n[n.length]=c)}return n}var Ly=Cy;function uA(i){var e=i==null?0:i.length;return e?Ly(i,1):[]}var _y=uA;function fA(i){return Jl(Zl(i,void 0,_y),i+"")}var Ty=fA;var hA=tc(Object.getPrototypeOf,Object),us=hA;var dA="[object Object]",pA=Function.prototype,mA=Object.prototype,Iy=pA.toString,gA=mA.hasOwnProperty,yA=Iy.call(Object);function xA(i){if(!gr(i)||Xr(i)!=dA)return!1;var e=us(i);if(e===null)return!0;var t=gA.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Iy.call(t)==yA}var nc=xA;function vA(i,e,t){var r=-1,n=i.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++r<n;)s[r]=i[r+e];return s}var My=vA;function bA(){this.__data__=new zi,this.size=0}var Ay=bA;function SA(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Oy=SA;function wA(i){return this.__data__.get(i)}var Py=wA;function NA(i){return this.__data__.has(i)}var Dy=NA;var CA=200;function LA(i,e){var t=this.__data__;if(t instanceof zi){var r=t.__data__;if(!Fi||r.length<CA-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new ca(r)}return t.set(i,e),this.size=t.size,this}var By=LA;function fs(i){var e=this.__data__=new zi(i);this.size=e.size}fs.prototype.clear=Ay;fs.prototype.delete=Oy;fs.prototype.get=Py;fs.prototype.has=Dy;fs.prototype.set=By;var ic=fs;function _A(i,e){return i&&dn(e,is(e),i)}var Gy=_A;function TA(i,e){return i&&dn(e,kn(e),i)}var jy=TA;var Ey=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ry=Ey&&typeof module=="object"&&module&&!module.nodeType&&module,IA=Ry&&Ry.exports===Ey,zy=IA?qt.Buffer:void 0,Fy=zy?zy.allocUnsafe:void 0;function MA(i,e){if(e)return i.slice();var t=i.length,r=Fy?Fy(t):new i.constructor(t);return i.copy(r),r}var oc=MA;function AA(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var l=i[t];e(l,t,i)&&(s[n++]=l)}return s}var Vy=AA;function OA(){return[]}var sc=OA;var PA=Object.prototype,DA=PA.propertyIsEnumerable,Uy=Object.getOwnPropertySymbols,BA=Uy?function(i){return i==null?[]:(i=Object(i),Vy(Uy(i),function(e){return DA.call(i,e)}))}:sc,hs=BA;function GA(i,e){return dn(i,hs(i),e)}var ky=GA;var jA=Object.getOwnPropertySymbols,EA=jA?function(i){for(var e=[];i;)cs(e,hs(i)),i=us(i);return e}:sc,ac=EA;function RA(i,e){return dn(i,ac(i),e)}var Hy=RA;function zA(i,e,t){var r=e(i);return cr(i)?r:cs(r,t(i))}var lc=zA;function FA(i){return lc(i,is,hs)}var Wy=FA;function VA(i){return lc(i,kn,ac)}var cc=VA;var UA=Gr(qt,"DataView"),uc=UA;var kA=Gr(qt,"Promise"),fc=kA;var HA=Gr(qt,"Set"),hc=HA;var qy="[object Map]",WA="[object Object]",$y="[object Promise]",Jy="[object Set]",Ky="[object WeakMap]",Xy="[object DataView]",qA=di(uc),$A=di(Fi),JA=di(fc),KA=di(hc),XA=di(ql),yo=Xr;(uc&&yo(new uc(new ArrayBuffer(1)))!=Xy||Fi&&yo(new Fi)!=qy||fc&&yo(fc.resolve())!=$y||hc&&yo(new hc)!=Jy||ql&&yo(new ql)!=Ky)&&(yo=function(i){var e=Xr(i),t=e==WA?i.constructor:void 0,r=t?di(t):"";if(r)switch(r){case qA:return Xy;case $A:return qy;case JA:return $y;case KA:return Jy;case XA:return Ky}return e});var ds=yo;var ZA=Object.prototype,YA=ZA.hasOwnProperty;function QA(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&YA.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Zy=QA;var eO=qt.Uint8Array,ah=eO;function tO(i){var e=new i.constructor(i.byteLength);return new ah(e).set(new ah(i)),e}var ps=tO;function rO(i,e){var t=e?ps(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var Yy=rO;var nO=/\w*$/;function iO(i){var e=new i.constructor(i.source,nO.exec(i));return e.lastIndex=i.lastIndex,e}var Qy=iO;var ex=Nr?Nr.prototype:void 0,tx=ex?ex.valueOf:void 0;function oO(i){return tx?Object(tx.call(i)):{}}var rx=oO;function sO(i,e){var t=e?ps(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var dc=sO;var aO="[object Boolean]",lO="[object Date]",cO="[object Map]",uO="[object Number]",fO="[object RegExp]",hO="[object Set]",dO="[object String]",pO="[object Symbol]",mO="[object ArrayBuffer]",gO="[object DataView]",yO="[object Float32Array]",xO="[object Float64Array]",vO="[object Int8Array]",bO="[object Int16Array]",SO="[object Int32Array]",wO="[object Uint8Array]",NO="[object Uint8ClampedArray]",CO="[object Uint16Array]",LO="[object Uint32Array]";function _O(i,e,t){var r=i.constructor;switch(e){case mO:return ps(i);case aO:case lO:return new r(+i);case gO:return Yy(i,t);case yO:case xO:case vO:case bO:case SO:case wO:case NO:case CO:case LO:return dc(i,t);case cO:return new r;case uO:case dO:return new r(i);case fO:return Qy(i);case hO:return new r;case pO:return rx(i)}}var nx=_O;function TO(i){return typeof i.constructor=="function"&&!ts(i)?Og(us(i)):{}}var pc=TO;var IO="[object Map]";function MO(i){return gr(i)&&ds(i)==IO}var ix=MO;var ox=pi&&pi.isMap,AO=ox?ns(ox):ix,sx=AO;var OO="[object Set]";function PO(i){return gr(i)&&ds(i)==OO}var ax=PO;var lx=pi&&pi.isSet,DO=lx?ns(lx):ax,cx=DO;var BO=1,GO=2,jO=4,ux="[object Arguments]",EO="[object Array]",RO="[object Boolean]",zO="[object Date]",FO="[object Error]",fx="[object Function]",VO="[object GeneratorFunction]",UO="[object Map]",kO="[object Number]",hx="[object Object]",HO="[object RegExp]",WO="[object Set]",qO="[object String]",$O="[object Symbol]",JO="[object WeakMap]",KO="[object ArrayBuffer]",XO="[object DataView]",ZO="[object Float32Array]",YO="[object Float64Array]",QO="[object Int8Array]",eP="[object Int16Array]",tP="[object Int32Array]",rP="[object Uint8Array]",nP="[object Uint8ClampedArray]",iP="[object Uint16Array]",oP="[object Uint32Array]",Nt={};Nt[ux]=Nt[EO]=Nt[KO]=Nt[XO]=Nt[RO]=Nt[zO]=Nt[ZO]=Nt[YO]=Nt[QO]=Nt[eP]=Nt[tP]=Nt[UO]=Nt[kO]=Nt[hx]=Nt[HO]=Nt[WO]=Nt[qO]=Nt[$O]=Nt[rP]=Nt[nP]=Nt[iP]=Nt[oP]=!0;Nt[FO]=Nt[fx]=Nt[JO]=!1;function mc(i,e,t,r,n,s){var l,c=e&BO,f=e&GO,h=e&jO;if(t&&(l=n?t(i,r,n,s):t(i)),l!==void 0)return l;if(!yr(i))return i;var p=cr(i);if(p){if(l=Zy(i),!c)return $l(i,l)}else{var y=ds(i),g=y==fx||y==VO;if(rs(i))return oc(i,c);if(y==hx||y==ux||g&&!n){if(l=f||g?{}:pc(i),!c)return f?Hy(i,jy(l,i)):ky(i,Gy(l,i))}else{if(!Nt[y])return n?i:{};l=nx(i,y,c)}}s||(s=new ic);var w=s.get(i);if(w)return w;s.set(i,l),cx(i)?i.forEach(function(C){l.add(mc(C,e,t,C,i,s))}):sx(i)&&i.forEach(function(C,B){l.set(B,mc(C,e,t,B,i,s))});var S=h?f?cc:Wy:f?kn:is,T=p?void 0:S(i);return jg(T||i,function(C,B){T&&(B=C,C=i[B]),Xl(l,B,mc(C,e,t,B,i,s))}),l}var gc=mc;var sP=1,aP=4;function lP(i){return gc(i,sP|aP)}var xo=lP;function cP(i){return function(e,t,r){for(var n=-1,s=Object(e),l=r(e),c=l.length;c--;){var f=l[i?c:++n];if(t(s[f],f,s)===!1)break}return e}}var dx=cP;var uP=dx(),px=uP;function fP(i,e,t){(t!==void 0&&!ji(i[e],t)||t===void 0&&!(e in i))&&es(i,e,t)}var ua=fP;function hP(i){return gr(i)&&Ei(i)}var mx=hP;function dP(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}var fa=dP;function pP(i){return dn(i,kn(i))}var gx=pP;function mP(i,e,t,r,n,s,l){var c=fa(i,t),f=fa(e,t),h=l.get(f);if(h){ua(i,t,h);return}var p=s?s(c,f,t+"",i,e,l):void 0,y=p===void 0;if(y){var g=cr(f),w=!g&&rs(f),S=!g&&!w&&Ql(f);p=f,g||w||S?cr(c)?p=c:mx(c)?p=$l(c):w?(y=!1,p=oc(f,!0)):S?(y=!1,p=dc(f,!0)):p=[]:nc(f)||go(f)?(p=c,go(c)?p=gx(c):(!yr(c)||Yo(c))&&(p=pc(f))):y=!1}y&&(l.set(f,p),n(p,f,r,s,l),l.delete(f)),ua(i,t,p)}var yx=mP;function xx(i,e,t,r,n){i!==e&&px(e,function(s,l){if(n||(n=new ic),yr(s))yx(i,e,l,t,xx,r,n);else{var c=r?r(fa(i,l),s,l+"",i,e,n):void 0;c===void 0&&(c=s),ua(i,l,c)}},kn)}var vx=xx;function gP(i){var e=i==null?0:i.length;return e?i[e-1]:void 0}var bx=gP;function yP(i,e){return e.length<2?i:Sy(i,My(e,0,-1))}var Sx=yP;var xP=Fg(function(i,e,t){vx(i,e,t)}),vo=xP;function vP(i,e){return e=ls(e,i),i=Sx(i,e),i==null||delete i[rc(bx(e))]}var wx=vP;function bP(i){return nc(i)?void 0:i}var Nx=bP;var SP=1,wP=2,NP=4,CP=Ty(function(i,e){var t={};if(i==null)return t;var r=!1;e=kl(e,function(s){return s=ls(s,i),r||(r=s.length>1),s}),dn(i,cc(i),t),r&&(t=gc(t,SP|wP|NP,Nx));for(var n=e.length;n--;)wx(t,e[n]);return t}),ms=CP;var gs;(function(t){t.all=["PerspectiveCamera","OrthographicCamera"];function e(r){return t.all.includes(r)}t.is=e})(gs||(gs={}));var bo;(function(n){n.DefaultUp=[0,1,0],n.DefaultTargetOffset=1e3,n.defaultData={far:5e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-5e5,zoom:1},up:n.DefaultUp,isUpVectorFlipped:!1,targetOffset:n.DefaultTargetOffset};function r(s){return s.type==="PerspectiveCamera"?s.perspective.zoom:s.orthographic.zoom}n.getZoom=r})(bo||(bo={}));var ys;(function(r){r.x="x",r.y="y",r.z="z"})(ys||(ys={}));var Cx;(function(s){s.Top="top",s.Right="right",s.Bottom="bottom",s.Left="left",s.Center="center"})(Cx||(Cx={}));var Lx;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s]}t.lerp=e})(Lx||(Lx={}));var xs;(function(n){function i(s,l){return s[0]===l[0]&&s[1]===l[1]&&s[2]===l[2]}n.isEqual=i;function e(s,l){return[s[0]+l[0],s[1]+l[1],s[2]+l[2]]}n.add=e;function t(s,l){return[s[0]-l[0],s[1]-l[1],s[2]-l[2]]}n.sub=t;function r(s,l,c){return[s[0]+(l[0]-s[0])*c,s[1]+(l[1]-s[1])*c,s[2]+(l[2]-s[2])*c]}n.lerp=r})(xs||(xs={}));var _x;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]&&r[2]===n[2]&&r[3]===n[3]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s,r[2]+(n[2]-r[2])*s,r[3]+(n[3]-r[3])*s]}t.lerp=e})(_x||(_x={}));var Ui;(function(s){s.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(l,c){for(let f=0;f<16;f++)if(l[f]!==c[f])return!1;return!0}s.isEqual=e;function t(l){return l!=null?l:s.identity}s.simplify=t;function r(l,c){let f=c.slice(0);for(var h=0,p=c.length;h<p;h+=3){let y=1/(l[3]*c[h]+l[7]*c[h+1]+l[11]*c[h+2]+l[15]);f[h]=(l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2]+l[12])*y,f[h+1]=(l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2]+l[13])*y,f[h+2]=(l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2]+l[14])*y}return f}s.applyMatrix4=r;function n(l,c){let f=c.slice(0);for(var h=0,p=c.length;h<p;h+=3)f[h]=l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2],f[h+1]=l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2],f[h+2]=l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2];return f}s.applyMatrix3Components=n})(Ui||(Ui={}));var Zr;(function(f){f.white={r:1,g:1,b:1},f.red={r:1,g:0,b:0},f.black={r:0,g:0,b:0};function r(h){return{r:Math.round(h.r*255),g:Math.round(h.g*255),b:Math.round(h.b*255),a:1}}f.toRgb255a1=r;function n(h){return{r:h.r,g:h.g,b:h.b}}f.clone=n;function s(h){return h=Math.floor(h),{r:(h>>16&255)/255,g:(h>>8&255)/255,b:(h&255)/255}}f.fromHex=s;function l(h,p){return h.r===p.r&&h.g===p.g&&h.b===p.b}f.equals=l;function c(h,p,y){return{r:h.r+(p.r-h.r)*y,g:h.g+(p.g-h.g)*y,b:h.b+(p.b-h.b)*y}}f.lerp=c})(Zr||(Zr={}));var Hn;(function(s){s.white=fe(U({},Zr.white),{a:1});function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function t(l,c){return fe(U({},Zr.fromHex(l)),{a:c})}s.fromHexAndA=t;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}}s.toRgb255a1=r;function n(l,c){return Zr.equals(l,c)&&l.a===c.a}s.equals=n})(Hn||(Hn={}));var yc;(function(e){e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]}})(yc||(yc={}));var Tx;(function(D){D[D.SKIP=0]="SKIP",D[D.ADD=1]="ADD",D[D.ALPHA=2]="ALPHA",D[D.AVERAGE=3]="AVERAGE",D[D.COLOR_BURN=4]="COLOR_BURN",D[D.COLOR_DODGE=5]="COLOR_DODGE",D[D.DARKEN=6]="DARKEN",D[D.DIFFERENCE=7]="DIFFERENCE",D[D.EXCLUSION=8]="EXCLUSION",D[D.LIGHTEN=9]="LIGHTEN",D[D.MULTIPLY=10]="MULTIPLY",D[D.DIVIDE=11]="DIVIDE",D[D.NEGATION=12]="NEGATION",D[D.NORMAL=13]="NORMAL",D[D.OVERLAY=14]="OVERLAY",D[D.REFLECT=15]="REFLECT",D[D.SCREEN=16]="SCREEN",D[D.SOFT_LIGHT=17]="SOFT_LIGHT",D[D.SUBTRACT=18]="SUBTRACT"})(Tx||(Tx={}));var Ix;(function(c){c[c.LINEAR=0]="LINEAR",c[c.EASE=1]="EASE",c[c.EASE_IN=2]="EASE_IN",c[c.EASE_OUT=3]="EASE_OUT",c[c.EASE_IN_OUT=4]="EASE_IN_OUT",c[c.CUBIC=5]="CUBIC",c[c.SPRING=6]="SPRING"})(Ix||(Ix={}));var Mx;(function(e){e.defaultData={mass:1,stiffness:80,damping:10,velocity:0}})(Mx||(Mx={}));var Ax;(function(e){e.defaultData={control1:[.5,.05],control2:[.1,.3]}})(Ax||(Ax={}));var xc;(function(e){function i(t,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[1])*2,start:0,end:360,alignment:!1,axis:ys.y,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[0,0,0],rotation:[0,0,0],position:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),useCenter:!0}}}e.defaultData=i})(xc||(xc={}));var Wn;(function(e){e[e.Update=0]="Update"})(Wn||(Wn={}));var pn;(function(r){r[r.Add=1]="Add",r[r.Delete=2]="Delete",r[r.Unlink=3]="Unlink"})(pn||(pn={}));var Yr;(function(r){r[r.Add=4]="Add",r[r.Delete=5]="Delete",r[r.Move=6]="Move"})(Yr||(Yr={}));var jr;(function(r){r[r.Add=7]="Add",r[r.Delete=8]="Delete",r[r.Move=9]="Move"})(jr||(jr={}));var On=class{modifyById(e,t){let r=this;if(r[e]===void 0)throw new Error("not expected");{let s=fe(U({},r),{[e]:t});return Object.setPrototypeOf(s,On.prototype),s}}add(e,t){var n;let r=this.runOp({type:pn.Add,id:e,data:t});return(n=r==null?void 0:r.data)!=null?n:this}runOp(e){let t=this;if(e.type===pn.Add){let r=t[e.id],n;r===void 0?n={type:pn.Delete,id:e.id}:n={type:pn.Add,id:e.id,data:r};let{id:s,data:l}=e,c=fe(U({},t),{[s]:l});return Object.setPrototypeOf(c,On.prototype),{data:c,actual:e,reverse:n}}else if(e.type===pn.Delete){let{id:r}=e,n=t[r];if(n===void 0)return null;{let s=U({},t);return Object.setPrototypeOf(s,On.prototype),delete s[r],{data:s,actual:e,reverse:{type:pn.Add,id:r,data:n}}}}throw new Error("illegal arg")}};function ha(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let e=Object.getOwnPropertyNames(i);for(let t of e){let r=i[t];r&&typeof r=="object"&&ha(r)}return Object.freeze(i)}function Ox(i,e){let t=0;for(;t<i.length&&t<e.length;){if(i[t]<e[t])return-1;if(i[t]>e[t])return 1;t+=1}return t!==e.length?-1:t!==i.length?1:0}var lh=class extends Error{};function qn(i,e,t){if(i===void 0?e===void 0?(i=0,e=10):i=e-10:e===void 0&&(e=i+10),i>e){let s=i;i=e,e=s}let r=[],n=1/(t+1);for(let s=0;s<t;s++){let l=i+(e-i)*(s+.75+Math.random()*.5)*n;r.push(l)}return r}function Px(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function Dx(){return typeof process!="undefined"}function Bx(i,e){for(let t of i)e(t.id,t.data),Bx(t.children,e)}function Gx(i,e){e(i.id,i.data);for(let t of i.children)Gx(t,e)}var Pn=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Pn.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ha(this[e]),e++}fillCaches0(e,t){var r;if((r=this.objCaches)==null?void 0:r.has(e.id))throw new Error("duplicated item");this.objCaches.set(e.id,e),this.parentCaches.set(e.id,t);for(let n of e.children)this.fillCaches0(n,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,t){for(;e;){let r=this.parent(e);if(r===t)return!0;e=r}return!1}data(e){var t;return(t=this.get(e))==null?void 0:t.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){var t;return e===null?this:(t=this.get(e))==null?void 0:t.children}traverseFrom(e,t){if(e===null)this.traverse(t);else{let r=this.get(e);r&&Gx(r,t)}}traverse(e){Bx(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 n=this.parent(e),s=this.childrenArray(n),l=s.findIndex(h=>h.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]=fe(U({},c),{data:t}),this.modifyArrayBy(n,s)}}modifyArrayBy(e,t){let r=e,n=t;for(;r!==null;){let l=n,c=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let f=n.findIndex(h=>h.id===c);if(f<0)throw new Error;n=[...n],n[f]=fe(U({},n[f]),{children:l})}Object.setPrototypeOf(n,Pn.prototype);let s=n;return s.fillCaches(),s}runOp(e){switch(e.type){case jr.Add:return this.addOp(e);case jr.Delete:return this.deleteOp(e);case jr.Move:return this.moveOp(e)}}addOp(e){let{parent:t,fi:r,id:n,data:s,children:l}=e;if(t!==null&&this.get(t)===void 0)return null;if(this.get(n)!==void 0)return null;{let c=t,f=this.childrenArray(c),h={fi:r,id:n,data:s,children:l};return f=[...f,h],f.sort((y,g)=>y.fi-g.fi),e.localIndex=f.indexOf(h),{data:this.modifyArrayBy(c,f),actual:e,reverse:{type:jr.Delete,id:n}}}}deleteOp(e){let{id:t}=e;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),s=n.findIndex(f=>f.id===t);e.localIndex=s,n=[...n];let l=n.splice(s,1)[0];return{data:this.modifyArrayBy(r,n),actual:e,reverse:fe(U({type:jr.Add},l),{parent:r})}}}moveOp(e){let{parent:t,fi:r,id:n}=e;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:jr.Delete,id:n});if(t!==null){let g=t;for(;g!==null;){if(g===void 0)throw new Error;if(g===n)throw new lh("cyclic tree");g=this.parent(g)}}let s=this.parent(n);if(s===void 0)return null;let l=s,c=this.childrenArray(s),f=c.findIndex(g=>g.id===n);c=[...c];let h=c.splice(f,1)[0],p=this.modifyArrayBy(s,c);s=t,c=p.childrenArray(s);let y=h.fi;return h=fe(U({},h),{fi:r}),c=[...c,h],c.sort((g,w)=>g.fi-w.fi),e.localIndex=c.indexOf(h),p=p.modifyArrayBy(s,c),{data:p,actual:e,reverse:{type:jr.Move,parent:l,fi:y,id:n}}}previous(e,t){if(t===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(e)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(e){let t=this.parent(e);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)+1;if(n<r.length)return r[n].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 r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(e){let t=[];for(let r of e){let n=this.getWithSortKey(r.id);n!==void 0&&t.push(U(U({},r),n))}t.sort((r,n)=>Ox(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(e){var t=e;let r=[],n=this.get(t),s=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return fe(U({},s),{sortKey:r})}}insertBeforeHelper(e,t,r){return this.insertAfterHelper(e,this.previous(e,t),r)}insertAfterHelper(e,t,r){let n=this.childrenArray(e);if(t===null){if(n.length===0)return qn(0,r,r);{let s=n[0].fi;return qn(s-r,s,r)}}else{let s=this.get(t);if(s===void 0||this.parent(t)!==e)throw new Error("illegal args");let l=n.find(c=>c.fi>s.fi);if(l===void 0){let c=n[n.length-1].fi;return qn(c,c+r,r)}else return qn(s.fi,l.fi,r)}}};var vc;(function(e){function i(t,r){if(Array.isArray(t)){let n=r.props,s={},l=[...t],c=!1;if(n)for(let f of Object.keys(n)){let h=parseInt(f);if(isNaN(h))throw new Error("wrong index");s[f]=l[h],l[h]=n[f],c=!0}return c?{data:l,actual:r,reverse:{type:Wn.Update,props:s}}:null}else{let n=r.props,s={},l=U({},t),c=!1;if(n)for(let f of Object.keys(n)){s[f]=l[f];let h=n[f];h===void 0?delete l[f]:l[f]=h,c=!0}return c?{data:l,actual:r,reverse:{type:Wn.Update,props:s}}:null}}e.runOp=i})(vc||(vc={}));var jt=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,jt.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ha(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){var t;return(t=this.get(e))==null?void 0:t.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 n=this,s=n.findIndex(f=>f.id===e);if(s<0)throw new Error("not expected");let l=n[s];return n=[...n],n[s]=fe(U({},l),{data:t}),this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,jt.prototype);let t=e;return Dx()||t.fillCaches(),t}runOp(e){switch(e.type){case Yr.Add:return this.addOp(e);case Yr.Delete:return this.deleteOp(e);case Yr.Move:return this.moveOp(e)}}addOp(e){let{fi:t,id:r,data:n}=e,s=this,l={fi:t,id:r,data:n};return s=[...s,l],s.sort((f,h)=>f.fi-h.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:Yr.Delete,id:r}}}deleteOp(e){let{id:t}=e,r=this,n=r.findIndex(c=>c.id===t);if(n===-1)return null;e.localIndex=n,r=[...r];let s=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:e,reverse:U({type:Yr.Add},s)}}moveOp(e){let{fi:t,id:r}=e,n=this;n=[...n];let s=n.findIndex(h=>h.id===r);if(s===-1)return null;let l=n[s].fi,c=fe(U({},n[s]),{fi:t});return n[s]=c,n.sort((h,p)=>h.fi-p.fi),e.localIndex=n.indexOf(c),{data:this.modifyArrayBy(n),actual:e,reverse:{type:Yr.Move,fi:l,id:r}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===e)return t;t=r.id}return null}insertBeforeHelper(e,t){return this.insertAfterHelper(this.previous(e),t)}insertAfterHelper(e,t){let r=this;if(e===null){if(r.length===0)return qn(0,t,t);{let n=r[0].fi;return qn(n-t,n,t)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let s=r.find(l=>l.fi>n.fi);if(s===void 0){let l=r[r.length-1].fi;return qn(l,l+t,t)}else return qn(n.fi,s.fi,t)}}};var jx=Symbol(),bc=Symbol(),da=class{reportOp(e,t){let r=this;if(t===null)return;r._current=t.data;let n=[];for(;!(r instanceof uh);){let s=r._path,l=r._current;if(s!==""&&n.splice(0,0,s),r=r._parent,r===null)return;r.update(s,l)}r.push(n,e,t.actual,t.reverse)}deleteChildren(e){if(this._children){let t=this._children[e];if(t){let r=t[bc];r&&r(),delete this._children[e]}}}},Ex=class extends da{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=t}else this._current=fe(U({},this._current),{[e]:t})}runOp(e){this.reportOp(e,vc.runOp(this._current,e))}},Rx=class extends da{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){this._current=fe(U({},this._current),{[e]:t}),Object.setPrototypeOf(this._current,On.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},zx={get(i,e){if(e===bc)return()=>{i._parent=null};if(e===jx)return i._current;let{_current:t,_children:r}=i;if(e==="push"&&Array.isArray(t))throw new Error("not supported to expand array");let n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=t[e],l=Sc(i,e,s);return l!==s?(r===void 0&&(r={},i._children=r),r[e]=l,l):s},has(i,e){return e in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,e){let t=i._current,r=Reflect.getOwnPropertyDescriptor(t,e);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:t[e]}}},LP=fe(U({},zx),{set(i,e,t){var n;let r={type:Wn.Update,props:{[e]:(n=IP(t))!=null?n:t}};return i.deleteChildren(e),i.runOp(r),!0},deleteProperty(i,e){let t={type:Wn.Update,props:{[e]:void 0}};return i.deleteChildren(e),i.runOp(t),!0}}),_P=fe(U({},zx),{set(i,e,t){return t===void 0?this.deleteProperty(i,e):(i.deleteChildren(e),i.runOp({type:pn.Add,id:e,data:t})),!0},deleteProperty(i,e){return i.runOp({type:pn.Delete,id:e}),!0}}),pa=class extends da{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[bc]=()=>{this._parent=null}}unproxy(){return this._current}update(e,t){this._current=this._current.modifyById(e,t)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,t){return this._current.isDescendantOf(e,t)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((t,r)=>{e(t,this.data(t))})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=Sc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}add(e,t,r,n,s){this.runOp({type:jr.Add,parent:e,fi:t,id:r,data:n,children:s})}move(e,t,r){this.runOp({type:jr.Move,parent:e,fi:t,id:r})}insertAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}insertBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}moveAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}moveBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}delete(e){this.deleteChildren(e),this.runOp({type:jr.Delete,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},ma=class extends da{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[bc]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let t=this.length;for(let r=0;r<t;r++){let n=this._current[r].id;e(this.data(this._current[r].id),n)}}update(e,t){this._current=this._current.modifyById(e,t)}randomId(){return this._current.randomId()}get(e){return fe(U({},this._current.get(e)),{data:this.data(e)})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=Sc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,t,r){this.runOp({type:Yr.Add,fi:e,id:t,data:r})}move(e,t){this.runOp({type:Yr.Move,fi:e,id:t})}insertAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}insertBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}moveAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}moveBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}delete(e){this.deleteChildren(e),this.runOp({type:Yr.Delete,id:e})}};function ch(i,e,t){if(i.length>0){let r=i[i.length-1];if(r.type===Wn.Update&&e.type===Wn.Update&&wc.equal(r.path,t)){Object.assign(r.props,e.props);return}}i.push(fe(U({},e),{path:t}))}var uh=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,t){if(e!=="")throw new Error("");this._current=t}push(e,t,r,n){ch(this.ts,t,e),ch(this.actual,r,e),ch(this.reverse,n,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Sc(i,e,t){return t instanceof Pn?new pa(i,e,t):t instanceof jt?new ma(i,e,t):t instanceof On?new Proxy(new Rx(i,e,t),_P):t!==null&&typeof t=="object"?Px(t)?t:new Proxy(new Ex(i,e,t),LP):t}function TP(i){let e=new uh(i);return[Sc(e,"",i),e]}function fh(i,e){let[t,r]=TP(i);return e(t),r.result()}function IP(i){return i instanceof pa||i instanceof ma?i._current:i!==null&&typeof i=="object"?i[jx]:i}var wc;(function(r){function i(n,s){if(s.length===n.length)for(var l=0;l<n.length;){if(n[l]!==s[l])return!1;l+=1}else return!1;return!0}r.equal=i;function e(n,s,l){let c=t(l,n);if(c!==void 0&&typeof c=="object"&&c!==null){let f=U({},s);return Object.keys(c).forEach(h=>{delete f[h]}),f}else return s}r.removeOverridden=e;function t(n,s,l=0){if(s.length<=l)return n;if((n instanceof Pn||n instanceof pa)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if((n instanceof jt||n instanceof ma)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if(typeof s[l]=="number"&&Array.isArray(n))return t(n[s[l]],s,l+1);if(typeof s[l]=="string"&&typeof n=="object")return t(n[s[l]],s,l+1)}r.zoom=t})(wc||(wc={}));var hh=class{},Nc=class extends hh{constructor(e){super();this.id=e}},Cc=class extends hh{constructor(e){super();this.data=e}};"use strict";var dh;try{dh=new TextDecoder}catch(i){}var ge,ki,j=0;var Fx=[],ph=Fx,mh=0,Er={},ot,Hi,mn=0,$n=0,Qr,gi,Cr=[],ft,Vx={useRecords:!1,mapsAsObjects:!0},Lc=class{},gh=new Lc;gh.name="MessagePack 0xC1";var vs=!1,yi=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,t){if(ge)return Yx(()=>(Ic(),this?this.unpack(e,t):yi.prototype.unpack.call(Vx,e,t)));ki=t>-1?t:e.length,j=0,mh=0,$n=0,Hi=null,ph=Fx,Qr=null,ge=e;try{ft=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(r){throw ge=null,e instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof yi){if(Er=this,this.structures)return ot=this.structures,_c();(!ot||ot.length>0)&&(ot=[])}else Er=Vx,(!ot||ot.length>0)&&(ot=[]);return _c()}unpackMultiple(e,t){let r,n=0;try{vs=!0;let s=e.length,l=this?this.unpack(e,s):Ac.unpack(e,s);if(t){for(t(l);j<s;)if(n=j,t(_c())===!1)return}else{for(r=[l];j<s;)n=j,r.push(_c());return r}}catch(s){throw s.lastPosition=n,s.values=r,s}finally{vs=!1,Ic()}}_mergeStructures(e,t){e=e||[];for(let r=0,n=e.length;r<n;r++){let s=e[r];s&&(s.isShared=!0,r>=32&&(s.highByte=r-32>>5))}e.sharedLength=e.length;for(let r in t||[])if(r>=0){let n=e[r],s=t[r];s&&(n&&((e.restoreStructures||(e.restoreStructures=[]))[r]=n),e[r]=s)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function _c(){try{if(!Er.trusted&&!vs){let e=ot.sharedLength||0;e<ot.length&&(ot.length=e)}let i=Et();if(j==ki)ot.restoreStructures&&Ux(),ot=null,ge=null,gi&&(gi=null);else if(j>ki){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!vs)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw ot.restoreStructures&&Ux(),Ic(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function Ux(){for(let i in ot.restoreStructures)ot[i]=ot.restoreStructures[i];ot.restoreStructures=null}function Et(){let i=ge[j++];if(i<160)if(i<128){if(i<64)return i;{let e=ot[i&63]||Er.getStructures&&Hx()[i&63];return e?(e.read||(e.read=yh(e,i&63)),e.read()):i}}else if(i<144)if(i-=128,Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[Kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}else{i-=144;let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}else if(i<192){let e=i-160;if($n>=j)return Hi.slice(j-mn,(j+=e)-mn);if($n==0&&ki<140){let t=e<16?vh(e):$x(e);if(t!=null)return t}return xh(e)}else{let e;switch(i){case 192:return null;case 193:return Qr?(e=Et(),e>0?Qr[1].slice(Qr.position1,Qr.position1+=e):Qr[0].slice(Qr.position0,Qr.position0-=e)):gh;case 194:return!1;case 195:return!0;case 196:return bh(ge[j++]);case 197:return e=ft.getUint16(j),j+=2,bh(e);case 198:return e=ft.getUint32(j),j+=4,bh(e);case 199:return So(ge[j++]);case 200:return e=ft.getUint16(j),j+=2,So(e);case 201:return e=ft.getUint32(j),j+=4,So(e);case 202:if(e=ft.getFloat32(j),Er.useFloat32>2){let t=Mc[(ge[j]&127)<<1|ge[j+1]>>7];return j+=4,(t*e+(e>0?.5:-.5)>>0)/t}return j+=4,e;case 203:return e=ft.getFloat64(j),j+=8,e;case 204:return ge[j++];case 205:return e=ft.getUint16(j),j+=2,e;case 206:return e=ft.getUint32(j),j+=4,e;case 207:return Er.int64AsNumber?(e=ft.getUint32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigUint64(j),j+=8,e;case 208:return ft.getInt8(j++);case 209:return e=ft.getInt16(j),j+=2,e;case 210:return e=ft.getInt32(j),j+=4,e;case 211:return Er.int64AsNumber?(e=ft.getInt32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigInt64(j),j+=8,e;case 212:if(e=ge[j++],e==114)return Xx(ge[j++]&63);{let t=Cr[e];if(t)return t.read?(j++,t.read(Et())):t.noBuffer?(j++,t()):t(ge.subarray(j,++j));throw new Error("Unknown extension "+e)}case 213:return e=ge[j],e==114?(j++,Xx(ge[j++]&63,ge[j++])):So(2);case 214:return So(4);case 215:return So(8);case 216:return So(16);case 217:return e=ge[j++],$n>=j?Hi.slice(j-mn,(j+=e)-mn):AP(e);case 218:return e=ft.getUint16(j),j+=2,$n>=j?Hi.slice(j-mn,(j+=e)-mn):OP(e);case 219:return e=ft.getUint32(j),j+=4,$n>=j?Hi.slice(j-mn,(j+=e)-mn):PP(e);case 220:return e=ft.getUint16(j),j+=2,Wx(e);case 221:return e=ft.getUint32(j),j+=4,Wx(e);case 222:return e=ft.getUint16(j),j+=2,qx(e);case 223:return e=ft.getUint32(j),j+=4,qx(e);default:if(i>=224)return i-256;if(i===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+i)}}}var MP=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function yh(i,e){function t(){if(t.count++>2){let n=i.read=new Function("r","return function(){return {"+i.map(s=>MP.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"}}")(Et);return i.highByte===0&&(i.read=kx(e,i.read)),n()}let r={};for(let n=0,s=i.length;n<s;n++){let l=i[n];r[l]=Et()}return r}return t.count=0,i.highByte===0?kx(e,t):t}var kx=(i,e)=>function(){let t=ge[j++];if(t===0)return e();let r=i<32?-(i+(t<<5)):i+(t<<5),n=ot[r]||Hx()[r];if(!n)throw new Error("Record id is not defined for "+r);return n.read||(n.read=yh(n,i)),n.read()};function Hx(){let i=Yx(()=>(ge=null,Er.getStructures()));return ot=Er._mergeStructures(i,ot)}var xh=Tc,AP=Tc,OP=Tc,PP=Tc;function Tc(i){let e;if(i<16&&(e=vh(i)))return e;if(i>64&&dh)return dh.decode(ge.subarray(j,j+=i));let t=j+i,r=[];for(e="";j<t;){let n=ge[j++];if((n&128)==0)r.push(n);else if((n&224)==192){let s=ge[j++]&63;r.push((n&31)<<6|s)}else if((n&240)==224){let s=ge[j++]&63,l=ge[j++]&63;r.push((n&31)<<12|s<<6|l)}else if((n&248)==240){let s=ge[j++]&63,l=ge[j++]&63,c=ge[j++]&63,f=(n&7)<<18|s<<12|l<<6|c;f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|f&1023),r.push(f)}else r.push(n);r.length>=4096&&(e+=ir.apply(String,r),r.length=0)}return r.length>0&&(e+=ir.apply(String,r)),e}function Wx(i){let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}function qx(i){if(Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[Kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}}var ir=String.fromCharCode;function $x(i){let e=j,t=new Array(i);for(let r=0;r<i;r++){let n=ge[j++];if((n&128)>0){j=e;return}t[r]=n}return ir.apply(String,t)}function vh(i){if(i<4)if(i<2){if(i===0)return"";{let e=ge[j++];if((e&128)>1){j-=1;return}return ir(e)}}else{let e=ge[j++],t=ge[j++];if((e&128)>0||(t&128)>0){j-=2;return}if(i<3)return ir(e,t);let r=ge[j++];if((r&128)>0){j-=3;return}return ir(e,t,r)}else{let e=ge[j++],t=ge[j++],r=ge[j++],n=ge[j++];if((e&128)>0||(t&128)>0||(r&128)>0||(n&128)>0){j-=4;return}if(i<6){if(i===4)return ir(e,t,r,n);{let s=ge[j++];if((s&128)>0){j-=5;return}return ir(e,t,r,n,s)}}else if(i<8){let s=ge[j++],l=ge[j++];if((s&128)>0||(l&128)>0){j-=6;return}if(i<7)return ir(e,t,r,n,s,l);let c=ge[j++];if((c&128)>0){j-=7;return}return ir(e,t,r,n,s,l,c)}else{let s=ge[j++],l=ge[j++],c=ge[j++],f=ge[j++];if((s&128)>0||(l&128)>0||(c&128)>0||(f&128)>0){j-=8;return}if(i<10){if(i===8)return ir(e,t,r,n,s,l,c,f);{let h=ge[j++];if((h&128)>0){j-=9;return}return ir(e,t,r,n,s,l,c,f,h)}}else if(i<12){let h=ge[j++],p=ge[j++];if((h&128)>0||(p&128)>0){j-=10;return}if(i<11)return ir(e,t,r,n,s,l,c,f,h,p);let y=ge[j++];if((y&128)>0){j-=11;return}return ir(e,t,r,n,s,l,c,f,h,p,y)}else{let h=ge[j++],p=ge[j++],y=ge[j++],g=ge[j++];if((h&128)>0||(p&128)>0||(y&128)>0||(g&128)>0){j-=12;return}if(i<14){if(i===12)return ir(e,t,r,n,s,l,c,f,h,p,y,g);{let w=ge[j++];if((w&128)>0){j-=13;return}return ir(e,t,r,n,s,l,c,f,h,p,y,g,w)}}else{let w=ge[j++],S=ge[j++];if((w&128)>0||(S&128)>0){j-=14;return}if(i<15)return ir(e,t,r,n,s,l,c,f,h,p,y,g,w,S);let T=ge[j++];if((T&128)>0){j-=15;return}return ir(e,t,r,n,s,l,c,f,h,p,y,g,w,S,T)}}}}}function bh(i){return Er.copyBuffers?Uint8Array.prototype.slice.call(ge,j,j+=i):ge.subarray(j,j+=i)}function So(i){let e=ge[j++];if(Cr[e])return Cr[e](ge.subarray(j,j+=i));throw new Error("Unknown extension type "+e)}var Jx=new Array(4096);function Kx(){let i=ge[j++];if(i>=160&&i<192){if(i=i-160,$n>=j)return Hi.slice(j-mn,(j+=i)-mn);if(!($n==0&&ki<180))return xh(i)}else return j--,Et();let e=(i<<5^(i>1?ft.getUint16(j):i>0?ge[j]:0))&4095,t=Jx[e],r=j,n=j+i-3,s,l=0;if(t&&t.bytes==i){for(;r<n;){if(s=ft.getUint32(r),s!=t[l++]){r=1879048192;break}r+=4}for(n+=3;r<n;)if(s=ge[r++],s!=t[l++]){r=1879048192;break}if(r===n)return j=r,t.string;n-=3,r=j}for(t=[],Jx[e]=t,t.bytes=i;r<n;)s=ft.getUint32(r),t.push(s),r+=4;for(n+=3;r<n;)s=ge[r++],t.push(s);let c=i<16?vh(i):$x(i);return c!=null?t.string=c:t.string=xh(i)}var Xx=(i,e)=>{var t=Et();let r=i;e!==void 0&&(i=i<32?-((e<<5)+i):(e<<5)+i,t.highByte=e);let n=ot[i];return n&&n.isShared&&((ot.restoreStructures||(ot.restoreStructures=[]))[i]=n),ot[i]=t,t.read=yh(t,r),t.read()},Zx=typeof self=="object"?self:global;Cr[0]=()=>{};Cr[0].noBuffer=!0;Cr[101]=()=>{let i=Et();return(Zx[i[0]]||Error)(i[1])};Cr[105]=i=>{let e=ft.getUint32(j-4);gi||(gi=new Map);let t=ge[j],r;t>=144&&t<160||t==220||t==221?r=[]:r={};let n={target:r};gi.set(e,n);let s=Et();return n.used?Object.assign(r,s):(n.target=s,s)};Cr[112]=i=>{let e=ft.getUint32(j-4),t=gi.get(e);return t.used=!0,t.target};Cr[115]=()=>new Set(Et());var Sh=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");Cr[116]=i=>{let e=i[0],t=Sh[e];if(!t)throw new Error("Could not find typed array for code "+e);return new Zx[t](Uint8Array.prototype.slice.call(i,1).buffer)};Cr[120]=()=>{let i=Et();return new RegExp(i[0],i[1])};Cr[98]=i=>{let e=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],t=j;j+=e-4,Qr=[Et(),Et()],Qr.position0=0,Qr.position1=0;let r=j;j=t;try{return Et()}finally{j=r}};Cr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function Yx(i){let e=ki,t=j,r=mh,n=mn,s=$n,l=Hi,c=ph,f=gi,h=Qr,p=new Uint8Array(ge.slice(0,ki)),y=ot,g=ot.slice(0,ot.length),w=Er,S=vs,T=i();return ki=e,j=t,mh=r,mn=n,$n=s,Hi=l,ph=c,gi=f,Qr=h,ge=p,vs=S,ot=y,ot.splice(0,ot.length,...g),Er=w,ft=new DataView(ge.buffer,ge.byteOffset,ge.byteLength),T}function Ic(){ge=null,gi=null,ot=null}function Qx(i){i.unpack?Cr[i.type]=i.unpack:Cr[i.type]=i}var Mc=new Array(147);for(let i=0;i<256;i++)Mc[i]=+("1e"+Math.floor(45.15-i*.30103));var Ac=new yi({useRecords:!1}),DP=Ac.unpack,BP=Ac.unpackMultiple,GP=Ac.unpack;var jP=new Float32Array(1),u4=new Uint8Array(jP.buffer,0,4);"use strict";var Oc;try{Oc=new TextEncoder}catch(i){}var Pc,wh,Dc=typeof Buffer!="undefined",Nh=Dc?Buffer.allocUnsafeSlow:Uint8Array,t0=Dc?Buffer:Uint8Array,r0=Dc?4294967296:2144337920,Z,Vt,F=0,Jn,Kn=null,EP=/[\u0080-\uFFFF]/,ga=Symbol("record-id"),bs=class extends yi{constructor(e){super(e);this.offset=0;let t,r,n,s,l,c,f=0,h=t0.prototype.utf8Write?function(b,R,I){return Z.utf8Write(b,R,I)}:Oc&&Oc.encodeInto?function(b,R){return Oc.encodeInto(b,Z.subarray(R)).written}:!1,p=this;e||(e={});let y=e&&e.sequential,g=e.structures||e.saveStructures,w=e.maxSharedStructures;if(w==null&&(w=g?32:0),w>8160)throw new Error("Maximum maxSharedStructure is 8160");let S=e.maxOwnStructures;S==null&&(S=g?32:64),y&&!e.saveStructures&&(this.structures=[]);let T=w>32||S+w>64,C=w+64,B=w+S+64;if(B>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let G=[],D=0,W=0;this.pack=this.encode=function(b,R){if(Z||(Z=new Nh(8192),Vt=new DataView(Z.buffer,0,8192),F=0),Jn=Z.length-10,Jn-F<2048?(Z=new Nh(Z.length),Vt=new DataView(Z.buffer,0,Z.length),Jn=Z.length-10,F=0):F=F+7&2147483640,r=F,c=p.structuredClone?new Map:null,p.bundleStrings?(Kn=["",""],Z[F++]=214,Z[F++]=98,Kn.position=F-r,F+=4):Kn=null,n=p.structures,n){n.uninitialized&&(n=p._mergeStructures(p.getStructures()));let I=n.sharedLength||0;if(I>w)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+n.sharedLength);if(!n.transitions){n.transitions=Object.create(null);for(let z=0;z<I;z++){let O=n[z];if(!O)continue;let $,he=n.transitions;for(let re=0,Ne=O.length;re<Ne;re++){let ye=O[re];$=he[ye],$||($=he[ye]=Object.create(null)),he=$}he[ga]=z+64}f=I}y||(n.nextId=I+64)}s&&(s=!1),l=n||[];try{if(A(b),Kn){Vt.setUint32(Kn.position+r,F-Kn.position-r);let I=Kn;Kn=null,A(I[0]),A(I[1])}if(p.offset=F,c&&c.idsToInsert){F+=c.idsToInsert.length*6,F>Jn&&E(F),p.offset=F;let I=zP(Z.subarray(r,F),c.idsToInsert);return c=null,I}return R&s0?(Z.start=r,Z.end=F,Z):Z.subarray(r,F)}finally{if(n){if(W<10&&W++,D>1e4)n.transitions=null,W=0,D=0,G.length>0&&(G=[]);else if(G.length>0&&!y){for(let I=0,z=G.length;I<z;I++)G[I][ga]=0;G=[]}if(s&&p.saveStructures){let I=n.sharedLength||w;n.length>I&&(n=n.slice(0,I));let z=Z.subarray(r,F);return p.saveStructures(n,f)===!1?(p._mergeStructures(p.getStructures()),p.pack(b)):(f=I,z)}}R&UP&&(F=r)}};let A=b=>{F>Jn&&(Z=E(F));var R=typeof b,I;if(R==="string"){let z=b.length;if(Kn&&z>=8&&z<4096){let he=EP.test(b);Kn[he?0:1]+=b,Z[F++]=193,A(he?-z:z);return}let O;z<32?O=1:z<256?O=2:z<65536?O=3:O=5;let $=z*3;if(F+$>Jn&&(Z=E(F+$)),z<64||!h){let he,re,Ne,ye=F+O;for(he=0;he<z;he++)re=b.charCodeAt(he),re<128?Z[ye++]=re:re<2048?(Z[ye++]=re>>6|192,Z[ye++]=re&63|128):(re&64512)==55296&&((Ne=b.charCodeAt(he+1))&64512)==56320?(re=65536+((re&1023)<<10)+(Ne&1023),he++,Z[ye++]=re>>18|240,Z[ye++]=re>>12&63|128,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128):(Z[ye++]=re>>12|224,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128);I=ye-F-O}else I=h(b,F+O,$);I<32?Z[F++]=160|I:I<256?(O<2&&Z.copyWithin(F+2,F+1,F+1+I),Z[F++]=217,Z[F++]=I):I<65536?(O<3&&Z.copyWithin(F+3,F+2,F+2+I),Z[F++]=218,Z[F++]=I>>8,Z[F++]=I&255):(O<5&&Z.copyWithin(F+5,F+3,F+3+I),Z[F++]=219,Vt.setUint32(F,I),F+=4),F+=I}else if(R==="number")if(b>>>0===b)b<64?Z[F++]=b:b<256?(Z[F++]=204,Z[F++]=b):b<65536?(Z[F++]=205,Z[F++]=b>>8,Z[F++]=b&255):(Z[F++]=206,Vt.setUint32(F,b),F+=4);else if(b>>0===b)b>=-32?Z[F++]=256+b:b>=-128?(Z[F++]=208,Z[F++]=b+256):b>=-32768?(Z[F++]=209,Vt.setInt16(F,b),F+=2):(Z[F++]=210,Vt.setInt32(F,b),F+=4);else{let z;if((z=this.useFloat32)>0&&b<4294967296&&b>=-2147483648){Z[F++]=202,Vt.setFloat32(F,b);let O;if(z<4||(O=b*Mc[(Z[F]&127)<<1|Z[F+1]>>7])>>0===O){F+=4;return}else F--}Z[F++]=203,Vt.setFloat64(F,b),F+=8}else if(R==="object")if(!b)Z[F++]=192;else{if(c){let O=c.get(b);if(O){if(!O.id){let $=c.idsToInsert||(c.idsToInsert=[]);O.id=$.push(O)}Z[F++]=214,Z[F++]=112,Vt.setUint32(F,O.id),F+=4;return}else c.set(b,{offset:F-r})}let z=b.constructor;if(z===Object)q(b,!0);else if(z===Array){I=b.length,I<16?Z[F++]=144|I:I<65536?(Z[F++]=220,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=221,Vt.setUint32(F,I),F+=4);for(let O=0;O<I;O++)A(b[O])}else if(z===Map){I=b.size,I<16?Z[F++]=128|I:I<65536?(Z[F++]=222,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=223,Vt.setUint32(F,I),F+=4);for(let[O,$]of b)A(O),A($)}else{for(let O=0,$=Pc.length;O<$;O++){let he=wh[O];if(b instanceof he){let re=Pc[O];if(re.write){re.type&&(Z[F++]=212,Z[F++]=re.type,Z[F++]=0),A(re.write.call(this,b));return}let Ne=Z,ye=Vt,Me=F;Z=null;let Fe;try{Fe=re.pack.call(this,b,k=>(Z=Ne,Ne=null,F+=k,F>Jn&&E(F),{target:Z,targetView:Vt,position:F-k}),A)}finally{Ne&&(Z=Ne,Vt=ye,F=Me,Jn=Z.length-10)}Fe&&(Fe.length+F>Jn&&E(Fe.length+F),F=RP(Fe,Z,F,re.type));return}}q(b,!b.hasOwnProperty)}}else if(R==="boolean")Z[F++]=b?195:194;else if(R==="bigint"){if(b<BigInt(1)<<BigInt(63)&&b>=-(BigInt(1)<<BigInt(63)))Z[F++]=211,Vt.setBigInt64(F,b);else if(b<BigInt(1)<<BigInt(64)&&b>0)Z[F++]=207,Vt.setBigUint64(F,b);else if(this.largeBigIntToFloat)Z[F++]=203,Vt.setFloat64(F,Number(b));else throw new RangeError(b+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");F+=8}else if(R==="undefined")this.encodeUndefinedAsNil?Z[F++]=192:(Z[F++]=212,Z[F++]=0,Z[F++]=0);else if(R==="function")A(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+R)},q=this.useRecords===!1?this.variableMapSize?b=>{let R=Object.keys(b),I=R.length;I<16?Z[F++]=128|I:I<65536?(Z[F++]=222,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=223,Vt.setUint32(F,I),F+=4);let z;for(let O=0;O<I;O++)A(z=R[O]),A(b[z])}:(b,R)=>{Z[F++]=222;let I=F-r;F+=2;let z=0;for(let O in b)(R||b.hasOwnProperty(O))&&(A(O),A(b[O]),z++);Z[I+++r]=z>>8,Z[I+r]=z&255}:b=>{let R=Object.keys(b),I,z=l.transitions||(l.transitions=Object.create(null)),O=0;for(let he=0,re=R.length;he<re;he++){let Ne=R[he];I=z[Ne],I||(I=z[Ne]=Object.create(null),O++),z=I}let $=z[ga];if($)$>=96&&T?(Z[F++]=(($-=96)&31)+96,Z[F++]=$>>5):Z[F++]=$;else{$=l.nextId,$||($=64),$<C&&this.shouldShareStructure&&!this.shouldShareStructure(R)?($=l.nextOwnId,$<B||($=C),l.nextOwnId=$+1):($>=B&&($=C),l.nextId=$+1);let he=R.highByte=$>=96&&T?$-96>>5:-1;z[ga]=$,l[$-64]=R,$<C?(R.isShared=!0,l.sharedLength=$-63,s=!0,he>=0?(Z[F++]=($&31)+96,Z[F++]=he):Z[F++]=$):(he>=0?(Z[F++]=213,Z[F++]=114,Z[F++]=($&31)+96,Z[F++]=he):(Z[F++]=212,Z[F++]=114,Z[F++]=$),O&&(D+=W*O),G.length>=S&&(G.shift()[ga]=0),G.push(z),A(R))}for(let he=0,re=R.length;he<re;he++)A(b[R[he]])},E=b=>{let R;if(b>16777216){if(b-r>r0)throw new Error("Packed buffer would be larger than maximum buffer size");R=Math.min(r0,Math.round(Math.max((b-r)*(b>67108864?1.25:2),4194304)/4096)*4096)}else R=(Math.max(b-r<<2,Z.length-1)>>12)+1<<12;let I=new Nh(R);return Vt=new DataView(I.buffer,0,R),Z.copy?Z.copy(I,0,r,b):I.set(Z.slice(r,b)),F-=r,r=0,Jn=I.length-10,Z=I}}useBuffer(e){Z=e,Vt=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),F=0}};wh=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Lc];Pc=[{pack(i,e,t){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:n,targetView:s,position:l}=e(6);n[l++]=214,n[l++]=255,s.setUint32(l,r)}else if(r>0&&r<17179869184){let{target:n,targetView:s,position:l}=e(10);n[l++]=215,n[l++]=255,s.setUint32(l,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),s.setUint32(l+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:n,targetView:s,position:l}=e(3);n[l++]=212,n[l++]=255,n[l++]=255}else{let{target:n,targetView:s,position:l}=e(15);n[l++]=199,n[l++]=12,n[l++]=255,s.setUint32(l,i.getMilliseconds()*1e6),s.setBigInt64(l+4,BigInt(Math.floor(r)))}}},{pack(i,e,t){let r=Array.from(i),{target:n,position:s}=e(this.structuredClone?3:0);this.structuredClone&&(n[s++]=212,n[s++]=115,n[s++]=0),t(r)}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=101,r[n++]=0),t([i.name,i.message])}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=120,r[n++]=0),t([i.source,i.flags])}},{pack(i,e){this.structuredClone?n0(i,16,e):i0(Dc?Buffer.from(i):new Uint8Array(i),e)}},{pack(i,e){let t=i.constructor;t!==t0&&this.structuredClone?n0(i,Sh.indexOf(t.name),e):i0(i,e)}},{pack(i,e){let{target:t,position:r}=e(1);t[r]=193}}];function n0(i,e,t,r){let n=i.byteLength;if(n+1<256){var{target:s,position:l}=t(4+n);s[l++]=199,s[l++]=n+1}else if(n+1<65536){var{target:s,position:l}=t(5+n);s[l++]=200,s[l++]=n+1>>8,s[l++]=n+1&255}else{var{target:s,position:l,targetView:c}=t(7+n);s[l++]=201,c.setUint32(l,n+1),l+=4}s[l++]=116,s[l++]=e,s.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),l)}function i0(i,e){let t=i.byteLength;var r,n;if(t<256){var{target:r,position:n}=e(t+2);r[n++]=196,r[n++]=t}else if(t<65536){var{target:r,position:n}=e(t+3);r[n++]=197,r[n++]=t>>8,r[n++]=t&255}else{var{target:r,position:n,targetView:s}=e(t+5);r[n++]=198,s.setUint32(n,t),n+=4}r.set(i,n)}function RP(i,e,t,r){let n=i.length;switch(n){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:n<256?(e[t++]=199,e[t++]=n):n<65536?(e[t++]=200,e[t++]=n>>8,e[t++]=n&255):(e[t++]=201,e[t++]=n>>24,e[t++]=n>>16&255,e[t++]=n>>8&255,e[t++]=n&255)}return e[t++]=r,e.set(i,t),t+=n,t}function zP(i,e){let t,r=e.length*6,n=i.length-r;for(e.sort((s,l)=>s.offset>l.offset?1:-1);t=e.pop();){let s=t.offset,l=t.id;i.copyWithin(s+r,s,n),r-=6;let c=s+r;i[c++]=214,i[c++]=105,i[c++]=l>>24,i[c++]=l>>16&255,i[c++]=l>>8&255,i[c++]=l&255,n=s}return i}function wo(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");wh.unshift(i.Class),Pc.unshift(i)}Qx(i)}var o0=new bs({useRecords:!1}),FP=o0.pack,VP=o0.pack;var s0=512,UP=1024;var a0=new bs({structuredClone:!0});wo({Class:On.prototype.constructor,type:1,write(i){return U({},i)},read(i){return Object.setPrototypeOf(i,On.prototype),i}});wo({Class:jt.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,jt.prototype),i}});wo({Class:Pn.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Pn.prototype),i}});wo({Class:Nc.prototype.constructor,type:4,write(i){return i.id},read(i){return new Nc(i)}});wo({Class:Cc.prototype.constructor,type:5,write(i){return i.data},read(i){return new Cc(i)}});function kP(i){var e=0;if(i.length===0)return e;for(let t=0;t<i.length;t++){let r=i[t];e=(e<<5)-e+r,e=e&e}return e}var Bc;(function(r){function i(n){return a0.pack(n)}r.serialize=i;function e(n){return a0.unpack(n)}r.deserialize=e;function t(n){return kP(i(n)).toString()}r.checksum=t})(Bc||(Bc={}));var Gc;(function(t){t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(r){return t.all.includes(r)}t.is=e})(Gc||(Gc={}));var jc;(function(t){function i(r){return e(r)}t.defaultData=i;function e(r){if(r==="PointLight")return{type:r,color:Hn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:2500,helper:!0};if(r==="SpotLight")return{type:r,color:Hn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:2500,helper:!0};if(r==="DirectionalLight")return{type:r,color:Hn.white,intensity:1,shadows:!0,size:2500,depth:2500,helper:!0};throw new Error("not implemented")}})(jc||(jc={}));var Ss;(function(r){r[r.Front=0]="Front",r[r.Back=1]="Back",r[r.Double=2]="Double"})(Ss||(Ss={}));var Ch;(function(t){t.defaultData={castShadow:!0,receiveShadow:!0};function e(r,n){return r.castShadow===n.castShadow&&r.receiveShadow===n.receiveShadow}t.equals=e})(Ch||(Ch={}));var Lh;(function(t){t.defaultData={flatShading:!1,wireframe:!1,side:0};function e(r,n){return r.flatShading===n.flatShading&&r.side===n.side&&r.wireframe===n.wireframe}t.equals=e})(Lh||(Lh={}));var Ec;(function(e){e.defaultData=fe(U(U({},Lh.defaultData),Ch.defaultData),{cloner:null})})(Ec||(Ec={}));var Lr;(function(n){n[n.Left=1]="Left",n[n.Right=2]="Right",n[n.Center=3]="Center",n[n.Justify=4]="Justify"})(Lr||(Lr={}));var xi;(function(r){r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom"})(xi||(xi={}));var Wi;(function(r){r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower"})(Wi||(Wi={}));var Rc;(function(e){e.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Hn.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"}})(Rc||(Rc={}));var Zt;(function(n){n[n.Normal=0]="Normal",n[n.Multiply=1]="Multiply",n[n.Screen=2]="Screen",n[n.Overlay=3]="Overlay"})(Zt||(Zt={}));var ws;(function(r){r[r.Linear=0]="Linear",r[r.Radial=1]="Radial",r[r.Polar=2]="Polar"})(ws||(ws={}));var zc;(function(r){r[r.RepeatWrapping=1e3]="RepeatWrapping",r[r.ClampToEdgeWrapping=1001]="ClampToEdgeWrapping",r[r.MirroredRepeatWrapping=1002]="MirroredRepeatWrapping"})(zc||(zc={}));var Fc;(function(n){n[n.UV=0]="UV",n[n.Planar=1]="Planar",n[n.Spherical=2]="Spherical",n[n.Cylindrical=3]="Cylindrical"})(Fc||(Fc={}));var Vc;(function(s){s[s.Simplex=0]="Simplex",s[s.SimplexFractal=1]="SimplexFractal",s[s.Ashima=2]="Ashima",s[s.Fbm=3]="Fbm",s[s.Perlin=4]="Perlin"})(Vc||(Vc={}));var Ns;(function(r){function i(n,s){return n==="light"&&s?e(s):t(n)}r.defaultData=i;function e(n){switch(n){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,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:.2,g:.2,b:.2,a:1},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(n){switch(n){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:ys.x,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Zr.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,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:fe(U({},Zr.fromHex(6710886)),{a:1}),colorB:fe(U({},Zr.fromHex(6710886)),{a:1}),colorC:fe(U({},Zr.fromHex(16777215)),{a:1}),colorD:fe(U({},Zr.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:Hn.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"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}}}})(Ns||(Ns={}));var Cs;(function(c){function i(f){return!f.layers.some(p=>{if(p.data.type==="texture"&&p.data.projection!==0||p.data.type==="depth"&&!p.data.isWorldSpace||p.data.type==="noise"||p.data.type==="displace")return!0})&&!t(f)}c.isMergable=i;function e(f){let h="";return f.layers.forEach(p=>{Object.entries(p.data).forEach(([y,g])=>{h+=`${y}${g}`,Array.isArray(g)?g.forEach(w=>h+=`${w}`):typeof g=="object"?Object.values(g).forEach(w=>{typeof w=="number"?h+=`${w.toFixed(4)}`:h+=`${w}`}):h+=`${g}`})}),h}c.getHash=e;function t(f){let h=0;for(let p of f.layers)"alpha"in p.data&&p.data.type!=="light"&&p.data.type!=="fresnel"&&(h+=(1-h)*p.data.alpha);return h<1}c.isTransparent=t;function r(){return{layers:new jt}}c.defaultEmptyData=r;function n(f="layer1",h="layer2"){return s("phong",f,h)}c.defaultData=n;function s(f,h="layer1",p="layer2"){let y=new jt;return y.push({fi:0,data:Ns.defaultData("light",f),id:h}),y.push({fi:1,data:Ns.defaultData("color"),id:p}),{layers:y}}c.defaultTwoLayerData=s;function l(f,h="basic",p="layer1",y="layer2"){let g=Ns.defaultData("texture");Object.assign(g.texture,{image:f});let w=new jt;return w.push({fi:0,data:g,id:p}),w.push({fi:1,data:Ns.defaultData("light",h),id:y}),{layers:w}}c.defaultTwoLayerTextureData=l})(Cs||(Cs={}));var Ls;(function(r){function i(){return{points:new jt,roundness:0,shapeHoles:[],isClosed:!1}}r.defaultData=i;function e(n,s){let{points:l}=s;if(l){for(let c of l)if(c.data.position[0]===n[0]&&c.data.position[1]===n[1])return!0}return!1}r.isOverlappingExistingPoint=e;function t(n,s){let l=n.controlNext,c=s.controlPrevious;return n.position[0]===l.position[0]&&n.position[1]===l.position[1]&&s.position[0]===c.position[0]&&s.position[1]===c.position[1]}r.isStraightLine=t})(Ls||(Ls={}));var Uc;(function(e){function i(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=i})(Uc||(Uc={}));var kc;(function(e){function i(t){if(t==="RectangleGeometry")return{width:320,height:320,type:t,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};if(t==="VectorGeometry")return{width:100,height:100,type:t,subdivisions:12,shape:Ls.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};throw new Error("not implemented")}e.defaultData=i})(kc||(kc={}));var ya;(function(n){n.identity=fe(U({},yc.identity),{hiddenMatrix:Ui.identity});function e(s){return{position:s.position,rotation:s.rotation,scale:s.scale,hiddenMatrix:s.hiddenMatrix}}n.fromObject=e;function t(s,l){return{position:(l==null?void 0:l.position)||s.position,rotation:(l==null?void 0:l.rotation)||s.rotation,scale:(l==null?void 0:l.scale)||s.scale,hiddenMatrix:(l==null?void 0:l.hiddenMatrix)||s.hiddenMatrix}}n.merge=t;function r(s,l){return{position:xs.isEqual(s.position,l.position)?null:l.position,rotation:xs.isEqual(s.rotation,l.rotation)?null:l.rotation,scale:xs.isEqual(s.scale,l.scale)?null:l.scale,hiddenMatrix:Ui.isEqual(s.hiddenMatrix,l.hiddenMatrix)?null:l.hiddenMatrix}}n.diff=r})(ya||(ya={}));var qi;(function(e){e.defaultData=U({states:new jt,events:new jt,visible:!0,raycastLock:!1},ya.identity)})(qi||(qi={}));var l0;(function(e){e.defaultData=U({type:"Empty"},qi.defaultData)})(l0||(l0={}));var _h;(function(e){e.defaultData=U(U({type:"Mesh"},qi.defaultData),Ec.defaultData)})(_h||(_h={}));var c0;(function(e){e.defaultData=U(U({type:"TextFrame"},qi.defaultData),Rc.defaultData)})(c0||(c0={}));var Hc;(function(e){e.defaultData=U(U(U({},qi.defaultData),ya.identity),bo.defaultData)})(Hc||(Hc={}));var u0;(function(e){function i(t){return U(U({},qi.defaultData),jc.defaultData(t))}e.defaultData=i})(u0||(u0={}));var f0;(function(t){t.defaultCamera=U({position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Ui.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new jt,events:new jt},bo.defaultData),t.defaultMeshObject=fe(U(U({name:"Rectangle"},qi.defaultData),_h.defaultData),{geometry:kc.defaultData("RectangleGeometry"),material:Cs.defaultTwoLayerData("basic","layer1","layer2")})})(f0||(f0={}));var h0;(function(t){function i(r,n){if(n===void 0)return r;let s=U({},r);return"material"in s&&"material"in n&&n.material&&(s.material=fh(s.material,l=>{if(typeof l!="string")for(let[c,f]of Object.entries(n.material.layers)){let h=l.layers.data(c);h&&vo(h,f)}}).data),s.materials&&n.materials&&(s.materials=fh(s.materials,l=>{var c,f;for(let h=0;h<s.materials.length;h++){let p=n.materials[h];if(typeof p!="string")for(let[y,g]of Object.entries(p.layers)){let w=(f=(c=l[h])==null?void 0:c.layers)==null?void 0:f.data(y);w&&vo(w,g)}}}).data),s}t.patchMaterialState=i;function e(r,n){var l,c;if(n===void 0)return r;let s=U({},r);if(Object.assign(s,ya.merge(s,n)),gs.is(r.type)){s.orthographic=U({},s.orthographic),s.perspective=U({},s.perspective);let f=n;((l=f.orthographic)==null?void 0:l.zoom)!==void 0&&(s.orthographic.zoom=f.orthographic.zoom),((c=f.perspective)==null?void 0:c.zoom)!==void 0&&(s.perspective.zoom=f.perspective.zoom)}else if(r.type==="Mesh")s.geometry=U({},s.geometry),Object.assign(s.geometry,n.geometry),s=i(s,n);else if(Gc.is(r.type)){let f=n;s.intensity!==void 0&&(s.intensity=f.intensity),f.color!==void 0&&(typeof f.color=="string"?s.color=f.color:s.color=Zr.clone(f.color))}return s}t.patch=e})(h0||(h0={}));var Yt=5855577;var d0=2857471;var Th=15711266;import{DoubleSide as HP,Mesh as WP,MeshBasicMaterial as qP,ShapeBufferGeometry as $P,Vector2 as JP,Vector3 as KP}from"three";import{FontLoader as XP}from"three/examples/jsm/loaders/FontLoader.js";var Ut=class extends WP{constructor({char:e,originalChar:t,fontFamily:r,letterSpacing:n,fontSize:s,LOD:l=16},c=new qP({color:0,opacity:1,visible:!0,transparent:!0,side:HP})){let f=Ut.loadChar(e,r,l);super(f.geometry,c);this.char=e,this.originalChar=t!=null?t:e,this.fontFamily=r,this.letterSpacing=n,this.fontSize=s,this.LOD=l,this.resolution=f.resolution,this.glyphsHa=f.glyphsHa,this.localPosition=new JP,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return Ut._fontPath}static set FONTS_PATH(e){Ut._fontPath=e}updatePosition(e,t){this.localPosition.copy(e);let r=new KP(this.localPosition.x,-this.localPosition.y,0);this.position.copy(r).add(t)}updateFontSize(e){let t=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*t*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let t=Ut.loadChar(this.char,e,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let t=Ut.loadChar(e,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let t=Ut.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new Ut(e).copy(this)}static loadFont(e){return new Promise(function(t,r){Ut.fontCache[e]?t(Ut.fontCache[e]):new XP().load(Ut.FONTS_PATH+e+".json",s=>{Ut.fontCache[e]=s,t(s)},void 0,r)})}static loadChar(e,t,r){if(Ut.charCache[e]){if(Ut.charCache[e][r]&&Ut.charCache[e][r].fontFamily===t)return Ut.charCache[e][r]}else Ut.charCache[e]={};let n=Ut.fontCache[t],s=n.generateShapes(e,1);return Ut.charCache[e][r]={geometry:new $P(s,r),fontFamily:t,resolution:n.data.resolution,glyphsHa:n.data.glyphs[e].ha},Ut.charCache[e][r]}},Rr=Ut;Rr.charCache={},Rr.fontCache={},Rr._fontPath="/_assets/_fonts/";import{DoubleSide as Vu,MeshBasicMaterial as fb,Vector3 as hb,Object3D as Q3}from"three";import{Mesh as AD}from"three";import{BufferGeometry as Dk,ConeBufferGeometry as QP,Float32BufferAttribute as Bk,Vector2 as Gk,Vector3 as jk}from"three";import{BufferGeometry as ZP,CylinderBufferGeometry as YP,Float32BufferAttribute as Ih,Vector2 as Dn,Vector3 as Wc}from"three";var p0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,p;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},i.parameters),r=t.width/2,n=(c=t.radiusTop)!=null?c:r,s=(f=t.radiusBottom)!=null?f:r;return n===s?(n=r,s=r):n>s?(n=r,s=s*r/n):(n=n*r/s,s=r),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs((p=t.depth)!=null?p:t.width),radiusTop:n,radiusBottom:s})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,radiusTop:h,radiusBottom:p,cornerRadius:y,cornerSegments:g,hollow:w}=i.parameters,S;return y||w?S=new qc(h,p,r,n,s,l,c,f*Math.PI/180,y,y,g,w):S=new YP(h,p,r,n,s,l,c,f*Math.PI/180),S.scale(1,1,t/e),Object.assign(S,{userData:fe(U({},i),{type:"CylinderGeometry"})})}};function $i(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function m0(i){return new Dn(i.y,-i.x)}var qc=class extends ZP{constructor(e,t,r,n,s,l,c,f,h,p,y,g,w=!1){super();this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,r=r||1,n=Math.floor(n)||8,s=Math.floor(s)||1,l=l!==void 0?l:!1,c=c!==void 0?c:0,f=f!==void 0?f:Math.PI*2,l&&(h=0,p=0);let S=[],T=[],C=[],B=[],G=0,D=r/2,W=new Wc,A=new Wc;w&&e==0&&(e=h),w&&t==0&&(t=p);let q=new Dn(e,D),E=new Dn(t,-D),b=null,R=null,I=null,z=null,O=q.clone().sub(E),$=0,he=0,re=0;g>0&&($=Math.min(e,t)*(1-g),he=e-$,re=t-$);let Ne=q.clone();Ne.x-=$;let ye=Math.PI-O.angle(),Me=O.angle(),Fe=Math.tan(Me/2),k=Math.tan(ye/2),H=Fe+k,_=g?H:k,J=g?H:Fe;if(h=Math.min(h,(e-he)/_,O.length()/H),p=Math.min(p,(t-re)/J,O.length()/H),h>0){let K=h/Fe;b=q.clone().sub(new Dn(K,h)),g&&(I=b.clone(),I.x-=$-H*h),q.sub(O.clone().setLength(K))}if(p>0){let K=p/k;R=E.clone().sub(new Dn(K,-p)),E.add(O.clone().setLength(K)),g&&(z=R.clone(),z.x-=$-H*p,Ne.sub(O.clone().setLength(K)))}O=q.clone().sub(E);let ee=O.length()<.5,oe=[];for(let K=0;K<=n;K++){let ae=[],ne=K/n,Ce=ne*f+c,Y=new Dn(Math.sin(Ce),Math.cos(Ce));z&&R?(se(ae,ne,Y,ye,p,z,-1,!0),se(ae,ne,Y,Me,p,R,-1,!1)):R?(ce(ae,Y,R.x,0,-1),se(ae,ne,Y,Me,p,R,-1,!1)):l||ce(ae,Y,t,re,-1);let le=m0(O).normalize();if($i(le,Y,W),!ee)for(let de=0;de<=s;de++){let xe=de/s,_e=O.clone().multiplyScalar(xe).add(E);$i(_e,Y,A),T.push(A.x,A.y,A.z),C.push(W.x,W.y,W.z),B.push(ne,.5+A.y/r),ae.push(G++)}if(I&&b?(se(ae,ne,Y,ye,h,b,1,!1),se(ae,ne,Y,Me,h,I,1,!0)):b?(se(ae,ne,Y,ye,h,b,1,!1),ce(ae,Y,b.x,0,1)):l||ce(ae,Y,e,he,1),g&&!ee){let de=m0(O).multiplyScalar(-1).normalize();$i(de,Y,W);for(let xe=0;xe<=s;xe++){let _e=xe/s,pe=O.clone().multiplyScalar(-_e).add(Ne);$i(pe,Y,A),T.push(A.x,A.y,A.z),C.push(W.x,W.y,W.z),B.push(ne,.5+A.y/r),ae.push(G++)}}g&&!l&&ae.push(ae[0]),oe.push(ae)}for(let K=0;K<oe.length-1;K++)for(let ae=0;ae<oe[0].length-1;ae++){if(l&&g&&ae==s)continue;let ne=oe[K][ae],Ce=oe[K+1][ae],Y=oe[K+1][ae+1],le=oe[K][ae+1],de=T[Y*3+0],xe=T[Y*3+2];S.push(ne,Ce,le),(de!=0||xe!=0)&&S.push(Ce,Y,le)}f<Math.PI*2&&(ue(-1,oe[0],c),ue(1,oe[oe.length-1],c+f)),this.setIndex(S),this.setAttribute("position",new Ih(T,3)),this.setAttribute("normal",new Ih(C,3)),this.setAttribute("uv",new Ih(B,2));function se(K,ae,ne,Ce,Y,le,de,xe){for(let _e=0;_e<y+1;_e++){let pe=_e/y,we=de<0?pe:1-pe;xe&&(we-=1),we*=Ce;let Ve=new Dn(Math.sin(we),Math.cos(we)*de),Ge=Ve.clone().multiplyScalar(Y).add(le);$i(Ge,ne,A),T.push(A.x,A.y,A.z),$i(Ve,ne,W),C.push(W.x,W.y,W.z),B.push(ae,.5+A.y/r),K.push(G++)}}function ce(K,ae,ne,Ce,Y){let le=new Wc,de=new Dn,xe=[ne,Ce];Y<0&&xe.reverse();for(let _e of xe)de.set(_e,D*Y),$i(de,ae,le),T.push(le.x,le.y,le.z),C.push(0,Y,0),B.push(.5,.5),K.push(G++)}function ue(K,ae,ne){let Ce=new Dn(Math.sin(ne),Math.cos(ne)),Y=new Dn(-Math.cos(ne),Math.sin(ne)),le=new Wc,de=K<0?(pe,we,Ve)=>S.push(pe,we,Ve):(pe,we,Ve)=>S.push(pe,Ve,we),xe=new Dn((e+t+he+re)/4,0);$i(xe,Ce,le),T.push(le.x,le.y,le.z),C.push(Y.x,0,Y.y),B.push(.5,.5);let _e=G++;for(let pe of ae){let we=T.slice(pe*3,pe*3+3);T.push(...we),C.push(Y.x,0,Y.y);let Ve=B.slice(pe*2,pe*2+2);B.push(...Ve),G++}for(let pe=_e+1;pe<G-1;pe++)de(_e,pe,pe+1);de(_e,G-1,_e+1)}}};var g0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,cornerRadiusTop:h,cornerRadiusBottom:p,cornerSegments:y}=i.parameters,g;return h>0||p>0||f<360?g=new qc(0,e/2,r,n,s,l,c,f*Math.PI/180,h,p,y,0,!0):g=new QP(e/2,r,n,s,l),g.scale(1,1,t/e),Object.assign(g,{userData:fe(U({},i),{type:"ConeGeometry"})})}};import{BoxBufferGeometry as e2,BufferGeometry as t2,Float32BufferAttribute as Mh,Vector3 as xa}from"three";var y0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,widthSegments:n,heightSegments:s,depthSegments:l,cornerRadius:c,cornerSegments:f}=i.parameters,h;return c==0?h=new e2(e,t,r,n,s,l):h=new x0(e,t,r,n,s,l,c,f),Object.assign(h,{userData:fe(U({},i),{type:"CubeGeometry"})})}},Ah=Math.PI/2,x0=class extends t2{constructor(e=1,t=1,r=1,n=1,s=1,l=1,c=0,f=4){super();this.type="BoxBufferGeometry";let h=this;n=Math.floor(n),s=Math.floor(s),l=Math.floor(l),f=Math.floor(f),c=Math.min(c,e/2,t/2,r/2);let p=[],y=[],g=[],w=[],S=0,T=0;C("z","y","x",-1,-1,r,t,e,l,s,0),C("z","y","x",1,-1,r,t,-e,l,s,1),C("x","z","y",1,1,e,r,t,n,l,2),C("x","z","y",1,-1,e,r,-t,n,l,3),C("x","y","z",1,-1,e,t,r,n,s,4),C("x","y","z",-1,-1,e,t,-r,n,s,5),c>0&&(B("z","y","x",-1,-1,1,r,t,e,l,0),B("z","y","x",1,-1,-1,r,t,e,l,1),B("z","y","x",-1,1,-1,r,t,e,l,1),B("z","y","x",1,1,1,r,t,e,l,0),B("x","y","z",-1,-1,-1,e,t,r,n,0),B("x","y","z",1,-1,1,e,t,r,n,1),B("x","y","z",-1,1,1,e,t,r,n,0),B("x","y","z",1,1,-1,e,t,r,n,1),B("y","x","z",-1,-1,1,t,e,r,s,0),B("y","x","z",1,-1,-1,t,e,r,s,1),B("y","x","z",1,1,1,t,e,r,s,1),B("y","x","z",-1,1,-1,t,e,r,s,0),G(1,1,1),G(-1,1,1),G(1,-1,1),G(-1,-1,1),G(1,1,-1),G(-1,1,-1),G(1,-1,-1),G(-1,-1,-1)),this.setIndex(p),this.setAttribute("position",new Mh(y,3)),this.setAttribute("normal",new Mh(g,3)),this.setAttribute("uv",new Mh(w,2));function C(D,W,A,q,E,b,R,I,z,O,$){let he=(b-2*c)/z,re=(R-2*c)/O,Ne=b/2-c,ye=R/2-c,Me=I/2,Fe=z+1,k=O+1,H=0,_=0,J=new xa;for(let ee=0;ee<k;ee++){let oe=ee*re-ye;for(let se=0;se<Fe;se++){let ce=se*he-Ne;J[D]=ce*q,J[W]=oe*E,J[A]=Me,y.push(J.x,J.y,J.z),J[D]=0,J[W]=0,J[A]=I>0?1:-1,g.push(J.x,J.y,J.z),w.push(se/z),w.push(1-ee/O),H+=1}}for(let ee=0;ee<O;ee++)for(let oe=0;oe<z;oe++){let se=S+oe+Fe*ee,ce=S+oe+Fe*(ee+1),ue=S+(oe+1)+Fe*(ee+1),K=S+(oe+1)+Fe*ee;p.push(se,ce,K),p.push(ce,ue,K),_+=6}h.addGroup(T,_,$),T+=_,S+=H}function B(D,W,A,q,E,b,R,I,z,O,$){let he=(R-2*c)/O,re=R/2-c,Ne=I/2-c,ye=z/2,Me=O+1,Fe=0,k=0,H=new xa,_=new xa;for(let J=0;J<f+1;J++){let ee=J/f*Ah,oe=Math.sin(ee)*c,se=(1-Math.cos(ee))*c,ce=Math.sin(ee),ue=Math.cos(ee);H[W]=(Ne+oe)*E,H[A]=(ye-se)*b,_[D]=0,_[W]=ce*Math.sign(H[W]),_[A]=ue*Math.sign(H[A]);for(let K=0;K<Me;K++){let ae=K*he-re;H[D]=ae*q,y.push(H.x,H.y,H.z),g.push(_.x,_.y,_.z),w.push(K/O),w.push(0),Fe+=1}}for(let J=0;J<f;J++)for(let ee=0;ee<O;ee++){let oe=S+ee+Me*J,se=S+ee+Me*(J+1),ce=S+(ee+1)+Me*(J+1),ue=S+(ee+1)+Me*J;p.push(oe,se,ue),p.push(se,ce,ue),k+=6}h.addGroup(T,k,$),T+=k,S+=Fe}function G(D,W,A){let q=new xa,E=new xa(e/2,t/2,r/2);E.subScalar(c);let b=[],R=D*W*A>0?(z,O,$)=>p.push(z,O,$):(z,O,$)=>p.push(z,$,O);for(let z=0;z<=f;z++){let O=[],$=Ah*(1-z/f),he=Math.cos($),re=Math.sin($),Ne=0;for(let ye=0;ye<=z;ye++){let Me=Math.cos(Ne),Fe=Math.sin(Ne);q.x=he*Me,q.y=re,q.z=he*Fe;let k=E.clone().addScaledVector(q,c);y.push(D*k.x,W*k.y,A*k.z),g.push(D*q.x,W*q.y,A*q.z),w.push(0,0),O.push(S++),Ne+=Ah/z}b.push(O)}let I=b.length-1;for(let z=0;z<I;z++){let O=b[z],$=b[z+1],he=O.length-1;R(O[0],$[1],$[0]);for(let re=1;re<=he;re++)R(O[re-1],O[re],$[re]),R(O[re],$[re+1],$[re])}}}};import{BufferGeometry as r2,Float32BufferAttribute as Oh,Triangle as n2,Vector3 as vi,Vector2 as Ph}from"three";var No=class extends r2{constructor(e=[],t=[],r="",n=1,s=.2,l=4){super();this.type="PolyhedronGeometryRound";let c=[],f=[],h=[];p(),y(),this.setAttribute("position",new Oh(c,3)),this.setAttribute("normal",new Oh(h,3)),this.setAttribute("uv",new Oh(f,2));return;function p(){var Fe;s=Math.min(1-1e-5,s),s==0&&(l=0);let w={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],S=new vi,T=S.clone(),C=new n2,B=s*n,G=n-B,D=l+1,W=new vi,A=(k,H)=>W.subVectors(k,H).normalize(),q=(k,H)=>Array(k).fill(void 0).map(H),E=q(e.length/3,(k,H)=>new vi().fromArray(e,H*3).setLength(n)),b=[],R=1e6;for(let k=0;k<E.length;k++){let H=E[k],_=[],J,ee,oe,se=1e10,ce=-1;for(;(ce=t.indexOf(k,ce+1))!=-1;){let ne=ce-ce%3;J=t[ne+(ce+1)%3],ee=t[ne+(ce+2)%3],oe=H.distanceToSquared(E[J]),se=Math.min(se,oe),_.push([J,ee,oe])}se+=1e-6;let ue=[],K=0,ae=_.length;for(let ne=0;ne<ae;ne++){[J,ee,oe]=_[K];let Ce=((Fe=b[J])==null?void 0:Fe.includes(k))==!0;oe<=se&&ue.push(J+ +Ce*R),K=_.findIndex(Y=>Y[0]==ee)}b.push(ue)}let I=[];{let k=0,H=0,_,J,ee=w==3;for(let oe=0;oe<=l;oe++){_=oe*(oe+1)/2,J=(oe+1)*(oe+2)/2;for(let se=0;se<l-oe;se++)[k,H]=[_+se+oe+2,J+se+oe+3],I.push(_,J,...ee?[H,_]:[k,J],H,k),[_,J]=[k,H];I.push(_,J,_+l+2)}}let z=S.clone(),O=S.clone(),$=S.clone(),he=S.clone(),re=S.clone(),Ne=[],ye=q(E.length,()=>q(w,()=>S.clone()));for(let k=0;k<E.length;k++){S.copy(E[k]).normalize(),z.copy(S).multiplyScalar(G);let H=b[k];for(let ue=0;ue<H.length;ue++){let K=H[ue],ae=H[(ue+1)%w];C.setFromPointsAndIndices(E,k,K%R,ae%R),C.b.sub(C.a).setLength(1e10).add(C.a),C.c.sub(C.a).setLength(1e10).add(C.a),C.closestPointToPoint(z,ye[k][ue])}let _=[],J=[],ee=[],oe=new vi;l==0&&[...ye[k]].reduce((ue,K)=>ue.add(K),oe).multiplyScalar(1/w);for(let ue=0;ue<w;ue++){let K=[],ae=(ue-1+w)%w,ne=ye[k][ae],Ce=ye[k][ue];S.copy(ne).sub(z),T.copy(Ce).sub(z);let Y=z.angleTo(S),le=S.angleTo(T),de=Math.cos(Y)*B;l==0?O.copy(oe):O.copy(z).setLength(G+de),J.push(de);let xe=[O,ne,Ce];for(let _e=0;_e<2;_e++){let pe=xe[_e],we=xe[_e+1];he.subVectors(pe,z),re.subVectors(we,z),$.crossVectors(he,re).normalize();for(let Ve=0;Ve<D;Ve++){let Ge=[Y,le][_e]*Ve/D;S.copy(he).applyAxisAngle($,Ge).add(z),_.push(S.clone()),_e&&(A(S,z),K.push([Ve==0?pe:S.clone(),W.clone()]))}_e&&(A(we,z),K.push([we,W.clone()]))}ee.push(K)}Ne.push(ee);let se=2*D,ce=2;for(let ue=0;ue<w;ue++){let K=se*ue,ae=se*((ue+1)%w),ne=[_[K]];for(let Y=1;Y<D;Y++){he=_[K+Y],re=_[ae+Y],ne.push(he);for(let le=1,de=Y-ce+1;le<=de;le++)S.lerpVectors(he,re,le/(de+1)),S.sub(z).setLength(J[ue]).add(z),ne.push(S.clone());ne.push(re)}for(let Y=0;Y<D;Y++)ne.push(_[Y+D+K]);ne.push(_[ae+D]);let Ce=I.map(Y=>ne[Y]);c.push(...Ce.map(Y=>[Y.x,Y.y,Y.z]).flat()),h.push(...Ce.map(Y=>(A(Y,z),[W.x,W.y,W.z])).flat())}}let Me=[];for(let k=0;k<b.length;k++)for(let H=0;H<w;H++){let _=b[k][H];if(_<R){let J=b[_].findIndex(se=>se%R==k),ee=Ne[k][H],oe=Ne[_][J];for(let se=0;se<D;se++){let ce=ee[se],ue=oe[D-se],K=ee[se+1],ae=oe[D-(se+1)];[ce,ue,K,K,ue,ae].forEach(ne=>{c.push(ne[0].x,ne[0].y,ne[0].z),h.push(ne[1].x,ne[1].y,ne[1].z)})}Me.push(ee[0][0],oe[D][0],ee[D][0],oe[0][0])}}for(;Me.length;){let k,H,_,J;[k,H]=Me.splice(0,2);let ee=[k];for(;k!=H;)ee.push(H),_=Me.indexOf(H),J=_%2,H=Me.splice(_-J,2)[1-J];W.subVectors(ee[0],ee[1]).cross(S.subVectors(ee[0],ee[2])).normalize();let oe=W.dot(ee[0])<0;oe&&W.negate();for(let se=1;se<=ee.length-2;se++)[ee[se+ +oe],ee[se+1-+oe],ee[0]].forEach(ce=>{c.push(ce.x,ce.y,ce.z),h.push(W.x,W.y,W.z)})}}function y(){let g=new vi;for(let E=0;E<c.length;E+=3){g.x=c[E+0],g.y=c[E+1],g.z=c[E+2];let b=A(g)/2/Math.PI+.5,R=q(g)/Math.PI+.5;f.push(b,1-R)}let w=new vi,S=new vi,T=new vi,C=new vi,B=new Ph,G=new Ph,D=new Ph,W=(E,b,R,I)=>{I<0&&E.x===1&&(f[b]=E.x-1),R.x===0&&R.z===0&&(f[b]=I/2/Math.PI+.5)};for(let E=0,b=0;E<c.length;E+=9,b+=6){w.set(c[E+0],c[E+1],c[E+2]),S.set(c[E+3],c[E+4],c[E+5]),T.set(c[E+6],c[E+7],c[E+8]),B.set(f[b+0],f[b+1]),G.set(f[b+2],f[b+3]),D.set(f[b+4],f[b+5]),C.copy(w).add(S).add(T).divideScalar(3);let R=A(C);W(B,b+0,w,R),W(G,b+2,S,R),W(D,b+4,T,R)}for(let E=0;E<f.length;E+=6){let b=f[E+0],R=f[E+2],I=f[E+4],z=Math.max(b,R,I),O=Math.min(b,R,I);z>.9&&O<.1&&(b<.2&&(f[E+0]+=1),R<.2&&(f[E+2]+=1),I<.2&&(f[E+4]+=1))}function A(E){return Math.atan2(E.z,-E.x)}function q(E){return Math.atan2(-E.y,Math.sqrt(E.x*E.x+E.z*E.z))}}}static fromJSON(e){return new No(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};import{DodecahedronBufferGeometry as i2}from"three";var v0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new $c(e*.5,s,l):new i2(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"DodecahedronGeometry"})})}},$c=class extends No{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=1/n,l=[-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,-s,-n,0,-s,n,0,s,-n,0,s,n,-s,-n,0,-s,n,0,s,-n,0,s,n,0,-n,0,-s,n,0,-s,-n,0,s,n,0,s],c=[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],f="DodecahedronGeometry";super(l,c,f,e,t,r);this.type=f}static fromJSON(e){return new $c(e.radius,e.corner,e.cornerSides)}};import{EventDispatcher as m2,Plane as g2,Shape as O0,Vector2 as bi,Vector3 as y2,MathUtils as zh,LineCurve as Fh,QuadraticBezierCurve as P0,CubicBezierCurve as Xc}from"three";import{CubicBezierCurve as Jc,EllipseCurve as o2,LineCurve as Kc,LineCurve3 as s2,MathUtils as a2,QuadraticBezierCurve as Dh,SplineCurve as l2,Vector2 as Bn,Vector3 as b0}from"three";var va=1e-12,ba=class{constructor(e){this.position=new Bn;this.startPosition=new Bn;this.uuid=a2.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new ba(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Sa=class extends ba{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Sa(this.parent).copy(this)}},Xn=class extends ba{constructor(e,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Sa(this),new Sa(this))}static create(e,t){let r=new Xn(e,new Bn(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}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 r=0,n=this.controls.length;r<n;r++){let s=this.controls[r];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 Xn(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}},Bh=i=>i,wa=new Bn,Gh=new Bn,c2=new Bn,u2=new Bn,f2=new Bn,h2=new Bn,S0=new b0,w0=new b0;function N0(i){let e=new Bn;e.addVectors(i.v0,wa.subVectors(i.v1,i.v0).multiplyScalar(2/3));let t=new Bn;return t.addVectors(i.v2,Gh.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new Jc(i.v0,e,t,i.v2)}function Na(i,e,t=Number.EPSILON){return Math.abs(i-e)<t}function d2(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function p2(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function jh(i,e,t){let r=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),n=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),s=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2));return Math.acos((n*n+r*r-s*s)/(2*n*r))}function C0(i,e,t,r,n){let s=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),l=(i.y+e.y)/2,c=(i.x+e.x)/2,f=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(i.y-e.y)/s,h=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(e.x-i.x)/s;return r.set(c+f,l+h),n.set(c-f,l-h),[r,n]}function L0(i,e,t){let r=i.distanceTo(t),n=e.distanceTo(t);return r<n?e:i}function _0(i,e,t,r,n,s){let l=e.x-i.x,c=e.y-i.y,f=t.x-i.x,h=t.y-i.y,p=Math.sqrt((l+f)*(l+f)+(c+h)*(c+h)),y;return jh(e,i,t)>Math.PI&&(p*=-1),Na(h,c)?y=(c+h)*(r/p-.5)*8/3/(l-f):y=(l+f)*(r/p-.5)*8/3/(h-c),n.set(e.x-y*c,e.y+y*l),s.set(t.x+y*h,t.y-y*f),[n,s]}function Eh(i,e){return i.position.equals(i.controls[1].position)&&e.position.equals(e.controls[0].position)}function T0(i,e,t,r,n=.5){let s=wa.subVectors(e,i).multiplyScalar(n).add(i),l=Gh.subVectors(t,e).multiplyScalar(n).add(e),c=c2.subVectors(r,t).multiplyScalar(n).add(t),f=s,h=u2.subVectors(l,s).multiplyScalar(n).add(s),p=f2.subVectors(c,l).multiplyScalar(n).add(l),y=c,g=h2.subVectors(p,h).multiplyScalar(n).add(h);return[i.x,i.y,f.x,f.y,h.x,h.y,g.x,g.y,p.x,p.y,y.x,y.y,r.x,r.y]}function I0(i,e,t=12,r=!0){let n=w0.set(0,0,0),s,l=0,c=[];for(let f=0;f<e.length;f++){let h=Bh(e[f]),p=wa,y=Ji(h,t);c.push(y);for(let g=0;g<=y;g++)if(h instanceof Jc||h instanceof Dh||h instanceof Kc){if(h.getPoint(g/y,p),n.set(p.x,p.y,0),s!==void 0&&p2(s,n))continue;s===void 0&&(s=S0),s.copy(n),i.setXYZ(l,n.x,n.y,n.z),l++}}return r&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),i}function M0(i,e,t,r=12,n=!0){let s=w0.set(0,0,0),l=0,c=[];for(let f=0;f<e.length;f++){if(t[f]===!1)continue;let h,p=Bh(e[f]),y=wa,g=Ji(p,r);c.push(g);for(let w=0;w<=g;w++)if(p instanceof Jc||p instanceof Dh||p instanceof Kc){if(p.getPoint(w/g,y),s.set(y.x,y.y,0),h==null?void 0:h.equals(s))continue;h===void 0?h=S0:(i.setXYZ(l,h.x,h.y,h.z),l++,i.setXYZ(l,s.x,s.y,s.z),l++),h.copy(s)}}return n&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),c}function Rh(i,e=12,t=!1){let r=[];for(let n=0,s=i.length;n<s;n++){let l=i[n],c=0;if(t&&l.roundedCurveCorner!==void 0){let f=Ji(l.roundedCurveCorner,e)*.5;n>0&&(r[n-1]+=f),c+=f}l.curveAfter!==void 0&&(c+=Ji(l.curveAfter,e)),r.push(c)}return i.length>0&&t&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Ji(i[0].roundedCurveCorner,e)*.5),r}function Ji(i,e=12){return i&&i instanceof o2?e*2:i&&(i instanceof Kc||i instanceof s2)?1:i&&i instanceof l2?e*i.points.length:e}function A0(i,e,t=12,r=!0){let n,s=0;for(let l=0;l<e.length;l++){let c=Bh(e[l]),f=Ji(c,t),h=wa;for(let p=0;p<=f;p++)if(c instanceof Jc||c instanceof Dh||c instanceof Kc){if(c.getPoint(p/f,h),n!==void 0&&d2(n,h,va))continue;n===void 0&&(n=Gh),n.copy(h),i.push(h.x,h.y),s++}}return Na(i[0],i[i.length-2],va)&&Na(i[1],i[i.length-1],va)&&(i.pop(),i.pop()),r&&s>1&&!(Na(i[s-1],i[1],va)&&Na(i[s-2],i[0],va))&&(i.push(i[0],i[1]),s++),i}var Vh=new bi,x2=new bi,v2=new bi,b2=new bi,S2=new bi,w2=new bi,st=class extends O0{constructor(e=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new m2;this.plane=new g2(new y2(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=zh.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=t}static createFromState(e,t,r){let n=new st;return n.isClosed=e.isClosed,n.points=e.points.map(s=>Xn.create(s.id,s.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(s=>st.createFromState(s)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}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,r=this.points.length;t<r;t++)this.points[t].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(e){return this.points.findIndex(t=>t.uuid===e)}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let t=0,r=this.shapeHoles.length;t<r;t++){let n=this.shapeHoles[t],s=e-this.points.length;if(s<=n.points.length-1)return n.points[s]}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 r=0,n=this.shapeHoles.length;r<n;r++){let s=this.shapeHoles[r],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 r=Vh.set(e,t);for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];l.position.multiply(r),l.controls[0].position.multiply(r),l.controls[1].position.multiply(r)}for(let n=0,s=this.shapeHoles.length;n<s;n++)this.shapeHoles[n].applyScale(e,t);this._update(!1)}createPoint(e,t=0,r=zh.generateUUID()){let n;e instanceof bi?n=e:n=new bi(e,t);let s=new Xn(r,n);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,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===e)return n}}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(r=>r.uuid===e);t&&this.removePoint(t)}update(e=!0){for(let t=0,r=this.shapeHoles.length;t<r;t++)this.shapeHoles[t].update(!1);this._update(e)}extractShapePointsToBuffer(e,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return I0(e,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Rh(this.points,e,!1),this.roundedCurveDivisions=Rh(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,t,r=12){return M0(e,this.curves,t,r,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),A0(e,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(e,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,s=0;t&&this.points[0].roundedCurveCorner!==void 0&&(s=Ji(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=n.reduce((c,f)=>c+f,0));for(let c=0,f=n.length;c<f;c++){let h=n[c];if(l<r+h)return[c,(l-r+1)/h];r+=h}return[0,1]}getCurveT(e,t,r){let n=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Eh(n,s)){let p=n.position.distanceTo(s.position);return n.position.distanceTo(Vh.set(r.x,r.y))/p}let f=0;for(let p=0;p<e;p++)f+=l[p];return(t-f)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,t){Eh(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 r=this.curves[this.curves.length-1];e.curveBefore=r,t.curveAfter=r;let n=r.clone();e.roundedCurveBefore=n,t.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(e=!0){var r;if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];if(n===0)this.moveTo(l.position.x,l.position.y);else{let c=this.points[n-1];this._applyCurveForPoint(l,c)}}let t=this.getLastPoint();if((t==null?void 0:t.curveAfter)&&(t.curveAfter=void 0),this.isClosed){let n=this.points[0],s=this.points[this.points.length-1];this._applyCurveForPoint(n,s)}if(this.points.length>2){let n=0;for(let s=0,l=this.points.length;s<l;s++){let c=this.points[s],f=c.roundness;if(!c.controlsMoved()&&f>0){let h=c.curveBefore,p=c.curveAfter;if(h===void 0||p===void 0)continue;let y=c.roundedCurveBefore,g=c.roundedCurveAfter,w=h.getLength(),S=p.getLength(),T=Math.min(f,w*.499),C=Math.min(f,S*.499),B=Math.min(T,C),G=1-B/w,D=B/S,W=h.getPointAt(G,Vh),A=p.getPointAt(D,x2);this._subSplitCurve(h,y,G,W,void 0),this._subSplitCurve(p,g,D,void 0,A);let q;if(this.useCubicForRoundedCorners){let E=jh(W,c.position,A)/2,b=Math.tan(E)*W.distanceTo(c.position),[R,I]=C0(W,A,b,v2,b2),z=L0(R,I,c.position),[O,$]=_0(z,W,A,b,S2,w2);q=new Xc(W.clone(),O.clone(),$.clone(),A.clone())}else q=new P0(W.clone(),c.position.clone(),A.clone());c.roundedCurveCorner=q,this.roundedCurves.splice(s+n,0,q),n++}}}e&&((r=this.eventDispatcher)==null||r.dispatchEvent({type:"update"}))}_subSplitCurve(e,t,r,n,s){if(e instanceof Fh)n!==void 0&&t.v2.copy(n),s!==void 0&&t.v1.copy(s);else{let l=e,c=t,f=l.getUtoTmapping(r,0),h=T0(l.v0,l.v1,l.v2,l.v3,f);return n!==void 0&&(c.v0.set(h[0],h[1]),c.v1.set(h[2],h[3]),c.v2.set(h[4],h[5]),c.v3.set(h[6],h[7])),s!==void 0&&(c.v0.set(h[6],h[7]),c.v1.set(h[8],h[9]),c.v2.set(h[10],h[11]),c.v3.set(h[12],h[13])),c}return t}clone(){let e=new st(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){var r;this.points=[],this.pointIDs=0;let t=e.points.length/7;for(let n=0;n<t;n++){let s=n*7,l=e.points[s+0],c=e.points[s+1],f=e.points[s+2],h=e.points[s+3],p=e.points[s+4],y=e.points[s+5],g=e.points[s+6],w=new Xn(zh.generateUUID(),new bi(l,c));w.controls[0].position.set(f,h),w.controls[1].position.set(p,y),w.roundness=g,this.points.push(w)}return this.shapeHoles=((r=e.shapeHoles)==null?void 0:r.length)?e.shapeHoles.map(n=>{let s=new st;return s.fromJSON(n),s}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let t=(n,s)=>{s instanceof Xc&&s.v3.equals(n.position)&&n.controls[0].position.copy(s.v2)},r=n=>{let s=[],l,c;for(l=0,c=n.length;l<c;l++)n[l]instanceof P0&&(n[l]=N0(n[l]));for(l=0,c=n.length;l<c;l++){let p=n[l],y=l>0?n[l-1]:null,g;p instanceof Xc?(g=this.createPoint(p.v0),g.controls[1].position.copy(p.v1)):p instanceof Fh&&(g=this.createPoint(p.v1)),g!==void 0&&(y!==null&&t(g,y),s.push(g))}let f=n[n.length-1],h=!1;return f instanceof Xc?f.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(f.v2),h=!0):f instanceof Fh&&f.v2.equals(s[0].position)&&(h=!0),this.isClosed=h,s};return this.points=r(e.curves),e instanceof O0&&(this.shapeHoles=e.holes.map(n=>{let s=new st;return s.fromShape(n),s})),this.update(),this}};var Uh=Math.PI*2;function kh({x:i,y:e},t,r,n,s){return{x:i*t+n,y:e*r+s}}function N2(i,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:4/3*Math.tan(e/4),r=Math.cos(i),n=Math.sin(i),s=Math.cos(i+e),l=Math.sin(i+e);return[{x:r-n*t,y:n+r*t},{x:s+l*t,y:l-s*t},{x:s,y:l}]}function D0(i,e,t,r){let n=i*r-e*t<0?-1:1,s=Math.min(1,Math.max(-1,i*t+e*r));return n*Math.acos(s)}function C2(i,e,t,r,n,s,l,c,f,h){let p=Math.pow(n,2),y=Math.pow(s,2),g=Math.pow(l,2),w=Math.pow(c,2),S=p*y-p*w-y*g;S<0&&(S=0),S/=p*w+y*g,S=Math.sqrt(S)*(f===h?-1:1);let T=S*n/s*c,C=S*-s/n*l,B=T+(i+t)/2,G=C+(e+r)/2,D=(l-T)/n,W=(c-C)/s,A=(-l-T)/n,q=(-c-C)/s,E=D0(1,0,D,W),b=D0(D,W,A,q);return!h&&b>0&&(b-=Uh),h&&b<0&&(b+=Uh),{centerx:B,centery:G,ang1:E,ang2:b}}function B0({px:i,py:e,cx:t,cy:r,rx:n,ry:s,largeArcFlag:l,sweepFlag:c}){let f=[];if(n===0||s===0)return[];let h=(i-t)/2,p=(e-r)/2;if(h===0&&p===0)return[];n=Math.abs(n),s=Math.abs(s);let y=Math.pow(h,2)/Math.pow(n,2)+Math.pow(p,2)/Math.pow(s,2);y>1&&(n*=Math.sqrt(y),s*=Math.sqrt(y));let g=C2(i,e,t,r,n,s,h,p,l,c),{ang1:w,ang2:S}=g,{centerx:T,centery:C}=g,B=Math.abs(S)/(Uh/4);Math.abs(1-B)<1e-7&&(B=1);let G=Math.max(Math.ceil(B),1);S/=G;for(let D=0;D<G;D++)f.push(N2(w,S)),w+=S;return f.map(D=>{let{x:W,y:A}=kh(D[0],n,s,T,C),{x:q,y:E}=kh(D[1],n,s,T,C),{x:b,y:R}=kh(D[2],n,s,T,C);return{x1:W,y1:A,x2:q,y2:E,x:b,y:R}})}import{BufferAttribute as Yc,BufferGeometry as M2}from"three";var Pt;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Pt||(Pt={}));var Qt;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Qt||(Qt={}));function Ae(i,e){if(!i)throw e||"Assertion Failed!"}var Te=function(){function i(){}return i.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},i.vertLeq=function(e,t){return e.s<t.s||e.s===t.s&&e.t<=t.t},i.transLeq=function(e,t){return e.t<t.t||e.t===t.t&&e.s<=t.s},i.edgeGoesLeft=function(e){return i.vertLeq(e.Dst,e.Org)},i.edgeGoesRight=function(e){return i.vertLeq(e.Org,e.Dst)},i.vertL1dist=function(e,t){return Math.abs(e.s-t.s)+Math.abs(e.t-t.t)},i.edgeEval=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?n<s?t.t-e.t+(e.t-r.t)*(n/(n+s)):t.t-r.t+(r.t-e.t)*(s/(n+s)):0},i.edgeSign=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?(t.t-r.t)*n+(t.t-e.t)*s:0},i.transEval=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?n<s?t.s-e.s+(e.s-r.s)*(n/(n+s)):t.s-r.s+(r.s-e.s)*(s/(n+s)):0},i.transSign=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?(t.s-r.s)*n+(t.s-e.s)*s:0},i.vertCCW=function(e,t,r){return e.s*(t.t-r.t)+t.s*(r.t-e.t)+r.s*(e.t-t.t)>=0},i.interpolate=function(e,t,r,n){return e=e<0?0:e,r=r<0?0:r,e<=r?r===0?(t+n)/2:t+(n-t)*(e/(e+r)):n+(t-n)*(r/(e+r))},i.intersect=function(e,t,r,n,s){var l,c,f;i.vertLeq(e,t)||(f=e,e=t,t=f),i.vertLeq(r,n)||(f=r,r=n,n=f),i.vertLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.vertLeq(r,t)?i.vertLeq(t,n)?(l=i.edgeEval(e,r,t),c=i.edgeEval(r,t,n),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,t.s)):(l=i.edgeSign(e,r,t),c=-i.edgeSign(e,n,t),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,n.s)):s.s=(r.s+t.s)/2,i.transLeq(e,t)||(f=e,e=t,t=f),i.transLeq(r,n)||(f=r,r=n,n=f),i.transLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.transLeq(r,t)?i.transLeq(t,n)?(l=i.transEval(e,r,t),c=i.transEval(r,t,n),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,t.t)):(l=i.transSign(e,r,t),c=-i.transSign(e,n,t),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,n.t)):s.t=(r.t+t.t)/2},i}(),Ca=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Zc=function(){function i(e){this.side=e,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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),i}(),_s=function(){function i(){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 i}(),G0=function(){function i(){var e=new _s,t=new Ca,r=new Zc(0),n=new Zc(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,r.next=r,r.Sym=n,n.next=n,n.Sym=r,this.vHead=e,this.fHead=t,this.eHead=r,this.eHeadSym=n}return i.prototype.makeEdge_=function(e){var t=new Zc(0),r=new Zc(1);e.Sym.side<e.side&&(e=e.Sym);var n=e.Sym.next;return r.next=n,n.Sym.next=t,t.next=e,e.Sym.next=r,t.Sym=r,t.Onext=t,t.Lnext=r,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,r.Sym=t,r.Onext=r,r.Lnext=t,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,t},i.prototype.splice_=function(e,t){var r=e.Onext,n=t.Onext;r.Sym.Lnext=t,n.Sym.Lnext=e,e.Onext=n,t.Onext=r},i.prototype.makeVertex_=function(e,t,r){var n=e;Ae(n,"Vertex can't be null!");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t;var l=t;do l.Org=n,l=l.Onext;while(l!==t)},i.prototype.makeFace_=function(e,t,r){var n=e;Ae(n,"Face can't be null");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t,n.trail=null,n.marked=!1,n.inside=r.inside;var l=t;do l.Lface=n,l=l.Lnext;while(l!==t)},i.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var t=e.next,r=e.Sym.next;t.Sym.next=r,r.Sym.next=t},i.prototype.killVertex_=function(e,t){var r=e.anEdge,n=r;do n.Org=t,n=n.Onext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.killFace_=function(e,t){var r=e.anEdge,n=r;do n.Lface=t,n=n.Lnext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.makeEdge=function(){var e=new _s,t=new _s,r=new Ca,n=this.makeEdge_(this.eHead);return this.makeVertex_(e,n,this.vHead),this.makeVertex_(t,n.Sym,this.vHead),this.makeFace_(r,n,this.fHead),n},i.prototype.splice=function(e,t){var r=!1,n=!1;if(e!==t){if(t.Org!==e.Org&&(n=!0,this.killVertex_(t.Org,e.Org)),t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(t,e),!n){var s=new _s;this.makeVertex_(s,t,e.Org),e.Org.anEdge=e}if(!r){var l=new Ca;this.makeFace_(l,t,e.Lface),e.Lface.anEdge=e}}},i.prototype.delete=function(e){var t=e.Sym,r=!1;if(e.Lface!==e.Rface&&(r=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!r){var n=new Ca;this.makeFace_(n,e,e.Lface)}t.Onext===t?(this.killVertex_(t.Org,null),this.killFace_(t.Lface,null)):(e.Lface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),this.killEdge_(e)},i.prototype.addEdgeVertex=function(e){var t=this.makeEdge_(e),r=t.Sym;this.splice_(t,e.Lnext),t.Org=e.Dst;var n=new _s;return this.makeVertex_(n,r,t.Org),t.Lface=r.Lface=e.Lface,t},i.prototype.splitEdge=function(e){var t=this.addEdgeVertex(e),r=t.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,r),e.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=e.Rface,r.winding=e.winding,r.Sym.winding=e.Sym.winding,r.idx=e.idx,r.Sym.idx=e.Sym.idx,r},i.prototype.connect=function(e,t){var r=!1,n=this.makeEdge_(e),s=n.Sym;if(t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(n,e.Lnext),this.splice_(s,t),n.Org=e.Dst,s.Org=t.Org,n.Lface=s.Lface=e.Lface,e.Lface.anEdge=s,!r){var l=new Ca;this.makeFace_(l,n,e.Lface)}return n},i.prototype.zapFace=function(e){var t=e.anEdge,r,n,s,l,c;n=t.Lnext;do r=n,n=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),s=r.Sym,s.Onext===s?this.killVertex_(s.Org,null):(s.Org.anEdge=s.Onext,this.splice_(s,s.Oprev)),this.killEdge_(r));while(r!=t);l=e.prev,c=e.next,c.prev=l,l.next=c},i.prototype.countFaceVerts_=function(e){var t=e.anEdge,r=0;do r++,t=t.Lnext;while(t!==e.anEdge);return r},i.prototype.mergeConvexFaces=function(e){var t,r,n,s,l,c,f;for(t=this.fHead.next;t!==this.fHead;t=t.next)if(!!t.inside)for(r=t.anEdge,l=r.Org;n=r.Lnext,s=r.Sym,s&&s.Lface&&s.Lface.inside&&(c=this.countFaceVerts_(t),f=this.countFaceVerts_(s.Lface),c+f-2<=e&&Te.vertCCW(r.Lprev.Org,r.Org,s.Lnext.Lnext.Org)&&Te.vertCCW(s.Lprev.Org,s.Org,r.Lnext.Lnext.Org)&&(n=s.Lnext,this.delete(s),r=null,s=null)),!(r&&r.Lnext.Org===l);)r=n;return!0},i.prototype.check=function(){var e=this.fHead,t=this.vHead,r=this.eHead,n,s,l,c,f,h;for(s=e,s=e;(n=s.next)!==e;s=n){Ae(n.prev===s),f=n.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Lface===n),f=f.Lnext;while(f!==n.anEdge)}for(Ae(n.prev===s&&n.anEdge===null),c=t,c=t;(l=c.next)!==t;c=l){Ae(l.prev===c),f=l.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Org===l),f=f.Onext;while(f!==l.anEdge)}for(Ae(l.prev===c&&l.anEdge===null),h=r,h=r;(f=h.next)!==r;h=f)Ae(f.Sym.next===h.Sym),Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Org!==null),Ae(f.Dst!==null),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f);Ae(f.Sym.next===h.Sym&&f.Sym===this.eHeadSym&&f.Sym.Sym===f&&f.Org===null&&f.Dst===null&&f.Lface===null&&f.Rface===null)},i}(),j0=function(){function i(){this.handle=null}return i}(),E0=function(){function i(){this.key=null,this.node=0}return i}(),L2=function(){function i(e,t){this.leq=t,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var r=0;r<e+1;r++)this.nodes[r]=new j0,this.handles[r]=new E0;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e<<1,l<this.size&&this.leq(r[t[l+1].handle].key,r[t[l].handle].key)&&++l,Ae(l<=this.max),s=t[l].handle,l>this.size||this.leq(r[n].key,r[s].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.floatUp_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e>>1,s=t[l].handle,l===0||this.leq(r[s].key,r[n].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(e){var t,r;if(t=++this.size,t*2>this.max){this.max*=2;var n,s;for(s=this.nodes.length,this.nodes.length=this.max+1,n=s;n<this.nodes.length;n++)this.nodes[n]=new j0;for(s=this.handles.length,this.handles.length=this.max+1,n=s;n<this.handles.length;n++)this.handles[n]=new E0}return this.freeList===0?r=t:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[t].handle=r,this.handles[r].node=t,this.handles[r].key=e,this.initialized&&this.floatUp_(t),r},i.prototype.extractMin=function(){var e=this.nodes,t=this.handles,r=e[1].handle,n=t[r].key;return this.size>0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[r].key=null,t[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),n},i.prototype.delete=function(e){var t=this.nodes,r=this.handles,n;Ae(e>=1&&e<=this.max&&r[e].key!==null),n=r[e].node,t[n].handle=t[this.size].handle,r[t[n].handle].node=n,--this.size,n<=this.size&&(n<=1||this.leq(r[t[n>>1].handle].key,r[t[n].handle].key)?this.floatDown_(n):this.floatUp_(n)),r[e].key=null,r[e].node=this.freeList,this.freeList=e},i}(),Hh=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),R0=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),_2=function(){function i(e,t){this.frame=e,this.leq=t,this.head=new R0,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(e){return this.insertBefore(this.head,e)},i.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},i.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var r=new R0;return r.key=t,r.next=e.next,e.next.prev=r,r.prev=e,e.next=r,r},i.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},i}(),T2=function(){function i(){}return i.regionBelow=function(e){return e.nodeUp.prev.key},i.regionAbove=function(e){return e.nodeUp.next.key},i.debugEvent=function(e){},i.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.edgeLeq=function(e,t,r){var n=e.event,s=t.eUp,l=r.eUp;if(s.Dst===n)return l.Dst===n?Te.vertLeq(s.Org,l.Org)?Te.edgeSign(l.Dst,s.Org,l.Org)<=0:Te.edgeSign(s.Dst,l.Org,s.Org)>=0:Te.edgeSign(l.Dst,n,l.Org)<=0;if(l.Dst===n)return Te.edgeSign(s.Dst,n,s.Org)>=0;var c=Te.edgeEval(s.Dst,n,s.Org),f=Te.edgeEval(l.Dst,n,l.Org);return c>=f},i.deleteRegion=function(e,t){t.fixUpperEdge&&Ae(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},i.fixUpperEdge=function(e,t,r){Ae(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=r,r.activeRegion=t},i.topLeftRegion=function(e,t){var r=t.eUp.Org,n;do t=i.regionAbove(t);while(t.eUp.Org===r);if(t.fixUpperEdge){if(n=e.mesh.connect(i.regionBelow(t).eUp.Sym,t.eUp.Lnext),n===null)return null;i.fixUpperEdge(e,t,n),t=i.regionAbove(t)}return t},i.topRightRegion=function(e){var t=e.eUp.Dst;do e=i.regionAbove(e);while(e.eUp.Dst===t);return e},i.addRegionBelow=function(e,t,r){var n=new Hh;return n.eUp=r,n.nodeUp=e.dict.insertBefore(t.nodeUp,n),n.fixUpperEdge=!1,n.sentinel=!1,n.dirty=!1,r.activeRegion=n,n},i.isWindingInside=function(e,t){switch(e.windingRule){case Pt.ODD:return(t&1)!=0;case Pt.NONZERO:return t!==0;case Pt.POSITIVE:return t>0;case Pt.NEGATIVE:return t<0;case Pt.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(e,t){t.windingNumber=i.regionAbove(t).windingNumber+t.eUp.winding,t.inside=i.isWindingInside(e,t.windingNumber)},i.finishRegion=function(e,t){var r=t.eUp,n=r.Lface;n.inside=t.inside,n.anEdge=r,i.deleteRegion(e,t)},i.finishLeftRegions=function(e,t,r){for(var n,s=null,l=t,c=t.eUp;l!==r;){if(l.fixUpperEdge=!1,s=i.regionBelow(l),n=s.eUp,n.Org!=c.Org){if(!s.fixUpperEdge){i.finishRegion(e,l);break}n=e.mesh.connect(c.Lprev,n.Sym),i.fixUpperEdge(e,s,n)}c.Onext!==n&&(e.mesh.splice(n.Oprev,n),e.mesh.splice(c,n)),i.finishRegion(e,l),c=s.eUp,l=s}return c},i.addRightEdges=function(e,t,r,n,s,l){var c,f,h,p,y=!0;h=r;do Ae(Te.vertLeq(h.Org,h.Dst)),i.addRegionBelow(e,t,h.Sym),h=h.Onext;while(h!==n);for(s===null&&(s=i.regionBelow(t).eUp.Rprev),f=t,p=s;c=i.regionBelow(f),h=c.eUp.Sym,h.Org===p.Org;)h.Onext!==p&&(e.mesh.splice(h.Oprev,h),e.mesh.splice(p.Oprev,h)),c.windingNumber=f.windingNumber-h.winding,c.inside=i.isWindingInside(e,c.windingNumber),f.dirty=!0,!y&&i.checkForRightSplice(e,f)&&(i.addWinding(h,p),i.deleteRegion(e,f),e.mesh.delete(p)),y=!1,f=c,p=h;f.dirty=!0,Ae(f.windingNumber-h.winding===c.windingNumber),l&&i.walkDirtyRegions(e,f)},i.spliceMergeVertices=function(e,t,r){e.mesh.splice(t,r)},i.vertexWeights=function(e,t,r){var n=Te.vertL1dist(t,e),s=Te.vertL1dist(r,e),l=.5*s/(n+s),c=.5*n/(n+s);e.coords[0]+=l*t.coords[0]+c*r.coords[0],e.coords[1]+=l*t.coords[1]+c*r.coords[1],e.coords[2]+=l*t.coords[2]+c*r.coords[2]},i.getIntersectData=function(e,t,r,n,s,l){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,i.vertexWeights(t,r,n),i.vertexWeights(t,s,l)},i.checkForRightSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp;if(Te.vertLeq(n.Org,s.Org)){if(Te.edgeSign(s.Dst,n.Org,s.Org)>0)return!1;Te.vertEq(n.Org,s.Org)?n.Org!==s.Org&&(e.pq.delete(n.Org.pqHandle),i.spliceMergeVertices(e,s.Oprev,n)):(e.mesh.splitEdge(s.Sym),e.mesh.splice(n,s.Oprev),t.dirty=r.dirty=!0)}else{if(Te.edgeSign(n.Dst,s.Org,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Oprev,n)}return!0},i.checkForLeftSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l;if(Ae(!Te.vertEq(n.Dst,s.Dst)),Te.vertLeq(n.Dst,s.Dst)){if(Te.edgeSign(n.Dst,s.Dst,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,l=e.mesh.splitEdge(n),e.mesh.splice(s.Sym,l),l.Lface.inside=t.inside}else{if(Te.edgeSign(s.Dst,n.Dst,s.Org)>0)return!1;t.dirty=r.dirty=!0,l=e.mesh.splitEdge(s),e.mesh.splice(n.Lnext,s.Sym),l.Rface.inside=t.inside}return!0},i.checkForIntersect=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l=n.Org,c=s.Org,f=n.Dst,h=s.Dst,p,y,g=new _s,w,S;if(Ae(!Te.vertEq(h,f)),Ae(Te.edgeSign(f,e.event,l)<=0),Ae(Te.edgeSign(h,e.event,c)>=0),Ae(l!==e.event&&c!==e.event),Ae(!t.fixUpperEdge&&!r.fixUpperEdge),l===c||(p=Math.min(l.t,f.t),y=Math.max(c.t,h.t),p>y))return!1;if(Te.vertLeq(l,c)){if(Te.edgeSign(h,l,c)>0)return!1}else if(Te.edgeSign(f,c,l)<0)return!1;return i.debugEvent(e),Te.intersect(f,l,h,c,g),Ae(Math.min(l.t,f.t)<=g.t),Ae(g.t<=Math.max(c.t,h.t)),Ae(Math.min(h.s,f.s)<=g.s),Ae(g.s<=Math.max(c.s,l.s)),Te.vertLeq(g,e.event)&&(g.s=e.event.s,g.t=e.event.t),w=Te.vertLeq(l,c)?l:c,Te.vertLeq(w,g)&&(g.s=w.s,g.t=w.t),Te.vertEq(g,l)||Te.vertEq(g,c)?(i.checkForRightSplice(e,t),!1):!Te.vertEq(f,e.event)&&Te.edgeSign(f,e.event,g)>=0||!Te.vertEq(h,e.event)&&Te.edgeSign(h,e.event,g)<=0?h===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Sym,n),t=i.topLeftRegion(e,t),n=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),r),i.addRightEdges(e,t,n.Oprev,n,n,!0),!0):f===e.event?(e.mesh.splitEdge(s.Sym),e.mesh.splice(n.Lnext,s.Oprev),r=t,t=i.topRightRegion(t),S=i.regionBelow(t).eUp.Rprev,r.eUp=s.Oprev,s=i.finishLeftRegions(e,r,null),i.addRightEdges(e,t,s.Onext,n.Rprev,S,!0),!0):(Te.edgeSign(f,e.event,g)>=0&&(i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),Te.edgeSign(h,e.event,g)<=0&&(t.dirty=r.dirty=!0,e.mesh.splitEdge(s.Sym),s.Org.s=e.event.s,s.Org.t=e.event.t),!1):(e.mesh.splitEdge(n.Sym),e.mesh.splitEdge(s.Sym),e.mesh.splice(s.Oprev,n),n.Org.s=g.s,n.Org.t=g.t,n.Org.pqHandle=e.pq.insert(n.Org),i.getIntersectData(e,n.Org,l,f,c,h),i.regionAbove(t).dirty=t.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(e,t){for(var r=i.regionBelow(t),n,s;;){for(;r.dirty;)t=r,r=i.regionBelow(r);if(!t.dirty&&(r=t,t=i.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,n=t.eUp,s=r.eUp,n.Dst!==s.Dst&&i.checkForLeftSplice(e,t)&&(r.fixUpperEdge?(i.deleteRegion(e,r),e.mesh.delete(s),r=i.regionBelow(t),s=r.eUp):t.fixUpperEdge&&(i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r),n=t.eUp)),n.Org!==s.Org)if(n.Dst!==s.Dst&&!t.fixUpperEdge&&!r.fixUpperEdge&&(n.Dst===e.event||s.Dst===e.event)){if(i.checkForIntersect(e,t))return}else i.checkForRightSplice(e,t);n.Org===s.Org&&n.Dst===s.Dst&&(i.addWinding(s,n),i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r))}},i.connectRightVertex=function(e,t,r){var n,s=r.Onext,l=i.regionBelow(t),c=t.eUp,f=l.eUp,h=!1;if(c.Dst!==f.Dst&&i.checkForIntersect(e,t),Te.vertEq(c.Org,e.event)&&(e.mesh.splice(s.Oprev,c),t=i.topLeftRegion(e,t),s=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),l),h=!0),Te.vertEq(f.Org,e.event)&&(e.mesh.splice(r,f.Oprev),r=i.finishLeftRegions(e,l,null),h=!0),h){i.addRightEdges(e,t,r.Onext,s,s,!0);return}Te.vertLeq(f.Org,c.Org)?n=f.Oprev:n=c,n=e.mesh.connect(r.Lprev,n),i.addRightEdges(e,t,n,n.Onext,n.Onext,!1),n.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(e,t)},i.connectLeftDegenerate=function(e,t,r){var n,s,l,c,f;if(n=t.eUp,Te.vertEq(n.Org,r)){Ae(!1),i.spliceMergeVertices(e,n,r.anEdge);return}if(!Te.vertEq(n.Dst,r)){e.mesh.splitEdge(n.Sym),t.fixUpperEdge&&(e.mesh.delete(n.Onext),t.fixUpperEdge=!1),e.mesh.splice(r.anEdge,n),i.sweepEvent(e,r);return}Ae(!1),t=i.topRightRegion(t),f=i.regionBelow(t),l=f.eUp.Sym,s=c=l.Onext,f.fixUpperEdge&&(Ae(s!==l),i.deleteRegion(e,f),e.mesh.delete(l),l=s.Oprev),e.mesh.splice(r.anEdge,l),Te.edgeGoesLeft(s)||(s=null),i.addRightEdges(e,t,l.Onext,c,s,!0)},i.connectLeftVertex=function(e,t){var r,n,s,l,c,f,h=new Hh;if(h.eUp=t.anEdge.Sym,r=e.dict.search(h).key,n=i.regionBelow(r),!!n){if(l=r.eUp,c=n.eUp,Te.edgeSign(l.Dst,t,l.Org)===0){i.connectLeftDegenerate(e,r,t);return}if(s=Te.vertLeq(c.Dst,l.Dst)?r:n,r.inside||s.fixUpperEdge){if(s===r)f=e.mesh.connect(t.anEdge.Sym,l.Lnext);else{var p=e.mesh.connect(c.Dnext,t.anEdge);f=p.Sym}s.fixUpperEdge?i.fixUpperEdge(e,s,f):i.computeWinding(e,i.addRegionBelow(e,r,f)),i.sweepEvent(e,t)}else i.addRightEdges(e,r,t.anEdge,t.anEdge,null,!0)}},i.sweepEvent=function(e,t){e.event=t,i.debugEvent(e);for(var r=t.anEdge;r.activeRegion===null;)if(r=r.Onext,r===t.anEdge){i.connectLeftVertex(e,t);return}var n=i.topLeftRegion(e,r.activeRegion);Ae(n!==null);var s=i.regionBelow(n),l=s.eUp,c=i.finishLeftRegions(e,s,null);c.Onext===l?i.connectRightVertex(e,n,c):i.addRightEdges(e,n,c.Onext,l,l,!0)},i.addSentinel=function(e,t,r,n){var s=new Hh,l=e.mesh.makeEdge();l.Org.s=r,l.Org.t=n,l.Dst.s=t,l.Dst.t=n,e.event=l.Dst,s.eUp=l,s.windingNumber=0,s.inside=!1,s.fixUpperEdge=!1,s.sentinel=!0,s.dirty=!1,s.nodeUp=e.dict.insert(s)},i.initEdgeDict=function(e){e.dict=new _2(e,i.edgeLeq);var t=e.bmax[0]-e.bmin[0],r=e.bmax[1]-e.bmin[1],n=e.bmin[0]-t,s=e.bmax[0]+t,l=e.bmin[1]-r,c=e.bmax[1]+r;i.addSentinel(e,n,s,l),i.addSentinel(e,n,s,c)},i.doneEdgeDict=function(e){for(var t,r=0;(t=e.dict.min().key)!==null;)t.sentinel||(Ae(t.fixUpperEdge),Ae(++r==1)),Ae(t.windingNumber===0),i.deleteRegion(e,t)},i.removeDegenerateEdges=function(e){var t,r,n,s=e.mesh.eHead;for(t=s.next;t!==s;t=r)r=t.next,n=t.Lnext,Te.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(i.spliceMergeVertices(e,n,t),e.mesh.delete(t),t=n,n=t.Lnext),n.Lnext===t&&(n!==t&&((n===r||n===r.Sym)&&(r=r.next),e.mesh.delete(n)),(t===r||t===r.Sym)&&(r=r.next),e.mesh.delete(t))},i.initPriorityQ=function(e){var t,r,n,s=0;for(n=e.mesh.vHead,r=n.next;r!==n;r=r.next)s++;for(s+=8,t=e.pq=new L2(s,Te.vertLeq),n=e.mesh.vHead,r=n.next;r!==n;r=r.next)r.pqHandle=t.insert(r);return r!==n?!1:(t.init(),!0)},i.donePriorityQ=function(e){e.pq=null},i.removeDegenerateFaces=function(e,t){var r,n,s;for(r=t.fHead.next;r!==t.fHead;r=n)n=r.next,s=r.anEdge,Ae(s.Lnext!==s),s.Lnext.Lnext===s&&(i.addWinding(s.Onext,s),e.mesh.delete(s));return!0},i.computeInterior=function(e,t){t===void 0&&(t=!0);var r,n;if(i.removeDegenerateEdges(e),!i.initPriorityQ(e))return!1;for(i.initEdgeDict(e);(r=e.pq.extractMin())!==null;){for(;n=e.pq.min(),!(n===null||!Te.vertEq(n,r));)n=e.pq.extractMin(),i.spliceMergeVertices(e,r.anEdge,n.anEdge);i.sweepEvent(e,r)}return e.event=e.dict.min().key.eUp.Org,i.debugEvent(e),i.doneEdgeDict(e),i.donePriorityQ(e),i.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},i}(),I2=function(){function i(){this.mesh=new G0,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=Pt.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 i.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},i.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},i.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},i.prototype.computeNormal_=function(e){var t,r,n,s,l,c,f=[0,0,0],h=[0,0,0],p=[0,0,0],y=[0,0,0],g=[0,0,0],w=[null,null,null],S=[null,null,null],T=this.mesh.vHead;t=T.next;for(var C=0;C<3;++C)s=t.coords[C],h[C]=s,S[C]=t,f[C]=s,w[C]=t;for(t=T.next;t!==T;t=t.next)for(var B=0;B<3;++B)s=t.coords[B],s<h[B]&&(h[B]=s,S[B]=t),s>f[B]&&(f[B]=s,w[B]=t);var G=0;if(f[1]-h[1]>f[0]-h[0]&&(G=1),f[2]-h[2]>f[G]-h[G]&&(G=2),h[G]>=f[G]){e[0]=0,e[1]=0,e[2]=1;return}for(c=0,r=S[G],n=w[G],p[0]=r.coords[0]-n.coords[0],p[1]=r.coords[1]-n.coords[1],p[2]=r.coords[2]-n.coords[2],t=T.next;t!==T;t=t.next)y[0]=t.coords[0]-n.coords[0],y[1]=t.coords[1]-n.coords[1],y[2]=t.coords[2]-n.coords[2],g[0]=p[1]*y[2]-p[2]*y[1],g[1]=p[2]*y[0]-p[0]*y[2],g[2]=p[0]*y[1]-p[1]*y[0],l=g[0]*g[0]+g[1]*g[1]+g[2]*g[2],l>c&&(c=l,e[0]=g[0],e[1]=g[1],e[2]=g[2]);c<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(p)]=1)},i.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,r=this.mesh.vHead,n,s=0,l=e.next;l!==e;l=l.next)if(n=l.anEdge,!(n.winding<=0))do s+=(n.Org.s-n.Dst.s)*(n.Org.t+n.Dst.t),n=n.Lnext;while(n!==l.anEdge);if(s<0){for(t=r.next;t!==r;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},i.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],r,n,s=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),s=!0),r=this.sUnit,n=this.tUnit;var l=this.longAxis_(t);r[l]=0,r[(l+1)%3]=1,r[(l+2)%3]=0,n[l]=0,n[(l+1)%3]=0,n[(l+2)%3]=t[l]>0?1:-1;for(var c=e.next;c!==e;c=c.next)c.s=this.dot_(c.coords,r),c.t=this.dot_(c.coords,n);s&&this.checkOrientation_();for(var f=!0,h=e.next;h!==e;h=h.next)f?(this.bmin[0]=this.bmax[0]=h.s,this.bmin[1]=this.bmax[1]=h.t,f=!1):(h.s<this.bmin[0]&&(this.bmin[0]=h.s),h.s>this.bmax[0]&&(this.bmax[0]=h.s),h.t<this.bmin[1]&&(this.bmin[1]=h.t),h.t>this.bmax[1]&&(this.bmax[1]=h.t))},i.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.prototype.tessellateMonoRegion_=function(e,t){var r,n;if(r=t.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;Te.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;Te.vertLeq(r.Org,r.Dst);r=r.Lnext);n=r.Lprev;for(var s=void 0;r.Lnext!==n;)if(Te.vertLeq(r.Dst,n.Org)){for(;n.Lnext!==r&&(Te.edgeGoesLeft(n.Lnext)||Te.edgeSign(n.Org,n.Dst,n.Lnext.Dst)<=0);)s=e.connect(n.Lnext,n),n=s.Sym;n=n.Lprev}else{for(;n.Lnext!==r&&(Te.edgeGoesRight(r.Lprev)||Te.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)s=e.connect(r,r.Lprev),r=s.Sym;r=r.Lnext}if(n.Lnext===r)throw"Mono region invalid";for(;n.Lnext.Lnext!==r;)s=e.connect(n.Lnext,n),n=s.Sym;return!0},i.prototype.tessellateInterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)if(t=r.next,r.inside&&!this.tessellateMonoRegion_(e,r))return!1;return!0},i.prototype.discardExterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)t=r.next,r.inside||e.zapFace(r)},i.prototype.setWindingNumber_=function(e,t,r){for(var n,s=e.eHead.next;s!==e.eHead;s=n)n=s.next,s.Rface.inside!==s.Lface.inside?s.winding=s.Lface.inside?t:-t:r?e.delete(s):s.winding=0},i.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},i.prototype.outputPolymesh_=function(e,t,r,n){var s,l=0,c=0,f;r>3&&e.mergeConvexFaces(r);for(var h=e.vHead.next;h!==e.vHead;h=h.next)h.n=-1;for(var p=e.fHead.next;p!==e.fHead;p=p.next)if(p.n=-1,!!p.inside){s=p.anEdge,f=0;do{var h=s.Org;h.n===-1&&(h.n=c,c++),f++,s=s.Lnext}while(s!==p.anEdge);if(f>r)throw"Face vertex greater that support polygon";p.n=l,++l}this.elementCount=l,t===Qt.CONNECTED_POLYGONS&&(l*=2),this.elements=[],this.elements.length=l*r,this.vertexCount=c,this.vertices=[],this.vertices.length=c*n,this.vertexIndices=[],this.vertexIndices.length=c;for(var h=e.vHead.next;h!==e.vHead;h=h.next)if(h.n!==-1){var y=h.n*n;this.vertices[y+0]=h.coords[0],this.vertices[y+1]=h.coords[1],n>2&&(this.vertices[y+2]=h.coords[2]),this.vertexIndices[h.n]=h.idx}for(var g=0,p=e.fHead.next;p!==e.fHead;p=p.next)if(!!p.inside){s=p.anEdge,f=0;do{var h=s.Org;this.elements[g++]=h.n,f++,s=s.Lnext}while(s!==p.anEdge);for(var w=f;w<r;++w)this.elements[g++]=-1;if(t===Qt.CONNECTED_POLYGONS){s=p.anEdge;do this.elements[g++]=this.getNeighbourFace_(s),s=s.Lnext;while(s!==p.anEdge);for(var S=f;S<r;++S)this.elements[g++]=-1}}},i.prototype.outputContours_=function(e,t){var r,n,s=0,l=0;this.vertexCount=0,this.elementCount=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){n=r=c.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==n);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*t,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var f=0,h=0,p=0;s=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){l=0,n=r=c.anEdge;do this.vertices[f++]=r.Org.coords[0],this.vertices[f++]=r.Org.coords[1],t>2&&(this.vertices[f++]=r.Org.coords[2]),this.vertexIndices[h++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,l++,r=r.Lnext;while(r!==n);this.elements[p++]=s,this.elements[p++]=l,s+=l}},i.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new G0),e<2&&(e=2),e>3&&(e=3);for(var r=null,n=0;n<t.length;n+=e)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=t[n+0],r.Org.coords[1]=t[n+1],e>2?r.Org.coords[2]=t[n+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(e,t,r,n,s,l){if(e===void 0&&(e=Pt.ODD),t===void 0&&(t=Qt.POLYGONS),l===void 0&&(l=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,s&&(this.normal[0]=s[0],this.normal[1]=s[1],this.normal[2]=s[2]),this.windingRule=e,n<2&&(n=2),n>3&&(n=3),!this.mesh)return!1;this.projectPolygon_(),T2.computeInterior(this,l);var c=this.mesh;return t===Qt.BOUNDARY_CONTOURS?this.setWindingNumber_(c,1,!0):this.tessellateInterior_(c),l&&c.check(),t===Qt.BOUNDARY_CONTOURS?this.outputContours_(c,n):this.outputPolymesh_(c,t,r,n),!0},i}();function Co(i){var e=i.windingRule,t=e===void 0?Pt.ODD:e,r=i.elementType,n=r===void 0?Qt.POLYGONS:r,s=i.polySize,l=s===void 0?3:s,c=i.vertexSize,f=c===void 0?2:c,h=i.normal,p=h===void 0?[0,0,1]:h,y=i.contours,g=y===void 0?[]:y,w=i.strict,S=w===void 0?!0:w,T=i.debug,C=T===void 0?!1:T;if(!g&&S)throw new Error("Contours can't be empty");if(!!g){var B=new I2;i.edgeCreateCallback&&(B.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(B.vertexIdCallback=i.vertexIdCallback);for(var G=0;G<g.length;G++)B.addContour(f||2,g[G]);return B.tesselate(t,n,l,f,p,S),{vertices:B.vertices,vertexIndices:B.vertexIndices,vertexCount:B.vertexCount,elements:B.elements,elementCount:B.elementCount,mesh:C?B.mesh:void 0}}}var nH=Pt.ODD,iH=Pt.NONZERO,oH=Pt.POSITIVE,sH=Pt.NEGATIVE,aH=Pt.ABS_GEQ_TWO,lH=Qt.POLYGONS,cH=Qt.CONNECTED_POLYGONS,uH=Qt.BOUNDARY_CONTOURS;var Lo=class extends M2{constructor(e,t=12,r=100,n={}){super();this.type="ShapeGeometry";this.windingRule=Pt.ODD;this.elementType=Qt.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._drawCount=0,this._shape=e,this._curveSegments=t,this._maxCount=r,this._maxDrawCount=r*3,this._triangulationOptions=Object.assign({windingRule:Pt.ODD,elementType:Qt.POLYGONS,polySize:3,vertexSize:2,strict:!0},n),this._positionAttribute=new Yc(new Float32Array(r*3),3),this._normalAttribute=new Yc(new Float32Array(r*3),3),this._uvAttribute=new Yc(new Float32Array(r*2),2),this._indexAttribute=new Yc(new Uint32Array(r*3),1),this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.updateFromShape()}copy(e){return this._drawCount=e.drawCount,this._maxDrawCount=e._maxDrawCount,this._maxCount=e.maxCount,super.copy(e)}get curveSegments(){return this._curveSegments}set curveSegments(e){this._curveSegments=e,this.updateFromShape()}get drawCount(){return this._drawCount}get maxDrawCount(){return this._maxDrawCount}get maxCount(){return this._maxCount}updateFromShape(){let e=this._shape.extractShapePointsToFlatArray([],this._curveSegments),t=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),r,n=!0,s=!0,l,c;for(let f=0,h=e.length/2;f<h;f++){let p=f*2,y=e[p+0],g=e[p+1];if(l!==void 0&&y!==l&&(n=!1),c!==void 0&&g!==c&&(s=!1),l=y,c=g,!n&&!s)break}if(!n&&!s&&(r=Co({contours:[e,...t],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})),this._positionAttribute.array.fill(0),this._normalAttribute.array.fill(0),this._uvAttribute.array.fill(0),this._indexAttribute.array.fill(0),this._drawCount=0,r){let f=1/0,h=-1/0,p=1/0,y=-1/0;for(let S=0,T=r.vertexCount;S<T;S++){let C=S*2,B=r.vertices[C+0],G=r.vertices[C+1];B<f&&(f=B),B>h&&(h=B),G<p&&(p=G),G>y&&(y=G)}let g=h-f,w=y-p;for(let S=0,T=r.vertexCount;S<T;S++){let C=S*2,B=r.vertices[C+0],G=r.vertices[C+1],D=(B-f)/g,W=(G-p)/w;this._positionAttribute.setXYZ(S,B,G,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,D,W)}for(let S=0,T=r.elementCount;S<T;S++){let C=S*3,B=r.elements[C+0],G=r.elements[C+1],D=r.elements[C+2];this._indexAttribute.setX(C+0,B),this._indexAttribute.setX(C+1,G),this._indexAttribute.setX(C+2,D),this._drawCount+=3}}return this._positionAttribute.needsUpdate=!0,this._normalAttribute.needsUpdate=!0,this._uvAttribute.needsUpdate=!0,this._indexAttribute.needsUpdate=!0,this.setDrawRange(0,this._drawCount),this._drawCount>this._maxDrawCount}clone(){let e=new Lo(this._shape,this._curveSegments,this._maxCount);return e.userData=xo(this.userData),e}};import{BufferAttribute as tu,BufferGeometry as A2}from"three";var eu=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let r=e*eu.eSize;this.buffer=new ArrayBuffer(r);let n=Float32Array.BYTES_PER_ELEMENT,s=0;this.positions=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.normals=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.uvs=new Float32Array(this.buffer,s*n,2*e)}realloc(e,t=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!t)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let r=e*eu.eSize,n=new ArrayBuffer(r),s=Float32Array.BYTES_PER_ELEMENT,l=0,c=new Float32Array(n,l*s,3*e);l+=3*e;let f=new Float32Array(n,l*s,3*e);l+=3*e;let h=new Float32Array(n,l*s,2*e);c.set(this.positions.slice(0,this.size*3)),f.set(this.normals.slice(0,this.size*3)),h.set(this.uvs.slice(0,this.size*2)),this.buffer=n,this.positions=c,this.normals=f,this.uvs=h,this.capacity=e}get(e=1){let t=this.size+e;if(t>this.capacity){let n=this.capacity;for(;t>n;)n*=2;this.realloc(n)}let r=this.size;return this.size=t,r}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Qc=eu;Qc.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Wh=(i,e)=>([t,r])=>(r<t&&(r+=e),(i>=t?i:i+e)<=r),La=class extends A2{constructor(e,t,r=0,n=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=s,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(s));let l=this._shape.extractShapePointsToFlatArray([],n),c=this._shape.shapeHoles.map(q=>{let E=q.extractShapePointsToFlatArray([],n),b=[];for(let R=E.length-1;R>=1;R-=2){let I=E[R-1],z=E[R-0];b.push(I,z)}return b}),f=Co({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),h=Co({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!f)throw new Error("error generating geometry");let p=f.elementCount;if(h){f.elementCount+=h.elementCount;for(let q=0;q<h.elements.length;q++){let E=h.elements[q],b=q%2==0?f.vertexCount:0;f.elements.push(E+b)}for(let q=0;q<h.vertexIndices.length;q++){let E=h.vertexIndices[q],b=f.vertexCount;f.vertexIndices.push(E+b)}for(let q=0;q<h.vertices.length;q++){let E=h.vertices[q];f.vertices.push(E)}}let y=1/0,g=-1/0,w=1/0,S=-1/0;for(let q=0,E=f.vertexCount;q<E;q++){let b=q*2,R=f.vertices[b+0],I=f.vertices[b+1];R<y&&(y=R),R>g&&(g=R),I<w&&(w=I),I>S&&(S=I)}this._minX=y,this._minY=w,this._width=g-y,this._height=S-w;let T=f.vertexCount*2*(2+this._bevelSegments);this._buffer=new Qc(T);let C=[],B=[];for(let q=f.elementCount-1;q>=0;q--){let E=q>=p,b=q*2,R=f.elements[b+0],I=f.elements[b+1],z=R+I,O={start:R,count:I,normals:[],continuous:[],concave:[]},$=R,he=z-1,re=R+1,Ne=this._shape.roundedCurves.length;do{let k=$-R,H=f.vertices[he*2+0],_=f.vertices[he*2+1],J=f.vertices[$*2+0],ee=f.vertices[$*2+1],oe=f.vertices[re*2+0],se=f.vertices[re*2+1],ce=J-H,ue=ee-_,K=Math.sqrt(ce*ce+ue*ue);ce/=K,ue/=K;let ae=J-oe,ne=ee-se,Ce=Math.sqrt(ae*ae+ne*ne);ae/=Ce,ne/=Ce,O.normals[k*2+0]=-ne,O.normals[k*2+1]=ae,O.concave[k]=ce*ne-ue*ae>0;let Y=f.vertexIndices[$];if(Array.isArray(Y))O.continuous[k]=!1;else{let[le,de]=this._shape.getCurveIndexFromVertexId(Y-1,!0);if(de>0&&de<1)O.continuous[k]=!0;else{let xe=de===1?le+1:le-1;xe=(xe+Ne)%Ne;let _e=de===1?0:1,pe=this._shape.roundedCurves[le].getTangent(de),we=this._shape.roundedCurves[xe].getTangent(_e);O.continuous[k]=pe.dot(we)>.95}}E&&(O.normals[k*2+0]*=-1,O.normals[k*2+1]*=-1),[he,$,re]=[$,re,re+1],re>=z&&(re-=I)}while(re!==R+1);let ye=[];ye.push({bevelI:0,angle:0,size:0,boundary:{vertices:f.vertices.slice(R*2,z*2),vertexCount:I,vertexIndices:new Array(I).fill(!0).map((k,H)=>[H,H]),elements:[0,I],elementCount:1,mesh:null},reverseMap:[],insetPoints:f.vertices.slice(R*2,z*2)});for(let k=1;k<=this._bevelSegments;k++){let H=k/this._bevelSegments*Math.PI/2,_=(1-Math.cos(H))*this._bevelSize,J=[],ee=[],oe=[],se=[],ce=0;for(let K=0;K<I;K++){let ae=K*2,ne=(K-1+I)%I*2,Ce=f.vertices[O.start*2+ae+0],Y=f.vertices[O.start*2+ae+1],le=-O.normals[ne+0]*_,de=-O.normals[ne+1]*_,xe=-O.normals[ae+0]*_,_e=-O.normals[ae+1]*_;if(O.concave[K]||!O.concave[K]&&E){let pe=Math.atan2(de,le),we=Math.atan2(_e,xe);we>pe&&(we-=Math.PI*2);let Ve=we-pe;if(O.continuous[K]||E){let Ge=pe+Ve/2,Qe=Math.cos(Ge)*_,bt=Math.sin(Ge)*_;J[2*ce+0]=Ce+Qe*(E?-1:1),J[2*ce+1]=Y+bt*(E?-1:1),se[ce]=K,ce++}else{let Ge=Math.max(1,Math.floor(n/4*Math.abs(Ve)/Math.PI));for(let Qe=0;Qe<=Ge;Qe++){let bt=pe+Ve*(Qe/Ge),Lt=Math.cos(bt)*_,At=Math.sin(bt)*_;J[2*ce+0]=Ce+Lt,J[2*ce+1]=Y+At,se[ce]=K,ce++}}}else J[2*ce+0]=Ce+le,J[2*ce+1]=Y+de,se[ce]=K,ee[K]=ce,ce++,J[2*ce+0]=Ce,J[2*ce+1]=Y,se[ce]=K,ce++,J[2*ce+0]=Ce+xe,J[2*ce+1]=Y+_e,se[ce]=K,oe[K]=ce,ce++}let ue=Co({windingRule:Pt.POSITIVE,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[J],edgeCreateCallback:K=>{let ne=K.Org.idx,Ce=se[ne],Y=se[(ne+1)%se.length];K.idx=[Ce,Y],K.Sym.idx=[Y,Ce]},vertexIdCallback:K=>{let ae=K.Lprev.idx;return[ae?ae[1]:0,K.idx[0]]}});if(!ue)throw console.log("Error"),new Error(`error generating bevel geometry for ${k}'th loop`);if(!ue.vertexCount)break;for(let K=0;K<ue.vertexIndices.length;K++){let[ae,ne]=ue.vertexIndices[K];if(ae===ne)continue;let Ce=ne;ne<ae&&(Ce+=I);for(let Y=ae;Y<Ce;Y++){let le=Y%I,de=(Y+1)%I;if(!O.continuous[le]||!O.continuous[de]){ue.vertexIndices[K]=[ae,le],ue.vertexIndices.splice(K+1,0,[de,ne]),ue.vertices.splice((K+1)*2,0,ue.vertices[K*2],ue.vertices[K*2+1]);break}}}ye.push({bevelI:k,angle:H,size:_,boundary:ue,reverseMap:se,insetPoints:J})}let Me=(k,H,_)=>{let J=0,ee=k.boundary.vertexIndices.length;for(;J<ee&&_(k.boundary.vertexIndices[H]);)H=(H+1)%ee,J++;return J},Fe=C.length;for(let k=1;k<ye.length;k++){let H=ye[k-1],_=ye[k],J=H.boundary.vertexIndices.length,ee=_.boundary.vertexIndices.length;if(!J||!ee)break;let oe=O.concave.length,se=0,ce=Wh(se,I);for(;!H.boundary.vertexIndices.filter(ce).length||!_.boundary.vertexIndices.filter(ce).length;)se++,ce=Wh(se,I);let ue=H.boundary.vertexIndices.findIndex(ce),K=_.boundary.vertexIndices.findIndex(ce);do ue=(ue+1)%J;while(ce(H.boundary.vertexIndices[ue]));do K=(K+1)%ee;while(ce(_.boundary.vertexIndices[K]));se=(se+1)%I;let ae=se,ne=this.buildBevelVert(O,H,(ue-1+J)%J),Ce=this.buildBevelVert(O,_,(K-1+ee)%ee),Y=ne,le=Ce,de,xe,_e=!1;do{ce=Wh(se,I);let pe=Me(H,ue,ce),we=Me(_,K,ce),Ve=_e;if(_e=!1,pe&&!we){for(let Ge=0;Ge<pe;Ge++)de=this.buildBevelVert(O,H,(ue+Ge)%J,Ge/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de;_e=!0}else if(!pe&&we)for(let Ge=0;Ge<we;Ge++)xe=this.buildBevelVert(O,_,(K+Ge)%ee,Ge/(we-1)),C.push(le.topN,Y.topP,xe.topP),C.push(Y.bottomP,le.bottomN,xe.bottomP),le=xe;else if(pe&&we)if(de=this.buildBevelVert(O,H,ue,0),xe=this.buildBevelVert(O,_,K,0),Ve?(C.push(Y.topN,xe.topP,le.topN),C.push(Y.topN,de.topP,xe.topP),C.push(xe.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,Y.bottomN,xe.bottomP)):(C.push(Y.topN,de.topP,le.topN),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,le.bottomN,xe.bottomP)),Y=de,le=xe,pe===we)for(let Ge=1;Ge<pe;Ge++)de=this.buildBevelVert(O,H,(ue+Ge)%J,Ge/(pe-1)),xe=this.buildBevelVert(O,_,(K+Ge)%ee,Ge/(we-1)),C.push(Y.topN,de.topP,le.topN),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,le.bottomN,xe.bottomP),Y=de,le=xe;else if(pe>we){let Ge=pe/we,Qe=0;for(let bt=1;bt<pe;bt++)de=this.buildBevelVert(O,H,(ue+bt)%J,bt/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de,bt>(Qe+1)*Ge&&(Qe++,xe=this.buildBevelVert(O,_,(K+Qe)%ee,Qe/(we-1)),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,le.bottomN,xe.bottomP),le=xe)}else{let Ge=we/pe,Qe=0;for(let bt=1;bt<we;bt++)xe=this.buildBevelVert(O,_,(K+bt)%ee,bt/(we-1)),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,le.bottomN,xe.bottomP),le=xe,bt>(Qe+1)*Ge&&(Qe++,de=this.buildBevelVert(O,H,(ue+Qe)%J,Qe/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de)}ue=(ue+pe)%J,K=(K+we)%ee,se=(se+1)%oe}while(se!==ae)}{let k=ye[0];for(let H=0,_=k.boundary.vertexCount;H<_;H++){let J=this.buildBevelVert(O,k,H),ee=this.buildBevelVert(O,k,(H+1)%_);C.push(ee.topP,J.topN,J.bottomN),C.push(ee.topP,J.bottomN,ee.bottomP)}}if(E){let k=[];for(let H=C.length-1;H>=Fe+2;H-=3){let _=C[H-2],J=C[H-1],ee=C[H-0];k.push(ee,J,_)}C.splice(Fe,C.length-Fe,...k)}if(E){let k=[];for(let H=ye[ye.length-1].boundary.vertices.length-1;H>=1;H-=2){let _=ye[ye.length-1].boundary.vertices[H-1],J=ye[ye.length-1].boundary.vertices[H-0];k.push(_,J)}B.push(k)}if(!E){let k=ye[ye.length-1],H=Co({windingRule:ye.length>1?Pt.POSITIVE:Pt.ODD,elementType:Qt.POLYGONS,vertexSize:2,strict:!0,contours:[k.insetPoints,...B]});if(!H)throw new Error("Error generating geometry for surface");for(let _=0;_<H.elementCount*3;_+=3){let J=this.buildSurfaceVert(H,H.elements[_+0]),ee=this.buildSurfaceVert(H,H.elements[_+1]),oe=this.buildSurfaceVert(H,H.elements[_+2]);C.push(J.top,ee.top,oe.top),C.push(oe.bottom,ee.bottom,J.bottom)}}this.vertexCache={}}this._buffer.shrink();let G=new tu(Uint32Array.from(C),1),D=new tu(this._buffer.positions,3),W=new tu(this._buffer.normals,3),A=new tu(this._buffer.uvs,2);D.needsUpdate=!0,W.needsUpdate=!0,A.needsUpdate=!0,G.needsUpdate=!0,this.setAttribute("position",D),this.setAttribute("normal",W),this.setAttribute("uv",A),this.setIndex(G)}buildSurfaceVert(e,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=e.vertices[t*2+0],s=e.vertices[t*2+1],l=(n-this._minX)/this._width,c=(s-this._minY)/this._height,f=this._buffer.get(2),h=f*3,p=f*2,y={top:f+0,bottom:f+1};return this._buffer.positions[h+0]=n,this._buffer.positions[h+1]=s,this._buffer.positions[h+2]=this._depth,this._buffer.normals[h+0]=0,this._buffer.normals[h+1]=0,this._buffer.normals[h+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=c,this._buffer.positions[h+3]=n,this._buffer.positions[h+4]=s,this._buffer.positions[h+5]=0,this._buffer.normals[h+3]=0,this._buffer.normals[h+4]=0,this._buffer.normals[h+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=c,this.vertexCache[r]=y,y}buildBevelVert(e,t,r,n=1){let s=`${t.bevelI}:${r}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=t.boundary.vertexIndices[r],f,h,p,y;l!==c?(h=l,f=c,y=!1,p=e.continuous[h]&&e.continuous[f]):(f=l,h=(f-1+e.count)%e.count,y=e.concave[f]&&t.bevelI>0,p=e.continuous[f]||y);let g=Math.cos(t.angle),w=Math.sin(t.angle),S=r*2,T=f*2,C=h*2,B=t.boundary.vertices[S+0],G=t.boundary.vertices[S+1],D=(1-w)*this._bevelSize,W=(B-this._minX)/this._width,A=(G-this._minY)/this._height,q=e.normals[T+0],E=e.normals[T+1],b=e.normals[C+0],R=e.normals[C+1];if(y){let he=b-q,re=R-E;q=q+he*(1-n),E=E+re*(1-n);let Ne=Math.sqrt(q*q+E*E);q/=Ne,E/=Ne}let I=this._buffer.get(p?2:4),z=I*3,O=I*2,$={i:r,fi:f,topP:I+0,topN:I+0,bottomP:I+1,bottomN:I+1};return this._buffer.positions[z+0]=B,this._buffer.positions[z+1]=G,this._buffer.positions[z+2]=this._depth-D,this._buffer.normals[z+0]=q*g,this._buffer.normals[z+1]=E*g,this._buffer.normals[z+2]=w,this._buffer.uvs[O+0]=W,this._buffer.uvs[O+1]=A,this._buffer.positions[z+3]=B,this._buffer.positions[z+4]=G,this._buffer.positions[z+5]=D,this._buffer.normals[z+3]=q*g,this._buffer.normals[z+4]=E*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[O+2]=A,this._buffer.uvs[O+3]=W,p||(I+=2,z+=6,O+=4,$.topP=I+0,$.bottomP=I+1,this._buffer.positions[z+0]=B,this._buffer.positions[z+1]=G,this._buffer.positions[z+2]=this._depth-D,this._buffer.normals[z+0]=b*g,this._buffer.normals[z+1]=R*g,this._buffer.normals[z+2]=w,this._buffer.uvs[O+0]=W,this._buffer.uvs[O+1]=A,this._buffer.positions[z+3]=B,this._buffer.positions[z+4]=G,this._buffer.positions[z+5]=D,this._buffer.normals[z+3]=b*g,this._buffer.normals[z+4]=R*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[O+2]=A,this._buffer.uvs[O+3]=W),this.vertexCache[s]=$,$}clone(){let e=new La(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=xo(this.userData),e}};var ur=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var h,p,y,g,w,S,T;let t=Object.assign({},(h=e==null?void 0:e.parameters)!=null?h:{width:100,subdivisions:40,roundness:0,extrudeDepth:0,surfaceMaxCount:100,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(t.width),n=Math.abs((p=t.height)!=null?p:t.width),s=Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(y=t.depth)!=null?y:0),l=(g=i.shape)!=null?g:e==null?void 0:e.shape,c=(w=l==null?void 0:l.roundness)!=null?w:t.roundness;l!==void 0&&(l instanceof st?(l.width!==r||l.height!==n)&&l.applySize(r,n):l=new st(r,n).fromJSON(l),((S=i.parameters)==null?void 0:S.roundness)!==void 0&&((T=i.parameters)==null?void 0:T.roundness)>0&&l.update(!1));let f=l!=null?l:new st(r,n);return{parameters:Object.assign(t,{width:r,height:n,depth:s,extrudeDepth:s,roundness:c}),shape:f}}static build(i){let{extrudeDepth:e,extrudeBevelSize:t,extrudeBevelSegments:r,subdivisions:n,roundness:s,surfaceMaxCount:l}=i.parameters;i.shape.roundness=s;let c;return e<=0?c=new Lo(i.shape,n,l):c=new La(i.shape,e,t,n,r),Object.assign(c,{userData:fe(U({},i),{type:"VectorGeometry"})})}};import{MathUtils as z0,Vector2 as F0}from"three";var V0=Math.PI*2,U0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1e3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((s=t.height)!=null?s:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(l=t.depth)!=null?l:0)})}}static build(i){let{width:e,height:t,spikes:r,angle:n,innerRadius:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,p=i.shape,y=e*.5,g=t*.5,w=O2(p,y,g,n*Math.PI/180,r,s);p.isClosed=!0,p.update();let S=ur.create({shape:p,parameters:{subdivisions:w,surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(S,{userData:fe(U({},i),{type:"EllipseGeometry"})})}};function O2(i,e,t,r,n,s){if(r>=V0)return n>30||n%4==0?(D2(i,e,t,s),Math.round(n/4)):k0(i,r,n,e,t,s);let l={x:0,y:t},c=r+Math.PI*.5,f={x:Math.cos(c)*e,y:Math.sin(c)*t},h=B0({px:l.x,py:l.y,cx:f.x,cy:f.y,rx:e,ry:t,largeArcFlag:r>Math.PI,sweepFlag:!0});return n>30||n%h.length==0?P2(i,l.x,l.y,h,n,e,t,s):k0(i,r,n,e,t,s)}function P2(i,e,t,r,n,s,l,c){let f=Math.round(n/r.length);i.addPoint(Ts(e,t));for(let h=0,p=r.length;h<p;h++){let y=r[h],g=i.points[h],w=Ts(y.x,y.y);g.controls[1].position.set(y.x1,y.y1),w.controls[0].position.set(y.x2,y.y2),i.addPoint(w)}return c>0?H0(i,s,l,c):i.addPoint(Ts(0,0)),f}function k0(i,e,t,r,n,s){let l=-e/t;for(let c=0;c<=t;c++){let f=l*c,h=Math.sin(f)*r,p=Math.cos(f)*n;i.addPoint(Ts(h,p))}return e<V0?s>0?H0(i,r,n,s):i.addPoint(Ts(0,0)):(i.removePoint(i.points[i.points.length-1]),s>0&&W0(i,r,n,s)),1}function D2(i,e,t,r=0,n=0,s=0){let l=.5522847498,c=e*l,f=t*l;i.addPoint(ru(n-e,s,n-e,s-f,n-e,s+f)),i.addPoint(ru(n,s+t,n-c,s+t,n+c,s+t)),i.addPoint(ru(n+e,s,n+e,s+f,n+e,s-f)),i.addPoint(ru(n,s-t,n+c,s-t,n-c,s-t)),r>0&&W0(i,e,t,r)}function Ts(i,e){return new Xn(z0.generateUUID(),new F0(i,e))}function ru(i,e,t,r,n,s){let l=Ts(i,e);return l.controls[0].position.set(t,r),l.controls[1].position.set(n,s),l}function H0(i,e,t,r){q0(i,e,t,r).forEach(s=>i.addPoint(s))}function W0(i,e,t,r){let n=q0(i,e,t,r),s=new st;n.forEach(l=>s.addPoint(l)),s.isClosed=!0,i.shapeHoles.push(s)}function q0(i,e,t,r){let n=r*e/100,s=n*(Math.abs(t)/Math.abs(e)),l=new F0(n/e,s/t),c=i.points.map(f=>{let h=f.clone();return h.uuid=z0.generateUUID(),h}).reverse();return c.forEach(f=>{f.position.multiply(l);let h=f.controls[0].position.clone().multiply(l),p=f.controls[1].position.clone().multiply(l);f.controls[0].position.copy(p),f.controls[1].position.copy(h)}),c}import{BufferGeometry as B2,Float32BufferAttribute as qh,Vector3 as $0}from"three";var J0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var c,f,h;let t=Object.assign({},(c=e==null?void 0:e.parameters)!=null?c:{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(t.width),n=Math.abs((f=t.height)!=null?f:r),s=Math.abs((h=t.depth)!=null?h:r),l=Math.abs(Math.min(r,s))/2;return{parameters:Object.assign(t,{width:r,height:n,depth:s,radius:l,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(i){let{width:e,height:t,depth:r,radius:n,revolutions:s,segments:l,pathRadius:c,pathType:f,pathSegments:h,cornerRadius:p,cornerSegments:y}=i.parameters,g=new nu(!1,e,t,r,n,s,l,c,f,h,p,y);return Object.assign(g,{userData:fe(U({},i),{type:"HelixGeometry"})})}},nu=class extends B2{constructor(e=!0,t=1,r=1,n=1,s=1,l=1,c=1,f=1,h=1,p=1,y=1,g=1){super();let w=e&&l===1;w&&(g=0),y>100&&(y=100);let S=()=>new $0,T=new $0,C=S(),B=S(),G=S(),D,W,A,q,E,b,R,I,z=S(),O=S(),$=S(),he=S(),re=S(),Ne=S(),ye=S(),Me=S(),Fe=r-2*f+.001,k=Fe/l,H=Math.ceil(c*l),_=H+1,J=Fe/H,ee=-Fe/2,oe=p+1,se=2*Math.PI/p,ce=Math.PI/2/g,ue=.01,K=Math.min((1-y/100)*f,f-ue),ae=f-K,ne=0,Ce=2,Y=g*Ce+Ce,le=oe*Y/Ce,de=le+oe*_,xe=oe*(_+Y),[_e,pe,we]=[3,3,2].map(pt=>Array(xe*pt).fill(0)),Ve=[],Ge=s-f;function Qe(pt,Wt){let ar=Math.PI/2;b=Wt*J,I=2*Math.PI*(b%k)/k+ar,b+=ee,R=Math.sin(I)*Ge,E=Math.cos(I)*Ge,e?pt.set(E,R,b):pt.set(E,b,R)}Qe(T,-1e-10),Qe(C,0),z.copy(T),Qe(T,1);let bt=T.distanceTo(C),Lt=ae+K,At=bt*H+2*Lt,sr=K,Ur=At-Lt;for(let pt=0;pt<=H;pt++){Qe(B,pt),Me.subVectors(B,z).normalize(),z.copy(B),Ne.copy(B).setComponent(+e+1,0).normalize(),ye.crossVectors(Me,Ne).normalize();let Wt=pt===0,ar=pt===H,Do=Wt?3*Math.PI/2:ce,Bo=Wt?sr:Ur,Go=Wt?oe:de,no=Wt?0:xe-oe,io=Me.clone().multiplyScalar(Wt?-ae:ae).add(B),jo=Me.clone().multiplyScalar(Wt?-1:1).normalize();for(let Mr=0;Mr<oe;Mr++){let oo=Mr*se;if(O.addVectors(T.copy(Ne).multiplyScalar(f*Math.cos(oo)),C.copy(ye).multiplyScalar(f*Math.sin(oo))),$.copy(O).normalize(),Wt||ar){w||(ne=no+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=io.getComponent(Jt),pe[ne*3+Jt]=jo.getComponent(Jt)}),we[ne*2]=+ar,we[ne*2+1]=Mr/p),C.copy($).multiplyScalar(K),G.addVectors(B,C);for(let Jt=0;Jt<g;Jt++){let ni=Jt*ce+Do;he.addVectors(T.copy(Me).multiplyScalar(ae*Math.sin(ni)),C.copy($).multiplyScalar(ae*Math.cos(ni))),re.copy(he).normalize(),C.addVectors(G,he),he.normalize(),ne=Go+Jt*oe+Mr,[0,1,2].forEach(Ee=>{_e[ne*3+Ee]=C.getComponent(Ee),pe[ne*3+Ee]=re.getComponent(Ee)});let Eo=+Wt+Math.sin(ni);we[ne*2]=(Bo+ae*Eo)/At,we[ne*2+1]=Mr/p}}C.addVectors(B,O),ne=le+pt*oe+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=C.getComponent(Jt),pe[ne*3+Jt]=$.getComponent(Jt)}),we[ne*2]=(Lt+pt*bt)/At,we[ne*2+1]=Mr/p}}let Ht=_+2*g+Ce,kr=1,[Nn,Cn]=w?[kr,kr+_-1]:[0,Ht-1];for(let pt=Nn;pt<=Cn-1;pt++){let Wt=w&&pt===Cn-1;for(let ar=0;ar<oe-1;ar++)D=pt*oe+ar,W=D+1,A=(Wt?ar:D)+oe,q=(Wt?ar+1:W)+oe,pt===0?Ve.push(W,q,A):pt===Ht-2?Ve.push(D,W,A):Ve.push(D,W,A,W,q,A)}this.setIndex(Ve),this.setAttribute("position",new qh(_e,3)),this.setAttribute("normal",new qh(pe,3)),this.setAttribute("uv",new qh(we,2))}};import{IcosahedronBufferGeometry as G2}from"three";var K0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new iu(e*.5,s,l):new G2(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"IcosahedronGeometry"})})}},iu=class extends No{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],l=[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],c="IcosahedronGeometry";super(s,l,c,e,t,r);this.type=c}static fromJSON(e){return new iu(e.radius,e.corner,e.cornerSides)}};import{LatheBufferGeometry as j2,Shape as E2}from"three";var X0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l,c;((n=(r=i.parameters)==null?void 0:r.points)!=null?n:[]).forEach(f=>{Array.isArray(f)&&(f.x=f[0],f.y=f[1])});let t=Object.assign({},(s=e==null?void 0:e.parameters)!=null?s:{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}]},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs((c=t.depth)!=null?c:t.width)})}}static build(i){let{points:e,segments:t,verticalSegments:r}=i.parameters,n=new E2;n.moveTo(e[0].x,e[0].y),n.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let s=new j2(n.extractPoints(r).shape,t);return s.rotateZ(Math.PI),Object.assign(s,{userData:fe(U({},i),{type:"LatheGeometry"})})}};import{BufferGeometry as Y0,BufferGeometryLoader as H2,Vector3 as W2,BoxBufferGeometry as Q0}from"three";import{BufferGeometry as R2,Vector2 as $h,Vector3 as Z0}from"three";import{Geometry as z2,Face3 as F2}from"three/examples/jsm/deprecated/Geometry.js";var V2=["a","b","c"];function U2(i,e){switch(e){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Jh(i,e,t){let r=Math.min(i,e),n=Math.max(i,e),s=r+"_"+n;return t.get(s)}function Kh(i,e,t,r,n,s){let l=Math.min(i,e),c=Math.max(i,e),f=l+"_"+c,h;if(r.has(f))h=r.get(f);else{let p=t[l],y=t[c];h={a:p,b:y,newEdge:null,faces:[]},r.set(f,h)}h.faces.push(n),s[i].edges.push(h),s[e].edges.push(h)}function k2(i,e,t,r){let n,s,l;for(n=0,s=i.length;n<s;n++)t[n]={edges:[]};for(n=0,s=e.length;n<s;n++)l=e[n],Kh(l.a,l.b,i,r,l,t),Kh(l.b,l.c,i,r,l,t),Kh(l.c,l.a,i,r,l,t)}function ou(i,e,t,r,n){i.push(new F2(e,t,r,void 0,void 0,n))}function Is(i,e){return Math.abs(e-i)/2+Math.min(i,e)}function su(i,e,t,r){i.push([e.clone(),t.clone(),r.clone()])}var Xh=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof R2?e=new z2().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let t=this.subdivisions;for(;t-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new Z0,r,n,s,l,c,f=e.vertices,h=e.faces,p=e.faceVertexUvs[0],y=p!==void 0&&p.length>0,g=[],w=new Map;k2(f,h,g,w);let S=[],T,C,B,G,D,W,A;for(let ue of Array.from(w.keys())){for(C=w.get(ue),B=new Z0,D=3/8,W=1/8,A=C.faces.length,A!=2&&(D=.5,W=0,A!=1),B.addVectors(C.a,C.b).multiplyScalar(D),t.set(0,0,0),l=0;l<A;l++){for(G=C.faces[l],c=0;c<3&&(T=f[U2(G,V2[c])],!(T!==C.a&&T!==C.b));c++);T&&t.add(T)}t.multiplyScalar(W),B.add(t),C.newEdge=S.length,S.push(B)}let q,E,b,R,I,z,O,$=[];for(n=0,s=f.length;n<s;n++){for(z=f[n],I=g[n].edges,r=I.length,r==3?q=3/16:r>3&&(q=3/(8*r)),E=1-r*Number(q),b=q,r<=2&&(r==2?(E=3/4,b=1/8):r==1||r==0),O=z.clone().multiplyScalar(E),t.set(0,0,0),l=0;l<r;l++)R=I[l],T=R.a!==z?R.a:R.b,t.add(T);t.multiplyScalar(Number(b)),O.add(t),$.push(O)}let he=$.concat(S),re=$.length,Ne,ye,Me,Fe=[],k=[],H,_,J,ee,oe=new $h,se=new $h,ce=new $h;for(n=0,s=h.length;n<s;n++)G=h[n],Ne=Number(Jh(G.a,G.b,w).newEdge)+re,ye=Number(Jh(G.b,G.c,w).newEdge)+re,Me=Number(Jh(G.c,G.a,w).newEdge)+re,ou(Fe,Ne,ye,Me,G.materialIndex),ou(Fe,G.a,Ne,Me,G.materialIndex),ou(Fe,G.b,ye,Ne,G.materialIndex),ou(Fe,G.c,Me,ye,G.materialIndex),y&&(H=p[n],_=H[0],J=H[1],ee=H[2],oe.set(Is(_.x,J.x),Is(_.y,J.y)),se.set(Is(J.x,ee.x),Is(J.y,ee.y)),ce.set(Is(_.x,ee.x),Is(_.y,ee.y)),su(k,oe,se,ce),su(k,_,oe,ce),su(k,J,se,oe),su(k,ee,ce,se));e.vertices=he,e.faces=Fe,y&&(e.faceVertexUvs[0]=k)}};var er=new W2,au=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var s,l;let t=(l=(s=i.geometry)!=null?s:e==null?void 0:e.geometry)!=null?l:new Y0().copy(new Q0(100,100,100)),r;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(er),r={width:er.x,height:er.y,depth:er.z,subdivisions:0}):r=e.parameters;let n=U(U({},r),i.parameters);return{parameters:{width:Math.abs(n.width),height:Math.abs(n.height),depth:Math.abs(n.depth),subdivisions:Math.abs(n.subdivisions)},geometry:t}}static build(i){var f;let{width:e,height:t,depth:r,subdivisions:n}=i.parameters,s=(f=i.geometry)!=null?f:new Y0().copy(new Q0(100,100,100)),l=s.userData.parameters;l===void 0?(s.computeBoundingBox(),s.boundingBox.getSize(er)):er.set(l.width,l.height,l.depth),(e!==er.x||t!==er.y||r!==er.z)&&s.scale(er.x===0?1:e/er.x,er.y===0?1:t/er.y,er.z===0?1:r/er.z);let c=s.originalGeometry;return n>0?(c===void 0||(l==null?void 0:l.subdivisions)!==n)&&(c===void 0&&(c=s),s=new Xh(n).modify(c).toBufferGeometry()):(c!==void 0&&(s=c),c=void 0,s.getAttribute("normal")===void 0&&s.computeVertexNormals()),c!==void 0&&Object.assign(s,{originalGeometry:c}),delete i.geometry,Object.assign(s,{userData:fe(U({},i),{type:"NonParametricGeometry"})})}static loadFromUrl(i,e,t){new H2(t).load(i,n=>{let s=this.normalizeInputs({geometry:n});n.boundingBox.getSize(er);let l=100/er.x;Object.assign(s.parameters,{width:100,height:er.y*l,depth:er.z*l}),e(this.build(s))})}};var ev=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,spikes:r,cornerRadius:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,surfaceMaxCount:f}=i.parameters,h=i.shape,p=e*.5,y=t*.5,g=0,w=0,S=2*Math.PI/r;for(let C=0;C<r;C++){let B=S*C,G=g+Math.sin(B)*p,D=w+Math.cos(B)*y;h.addPoint(h.createPoint(G,D))}h.isClosed=!0;for(let C=0,B=h.points.length;C<B;C++)h.points[C].roundness=n;h.roundness=n,h.update();let T=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(T,{userData:fe(U({},i),{type:"PolygonGeometry"})})}};import{BufferGeometry as q2,Float32BufferAttribute as Zh,Vector2 as Zn,Vector3 as or}from"three";var tv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,heightSegments:s,openEnded:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=new rv(e*.5,t,n,s,l,c,f);return h.scale(1,1,r/e),Object.assign(h,{userData:fe(U({},i),{type:"PyramidGeometry"})})}};function _a(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function Yh(i,e,t,r,n,s){let l=e.clone().sub(i),c=t.clone().sub(i),f=l.angleTo(c);if(l.normalize(),c.normalize(),r===n){let h=l.add(c).normalize();s.copy(i).addScaledVector(h,r/Math.sin(f/2))}else{let h=l.angleTo(c);s.copy(i),s.addScaledVector(l,n/Math.sin(h)),s.addScaledVector(c,r/Math.sin(h))}}function $2(i,e,t){let r=i.clone().sub(e),n=t.clone().sub(e);return r.projectOnVector(n),r.add(e)}var rv=class extends q2{constructor(e=.5,t=1,r=4,n=1,s=!1,l=0,c=4){super();r=Math.floor(Math.max(3,r)),n=Math.floor(n),c=Math.floor(c);let f=[],h=[],p=[],y=[],g=0,w=t/2,S=Math.PI/r,T=e*Math.cos(Math.PI/r),C=2*Math.PI/r,B=(r-2)*Math.PI/r,G=Math.PI-B,D=new or(0,-w,0),W=new or(0,w,0),A=new Zn(e,-w),q=new Zn(T,-w),E=new Zn(0,W.y).sub(q),b=new Zn(0,W.y).sub(A),R=new Zn(E.y,-E.x).normalize(),I=new Zn(b.y,-b.x).normalize(),O=e*Math.cos(Math.PI/r)*Math.tan((Math.PI-E.angle())/2)-1e-8;l=Math.min(l,O);let $;{let k=new or(R.x,R.y,0),H=new or(Math.cos(C)*k.x,k.y,Math.sin(C)*k.x);$=k.angleTo(H)}let he=l/Math.tan((Math.PI-E.angle())/2),re=l/Math.tan((Math.PI-$)/2),Ne=new or;if(!s){h.push(D.x,D.y,D.z),p.push(0,-1,0),y.push(0,0);let k=g++,H=[],_=A.clone(),J=he/Math.cos(Math.PI/r);_.x-=J;for(let ee=0;ee<r;ee++){let oe=ee/r*Math.PI*2+S,se=new Zn(Math.sin(oe),Math.cos(oe));_a(_,se,Ne),h.push(Ne.x,Ne.y,Ne.z),p.push(0,-1,0),y.push(0,0),H.push(g++)}for(let ee=0;ee<H.length;ee++)f.push(H[ee],k,H[(ee+1)%H.length])}let ye=[];{let k=new or,H=new or,_=new or,J=new or,ee=new or,oe=new or;for(let se=0;se<r;se++){let ce=se/r*Math.PI*2+S,ue=(se+.5)/r*Math.PI*2+S,K=(se+1)/r*Math.PI*2+S,ae=new Zn(Math.sin(ce),Math.cos(ce)),ne=new Zn(Math.sin(ue),Math.cos(ue)),Ce=new Zn(Math.sin(K),Math.cos(K));_a(A,ae,H),_a(A,Ce,_),_a(R,ne,k),Yh(W,H,_,re,re,J),h.push(J.x,J.y,J.z),Yh(H,W,_,re,he,ee),h.push(ee.x,ee.y,ee.z),Yh(_,H,W,he,re,oe),h.push(oe.x,oe.y,oe.z),p.push(k.x,k.y,k.z),p.push(k.x,k.y,k.z),p.push(k.x,k.y,k.z),y.push(0,0),y.push(0,0),y.push(0,0);let Y=g++,le=g++,de=g++;if(f.push(Y,le,de),l>0){{let pe=H.clone().add(_).multiplyScalar(.5),we=W.clone().sub(pe).normalize(),Ge=D.clone().sub(pe).normalize().add(we).normalize().multiplyScalar(-1),Qe=oe.clone().sub(ee);Me(pe,Qe,Ge,E.angle())}let xe,_e;{let pe=new or;_a(I,Ce,pe);let we=oe.clone().add(J).multiplyScalar(.5);we=$2(we,_,W);let Ve=oe.clone().sub(J);[xe,_e]=Me(we,Ve,pe,$,J.y)}{let pe=xe,we=pe.clone().setY(0).normalize(),Ve=new or(0,-1,0),Ge=we.clone().cross(Ve);Fe(pe,we,Ve,Ge)}ye.concat(_e);{let pe=E.angle(),we=Math.PI-pe,Ve=W.clone();Ve.y-=l/Math.sin(pe-Math.PI/2);let Ge=new or,Qe=[];for(let Lt=0;Lt<c;Lt++){let At=[],sr=Math.PI/2-we*Lt/c,Ur=Math.cos(sr),Ht=Math.sin(sr),kr=ue;for(let Nn=0;Nn<=Lt;Nn++){let Cn=Math.cos(kr),pt=Math.sin(kr);k.x=Ur*pt,k.y=Ht,k.z=Ur*Cn,Ge.copy(Ve).addScaledVector(k,l),h.push(Ge.x,Ge.y,Ge.z),p.push(k.x,k.y,k.z),y.push(0,0),At.push(g++),kr+=Math.PI*2/Lt/r}Qe.push(At)}_e.reverse(),Qe.push(_e);let bt=Qe.length-1;for(let Lt=0;Lt<bt;Lt++){let At=Qe[Lt],sr=Qe[Lt+1],Ur=At.length-1;f.push(sr[1],At[0],sr[0]);for(let Ht=1;Ht<=Ur;Ht++)f.push(At[Ht],At[Ht-1],sr[Ht]),f.push(sr[Ht+1],At[Ht],sr[Ht])}}}}}this.setIndex(f),this.setAttribute("position",new Zh(h,3)),this.setAttribute("normal",new Zh(p,3)),this.setAttribute("uv",new Zh(y,2));function Me(k,H,_,J,ee){let oe=-J/2,se=(Math.PI-J)/2,ce=H.clone().normalize().cross(_);k.addScaledVector(_,-l/Math.sin(se));let ue=new or,K=new or,ae=1,ne=g,Ce=[];for(let Y=0;Y<=c;Y++){let le=oe+Y/c*J;K.set(0,0,0),K.addScaledVector(ce,Math.sin(le)),K.addScaledVector(_,Math.cos(le));for(let de=0;de<=ae;de++){let xe=de/ae-.5;if(ue.copy(k),ue.addScaledVector(H,xe),ue.addScaledVector(K,l),ee!=null){let _e=Math.max(0,ue.y-ee);ue.addScaledVector(H,-_e/H.y)}h.push(ue.x,ue.y,ue.z),p.push(K.x,K.y,K.z),y.push(0,0),de===0&&Ce.push(g),g++}}for(let Y=0;Y<c;Y++)for(let le=0;le<ae;le++){let de=ne+le+(ae+1)*Y,xe=de+(ae+1),_e=xe+1,pe=de+1;f.push(de,xe,pe),f.push(xe,_e,pe)}return[k.clone().addScaledVector(H,.5),Ce]}function Fe(k,H,_,J){let ee=Math.PI/2,oe=b.angle()-ee,se=[],ce=new or,ue=new or;for(let ae=0;ae<=c;ae++){let ne=[],Ce=ae/c;for(let Y=0;Y<=ae;Y++){let de=((ae?Y/ae:0)-.5)*G,xe=Math.cos(de),_e=Math.sin(de),pe=Math.atan(Math.tan(oe)*xe),we=(ee+pe)*Ce,Ve=Math.cos(we),Ge=Math.sin(we);ce.set(0,0,0),ce.addScaledVector(H,Ge*xe),ce.addScaledVector(_,Ve),ce.addScaledVector(J,Ge*_e),ue.copy(k).addScaledVector(ce,l),h.push(ue.x,ue.y,ue.z),p.push(ce.x,ce.y,ce.z),y.push(0,0),ne.push(g++)}se.push(ne)}let K=se.length-1;for(let ae=0;ae<K;ae++){let ne=se[ae],Ce=se[ae+1],Y=ne.length-1;f.push(ne[0],Ce[1],Ce[0]);for(let le=1;le<=Y;le++)f.push(ne[le-1],ne[le],Ce[le]),f.push(ne[le],Ce[le+1],Ce[le])}}}};var lu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,p;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign((c=e==null?void 0:e.ui)!=null?c:{enabledIndieCorners:!1},i.ui),n=t.cornerRadius.reduce((y,g)=>y+g,0);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((f=t.surfaceMaxCount)!=null?f:n>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(p=t.depth)!=null?p:0)}),ui:r}}static build(i){let e=i.shape,{width:t,height:r,cornerRadius:n,cornerType:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,p={x:t*.5,y:r*.5},y={x:-p.x,y:-p.y},g={x:p.x,y:p.y};function w(A,q,E){return q>t&&E>r?Math.min(A*t/q,A*r/E):q>t?A*t/q:E>r?A*r/E:A}let S=[];S[0]=n[0]===0?0:w(n[0],n[0]+n[3],n[0]+n[1]),S[1]=n[1]===0?0:w(n[1],n[1]+n[2],n[1]+n[0]),S[2]=n[2]===0?0:w(n[2],n[2]+n[1],n[2]+n[3]),S[3]=n[3]===0?0:w(n[3],n[3]+n[0],n[3]+n[2]);let T=y.x,C=g.x,B=g.y,G=y.y;e.addPoint(e.createPoint(T,B)),e.addPoint(e.createPoint(C,B)),e.addPoint(e.createPoint(C,G)),e.addPoint(e.createPoint(T,G)),e.isClosed=!0;let D=!0;for(let A=0,q=e.points.length;A<q;A++)e.points[A].roundness=S[A],A>0&&S[A]!==S[A-1]&&(D=!1);D&&(e.roundness=S[0]),e.useCubicForRoundedCorners=s!==1,e.update();let W=ur.create({shape:e,parameters:{surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(W,{userData:fe(U({},i),{type:"RectangleGeometry"})})}};import{SphereBufferGeometry as J2}from"three";var nv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e=100,height:t=e,depth:r=e,widthSegments:n=64,heightSegments:s=64,phiStart:l,phiLength:c,thetaStart:f,thetaLength:h}=i.parameters,p=new J2(.5*e,n,s,l,c,f,h);return p.scale(1,t/e,r/e),Object.assign(p,{userData:fe(U({},i),{type:"SphereGeometry"})})}};import{PlaneBufferGeometry as K2}from"three";var iv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:0})}}static build(i){let{width:e=100,height:t=e,widthSegments:r=8,heightSegments:n=8}=i.parameters,s=new K2(e,t,r,n);return s.scale(1,1,1),Object.assign(s,{userData:fe(U({},i),{type:"PlaneGeometry"})})}};var ov=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,innerRadiusPercent:r,spikes:n,cornerRadius:s,angle:l,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h,surfaceMaxCount:p}=i.parameters,y=i.shape,g=e*.5,w=t*.5,S=0,T=0,C=l*Math.PI/360/n,B=Math.PI/2*3*-1,G=g*r/100,D=w*r/100;if(n==3&&r==50){C=2*Math.PI/n;for(let A=0;A<n;A++){let q=C*A,E=S+Math.sin(q)*g,b=T+Math.cos(q)*w;y.addPoint(y.createPoint(E,b))}}else for(let A=0;A<n;A++){let q=S+Math.cos(B)*g,E=T+Math.sin(B)*w;y.addPoint(y.createPoint(q,E)),B+=C,q=S+Math.cos(B)*G,E=T+Math.sin(B)*D,A<=n,y.addPoint(y.createPoint(q,E)),B+=C}y.isClosed=!0;for(let A=0,q=y.points.length;A<q;A++)y.points[A].roundness=s;y.roundness=s,y.update();let W=ur.create({shape:y,parameters:{surfaceMaxCount:p,roundness:s,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h}});return Object.assign(W,{userData:fe(U({},i),{type:"StarGeometry"})})}};import{PlaneBufferGeometry as X2}from"three";var cu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:0)})}}static build(i){let{width:e,height:t}=i.parameters,r=new X2(e,t);return Object.assign(r,{userData:fe(U({},i),{type:"TextFrameGeometry"})})}};var sv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(t.width),n=Math.abs((c=t.height)!=null?c:t.width),s=Math.abs((f=t.depth)!=null?f:t.width*.25);return{parameters:Object.assign(t,{width:r,height:n,depth:s})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,tubularSegments:s,arc:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=Z2(e,t,r,e*.5,l,s,0,0,n,c,f);return h.scale(1,t/e,1),Object.assign(h,{userData:fe(U({},i),{type:"TorusGeometry"})})}};function Z2(i,e,t,r,n,s,l,c,f,h,p){return[e,t]=[t,e],l=e/2,n/=2*Math.PI,n==1&&(h=0),new nu(!0,i,e,t,r,n,s,l,c,f,h,p)}import{TorusKnotBufferGeometry as Y2}from"three";var av=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width),tube:(l=t.tube)!=null?l:t.width*.125})}}static build(i){let{width:e,tube:t,tubularSegments:r,radialSegments:n,p:s,q:l}=i.parameters,c=e*.5;c!==t&&(c-=t);let f=new Y2(c,t,r,n,s,l);return Object.assign(f,{userData:fe(U({},i),{type:"TorusKnotGeometry"})})}};var lv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e=100,height:t,cornerRadius:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l,isRect:c,surfaceMaxCount:f}=i.parameters,h=i.shape,p=e*.5,y=t*.5;c?(h.addPoint(h.createPoint(-p,y)),h.addPoint(h.createPoint(p,-y)),h.addPoint(h.createPoint(-p,-y))):(h.addPoint(h.createPoint(0,y)),h.addPoint(h.createPoint(p,-y)),h.addPoint(h.createPoint(-p,-y))),h.isClosed=!0;for(let w=0,S=h.points.length;w<S;w++)h.points[w].roundness=r;h.roundness=r,h.update();let g=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(g,{userData:fe(U({},i),{type:"TriangleGeometry"})})}};var Ta={};tT(Ta,{addBarycentricAttribute:()=>nD,fixUvs:()=>oD,loadFromUrl:()=>iD,resizeGeometry:()=>rD,roundShapePolygon:()=>tD});import{BufferGeometryLoader as Q2,Float32BufferAttribute as eD,Vector3 as Qh}from"three";var cv=function(i,e){let t=e.x-i.x,r=e.y-i.y,n=Math.sqrt(t*t+r*r),s=t/n,l=r/n,c=Math.atan2(l,s);return{x:t,y:r,len:n,nx:s,ny:l,ang:c}},tD=(i,e,t)=>{let r,n,s,l,c,f,h,p,y,g,w,S,T,C,B=e.length;for(l=e[B-2],i.curves=[],r=1;r<B-1;r++){c=e[r%B],f=e[(r+1)%B];let G=cv(c,l),D=cv(c,f);h=G.nx*D.ny-G.ny*D.nx,p=G.nx*D.nx-G.ny*-D.ny,w=Math.asin(h),y=1,g=!1,p<0?w<0?w=Math.PI+w:(w=Math.PI-w,y=-1,g=!0):w>0&&(y=-1,g=!0),S=w/2,C=Math.abs(Math.cos(S)*t/Math.sin(S)),C>Math.min(G.len/2,D.len/2)?(C=Math.min(G.len/2,D.len/2),T=Math.abs(C*Math.sin(S)/Math.cos(S))):T=t,n=c.x+D.nx*C,s=c.y+D.ny*C,n+=-D.ny*T*y,s+=D.nx*T*y,i.absarc(n,s,T,G.ang+Math.PI/2*y,D.ang-Math.PI/2*y,g),l=c,c=f}i.closePath()},rD=(i,{width:e,height:t,depth:r})=>{e=Math.abs(e),t=Math.abs(t),r=Math.abs(r);let n=i.userData.parameters,s,l,c;e===0?(e=n.width,s=1):s=e/n.width,t===0?(t=n.height,l=1):l=t/n.height,r===0?(r=n.depth,c=1):c=r/n.depth,i.scale(s,l,c),n.width=e,n.height=t,n.depth=r},nD=(i,e)=>{let t=[new Qh(1,0,0),new Qh(0,1,0),new Qh(0,0,1)],r=i.attributes.position,n=new Float32Array(r.count*3);for(let s=0,l=r.count;s<l;s++)t[s%3].toArray(n,s*3);i.setAttribute(e,new eD(n,3))},iD=i=>new Promise(e=>{new Q2().load(i,r=>e(r))}),oD=(i,e,t)=>{let r=i.getAttribute("uv");if(r)for(let n=0;n<r.count;n++){let s=r.getX(n),l=r.getY(n);r.setXY(n,(s+e/2)/e,1-(l-t/2)/t*-1)}};import{BufferGeometry as uv,BufferAttribute as fv,Uint32BufferAttribute as ed,Float32BufferAttribute as td,Matrix4 as aD}from"three";import{mergeVertices as lD}from"three/examples/jsm/utils/BufferGeometryUtils.js";var sD,uu=new Promise(i=>{sD=i});var Oe;uu.then(i=>{Oe=i});var hv=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),dv=new Uint32Array([0,1,2,3]),pv=new Uint8Array([4]),en=class{static build(i,e,t,r,n){let s,l,c;if(i===void 0)s=en.allocate(n,t),Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r);else if(i.positionWASM!==void 0){e&&e!==0&&(Oe.free_bvh(e),Oe.free_subdivision_surface(e));try{s=en.allocate(n,void 0,i)}catch(f){console.error(f,i),s=en.allocate(n,void 0,{positionWASM:hv,indexWASM:dv,verticesPerFaceWASM:pv})}Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r)}else s=e;if(i!==void 0&&i.subdivisions!==void 0){let f=cD(i.subdivisions,i.positionWASM.length);Oe.set_destination_refinement_level(s,f),f>0?c=en.buildLevel(s,!1,r):c=null}return{subdivPointer:s,originalGeometry:l,subdividedGeometry:c}}static allocate(i,e,t){var A;let r,n,s,l=[],c=[];if(t)t.positionWASM&&t.positionWASM.length>0?(r=t.positionWASM,n=t.indexWASM,s=t.verticesPerFaceWASM):(r=hv,n=dv,s=pv);else{e.deleteAttribute("normal"),e.deleteAttribute("uv");let q=lD(e);r=q.attributes.position.array;let E=q.getIndex().array,b=E.length;switch(e.userData.type==="TorusGeometry"&&(e==null?void 0:e.userData.parameters.arc)===Math.PI*2&&(e.userData.type="ClosedTorusGeometry"),e.userData.type){case"ClosedTorusGeometry":case"PlaneGeometry":case"TorusKnotGeometry":case"CubeGeometry":n=new Uint32Array(b/3*2),s=new Uint8Array(b/6).fill(4);for(let re=0,Ne=0;re<b;re+=6)n[Ne++]=E[re],n[Ne++]=E[re+1],n[Ne++]=E[re+4],n[Ne++]=E[re+5];break;case"TorusGeometry":case"SphereGeometry":case"HelixGeometry":case"CylinderGeometry":case"ConeGeometry":let R,I,z;if(e.userData.type==="SphereGeometry")I=e.parameters.heightSegments,R=e.parameters.widthSegments,e.parameters.thetaLength!==Math.PI&&(z=!0);else if(e.userData.type==="CylinderGeometry")I=e.parameters.heightSegments+2,R=e.parameters.radialSegments;else if(e.userData.type==="ConeGeometry")I=e.parameters.heightSegments+1,R=e.parameters.radialSegments;else if(e.userData.type==="TorusGeometry"){let re=e.userData.parameters;I=Math.ceil(re.tubularSegments*re.arc/(2*Math.PI))+2,R=re.radialSegments}else{let{pathSegments:re,segments:Ne,revolutions:ye}=e.userData.parameters;I=Math.ceil(Ne*ye)+2,R=re}z?(n=new Uint32Array(1*R*3+(I-1)*R*4),s=new Uint8Array(1*R+(I-1)*R)):(n=new Uint32Array(2*R*3+(I-2)*R*4),s=new Uint8Array(2*R+(I-2)*R));let O=0,$=0,he=0;if(e.userData.type==="SphereGeometry"||e.userData.type==="HelixGeometry"||e.userData.type==="TorusGeometry"){for(;$<3*R;)n[$++]=E[O++],n[$++]=E[O++],n[$++]=E[O++],s[he++]=3;let re=z?n.length:3*R+4*(I-2)*R;for(;$<re;O+=6)n[$++]=E[O],n[$++]=E[O+1],n[$++]=E[O+4],n[$++]=E[O+5],s[he++]=4}else for(;$<4*(I-2)*R;O+=6)n[$++]=E[O],n[$++]=E[O+1],n[$++]=E[O+4],n[$++]=E[O+5],s[he++]=4;for(;$<n.length;)n[$++]=E[O++],n[$++]=E[O++],n[$++]=E[O++],s[he++]=3;break;default:n=E,s=new Uint8Array(b/3).fill(3);break}}let f=r.length,h=n.length,p=s.length,y=r.length+l.length+c.length,g=n.length+s.length,w=y*Float32Array.BYTES_PER_ELEMENT+g*Uint32Array.BYTES_PER_ELEMENT,S=y*Float32Array.BYTES_PER_ELEMENT,T=g*Uint32Array.BYTES_PER_ELEMENT,C=Oe._malloc(w),B=new Float32Array(Oe.HEAPF32.buffer,C,y),G=new Uint32Array(Oe.HEAPU32.buffer,C+S,g);B.set(r,0),B.set(l,r.length),B.set(c,r.length+l.length),G.set(n,0),G.set(s,n.length);let D;((A=t==null?void 0:t.scaleBaked)==null?void 0:A.some(q=>q!==1))&&(D=new aD().makeScale(...t.scaleBaked)),i&&(D?D.premultiply(i):D=i);let W=D?Oe.alloc_subdivision_surface2(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,p,D.elements):Oe.alloc_subdivision_surface(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,p);return Oe._free(C),W}static buildLevel(i,e,t,r,n){let s=n?Oe.get_mesh_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e,n.elements):Oe.get_mesh_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e),l=8,c=Oe.HEAPU32.subarray(s>>2,(s>>2)+l),f=c.subarray(4,4+4),h=0,p=Oe.HEAPU32[c[h]>>2],y=Oe.HEAPF32.subarray(p>>2,(p>>2)+f[h]);h++;let g=Oe.HEAPU32[c[h]>>2],w=Oe.HEAPF32.subarray(g>>2,(g>>2)+f[h]);h++;let S=Oe.HEAPU32[c[h]>>2],T=Oe.HEAPU32.subarray(S>>2,(S>>2)+f[h]);h++;let C=Oe.HEAPU32[c[h]>>2],B=Oe.HEAPU32.subarray(C>>2,(C>>2)+f[h]);if(h++,r===void 0){let G=new uv;if(G.setIndex(new ed(B,1)),G.setAttribute("position",new td(y,3)),G.setAttribute("normal",new td(w,3)),e){G.setAttribute("faceMap",new ed(T,1));let D=new Float32Array(w.length/3*4).fill(0);G.setAttribute("color",new fv(D,4))}return Oe.free_mesh_data(s),G.userData.type="SubdivGeometry",G}r.getAttribute("position").copyArray(y),r.getAttribute("normal").copyArray(w),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,Oe.free_mesh_data(s)}static buildControlCageWireframe(i,e,t){let r=Oe.get_wireframe_data_for_base_level(i),n=4,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(2,2+2),c=0,f=Oe.HEAPU32[s[c]>>2],h=Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]);c++;let p=Oe.HEAPU32[s[c]>>2],y=Oe.HEAPU32.subarray(p>>2,(p>>2)+l[c]);if(e===void 0){let g=new uv;g.setAttribute("position",new td(h,3));let w=new Float32Array(h.length);for(let S=0,T=h.length;S<T;)w[S++]=t.r,w[S++]=t.g,w[S++]=t.b;return g.setAttribute("color",new fv(w,3)),g.setIndex(new ed(y,1)),Oe.free_wireframe_data_for_base_level(r),g}e.getAttribute("position").copyArray(h),e.attributes.position.needsUpdate=!0,Oe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,e,t){e||Oe.set_destination_refinement_level(i,1);let r=t?Oe.get_topological_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t.elements):Oe.get_topological_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED),n=6,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(3,3+3),c=0,f=Oe.HEAPU32[s[c]>>2],h=new Float32Array(Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]));c++;let p=Oe.HEAPU32[s[c]>>2],y=new Uint32Array(Oe.HEAPU32.subarray(p>>2,(p>>2)+l[c]));c++;let g=Oe.HEAPU32[s[c]>>2],w=new Uint8Array(Oe.HEAPU32.subarray(g>>2,(g>>2)+l[c]));return Oe.free_topological_data(r),{positions:h,indices:y,verticesPerFace:w}}};function cD(i,e){let t=i;return t=Math.min(t,3-Math.ceil(Math.log(e/172e3)/Math.log(4))),Math.max(t,0)}var rd={ConeGeometry:g0,CubeGeometry:y0,CylinderGeometry:p0,DodecahedronGeometry:v0,EllipseGeometry:U0,HelixGeometry:J0,IcosahedronGeometry:K0,LatheGeometry:X0,NonParametricGeometry:au,PolygonGeometry:ev,PyramidGeometry:tv,RectangleGeometry:lu,SphereGeometry:nv,PlaneGeometry:iv,StarGeometry:ov,TextFrameGeometry:cu,TorusGeometry:sv,TorusKnotGeometry:av,TriangleGeometry:lv,VectorGeometry:ur},Ia=i=>rd[i.type].create(i);import{Matrix4 as ad}from"three";import{Box3 as xv,Line3 as gn,Matrix4 as nd,Vector3 as Ct}from"three";import{HemisphereLight as mv}from"three";import{Color as uD}from"three";var tn=class extends uD{constructor(e,t,r,n){super(e,t,r);this.a=n}setRGBA(e,t,r,n){super.setRGB(e,t,r),this.a=n}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}};function kt(i,e){let t;if(typeof i=="string"){let r=e==null?void 0:e.getColor(i);r?t=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),t=new tn(0,0,0,0))}else return"a"in i?new tn(i.r,i.g,i.b,i.a):new tn(i.r,i.g,i.b,1);return t}var fu=i=>"isEntity"in i,Ms=i=>"isAbstractMesh"in i;var Si=i=>"objectHelper"in i;function fD(i,e){var r;let t=!1;e.position&&(i.position.fromArray(e.position),t=!0),e.rotation&&(i.rotation.fromArray(e.rotation),t=!0),e.scale&&(t=!0,i.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(t=!0,i.hiddenMatrix.fromArray((r=e.hiddenMatrix)!=null?r:Ui.identity)),t&&i.updateMatrix(),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=e.isUpVectorFlipped),i.updateUp())}function hD(i,e){fD(i,e),e.name!==void 0&&(i.name=e.name),e.visible!==void 0&&(i.isEntity?i.visibility=e.visible:i.visible=e.visible)}function gv(i,e,t){hD(i,e),e.color!==void 0&&(i.color=kt(e.color,t)),e.intensity!==void 0&&(i.intensity=e.intensity),e.shadows!==void 0&&!(i instanceof mv)&&(i.castShadow=e.shadows),i.shadow&&!(i instanceof mv)&&e.depth!==void 0&&(i.shadow.camera.far=e.depth,i.shadow.needsUpdate=!0),e.helper!==void 0&&Si(i)&&(i.enableHelper=e.helper,i.gizmos.shadowmap.visible=e.helper)}function yv(i,e){i.shadow.camera.right=e/2,i.shadow.camera.left=-e/2,i.shadow.camera.top=e/2,i.shadow.camera.bottom=-e/2,i.shadow.needsUpdate=!0}var As=new xv,fr=new Ct,Ie=new Ct,$t=new nd;function dD(i,e,t=0,r=e.count){let n=1/0,s=1/0,l=1/0,c=-1/0,f=-1/0,h=-1/0;for(let p=t;p<r;p++){let y=e.getX(p),g=e.getY(p),w=e.getZ(p);y<n&&(n=y),g<s&&(s=g),w<l&&(l=w),y>c&&(c=y),g>f&&(f=g),w>h&&(h=w)}return i.min.set(n,s,l),i.max.set(c,f,h),i}var vv=(i,e,t,r)=>{var n;if(Ms(i)){let s=i.geometry.userData.parameters,l=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?fr.copy(i.originalGeometry.boundingSphere.center):(dD(As,l,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:l.count),As.getCenter(fr)),i.forceComputeSize?As.getSize(Ie).multiplyScalar(.5):Ie.set(s.width,s.height,(n=s.depth)!=null?n:0).multiplyScalar(.5)}else if(Si(i)&&r===!0){let s=i.geometryHelper.getAttribute("position");As.setFromArray(s.array),As.getCenter(fr),As.getSize(Ie).multiplyScalar(.5)}else fr.setScalar(0),Ie.setScalar(0);$t.copy(e).multiply(i.matrixWorld),Ie.x===0&&Ie.y===0&&Ie.z===0?t.push(new Ct(fr.x,fr.y,fr.z).applyMatrix4($t)):t.push(new Ct(-Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t))},hu=class extends xv{constructor(){super(...arguments);this.matrix=new nd;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 r=new nd().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,r,t)}expandByObjectSize(e,t,r=!1){let n=[];return r===!0?e.traverseEntity(s=>vv(s,t,n,e.enableHelper===!0)):vv(e,t,n,e.enableHelper===!0),this.setFromPoints(n)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4($t.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Ie).multiplyScalar(.5),this.getCenter(fr),$t.copy(this.matrix).setPosition(fr),this.vertices=[new Ct(-Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).applyMatrix4($t)]}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=[new gn(this.vertices[0],this.vertices[3]),new gn(this.vertices[1],this.vertices[2]),new gn(this.vertices[5],this.vertices[6]),new gn(this.vertices[4],this.vertices[7]),new gn(this.vertices[0],this.vertices[1]),new gn(this.vertices[3],this.vertices[2]),new gn(this.vertices[7],this.vertices[6]),new gn(this.vertices[4],this.vertices[5]),new gn(this.vertices[0],this.vertices[4]),new gn(this.vertices[1],this.vertices[5]),new gn(this.vertices[2],this.vertices[6]),new gn(this.vertices[3],this.vertices[7])],this.centerEdges=this.edges.map(e=>e.getCenter(new Ct))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=[new Ct().copy(this.vertices[0]).sub(this.vertices[2]).multiplyScalar(.5).add(this.vertices[2]),new Ct().copy(this.vertices[7]).sub(this.vertices[5]).multiplyScalar(.5).add(this.vertices[5]),new Ct().copy(this.vertices[4]).sub(this.vertices[1]).multiplyScalar(.5).add(this.vertices[1]),new Ct().copy(this.vertices[3]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6]),new Ct().copy(this.vertices[4]).sub(this.vertices[3]).multiplyScalar(.5).add(this.vertices[3]),new Ct().copy(this.vertices[1]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6])]}};import{Object3D as _D,Matrix4 as TD,Light as ID}from"three";import{Group as ND,Mesh as Lv,MeshStandardMaterial as _v}from"three";import{BufferGeometry as pD,Float32BufferAttribute as id}from"three";function bv(i){var l;let e=[],t=i.groups,r=i.getAttribute("position").array,n=i.getAttribute("normal").array,s=(l=i.getAttribute("uv"))==null?void 0:l.array;return t.forEach(c=>{let f=c.count,h=new pD,p=new Float32Array(f*3),y=new Float32Array(f*3),g=new Float32Array(f*2);for(let w=0;w<f;w++){let S=3*(c.start+w),T=3*w;if(p[T]=r[S],p[T+1]=r[S+1],p[T+2]=r[S+2],y[T]=n[S],y[T+1]=n[S+1],y[T+2]=n[S+2],s){let C=2*(c.start+w),B=2*w;g[B]=s[C],g[B+1]=s[C+1]}}h.setAttribute("position",new id(p,3)),h.setAttribute("normal",new id(y,3)),s&&h.setAttribute("uv",new id(g,2)),e.push(h)}),e}import{GLTFExporter as CD}from"three/examples/jsm/exporters/GLTFExporter.js";var mD,Sv=new Promise(i=>{mD=i});var Tv=rh(Cv());var pu={isPublish:!1,gltfQueue:[]};function sd(i,e,t){return i[e.uuid]===void 0&&(i[e.uuid]=e.toJSON(t)),e.uuid}var LD=new CD;function Iv(i,e,t){if(i[e.uuid]===void 0)if(e.userData.type==="NonParametricGeometry"||e.userData.type==="SubdivGeometry"){if(e.userData.type==="SubdivGeometry")if(pu.isPublish)e=au.create({geometry:e.clone()}),e.userData.parameters.subdivisions===0&&(delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.positionWASM,delete e.attributes.indexWASM,delete e.attributes.verticesPerFaceWASM);else{let n=e.originalGeometry;if(n){let s=e.userData;e=n.clone(),e.userData=s}else e=e.clone();delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.position,delete e.attributes.normal,e.index=null}let r=e.originalGeometry;if(r!==void 0){let n=e.userData;e=r,e.userData=n}if(!pu.isPublish)i[e.uuid]=e.toJSON();else{let n={type:"NonParametricGeometry",uuid:e.uuid,userData:{}};e.name!==""&&(n.name=e.name),Object.keys(e.userData).length>0&&(n.userData=U({},e.userData));let s=e.index===null,l=new ND;if(Array.isArray(t))bv(e).forEach((f,h)=>{let p=new Lv(f,new _v);l.add(p),f.userData.groupIndex=h,f.userData.materialIndex=e.groups[h].materialIndex,f.index===null&&(s=!0)});else{let c=new Lv(e,new _v);l.add(c)}pu.gltfQueue.push(new Promise(async c=>{await Promise.all(pu.gltfQueue),LD.parse(l,async f=>{let{gltfTransform:h,DracoMeshCompressionExtension:p,addIndex:y}=await Sv,g=h.readJSON({json:xo(f),resources:{}});g.createExtension(p).setRequired(!0).setEncoderOptions({quantizationVolume:"scene"}),s&&await g.transform(y);try{let{json:w,resources:S}=h.writeJSON(g),T=Tv.default.fromByteArray(new Uint8Array(S[".bin"]));w.buffers[0].uri=`data:application/octet-stream;base64,${T}`,c()}catch(w){c()}},{})})),i[e.uuid]=n}}else{let r=e.userData;if(r.type==="VectorGeometry"){let n=e.userData.shape;r=Object.assign({},r,{shape:n.toJSON()})}i[e.uuid]={uuid:e.uuid,userData:r}}return e.uuid}function Os(i){let e=[];for(let t in i){let r=i[t];delete r.metadata,e.push(r)}return e}function Mv(i){let e=[];for(let t in i)e.push(i[t]);return e}var mu=i=>class extends i{hasEntityChild(){return this.children.some(t=>fu(t))}isDescendantOf(t){t instanceof _D&&(t=t.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===t)return!0;r=r.parent}return!1}attach(t,r){this.updateWorldMatrix(!0,!1);let n=new TD().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),n.multiply(t.parent.matrixWorld)),fu(t)?t.hiddenMatrix.premultiply(n):t.applyMatrix4(n),t.updateWorldMatrix(!1,!1),this.add(t),r!==void 0&&(this.children.pop(),this.children.splice(r,0,t)),this}copy(t,r=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),r===!0)for(let n=0;n<t.children.length;n++){let s=t.children[n];this.add(s.clone())}return this}toJSON(t){let r=t===void 0,n={object:{uuid:"",objectType:""}};t===void 0&&(t={geometries:{},materials:{},textures:{},images:{},interactionStates:{},nodes:{}},n.metadata={version:1.5,type:"Object",generator:"Object3D.toJSON"});let s={uuid:this.uuid,objectType:this.type};if(this.name!==""&&(s.name=this.name),s.matrix=this.matrix.toArray(),this.castShadow===!0&&(s.castShadow=!0),this.receiveShadow===!0&&(s.receiveShadow=!0),this.visible===!1&&(s.visible=!1),this.frustumCulled===!1&&(s.frustumCulled=!1),this.renderOrder!==0&&(s.renderOrder=this.renderOrder),s.layers=this.layers.mask,JSON.stringify(this.userData)!=="{}"&&(s.userData=this.userData),this.children.length>0){s.children=[];for(let l of this.children)(fu(l)||l instanceof ID)&&s.children.push(l.toJSON(t).object)}if(r){let l=Os(t.geometries),c=Os(t.materials),f=Os(t.textures),h=Os(t.images),p=Os(t.interactionStates),y=Mv(t.nodes);l.length>0&&(n.geometries=l),c.length>0&&(n.materials=c),f.length>0&&(n.textures=f),h.length>0&&(n.images=h),p.length>0&&(n.interactionStates=p),y.length>0&&(n.nodes=y)}return n.object=s,n}fromJSON(t){return this.uuid=t.uuid,t.name!==void 0&&(this.name=t.name),t.matrix!==void 0?(this.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(this.matrixAutoUpdate=t.matrixAutoUpdate),this.matrixAutoUpdate&&this.matrix.decompose(this.position,this.quaternion,this.scale)):(t.position!==void 0&&this.position.fromArray(t.position),t.rotation!==void 0&&this.rotation.fromArray(t.rotation),t.quaternion!==void 0&&this.quaternion.fromArray(t.quaternion),t.scale!==void 0&&this.scale.fromArray(t.scale)),this.castShadow=t.castShadow!==void 0,this.receiveShadow=t.receiveShadow!==void 0,t.visible!==void 0&&(this.visible=t.visible),t.frustumCulled!==void 0&&(this.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(this.renderOrder=t.renderOrder),t.layers!==void 0&&(this.layers.mask=t.layers),t.userData!==void 0&&(this.userData=t.userData),this}};var xn=i=>"isEntity"in i;var vn=i=>class extends mu(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new ad;this._singleBBox=new hu;this._recursiveBBox=new hu;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}set visibility(t){this.visible=t;for(let r of this.children)xn(r)&&r.traverseEntity(n=>{Si(n)&&n.visible&&(n.objectHelper.visible=t)})}get visibility(){return this.visible}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(t=>{xn(t)&&(t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(t=>{t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0})}traverseEntity(t){t(this);for(let r of this.children)xn(r)&&r.traverseEntity(t)}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 r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&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 s of this.children)s.updateWorldMatrix(!1,!0)}shallowClone(t){return new this.constructor().shallowCopy(this,t)}shallowCopy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)xn(n)&&this.add(n.shallowClone());return this}clone(t){return new this.constructor().copy(this,t)}copy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)xn(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let t=new ad,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(r);for(let n of this.children)xn(n)&&n.hiddenMatrix.premultiply(t)}toJSON(t){let r=super.toJSON(t),n=r.object;return this.raycastLock===!0&&(n.raycastLock=!0),this.scaleLock===!0&&(n.scaleLock=!0),n.hiddenMatrix=this.hiddenMatrix.toArray(),r}fromJSON(t){return super.fromJSON(t),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.scaleLock!==void 0&&(this.scaleLock=t.scaleLock),this.hiddenMatrix.fromArray(t.hiddenMatrix),this}fromObject3D(t){let r=t.children;return t.children=[],Object.assign(t,{raycastLock:!1,scaleLock:!1,hiddenMatrix:new ad}),this.copy(t),t.children=r,this}toObjectTransformState(t=[]){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 ms(r,t)}fromObjectTransformState(t){return t.position&&this.position.fromArray(t.position),t.rotation&&this.rotation.fromArray(t.rotation),t.scale&&this.scale.fromArray(t.scale),t.hiddenMatrix&&this.hiddenMatrix.fromArray(t.hiddenMatrix),this.updateMatrix(),this}toState(t=[]){let r=U({name:this.name,visible:this.visible,raycastLock:this.raycastLock},this.toObjectTransformState(t));return ms(r,t)}fromState(t,r){return t.name&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.type!=="OrthographicCamera"&&t.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),t.visible!==void 0&&(this.visibility=t.visible),this.fromObjectTransformState(t),this}};import{Object3D as MD,Vector3 as Ma,Euler as Av,MathUtils as Ki}from"three";var gu=class extends MD{constructor(e,t={}){super();this.object=e;let r=e.recursiveBBox.getSize(new Ma),n=.1;this.parameters=xc.defaultData(r.toArray(),n),vo(this.parameters,t),this.update(),this.setHideBase(this.parameters.hideBase)}refreshMaterial(){if("material"in this.object)for(let e of this.children)e.material=this.object.material}setHideBase(e){if("material"in this.object){if(Array.isArray(this.object.material)){if(this.children.length>0){for(let t of this.object.material)t.visible=!0;if(e){let t=this.object.material.map(r=>r.clone());for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material}for(let t of this.object.material)t.visible=!e}else{if(this.children.length>0)if(this.object.material.visible=!0,e){let t=this.object.material.clone();for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material;this.object.material.visible=!e}this.parameters.hideBase=e}}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let t=0,r=e-this.children.length;t<r;++t){let n=this.object.shallowClone(!1);n.visible=!0,this.add(n),this.parameters.hideBase&&this.setHideBase(!0)}else for(let t=0,r=this.children.length-e;t<r;++t)this.remove(this.children[0])}_updateRadial(e){let t=e.radial,r=t.start*Ki.DEG2RAD,n=t.end*Ki.DEG2RAD,s=r-n,l=new Av(t.rotation[0]*Ki.DEG2RAD,t.rotation[1]*Ki.DEG2RAD,t.rotation[2]*Ki.DEG2RAD),c;switch(t.axis){case"z":c=new Ma(0,0,1);break;case"y":c=new Ma(0,1,0);break;default:case"x":c=new Ma(1,0,0);break}for(let[f,h]of this.children.entries()){h.hiddenMatrix.identity(),h.scale.x=t.scale[0]+1,h.scale.y=t.scale[1]+1,h.scale.z=t.scale[2]+1,h.position.setScalar(0);let p=s/e.count*f-r;switch(t.axis){case"x":h.rotation.set(0,p,0);break;case"y":h.rotation.set(0,0,p);break;case"z":h.rotation.set(p,0,0);break}h.translateOnAxis(c,t.radius),h.position.x+=t.position[0],h.position.y+=t.position[1],h.position.z+=t.position[2],t.alignment===!0?(h.rotation.x+=l.x,h.rotation.y+=l.y,h.rotation.z+=l.z):h.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let t=e.linear,r=new Av(t.rotation[0]*Ki.DEG2RAD,t.rotation[1]*Ki.DEG2RAD,t.rotation[2]*Ki.DEG2RAD);for(let[n,s]of this.children.entries())s.hiddenMatrix.identity(),s.scale.x=t.scale[0]*n+1,s.scale.y=t.scale[1]*n+1,s.scale.z=t.scale[2]*n+1,s.rotation.x=r.x*n,s.rotation.y=r.y*n,s.rotation.z=r.z*n,s.position.x=t.position[0]*n,s.position.y=t.position[1]*n,s.position.z=t.position[2]*n}_updateGrid(e){let t=0,r=e.grid;if(r.useCenter===!0){let n={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 Ma(r.size[0]*(r.count[0]-n.x)*.5,r.size[1]*(r.count[1]-n.y)*.5,r.size[2]*(r.count[2]-n.z)*.5);for(let l=0;l<r.count[0];l++)for(let c=0;c<r.count[1];c++)for(let f=0;f<r.count[2];f++){let h=this.children[t++];h.hiddenMatrix.identity(),h.scale.setScalar(1),h.rotation.set(0,0,0),h.position.x=r.size[0]*l-s.x,h.position.y=r.size[1]*c-s.y,h.position.z=r.size[2]*f-s.z}}else for(let n=0;n<r.count[0];n++)for(let s=0;s<r.count[1];s++)for(let l=0;l<r.count[2];l++){let c=this.children[t++];c.hiddenMatrix.identity(),c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=r.size[0]*n,c.position.y=-r.size[1]*s,c.position.z=-r.size[2]*l}}fromJSON(e){return this}toJSON(){return{}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),vo(this.parameters,e),this.update(),this}};var hr=class extends vn(AD){constructor(e,t){super(e,t);this.isAbstractMesh=!0;Array.isArray(t)&&(this.selectedMaterial=0,e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0))}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}getSelectedMaterial(e){return Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=e!=null?e:0),this.material[e!=null?e:this.selectedMaterial]):this.material}setSelectedMaterial(e,t){Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=t!=null?t:0),t=t!=null?t:this.selectedMaterial,this.material[t].dispose(),this.material[t]=e):(this.material.dispose(),this.material=e)}updateGeometry(e){let t=this.geometry,r=rd[t.userData.type],n=this.objectType==="NonParametric"?Object.assign({},t.userData,{geometry:t}):t.userData,s=r.build(r.normalizeInputs(e,n)),l=t.uuid;if(this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),this.cloner)for(let c of this.cloner.children)c.geometry=this.geometry}resizeGeometry(e,t,r){Ta.resizeGeometry(this.geometry,{width:e,height:t,depth:r})}shallowClone(e){return new this.constructor(this.geometry,this.material).shallowCopy(this,e)}clone(e){let t=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,r=Ia(t),n=Array.isArray(this.material)?this.material.map(s=>s.clone()):this.material.clone();return new this.constructor(r,n).copy(this,e)}copy(e,t=!0){return super.copy(e,t),e.cloner&&(this.cloner=new gu(e,e.cloner.parameters),this.add(this.cloner)),this}toJSON(e){let t=super.toJSON(e),r=t.object;if(r.geometry=Iv(e.geometries,this.geometry,this.material),Array.isArray(this.material)){let n=[];for(let s=0,l=this.material.length;s<l;s++)n.push(sd(e.materials,this.material[s],e));r.material=n}else r.material=sd(e.materials,this.material,e);return t}fromJSON(e){return super.fromJSON(e),e.selectedMaterial!==void 0&&(this.selectedMaterial=e.selectedMaterial),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new gu(this)),this.cloner.fromClonerState(e))}fromState(e,t){var r,n;return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=(r=e.castShadow)!=null?r:!0,this.receiveShadow=(n=e.receiveShadow)!=null?n:!0),this}};import{NormalBlending as YD,ShaderMaterial as QD,FrontSide as e3}from"three";import{CubeReflectionMapping as UD,CubeRefractionMapping as kD,CubeUVReflectionMapping as HD,CubeUVRefractionMapping as WD,LinearEncoding as jv,sRGBEncoding as qD}from"three";var yu=class{constructor(e){e=e!=null?e:{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};import{MathUtils as OD}from"three";var Pe=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=OD.generateUUID(),this.type=e,this.name="",this.userData={}}analyze(e,t){t=t!=null?t:{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,r){return r=r!=null?r:{},this.analyze(e,r),this.flow(e,t,r)}flow(e,t,r){r=r!=null?r:{},e.addFlow(r.slot,r.cache,r.context);let n={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),n}build(e,t,r){t=t!=null?t:this.getType(e,t);let n=e.getNodeData(r!=null?r:this);return e.analyzing&&this.appendDepsNode(e,n,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,r)}updateFrame(e){}generateReadonly(e,t,r,n,s,l){return""}generate(e,t,r,n,s){return""}parse(e,t,r,n){}appendDepsNode(e,t,r){t.deps=(t.deps||0)+1;let n=e.getTypeLength(r);(n>(t.outputMax||0)||this.getType(e,r))&&(t.outputMax=n,t.output=r)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getJSONNode(e){if((e==null?void 0:e.materials)&&(e==null?void 0:e.materials[this.uuid])!==void 0)return e.materials[this.uuid]}getHash(){let e="{",t,r;for(t in this)r=this[t],r instanceof Pe&&(e+='"'+t+'":'+r.getHash()+",");if(this.hashProperties)for(let n=0;n<this.hashProperties.length;n++)t=this.hashProperties[n],r=this[t],e+='"'+t+'":"'+String(r)+'",';return e+='"id":"'+this.uuid+'"}',e}copy(e){return this.name=e.name,e.type&&(this.type=e.type),e.frameId&&(this.frameId=e.frameId),e.hashProperties&&(this.hashProperties=e.hashProperties.map(t=>t)),this.userData=JSON.parse(JSON.stringify(e.userData)),this.shortcuts=JSON.parse(JSON.stringify(e.shortcuts)),this}clone(){return new this.constructor().copy(this)}createJSONNode(e){let t=e===void 0||typeof e=="string";if(typeof this.type!="string")throw new Error("Node does not allow serialization.");let r={};return r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),JSON.stringify(this.userData)!=="{}"&&(r.userData=this.userData),!t&&e&&(e.nodes[this.uuid]=r),r}toJSON(e){var t;return(t=this.getJSONNode(e))!=null?t:this.createJSONNode(e)}fromJSON(e,t){return this.uuid=e.uuid,this.type=e.type,e.name&&(this.name=e.name),e.userData&&(this.userData=e.userData),this}};var Ov=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,r){r=r!==void 0?r:!0,this.keywords[e]={callback:t,cache:r}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},tr=new Ov;import{Vector2 as Pv}from"three";import{MathUtils as PD}from"three";var Be=class extends Pe{constructor(e,t){super(e);this.scope="";t=t!=null?t:{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(e,t,r,n){if(t=t!=null?t:this.getType(e),this.getShared(e,t)){let s=this.getUnique(e,t);s&&this.uuid===void 0&&(this.uuid=PD.generateUUID()),r=e.getUUID(r!=null?r:this.getUUID(),!s);let l=e.getNodeData(r),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,r)):super.build(e,t,r);if(s)return l.name=l.name||super.build(e,t,r),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,t,r);r=this.getUUID(!1);let f=this.getTemp(e,r);if(f)return e.format(f,c,t);{f=super.generate(e,t,r,l.output,n);let h=this.generate(e,c,r);return e.addNodeCode(f+" = "+h+";"),e.format(f,c,t)}}return super.build(e,t,r)}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 r=e.getVars()[t];return r?r.name:void 0}generate(e,t,r,n,s){return this.getShared(e,t)||console.error("TempNode is not shared"),r=r!=null?r:this.uuid,e.getTempVar(r,n!=null?n:this.getType(e),s,this.getLabel()).name}};var It=class extends Be{constructor(e,t){t=t!=null?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}createJSONNode(e){let t=super.createJSONNode(e);return this.readonly===!0&&(t.readonly=this.readonly),t}fromJSON(e,t){return super.fromJSON(e,t),e.readonly!==void 0&&this.setReadonly(e.readonly),this}generate(e,t,r,n,s,l){r=e.getUUID(r!=null?r:this.getUUID()),n=n!=null?n:this.getType(e);let c=e.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,t,r,n,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,l,this.getLabel())),e.format(c.vertex.name,n,t)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,l,this.getLabel())),e.format(c.fragment.name,n,t))}copy(e){return super.copy(e),this.readonly=e.readonly,this}};var _r=class extends It{constructor(e=0,t){super("v2");this.nodeType="Vector2";this.value=e instanceof Pv?e:new Pv(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,r,n,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};import{Vector3 as Dv}from"three";var Tr=class extends It{constructor(e=0,t,r){super("v3");this.nodeType="Vector3";this.value=e instanceof Dv?e:new Dv(e,t,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,t,r,n,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var Xi=class extends It{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tn?e:new tn(e.r,e.g,e.b,e.a)}generateReadonly(e,t,r,n,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var DD=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Bv=/[a-z_0-9]+/gi,Se=class extends Be{constructor(e,t,r,n,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,r,n)}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,r,n,s){let l,c=0,f=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let h=[];for(;l=Bv.exec(this.src);)h.push(l);for(let p=0;p<h.length;p++){let y=h[p],g=y[0],w=this.isMethod?!this.getInputByName(g):!0,S=g;if(this.keywords[g]||this.useKeywords&&w&&tr.containsKeyword(g)){let T=this.keywords[g];if(!T){let C=tr.getKeywordData(g);C.cache&&(T=e.keywords[g]),T=T||tr.getKeyword(g,e),C.cache&&(e.keywords[g]=T)}S=T.build(e)}g!==S&&(f=f.substring(0,y.index+c)+S+f.substring(y.index+g.length+c),c+=S.length-g.length),this.getIncludeByName(S)===void 0&&tr.contains(S)&&e.include(tr.get(S))}return t==="source"?f:this.isMethod?(this.isInterface||e.include(this,void 0,f),this.name):e.format("( "+f+" )",this.getType(e),t)}parse(e,t,r,n){if(this.src=e||"",this.includes=t!=null?t:[],this.extensions=r!=null?r:{},this.keywords=n!=null?n:{},this.isMethod){let s=DD.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(Bv);if(l){let c=0;for(;c<l.length;){let f=l[c++],h;f==="in"||f==="out"||f==="inout"?h=l[c++]:(h=f,f="");let p=l[c++];this.inputs.push({name:p,type:h,qualifier:f})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}copy(e){return super.copy(e),this.isMethod=e.isMethod,this.useKeywords=e.useKeywords,e.type!==void 0&&(this.type=e.type),this.parse(e.src,e.includes,e.extensions,e.keywords),this}toJSON(e){var r;let t=this.getJSONNode(e);if(!t){t=this.createJSONNode(e),t.src=this.src,t.isMethod=this.isMethod,t.useKeywords=this.useKeywords,this.isMethod||(t.type=this.type),t.extensions=JSON.parse(JSON.stringify(this.extensions));let n={};for(let s in this.keywords)n[s]=this.keywords[s].toJSON(e).uuid;if(t.keywords=n,(r=this.includes)==null?void 0:r.length){let s=[];for(let l=0;l<this.includes.length;l++)s.push(this.includes[l].toJSON(e).uuid);t.includes=s}t.isMethod=this.isMethod,t.inputs=this.inputs}return t.nodeType=this.nodeType,t}fromJSON(e,t){if(super.fromJSON(e,t),e.inputs!==void 0&&(this.inputs=e.inputs),e.isMethod!==void 0&&(this.isMethod=e.isMethod),e.src&&(this.src=e.src),e.isMethod&&(this.isMethod=e.isMethod),e.useKeywords&&(this.useKeywords=e.useKeywords),e.type&&(this.type=e.type),e.extensions&&(this.extensions=e.extensions),e.keywords&&t){this.keywords={};for(let r in e.keywords)this.keywords[r]=t.getNode(e.keywords[r])}return e.includes&&t&&(this.includes=e.includes.map(r=>t.getNode(r))),this}};var BD=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,ld=class extends Be{constructor(e="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||ld.PI,void 0,void 0,void 0,t)}getType(e){return e.getTypeByFormat(this.type)}parse(e,t,r,n,s){this.src=e||"";let l,c,f="",h=BD.exec(e);this.useDefine=s!=null?s:this.src.charAt(0)==="#",h&&h.length>1?(c=h[1],l=h[2],f=h[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=f}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,r,n,s){return e.format(this.name,this.getType(e),t)}copy(e){return super.copy(e),this.parse(e.src,void 0,void 0,void 0,e.useDefine),this}},it=ld;it.PI="PI",it.PI2="PI2",it.RECIPROCAL_PI="RECIPROCAL_PI",it.RECIPROCAL_PI2="RECIPROCAL_PI2",it.LOG2="LOG2",it.EPSILON="EPSILON";var GD=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
20
|
+
}`;var Je=ug(function(){return lt(v,Le+"return "+ie).apply(i,N)});if(Je.source=ie,Hf(Je))throw Je;return Je}function t_(o){return ut(o).toLowerCase()}function r_(o){return ut(o).toUpperCase()}function n_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(tt,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=Tn(a),v=Sp(d,m),N=wp(d,m)+1;return Bi(d,v,N).join("")}function i_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(mt,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=wp(d,Tn(a))+1;return Bi(d,0,m).join("")}function o_(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(at,"");if(!o||!(a=qr(a)))return o;var d=Tn(o),m=Sp(d,Tn(a));return Bi(d,m).join("")}function s_(o,a){var u=E,d=b;if(Dt(a)){var m="separator"in a?a.separator:m;u="length"in a?We(a.length):u,d="omission"in a?qr(a.omission):d}o=ut(o);var v=o.length;if(Fo(o)){var N=Tn(o);v=N.length}if(u>=v)return o;var L=u-Vo(d);if(L<1)return d;var M=N?Bi(N,0,L).join(""):o.slice(0,L);if(m===i)return M+d;if(N&&(L+=M.length-L),Wf(m)){if(o.slice(L).search(m)){var Q,te=M;for(m.global||(m=af(m.source,ut(_n.exec(m))+"g")),m.lastIndex=0;Q=m.exec(te);)var ie=Q.index;M=M.slice(0,ie===i?L:ie)}}else if(o.indexOf(qr(m),L)!=L){var me=M.lastIndexOf(m);me>-1&&(M=M.slice(0,me))}return M+d}function a_(o){return o=ut(o),o&&jo.test(o)?o.replace(no,jS):o}var l_=$o(function(o,a,u){return o+(u?" ":"")+a.toUpperCase()}),Jf=fm("toUpperCase");function cg(o,a,u){return o=ut(o),a=u?i:a,a===i?OS(o)?zS(o):wS(o):o.match(a)||[]}var ug=Ze(function(o,a){try{return Hr(o,i,a)}catch(u){return Hf(u)?u:new Ue(u)}}),c_=li(function(o,a){return sn(a,function(u){u=Un(u),si(o,u,Uf(o[u],o))}),o});function u_(o){var a=o==null?0:o.length,u=De();return o=a?Ot(o,function(d){if(typeof d[1]!="function")throw new an(n);return[u(d[0]),d[1]]}):[],Ze(function(d){for(var m=-1;++m<a;){var v=o[m];if(Hr(v[0],this,d))return Hr(v[1],this,d)}})}function f_(o){return jw(cn(o,f))}function Kf(o){return function(){return o}}function h_(o,a){return o==null||o!==o?a:o}var d_=dm(),p_=dm(!0);function Br(o){return o}function Xf(o){return kp(typeof o=="function"?o:cn(o,f))}function m_(o){return Wp(cn(o,f))}function g_(o,a){return qp(o,cn(a,f))}var y_=Ze(function(o,a){return function(u){return Qs(u,o,a)}}),x_=Ze(function(o,a){return function(u){return Qs(o,u,a)}});function Zf(o,a,u){var d=nr(a),m=wl(a,d);u==null&&!(Dt(a)&&(m.length||!d.length))&&(u=a,a=o,o=this,m=wl(a,nr(a)));var v=!(Dt(u)&&"chain"in u)||!!u.chain,N=ui(o);return sn(m,function(L){var M=a[L];o[L]=M,N&&(o.prototype[L]=function(){var Q=this.__chain__;if(v||Q){var te=o(this.__wrapped__),ie=te.__actions__=Or(this.__actions__);return ie.push({func:M,args:arguments,thisArg:o}),te.__chain__=Q,te}return M.apply(o,Ti([this.value()],arguments))})}),o}function v_(){return rr._===this&&(rr._=WS),this}function Yf(){}function b_(o){return o=We(o),Ze(function(a){return $p(a,o)})}var S_=Mf(Ot),w_=Mf(gp),N_=Mf(Qu);function fg(o){return jf(o)?ef(Un(o)):Qw(o)}function C_(o){return function(a){return o==null?i:fo(o,a)}}var L_=mm(),__=mm(!0);function Qf(){return[]}function eh(){return!1}function T_(){return{}}function I_(){return""}function M_(){return!0}function A_(o,a){if(o=We(o),o<1||o>re)return[];var u=Me,d=pr(o,Me);a=De(a),o-=Me;for(var m=nf(d,a);++u<o;)a(u);return m}function O_(o){return ke(o)?Ot(o,Un):$r(o)?[o]:Or(Om(ut(o)))}function P_(o){var a=++kS;return ut(o)+a}var D_=Il(function(o,a){return o+a},0),B_=Af("ceil"),G_=Il(function(o,a){return o/a},1),j_=Af("floor");function E_(o){return o&&o.length?Sl(o,Br,mf):i}function R_(o,a){return o&&o.length?Sl(o,De(a,2),mf):i}function z_(o){return vp(o,Br)}function F_(o,a){return vp(o,De(a,2))}function V_(o){return o&&o.length?Sl(o,Br,vf):i}function U_(o,a){return o&&o.length?Sl(o,De(a,2),vf):i}var k_=Il(function(o,a){return o*a},1),H_=Af("round"),W_=Il(function(o,a){return o-a},0);function q_(o){return o&&o.length?rf(o,Br):0}function $_(o,a){return o&&o.length?rf(o,De(a,2)):0}return x.after=mC,x.ary=Um,x.assign=rL,x.assignIn=rg,x.assignInWith=Vl,x.assignWith=nL,x.at=iL,x.before=km,x.bind=Uf,x.bindAll=c_,x.bindKey=Hm,x.castArray=TC,x.chain=zm,x.chunk=j1,x.compact=E1,x.concat=R1,x.cond=u_,x.conforms=f_,x.constant=Kf,x.countBy=qN,x.create=oL,x.curry=Wm,x.curryRight=qm,x.debounce=$m,x.defaults=sL,x.defaultsDeep=aL,x.defer=gC,x.delay=yC,x.difference=z1,x.differenceBy=F1,x.differenceWith=V1,x.drop=U1,x.dropRight=k1,x.dropRightWhile=H1,x.dropWhile=W1,x.fill=q1,x.filter=JN,x.flatMap=ZN,x.flatMapDeep=YN,x.flatMapDepth=QN,x.flatten=Gm,x.flattenDeep=$1,x.flattenDepth=J1,x.flip=xC,x.flow=d_,x.flowRight=p_,x.fromPairs=K1,x.functions=pL,x.functionsIn=mL,x.groupBy=eC,x.initial=Z1,x.intersection=Y1,x.intersectionBy=Q1,x.intersectionWith=eN,x.invert=yL,x.invertBy=xL,x.invokeMap=rC,x.iteratee=Xf,x.keyBy=nC,x.keys=nr,x.keysIn=Dr,x.map=Gl,x.mapKeys=bL,x.mapValues=SL,x.matches=m_,x.matchesProperty=g_,x.memoize=El,x.merge=wL,x.mergeWith=ng,x.method=y_,x.methodOf=x_,x.mixin=Zf,x.negate=Rl,x.nthArg=b_,x.omit=NL,x.omitBy=CL,x.once=vC,x.orderBy=iC,x.over=S_,x.overArgs=bC,x.overEvery=w_,x.overSome=N_,x.partial=kf,x.partialRight=Jm,x.partition=oC,x.pick=LL,x.pickBy=ig,x.property=fg,x.propertyOf=C_,x.pull=iN,x.pullAll=Em,x.pullAllBy=oN,x.pullAllWith=sN,x.pullAt=aN,x.range=L_,x.rangeRight=__,x.rearg=SC,x.reject=lC,x.remove=lN,x.rest=wC,x.reverse=Ff,x.sampleSize=uC,x.set=TL,x.setWith=IL,x.shuffle=fC,x.slice=cN,x.sortBy=pC,x.sortedUniq=gN,x.sortedUniqBy=yN,x.split=ZL,x.spread=NC,x.tail=xN,x.take=vN,x.takeRight=bN,x.takeRightWhile=SN,x.takeWhile=wN,x.tap=EN,x.throttle=CC,x.thru=Bl,x.toArray=Qm,x.toPairs=og,x.toPairsIn=sg,x.toPath=O_,x.toPlainObject=tg,x.transform=ML,x.unary=LC,x.union=NN,x.unionBy=CN,x.unionWith=LN,x.uniq=_N,x.uniqBy=TN,x.uniqWith=IN,x.unset=AL,x.unzip=Vf,x.unzipWith=Rm,x.update=OL,x.updateWith=PL,x.values=Xo,x.valuesIn=DL,x.without=MN,x.words=cg,x.wrap=_C,x.xor=AN,x.xorBy=ON,x.xorWith=PN,x.zip=DN,x.zipObject=BN,x.zipObjectDeep=GN,x.zipWith=jN,x.entries=og,x.entriesIn=sg,x.extend=rg,x.extendWith=Vl,Zf(x,x),x.add=D_,x.attempt=ug,x.camelCase=EL,x.capitalize=ag,x.ceil=B_,x.clamp=BL,x.clone=IC,x.cloneDeep=AC,x.cloneDeepWith=OC,x.cloneWith=MC,x.conformsTo=PC,x.deburr=lg,x.defaultTo=h_,x.divide=G_,x.endsWith=RL,x.eq=Mn,x.escape=zL,x.escapeRegExp=FL,x.every=$N,x.find=KN,x.findIndex=Dm,x.findKey=lL,x.findLast=XN,x.findLastIndex=Bm,x.findLastKey=cL,x.floor=j_,x.forEach=Fm,x.forEachRight=Vm,x.forIn=uL,x.forInRight=fL,x.forOwn=hL,x.forOwnRight=dL,x.get=qf,x.gt=DC,x.gte=BC,x.has=gL,x.hasIn=$f,x.head=jm,x.identity=Br,x.includes=tC,x.indexOf=X1,x.inRange=GL,x.invoke=vL,x.isArguments=mo,x.isArray=ke,x.isArrayBuffer=GC,x.isArrayLike=Pr,x.isArrayLikeObject=zt,x.isBoolean=jC,x.isBuffer=Gi,x.isDate=EC,x.isElement=RC,x.isEmpty=zC,x.isEqual=FC,x.isEqualWith=VC,x.isError=Hf,x.isFinite=UC,x.isFunction=ui,x.isInteger=Km,x.isLength=zl,x.isMap=Xm,x.isMatch=kC,x.isMatchWith=HC,x.isNaN=WC,x.isNative=qC,x.isNil=JC,x.isNull=$C,x.isNumber=Zm,x.isObject=Dt,x.isObjectLike=Gt,x.isPlainObject=oa,x.isRegExp=Wf,x.isSafeInteger=KC,x.isSet=Ym,x.isString=Fl,x.isSymbol=$r,x.isTypedArray=Ko,x.isUndefined=XC,x.isWeakMap=ZC,x.isWeakSet=YC,x.join=tN,x.kebabCase=VL,x.last=fn,x.lastIndexOf=rN,x.lowerCase=UL,x.lowerFirst=kL,x.lt=QC,x.lte=eL,x.max=E_,x.maxBy=R_,x.mean=z_,x.meanBy=F_,x.min=V_,x.minBy=U_,x.stubArray=Qf,x.stubFalse=eh,x.stubObject=T_,x.stubString=I_,x.stubTrue=M_,x.multiply=k_,x.nth=nN,x.noConflict=v_,x.noop=Yf,x.now=jl,x.pad=HL,x.padEnd=WL,x.padStart=qL,x.parseInt=$L,x.random=jL,x.reduce=sC,x.reduceRight=aC,x.repeat=JL,x.replace=KL,x.result=_L,x.round=H_,x.runInContext=P,x.sample=cC,x.size=hC,x.snakeCase=XL,x.some=dC,x.sortedIndex=uN,x.sortedIndexBy=fN,x.sortedIndexOf=hN,x.sortedLastIndex=dN,x.sortedLastIndexBy=pN,x.sortedLastIndexOf=mN,x.startCase=YL,x.startsWith=QL,x.subtract=W_,x.sum=q_,x.sumBy=$_,x.template=e_,x.times=A_,x.toFinite=fi,x.toInteger=We,x.toLength=eg,x.toLower=t_,x.toNumber=hn,x.toSafeInteger=tL,x.toString=ut,x.toUpper=r_,x.trim=n_,x.trimEnd=i_,x.trimStart=o_,x.truncate=s_,x.unescape=a_,x.uniqueId=P_,x.upperCase=l_,x.upperFirst=Jf,x.each=Fm,x.eachRight=Vm,x.first=jm,Zf(x,function(){var o={};return Fn(x,function(a,u){dt.call(x.prototype,u)||(o[u]=a)}),o}(),{chain:!1}),x.VERSION=e,sn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){x[o].placeholder=x}),sn(["drop","take"],function(o,a){rt.prototype[o]=function(u){u=u===i?1:Xt(We(u),0);var d=this.__filtered__&&!a?new rt(this):this.clone();return d.__filtered__?d.__takeCount__=pr(u,d.__takeCount__):d.__views__.push({size:pr(u,Me),type:o+(d.__dir__<0?"Right":"")}),d},rt.prototype[o+"Right"]=function(u){return this.reverse()[o](u).reverse()}}),sn(["filter","map","takeWhile"],function(o,a){var u=a+1,d=u==z||u==$;rt.prototype[o]=function(m){var v=this.clone();return v.__iteratees__.push({iteratee:De(m,3),type:u}),v.__filtered__=v.__filtered__||d,v}}),sn(["head","last"],function(o,a){var u="take"+(a?"Right":"");rt.prototype[o]=function(){return this[u](1).value()[0]}}),sn(["initial","tail"],function(o,a){var u="drop"+(a?"":"Right");rt.prototype[o]=function(){return this.__filtered__?new rt(this):this[u](1)}}),rt.prototype.compact=function(){return this.filter(Br)},rt.prototype.find=function(o){return this.filter(o).head()},rt.prototype.findLast=function(o){return this.reverse().find(o)},rt.prototype.invokeMap=Ze(function(o,a){return typeof o=="function"?new rt(this):this.map(function(u){return Qs(u,o,a)})}),rt.prototype.reject=function(o){return this.filter(Rl(De(o)))},rt.prototype.slice=function(o,a){o=We(o);var u=this;return u.__filtered__&&(o>0||a<0)?new rt(u):(o<0?u=u.takeRight(-o):o&&(u=u.drop(o)),a!==i&&(a=We(a),u=a<0?u.dropRight(-a):u.take(a-o)),u)},rt.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},rt.prototype.toArray=function(){return this.take(Me)},Fn(rt.prototype,function(o,a){var u=/^(?:filter|find|map|reject)|While$/.test(a),d=/^(?:head|last)$/.test(a),m=x[d?"take"+(a=="last"?"Right":""):a],v=d||/^find/.test(a);!m||(x.prototype[a]=function(){var N=this.__wrapped__,L=d?[1]:arguments,M=N instanceof rt,Q=L[0],te=M||ke(N),ie=function(et){var nt=m.apply(x,Ti([et],L));return d&&me?nt[0]:nt};te&&u&&typeof Q=="function"&&Q.length!=1&&(M=te=!1);var me=this.__chain__,Le=!!this.__actions__.length,Re=v&&!me,Je=M&&!Le;if(!v&&te){N=Je?N:new rt(this);var je=o.apply(N,L);return je.__actions__.push({func:Bl,args:[ie],thisArg:i}),new ln(je,me)}return Re&&Je?o.apply(this,L):(je=this.thru(ie),Re?d?je.value()[0]:je.value():je)})}),sn(["pop","push","shift","sort","splice","unshift"],function(o){var a=sl[o],u=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",d=/^(?:pop|shift)$/.test(o);x.prototype[o]=function(){var m=arguments;if(d&&!this.__chain__){var v=this.value();return a.apply(ke(v)?v:[],m)}return this[u](function(N){return a.apply(ke(N)?N:[],m)})}}),Fn(rt.prototype,function(o,a){var u=x[a];if(u){var d=u.name+"";dt.call(Ho,d)||(Ho[d]=[]),Ho[d].push({name:a,func:u})}}),Ho[Tl(i,S).name]=[{name:"wrapper",func:i}],rt.prototype.clone=aw,rt.prototype.reverse=lw,rt.prototype.value=cw,x.prototype.at=RN,x.prototype.chain=zN,x.prototype.commit=FN,x.prototype.next=VN,x.prototype.plant=kN,x.prototype.reverse=HN,x.prototype.toJSON=x.prototype.valueOf=x.prototype.value=WN,x.prototype.first=x.prototype.head,qs&&(x.prototype[qs]=UN),x},Mi=FS();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(rr._=Mi,define(function(){return Mi})):so?((so.exports=Mi)._=Mi,Ku._=Mi):rr._=Mi}).call(Hs)});import{FileLoader as _B,Loader as TB}from"three";function yg(i){return Array.isArray(i)?i:[i]}var nT=typeof global=="object"&&global&&global.Object===Object&&global,Ul=nT;var iT=typeof self=="object"&&self&&self.Object===Object&&self,oT=Ul||iT||Function("return this")(),qt=oT;var sT=qt.Symbol,Nr=sT;var xg=Object.prototype,aT=xg.hasOwnProperty,lT=xg.toString,aa=Nr?Nr.toStringTag:void 0;function cT(i){var e=aT.call(i,aa),t=i[aa];try{i[aa]=void 0;var r=!0}catch(s){}var n=lT.call(i);return r&&(e?i[aa]=t:delete i[aa]),n}var vg=cT;var uT=Object.prototype,fT=uT.toString;function hT(i){return fT.call(i)}var bg=hT;var dT="[object Null]",pT="[object Undefined]",Sg=Nr?Nr.toStringTag:void 0;function mT(i){return i==null?i===void 0?pT:dT:Sg&&Sg in Object(i)?vg(i):bg(i)}var Xr=mT;function gT(i){return i!=null&&typeof i=="object"}var gr=gT;var yT="[object Symbol]";function xT(i){return typeof i=="symbol"||gr(i)&&Xr(i)==yT}var Zo=xT;function vT(i,e){for(var t=-1,r=i==null?0:i.length,n=Array(r);++t<r;)n[t]=e(i[t],t,i);return n}var kl=vT;var bT=Array.isArray,cr=bT;var ST=1/0,wg=Nr?Nr.prototype:void 0,Ng=wg?wg.toString:void 0;function Cg(i){if(typeof i=="string")return i;if(cr(i))return kl(i,Cg)+"";if(Zo(i))return Ng?Ng.call(i):"";var e=i+"";return e=="0"&&1/i==-ST?"-0":e}var Lg=Cg;function wT(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var yr=wT;function NT(i){return i}var Hl=NT;var CT="[object AsyncFunction]",LT="[object Function]",_T="[object GeneratorFunction]",TT="[object Proxy]";function IT(i){if(!yr(i))return!1;var e=Xr(i);return e==LT||e==_T||e==CT||e==TT}var Yo=IT;var MT=qt["__core-js_shared__"],Wl=MT;var _g=function(){var i=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function AT(i){return!!_g&&_g in i}var Tg=AT;var OT=Function.prototype,PT=OT.toString;function DT(i){if(i!=null){try{return PT.call(i)}catch(e){}try{return i+""}catch(e){}}return""}var di=DT;var BT=/[\\^$.*+?()[\]{}|]/g,GT=/^\[object .+?Constructor\]$/,jT=Function.prototype,ET=Object.prototype,RT=jT.toString,zT=ET.hasOwnProperty,FT=RegExp("^"+RT.call(zT).replace(BT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function VT(i){if(!yr(i)||Tg(i))return!1;var e=Yo(i)?FT:GT;return e.test(di(i))}var Ig=VT;function UT(i,e){return i==null?void 0:i[e]}var Mg=UT;function kT(i,e){var t=Mg(i,e);return Ig(t)?t:void 0}var Gr=kT;var HT=Gr(qt,"WeakMap"),ql=HT;var Ag=Object.create,WT=function(){function i(){}return function(e){if(!yr(e))return{};if(Ag)return Ag(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),Og=WT;function qT(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var Pg=qT;function $T(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var $l=$T;var JT=800,KT=16,XT=Date.now;function ZT(i){var e=0,t=0;return function(){var r=XT(),n=KT-(r-t);if(t=r,n>0){if(++e>=JT)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var Dg=ZT;function YT(i){return function(){return i}}var Bg=YT;var QT=function(){try{var i=Gr(Object,"defineProperty");return i({},"",{}),i}catch(e){}}(),Qo=QT;var eI=Qo?function(i,e){return Qo(i,"toString",{configurable:!0,enumerable:!1,value:Bg(e),writable:!0})}:Hl,Gg=eI;var tI=Dg(Gg),Jl=tI;function rI(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var jg=rI;var nI=9007199254740991,iI=/^(?:0|[1-9]\d*)$/;function oI(i,e){var t=typeof i;return e=e==null?nI:e,!!e&&(t=="number"||t!="symbol"&&iI.test(i))&&i>-1&&i%1==0&&i<e}var Kl=oI;function sI(i,e,t){e=="__proto__"&&Qo?Qo(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var es=sI;function aI(i,e){return i===e||i!==i&&e!==e}var ji=aI;var lI=Object.prototype,cI=lI.hasOwnProperty;function uI(i,e,t){var r=i[e];(!(cI.call(i,e)&&ji(r,t))||t===void 0&&!(e in i))&&es(i,e,t)}var Xl=uI;function fI(i,e,t,r){var n=!t;t||(t={});for(var s=-1,l=e.length;++s<l;){var c=e[s],f=r?r(t[c],i[c],c,t,i):void 0;f===void 0&&(f=i[c]),n?es(t,c,f):Xl(t,c,f)}return t}var dn=fI;var Eg=Math.max;function hI(i,e,t){return e=Eg(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=Eg(r.length-e,0),l=Array(s);++n<s;)l[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=t(l),Pg(i,this,c)}}var Zl=hI;function dI(i,e){return Jl(Zl(i,e,Hl),i+"")}var Rg=dI;var pI=9007199254740991;function mI(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=pI}var Yl=mI;function gI(i){return i!=null&&Yl(i.length)&&!Yo(i)}var Ei=gI;function yI(i,e,t){if(!yr(t))return!1;var r=typeof e;return(r=="number"?Ei(t)&&Kl(e,t.length):r=="string"&&e in t)?ji(t[e],i):!1}var zg=yI;function xI(i){return Rg(function(e,t){var r=-1,n=t.length,s=n>1?t[n-1]:void 0,l=n>2?t[2]:void 0;for(s=i.length>3&&typeof s=="function"?(n--,s):void 0,l&&zg(t[0],t[1],l)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=t[r];c&&i(e,c,r,s)}return e})}var Fg=xI;var vI=Object.prototype;function bI(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||vI;return i===t}var ts=bI;function SI(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Vg=SI;var wI="[object Arguments]";function NI(i){return gr(i)&&Xr(i)==wI}var nh=NI;var Ug=Object.prototype,CI=Ug.hasOwnProperty,LI=Ug.propertyIsEnumerable,_I=nh(function(){return arguments}())?nh:function(i){return gr(i)&&CI.call(i,"callee")&&!LI.call(i,"callee")},go=_I;function TI(){return!1}var kg=TI;var Hg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wg=Hg&&typeof module=="object"&&module&&!module.nodeType&&module,II=Wg&&Wg.exports===Hg,qg=II?qt.Buffer:void 0,MI=qg?qg.isBuffer:void 0,AI=MI||kg,rs=AI;var OI="[object Arguments]",PI="[object Array]",DI="[object Boolean]",BI="[object Date]",GI="[object Error]",jI="[object Function]",EI="[object Map]",RI="[object Number]",zI="[object Object]",FI="[object RegExp]",VI="[object Set]",UI="[object String]",kI="[object WeakMap]",HI="[object ArrayBuffer]",WI="[object DataView]",qI="[object Float32Array]",$I="[object Float64Array]",JI="[object Int8Array]",KI="[object Int16Array]",XI="[object Int32Array]",ZI="[object Uint8Array]",YI="[object Uint8ClampedArray]",QI="[object Uint16Array]",eM="[object Uint32Array]",Tt={};Tt[qI]=Tt[$I]=Tt[JI]=Tt[KI]=Tt[XI]=Tt[ZI]=Tt[YI]=Tt[QI]=Tt[eM]=!0;Tt[OI]=Tt[PI]=Tt[HI]=Tt[DI]=Tt[WI]=Tt[BI]=Tt[GI]=Tt[jI]=Tt[EI]=Tt[RI]=Tt[zI]=Tt[FI]=Tt[VI]=Tt[UI]=Tt[kI]=!1;function tM(i){return gr(i)&&Yl(i.length)&&!!Tt[Xr(i)]}var $g=tM;function rM(i){return function(e){return i(e)}}var ns=rM;var Jg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,la=Jg&&typeof module=="object"&&module&&!module.nodeType&&module,nM=la&&la.exports===Jg,ih=nM&&Ul.process,iM=function(){try{var i=la&&la.require&&la.require("util").types;return i||ih&&ih.binding&&ih.binding("util")}catch(e){}}(),pi=iM;var Kg=pi&&pi.isTypedArray,oM=Kg?ns(Kg):$g,Ql=oM;var sM=Object.prototype,aM=sM.hasOwnProperty;function lM(i,e){var t=cr(i),r=!t&&go(i),n=!t&&!r&&rs(i),s=!t&&!r&&!n&&Ql(i),l=t||r||n||s,c=l?Vg(i.length,String):[],f=c.length;for(var h in i)(e||aM.call(i,h))&&!(l&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Kl(h,f)))&&c.push(h);return c}var ec=lM;function cM(i,e){return function(t){return i(e(t))}}var tc=cM;var uM=tc(Object.keys,Object),Xg=uM;var fM=Object.prototype,hM=fM.hasOwnProperty;function dM(i){if(!ts(i))return Xg(i);var e=[];for(var t in Object(i))hM.call(i,t)&&t!="constructor"&&e.push(t);return e}var Zg=dM;function pM(i){return Ei(i)?ec(i):Zg(i)}var is=pM;function mM(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var Yg=mM;var gM=Object.prototype,yM=gM.hasOwnProperty;function xM(i){if(!yr(i))return Yg(i);var e=ts(i),t=[];for(var r in i)r=="constructor"&&(e||!yM.call(i,r))||t.push(r);return t}var Qg=xM;function vM(i){return Ei(i)?ec(i,!0):Qg(i)}var kn=vM;var bM=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,SM=/^\w*$/;function wM(i,e){if(cr(i))return!1;var t=typeof i;return t=="number"||t=="symbol"||t=="boolean"||i==null||Zo(i)?!0:SM.test(i)||!bM.test(i)||e!=null&&i in Object(e)}var ey=wM;var NM=Gr(Object,"create"),mi=NM;function CM(){this.__data__=mi?mi(null):{},this.size=0}var ty=CM;function LM(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var ry=LM;var _M="__lodash_hash_undefined__",TM=Object.prototype,IM=TM.hasOwnProperty;function MM(i){var e=this.__data__;if(mi){var t=e[i];return t===_M?void 0:t}return IM.call(e,i)?e[i]:void 0}var ny=MM;var AM=Object.prototype,OM=AM.hasOwnProperty;function PM(i){var e=this.__data__;return mi?e[i]!==void 0:OM.call(e,i)}var iy=PM;var DM="__lodash_hash_undefined__";function BM(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=mi&&e===void 0?DM:e,this}var oy=BM;function os(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}os.prototype.clear=ty;os.prototype.delete=ry;os.prototype.get=ny;os.prototype.has=iy;os.prototype.set=oy;var oh=os;function GM(){this.__data__=[],this.size=0}var sy=GM;function jM(i,e){for(var t=i.length;t--;)if(ji(i[t][0],e))return t;return-1}var Ri=jM;var EM=Array.prototype,RM=EM.splice;function zM(i){var e=this.__data__,t=Ri(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():RM.call(e,t,1),--this.size,!0}var ay=zM;function FM(i){var e=this.__data__,t=Ri(e,i);return t<0?void 0:e[t][1]}var ly=FM;function VM(i){return Ri(this.__data__,i)>-1}var cy=VM;function UM(i,e){var t=this.__data__,r=Ri(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var uy=UM;function ss(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}ss.prototype.clear=sy;ss.prototype.delete=ay;ss.prototype.get=ly;ss.prototype.has=cy;ss.prototype.set=uy;var zi=ss;var kM=Gr(qt,"Map"),Fi=kM;function HM(){this.size=0,this.__data__={hash:new oh,map:new(Fi||zi),string:new oh}}var fy=HM;function WM(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var hy=WM;function qM(i,e){var t=i.__data__;return hy(e)?t[typeof e=="string"?"string":"hash"]:t.map}var Vi=qM;function $M(i){var e=Vi(this,i).delete(i);return this.size-=e?1:0,e}var dy=$M;function JM(i){return Vi(this,i).get(i)}var py=JM;function KM(i){return Vi(this,i).has(i)}var my=KM;function XM(i,e){var t=Vi(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var gy=XM;function as(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}as.prototype.clear=fy;as.prototype.delete=dy;as.prototype.get=py;as.prototype.has=my;as.prototype.set=gy;var ca=as;var ZM="Expected a function";function sh(i,e){if(typeof i!="function"||e!=null&&typeof e!="function")throw new TypeError(ZM);var t=function(){var r=arguments,n=e?e.apply(this,r):r[0],s=t.cache;if(s.has(n))return s.get(n);var l=i.apply(this,r);return t.cache=s.set(n,l)||s,l};return t.cache=new(sh.Cache||ca),t}sh.Cache=ca;var yy=sh;var YM=500;function QM(i){var e=yy(i,function(r){return t.size===YM&&t.clear(),r}),t=e.cache;return e}var xy=QM;var eA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,tA=/\\(\\)?/g,rA=xy(function(i){var e=[];return i.charCodeAt(0)===46&&e.push(""),i.replace(eA,function(t,r,n,s){e.push(n?s.replace(tA,"$1"):r||t)}),e}),vy=rA;function nA(i){return i==null?"":Lg(i)}var by=nA;function iA(i,e){return cr(i)?i:ey(i,e)?[i]:vy(by(i))}var ls=iA;var oA=1/0;function sA(i){if(typeof i=="string"||Zo(i))return i;var e=i+"";return e=="0"&&1/i==-oA?"-0":e}var rc=sA;function aA(i,e){e=ls(e,i);for(var t=0,r=e.length;i!=null&&t<r;)i=i[rc(e[t++])];return t&&t==r?i:void 0}var Sy=aA;function lA(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var cs=lA;var wy=Nr?Nr.isConcatSpreadable:void 0;function cA(i){return cr(i)||go(i)||!!(wy&&i&&i[wy])}var Ny=cA;function Cy(i,e,t,r,n){var s=-1,l=i.length;for(t||(t=Ny),n||(n=[]);++s<l;){var c=i[s];e>0&&t(c)?e>1?Cy(c,e-1,t,r,n):cs(n,c):r||(n[n.length]=c)}return n}var Ly=Cy;function uA(i){var e=i==null?0:i.length;return e?Ly(i,1):[]}var _y=uA;function fA(i){return Jl(Zl(i,void 0,_y),i+"")}var Ty=fA;var hA=tc(Object.getPrototypeOf,Object),us=hA;var dA="[object Object]",pA=Function.prototype,mA=Object.prototype,Iy=pA.toString,gA=mA.hasOwnProperty,yA=Iy.call(Object);function xA(i){if(!gr(i)||Xr(i)!=dA)return!1;var e=us(i);if(e===null)return!0;var t=gA.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Iy.call(t)==yA}var nc=xA;function vA(i,e,t){var r=-1,n=i.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++r<n;)s[r]=i[r+e];return s}var My=vA;function bA(){this.__data__=new zi,this.size=0}var Ay=bA;function SA(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Oy=SA;function wA(i){return this.__data__.get(i)}var Py=wA;function NA(i){return this.__data__.has(i)}var Dy=NA;var CA=200;function LA(i,e){var t=this.__data__;if(t instanceof zi){var r=t.__data__;if(!Fi||r.length<CA-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new ca(r)}return t.set(i,e),this.size=t.size,this}var By=LA;function fs(i){var e=this.__data__=new zi(i);this.size=e.size}fs.prototype.clear=Ay;fs.prototype.delete=Oy;fs.prototype.get=Py;fs.prototype.has=Dy;fs.prototype.set=By;var ic=fs;function _A(i,e){return i&&dn(e,is(e),i)}var Gy=_A;function TA(i,e){return i&&dn(e,kn(e),i)}var jy=TA;var Ey=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ry=Ey&&typeof module=="object"&&module&&!module.nodeType&&module,IA=Ry&&Ry.exports===Ey,zy=IA?qt.Buffer:void 0,Fy=zy?zy.allocUnsafe:void 0;function MA(i,e){if(e)return i.slice();var t=i.length,r=Fy?Fy(t):new i.constructor(t);return i.copy(r),r}var oc=MA;function AA(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var l=i[t];e(l,t,i)&&(s[n++]=l)}return s}var Vy=AA;function OA(){return[]}var sc=OA;var PA=Object.prototype,DA=PA.propertyIsEnumerable,Uy=Object.getOwnPropertySymbols,BA=Uy?function(i){return i==null?[]:(i=Object(i),Vy(Uy(i),function(e){return DA.call(i,e)}))}:sc,hs=BA;function GA(i,e){return dn(i,hs(i),e)}var ky=GA;var jA=Object.getOwnPropertySymbols,EA=jA?function(i){for(var e=[];i;)cs(e,hs(i)),i=us(i);return e}:sc,ac=EA;function RA(i,e){return dn(i,ac(i),e)}var Hy=RA;function zA(i,e,t){var r=e(i);return cr(i)?r:cs(r,t(i))}var lc=zA;function FA(i){return lc(i,is,hs)}var Wy=FA;function VA(i){return lc(i,kn,ac)}var cc=VA;var UA=Gr(qt,"DataView"),uc=UA;var kA=Gr(qt,"Promise"),fc=kA;var HA=Gr(qt,"Set"),hc=HA;var qy="[object Map]",WA="[object Object]",$y="[object Promise]",Jy="[object Set]",Ky="[object WeakMap]",Xy="[object DataView]",qA=di(uc),$A=di(Fi),JA=di(fc),KA=di(hc),XA=di(ql),yo=Xr;(uc&&yo(new uc(new ArrayBuffer(1)))!=Xy||Fi&&yo(new Fi)!=qy||fc&&yo(fc.resolve())!=$y||hc&&yo(new hc)!=Jy||ql&&yo(new ql)!=Ky)&&(yo=function(i){var e=Xr(i),t=e==WA?i.constructor:void 0,r=t?di(t):"";if(r)switch(r){case qA:return Xy;case $A:return qy;case JA:return $y;case KA:return Jy;case XA:return Ky}return e});var ds=yo;var ZA=Object.prototype,YA=ZA.hasOwnProperty;function QA(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&YA.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Zy=QA;var eO=qt.Uint8Array,ah=eO;function tO(i){var e=new i.constructor(i.byteLength);return new ah(e).set(new ah(i)),e}var ps=tO;function rO(i,e){var t=e?ps(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var Yy=rO;var nO=/\w*$/;function iO(i){var e=new i.constructor(i.source,nO.exec(i));return e.lastIndex=i.lastIndex,e}var Qy=iO;var ex=Nr?Nr.prototype:void 0,tx=ex?ex.valueOf:void 0;function oO(i){return tx?Object(tx.call(i)):{}}var rx=oO;function sO(i,e){var t=e?ps(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var dc=sO;var aO="[object Boolean]",lO="[object Date]",cO="[object Map]",uO="[object Number]",fO="[object RegExp]",hO="[object Set]",dO="[object String]",pO="[object Symbol]",mO="[object ArrayBuffer]",gO="[object DataView]",yO="[object Float32Array]",xO="[object Float64Array]",vO="[object Int8Array]",bO="[object Int16Array]",SO="[object Int32Array]",wO="[object Uint8Array]",NO="[object Uint8ClampedArray]",CO="[object Uint16Array]",LO="[object Uint32Array]";function _O(i,e,t){var r=i.constructor;switch(e){case mO:return ps(i);case aO:case lO:return new r(+i);case gO:return Yy(i,t);case yO:case xO:case vO:case bO:case SO:case wO:case NO:case CO:case LO:return dc(i,t);case cO:return new r;case uO:case dO:return new r(i);case fO:return Qy(i);case hO:return new r;case pO:return rx(i)}}var nx=_O;function TO(i){return typeof i.constructor=="function"&&!ts(i)?Og(us(i)):{}}var pc=TO;var IO="[object Map]";function MO(i){return gr(i)&&ds(i)==IO}var ix=MO;var ox=pi&&pi.isMap,AO=ox?ns(ox):ix,sx=AO;var OO="[object Set]";function PO(i){return gr(i)&&ds(i)==OO}var ax=PO;var lx=pi&&pi.isSet,DO=lx?ns(lx):ax,cx=DO;var BO=1,GO=2,jO=4,ux="[object Arguments]",EO="[object Array]",RO="[object Boolean]",zO="[object Date]",FO="[object Error]",fx="[object Function]",VO="[object GeneratorFunction]",UO="[object Map]",kO="[object Number]",hx="[object Object]",HO="[object RegExp]",WO="[object Set]",qO="[object String]",$O="[object Symbol]",JO="[object WeakMap]",KO="[object ArrayBuffer]",XO="[object DataView]",ZO="[object Float32Array]",YO="[object Float64Array]",QO="[object Int8Array]",eP="[object Int16Array]",tP="[object Int32Array]",rP="[object Uint8Array]",nP="[object Uint8ClampedArray]",iP="[object Uint16Array]",oP="[object Uint32Array]",Nt={};Nt[ux]=Nt[EO]=Nt[KO]=Nt[XO]=Nt[RO]=Nt[zO]=Nt[ZO]=Nt[YO]=Nt[QO]=Nt[eP]=Nt[tP]=Nt[UO]=Nt[kO]=Nt[hx]=Nt[HO]=Nt[WO]=Nt[qO]=Nt[$O]=Nt[rP]=Nt[nP]=Nt[iP]=Nt[oP]=!0;Nt[FO]=Nt[fx]=Nt[JO]=!1;function mc(i,e,t,r,n,s){var l,c=e&BO,f=e&GO,h=e&jO;if(t&&(l=n?t(i,r,n,s):t(i)),l!==void 0)return l;if(!yr(i))return i;var p=cr(i);if(p){if(l=Zy(i),!c)return $l(i,l)}else{var y=ds(i),g=y==fx||y==VO;if(rs(i))return oc(i,c);if(y==hx||y==ux||g&&!n){if(l=f||g?{}:pc(i),!c)return f?Hy(i,jy(l,i)):ky(i,Gy(l,i))}else{if(!Nt[y])return n?i:{};l=nx(i,y,c)}}s||(s=new ic);var w=s.get(i);if(w)return w;s.set(i,l),cx(i)?i.forEach(function(C){l.add(mc(C,e,t,C,i,s))}):sx(i)&&i.forEach(function(C,B){l.set(B,mc(C,e,t,B,i,s))});var S=h?f?cc:Wy:f?kn:is,T=p?void 0:S(i);return jg(T||i,function(C,B){T&&(B=C,C=i[B]),Xl(l,B,mc(C,e,t,B,i,s))}),l}var gc=mc;var sP=1,aP=4;function lP(i){return gc(i,sP|aP)}var xo=lP;function cP(i){return function(e,t,r){for(var n=-1,s=Object(e),l=r(e),c=l.length;c--;){var f=l[i?c:++n];if(t(s[f],f,s)===!1)break}return e}}var dx=cP;var uP=dx(),px=uP;function fP(i,e,t){(t!==void 0&&!ji(i[e],t)||t===void 0&&!(e in i))&&es(i,e,t)}var ua=fP;function hP(i){return gr(i)&&Ei(i)}var mx=hP;function dP(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}var fa=dP;function pP(i){return dn(i,kn(i))}var gx=pP;function mP(i,e,t,r,n,s,l){var c=fa(i,t),f=fa(e,t),h=l.get(f);if(h){ua(i,t,h);return}var p=s?s(c,f,t+"",i,e,l):void 0,y=p===void 0;if(y){var g=cr(f),w=!g&&rs(f),S=!g&&!w&&Ql(f);p=f,g||w||S?cr(c)?p=c:mx(c)?p=$l(c):w?(y=!1,p=oc(f,!0)):S?(y=!1,p=dc(f,!0)):p=[]:nc(f)||go(f)?(p=c,go(c)?p=gx(c):(!yr(c)||Yo(c))&&(p=pc(f))):y=!1}y&&(l.set(f,p),n(p,f,r,s,l),l.delete(f)),ua(i,t,p)}var yx=mP;function xx(i,e,t,r,n){i!==e&&px(e,function(s,l){if(n||(n=new ic),yr(s))yx(i,e,l,t,xx,r,n);else{var c=r?r(fa(i,l),s,l+"",i,e,n):void 0;c===void 0&&(c=s),ua(i,l,c)}},kn)}var vx=xx;function gP(i){var e=i==null?0:i.length;return e?i[e-1]:void 0}var bx=gP;function yP(i,e){return e.length<2?i:Sy(i,My(e,0,-1))}var Sx=yP;var xP=Fg(function(i,e,t){vx(i,e,t)}),vo=xP;function vP(i,e){return e=ls(e,i),i=Sx(i,e),i==null||delete i[rc(bx(e))]}var wx=vP;function bP(i){return nc(i)?void 0:i}var Nx=bP;var SP=1,wP=2,NP=4,CP=Ty(function(i,e){var t={};if(i==null)return t;var r=!1;e=kl(e,function(s){return s=ls(s,i),r||(r=s.length>1),s}),dn(i,cc(i),t),r&&(t=gc(t,SP|wP|NP,Nx));for(var n=e.length;n--;)wx(t,e[n]);return t}),ms=CP;var gs;(function(t){t.all=["PerspectiveCamera","OrthographicCamera"];function e(r){return t.all.includes(r)}t.is=e})(gs||(gs={}));var bo;(function(n){n.DefaultUp=[0,1,0],n.DefaultTargetOffset=1e3,n.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:n.DefaultUp,isUpVectorFlipped:!1,targetOffset:n.DefaultTargetOffset};function r(s){return s.type==="PerspectiveCamera"?s.perspective.zoom:s.orthographic.zoom}n.getZoom=r})(bo||(bo={}));var ys;(function(r){r.x="x",r.y="y",r.z="z"})(ys||(ys={}));var Cx;(function(s){s.Top="top",s.Right="right",s.Bottom="bottom",s.Left="left",s.Center="center"})(Cx||(Cx={}));var Lx;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s]}t.lerp=e})(Lx||(Lx={}));var xs;(function(n){function i(s,l){return s[0]===l[0]&&s[1]===l[1]&&s[2]===l[2]}n.isEqual=i;function e(s,l){return[s[0]+l[0],s[1]+l[1],s[2]+l[2]]}n.add=e;function t(s,l){return[s[0]-l[0],s[1]-l[1],s[2]-l[2]]}n.sub=t;function r(s,l,c){return[s[0]+(l[0]-s[0])*c,s[1]+(l[1]-s[1])*c,s[2]+(l[2]-s[2])*c]}n.lerp=r})(xs||(xs={}));var _x;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]&&r[2]===n[2]&&r[3]===n[3]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s,r[2]+(n[2]-r[2])*s,r[3]+(n[3]-r[3])*s]}t.lerp=e})(_x||(_x={}));var Ui;(function(s){s.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(l,c){for(let f=0;f<16;f++)if(l[f]!==c[f])return!1;return!0}s.isEqual=e;function t(l){return l!=null?l:s.identity}s.simplify=t;function r(l,c){let f=c.slice(0);for(var h=0,p=c.length;h<p;h+=3){let y=1/(l[3]*c[h]+l[7]*c[h+1]+l[11]*c[h+2]+l[15]);f[h]=(l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2]+l[12])*y,f[h+1]=(l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2]+l[13])*y,f[h+2]=(l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2]+l[14])*y}return f}s.applyMatrix4=r;function n(l,c){let f=c.slice(0);for(var h=0,p=c.length;h<p;h+=3)f[h]=l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2],f[h+1]=l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2],f[h+2]=l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2];return f}s.applyMatrix3Components=n})(Ui||(Ui={}));var Zr;(function(f){f.white={r:1,g:1,b:1},f.red={r:1,g:0,b:0},f.black={r:0,g:0,b:0};function r(h){return{r:Math.round(h.r*255),g:Math.round(h.g*255),b:Math.round(h.b*255),a:1}}f.toRgb255a1=r;function n(h){return{r:h.r,g:h.g,b:h.b}}f.clone=n;function s(h){return h=Math.floor(h),{r:(h>>16&255)/255,g:(h>>8&255)/255,b:(h&255)/255}}f.fromHex=s;function l(h,p){return h.r===p.r&&h.g===p.g&&h.b===p.b}f.equals=l;function c(h,p,y){return{r:h.r+(p.r-h.r)*y,g:h.g+(p.g-h.g)*y,b:h.b+(p.b-h.b)*y}}f.lerp=c})(Zr||(Zr={}));var Hn;(function(l){l.white=fe(U({},Zr.white),{a:1});function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function t(c,f){return fe(U({},Zr.fromHex(c)),{a:f})}l.fromHexAndA=t;function r(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=r;function n(c,f){return Zr.equals(c,f)&&c.a===f.a}l.equals=n;function s(c,f,h){return{r:c.r+(f.r-c.r)*h,g:c.g+(f.g-c.g)*h,b:c.b+(f.b-c.b)*h,a:c.a+(f.a-c.a)*h}}l.lerp=s})(Hn||(Hn={}));var yc;(function(e){e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]}})(yc||(yc={}));var Tx;(function(D){D[D.SKIP=0]="SKIP",D[D.ADD=1]="ADD",D[D.ALPHA=2]="ALPHA",D[D.AVERAGE=3]="AVERAGE",D[D.COLOR_BURN=4]="COLOR_BURN",D[D.COLOR_DODGE=5]="COLOR_DODGE",D[D.DARKEN=6]="DARKEN",D[D.DIFFERENCE=7]="DIFFERENCE",D[D.EXCLUSION=8]="EXCLUSION",D[D.LIGHTEN=9]="LIGHTEN",D[D.MULTIPLY=10]="MULTIPLY",D[D.DIVIDE=11]="DIVIDE",D[D.NEGATION=12]="NEGATION",D[D.NORMAL=13]="NORMAL",D[D.OVERLAY=14]="OVERLAY",D[D.REFLECT=15]="REFLECT",D[D.SCREEN=16]="SCREEN",D[D.SOFT_LIGHT=17]="SOFT_LIGHT",D[D.SUBTRACT=18]="SUBTRACT"})(Tx||(Tx={}));var Ix;(function(c){c[c.LINEAR=0]="LINEAR",c[c.EASE=1]="EASE",c[c.EASE_IN=2]="EASE_IN",c[c.EASE_OUT=3]="EASE_OUT",c[c.EASE_IN_OUT=4]="EASE_IN_OUT",c[c.CUBIC=5]="CUBIC",c[c.SPRING=6]="SPRING"})(Ix||(Ix={}));var Mx;(function(e){e.defaultData={mass:1,stiffness:80,damping:10,velocity:0}})(Mx||(Mx={}));var Ax;(function(e){e.defaultData={control1:[.5,.05],control2:[.1,.3]}})(Ax||(Ax={}));var xc;(function(e){function i(t,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[1])*2,start:0,end:360,alignment:!1,axis:ys.y,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[0,0,0],rotation:[0,0,0],position:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),useCenter:!0}}}e.defaultData=i})(xc||(xc={}));var Wn;(function(e){e[e.Update=0]="Update"})(Wn||(Wn={}));var pn;(function(r){r[r.Add=1]="Add",r[r.Delete=2]="Delete",r[r.Unlink=3]="Unlink"})(pn||(pn={}));var Yr;(function(r){r[r.Add=4]="Add",r[r.Delete=5]="Delete",r[r.Move=6]="Move"})(Yr||(Yr={}));var jr;(function(r){r[r.Add=7]="Add",r[r.Delete=8]="Delete",r[r.Move=9]="Move"})(jr||(jr={}));var On=class{modifyById(e,t){let r=this;if(r[e]===void 0)throw new Error("not expected");{let s=fe(U({},r),{[e]:t});return Object.setPrototypeOf(s,On.prototype),s}}add(e,t){var n;let r=this.runOp({type:pn.Add,id:e,data:t});return(n=r==null?void 0:r.data)!=null?n:this}runOp(e){let t=this;if(e.type===pn.Add){let r=t[e.id],n;r===void 0?n={type:pn.Delete,id:e.id}:n={type:pn.Add,id:e.id,data:r};let{id:s,data:l}=e,c=fe(U({},t),{[s]:l});return Object.setPrototypeOf(c,On.prototype),{data:c,actual:e,reverse:n}}else if(e.type===pn.Delete){let{id:r}=e,n=t[r];if(n===void 0)return null;{let s=U({},t);return Object.setPrototypeOf(s,On.prototype),delete s[r],{data:s,actual:e,reverse:{type:pn.Add,id:r,data:n}}}}throw new Error("illegal arg")}};function ha(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let e=Object.getOwnPropertyNames(i);for(let t of e){let r=i[t];r&&typeof r=="object"&&ha(r)}return Object.freeze(i)}function Ox(i,e){let t=0;for(;t<i.length&&t<e.length;){if(i[t]<e[t])return-1;if(i[t]>e[t])return 1;t+=1}return t!==e.length?-1:t!==i.length?1:0}var lh=class extends Error{};function qn(i,e,t){if(i===void 0?e===void 0?(i=0,e=10):i=e-10:e===void 0&&(e=i+10),i>e){let s=i;i=e,e=s}let r=[],n=1/(t+1);for(let s=0;s<t;s++){let l=i+(e-i)*(s+.75+Math.random()*.5)*n;r.push(l)}return r}function Px(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function Dx(){return typeof process!="undefined"}function Bx(i,e){for(let t of i)e(t.id,t.data),Bx(t.children,e)}function Gx(i,e){e(i.id,i.data);for(let t of i.children)Gx(t,e)}var Pn=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Pn.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ha(this[e]),e++}fillCaches0(e,t){var r;if((r=this.objCaches)==null?void 0:r.has(e.id))throw new Error("duplicated item");this.objCaches.set(e.id,e),this.parentCaches.set(e.id,t);for(let n of e.children)this.fillCaches0(n,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,t){for(;e;){let r=this.parent(e);if(r===t)return!0;e=r}return!1}data(e){var t;return(t=this.get(e))==null?void 0:t.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){var t;return e===null?this:(t=this.get(e))==null?void 0:t.children}traverseFrom(e,t){if(e===null)this.traverse(t);else{let r=this.get(e);r&&Gx(r,t)}}traverse(e){Bx(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 n=this.parent(e),s=this.childrenArray(n),l=s.findIndex(h=>h.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]=fe(U({},c),{data:t}),this.modifyArrayBy(n,s)}}modifyArrayBy(e,t){let r=e,n=t;for(;r!==null;){let l=n,c=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let f=n.findIndex(h=>h.id===c);if(f<0)throw new Error;n=[...n],n[f]=fe(U({},n[f]),{children:l})}Object.setPrototypeOf(n,Pn.prototype);let s=n;return s.fillCaches(),s}runOp(e){switch(e.type){case jr.Add:return this.addOp(e);case jr.Delete:return this.deleteOp(e);case jr.Move:return this.moveOp(e)}}addOp(e){let{parent:t,fi:r,id:n,data:s,children:l}=e;if(t!==null&&this.get(t)===void 0)return null;if(this.get(n)!==void 0)return null;{let c=t,f=this.childrenArray(c),h={fi:r,id:n,data:s,children:l};return f=[...f,h],f.sort((y,g)=>y.fi-g.fi),e.localIndex=f.indexOf(h),{data:this.modifyArrayBy(c,f),actual:e,reverse:{type:jr.Delete,id:n}}}}deleteOp(e){let{id:t}=e;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),s=n.findIndex(f=>f.id===t);e.localIndex=s,n=[...n];let l=n.splice(s,1)[0];return{data:this.modifyArrayBy(r,n),actual:e,reverse:fe(U({type:jr.Add},l),{parent:r})}}}moveOp(e){let{parent:t,fi:r,id:n}=e;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:jr.Delete,id:n});if(t!==null){let g=t;for(;g!==null;){if(g===void 0)throw new Error;if(g===n)throw new lh("cyclic tree");g=this.parent(g)}}let s=this.parent(n);if(s===void 0)return null;let l=s,c=this.childrenArray(s),f=c.findIndex(g=>g.id===n);c=[...c];let h=c.splice(f,1)[0],p=this.modifyArrayBy(s,c);s=t,c=p.childrenArray(s);let y=h.fi;return h=fe(U({},h),{fi:r}),c=[...c,h],c.sort((g,w)=>g.fi-w.fi),e.localIndex=c.indexOf(h),p=p.modifyArrayBy(s,c),{data:p,actual:e,reverse:{type:jr.Move,parent:l,fi:y,id:n}}}previous(e,t){if(t===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(e)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(e){let t=this.parent(e);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)+1;if(n<r.length)return r[n].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 r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(e){let t=[];for(let r of e){let n=this.getWithSortKey(r.id);n!==void 0&&t.push(U(U({},r),n))}t.sort((r,n)=>Ox(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(e){var t=e;let r=[],n=this.get(t),s=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return fe(U({},s),{sortKey:r})}}insertBeforeHelper(e,t,r){return this.insertAfterHelper(e,this.previous(e,t),r)}insertAfterHelper(e,t,r){let n=this.childrenArray(e);if(t===null){if(n.length===0)return qn(0,r,r);{let s=n[0].fi;return qn(s-r,s,r)}}else{let s=this.get(t);if(s===void 0||this.parent(t)!==e)throw new Error("illegal args");let l=n.find(c=>c.fi>s.fi);if(l===void 0){let c=n[n.length-1].fi;return qn(c,c+r,r)}else return qn(s.fi,l.fi,r)}}};var vc;(function(e){function i(t,r){if(Array.isArray(t)){let n=r.props,s={},l=[...t],c=!1;if(n)for(let f of Object.keys(n)){let h=parseInt(f);if(isNaN(h))throw new Error("wrong index");s[f]=l[h],l[h]=n[f],c=!0}return c?{data:l,actual:r,reverse:{type:Wn.Update,props:s}}:null}else{let n=r.props,s={},l=U({},t),c=!1;if(n)for(let f of Object.keys(n)){s[f]=l[f];let h=n[f];h===void 0?delete l[f]:l[f]=h,c=!0}return c?{data:l,actual:r,reverse:{type:Wn.Update,props:s}}:null}}e.runOp=i})(vc||(vc={}));var jt=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,jt.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ha(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){var t;return(t=this.get(e))==null?void 0:t.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 n=this,s=n.findIndex(f=>f.id===e);if(s<0)throw new Error("not expected");let l=n[s];return n=[...n],n[s]=fe(U({},l),{data:t}),this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,jt.prototype);let t=e;return Dx()||t.fillCaches(),t}runOp(e){switch(e.type){case Yr.Add:return this.addOp(e);case Yr.Delete:return this.deleteOp(e);case Yr.Move:return this.moveOp(e)}}addOp(e){let{fi:t,id:r,data:n}=e,s=this,l={fi:t,id:r,data:n};return s=[...s,l],s.sort((f,h)=>f.fi-h.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:Yr.Delete,id:r}}}deleteOp(e){let{id:t}=e,r=this,n=r.findIndex(c=>c.id===t);if(n===-1)return null;e.localIndex=n,r=[...r];let s=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:e,reverse:U({type:Yr.Add},s)}}moveOp(e){let{fi:t,id:r}=e,n=this;n=[...n];let s=n.findIndex(h=>h.id===r);if(s===-1)return null;let l=n[s].fi,c=fe(U({},n[s]),{fi:t});return n[s]=c,n.sort((h,p)=>h.fi-p.fi),e.localIndex=n.indexOf(c),{data:this.modifyArrayBy(n),actual:e,reverse:{type:Yr.Move,fi:l,id:r}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===e)return t;t=r.id}return null}insertBeforeHelper(e,t){return this.insertAfterHelper(this.previous(e),t)}insertAfterHelper(e,t){let r=this;if(e===null){if(r.length===0)return qn(0,t,t);{let n=r[0].fi;return qn(n-t,n,t)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let s=r.find(l=>l.fi>n.fi);if(s===void 0){let l=r[r.length-1].fi;return qn(l,l+t,t)}else return qn(n.fi,s.fi,t)}}};var jx=Symbol(),bc=Symbol(),da=class{reportOp(e,t){let r=this;if(t===null)return;r._current=t.data;let n=[];for(;!(r instanceof uh);){let s=r._path,l=r._current;if(s!==""&&n.splice(0,0,s),r=r._parent,r===null)return;r.update(s,l)}r.push(n,e,t.actual,t.reverse)}deleteChildren(e){if(this._children){let t=this._children[e];if(t){let r=t[bc];r&&r(),delete this._children[e]}}}},Ex=class extends da{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=t}else this._current=fe(U({},this._current),{[e]:t})}runOp(e){this.reportOp(e,vc.runOp(this._current,e))}},Rx=class extends da{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){this._current=fe(U({},this._current),{[e]:t}),Object.setPrototypeOf(this._current,On.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},zx={get(i,e){if(e===bc)return()=>{i._parent=null};if(e===jx)return i._current;let{_current:t,_children:r}=i;if(e==="push"&&Array.isArray(t))throw new Error("not supported to expand array");let n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=t[e],l=Sc(i,e,s);return l!==s?(r===void 0&&(r={},i._children=r),r[e]=l,l):s},has(i,e){return e in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,e){let t=i._current,r=Reflect.getOwnPropertyDescriptor(t,e);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:t[e]}}},LP=fe(U({},zx),{set(i,e,t){var n;let r={type:Wn.Update,props:{[e]:(n=IP(t))!=null?n:t}};return i.deleteChildren(e),i.runOp(r),!0},deleteProperty(i,e){let t={type:Wn.Update,props:{[e]:void 0}};return i.deleteChildren(e),i.runOp(t),!0}}),_P=fe(U({},zx),{set(i,e,t){return t===void 0?this.deleteProperty(i,e):(i.deleteChildren(e),i.runOp({type:pn.Add,id:e,data:t})),!0},deleteProperty(i,e){return i.runOp({type:pn.Delete,id:e}),!0}}),pa=class extends da{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[bc]=()=>{this._parent=null}}unproxy(){return this._current}update(e,t){this._current=this._current.modifyById(e,t)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,t){return this._current.isDescendantOf(e,t)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((t,r)=>{e(t,this.data(t))})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=Sc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}add(e,t,r,n,s){this.runOp({type:jr.Add,parent:e,fi:t,id:r,data:n,children:s})}move(e,t,r){this.runOp({type:jr.Move,parent:e,fi:t,id:r})}insertAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}insertBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}moveAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}moveBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}delete(e){this.deleteChildren(e),this.runOp({type:jr.Delete,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},ma=class extends da{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[bc]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let t=this.length;for(let r=0;r<t;r++){let n=this._current[r].id;e(this.data(this._current[r].id),n)}}update(e,t){this._current=this._current.modifyById(e,t)}randomId(){return this._current.randomId()}get(e){return fe(U({},this._current.get(e)),{data:this.data(e)})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=Sc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,t,r){this.runOp({type:Yr.Add,fi:e,id:t,data:r})}move(e,t){this.runOp({type:Yr.Move,fi:e,id:t})}insertAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}insertBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}moveAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}moveBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}delete(e){this.deleteChildren(e),this.runOp({type:Yr.Delete,id:e})}};function ch(i,e,t){if(i.length>0){let r=i[i.length-1];if(r.type===Wn.Update&&e.type===Wn.Update&&wc.equal(r.path,t)){Object.assign(r.props,e.props);return}}i.push(fe(U({},e),{path:t}))}var uh=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,t){if(e!=="")throw new Error("");this._current=t}push(e,t,r,n){ch(this.ts,t,e),ch(this.actual,r,e),ch(this.reverse,n,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Sc(i,e,t){return t instanceof Pn?new pa(i,e,t):t instanceof jt?new ma(i,e,t):t instanceof On?new Proxy(new Rx(i,e,t),_P):t!==null&&typeof t=="object"?Px(t)?t:new Proxy(new Ex(i,e,t),LP):t}function TP(i){let e=new uh(i);return[Sc(e,"",i),e]}function fh(i,e){let[t,r]=TP(i);return e(t),r.result()}function IP(i){return i instanceof pa||i instanceof ma?i._current:i!==null&&typeof i=="object"?i[jx]:i}var wc;(function(r){function i(n,s){if(s.length===n.length)for(var l=0;l<n.length;){if(n[l]!==s[l])return!1;l+=1}else return!1;return!0}r.equal=i;function e(n,s,l){let c=t(l,n);if(c!==void 0&&typeof c=="object"&&c!==null){let f=U({},s);return Object.keys(c).forEach(h=>{delete f[h]}),f}else return s}r.removeOverridden=e;function t(n,s,l=0){if(s.length<=l)return n;if((n instanceof Pn||n instanceof pa)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if((n instanceof jt||n instanceof ma)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if(typeof s[l]=="number"&&Array.isArray(n))return t(n[s[l]],s,l+1);if(typeof s[l]=="string"&&typeof n=="object")return t(n[s[l]],s,l+1)}r.zoom=t})(wc||(wc={}));var hh=class{},Nc=class extends hh{constructor(e){super();this.id=e}},Cc=class extends hh{constructor(e){super();this.data=e}};"use strict";var dh;try{dh=new TextDecoder}catch(i){}var ge,ki,j=0;var Fx=[],ph=Fx,mh=0,Er={},ot,Hi,mn=0,$n=0,Qr,gi,Cr=[],ft,Vx={useRecords:!1,mapsAsObjects:!0},Lc=class{},gh=new Lc;gh.name="MessagePack 0xC1";var vs=!1,yi=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,t){if(ge)return Yx(()=>(Ic(),this?this.unpack(e,t):yi.prototype.unpack.call(Vx,e,t)));ki=t>-1?t:e.length,j=0,mh=0,$n=0,Hi=null,ph=Fx,Qr=null,ge=e;try{ft=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(r){throw ge=null,e instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof yi){if(Er=this,this.structures)return ot=this.structures,_c();(!ot||ot.length>0)&&(ot=[])}else Er=Vx,(!ot||ot.length>0)&&(ot=[]);return _c()}unpackMultiple(e,t){let r,n=0;try{vs=!0;let s=e.length,l=this?this.unpack(e,s):Ac.unpack(e,s);if(t){for(t(l);j<s;)if(n=j,t(_c())===!1)return}else{for(r=[l];j<s;)n=j,r.push(_c());return r}}catch(s){throw s.lastPosition=n,s.values=r,s}finally{vs=!1,Ic()}}_mergeStructures(e,t){e=e||[];for(let r=0,n=e.length;r<n;r++){let s=e[r];s&&(s.isShared=!0,r>=32&&(s.highByte=r-32>>5))}e.sharedLength=e.length;for(let r in t||[])if(r>=0){let n=e[r],s=t[r];s&&(n&&((e.restoreStructures||(e.restoreStructures=[]))[r]=n),e[r]=s)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function _c(){try{if(!Er.trusted&&!vs){let e=ot.sharedLength||0;e<ot.length&&(ot.length=e)}let i=Et();if(j==ki)ot.restoreStructures&&Ux(),ot=null,ge=null,gi&&(gi=null);else if(j>ki){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!vs)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw ot.restoreStructures&&Ux(),Ic(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function Ux(){for(let i in ot.restoreStructures)ot[i]=ot.restoreStructures[i];ot.restoreStructures=null}function Et(){let i=ge[j++];if(i<160)if(i<128){if(i<64)return i;{let e=ot[i&63]||Er.getStructures&&Hx()[i&63];return e?(e.read||(e.read=yh(e,i&63)),e.read()):i}}else if(i<144)if(i-=128,Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[Kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}else{i-=144;let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}else if(i<192){let e=i-160;if($n>=j)return Hi.slice(j-mn,(j+=e)-mn);if($n==0&&ki<140){let t=e<16?vh(e):$x(e);if(t!=null)return t}return xh(e)}else{let e;switch(i){case 192:return null;case 193:return Qr?(e=Et(),e>0?Qr[1].slice(Qr.position1,Qr.position1+=e):Qr[0].slice(Qr.position0,Qr.position0-=e)):gh;case 194:return!1;case 195:return!0;case 196:return bh(ge[j++]);case 197:return e=ft.getUint16(j),j+=2,bh(e);case 198:return e=ft.getUint32(j),j+=4,bh(e);case 199:return So(ge[j++]);case 200:return e=ft.getUint16(j),j+=2,So(e);case 201:return e=ft.getUint32(j),j+=4,So(e);case 202:if(e=ft.getFloat32(j),Er.useFloat32>2){let t=Mc[(ge[j]&127)<<1|ge[j+1]>>7];return j+=4,(t*e+(e>0?.5:-.5)>>0)/t}return j+=4,e;case 203:return e=ft.getFloat64(j),j+=8,e;case 204:return ge[j++];case 205:return e=ft.getUint16(j),j+=2,e;case 206:return e=ft.getUint32(j),j+=4,e;case 207:return Er.int64AsNumber?(e=ft.getUint32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigUint64(j),j+=8,e;case 208:return ft.getInt8(j++);case 209:return e=ft.getInt16(j),j+=2,e;case 210:return e=ft.getInt32(j),j+=4,e;case 211:return Er.int64AsNumber?(e=ft.getInt32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigInt64(j),j+=8,e;case 212:if(e=ge[j++],e==114)return Xx(ge[j++]&63);{let t=Cr[e];if(t)return t.read?(j++,t.read(Et())):t.noBuffer?(j++,t()):t(ge.subarray(j,++j));throw new Error("Unknown extension "+e)}case 213:return e=ge[j],e==114?(j++,Xx(ge[j++]&63,ge[j++])):So(2);case 214:return So(4);case 215:return So(8);case 216:return So(16);case 217:return e=ge[j++],$n>=j?Hi.slice(j-mn,(j+=e)-mn):AP(e);case 218:return e=ft.getUint16(j),j+=2,$n>=j?Hi.slice(j-mn,(j+=e)-mn):OP(e);case 219:return e=ft.getUint32(j),j+=4,$n>=j?Hi.slice(j-mn,(j+=e)-mn):PP(e);case 220:return e=ft.getUint16(j),j+=2,Wx(e);case 221:return e=ft.getUint32(j),j+=4,Wx(e);case 222:return e=ft.getUint16(j),j+=2,qx(e);case 223:return e=ft.getUint32(j),j+=4,qx(e);default:if(i>=224)return i-256;if(i===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+i)}}}var MP=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function yh(i,e){function t(){if(t.count++>2){let n=i.read=new Function("r","return function(){return {"+i.map(s=>MP.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"}}")(Et);return i.highByte===0&&(i.read=kx(e,i.read)),n()}let r={};for(let n=0,s=i.length;n<s;n++){let l=i[n];r[l]=Et()}return r}return t.count=0,i.highByte===0?kx(e,t):t}var kx=(i,e)=>function(){let t=ge[j++];if(t===0)return e();let r=i<32?-(i+(t<<5)):i+(t<<5),n=ot[r]||Hx()[r];if(!n)throw new Error("Record id is not defined for "+r);return n.read||(n.read=yh(n,i)),n.read()};function Hx(){let i=Yx(()=>(ge=null,Er.getStructures()));return ot=Er._mergeStructures(i,ot)}var xh=Tc,AP=Tc,OP=Tc,PP=Tc;function Tc(i){let e;if(i<16&&(e=vh(i)))return e;if(i>64&&dh)return dh.decode(ge.subarray(j,j+=i));let t=j+i,r=[];for(e="";j<t;){let n=ge[j++];if((n&128)==0)r.push(n);else if((n&224)==192){let s=ge[j++]&63;r.push((n&31)<<6|s)}else if((n&240)==224){let s=ge[j++]&63,l=ge[j++]&63;r.push((n&31)<<12|s<<6|l)}else if((n&248)==240){let s=ge[j++]&63,l=ge[j++]&63,c=ge[j++]&63,f=(n&7)<<18|s<<12|l<<6|c;f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|f&1023),r.push(f)}else r.push(n);r.length>=4096&&(e+=ir.apply(String,r),r.length=0)}return r.length>0&&(e+=ir.apply(String,r)),e}function Wx(i){let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}function qx(i){if(Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[Kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}}var ir=String.fromCharCode;function $x(i){let e=j,t=new Array(i);for(let r=0;r<i;r++){let n=ge[j++];if((n&128)>0){j=e;return}t[r]=n}return ir.apply(String,t)}function vh(i){if(i<4)if(i<2){if(i===0)return"";{let e=ge[j++];if((e&128)>1){j-=1;return}return ir(e)}}else{let e=ge[j++],t=ge[j++];if((e&128)>0||(t&128)>0){j-=2;return}if(i<3)return ir(e,t);let r=ge[j++];if((r&128)>0){j-=3;return}return ir(e,t,r)}else{let e=ge[j++],t=ge[j++],r=ge[j++],n=ge[j++];if((e&128)>0||(t&128)>0||(r&128)>0||(n&128)>0){j-=4;return}if(i<6){if(i===4)return ir(e,t,r,n);{let s=ge[j++];if((s&128)>0){j-=5;return}return ir(e,t,r,n,s)}}else if(i<8){let s=ge[j++],l=ge[j++];if((s&128)>0||(l&128)>0){j-=6;return}if(i<7)return ir(e,t,r,n,s,l);let c=ge[j++];if((c&128)>0){j-=7;return}return ir(e,t,r,n,s,l,c)}else{let s=ge[j++],l=ge[j++],c=ge[j++],f=ge[j++];if((s&128)>0||(l&128)>0||(c&128)>0||(f&128)>0){j-=8;return}if(i<10){if(i===8)return ir(e,t,r,n,s,l,c,f);{let h=ge[j++];if((h&128)>0){j-=9;return}return ir(e,t,r,n,s,l,c,f,h)}}else if(i<12){let h=ge[j++],p=ge[j++];if((h&128)>0||(p&128)>0){j-=10;return}if(i<11)return ir(e,t,r,n,s,l,c,f,h,p);let y=ge[j++];if((y&128)>0){j-=11;return}return ir(e,t,r,n,s,l,c,f,h,p,y)}else{let h=ge[j++],p=ge[j++],y=ge[j++],g=ge[j++];if((h&128)>0||(p&128)>0||(y&128)>0||(g&128)>0){j-=12;return}if(i<14){if(i===12)return ir(e,t,r,n,s,l,c,f,h,p,y,g);{let w=ge[j++];if((w&128)>0){j-=13;return}return ir(e,t,r,n,s,l,c,f,h,p,y,g,w)}}else{let w=ge[j++],S=ge[j++];if((w&128)>0||(S&128)>0){j-=14;return}if(i<15)return ir(e,t,r,n,s,l,c,f,h,p,y,g,w,S);let T=ge[j++];if((T&128)>0){j-=15;return}return ir(e,t,r,n,s,l,c,f,h,p,y,g,w,S,T)}}}}}function bh(i){return Er.copyBuffers?Uint8Array.prototype.slice.call(ge,j,j+=i):ge.subarray(j,j+=i)}function So(i){let e=ge[j++];if(Cr[e])return Cr[e](ge.subarray(j,j+=i));throw new Error("Unknown extension type "+e)}var Jx=new Array(4096);function Kx(){let i=ge[j++];if(i>=160&&i<192){if(i=i-160,$n>=j)return Hi.slice(j-mn,(j+=i)-mn);if(!($n==0&&ki<180))return xh(i)}else return j--,Et();let e=(i<<5^(i>1?ft.getUint16(j):i>0?ge[j]:0))&4095,t=Jx[e],r=j,n=j+i-3,s,l=0;if(t&&t.bytes==i){for(;r<n;){if(s=ft.getUint32(r),s!=t[l++]){r=1879048192;break}r+=4}for(n+=3;r<n;)if(s=ge[r++],s!=t[l++]){r=1879048192;break}if(r===n)return j=r,t.string;n-=3,r=j}for(t=[],Jx[e]=t,t.bytes=i;r<n;)s=ft.getUint32(r),t.push(s),r+=4;for(n+=3;r<n;)s=ge[r++],t.push(s);let c=i<16?vh(i):$x(i);return c!=null?t.string=c:t.string=xh(i)}var Xx=(i,e)=>{var t=Et();let r=i;e!==void 0&&(i=i<32?-((e<<5)+i):(e<<5)+i,t.highByte=e);let n=ot[i];return n&&n.isShared&&((ot.restoreStructures||(ot.restoreStructures=[]))[i]=n),ot[i]=t,t.read=yh(t,r),t.read()},Zx=typeof self=="object"?self:global;Cr[0]=()=>{};Cr[0].noBuffer=!0;Cr[101]=()=>{let i=Et();return(Zx[i[0]]||Error)(i[1])};Cr[105]=i=>{let e=ft.getUint32(j-4);gi||(gi=new Map);let t=ge[j],r;t>=144&&t<160||t==220||t==221?r=[]:r={};let n={target:r};gi.set(e,n);let s=Et();return n.used?Object.assign(r,s):(n.target=s,s)};Cr[112]=i=>{let e=ft.getUint32(j-4),t=gi.get(e);return t.used=!0,t.target};Cr[115]=()=>new Set(Et());var Sh=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");Cr[116]=i=>{let e=i[0],t=Sh[e];if(!t)throw new Error("Could not find typed array for code "+e);return new Zx[t](Uint8Array.prototype.slice.call(i,1).buffer)};Cr[120]=()=>{let i=Et();return new RegExp(i[0],i[1])};Cr[98]=i=>{let e=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],t=j;j+=e-4,Qr=[Et(),Et()],Qr.position0=0,Qr.position1=0;let r=j;j=t;try{return Et()}finally{j=r}};Cr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function Yx(i){let e=ki,t=j,r=mh,n=mn,s=$n,l=Hi,c=ph,f=gi,h=Qr,p=new Uint8Array(ge.slice(0,ki)),y=ot,g=ot.slice(0,ot.length),w=Er,S=vs,T=i();return ki=e,j=t,mh=r,mn=n,$n=s,Hi=l,ph=c,gi=f,Qr=h,ge=p,vs=S,ot=y,ot.splice(0,ot.length,...g),Er=w,ft=new DataView(ge.buffer,ge.byteOffset,ge.byteLength),T}function Ic(){ge=null,gi=null,ot=null}function Qx(i){i.unpack?Cr[i.type]=i.unpack:Cr[i.type]=i}var Mc=new Array(147);for(let i=0;i<256;i++)Mc[i]=+("1e"+Math.floor(45.15-i*.30103));var Ac=new yi({useRecords:!1}),DP=Ac.unpack,BP=Ac.unpackMultiple,GP=Ac.unpack;var jP=new Float32Array(1),u4=new Uint8Array(jP.buffer,0,4);"use strict";var Oc;try{Oc=new TextEncoder}catch(i){}var Pc,wh,Dc=typeof Buffer!="undefined",Nh=Dc?Buffer.allocUnsafeSlow:Uint8Array,t0=Dc?Buffer:Uint8Array,r0=Dc?4294967296:2144337920,Z,Vt,F=0,Jn,Kn=null,EP=/[\u0080-\uFFFF]/,ga=Symbol("record-id"),bs=class extends yi{constructor(e){super(e);this.offset=0;let t,r,n,s,l,c,f=0,h=t0.prototype.utf8Write?function(b,R,I){return Z.utf8Write(b,R,I)}:Oc&&Oc.encodeInto?function(b,R){return Oc.encodeInto(b,Z.subarray(R)).written}:!1,p=this;e||(e={});let y=e&&e.sequential,g=e.structures||e.saveStructures,w=e.maxSharedStructures;if(w==null&&(w=g?32:0),w>8160)throw new Error("Maximum maxSharedStructure is 8160");let S=e.maxOwnStructures;S==null&&(S=g?32:64),y&&!e.saveStructures&&(this.structures=[]);let T=w>32||S+w>64,C=w+64,B=w+S+64;if(B>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let G=[],D=0,W=0;this.pack=this.encode=function(b,R){if(Z||(Z=new Nh(8192),Vt=new DataView(Z.buffer,0,8192),F=0),Jn=Z.length-10,Jn-F<2048?(Z=new Nh(Z.length),Vt=new DataView(Z.buffer,0,Z.length),Jn=Z.length-10,F=0):F=F+7&2147483640,r=F,c=p.structuredClone?new Map:null,p.bundleStrings?(Kn=["",""],Z[F++]=214,Z[F++]=98,Kn.position=F-r,F+=4):Kn=null,n=p.structures,n){n.uninitialized&&(n=p._mergeStructures(p.getStructures()));let I=n.sharedLength||0;if(I>w)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+n.sharedLength);if(!n.transitions){n.transitions=Object.create(null);for(let z=0;z<I;z++){let O=n[z];if(!O)continue;let $,he=n.transitions;for(let re=0,Ne=O.length;re<Ne;re++){let ye=O[re];$=he[ye],$||($=he[ye]=Object.create(null)),he=$}he[ga]=z+64}f=I}y||(n.nextId=I+64)}s&&(s=!1),l=n||[];try{if(A(b),Kn){Vt.setUint32(Kn.position+r,F-Kn.position-r);let I=Kn;Kn=null,A(I[0]),A(I[1])}if(p.offset=F,c&&c.idsToInsert){F+=c.idsToInsert.length*6,F>Jn&&E(F),p.offset=F;let I=zP(Z.subarray(r,F),c.idsToInsert);return c=null,I}return R&s0?(Z.start=r,Z.end=F,Z):Z.subarray(r,F)}finally{if(n){if(W<10&&W++,D>1e4)n.transitions=null,W=0,D=0,G.length>0&&(G=[]);else if(G.length>0&&!y){for(let I=0,z=G.length;I<z;I++)G[I][ga]=0;G=[]}if(s&&p.saveStructures){let I=n.sharedLength||w;n.length>I&&(n=n.slice(0,I));let z=Z.subarray(r,F);return p.saveStructures(n,f)===!1?(p._mergeStructures(p.getStructures()),p.pack(b)):(f=I,z)}}R&UP&&(F=r)}};let A=b=>{F>Jn&&(Z=E(F));var R=typeof b,I;if(R==="string"){let z=b.length;if(Kn&&z>=8&&z<4096){let he=EP.test(b);Kn[he?0:1]+=b,Z[F++]=193,A(he?-z:z);return}let O;z<32?O=1:z<256?O=2:z<65536?O=3:O=5;let $=z*3;if(F+$>Jn&&(Z=E(F+$)),z<64||!h){let he,re,Ne,ye=F+O;for(he=0;he<z;he++)re=b.charCodeAt(he),re<128?Z[ye++]=re:re<2048?(Z[ye++]=re>>6|192,Z[ye++]=re&63|128):(re&64512)==55296&&((Ne=b.charCodeAt(he+1))&64512)==56320?(re=65536+((re&1023)<<10)+(Ne&1023),he++,Z[ye++]=re>>18|240,Z[ye++]=re>>12&63|128,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128):(Z[ye++]=re>>12|224,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128);I=ye-F-O}else I=h(b,F+O,$);I<32?Z[F++]=160|I:I<256?(O<2&&Z.copyWithin(F+2,F+1,F+1+I),Z[F++]=217,Z[F++]=I):I<65536?(O<3&&Z.copyWithin(F+3,F+2,F+2+I),Z[F++]=218,Z[F++]=I>>8,Z[F++]=I&255):(O<5&&Z.copyWithin(F+5,F+3,F+3+I),Z[F++]=219,Vt.setUint32(F,I),F+=4),F+=I}else if(R==="number")if(b>>>0===b)b<64?Z[F++]=b:b<256?(Z[F++]=204,Z[F++]=b):b<65536?(Z[F++]=205,Z[F++]=b>>8,Z[F++]=b&255):(Z[F++]=206,Vt.setUint32(F,b),F+=4);else if(b>>0===b)b>=-32?Z[F++]=256+b:b>=-128?(Z[F++]=208,Z[F++]=b+256):b>=-32768?(Z[F++]=209,Vt.setInt16(F,b),F+=2):(Z[F++]=210,Vt.setInt32(F,b),F+=4);else{let z;if((z=this.useFloat32)>0&&b<4294967296&&b>=-2147483648){Z[F++]=202,Vt.setFloat32(F,b);let O;if(z<4||(O=b*Mc[(Z[F]&127)<<1|Z[F+1]>>7])>>0===O){F+=4;return}else F--}Z[F++]=203,Vt.setFloat64(F,b),F+=8}else if(R==="object")if(!b)Z[F++]=192;else{if(c){let O=c.get(b);if(O){if(!O.id){let $=c.idsToInsert||(c.idsToInsert=[]);O.id=$.push(O)}Z[F++]=214,Z[F++]=112,Vt.setUint32(F,O.id),F+=4;return}else c.set(b,{offset:F-r})}let z=b.constructor;if(z===Object)q(b,!0);else if(z===Array){I=b.length,I<16?Z[F++]=144|I:I<65536?(Z[F++]=220,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=221,Vt.setUint32(F,I),F+=4);for(let O=0;O<I;O++)A(b[O])}else if(z===Map){I=b.size,I<16?Z[F++]=128|I:I<65536?(Z[F++]=222,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=223,Vt.setUint32(F,I),F+=4);for(let[O,$]of b)A(O),A($)}else{for(let O=0,$=Pc.length;O<$;O++){let he=wh[O];if(b instanceof he){let re=Pc[O];if(re.write){re.type&&(Z[F++]=212,Z[F++]=re.type,Z[F++]=0),A(re.write.call(this,b));return}let Ne=Z,ye=Vt,Me=F;Z=null;let Fe;try{Fe=re.pack.call(this,b,k=>(Z=Ne,Ne=null,F+=k,F>Jn&&E(F),{target:Z,targetView:Vt,position:F-k}),A)}finally{Ne&&(Z=Ne,Vt=ye,F=Me,Jn=Z.length-10)}Fe&&(Fe.length+F>Jn&&E(Fe.length+F),F=RP(Fe,Z,F,re.type));return}}q(b,!b.hasOwnProperty)}}else if(R==="boolean")Z[F++]=b?195:194;else if(R==="bigint"){if(b<BigInt(1)<<BigInt(63)&&b>=-(BigInt(1)<<BigInt(63)))Z[F++]=211,Vt.setBigInt64(F,b);else if(b<BigInt(1)<<BigInt(64)&&b>0)Z[F++]=207,Vt.setBigUint64(F,b);else if(this.largeBigIntToFloat)Z[F++]=203,Vt.setFloat64(F,Number(b));else throw new RangeError(b+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");F+=8}else if(R==="undefined")this.encodeUndefinedAsNil?Z[F++]=192:(Z[F++]=212,Z[F++]=0,Z[F++]=0);else if(R==="function")A(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+R)},q=this.useRecords===!1?this.variableMapSize?b=>{let R=Object.keys(b),I=R.length;I<16?Z[F++]=128|I:I<65536?(Z[F++]=222,Z[F++]=I>>8,Z[F++]=I&255):(Z[F++]=223,Vt.setUint32(F,I),F+=4);let z;for(let O=0;O<I;O++)A(z=R[O]),A(b[z])}:(b,R)=>{Z[F++]=222;let I=F-r;F+=2;let z=0;for(let O in b)(R||b.hasOwnProperty(O))&&(A(O),A(b[O]),z++);Z[I+++r]=z>>8,Z[I+r]=z&255}:b=>{let R=Object.keys(b),I,z=l.transitions||(l.transitions=Object.create(null)),O=0;for(let he=0,re=R.length;he<re;he++){let Ne=R[he];I=z[Ne],I||(I=z[Ne]=Object.create(null),O++),z=I}let $=z[ga];if($)$>=96&&T?(Z[F++]=(($-=96)&31)+96,Z[F++]=$>>5):Z[F++]=$;else{$=l.nextId,$||($=64),$<C&&this.shouldShareStructure&&!this.shouldShareStructure(R)?($=l.nextOwnId,$<B||($=C),l.nextOwnId=$+1):($>=B&&($=C),l.nextId=$+1);let he=R.highByte=$>=96&&T?$-96>>5:-1;z[ga]=$,l[$-64]=R,$<C?(R.isShared=!0,l.sharedLength=$-63,s=!0,he>=0?(Z[F++]=($&31)+96,Z[F++]=he):Z[F++]=$):(he>=0?(Z[F++]=213,Z[F++]=114,Z[F++]=($&31)+96,Z[F++]=he):(Z[F++]=212,Z[F++]=114,Z[F++]=$),O&&(D+=W*O),G.length>=S&&(G.shift()[ga]=0),G.push(z),A(R))}for(let he=0,re=R.length;he<re;he++)A(b[R[he]])},E=b=>{let R;if(b>16777216){if(b-r>r0)throw new Error("Packed buffer would be larger than maximum buffer size");R=Math.min(r0,Math.round(Math.max((b-r)*(b>67108864?1.25:2),4194304)/4096)*4096)}else R=(Math.max(b-r<<2,Z.length-1)>>12)+1<<12;let I=new Nh(R);return Vt=new DataView(I.buffer,0,R),Z.copy?Z.copy(I,0,r,b):I.set(Z.slice(r,b)),F-=r,r=0,Jn=I.length-10,Z=I}}useBuffer(e){Z=e,Vt=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),F=0}};wh=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Lc];Pc=[{pack(i,e,t){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:n,targetView:s,position:l}=e(6);n[l++]=214,n[l++]=255,s.setUint32(l,r)}else if(r>0&&r<17179869184){let{target:n,targetView:s,position:l}=e(10);n[l++]=215,n[l++]=255,s.setUint32(l,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),s.setUint32(l+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:n,targetView:s,position:l}=e(3);n[l++]=212,n[l++]=255,n[l++]=255}else{let{target:n,targetView:s,position:l}=e(15);n[l++]=199,n[l++]=12,n[l++]=255,s.setUint32(l,i.getMilliseconds()*1e6),s.setBigInt64(l+4,BigInt(Math.floor(r)))}}},{pack(i,e,t){let r=Array.from(i),{target:n,position:s}=e(this.structuredClone?3:0);this.structuredClone&&(n[s++]=212,n[s++]=115,n[s++]=0),t(r)}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=101,r[n++]=0),t([i.name,i.message])}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=120,r[n++]=0),t([i.source,i.flags])}},{pack(i,e){this.structuredClone?n0(i,16,e):i0(Dc?Buffer.from(i):new Uint8Array(i),e)}},{pack(i,e){let t=i.constructor;t!==t0&&this.structuredClone?n0(i,Sh.indexOf(t.name),e):i0(i,e)}},{pack(i,e){let{target:t,position:r}=e(1);t[r]=193}}];function n0(i,e,t,r){let n=i.byteLength;if(n+1<256){var{target:s,position:l}=t(4+n);s[l++]=199,s[l++]=n+1}else if(n+1<65536){var{target:s,position:l}=t(5+n);s[l++]=200,s[l++]=n+1>>8,s[l++]=n+1&255}else{var{target:s,position:l,targetView:c}=t(7+n);s[l++]=201,c.setUint32(l,n+1),l+=4}s[l++]=116,s[l++]=e,s.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),l)}function i0(i,e){let t=i.byteLength;var r,n;if(t<256){var{target:r,position:n}=e(t+2);r[n++]=196,r[n++]=t}else if(t<65536){var{target:r,position:n}=e(t+3);r[n++]=197,r[n++]=t>>8,r[n++]=t&255}else{var{target:r,position:n,targetView:s}=e(t+5);r[n++]=198,s.setUint32(n,t),n+=4}r.set(i,n)}function RP(i,e,t,r){let n=i.length;switch(n){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:n<256?(e[t++]=199,e[t++]=n):n<65536?(e[t++]=200,e[t++]=n>>8,e[t++]=n&255):(e[t++]=201,e[t++]=n>>24,e[t++]=n>>16&255,e[t++]=n>>8&255,e[t++]=n&255)}return e[t++]=r,e.set(i,t),t+=n,t}function zP(i,e){let t,r=e.length*6,n=i.length-r;for(e.sort((s,l)=>s.offset>l.offset?1:-1);t=e.pop();){let s=t.offset,l=t.id;i.copyWithin(s+r,s,n),r-=6;let c=s+r;i[c++]=214,i[c++]=105,i[c++]=l>>24,i[c++]=l>>16&255,i[c++]=l>>8&255,i[c++]=l&255,n=s}return i}function wo(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");wh.unshift(i.Class),Pc.unshift(i)}Qx(i)}var o0=new bs({useRecords:!1}),FP=o0.pack,VP=o0.pack;var s0=512,UP=1024;var a0=new bs({structuredClone:!0});wo({Class:On.prototype.constructor,type:1,write(i){return U({},i)},read(i){return Object.setPrototypeOf(i,On.prototype),i}});wo({Class:jt.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,jt.prototype),i}});wo({Class:Pn.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Pn.prototype),i}});wo({Class:Nc.prototype.constructor,type:4,write(i){return i.id},read(i){return new Nc(i)}});wo({Class:Cc.prototype.constructor,type:5,write(i){return i.data},read(i){return new Cc(i)}});function kP(i){var e=0;if(i.length===0)return e;for(let t=0;t<i.length;t++){let r=i[t];e=(e<<5)-e+r,e=e&e}return e}var Bc;(function(r){function i(n){return a0.pack(n)}r.serialize=i;function e(n){return a0.unpack(n)}r.deserialize=e;function t(n){return kP(i(n)).toString()}r.checksum=t})(Bc||(Bc={}));var Gc;(function(t){t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(r){return t.all.includes(r)}t.is=e})(Gc||(Gc={}));var jc;(function(t){function i(r){return e(r)}t.defaultData=i;function e(r){if(r==="PointLight")return{type:r,color:Hn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:2500,helper:!0};if(r==="SpotLight")return{type:r,color:Hn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:2500,helper:!0};if(r==="DirectionalLight")return{type:r,color:Hn.white,intensity:1,shadows:!0,size:2500,depth:2500,helper:!0};throw new Error("not implemented")}})(jc||(jc={}));var Ss;(function(r){r[r.Front=0]="Front",r[r.Back=1]="Back",r[r.Double=2]="Double"})(Ss||(Ss={}));var Ch;(function(t){t.defaultData={castShadow:!0,receiveShadow:!0};function e(r,n){return r.castShadow===n.castShadow&&r.receiveShadow===n.receiveShadow}t.equals=e})(Ch||(Ch={}));var Lh;(function(t){t.defaultData={flatShading:!1,wireframe:!1,side:0};function e(r,n){return r.flatShading===n.flatShading&&r.side===n.side&&r.wireframe===n.wireframe}t.equals=e})(Lh||(Lh={}));var Ec;(function(e){e.defaultData=fe(U(U({},Lh.defaultData),Ch.defaultData),{cloner:null})})(Ec||(Ec={}));var Lr;(function(n){n[n.Left=1]="Left",n[n.Right=2]="Right",n[n.Center=3]="Center",n[n.Justify=4]="Justify"})(Lr||(Lr={}));var xi;(function(r){r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom"})(xi||(xi={}));var Wi;(function(r){r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower"})(Wi||(Wi={}));var Rc;(function(e){e.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Hn.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"}})(Rc||(Rc={}));var Zt;(function(n){n[n.Normal=0]="Normal",n[n.Multiply=1]="Multiply",n[n.Screen=2]="Screen",n[n.Overlay=3]="Overlay"})(Zt||(Zt={}));var ws;(function(r){r[r.Linear=0]="Linear",r[r.Radial=1]="Radial",r[r.Polar=2]="Polar"})(ws||(ws={}));var zc;(function(r){r[r.RepeatWrapping=1e3]="RepeatWrapping",r[r.ClampToEdgeWrapping=1001]="ClampToEdgeWrapping",r[r.MirroredRepeatWrapping=1002]="MirroredRepeatWrapping"})(zc||(zc={}));var Fc;(function(n){n[n.UV=0]="UV",n[n.Planar=1]="Planar",n[n.Spherical=2]="Spherical",n[n.Cylindrical=3]="Cylindrical"})(Fc||(Fc={}));var Vc;(function(s){s[s.Simplex=0]="Simplex",s[s.SimplexFractal=1]="SimplexFractal",s[s.Ashima=2]="Ashima",s[s.Fbm=3]="Fbm",s[s.Perlin=4]="Perlin"})(Vc||(Vc={}));var Ns;(function(r){function i(n,s){return n==="light"&&s?e(s):t(n)}r.defaultData=i;function e(n){switch(n){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,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:.2,g:.2,b:.2,a:1},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(n){switch(n){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:ys.x,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Zr.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,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:fe(U({},Zr.fromHex(6710886)),{a:1}),colorB:fe(U({},Zr.fromHex(6710886)),{a:1}),colorC:fe(U({},Zr.fromHex(16777215)),{a:1}),colorD:fe(U({},Zr.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:Hn.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"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}}}})(Ns||(Ns={}));var Cs;(function(c){function i(f){return!f.layers.some(p=>{if(p.data.type==="texture"&&p.data.projection!==0||p.data.type==="depth"&&!p.data.isWorldSpace||p.data.type==="noise"||p.data.type==="displace")return!0})&&!t(f)}c.isMergable=i;function e(f){let h="";return f.layers.forEach(p=>{Object.entries(p.data).forEach(([y,g])=>{h+=`${y}${g}`,Array.isArray(g)?g.forEach(w=>h+=`${w}`):typeof g=="object"?Object.values(g).forEach(w=>{typeof w=="number"?h+=`${w.toFixed(4)}`:h+=`${w}`}):h+=`${g}`})}),h}c.getHash=e;function t(f){let h=0;for(let p of f.layers)"alpha"in p.data&&p.data.type!=="light"&&p.data.type!=="fresnel"&&(h+=(1-h)*p.data.alpha);return h<1}c.isTransparent=t;function r(){return{layers:new jt}}c.defaultEmptyData=r;function n(f="layer1",h="layer2"){return s("phong",f,h)}c.defaultData=n;function s(f,h="layer1",p="layer2"){let y=new jt;return y.push({fi:0,data:Ns.defaultData("light",f),id:h}),y.push({fi:1,data:Ns.defaultData("color"),id:p}),{layers:y}}c.defaultTwoLayerData=s;function l(f,h="basic",p="layer1",y="layer2"){let g=Ns.defaultData("texture");Object.assign(g.texture,{image:f});let w=new jt;return w.push({fi:0,data:g,id:p}),w.push({fi:1,data:Ns.defaultData("light",h),id:y}),{layers:w}}c.defaultTwoLayerTextureData=l})(Cs||(Cs={}));var Ls;(function(r){function i(){return{points:new jt,roundness:0,shapeHoles:[],isClosed:!1}}r.defaultData=i;function e(n,s){let{points:l}=s;if(l){for(let c of l)if(c.data.position[0]===n[0]&&c.data.position[1]===n[1])return!0}return!1}r.isOverlappingExistingPoint=e;function t(n,s){let l=n.controlNext,c=s.controlPrevious;return n.position[0]===l.position[0]&&n.position[1]===l.position[1]&&s.position[0]===c.position[0]&&s.position[1]===c.position[1]}r.isStraightLine=t})(Ls||(Ls={}));var Uc;(function(e){function i(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=i})(Uc||(Uc={}));var kc;(function(e){function i(t){if(t==="RectangleGeometry")return{width:320,height:320,type:t,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};if(t==="VectorGeometry")return{width:100,height:100,type:t,subdivisions:12,shape:Ls.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};throw new Error("not implemented")}e.defaultData=i})(kc||(kc={}));var ya;(function(n){n.identity=fe(U({},yc.identity),{hiddenMatrix:Ui.identity});function e(s){return{position:s.position,rotation:s.rotation,scale:s.scale,hiddenMatrix:s.hiddenMatrix}}n.fromObject=e;function t(s,l){return{position:(l==null?void 0:l.position)||s.position,rotation:(l==null?void 0:l.rotation)||s.rotation,scale:(l==null?void 0:l.scale)||s.scale,hiddenMatrix:(l==null?void 0:l.hiddenMatrix)||s.hiddenMatrix}}n.merge=t;function r(s,l){return{position:xs.isEqual(s.position,l.position)?null:l.position,rotation:xs.isEqual(s.rotation,l.rotation)?null:l.rotation,scale:xs.isEqual(s.scale,l.scale)?null:l.scale,hiddenMatrix:Ui.isEqual(s.hiddenMatrix,l.hiddenMatrix)?null:l.hiddenMatrix}}n.diff=r})(ya||(ya={}));var qi;(function(e){e.defaultData=U({states:new jt,events:new jt,visible:!0,raycastLock:!1},ya.identity)})(qi||(qi={}));var l0;(function(e){e.defaultData=U({type:"Empty"},qi.defaultData)})(l0||(l0={}));var _h;(function(e){e.defaultData=U(U({type:"Mesh"},qi.defaultData),Ec.defaultData)})(_h||(_h={}));var c0;(function(e){e.defaultData=U(U({type:"TextFrame"},qi.defaultData),Rc.defaultData)})(c0||(c0={}));var Hc;(function(e){e.defaultData=U(U(U({},qi.defaultData),ya.identity),bo.defaultData)})(Hc||(Hc={}));var u0;(function(e){function i(t){return U(U({},qi.defaultData),jc.defaultData(t))}e.defaultData=i})(u0||(u0={}));var f0;(function(t){t.defaultCamera=U({position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Ui.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new jt,events:new jt},bo.defaultData),t.defaultMeshObject=fe(U(U({name:"Rectangle"},qi.defaultData),_h.defaultData),{geometry:kc.defaultData("RectangleGeometry"),material:Cs.defaultTwoLayerData("basic","layer1","layer2")})})(f0||(f0={}));var h0;(function(t){function i(r,n){if(n===void 0)return r;let s=U({},r);return"material"in s&&"material"in n&&n.material&&(s.material=fh(s.material,l=>{if(typeof l!="string")for(let[c,f]of Object.entries(n.material.layers)){let h=l.layers.data(c);h&&vo(h,f)}}).data),s.materials&&n.materials&&(s.materials=fh(s.materials,l=>{var c,f;for(let h=0;h<s.materials.length;h++){let p=n.materials[h];if(typeof p!="string")for(let[y,g]of Object.entries(p.layers)){let w=(f=(c=l[h])==null?void 0:c.layers)==null?void 0:f.data(y);w&&vo(w,g)}}}).data),s}t.patchMaterialState=i;function e(r,n){var l,c;if(n===void 0)return r;let s=U({},r);if(Object.assign(s,ya.merge(s,n)),gs.is(r.type)){s.orthographic=U({},s.orthographic),s.perspective=U({},s.perspective);let f=n;((l=f.orthographic)==null?void 0:l.zoom)!==void 0&&(s.orthographic.zoom=f.orthographic.zoom),((c=f.perspective)==null?void 0:c.zoom)!==void 0&&(s.perspective.zoom=f.perspective.zoom)}else if(r.type==="Mesh")s.geometry=U({},s.geometry),Object.assign(s.geometry,n.geometry),s=i(s,n);else if(Gc.is(r.type)){let f=n;s.intensity!==void 0&&(s.intensity=f.intensity),f.color!==void 0&&(typeof f.color=="string"?s.color=f.color:s.color=Zr.clone(f.color))}return s}t.patch=e})(h0||(h0={}));var Yt=5855577;var d0=2857471;var Th=15711266;import{DoubleSide as HP,Mesh as WP,MeshBasicMaterial as qP,ShapeBufferGeometry as $P,Vector2 as JP,Vector3 as KP}from"three";import{FontLoader as XP}from"three/examples/jsm/loaders/FontLoader.js";var Ut=class extends WP{constructor({char:e,originalChar:t,fontFamily:r,letterSpacing:n,fontSize:s,LOD:l=16},c=new qP({color:0,opacity:1,visible:!0,transparent:!0,side:HP})){let f=Ut.loadChar(e,r,l);super(f.geometry,c);this.char=e,this.originalChar=t!=null?t:e,this.fontFamily=r,this.letterSpacing=n,this.fontSize=s,this.LOD=l,this.resolution=f.resolution,this.glyphsHa=f.glyphsHa,this.localPosition=new JP,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return Ut._fontPath}static set FONTS_PATH(e){Ut._fontPath=e}updatePosition(e,t){this.localPosition.copy(e);let r=new KP(this.localPosition.x,-this.localPosition.y,0);this.position.copy(r).add(t)}updateFontSize(e){let t=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*t*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let t=Ut.loadChar(this.char,e,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let t=Ut.loadChar(e,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let t=Ut.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new Ut(e).copy(this)}static loadFont(e){return new Promise(function(t,r){Ut.fontCache[e]?t(Ut.fontCache[e]):new XP().load(Ut.FONTS_PATH+e+".json",s=>{Ut.fontCache[e]=s,t(s)},void 0,r)})}static loadChar(e,t,r){if(Ut.charCache[e]){if(Ut.charCache[e][r]&&Ut.charCache[e][r].fontFamily===t)return Ut.charCache[e][r]}else Ut.charCache[e]={};let n=Ut.fontCache[t],s=n.generateShapes(e,1);return Ut.charCache[e][r]={geometry:new $P(s,r),fontFamily:t,resolution:n.data.resolution,glyphsHa:n.data.glyphs[e].ha},Ut.charCache[e][r]}},Rr=Ut;Rr.charCache={},Rr.fontCache={},Rr._fontPath="/_assets/_fonts/";import{DoubleSide as Vu,MeshBasicMaterial as fb,Vector3 as hb,Object3D as Q3}from"three";import{Mesh as AD}from"three";import{BufferGeometry as Dk,ConeBufferGeometry as QP,Float32BufferAttribute as Bk,Vector2 as Gk,Vector3 as jk}from"three";import{BufferGeometry as ZP,CylinderBufferGeometry as YP,Float32BufferAttribute as Ih,Vector2 as Dn,Vector3 as Wc}from"three";var p0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,p;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},i.parameters),r=t.width/2,n=(c=t.radiusTop)!=null?c:r,s=(f=t.radiusBottom)!=null?f:r;return n===s?(n=r,s=r):n>s?(n=r,s=s*r/n):(n=n*r/s,s=r),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs((p=t.depth)!=null?p:t.width),radiusTop:n,radiusBottom:s})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,radiusTop:h,radiusBottom:p,cornerRadius:y,cornerSegments:g,hollow:w}=i.parameters,S;return y||w?S=new qc(h,p,r,n,s,l,c,f*Math.PI/180,y,y,g,w):S=new YP(h,p,r,n,s,l,c,f*Math.PI/180),S.scale(1,1,t/e),Object.assign(S,{userData:fe(U({},i),{type:"CylinderGeometry"})})}};function $i(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function m0(i){return new Dn(i.y,-i.x)}var qc=class extends ZP{constructor(e,t,r,n,s,l,c,f,h,p,y,g,w=!1){super();this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,r=r||1,n=Math.floor(n)||8,s=Math.floor(s)||1,l=l!==void 0?l:!1,c=c!==void 0?c:0,f=f!==void 0?f:Math.PI*2,l&&(h=0,p=0);let S=[],T=[],C=[],B=[],G=0,D=r/2,W=new Wc,A=new Wc;w&&e==0&&(e=h),w&&t==0&&(t=p);let q=new Dn(e,D),E=new Dn(t,-D),b=null,R=null,I=null,z=null,O=q.clone().sub(E),$=0,he=0,re=0;g>0&&($=Math.min(e,t)*(1-g),he=e-$,re=t-$);let Ne=q.clone();Ne.x-=$;let ye=Math.PI-O.angle(),Me=O.angle(),Fe=Math.tan(Me/2),k=Math.tan(ye/2),H=Fe+k,_=g?H:k,J=g?H:Fe;if(h=Math.min(h,(e-he)/_,O.length()/H),p=Math.min(p,(t-re)/J,O.length()/H),h>0){let K=h/Fe;b=q.clone().sub(new Dn(K,h)),g&&(I=b.clone(),I.x-=$-H*h),q.sub(O.clone().setLength(K))}if(p>0){let K=p/k;R=E.clone().sub(new Dn(K,-p)),E.add(O.clone().setLength(K)),g&&(z=R.clone(),z.x-=$-H*p,Ne.sub(O.clone().setLength(K)))}O=q.clone().sub(E);let ee=O.length()<.5,oe=[];for(let K=0;K<=n;K++){let ae=[],ne=K/n,Ce=ne*f+c,Y=new Dn(Math.sin(Ce),Math.cos(Ce));z&&R?(se(ae,ne,Y,ye,p,z,-1,!0),se(ae,ne,Y,Me,p,R,-1,!1)):R?(ce(ae,Y,R.x,0,-1),se(ae,ne,Y,Me,p,R,-1,!1)):l||ce(ae,Y,t,re,-1);let le=m0(O).normalize();if($i(le,Y,W),!ee)for(let de=0;de<=s;de++){let xe=de/s,_e=O.clone().multiplyScalar(xe).add(E);$i(_e,Y,A),T.push(A.x,A.y,A.z),C.push(W.x,W.y,W.z),B.push(ne,.5+A.y/r),ae.push(G++)}if(I&&b?(se(ae,ne,Y,ye,h,b,1,!1),se(ae,ne,Y,Me,h,I,1,!0)):b?(se(ae,ne,Y,ye,h,b,1,!1),ce(ae,Y,b.x,0,1)):l||ce(ae,Y,e,he,1),g&&!ee){let de=m0(O).multiplyScalar(-1).normalize();$i(de,Y,W);for(let xe=0;xe<=s;xe++){let _e=xe/s,pe=O.clone().multiplyScalar(-_e).add(Ne);$i(pe,Y,A),T.push(A.x,A.y,A.z),C.push(W.x,W.y,W.z),B.push(ne,.5+A.y/r),ae.push(G++)}}g&&!l&&ae.push(ae[0]),oe.push(ae)}for(let K=0;K<oe.length-1;K++)for(let ae=0;ae<oe[0].length-1;ae++){if(l&&g&&ae==s)continue;let ne=oe[K][ae],Ce=oe[K+1][ae],Y=oe[K+1][ae+1],le=oe[K][ae+1],de=T[Y*3+0],xe=T[Y*3+2];S.push(ne,Ce,le),(de!=0||xe!=0)&&S.push(Ce,Y,le)}f<Math.PI*2&&(ue(-1,oe[0],c),ue(1,oe[oe.length-1],c+f)),this.setIndex(S),this.setAttribute("position",new Ih(T,3)),this.setAttribute("normal",new Ih(C,3)),this.setAttribute("uv",new Ih(B,2));function se(K,ae,ne,Ce,Y,le,de,xe){for(let _e=0;_e<y+1;_e++){let pe=_e/y,we=de<0?pe:1-pe;xe&&(we-=1),we*=Ce;let Ve=new Dn(Math.sin(we),Math.cos(we)*de),Ge=Ve.clone().multiplyScalar(Y).add(le);$i(Ge,ne,A),T.push(A.x,A.y,A.z),$i(Ve,ne,W),C.push(W.x,W.y,W.z),B.push(ae,.5+A.y/r),K.push(G++)}}function ce(K,ae,ne,Ce,Y){let le=new Wc,de=new Dn,xe=[ne,Ce];Y<0&&xe.reverse();for(let _e of xe)de.set(_e,D*Y),$i(de,ae,le),T.push(le.x,le.y,le.z),C.push(0,Y,0),B.push(.5,.5),K.push(G++)}function ue(K,ae,ne){let Ce=new Dn(Math.sin(ne),Math.cos(ne)),Y=new Dn(-Math.cos(ne),Math.sin(ne)),le=new Wc,de=K<0?(pe,we,Ve)=>S.push(pe,we,Ve):(pe,we,Ve)=>S.push(pe,Ve,we),xe=new Dn((e+t+he+re)/4,0);$i(xe,Ce,le),T.push(le.x,le.y,le.z),C.push(Y.x,0,Y.y),B.push(.5,.5);let _e=G++;for(let pe of ae){let we=T.slice(pe*3,pe*3+3);T.push(...we),C.push(Y.x,0,Y.y);let Ve=B.slice(pe*2,pe*2+2);B.push(...Ve),G++}for(let pe=_e+1;pe<G-1;pe++)de(_e,pe,pe+1);de(_e,G-1,_e+1)}}};var g0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,cornerRadiusTop:h,cornerRadiusBottom:p,cornerSegments:y}=i.parameters,g;return h>0||p>0||f<360?g=new qc(0,e/2,r,n,s,l,c,f*Math.PI/180,h,p,y,0,!0):g=new QP(e/2,r,n,s,l),g.scale(1,1,t/e),Object.assign(g,{userData:fe(U({},i),{type:"ConeGeometry"})})}};import{BoxBufferGeometry as e2,BufferGeometry as t2,Float32BufferAttribute as Mh,Vector3 as xa}from"three";var y0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,widthSegments:n,heightSegments:s,depthSegments:l,cornerRadius:c,cornerSegments:f}=i.parameters,h;return c==0?h=new e2(e,t,r,n,s,l):h=new x0(e,t,r,n,s,l,c,f),Object.assign(h,{userData:fe(U({},i),{type:"CubeGeometry"})})}},Ah=Math.PI/2,x0=class extends t2{constructor(e=1,t=1,r=1,n=1,s=1,l=1,c=0,f=4){super();this.type="BoxBufferGeometry";let h=this;n=Math.floor(n),s=Math.floor(s),l=Math.floor(l),f=Math.floor(f),c=Math.min(c,e/2,t/2,r/2);let p=[],y=[],g=[],w=[],S=0,T=0;C("z","y","x",-1,-1,r,t,e,l,s,0),C("z","y","x",1,-1,r,t,-e,l,s,1),C("x","z","y",1,1,e,r,t,n,l,2),C("x","z","y",1,-1,e,r,-t,n,l,3),C("x","y","z",1,-1,e,t,r,n,s,4),C("x","y","z",-1,-1,e,t,-r,n,s,5),c>0&&(B("z","y","x",-1,-1,1,r,t,e,l,0),B("z","y","x",1,-1,-1,r,t,e,l,1),B("z","y","x",-1,1,-1,r,t,e,l,1),B("z","y","x",1,1,1,r,t,e,l,0),B("x","y","z",-1,-1,-1,e,t,r,n,0),B("x","y","z",1,-1,1,e,t,r,n,1),B("x","y","z",-1,1,1,e,t,r,n,0),B("x","y","z",1,1,-1,e,t,r,n,1),B("y","x","z",-1,-1,1,t,e,r,s,0),B("y","x","z",1,-1,-1,t,e,r,s,1),B("y","x","z",1,1,1,t,e,r,s,1),B("y","x","z",-1,1,-1,t,e,r,s,0),G(1,1,1),G(-1,1,1),G(1,-1,1),G(-1,-1,1),G(1,1,-1),G(-1,1,-1),G(1,-1,-1),G(-1,-1,-1)),this.setIndex(p),this.setAttribute("position",new Mh(y,3)),this.setAttribute("normal",new Mh(g,3)),this.setAttribute("uv",new Mh(w,2));function C(D,W,A,q,E,b,R,I,z,O,$){let he=(b-2*c)/z,re=(R-2*c)/O,Ne=b/2-c,ye=R/2-c,Me=I/2,Fe=z+1,k=O+1,H=0,_=0,J=new xa;for(let ee=0;ee<k;ee++){let oe=ee*re-ye;for(let se=0;se<Fe;se++){let ce=se*he-Ne;J[D]=ce*q,J[W]=oe*E,J[A]=Me,y.push(J.x,J.y,J.z),J[D]=0,J[W]=0,J[A]=I>0?1:-1,g.push(J.x,J.y,J.z),w.push(se/z),w.push(1-ee/O),H+=1}}for(let ee=0;ee<O;ee++)for(let oe=0;oe<z;oe++){let se=S+oe+Fe*ee,ce=S+oe+Fe*(ee+1),ue=S+(oe+1)+Fe*(ee+1),K=S+(oe+1)+Fe*ee;p.push(se,ce,K),p.push(ce,ue,K),_+=6}h.addGroup(T,_,$),T+=_,S+=H}function B(D,W,A,q,E,b,R,I,z,O,$){let he=(R-2*c)/O,re=R/2-c,Ne=I/2-c,ye=z/2,Me=O+1,Fe=0,k=0,H=new xa,_=new xa;for(let J=0;J<f+1;J++){let ee=J/f*Ah,oe=Math.sin(ee)*c,se=(1-Math.cos(ee))*c,ce=Math.sin(ee),ue=Math.cos(ee);H[W]=(Ne+oe)*E,H[A]=(ye-se)*b,_[D]=0,_[W]=ce*Math.sign(H[W]),_[A]=ue*Math.sign(H[A]);for(let K=0;K<Me;K++){let ae=K*he-re;H[D]=ae*q,y.push(H.x,H.y,H.z),g.push(_.x,_.y,_.z),w.push(K/O),w.push(0),Fe+=1}}for(let J=0;J<f;J++)for(let ee=0;ee<O;ee++){let oe=S+ee+Me*J,se=S+ee+Me*(J+1),ce=S+(ee+1)+Me*(J+1),ue=S+(ee+1)+Me*J;p.push(oe,se,ue),p.push(se,ce,ue),k+=6}h.addGroup(T,k,$),T+=k,S+=Fe}function G(D,W,A){let q=new xa,E=new xa(e/2,t/2,r/2);E.subScalar(c);let b=[],R=D*W*A>0?(z,O,$)=>p.push(z,O,$):(z,O,$)=>p.push(z,$,O);for(let z=0;z<=f;z++){let O=[],$=Ah*(1-z/f),he=Math.cos($),re=Math.sin($),Ne=0;for(let ye=0;ye<=z;ye++){let Me=Math.cos(Ne),Fe=Math.sin(Ne);q.x=he*Me,q.y=re,q.z=he*Fe;let k=E.clone().addScaledVector(q,c);y.push(D*k.x,W*k.y,A*k.z),g.push(D*q.x,W*q.y,A*q.z),w.push(0,0),O.push(S++),Ne+=Ah/z}b.push(O)}let I=b.length-1;for(let z=0;z<I;z++){let O=b[z],$=b[z+1],he=O.length-1;R(O[0],$[1],$[0]);for(let re=1;re<=he;re++)R(O[re-1],O[re],$[re]),R(O[re],$[re+1],$[re])}}}};import{BufferGeometry as r2,Float32BufferAttribute as Oh,Triangle as n2,Vector3 as vi,Vector2 as Ph}from"three";var No=class extends r2{constructor(e=[],t=[],r="",n=1,s=.2,l=4){super();this.type="PolyhedronGeometryRound";let c=[],f=[],h=[];p(),y(),this.setAttribute("position",new Oh(c,3)),this.setAttribute("normal",new Oh(h,3)),this.setAttribute("uv",new Oh(f,2));return;function p(){var Fe;s=Math.min(1-1e-5,s),s==0&&(l=0);let w={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],S=new vi,T=S.clone(),C=new n2,B=s*n,G=n-B,D=l+1,W=new vi,A=(k,H)=>W.subVectors(k,H).normalize(),q=(k,H)=>Array(k).fill(void 0).map(H),E=q(e.length/3,(k,H)=>new vi().fromArray(e,H*3).setLength(n)),b=[],R=1e6;for(let k=0;k<E.length;k++){let H=E[k],_=[],J,ee,oe,se=1e10,ce=-1;for(;(ce=t.indexOf(k,ce+1))!=-1;){let ne=ce-ce%3;J=t[ne+(ce+1)%3],ee=t[ne+(ce+2)%3],oe=H.distanceToSquared(E[J]),se=Math.min(se,oe),_.push([J,ee,oe])}se+=1e-6;let ue=[],K=0,ae=_.length;for(let ne=0;ne<ae;ne++){[J,ee,oe]=_[K];let Ce=((Fe=b[J])==null?void 0:Fe.includes(k))==!0;oe<=se&&ue.push(J+ +Ce*R),K=_.findIndex(Y=>Y[0]==ee)}b.push(ue)}let I=[];{let k=0,H=0,_,J,ee=w==3;for(let oe=0;oe<=l;oe++){_=oe*(oe+1)/2,J=(oe+1)*(oe+2)/2;for(let se=0;se<l-oe;se++)[k,H]=[_+se+oe+2,J+se+oe+3],I.push(_,J,...ee?[H,_]:[k,J],H,k),[_,J]=[k,H];I.push(_,J,_+l+2)}}let z=S.clone(),O=S.clone(),$=S.clone(),he=S.clone(),re=S.clone(),Ne=[],ye=q(E.length,()=>q(w,()=>S.clone()));for(let k=0;k<E.length;k++){S.copy(E[k]).normalize(),z.copy(S).multiplyScalar(G);let H=b[k];for(let ue=0;ue<H.length;ue++){let K=H[ue],ae=H[(ue+1)%w];C.setFromPointsAndIndices(E,k,K%R,ae%R),C.b.sub(C.a).setLength(1e10).add(C.a),C.c.sub(C.a).setLength(1e10).add(C.a),C.closestPointToPoint(z,ye[k][ue])}let _=[],J=[],ee=[],oe=new vi;l==0&&[...ye[k]].reduce((ue,K)=>ue.add(K),oe).multiplyScalar(1/w);for(let ue=0;ue<w;ue++){let K=[],ae=(ue-1+w)%w,ne=ye[k][ae],Ce=ye[k][ue];S.copy(ne).sub(z),T.copy(Ce).sub(z);let Y=z.angleTo(S),le=S.angleTo(T),de=Math.cos(Y)*B;l==0?O.copy(oe):O.copy(z).setLength(G+de),J.push(de);let xe=[O,ne,Ce];for(let _e=0;_e<2;_e++){let pe=xe[_e],we=xe[_e+1];he.subVectors(pe,z),re.subVectors(we,z),$.crossVectors(he,re).normalize();for(let Ve=0;Ve<D;Ve++){let Ge=[Y,le][_e]*Ve/D;S.copy(he).applyAxisAngle($,Ge).add(z),_.push(S.clone()),_e&&(A(S,z),K.push([Ve==0?pe:S.clone(),W.clone()]))}_e&&(A(we,z),K.push([we,W.clone()]))}ee.push(K)}Ne.push(ee);let se=2*D,ce=2;for(let ue=0;ue<w;ue++){let K=se*ue,ae=se*((ue+1)%w),ne=[_[K]];for(let Y=1;Y<D;Y++){he=_[K+Y],re=_[ae+Y],ne.push(he);for(let le=1,de=Y-ce+1;le<=de;le++)S.lerpVectors(he,re,le/(de+1)),S.sub(z).setLength(J[ue]).add(z),ne.push(S.clone());ne.push(re)}for(let Y=0;Y<D;Y++)ne.push(_[Y+D+K]);ne.push(_[ae+D]);let Ce=I.map(Y=>ne[Y]);c.push(...Ce.map(Y=>[Y.x,Y.y,Y.z]).flat()),h.push(...Ce.map(Y=>(A(Y,z),[W.x,W.y,W.z])).flat())}}let Me=[];for(let k=0;k<b.length;k++)for(let H=0;H<w;H++){let _=b[k][H];if(_<R){let J=b[_].findIndex(se=>se%R==k),ee=Ne[k][H],oe=Ne[_][J];for(let se=0;se<D;se++){let ce=ee[se],ue=oe[D-se],K=ee[se+1],ae=oe[D-(se+1)];[ce,ue,K,K,ue,ae].forEach(ne=>{c.push(ne[0].x,ne[0].y,ne[0].z),h.push(ne[1].x,ne[1].y,ne[1].z)})}Me.push(ee[0][0],oe[D][0],ee[D][0],oe[0][0])}}for(;Me.length;){let k,H,_,J;[k,H]=Me.splice(0,2);let ee=[k];for(;k!=H;)ee.push(H),_=Me.indexOf(H),J=_%2,H=Me.splice(_-J,2)[1-J];W.subVectors(ee[0],ee[1]).cross(S.subVectors(ee[0],ee[2])).normalize();let oe=W.dot(ee[0])<0;oe&&W.negate();for(let se=1;se<=ee.length-2;se++)[ee[se+ +oe],ee[se+1-+oe],ee[0]].forEach(ce=>{c.push(ce.x,ce.y,ce.z),h.push(W.x,W.y,W.z)})}}function y(){let g=new vi;for(let E=0;E<c.length;E+=3){g.x=c[E+0],g.y=c[E+1],g.z=c[E+2];let b=A(g)/2/Math.PI+.5,R=q(g)/Math.PI+.5;f.push(b,1-R)}let w=new vi,S=new vi,T=new vi,C=new vi,B=new Ph,G=new Ph,D=new Ph,W=(E,b,R,I)=>{I<0&&E.x===1&&(f[b]=E.x-1),R.x===0&&R.z===0&&(f[b]=I/2/Math.PI+.5)};for(let E=0,b=0;E<c.length;E+=9,b+=6){w.set(c[E+0],c[E+1],c[E+2]),S.set(c[E+3],c[E+4],c[E+5]),T.set(c[E+6],c[E+7],c[E+8]),B.set(f[b+0],f[b+1]),G.set(f[b+2],f[b+3]),D.set(f[b+4],f[b+5]),C.copy(w).add(S).add(T).divideScalar(3);let R=A(C);W(B,b+0,w,R),W(G,b+2,S,R),W(D,b+4,T,R)}for(let E=0;E<f.length;E+=6){let b=f[E+0],R=f[E+2],I=f[E+4],z=Math.max(b,R,I),O=Math.min(b,R,I);z>.9&&O<.1&&(b<.2&&(f[E+0]+=1),R<.2&&(f[E+2]+=1),I<.2&&(f[E+4]+=1))}function A(E){return Math.atan2(E.z,-E.x)}function q(E){return Math.atan2(-E.y,Math.sqrt(E.x*E.x+E.z*E.z))}}}static fromJSON(e){return new No(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};import{DodecahedronBufferGeometry as i2}from"three";var v0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new $c(e*.5,s,l):new i2(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"DodecahedronGeometry"})})}},$c=class extends No{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=1/n,l=[-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,-s,-n,0,-s,n,0,s,-n,0,s,n,-s,-n,0,-s,n,0,s,-n,0,s,n,0,-n,0,-s,n,0,-s,-n,0,s,n,0,s],c=[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],f="DodecahedronGeometry";super(l,c,f,e,t,r);this.type=f}static fromJSON(e){return new $c(e.radius,e.corner,e.cornerSides)}};import{EventDispatcher as m2,Plane as g2,Shape as O0,Vector2 as bi,Vector3 as y2,MathUtils as zh,LineCurve as Fh,QuadraticBezierCurve as P0,CubicBezierCurve as Xc}from"three";import{CubicBezierCurve as Jc,EllipseCurve as o2,LineCurve as Kc,LineCurve3 as s2,MathUtils as a2,QuadraticBezierCurve as Dh,SplineCurve as l2,Vector2 as Bn,Vector3 as b0}from"three";var va=1e-12,ba=class{constructor(e){this.position=new Bn;this.startPosition=new Bn;this.uuid=a2.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new ba(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Sa=class extends ba{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Sa(this.parent).copy(this)}},Xn=class extends ba{constructor(e,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Sa(this),new Sa(this))}static create(e,t){let r=new Xn(e,new Bn(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}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 r=0,n=this.controls.length;r<n;r++){let s=this.controls[r];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 Xn(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}},Bh=i=>i,wa=new Bn,Gh=new Bn,c2=new Bn,u2=new Bn,f2=new Bn,h2=new Bn,S0=new b0,w0=new b0;function N0(i){let e=new Bn;e.addVectors(i.v0,wa.subVectors(i.v1,i.v0).multiplyScalar(2/3));let t=new Bn;return t.addVectors(i.v2,Gh.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new Jc(i.v0,e,t,i.v2)}function Na(i,e,t=Number.EPSILON){return Math.abs(i-e)<t}function d2(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function p2(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function jh(i,e,t){let r=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),n=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),s=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2));return Math.acos((n*n+r*r-s*s)/(2*n*r))}function C0(i,e,t,r,n){let s=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),l=(i.y+e.y)/2,c=(i.x+e.x)/2,f=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(i.y-e.y)/s,h=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(e.x-i.x)/s;return r.set(c+f,l+h),n.set(c-f,l-h),[r,n]}function L0(i,e,t){let r=i.distanceTo(t),n=e.distanceTo(t);return r<n?e:i}function _0(i,e,t,r,n,s){let l=e.x-i.x,c=e.y-i.y,f=t.x-i.x,h=t.y-i.y,p=Math.sqrt((l+f)*(l+f)+(c+h)*(c+h)),y;return jh(e,i,t)>Math.PI&&(p*=-1),Na(h,c)?y=(c+h)*(r/p-.5)*8/3/(l-f):y=(l+f)*(r/p-.5)*8/3/(h-c),n.set(e.x-y*c,e.y+y*l),s.set(t.x+y*h,t.y-y*f),[n,s]}function Eh(i,e){return i.position.equals(i.controls[1].position)&&e.position.equals(e.controls[0].position)}function T0(i,e,t,r,n=.5){let s=wa.subVectors(e,i).multiplyScalar(n).add(i),l=Gh.subVectors(t,e).multiplyScalar(n).add(e),c=c2.subVectors(r,t).multiplyScalar(n).add(t),f=s,h=u2.subVectors(l,s).multiplyScalar(n).add(s),p=f2.subVectors(c,l).multiplyScalar(n).add(l),y=c,g=h2.subVectors(p,h).multiplyScalar(n).add(h);return[i.x,i.y,f.x,f.y,h.x,h.y,g.x,g.y,p.x,p.y,y.x,y.y,r.x,r.y]}function I0(i,e,t=12,r=!0){let n=w0.set(0,0,0),s,l=0,c=[];for(let f=0;f<e.length;f++){let h=Bh(e[f]),p=wa,y=Ji(h,t);c.push(y);for(let g=0;g<=y;g++)if(h instanceof Jc||h instanceof Dh||h instanceof Kc){if(h.getPoint(g/y,p),n.set(p.x,p.y,0),s!==void 0&&p2(s,n))continue;s===void 0&&(s=S0),s.copy(n),i.setXYZ(l,n.x,n.y,n.z),l++}}return r&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),i}function M0(i,e,t,r=12,n=!0){let s=w0.set(0,0,0),l=0,c=[];for(let f=0;f<e.length;f++){if(t[f]===!1)continue;let h,p=Bh(e[f]),y=wa,g=Ji(p,r);c.push(g);for(let w=0;w<=g;w++)if(p instanceof Jc||p instanceof Dh||p instanceof Kc){if(p.getPoint(w/g,y),s.set(y.x,y.y,0),h==null?void 0:h.equals(s))continue;h===void 0?h=S0:(i.setXYZ(l,h.x,h.y,h.z),l++,i.setXYZ(l,s.x,s.y,s.z),l++),h.copy(s)}}return n&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),c}function Rh(i,e=12,t=!1){let r=[];for(let n=0,s=i.length;n<s;n++){let l=i[n],c=0;if(t&&l.roundedCurveCorner!==void 0){let f=Ji(l.roundedCurveCorner,e)*.5;n>0&&(r[n-1]+=f),c+=f}l.curveAfter!==void 0&&(c+=Ji(l.curveAfter,e)),r.push(c)}return i.length>0&&t&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Ji(i[0].roundedCurveCorner,e)*.5),r}function Ji(i,e=12){return i&&i instanceof o2?e*2:i&&(i instanceof Kc||i instanceof s2)?1:i&&i instanceof l2?e*i.points.length:e}function A0(i,e,t=12,r=!0){let n,s=0;for(let l=0;l<e.length;l++){let c=Bh(e[l]),f=Ji(c,t),h=wa;for(let p=0;p<=f;p++)if(c instanceof Jc||c instanceof Dh||c instanceof Kc){if(c.getPoint(p/f,h),n!==void 0&&d2(n,h,va))continue;n===void 0&&(n=Gh),n.copy(h),i.push(h.x,h.y),s++}}return Na(i[0],i[i.length-2],va)&&Na(i[1],i[i.length-1],va)&&(i.pop(),i.pop()),r&&s>1&&!(Na(i[s-1],i[1],va)&&Na(i[s-2],i[0],va))&&(i.push(i[0],i[1]),s++),i}var Vh=new bi,x2=new bi,v2=new bi,b2=new bi,S2=new bi,w2=new bi,st=class extends O0{constructor(e=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new m2;this.plane=new g2(new y2(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=zh.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=t}static createFromState(e,t,r){let n=new st;return n.isClosed=e.isClosed,n.points=e.points.map(s=>Xn.create(s.id,s.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(s=>st.createFromState(s)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}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,r=this.points.length;t<r;t++)this.points[t].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(e){return this.points.findIndex(t=>t.uuid===e)}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let t=0,r=this.shapeHoles.length;t<r;t++){let n=this.shapeHoles[t],s=e-this.points.length;if(s<=n.points.length-1)return n.points[s]}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 r=0,n=this.shapeHoles.length;r<n;r++){let s=this.shapeHoles[r],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 r=Vh.set(e,t);for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];l.position.multiply(r),l.controls[0].position.multiply(r),l.controls[1].position.multiply(r)}for(let n=0,s=this.shapeHoles.length;n<s;n++)this.shapeHoles[n].applyScale(e,t);this._update(!1)}createPoint(e,t=0,r=zh.generateUUID()){let n;e instanceof bi?n=e:n=new bi(e,t);let s=new Xn(r,n);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,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===e)return n}}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(r=>r.uuid===e);t&&this.removePoint(t)}update(e=!0){for(let t=0,r=this.shapeHoles.length;t<r;t++)this.shapeHoles[t].update(!1);this._update(e)}extractShapePointsToBuffer(e,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return I0(e,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Rh(this.points,e,!1),this.roundedCurveDivisions=Rh(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,t,r=12){return M0(e,this.curves,t,r,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),A0(e,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(e,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,s=0;t&&this.points[0].roundedCurveCorner!==void 0&&(s=Ji(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=n.reduce((c,f)=>c+f,0));for(let c=0,f=n.length;c<f;c++){let h=n[c];if(l<r+h)return[c,(l-r+1)/h];r+=h}return[0,1]}getCurveT(e,t,r){let n=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Eh(n,s)){let p=n.position.distanceTo(s.position);return n.position.distanceTo(Vh.set(r.x,r.y))/p}let f=0;for(let p=0;p<e;p++)f+=l[p];return(t-f)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,t){Eh(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 r=this.curves[this.curves.length-1];e.curveBefore=r,t.curveAfter=r;let n=r.clone();e.roundedCurveBefore=n,t.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(e=!0){var r;if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];if(n===0)this.moveTo(l.position.x,l.position.y);else{let c=this.points[n-1];this._applyCurveForPoint(l,c)}}let t=this.getLastPoint();if((t==null?void 0:t.curveAfter)&&(t.curveAfter=void 0),this.isClosed){let n=this.points[0],s=this.points[this.points.length-1];this._applyCurveForPoint(n,s)}if(this.points.length>2){let n=0;for(let s=0,l=this.points.length;s<l;s++){let c=this.points[s],f=c.roundness;if(!c.controlsMoved()&&f>0){let h=c.curveBefore,p=c.curveAfter;if(h===void 0||p===void 0)continue;let y=c.roundedCurveBefore,g=c.roundedCurveAfter,w=h.getLength(),S=p.getLength(),T=Math.min(f,w*.499),C=Math.min(f,S*.499),B=Math.min(T,C),G=1-B/w,D=B/S,W=h.getPointAt(G,Vh),A=p.getPointAt(D,x2);this._subSplitCurve(h,y,G,W,void 0),this._subSplitCurve(p,g,D,void 0,A);let q;if(this.useCubicForRoundedCorners){let E=jh(W,c.position,A)/2,b=Math.tan(E)*W.distanceTo(c.position),[R,I]=C0(W,A,b,v2,b2),z=L0(R,I,c.position),[O,$]=_0(z,W,A,b,S2,w2);q=new Xc(W.clone(),O.clone(),$.clone(),A.clone())}else q=new P0(W.clone(),c.position.clone(),A.clone());c.roundedCurveCorner=q,this.roundedCurves.splice(s+n,0,q),n++}}}e&&((r=this.eventDispatcher)==null||r.dispatchEvent({type:"update"}))}_subSplitCurve(e,t,r,n,s){if(e instanceof Fh)n!==void 0&&t.v2.copy(n),s!==void 0&&t.v1.copy(s);else{let l=e,c=t,f=l.getUtoTmapping(r,0),h=T0(l.v0,l.v1,l.v2,l.v3,f);return n!==void 0&&(c.v0.set(h[0],h[1]),c.v1.set(h[2],h[3]),c.v2.set(h[4],h[5]),c.v3.set(h[6],h[7])),s!==void 0&&(c.v0.set(h[6],h[7]),c.v1.set(h[8],h[9]),c.v2.set(h[10],h[11]),c.v3.set(h[12],h[13])),c}return t}clone(){let e=new st(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){var r;this.points=[],this.pointIDs=0;let t=e.points.length/7;for(let n=0;n<t;n++){let s=n*7,l=e.points[s+0],c=e.points[s+1],f=e.points[s+2],h=e.points[s+3],p=e.points[s+4],y=e.points[s+5],g=e.points[s+6],w=new Xn(zh.generateUUID(),new bi(l,c));w.controls[0].position.set(f,h),w.controls[1].position.set(p,y),w.roundness=g,this.points.push(w)}return this.shapeHoles=((r=e.shapeHoles)==null?void 0:r.length)?e.shapeHoles.map(n=>{let s=new st;return s.fromJSON(n),s}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let t=(n,s)=>{s instanceof Xc&&s.v3.equals(n.position)&&n.controls[0].position.copy(s.v2)},r=n=>{let s=[],l,c;for(l=0,c=n.length;l<c;l++)n[l]instanceof P0&&(n[l]=N0(n[l]));for(l=0,c=n.length;l<c;l++){let p=n[l],y=l>0?n[l-1]:null,g;p instanceof Xc?(g=this.createPoint(p.v0),g.controls[1].position.copy(p.v1)):p instanceof Fh&&(g=this.createPoint(p.v1)),g!==void 0&&(y!==null&&t(g,y),s.push(g))}let f=n[n.length-1],h=!1;return f instanceof Xc?f.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(f.v2),h=!0):f instanceof Fh&&f.v2.equals(s[0].position)&&(h=!0),this.isClosed=h,s};return this.points=r(e.curves),e instanceof O0&&(this.shapeHoles=e.holes.map(n=>{let s=new st;return s.fromShape(n),s})),this.update(),this}};var Uh=Math.PI*2;function kh({x:i,y:e},t,r,n,s){return{x:i*t+n,y:e*r+s}}function N2(i,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:4/3*Math.tan(e/4),r=Math.cos(i),n=Math.sin(i),s=Math.cos(i+e),l=Math.sin(i+e);return[{x:r-n*t,y:n+r*t},{x:s+l*t,y:l-s*t},{x:s,y:l}]}function D0(i,e,t,r){let n=i*r-e*t<0?-1:1,s=Math.min(1,Math.max(-1,i*t+e*r));return n*Math.acos(s)}function C2(i,e,t,r,n,s,l,c,f,h){let p=Math.pow(n,2),y=Math.pow(s,2),g=Math.pow(l,2),w=Math.pow(c,2),S=p*y-p*w-y*g;S<0&&(S=0),S/=p*w+y*g,S=Math.sqrt(S)*(f===h?-1:1);let T=S*n/s*c,C=S*-s/n*l,B=T+(i+t)/2,G=C+(e+r)/2,D=(l-T)/n,W=(c-C)/s,A=(-l-T)/n,q=(-c-C)/s,E=D0(1,0,D,W),b=D0(D,W,A,q);return!h&&b>0&&(b-=Uh),h&&b<0&&(b+=Uh),{centerx:B,centery:G,ang1:E,ang2:b}}function B0({px:i,py:e,cx:t,cy:r,rx:n,ry:s,largeArcFlag:l,sweepFlag:c}){let f=[];if(n===0||s===0)return[];let h=(i-t)/2,p=(e-r)/2;if(h===0&&p===0)return[];n=Math.abs(n),s=Math.abs(s);let y=Math.pow(h,2)/Math.pow(n,2)+Math.pow(p,2)/Math.pow(s,2);y>1&&(n*=Math.sqrt(y),s*=Math.sqrt(y));let g=C2(i,e,t,r,n,s,h,p,l,c),{ang1:w,ang2:S}=g,{centerx:T,centery:C}=g,B=Math.abs(S)/(Uh/4);Math.abs(1-B)<1e-7&&(B=1);let G=Math.max(Math.ceil(B),1);S/=G;for(let D=0;D<G;D++)f.push(N2(w,S)),w+=S;return f.map(D=>{let{x:W,y:A}=kh(D[0],n,s,T,C),{x:q,y:E}=kh(D[1],n,s,T,C),{x:b,y:R}=kh(D[2],n,s,T,C);return{x1:W,y1:A,x2:q,y2:E,x:b,y:R}})}import{BufferAttribute as Yc,BufferGeometry as M2}from"three";var Pt;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Pt||(Pt={}));var Qt;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Qt||(Qt={}));function Ae(i,e){if(!i)throw e||"Assertion Failed!"}var Te=function(){function i(){}return i.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},i.vertLeq=function(e,t){return e.s<t.s||e.s===t.s&&e.t<=t.t},i.transLeq=function(e,t){return e.t<t.t||e.t===t.t&&e.s<=t.s},i.edgeGoesLeft=function(e){return i.vertLeq(e.Dst,e.Org)},i.edgeGoesRight=function(e){return i.vertLeq(e.Org,e.Dst)},i.vertL1dist=function(e,t){return Math.abs(e.s-t.s)+Math.abs(e.t-t.t)},i.edgeEval=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?n<s?t.t-e.t+(e.t-r.t)*(n/(n+s)):t.t-r.t+(r.t-e.t)*(s/(n+s)):0},i.edgeSign=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?(t.t-r.t)*n+(t.t-e.t)*s:0},i.transEval=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?n<s?t.s-e.s+(e.s-r.s)*(n/(n+s)):t.s-r.s+(r.s-e.s)*(s/(n+s)):0},i.transSign=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?(t.s-r.s)*n+(t.s-e.s)*s:0},i.vertCCW=function(e,t,r){return e.s*(t.t-r.t)+t.s*(r.t-e.t)+r.s*(e.t-t.t)>=0},i.interpolate=function(e,t,r,n){return e=e<0?0:e,r=r<0?0:r,e<=r?r===0?(t+n)/2:t+(n-t)*(e/(e+r)):n+(t-n)*(r/(e+r))},i.intersect=function(e,t,r,n,s){var l,c,f;i.vertLeq(e,t)||(f=e,e=t,t=f),i.vertLeq(r,n)||(f=r,r=n,n=f),i.vertLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.vertLeq(r,t)?i.vertLeq(t,n)?(l=i.edgeEval(e,r,t),c=i.edgeEval(r,t,n),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,t.s)):(l=i.edgeSign(e,r,t),c=-i.edgeSign(e,n,t),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,n.s)):s.s=(r.s+t.s)/2,i.transLeq(e,t)||(f=e,e=t,t=f),i.transLeq(r,n)||(f=r,r=n,n=f),i.transLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.transLeq(r,t)?i.transLeq(t,n)?(l=i.transEval(e,r,t),c=i.transEval(r,t,n),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,t.t)):(l=i.transSign(e,r,t),c=-i.transSign(e,n,t),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,n.t)):s.t=(r.t+t.t)/2},i}(),Ca=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Zc=function(){function i(e){this.side=e,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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),i}(),_s=function(){function i(){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 i}(),G0=function(){function i(){var e=new _s,t=new Ca,r=new Zc(0),n=new Zc(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,r.next=r,r.Sym=n,n.next=n,n.Sym=r,this.vHead=e,this.fHead=t,this.eHead=r,this.eHeadSym=n}return i.prototype.makeEdge_=function(e){var t=new Zc(0),r=new Zc(1);e.Sym.side<e.side&&(e=e.Sym);var n=e.Sym.next;return r.next=n,n.Sym.next=t,t.next=e,e.Sym.next=r,t.Sym=r,t.Onext=t,t.Lnext=r,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,r.Sym=t,r.Onext=r,r.Lnext=t,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,t},i.prototype.splice_=function(e,t){var r=e.Onext,n=t.Onext;r.Sym.Lnext=t,n.Sym.Lnext=e,e.Onext=n,t.Onext=r},i.prototype.makeVertex_=function(e,t,r){var n=e;Ae(n,"Vertex can't be null!");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t;var l=t;do l.Org=n,l=l.Onext;while(l!==t)},i.prototype.makeFace_=function(e,t,r){var n=e;Ae(n,"Face can't be null");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t,n.trail=null,n.marked=!1,n.inside=r.inside;var l=t;do l.Lface=n,l=l.Lnext;while(l!==t)},i.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var t=e.next,r=e.Sym.next;t.Sym.next=r,r.Sym.next=t},i.prototype.killVertex_=function(e,t){var r=e.anEdge,n=r;do n.Org=t,n=n.Onext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.killFace_=function(e,t){var r=e.anEdge,n=r;do n.Lface=t,n=n.Lnext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.makeEdge=function(){var e=new _s,t=new _s,r=new Ca,n=this.makeEdge_(this.eHead);return this.makeVertex_(e,n,this.vHead),this.makeVertex_(t,n.Sym,this.vHead),this.makeFace_(r,n,this.fHead),n},i.prototype.splice=function(e,t){var r=!1,n=!1;if(e!==t){if(t.Org!==e.Org&&(n=!0,this.killVertex_(t.Org,e.Org)),t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(t,e),!n){var s=new _s;this.makeVertex_(s,t,e.Org),e.Org.anEdge=e}if(!r){var l=new Ca;this.makeFace_(l,t,e.Lface),e.Lface.anEdge=e}}},i.prototype.delete=function(e){var t=e.Sym,r=!1;if(e.Lface!==e.Rface&&(r=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!r){var n=new Ca;this.makeFace_(n,e,e.Lface)}t.Onext===t?(this.killVertex_(t.Org,null),this.killFace_(t.Lface,null)):(e.Lface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),this.killEdge_(e)},i.prototype.addEdgeVertex=function(e){var t=this.makeEdge_(e),r=t.Sym;this.splice_(t,e.Lnext),t.Org=e.Dst;var n=new _s;return this.makeVertex_(n,r,t.Org),t.Lface=r.Lface=e.Lface,t},i.prototype.splitEdge=function(e){var t=this.addEdgeVertex(e),r=t.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,r),e.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=e.Rface,r.winding=e.winding,r.Sym.winding=e.Sym.winding,r.idx=e.idx,r.Sym.idx=e.Sym.idx,r},i.prototype.connect=function(e,t){var r=!1,n=this.makeEdge_(e),s=n.Sym;if(t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(n,e.Lnext),this.splice_(s,t),n.Org=e.Dst,s.Org=t.Org,n.Lface=s.Lface=e.Lface,e.Lface.anEdge=s,!r){var l=new Ca;this.makeFace_(l,n,e.Lface)}return n},i.prototype.zapFace=function(e){var t=e.anEdge,r,n,s,l,c;n=t.Lnext;do r=n,n=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),s=r.Sym,s.Onext===s?this.killVertex_(s.Org,null):(s.Org.anEdge=s.Onext,this.splice_(s,s.Oprev)),this.killEdge_(r));while(r!=t);l=e.prev,c=e.next,c.prev=l,l.next=c},i.prototype.countFaceVerts_=function(e){var t=e.anEdge,r=0;do r++,t=t.Lnext;while(t!==e.anEdge);return r},i.prototype.mergeConvexFaces=function(e){var t,r,n,s,l,c,f;for(t=this.fHead.next;t!==this.fHead;t=t.next)if(!!t.inside)for(r=t.anEdge,l=r.Org;n=r.Lnext,s=r.Sym,s&&s.Lface&&s.Lface.inside&&(c=this.countFaceVerts_(t),f=this.countFaceVerts_(s.Lface),c+f-2<=e&&Te.vertCCW(r.Lprev.Org,r.Org,s.Lnext.Lnext.Org)&&Te.vertCCW(s.Lprev.Org,s.Org,r.Lnext.Lnext.Org)&&(n=s.Lnext,this.delete(s),r=null,s=null)),!(r&&r.Lnext.Org===l);)r=n;return!0},i.prototype.check=function(){var e=this.fHead,t=this.vHead,r=this.eHead,n,s,l,c,f,h;for(s=e,s=e;(n=s.next)!==e;s=n){Ae(n.prev===s),f=n.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Lface===n),f=f.Lnext;while(f!==n.anEdge)}for(Ae(n.prev===s&&n.anEdge===null),c=t,c=t;(l=c.next)!==t;c=l){Ae(l.prev===c),f=l.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Org===l),f=f.Onext;while(f!==l.anEdge)}for(Ae(l.prev===c&&l.anEdge===null),h=r,h=r;(f=h.next)!==r;h=f)Ae(f.Sym.next===h.Sym),Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Org!==null),Ae(f.Dst!==null),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f);Ae(f.Sym.next===h.Sym&&f.Sym===this.eHeadSym&&f.Sym.Sym===f&&f.Org===null&&f.Dst===null&&f.Lface===null&&f.Rface===null)},i}(),j0=function(){function i(){this.handle=null}return i}(),E0=function(){function i(){this.key=null,this.node=0}return i}(),L2=function(){function i(e,t){this.leq=t,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var r=0;r<e+1;r++)this.nodes[r]=new j0,this.handles[r]=new E0;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e<<1,l<this.size&&this.leq(r[t[l+1].handle].key,r[t[l].handle].key)&&++l,Ae(l<=this.max),s=t[l].handle,l>this.size||this.leq(r[n].key,r[s].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.floatUp_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e>>1,s=t[l].handle,l===0||this.leq(r[s].key,r[n].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(e){var t,r;if(t=++this.size,t*2>this.max){this.max*=2;var n,s;for(s=this.nodes.length,this.nodes.length=this.max+1,n=s;n<this.nodes.length;n++)this.nodes[n]=new j0;for(s=this.handles.length,this.handles.length=this.max+1,n=s;n<this.handles.length;n++)this.handles[n]=new E0}return this.freeList===0?r=t:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[t].handle=r,this.handles[r].node=t,this.handles[r].key=e,this.initialized&&this.floatUp_(t),r},i.prototype.extractMin=function(){var e=this.nodes,t=this.handles,r=e[1].handle,n=t[r].key;return this.size>0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[r].key=null,t[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),n},i.prototype.delete=function(e){var t=this.nodes,r=this.handles,n;Ae(e>=1&&e<=this.max&&r[e].key!==null),n=r[e].node,t[n].handle=t[this.size].handle,r[t[n].handle].node=n,--this.size,n<=this.size&&(n<=1||this.leq(r[t[n>>1].handle].key,r[t[n].handle].key)?this.floatDown_(n):this.floatUp_(n)),r[e].key=null,r[e].node=this.freeList,this.freeList=e},i}(),Hh=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),R0=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),_2=function(){function i(e,t){this.frame=e,this.leq=t,this.head=new R0,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(e){return this.insertBefore(this.head,e)},i.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},i.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var r=new R0;return r.key=t,r.next=e.next,e.next.prev=r,r.prev=e,e.next=r,r},i.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},i}(),T2=function(){function i(){}return i.regionBelow=function(e){return e.nodeUp.prev.key},i.regionAbove=function(e){return e.nodeUp.next.key},i.debugEvent=function(e){},i.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.edgeLeq=function(e,t,r){var n=e.event,s=t.eUp,l=r.eUp;if(s.Dst===n)return l.Dst===n?Te.vertLeq(s.Org,l.Org)?Te.edgeSign(l.Dst,s.Org,l.Org)<=0:Te.edgeSign(s.Dst,l.Org,s.Org)>=0:Te.edgeSign(l.Dst,n,l.Org)<=0;if(l.Dst===n)return Te.edgeSign(s.Dst,n,s.Org)>=0;var c=Te.edgeEval(s.Dst,n,s.Org),f=Te.edgeEval(l.Dst,n,l.Org);return c>=f},i.deleteRegion=function(e,t){t.fixUpperEdge&&Ae(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},i.fixUpperEdge=function(e,t,r){Ae(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=r,r.activeRegion=t},i.topLeftRegion=function(e,t){var r=t.eUp.Org,n;do t=i.regionAbove(t);while(t.eUp.Org===r);if(t.fixUpperEdge){if(n=e.mesh.connect(i.regionBelow(t).eUp.Sym,t.eUp.Lnext),n===null)return null;i.fixUpperEdge(e,t,n),t=i.regionAbove(t)}return t},i.topRightRegion=function(e){var t=e.eUp.Dst;do e=i.regionAbove(e);while(e.eUp.Dst===t);return e},i.addRegionBelow=function(e,t,r){var n=new Hh;return n.eUp=r,n.nodeUp=e.dict.insertBefore(t.nodeUp,n),n.fixUpperEdge=!1,n.sentinel=!1,n.dirty=!1,r.activeRegion=n,n},i.isWindingInside=function(e,t){switch(e.windingRule){case Pt.ODD:return(t&1)!=0;case Pt.NONZERO:return t!==0;case Pt.POSITIVE:return t>0;case Pt.NEGATIVE:return t<0;case Pt.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(e,t){t.windingNumber=i.regionAbove(t).windingNumber+t.eUp.winding,t.inside=i.isWindingInside(e,t.windingNumber)},i.finishRegion=function(e,t){var r=t.eUp,n=r.Lface;n.inside=t.inside,n.anEdge=r,i.deleteRegion(e,t)},i.finishLeftRegions=function(e,t,r){for(var n,s=null,l=t,c=t.eUp;l!==r;){if(l.fixUpperEdge=!1,s=i.regionBelow(l),n=s.eUp,n.Org!=c.Org){if(!s.fixUpperEdge){i.finishRegion(e,l);break}n=e.mesh.connect(c.Lprev,n.Sym),i.fixUpperEdge(e,s,n)}c.Onext!==n&&(e.mesh.splice(n.Oprev,n),e.mesh.splice(c,n)),i.finishRegion(e,l),c=s.eUp,l=s}return c},i.addRightEdges=function(e,t,r,n,s,l){var c,f,h,p,y=!0;h=r;do Ae(Te.vertLeq(h.Org,h.Dst)),i.addRegionBelow(e,t,h.Sym),h=h.Onext;while(h!==n);for(s===null&&(s=i.regionBelow(t).eUp.Rprev),f=t,p=s;c=i.regionBelow(f),h=c.eUp.Sym,h.Org===p.Org;)h.Onext!==p&&(e.mesh.splice(h.Oprev,h),e.mesh.splice(p.Oprev,h)),c.windingNumber=f.windingNumber-h.winding,c.inside=i.isWindingInside(e,c.windingNumber),f.dirty=!0,!y&&i.checkForRightSplice(e,f)&&(i.addWinding(h,p),i.deleteRegion(e,f),e.mesh.delete(p)),y=!1,f=c,p=h;f.dirty=!0,Ae(f.windingNumber-h.winding===c.windingNumber),l&&i.walkDirtyRegions(e,f)},i.spliceMergeVertices=function(e,t,r){e.mesh.splice(t,r)},i.vertexWeights=function(e,t,r){var n=Te.vertL1dist(t,e),s=Te.vertL1dist(r,e),l=.5*s/(n+s),c=.5*n/(n+s);e.coords[0]+=l*t.coords[0]+c*r.coords[0],e.coords[1]+=l*t.coords[1]+c*r.coords[1],e.coords[2]+=l*t.coords[2]+c*r.coords[2]},i.getIntersectData=function(e,t,r,n,s,l){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,i.vertexWeights(t,r,n),i.vertexWeights(t,s,l)},i.checkForRightSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp;if(Te.vertLeq(n.Org,s.Org)){if(Te.edgeSign(s.Dst,n.Org,s.Org)>0)return!1;Te.vertEq(n.Org,s.Org)?n.Org!==s.Org&&(e.pq.delete(n.Org.pqHandle),i.spliceMergeVertices(e,s.Oprev,n)):(e.mesh.splitEdge(s.Sym),e.mesh.splice(n,s.Oprev),t.dirty=r.dirty=!0)}else{if(Te.edgeSign(n.Dst,s.Org,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Oprev,n)}return!0},i.checkForLeftSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l;if(Ae(!Te.vertEq(n.Dst,s.Dst)),Te.vertLeq(n.Dst,s.Dst)){if(Te.edgeSign(n.Dst,s.Dst,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,l=e.mesh.splitEdge(n),e.mesh.splice(s.Sym,l),l.Lface.inside=t.inside}else{if(Te.edgeSign(s.Dst,n.Dst,s.Org)>0)return!1;t.dirty=r.dirty=!0,l=e.mesh.splitEdge(s),e.mesh.splice(n.Lnext,s.Sym),l.Rface.inside=t.inside}return!0},i.checkForIntersect=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l=n.Org,c=s.Org,f=n.Dst,h=s.Dst,p,y,g=new _s,w,S;if(Ae(!Te.vertEq(h,f)),Ae(Te.edgeSign(f,e.event,l)<=0),Ae(Te.edgeSign(h,e.event,c)>=0),Ae(l!==e.event&&c!==e.event),Ae(!t.fixUpperEdge&&!r.fixUpperEdge),l===c||(p=Math.min(l.t,f.t),y=Math.max(c.t,h.t),p>y))return!1;if(Te.vertLeq(l,c)){if(Te.edgeSign(h,l,c)>0)return!1}else if(Te.edgeSign(f,c,l)<0)return!1;return i.debugEvent(e),Te.intersect(f,l,h,c,g),Ae(Math.min(l.t,f.t)<=g.t),Ae(g.t<=Math.max(c.t,h.t)),Ae(Math.min(h.s,f.s)<=g.s),Ae(g.s<=Math.max(c.s,l.s)),Te.vertLeq(g,e.event)&&(g.s=e.event.s,g.t=e.event.t),w=Te.vertLeq(l,c)?l:c,Te.vertLeq(w,g)&&(g.s=w.s,g.t=w.t),Te.vertEq(g,l)||Te.vertEq(g,c)?(i.checkForRightSplice(e,t),!1):!Te.vertEq(f,e.event)&&Te.edgeSign(f,e.event,g)>=0||!Te.vertEq(h,e.event)&&Te.edgeSign(h,e.event,g)<=0?h===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Sym,n),t=i.topLeftRegion(e,t),n=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),r),i.addRightEdges(e,t,n.Oprev,n,n,!0),!0):f===e.event?(e.mesh.splitEdge(s.Sym),e.mesh.splice(n.Lnext,s.Oprev),r=t,t=i.topRightRegion(t),S=i.regionBelow(t).eUp.Rprev,r.eUp=s.Oprev,s=i.finishLeftRegions(e,r,null),i.addRightEdges(e,t,s.Onext,n.Rprev,S,!0),!0):(Te.edgeSign(f,e.event,g)>=0&&(i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),Te.edgeSign(h,e.event,g)<=0&&(t.dirty=r.dirty=!0,e.mesh.splitEdge(s.Sym),s.Org.s=e.event.s,s.Org.t=e.event.t),!1):(e.mesh.splitEdge(n.Sym),e.mesh.splitEdge(s.Sym),e.mesh.splice(s.Oprev,n),n.Org.s=g.s,n.Org.t=g.t,n.Org.pqHandle=e.pq.insert(n.Org),i.getIntersectData(e,n.Org,l,f,c,h),i.regionAbove(t).dirty=t.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(e,t){for(var r=i.regionBelow(t),n,s;;){for(;r.dirty;)t=r,r=i.regionBelow(r);if(!t.dirty&&(r=t,t=i.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,n=t.eUp,s=r.eUp,n.Dst!==s.Dst&&i.checkForLeftSplice(e,t)&&(r.fixUpperEdge?(i.deleteRegion(e,r),e.mesh.delete(s),r=i.regionBelow(t),s=r.eUp):t.fixUpperEdge&&(i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r),n=t.eUp)),n.Org!==s.Org)if(n.Dst!==s.Dst&&!t.fixUpperEdge&&!r.fixUpperEdge&&(n.Dst===e.event||s.Dst===e.event)){if(i.checkForIntersect(e,t))return}else i.checkForRightSplice(e,t);n.Org===s.Org&&n.Dst===s.Dst&&(i.addWinding(s,n),i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r))}},i.connectRightVertex=function(e,t,r){var n,s=r.Onext,l=i.regionBelow(t),c=t.eUp,f=l.eUp,h=!1;if(c.Dst!==f.Dst&&i.checkForIntersect(e,t),Te.vertEq(c.Org,e.event)&&(e.mesh.splice(s.Oprev,c),t=i.topLeftRegion(e,t),s=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),l),h=!0),Te.vertEq(f.Org,e.event)&&(e.mesh.splice(r,f.Oprev),r=i.finishLeftRegions(e,l,null),h=!0),h){i.addRightEdges(e,t,r.Onext,s,s,!0);return}Te.vertLeq(f.Org,c.Org)?n=f.Oprev:n=c,n=e.mesh.connect(r.Lprev,n),i.addRightEdges(e,t,n,n.Onext,n.Onext,!1),n.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(e,t)},i.connectLeftDegenerate=function(e,t,r){var n,s,l,c,f;if(n=t.eUp,Te.vertEq(n.Org,r)){Ae(!1),i.spliceMergeVertices(e,n,r.anEdge);return}if(!Te.vertEq(n.Dst,r)){e.mesh.splitEdge(n.Sym),t.fixUpperEdge&&(e.mesh.delete(n.Onext),t.fixUpperEdge=!1),e.mesh.splice(r.anEdge,n),i.sweepEvent(e,r);return}Ae(!1),t=i.topRightRegion(t),f=i.regionBelow(t),l=f.eUp.Sym,s=c=l.Onext,f.fixUpperEdge&&(Ae(s!==l),i.deleteRegion(e,f),e.mesh.delete(l),l=s.Oprev),e.mesh.splice(r.anEdge,l),Te.edgeGoesLeft(s)||(s=null),i.addRightEdges(e,t,l.Onext,c,s,!0)},i.connectLeftVertex=function(e,t){var r,n,s,l,c,f,h=new Hh;if(h.eUp=t.anEdge.Sym,r=e.dict.search(h).key,n=i.regionBelow(r),!!n){if(l=r.eUp,c=n.eUp,Te.edgeSign(l.Dst,t,l.Org)===0){i.connectLeftDegenerate(e,r,t);return}if(s=Te.vertLeq(c.Dst,l.Dst)?r:n,r.inside||s.fixUpperEdge){if(s===r)f=e.mesh.connect(t.anEdge.Sym,l.Lnext);else{var p=e.mesh.connect(c.Dnext,t.anEdge);f=p.Sym}s.fixUpperEdge?i.fixUpperEdge(e,s,f):i.computeWinding(e,i.addRegionBelow(e,r,f)),i.sweepEvent(e,t)}else i.addRightEdges(e,r,t.anEdge,t.anEdge,null,!0)}},i.sweepEvent=function(e,t){e.event=t,i.debugEvent(e);for(var r=t.anEdge;r.activeRegion===null;)if(r=r.Onext,r===t.anEdge){i.connectLeftVertex(e,t);return}var n=i.topLeftRegion(e,r.activeRegion);Ae(n!==null);var s=i.regionBelow(n),l=s.eUp,c=i.finishLeftRegions(e,s,null);c.Onext===l?i.connectRightVertex(e,n,c):i.addRightEdges(e,n,c.Onext,l,l,!0)},i.addSentinel=function(e,t,r,n){var s=new Hh,l=e.mesh.makeEdge();l.Org.s=r,l.Org.t=n,l.Dst.s=t,l.Dst.t=n,e.event=l.Dst,s.eUp=l,s.windingNumber=0,s.inside=!1,s.fixUpperEdge=!1,s.sentinel=!0,s.dirty=!1,s.nodeUp=e.dict.insert(s)},i.initEdgeDict=function(e){e.dict=new _2(e,i.edgeLeq);var t=e.bmax[0]-e.bmin[0],r=e.bmax[1]-e.bmin[1],n=e.bmin[0]-t,s=e.bmax[0]+t,l=e.bmin[1]-r,c=e.bmax[1]+r;i.addSentinel(e,n,s,l),i.addSentinel(e,n,s,c)},i.doneEdgeDict=function(e){for(var t,r=0;(t=e.dict.min().key)!==null;)t.sentinel||(Ae(t.fixUpperEdge),Ae(++r==1)),Ae(t.windingNumber===0),i.deleteRegion(e,t)},i.removeDegenerateEdges=function(e){var t,r,n,s=e.mesh.eHead;for(t=s.next;t!==s;t=r)r=t.next,n=t.Lnext,Te.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(i.spliceMergeVertices(e,n,t),e.mesh.delete(t),t=n,n=t.Lnext),n.Lnext===t&&(n!==t&&((n===r||n===r.Sym)&&(r=r.next),e.mesh.delete(n)),(t===r||t===r.Sym)&&(r=r.next),e.mesh.delete(t))},i.initPriorityQ=function(e){var t,r,n,s=0;for(n=e.mesh.vHead,r=n.next;r!==n;r=r.next)s++;for(s+=8,t=e.pq=new L2(s,Te.vertLeq),n=e.mesh.vHead,r=n.next;r!==n;r=r.next)r.pqHandle=t.insert(r);return r!==n?!1:(t.init(),!0)},i.donePriorityQ=function(e){e.pq=null},i.removeDegenerateFaces=function(e,t){var r,n,s;for(r=t.fHead.next;r!==t.fHead;r=n)n=r.next,s=r.anEdge,Ae(s.Lnext!==s),s.Lnext.Lnext===s&&(i.addWinding(s.Onext,s),e.mesh.delete(s));return!0},i.computeInterior=function(e,t){t===void 0&&(t=!0);var r,n;if(i.removeDegenerateEdges(e),!i.initPriorityQ(e))return!1;for(i.initEdgeDict(e);(r=e.pq.extractMin())!==null;){for(;n=e.pq.min(),!(n===null||!Te.vertEq(n,r));)n=e.pq.extractMin(),i.spliceMergeVertices(e,r.anEdge,n.anEdge);i.sweepEvent(e,r)}return e.event=e.dict.min().key.eUp.Org,i.debugEvent(e),i.doneEdgeDict(e),i.donePriorityQ(e),i.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},i}(),I2=function(){function i(){this.mesh=new G0,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=Pt.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 i.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},i.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},i.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},i.prototype.computeNormal_=function(e){var t,r,n,s,l,c,f=[0,0,0],h=[0,0,0],p=[0,0,0],y=[0,0,0],g=[0,0,0],w=[null,null,null],S=[null,null,null],T=this.mesh.vHead;t=T.next;for(var C=0;C<3;++C)s=t.coords[C],h[C]=s,S[C]=t,f[C]=s,w[C]=t;for(t=T.next;t!==T;t=t.next)for(var B=0;B<3;++B)s=t.coords[B],s<h[B]&&(h[B]=s,S[B]=t),s>f[B]&&(f[B]=s,w[B]=t);var G=0;if(f[1]-h[1]>f[0]-h[0]&&(G=1),f[2]-h[2]>f[G]-h[G]&&(G=2),h[G]>=f[G]){e[0]=0,e[1]=0,e[2]=1;return}for(c=0,r=S[G],n=w[G],p[0]=r.coords[0]-n.coords[0],p[1]=r.coords[1]-n.coords[1],p[2]=r.coords[2]-n.coords[2],t=T.next;t!==T;t=t.next)y[0]=t.coords[0]-n.coords[0],y[1]=t.coords[1]-n.coords[1],y[2]=t.coords[2]-n.coords[2],g[0]=p[1]*y[2]-p[2]*y[1],g[1]=p[2]*y[0]-p[0]*y[2],g[2]=p[0]*y[1]-p[1]*y[0],l=g[0]*g[0]+g[1]*g[1]+g[2]*g[2],l>c&&(c=l,e[0]=g[0],e[1]=g[1],e[2]=g[2]);c<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(p)]=1)},i.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,r=this.mesh.vHead,n,s=0,l=e.next;l!==e;l=l.next)if(n=l.anEdge,!(n.winding<=0))do s+=(n.Org.s-n.Dst.s)*(n.Org.t+n.Dst.t),n=n.Lnext;while(n!==l.anEdge);if(s<0){for(t=r.next;t!==r;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},i.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],r,n,s=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),s=!0),r=this.sUnit,n=this.tUnit;var l=this.longAxis_(t);r[l]=0,r[(l+1)%3]=1,r[(l+2)%3]=0,n[l]=0,n[(l+1)%3]=0,n[(l+2)%3]=t[l]>0?1:-1;for(var c=e.next;c!==e;c=c.next)c.s=this.dot_(c.coords,r),c.t=this.dot_(c.coords,n);s&&this.checkOrientation_();for(var f=!0,h=e.next;h!==e;h=h.next)f?(this.bmin[0]=this.bmax[0]=h.s,this.bmin[1]=this.bmax[1]=h.t,f=!1):(h.s<this.bmin[0]&&(this.bmin[0]=h.s),h.s>this.bmax[0]&&(this.bmax[0]=h.s),h.t<this.bmin[1]&&(this.bmin[1]=h.t),h.t>this.bmax[1]&&(this.bmax[1]=h.t))},i.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.prototype.tessellateMonoRegion_=function(e,t){var r,n;if(r=t.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;Te.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;Te.vertLeq(r.Org,r.Dst);r=r.Lnext);n=r.Lprev;for(var s=void 0;r.Lnext!==n;)if(Te.vertLeq(r.Dst,n.Org)){for(;n.Lnext!==r&&(Te.edgeGoesLeft(n.Lnext)||Te.edgeSign(n.Org,n.Dst,n.Lnext.Dst)<=0);)s=e.connect(n.Lnext,n),n=s.Sym;n=n.Lprev}else{for(;n.Lnext!==r&&(Te.edgeGoesRight(r.Lprev)||Te.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)s=e.connect(r,r.Lprev),r=s.Sym;r=r.Lnext}if(n.Lnext===r)throw"Mono region invalid";for(;n.Lnext.Lnext!==r;)s=e.connect(n.Lnext,n),n=s.Sym;return!0},i.prototype.tessellateInterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)if(t=r.next,r.inside&&!this.tessellateMonoRegion_(e,r))return!1;return!0},i.prototype.discardExterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)t=r.next,r.inside||e.zapFace(r)},i.prototype.setWindingNumber_=function(e,t,r){for(var n,s=e.eHead.next;s!==e.eHead;s=n)n=s.next,s.Rface.inside!==s.Lface.inside?s.winding=s.Lface.inside?t:-t:r?e.delete(s):s.winding=0},i.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},i.prototype.outputPolymesh_=function(e,t,r,n){var s,l=0,c=0,f;r>3&&e.mergeConvexFaces(r);for(var h=e.vHead.next;h!==e.vHead;h=h.next)h.n=-1;for(var p=e.fHead.next;p!==e.fHead;p=p.next)if(p.n=-1,!!p.inside){s=p.anEdge,f=0;do{var h=s.Org;h.n===-1&&(h.n=c,c++),f++,s=s.Lnext}while(s!==p.anEdge);if(f>r)throw"Face vertex greater that support polygon";p.n=l,++l}this.elementCount=l,t===Qt.CONNECTED_POLYGONS&&(l*=2),this.elements=[],this.elements.length=l*r,this.vertexCount=c,this.vertices=[],this.vertices.length=c*n,this.vertexIndices=[],this.vertexIndices.length=c;for(var h=e.vHead.next;h!==e.vHead;h=h.next)if(h.n!==-1){var y=h.n*n;this.vertices[y+0]=h.coords[0],this.vertices[y+1]=h.coords[1],n>2&&(this.vertices[y+2]=h.coords[2]),this.vertexIndices[h.n]=h.idx}for(var g=0,p=e.fHead.next;p!==e.fHead;p=p.next)if(!!p.inside){s=p.anEdge,f=0;do{var h=s.Org;this.elements[g++]=h.n,f++,s=s.Lnext}while(s!==p.anEdge);for(var w=f;w<r;++w)this.elements[g++]=-1;if(t===Qt.CONNECTED_POLYGONS){s=p.anEdge;do this.elements[g++]=this.getNeighbourFace_(s),s=s.Lnext;while(s!==p.anEdge);for(var S=f;S<r;++S)this.elements[g++]=-1}}},i.prototype.outputContours_=function(e,t){var r,n,s=0,l=0;this.vertexCount=0,this.elementCount=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){n=r=c.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==n);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*t,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var f=0,h=0,p=0;s=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){l=0,n=r=c.anEdge;do this.vertices[f++]=r.Org.coords[0],this.vertices[f++]=r.Org.coords[1],t>2&&(this.vertices[f++]=r.Org.coords[2]),this.vertexIndices[h++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,l++,r=r.Lnext;while(r!==n);this.elements[p++]=s,this.elements[p++]=l,s+=l}},i.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new G0),e<2&&(e=2),e>3&&(e=3);for(var r=null,n=0;n<t.length;n+=e)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=t[n+0],r.Org.coords[1]=t[n+1],e>2?r.Org.coords[2]=t[n+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(e,t,r,n,s,l){if(e===void 0&&(e=Pt.ODD),t===void 0&&(t=Qt.POLYGONS),l===void 0&&(l=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,s&&(this.normal[0]=s[0],this.normal[1]=s[1],this.normal[2]=s[2]),this.windingRule=e,n<2&&(n=2),n>3&&(n=3),!this.mesh)return!1;this.projectPolygon_(),T2.computeInterior(this,l);var c=this.mesh;return t===Qt.BOUNDARY_CONTOURS?this.setWindingNumber_(c,1,!0):this.tessellateInterior_(c),l&&c.check(),t===Qt.BOUNDARY_CONTOURS?this.outputContours_(c,n):this.outputPolymesh_(c,t,r,n),!0},i}();function Co(i){var e=i.windingRule,t=e===void 0?Pt.ODD:e,r=i.elementType,n=r===void 0?Qt.POLYGONS:r,s=i.polySize,l=s===void 0?3:s,c=i.vertexSize,f=c===void 0?2:c,h=i.normal,p=h===void 0?[0,0,1]:h,y=i.contours,g=y===void 0?[]:y,w=i.strict,S=w===void 0?!0:w,T=i.debug,C=T===void 0?!1:T;if(!g&&S)throw new Error("Contours can't be empty");if(!!g){var B=new I2;i.edgeCreateCallback&&(B.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(B.vertexIdCallback=i.vertexIdCallback);for(var G=0;G<g.length;G++)B.addContour(f||2,g[G]);return B.tesselate(t,n,l,f,p,S),{vertices:B.vertices,vertexIndices:B.vertexIndices,vertexCount:B.vertexCount,elements:B.elements,elementCount:B.elementCount,mesh:C?B.mesh:void 0}}}var nH=Pt.ODD,iH=Pt.NONZERO,oH=Pt.POSITIVE,sH=Pt.NEGATIVE,aH=Pt.ABS_GEQ_TWO,lH=Qt.POLYGONS,cH=Qt.CONNECTED_POLYGONS,uH=Qt.BOUNDARY_CONTOURS;var Lo=class extends M2{constructor(e,t=12,r=100,n={}){super();this.type="ShapeGeometry";this.windingRule=Pt.ODD;this.elementType=Qt.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._drawCount=0,this._shape=e,this._curveSegments=t,this._maxCount=r,this._maxDrawCount=r*3,this._triangulationOptions=Object.assign({windingRule:Pt.ODD,elementType:Qt.POLYGONS,polySize:3,vertexSize:2,strict:!0},n),this._positionAttribute=new Yc(new Float32Array(r*3),3),this._normalAttribute=new Yc(new Float32Array(r*3),3),this._uvAttribute=new Yc(new Float32Array(r*2),2),this._indexAttribute=new Yc(new Uint32Array(r*3),1),this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.updateFromShape()}copy(e){return this._drawCount=e.drawCount,this._maxDrawCount=e._maxDrawCount,this._maxCount=e.maxCount,super.copy(e)}get curveSegments(){return this._curveSegments}set curveSegments(e){this._curveSegments=e,this.updateFromShape()}get drawCount(){return this._drawCount}get maxDrawCount(){return this._maxDrawCount}get maxCount(){return this._maxCount}updateFromShape(){let e=this._shape.extractShapePointsToFlatArray([],this._curveSegments),t=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),r,n=!0,s=!0,l,c;for(let f=0,h=e.length/2;f<h;f++){let p=f*2,y=e[p+0],g=e[p+1];if(l!==void 0&&y!==l&&(n=!1),c!==void 0&&g!==c&&(s=!1),l=y,c=g,!n&&!s)break}if(!n&&!s&&(r=Co({contours:[e,...t],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})),this._positionAttribute.array.fill(0),this._normalAttribute.array.fill(0),this._uvAttribute.array.fill(0),this._indexAttribute.array.fill(0),this._drawCount=0,r){let f=1/0,h=-1/0,p=1/0,y=-1/0;for(let S=0,T=r.vertexCount;S<T;S++){let C=S*2,B=r.vertices[C+0],G=r.vertices[C+1];B<f&&(f=B),B>h&&(h=B),G<p&&(p=G),G>y&&(y=G)}let g=h-f,w=y-p;for(let S=0,T=r.vertexCount;S<T;S++){let C=S*2,B=r.vertices[C+0],G=r.vertices[C+1],D=(B-f)/g,W=(G-p)/w;this._positionAttribute.setXYZ(S,B,G,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,D,W)}for(let S=0,T=r.elementCount;S<T;S++){let C=S*3,B=r.elements[C+0],G=r.elements[C+1],D=r.elements[C+2];this._indexAttribute.setX(C+0,B),this._indexAttribute.setX(C+1,G),this._indexAttribute.setX(C+2,D),this._drawCount+=3}}return this._positionAttribute.needsUpdate=!0,this._normalAttribute.needsUpdate=!0,this._uvAttribute.needsUpdate=!0,this._indexAttribute.needsUpdate=!0,this.setDrawRange(0,this._drawCount),this._drawCount>this._maxDrawCount}clone(){let e=new Lo(this._shape,this._curveSegments,this._maxCount);return e.userData=xo(this.userData),e}};import{BufferAttribute as tu,BufferGeometry as A2}from"three";var eu=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let r=e*eu.eSize;this.buffer=new ArrayBuffer(r);let n=Float32Array.BYTES_PER_ELEMENT,s=0;this.positions=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.normals=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.uvs=new Float32Array(this.buffer,s*n,2*e)}realloc(e,t=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!t)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let r=e*eu.eSize,n=new ArrayBuffer(r),s=Float32Array.BYTES_PER_ELEMENT,l=0,c=new Float32Array(n,l*s,3*e);l+=3*e;let f=new Float32Array(n,l*s,3*e);l+=3*e;let h=new Float32Array(n,l*s,2*e);c.set(this.positions.slice(0,this.size*3)),f.set(this.normals.slice(0,this.size*3)),h.set(this.uvs.slice(0,this.size*2)),this.buffer=n,this.positions=c,this.normals=f,this.uvs=h,this.capacity=e}get(e=1){let t=this.size+e;if(t>this.capacity){let n=this.capacity;for(;t>n;)n*=2;this.realloc(n)}let r=this.size;return this.size=t,r}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Qc=eu;Qc.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Wh=(i,e)=>([t,r])=>(r<t&&(r+=e),(i>=t?i:i+e)<=r),La=class extends A2{constructor(e,t,r=0,n=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=s,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(s));let l=this._shape.extractShapePointsToFlatArray([],n),c=this._shape.shapeHoles.map(q=>{let E=q.extractShapePointsToFlatArray([],n),b=[];for(let R=E.length-1;R>=1;R-=2){let I=E[R-1],z=E[R-0];b.push(I,z)}return b}),f=Co({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),h=Co({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!f)throw new Error("error generating geometry");let p=f.elementCount;if(h){f.elementCount+=h.elementCount;for(let q=0;q<h.elements.length;q++){let E=h.elements[q],b=q%2==0?f.vertexCount:0;f.elements.push(E+b)}for(let q=0;q<h.vertexIndices.length;q++){let E=h.vertexIndices[q],b=f.vertexCount;f.vertexIndices.push(E+b)}for(let q=0;q<h.vertices.length;q++){let E=h.vertices[q];f.vertices.push(E)}}let y=1/0,g=-1/0,w=1/0,S=-1/0;for(let q=0,E=f.vertexCount;q<E;q++){let b=q*2,R=f.vertices[b+0],I=f.vertices[b+1];R<y&&(y=R),R>g&&(g=R),I<w&&(w=I),I>S&&(S=I)}this._minX=y,this._minY=w,this._width=g-y,this._height=S-w;let T=f.vertexCount*2*(2+this._bevelSegments);this._buffer=new Qc(T);let C=[],B=[];for(let q=f.elementCount-1;q>=0;q--){let E=q>=p,b=q*2,R=f.elements[b+0],I=f.elements[b+1],z=R+I,O={start:R,count:I,normals:[],continuous:[],concave:[]},$=R,he=z-1,re=R+1,Ne=this._shape.roundedCurves.length;do{let k=$-R,H=f.vertices[he*2+0],_=f.vertices[he*2+1],J=f.vertices[$*2+0],ee=f.vertices[$*2+1],oe=f.vertices[re*2+0],se=f.vertices[re*2+1],ce=J-H,ue=ee-_,K=Math.sqrt(ce*ce+ue*ue);ce/=K,ue/=K;let ae=J-oe,ne=ee-se,Ce=Math.sqrt(ae*ae+ne*ne);ae/=Ce,ne/=Ce,O.normals[k*2+0]=-ne,O.normals[k*2+1]=ae,O.concave[k]=ce*ne-ue*ae>0;let Y=f.vertexIndices[$];if(Array.isArray(Y))O.continuous[k]=!1;else{let[le,de]=this._shape.getCurveIndexFromVertexId(Y-1,!0);if(de>0&&de<1)O.continuous[k]=!0;else{let xe=de===1?le+1:le-1;xe=(xe+Ne)%Ne;let _e=de===1?0:1,pe=this._shape.roundedCurves[le].getTangent(de),we=this._shape.roundedCurves[xe].getTangent(_e);O.continuous[k]=pe.dot(we)>.95}}E&&(O.normals[k*2+0]*=-1,O.normals[k*2+1]*=-1),[he,$,re]=[$,re,re+1],re>=z&&(re-=I)}while(re!==R+1);let ye=[];ye.push({bevelI:0,angle:0,size:0,boundary:{vertices:f.vertices.slice(R*2,z*2),vertexCount:I,vertexIndices:new Array(I).fill(!0).map((k,H)=>[H,H]),elements:[0,I],elementCount:1,mesh:null},reverseMap:[],insetPoints:f.vertices.slice(R*2,z*2)});for(let k=1;k<=this._bevelSegments;k++){let H=k/this._bevelSegments*Math.PI/2,_=(1-Math.cos(H))*this._bevelSize,J=[],ee=[],oe=[],se=[],ce=0;for(let K=0;K<I;K++){let ae=K*2,ne=(K-1+I)%I*2,Ce=f.vertices[O.start*2+ae+0],Y=f.vertices[O.start*2+ae+1],le=-O.normals[ne+0]*_,de=-O.normals[ne+1]*_,xe=-O.normals[ae+0]*_,_e=-O.normals[ae+1]*_;if(O.concave[K]||!O.concave[K]&&E){let pe=Math.atan2(de,le),we=Math.atan2(_e,xe);we>pe&&(we-=Math.PI*2);let Ve=we-pe;if(O.continuous[K]||E){let Ge=pe+Ve/2,Qe=Math.cos(Ge)*_,bt=Math.sin(Ge)*_;J[2*ce+0]=Ce+Qe*(E?-1:1),J[2*ce+1]=Y+bt*(E?-1:1),se[ce]=K,ce++}else{let Ge=Math.max(1,Math.floor(n/4*Math.abs(Ve)/Math.PI));for(let Qe=0;Qe<=Ge;Qe++){let bt=pe+Ve*(Qe/Ge),Lt=Math.cos(bt)*_,At=Math.sin(bt)*_;J[2*ce+0]=Ce+Lt,J[2*ce+1]=Y+At,se[ce]=K,ce++}}}else J[2*ce+0]=Ce+le,J[2*ce+1]=Y+de,se[ce]=K,ee[K]=ce,ce++,J[2*ce+0]=Ce,J[2*ce+1]=Y,se[ce]=K,ce++,J[2*ce+0]=Ce+xe,J[2*ce+1]=Y+_e,se[ce]=K,oe[K]=ce,ce++}let ue=Co({windingRule:Pt.POSITIVE,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[J],edgeCreateCallback:K=>{let ne=K.Org.idx,Ce=se[ne],Y=se[(ne+1)%se.length];K.idx=[Ce,Y],K.Sym.idx=[Y,Ce]},vertexIdCallback:K=>{let ae=K.Lprev.idx;return[ae?ae[1]:0,K.idx[0]]}});if(!ue)throw console.log("Error"),new Error(`error generating bevel geometry for ${k}'th loop`);if(!ue.vertexCount)break;for(let K=0;K<ue.vertexIndices.length;K++){let[ae,ne]=ue.vertexIndices[K];if(ae===ne)continue;let Ce=ne;ne<ae&&(Ce+=I);for(let Y=ae;Y<Ce;Y++){let le=Y%I,de=(Y+1)%I;if(!O.continuous[le]||!O.continuous[de]){ue.vertexIndices[K]=[ae,le],ue.vertexIndices.splice(K+1,0,[de,ne]),ue.vertices.splice((K+1)*2,0,ue.vertices[K*2],ue.vertices[K*2+1]);break}}}ye.push({bevelI:k,angle:H,size:_,boundary:ue,reverseMap:se,insetPoints:J})}let Me=(k,H,_)=>{let J=0,ee=k.boundary.vertexIndices.length;for(;J<ee&&_(k.boundary.vertexIndices[H]);)H=(H+1)%ee,J++;return J},Fe=C.length;for(let k=1;k<ye.length;k++){let H=ye[k-1],_=ye[k],J=H.boundary.vertexIndices.length,ee=_.boundary.vertexIndices.length;if(!J||!ee)break;let oe=O.concave.length,se=0,ce=Wh(se,I);for(;!H.boundary.vertexIndices.filter(ce).length||!_.boundary.vertexIndices.filter(ce).length;)se++,ce=Wh(se,I);let ue=H.boundary.vertexIndices.findIndex(ce),K=_.boundary.vertexIndices.findIndex(ce);do ue=(ue+1)%J;while(ce(H.boundary.vertexIndices[ue]));do K=(K+1)%ee;while(ce(_.boundary.vertexIndices[K]));se=(se+1)%I;let ae=se,ne=this.buildBevelVert(O,H,(ue-1+J)%J),Ce=this.buildBevelVert(O,_,(K-1+ee)%ee),Y=ne,le=Ce,de,xe,_e=!1;do{ce=Wh(se,I);let pe=Me(H,ue,ce),we=Me(_,K,ce),Ve=_e;if(_e=!1,pe&&!we){for(let Ge=0;Ge<pe;Ge++)de=this.buildBevelVert(O,H,(ue+Ge)%J,Ge/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de;_e=!0}else if(!pe&&we)for(let Ge=0;Ge<we;Ge++)xe=this.buildBevelVert(O,_,(K+Ge)%ee,Ge/(we-1)),C.push(le.topN,Y.topP,xe.topP),C.push(Y.bottomP,le.bottomN,xe.bottomP),le=xe;else if(pe&&we)if(de=this.buildBevelVert(O,H,ue,0),xe=this.buildBevelVert(O,_,K,0),Ve?(C.push(Y.topN,xe.topP,le.topN),C.push(Y.topN,de.topP,xe.topP),C.push(xe.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,Y.bottomN,xe.bottomP)):(C.push(Y.topN,de.topP,le.topN),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,le.bottomN,xe.bottomP)),Y=de,le=xe,pe===we)for(let Ge=1;Ge<pe;Ge++)de=this.buildBevelVert(O,H,(ue+Ge)%J,Ge/(pe-1)),xe=this.buildBevelVert(O,_,(K+Ge)%ee,Ge/(we-1)),C.push(Y.topN,de.topP,le.topN),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,Y.bottomN,le.bottomN),C.push(de.bottomP,le.bottomN,xe.bottomP),Y=de,le=xe;else if(pe>we){let Ge=pe/we,Qe=0;for(let bt=1;bt<pe;bt++)de=this.buildBevelVert(O,H,(ue+bt)%J,bt/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de,bt>(Qe+1)*Ge&&(Qe++,xe=this.buildBevelVert(O,_,(K+Qe)%ee,Qe/(we-1)),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,le.bottomN,xe.bottomP),le=xe)}else{let Ge=we/pe,Qe=0;for(let bt=1;bt<we;bt++)xe=this.buildBevelVert(O,_,(K+bt)%ee,bt/(we-1)),C.push(le.topN,de.topP,xe.topP),C.push(de.bottomP,le.bottomN,xe.bottomP),le=xe,bt>(Qe+1)*Ge&&(Qe++,de=this.buildBevelVert(O,H,(ue+Qe)%J,Qe/(pe-1)),C.push(Y.topN,de.topP,le.topN),C.push(de.bottomP,Y.bottomN,le.bottomN),Y=de)}ue=(ue+pe)%J,K=(K+we)%ee,se=(se+1)%oe}while(se!==ae)}{let k=ye[0];for(let H=0,_=k.boundary.vertexCount;H<_;H++){let J=this.buildBevelVert(O,k,H),ee=this.buildBevelVert(O,k,(H+1)%_);C.push(ee.topP,J.topN,J.bottomN),C.push(ee.topP,J.bottomN,ee.bottomP)}}if(E){let k=[];for(let H=C.length-1;H>=Fe+2;H-=3){let _=C[H-2],J=C[H-1],ee=C[H-0];k.push(ee,J,_)}C.splice(Fe,C.length-Fe,...k)}if(E){let k=[];for(let H=ye[ye.length-1].boundary.vertices.length-1;H>=1;H-=2){let _=ye[ye.length-1].boundary.vertices[H-1],J=ye[ye.length-1].boundary.vertices[H-0];k.push(_,J)}B.push(k)}if(!E){let k=ye[ye.length-1],H=Co({windingRule:ye.length>1?Pt.POSITIVE:Pt.ODD,elementType:Qt.POLYGONS,vertexSize:2,strict:!0,contours:[k.insetPoints,...B]});if(!H)throw new Error("Error generating geometry for surface");for(let _=0;_<H.elementCount*3;_+=3){let J=this.buildSurfaceVert(H,H.elements[_+0]),ee=this.buildSurfaceVert(H,H.elements[_+1]),oe=this.buildSurfaceVert(H,H.elements[_+2]);C.push(J.top,ee.top,oe.top),C.push(oe.bottom,ee.bottom,J.bottom)}}this.vertexCache={}}this._buffer.shrink();let G=new tu(Uint32Array.from(C),1),D=new tu(this._buffer.positions,3),W=new tu(this._buffer.normals,3),A=new tu(this._buffer.uvs,2);D.needsUpdate=!0,W.needsUpdate=!0,A.needsUpdate=!0,G.needsUpdate=!0,this.setAttribute("position",D),this.setAttribute("normal",W),this.setAttribute("uv",A),this.setIndex(G)}buildSurfaceVert(e,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=e.vertices[t*2+0],s=e.vertices[t*2+1],l=(n-this._minX)/this._width,c=(s-this._minY)/this._height,f=this._buffer.get(2),h=f*3,p=f*2,y={top:f+0,bottom:f+1};return this._buffer.positions[h+0]=n,this._buffer.positions[h+1]=s,this._buffer.positions[h+2]=this._depth,this._buffer.normals[h+0]=0,this._buffer.normals[h+1]=0,this._buffer.normals[h+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=c,this._buffer.positions[h+3]=n,this._buffer.positions[h+4]=s,this._buffer.positions[h+5]=0,this._buffer.normals[h+3]=0,this._buffer.normals[h+4]=0,this._buffer.normals[h+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=c,this.vertexCache[r]=y,y}buildBevelVert(e,t,r,n=1){let s=`${t.bevelI}:${r}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=t.boundary.vertexIndices[r],f,h,p,y;l!==c?(h=l,f=c,y=!1,p=e.continuous[h]&&e.continuous[f]):(f=l,h=(f-1+e.count)%e.count,y=e.concave[f]&&t.bevelI>0,p=e.continuous[f]||y);let g=Math.cos(t.angle),w=Math.sin(t.angle),S=r*2,T=f*2,C=h*2,B=t.boundary.vertices[S+0],G=t.boundary.vertices[S+1],D=(1-w)*this._bevelSize,W=(B-this._minX)/this._width,A=(G-this._minY)/this._height,q=e.normals[T+0],E=e.normals[T+1],b=e.normals[C+0],R=e.normals[C+1];if(y){let he=b-q,re=R-E;q=q+he*(1-n),E=E+re*(1-n);let Ne=Math.sqrt(q*q+E*E);q/=Ne,E/=Ne}let I=this._buffer.get(p?2:4),z=I*3,O=I*2,$={i:r,fi:f,topP:I+0,topN:I+0,bottomP:I+1,bottomN:I+1};return this._buffer.positions[z+0]=B,this._buffer.positions[z+1]=G,this._buffer.positions[z+2]=this._depth-D,this._buffer.normals[z+0]=q*g,this._buffer.normals[z+1]=E*g,this._buffer.normals[z+2]=w,this._buffer.uvs[O+0]=W,this._buffer.uvs[O+1]=A,this._buffer.positions[z+3]=B,this._buffer.positions[z+4]=G,this._buffer.positions[z+5]=D,this._buffer.normals[z+3]=q*g,this._buffer.normals[z+4]=E*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[O+2]=A,this._buffer.uvs[O+3]=W,p||(I+=2,z+=6,O+=4,$.topP=I+0,$.bottomP=I+1,this._buffer.positions[z+0]=B,this._buffer.positions[z+1]=G,this._buffer.positions[z+2]=this._depth-D,this._buffer.normals[z+0]=b*g,this._buffer.normals[z+1]=R*g,this._buffer.normals[z+2]=w,this._buffer.uvs[O+0]=W,this._buffer.uvs[O+1]=A,this._buffer.positions[z+3]=B,this._buffer.positions[z+4]=G,this._buffer.positions[z+5]=D,this._buffer.normals[z+3]=b*g,this._buffer.normals[z+4]=R*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[O+2]=A,this._buffer.uvs[O+3]=W),this.vertexCache[s]=$,$}clone(){let e=new La(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=xo(this.userData),e}};var ur=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var h,p,y,g,w,S,T;let t=Object.assign({},(h=e==null?void 0:e.parameters)!=null?h:{width:100,subdivisions:40,roundness:0,extrudeDepth:0,surfaceMaxCount:100,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(t.width),n=Math.abs((p=t.height)!=null?p:t.width),s=Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(y=t.depth)!=null?y:0),l=(g=i.shape)!=null?g:e==null?void 0:e.shape,c=(w=l==null?void 0:l.roundness)!=null?w:t.roundness;l!==void 0&&(l instanceof st?(l.width!==r||l.height!==n)&&l.applySize(r,n):l=new st(r,n).fromJSON(l),((S=i.parameters)==null?void 0:S.roundness)!==void 0&&((T=i.parameters)==null?void 0:T.roundness)>0&&l.update(!1));let f=l!=null?l:new st(r,n);return{parameters:Object.assign(t,{width:r,height:n,depth:s,extrudeDepth:s,roundness:c}),shape:f}}static build(i){let{extrudeDepth:e,extrudeBevelSize:t,extrudeBevelSegments:r,subdivisions:n,roundness:s,surfaceMaxCount:l}=i.parameters;i.shape.roundness=s;let c;return e<=0?c=new Lo(i.shape,n,l):c=new La(i.shape,e,t,n,r),Object.assign(c,{userData:fe(U({},i),{type:"VectorGeometry"})})}};import{MathUtils as z0,Vector2 as F0}from"three";var V0=Math.PI*2,U0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1e3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((s=t.height)!=null?s:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(l=t.depth)!=null?l:0)})}}static build(i){let{width:e,height:t,spikes:r,angle:n,innerRadius:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,p=i.shape,y=e*.5,g=t*.5,w=O2(p,y,g,n*Math.PI/180,r,s);p.isClosed=!0,p.update();let S=ur.create({shape:p,parameters:{subdivisions:w,surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(S,{userData:fe(U({},i),{type:"EllipseGeometry"})})}};function O2(i,e,t,r,n,s){if(r>=V0)return n>30||n%4==0?(D2(i,e,t,s),Math.round(n/4)):k0(i,r,n,e,t,s);let l={x:0,y:t},c=r+Math.PI*.5,f={x:Math.cos(c)*e,y:Math.sin(c)*t},h=B0({px:l.x,py:l.y,cx:f.x,cy:f.y,rx:e,ry:t,largeArcFlag:r>Math.PI,sweepFlag:!0});return n>30||n%h.length==0?P2(i,l.x,l.y,h,n,e,t,s):k0(i,r,n,e,t,s)}function P2(i,e,t,r,n,s,l,c){let f=Math.round(n/r.length);i.addPoint(Ts(e,t));for(let h=0,p=r.length;h<p;h++){let y=r[h],g=i.points[h],w=Ts(y.x,y.y);g.controls[1].position.set(y.x1,y.y1),w.controls[0].position.set(y.x2,y.y2),i.addPoint(w)}return c>0?H0(i,s,l,c):i.addPoint(Ts(0,0)),f}function k0(i,e,t,r,n,s){let l=-e/t;for(let c=0;c<=t;c++){let f=l*c,h=Math.sin(f)*r,p=Math.cos(f)*n;i.addPoint(Ts(h,p))}return e<V0?s>0?H0(i,r,n,s):i.addPoint(Ts(0,0)):(i.removePoint(i.points[i.points.length-1]),s>0&&W0(i,r,n,s)),1}function D2(i,e,t,r=0,n=0,s=0){let l=.5522847498,c=e*l,f=t*l;i.addPoint(ru(n-e,s,n-e,s-f,n-e,s+f)),i.addPoint(ru(n,s+t,n-c,s+t,n+c,s+t)),i.addPoint(ru(n+e,s,n+e,s+f,n+e,s-f)),i.addPoint(ru(n,s-t,n+c,s-t,n-c,s-t)),r>0&&W0(i,e,t,r)}function Ts(i,e){return new Xn(z0.generateUUID(),new F0(i,e))}function ru(i,e,t,r,n,s){let l=Ts(i,e);return l.controls[0].position.set(t,r),l.controls[1].position.set(n,s),l}function H0(i,e,t,r){q0(i,e,t,r).forEach(s=>i.addPoint(s))}function W0(i,e,t,r){let n=q0(i,e,t,r),s=new st;n.forEach(l=>s.addPoint(l)),s.isClosed=!0,i.shapeHoles.push(s)}function q0(i,e,t,r){let n=r*e/100,s=n*(Math.abs(t)/Math.abs(e)),l=new F0(n/e,s/t),c=i.points.map(f=>{let h=f.clone();return h.uuid=z0.generateUUID(),h}).reverse();return c.forEach(f=>{f.position.multiply(l);let h=f.controls[0].position.clone().multiply(l),p=f.controls[1].position.clone().multiply(l);f.controls[0].position.copy(p),f.controls[1].position.copy(h)}),c}import{BufferGeometry as B2,Float32BufferAttribute as qh,Vector3 as $0}from"three";var J0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var c,f,h;let t=Object.assign({},(c=e==null?void 0:e.parameters)!=null?c:{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(t.width),n=Math.abs((f=t.height)!=null?f:r),s=Math.abs((h=t.depth)!=null?h:r),l=Math.abs(Math.min(r,s))/2;return{parameters:Object.assign(t,{width:r,height:n,depth:s,radius:l,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(i){let{width:e,height:t,depth:r,radius:n,revolutions:s,segments:l,pathRadius:c,pathType:f,pathSegments:h,cornerRadius:p,cornerSegments:y}=i.parameters,g=new nu(!1,e,t,r,n,s,l,c,f,h,p,y);return Object.assign(g,{userData:fe(U({},i),{type:"HelixGeometry"})})}},nu=class extends B2{constructor(e=!0,t=1,r=1,n=1,s=1,l=1,c=1,f=1,h=1,p=1,y=1,g=1){super();let w=e&&l===1;w&&(g=0),y>100&&(y=100);let S=()=>new $0,T=new $0,C=S(),B=S(),G=S(),D,W,A,q,E,b,R,I,z=S(),O=S(),$=S(),he=S(),re=S(),Ne=S(),ye=S(),Me=S(),Fe=r-2*f+.001,k=Fe/l,H=Math.ceil(c*l),_=H+1,J=Fe/H,ee=-Fe/2,oe=p+1,se=2*Math.PI/p,ce=Math.PI/2/g,ue=.01,K=Math.min((1-y/100)*f,f-ue),ae=f-K,ne=0,Ce=2,Y=g*Ce+Ce,le=oe*Y/Ce,de=le+oe*_,xe=oe*(_+Y),[_e,pe,we]=[3,3,2].map(pt=>Array(xe*pt).fill(0)),Ve=[],Ge=s-f;function Qe(pt,Wt){let ar=Math.PI/2;b=Wt*J,I=2*Math.PI*(b%k)/k+ar,b+=ee,R=Math.sin(I)*Ge,E=Math.cos(I)*Ge,e?pt.set(E,R,b):pt.set(E,b,R)}Qe(T,-1e-10),Qe(C,0),z.copy(T),Qe(T,1);let bt=T.distanceTo(C),Lt=ae+K,At=bt*H+2*Lt,sr=K,Ur=At-Lt;for(let pt=0;pt<=H;pt++){Qe(B,pt),Me.subVectors(B,z).normalize(),z.copy(B),Ne.copy(B).setComponent(+e+1,0).normalize(),ye.crossVectors(Me,Ne).normalize();let Wt=pt===0,ar=pt===H,Do=Wt?3*Math.PI/2:ce,Bo=Wt?sr:Ur,Go=Wt?oe:de,no=Wt?0:xe-oe,io=Me.clone().multiplyScalar(Wt?-ae:ae).add(B),jo=Me.clone().multiplyScalar(Wt?-1:1).normalize();for(let Mr=0;Mr<oe;Mr++){let oo=Mr*se;if(O.addVectors(T.copy(Ne).multiplyScalar(f*Math.cos(oo)),C.copy(ye).multiplyScalar(f*Math.sin(oo))),$.copy(O).normalize(),Wt||ar){w||(ne=no+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=io.getComponent(Jt),pe[ne*3+Jt]=jo.getComponent(Jt)}),we[ne*2]=+ar,we[ne*2+1]=Mr/p),C.copy($).multiplyScalar(K),G.addVectors(B,C);for(let Jt=0;Jt<g;Jt++){let ni=Jt*ce+Do;he.addVectors(T.copy(Me).multiplyScalar(ae*Math.sin(ni)),C.copy($).multiplyScalar(ae*Math.cos(ni))),re.copy(he).normalize(),C.addVectors(G,he),he.normalize(),ne=Go+Jt*oe+Mr,[0,1,2].forEach(Ee=>{_e[ne*3+Ee]=C.getComponent(Ee),pe[ne*3+Ee]=re.getComponent(Ee)});let Eo=+Wt+Math.sin(ni);we[ne*2]=(Bo+ae*Eo)/At,we[ne*2+1]=Mr/p}}C.addVectors(B,O),ne=le+pt*oe+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=C.getComponent(Jt),pe[ne*3+Jt]=$.getComponent(Jt)}),we[ne*2]=(Lt+pt*bt)/At,we[ne*2+1]=Mr/p}}let Ht=_+2*g+Ce,kr=1,[Nn,Cn]=w?[kr,kr+_-1]:[0,Ht-1];for(let pt=Nn;pt<=Cn-1;pt++){let Wt=w&&pt===Cn-1;for(let ar=0;ar<oe-1;ar++)D=pt*oe+ar,W=D+1,A=(Wt?ar:D)+oe,q=(Wt?ar+1:W)+oe,pt===0?Ve.push(W,q,A):pt===Ht-2?Ve.push(D,W,A):Ve.push(D,W,A,W,q,A)}this.setIndex(Ve),this.setAttribute("position",new qh(_e,3)),this.setAttribute("normal",new qh(pe,3)),this.setAttribute("uv",new qh(we,2))}};import{IcosahedronBufferGeometry as G2}from"three";var K0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new iu(e*.5,s,l):new G2(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"IcosahedronGeometry"})})}},iu=class extends No{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],l=[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],c="IcosahedronGeometry";super(s,l,c,e,t,r);this.type=c}static fromJSON(e){return new iu(e.radius,e.corner,e.cornerSides)}};import{LatheBufferGeometry as j2,Shape as E2}from"three";var X0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l,c;((n=(r=i.parameters)==null?void 0:r.points)!=null?n:[]).forEach(f=>{Array.isArray(f)&&(f.x=f[0],f.y=f[1])});let t=Object.assign({},(s=e==null?void 0:e.parameters)!=null?s:{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}]},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs((c=t.depth)!=null?c:t.width)})}}static build(i){let{points:e,segments:t,verticalSegments:r}=i.parameters,n=new E2;n.moveTo(e[0].x,e[0].y),n.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let s=new j2(n.extractPoints(r).shape,t);return s.rotateZ(Math.PI),Object.assign(s,{userData:fe(U({},i),{type:"LatheGeometry"})})}};import{BufferGeometry as Y0,BufferGeometryLoader as H2,Vector3 as W2,BoxBufferGeometry as Q0}from"three";import{BufferGeometry as R2,Vector2 as $h,Vector3 as Z0}from"three";import{Geometry as z2,Face3 as F2}from"three/examples/jsm/deprecated/Geometry.js";var V2=["a","b","c"];function U2(i,e){switch(e){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Jh(i,e,t){let r=Math.min(i,e),n=Math.max(i,e),s=r+"_"+n;return t.get(s)}function Kh(i,e,t,r,n,s){let l=Math.min(i,e),c=Math.max(i,e),f=l+"_"+c,h;if(r.has(f))h=r.get(f);else{let p=t[l],y=t[c];h={a:p,b:y,newEdge:null,faces:[]},r.set(f,h)}h.faces.push(n),s[i].edges.push(h),s[e].edges.push(h)}function k2(i,e,t,r){let n,s,l;for(n=0,s=i.length;n<s;n++)t[n]={edges:[]};for(n=0,s=e.length;n<s;n++)l=e[n],Kh(l.a,l.b,i,r,l,t),Kh(l.b,l.c,i,r,l,t),Kh(l.c,l.a,i,r,l,t)}function ou(i,e,t,r,n){i.push(new F2(e,t,r,void 0,void 0,n))}function Is(i,e){return Math.abs(e-i)/2+Math.min(i,e)}function su(i,e,t,r){i.push([e.clone(),t.clone(),r.clone()])}var Xh=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof R2?e=new z2().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let t=this.subdivisions;for(;t-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new Z0,r,n,s,l,c,f=e.vertices,h=e.faces,p=e.faceVertexUvs[0],y=p!==void 0&&p.length>0,g=[],w=new Map;k2(f,h,g,w);let S=[],T,C,B,G,D,W,A;for(let ue of Array.from(w.keys())){for(C=w.get(ue),B=new Z0,D=3/8,W=1/8,A=C.faces.length,A!=2&&(D=.5,W=0,A!=1),B.addVectors(C.a,C.b).multiplyScalar(D),t.set(0,0,0),l=0;l<A;l++){for(G=C.faces[l],c=0;c<3&&(T=f[U2(G,V2[c])],!(T!==C.a&&T!==C.b));c++);T&&t.add(T)}t.multiplyScalar(W),B.add(t),C.newEdge=S.length,S.push(B)}let q,E,b,R,I,z,O,$=[];for(n=0,s=f.length;n<s;n++){for(z=f[n],I=g[n].edges,r=I.length,r==3?q=3/16:r>3&&(q=3/(8*r)),E=1-r*Number(q),b=q,r<=2&&(r==2?(E=3/4,b=1/8):r==1||r==0),O=z.clone().multiplyScalar(E),t.set(0,0,0),l=0;l<r;l++)R=I[l],T=R.a!==z?R.a:R.b,t.add(T);t.multiplyScalar(Number(b)),O.add(t),$.push(O)}let he=$.concat(S),re=$.length,Ne,ye,Me,Fe=[],k=[],H,_,J,ee,oe=new $h,se=new $h,ce=new $h;for(n=0,s=h.length;n<s;n++)G=h[n],Ne=Number(Jh(G.a,G.b,w).newEdge)+re,ye=Number(Jh(G.b,G.c,w).newEdge)+re,Me=Number(Jh(G.c,G.a,w).newEdge)+re,ou(Fe,Ne,ye,Me,G.materialIndex),ou(Fe,G.a,Ne,Me,G.materialIndex),ou(Fe,G.b,ye,Ne,G.materialIndex),ou(Fe,G.c,Me,ye,G.materialIndex),y&&(H=p[n],_=H[0],J=H[1],ee=H[2],oe.set(Is(_.x,J.x),Is(_.y,J.y)),se.set(Is(J.x,ee.x),Is(J.y,ee.y)),ce.set(Is(_.x,ee.x),Is(_.y,ee.y)),su(k,oe,se,ce),su(k,_,oe,ce),su(k,J,se,oe),su(k,ee,ce,se));e.vertices=he,e.faces=Fe,y&&(e.faceVertexUvs[0]=k)}};var er=new W2,au=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var s,l;let t=(l=(s=i.geometry)!=null?s:e==null?void 0:e.geometry)!=null?l:new Y0().copy(new Q0(100,100,100)),r;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(er),r={width:er.x,height:er.y,depth:er.z,subdivisions:0}):r=e.parameters;let n=U(U({},r),i.parameters);return{parameters:{width:Math.abs(n.width),height:Math.abs(n.height),depth:Math.abs(n.depth),subdivisions:Math.abs(n.subdivisions)},geometry:t}}static build(i){var f;let{width:e,height:t,depth:r,subdivisions:n}=i.parameters,s=(f=i.geometry)!=null?f:new Y0().copy(new Q0(100,100,100)),l=s.userData.parameters;l===void 0?(s.computeBoundingBox(),s.boundingBox.getSize(er)):er.set(l.width,l.height,l.depth),(e!==er.x||t!==er.y||r!==er.z)&&s.scale(er.x===0?1:e/er.x,er.y===0?1:t/er.y,er.z===0?1:r/er.z);let c=s.originalGeometry;return n>0?(c===void 0||(l==null?void 0:l.subdivisions)!==n)&&(c===void 0&&(c=s),s=new Xh(n).modify(c).toBufferGeometry()):(c!==void 0&&(s=c),c=void 0,s.getAttribute("normal")===void 0&&s.computeVertexNormals()),c!==void 0&&Object.assign(s,{originalGeometry:c}),delete i.geometry,Object.assign(s,{userData:fe(U({},i),{type:"NonParametricGeometry"})})}static loadFromUrl(i,e,t){new H2(t).load(i,n=>{let s=this.normalizeInputs({geometry:n});n.boundingBox.getSize(er);let l=100/er.x;Object.assign(s.parameters,{width:100,height:er.y*l,depth:er.z*l}),e(this.build(s))})}};var ev=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,spikes:r,cornerRadius:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,surfaceMaxCount:f}=i.parameters,h=i.shape,p=e*.5,y=t*.5,g=0,w=0,S=2*Math.PI/r;for(let C=0;C<r;C++){let B=S*C,G=g+Math.sin(B)*p,D=w+Math.cos(B)*y;h.addPoint(h.createPoint(G,D))}h.isClosed=!0;for(let C=0,B=h.points.length;C<B;C++)h.points[C].roundness=n;h.roundness=n,h.update();let T=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(T,{userData:fe(U({},i),{type:"PolygonGeometry"})})}};import{BufferGeometry as q2,Float32BufferAttribute as Zh,Vector2 as Zn,Vector3 as or}from"three";var tv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,heightSegments:s,openEnded:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=new rv(e*.5,t,n,s,l,c,f);return h.scale(1,1,r/e),Object.assign(h,{userData:fe(U({},i),{type:"PyramidGeometry"})})}};function _a(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function Yh(i,e,t,r,n,s){let l=e.clone().sub(i),c=t.clone().sub(i),f=l.angleTo(c);if(l.normalize(),c.normalize(),r===n){let h=l.add(c).normalize();s.copy(i).addScaledVector(h,r/Math.sin(f/2))}else{let h=l.angleTo(c);s.copy(i),s.addScaledVector(l,n/Math.sin(h)),s.addScaledVector(c,r/Math.sin(h))}}function $2(i,e,t){let r=i.clone().sub(e),n=t.clone().sub(e);return r.projectOnVector(n),r.add(e)}var rv=class extends q2{constructor(e=.5,t=1,r=4,n=1,s=!1,l=0,c=4){super();r=Math.floor(Math.max(3,r)),n=Math.floor(n),c=Math.floor(c);let f=[],h=[],p=[],y=[],g=0,w=t/2,S=Math.PI/r,T=e*Math.cos(Math.PI/r),C=2*Math.PI/r,B=(r-2)*Math.PI/r,G=Math.PI-B,D=new or(0,-w,0),W=new or(0,w,0),A=new Zn(e,-w),q=new Zn(T,-w),E=new Zn(0,W.y).sub(q),b=new Zn(0,W.y).sub(A),R=new Zn(E.y,-E.x).normalize(),I=new Zn(b.y,-b.x).normalize(),O=e*Math.cos(Math.PI/r)*Math.tan((Math.PI-E.angle())/2)-1e-8;l=Math.min(l,O);let $;{let k=new or(R.x,R.y,0),H=new or(Math.cos(C)*k.x,k.y,Math.sin(C)*k.x);$=k.angleTo(H)}let he=l/Math.tan((Math.PI-E.angle())/2),re=l/Math.tan((Math.PI-$)/2),Ne=new or;if(!s){h.push(D.x,D.y,D.z),p.push(0,-1,0),y.push(0,0);let k=g++,H=[],_=A.clone(),J=he/Math.cos(Math.PI/r);_.x-=J;for(let ee=0;ee<r;ee++){let oe=ee/r*Math.PI*2+S,se=new Zn(Math.sin(oe),Math.cos(oe));_a(_,se,Ne),h.push(Ne.x,Ne.y,Ne.z),p.push(0,-1,0),y.push(0,0),H.push(g++)}for(let ee=0;ee<H.length;ee++)f.push(H[ee],k,H[(ee+1)%H.length])}let ye=[];{let k=new or,H=new or,_=new or,J=new or,ee=new or,oe=new or;for(let se=0;se<r;se++){let ce=se/r*Math.PI*2+S,ue=(se+.5)/r*Math.PI*2+S,K=(se+1)/r*Math.PI*2+S,ae=new Zn(Math.sin(ce),Math.cos(ce)),ne=new Zn(Math.sin(ue),Math.cos(ue)),Ce=new Zn(Math.sin(K),Math.cos(K));_a(A,ae,H),_a(A,Ce,_),_a(R,ne,k),Yh(W,H,_,re,re,J),h.push(J.x,J.y,J.z),Yh(H,W,_,re,he,ee),h.push(ee.x,ee.y,ee.z),Yh(_,H,W,he,re,oe),h.push(oe.x,oe.y,oe.z),p.push(k.x,k.y,k.z),p.push(k.x,k.y,k.z),p.push(k.x,k.y,k.z),y.push(0,0),y.push(0,0),y.push(0,0);let Y=g++,le=g++,de=g++;if(f.push(Y,le,de),l>0){{let pe=H.clone().add(_).multiplyScalar(.5),we=W.clone().sub(pe).normalize(),Ge=D.clone().sub(pe).normalize().add(we).normalize().multiplyScalar(-1),Qe=oe.clone().sub(ee);Me(pe,Qe,Ge,E.angle())}let xe,_e;{let pe=new or;_a(I,Ce,pe);let we=oe.clone().add(J).multiplyScalar(.5);we=$2(we,_,W);let Ve=oe.clone().sub(J);[xe,_e]=Me(we,Ve,pe,$,J.y)}{let pe=xe,we=pe.clone().setY(0).normalize(),Ve=new or(0,-1,0),Ge=we.clone().cross(Ve);Fe(pe,we,Ve,Ge)}ye.concat(_e);{let pe=E.angle(),we=Math.PI-pe,Ve=W.clone();Ve.y-=l/Math.sin(pe-Math.PI/2);let Ge=new or,Qe=[];for(let Lt=0;Lt<c;Lt++){let At=[],sr=Math.PI/2-we*Lt/c,Ur=Math.cos(sr),Ht=Math.sin(sr),kr=ue;for(let Nn=0;Nn<=Lt;Nn++){let Cn=Math.cos(kr),pt=Math.sin(kr);k.x=Ur*pt,k.y=Ht,k.z=Ur*Cn,Ge.copy(Ve).addScaledVector(k,l),h.push(Ge.x,Ge.y,Ge.z),p.push(k.x,k.y,k.z),y.push(0,0),At.push(g++),kr+=Math.PI*2/Lt/r}Qe.push(At)}_e.reverse(),Qe.push(_e);let bt=Qe.length-1;for(let Lt=0;Lt<bt;Lt++){let At=Qe[Lt],sr=Qe[Lt+1],Ur=At.length-1;f.push(sr[1],At[0],sr[0]);for(let Ht=1;Ht<=Ur;Ht++)f.push(At[Ht],At[Ht-1],sr[Ht]),f.push(sr[Ht+1],At[Ht],sr[Ht])}}}}}this.setIndex(f),this.setAttribute("position",new Zh(h,3)),this.setAttribute("normal",new Zh(p,3)),this.setAttribute("uv",new Zh(y,2));function Me(k,H,_,J,ee){let oe=-J/2,se=(Math.PI-J)/2,ce=H.clone().normalize().cross(_);k.addScaledVector(_,-l/Math.sin(se));let ue=new or,K=new or,ae=1,ne=g,Ce=[];for(let Y=0;Y<=c;Y++){let le=oe+Y/c*J;K.set(0,0,0),K.addScaledVector(ce,Math.sin(le)),K.addScaledVector(_,Math.cos(le));for(let de=0;de<=ae;de++){let xe=de/ae-.5;if(ue.copy(k),ue.addScaledVector(H,xe),ue.addScaledVector(K,l),ee!=null){let _e=Math.max(0,ue.y-ee);ue.addScaledVector(H,-_e/H.y)}h.push(ue.x,ue.y,ue.z),p.push(K.x,K.y,K.z),y.push(0,0),de===0&&Ce.push(g),g++}}for(let Y=0;Y<c;Y++)for(let le=0;le<ae;le++){let de=ne+le+(ae+1)*Y,xe=de+(ae+1),_e=xe+1,pe=de+1;f.push(de,xe,pe),f.push(xe,_e,pe)}return[k.clone().addScaledVector(H,.5),Ce]}function Fe(k,H,_,J){let ee=Math.PI/2,oe=b.angle()-ee,se=[],ce=new or,ue=new or;for(let ae=0;ae<=c;ae++){let ne=[],Ce=ae/c;for(let Y=0;Y<=ae;Y++){let de=((ae?Y/ae:0)-.5)*G,xe=Math.cos(de),_e=Math.sin(de),pe=Math.atan(Math.tan(oe)*xe),we=(ee+pe)*Ce,Ve=Math.cos(we),Ge=Math.sin(we);ce.set(0,0,0),ce.addScaledVector(H,Ge*xe),ce.addScaledVector(_,Ve),ce.addScaledVector(J,Ge*_e),ue.copy(k).addScaledVector(ce,l),h.push(ue.x,ue.y,ue.z),p.push(ce.x,ce.y,ce.z),y.push(0,0),ne.push(g++)}se.push(ne)}let K=se.length-1;for(let ae=0;ae<K;ae++){let ne=se[ae],Ce=se[ae+1],Y=ne.length-1;f.push(ne[0],Ce[1],Ce[0]);for(let le=1;le<=Y;le++)f.push(ne[le-1],ne[le],Ce[le]),f.push(ne[le],Ce[le+1],Ce[le])}}}};var lu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,p;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign((c=e==null?void 0:e.ui)!=null?c:{enabledIndieCorners:!1},i.ui),n=t.cornerRadius.reduce((y,g)=>y+g,0);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((f=t.surfaceMaxCount)!=null?f:n>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(p=t.depth)!=null?p:0)}),ui:r}}static build(i){let e=i.shape,{width:t,height:r,cornerRadius:n,cornerType:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,p={x:t*.5,y:r*.5},y={x:-p.x,y:-p.y},g={x:p.x,y:p.y};function w(A,q,E){return q>t&&E>r?Math.min(A*t/q,A*r/E):q>t?A*t/q:E>r?A*r/E:A}let S=[];S[0]=n[0]===0?0:w(n[0],n[0]+n[3],n[0]+n[1]),S[1]=n[1]===0?0:w(n[1],n[1]+n[2],n[1]+n[0]),S[2]=n[2]===0?0:w(n[2],n[2]+n[1],n[2]+n[3]),S[3]=n[3]===0?0:w(n[3],n[3]+n[0],n[3]+n[2]);let T=y.x,C=g.x,B=g.y,G=y.y;e.addPoint(e.createPoint(T,B)),e.addPoint(e.createPoint(C,B)),e.addPoint(e.createPoint(C,G)),e.addPoint(e.createPoint(T,G)),e.isClosed=!0;let D=!0;for(let A=0,q=e.points.length;A<q;A++)e.points[A].roundness=S[A],A>0&&S[A]!==S[A-1]&&(D=!1);D&&(e.roundness=S[0]),e.useCubicForRoundedCorners=s!==1,e.update();let W=ur.create({shape:e,parameters:{surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(W,{userData:fe(U({},i),{type:"RectangleGeometry"})})}};import{SphereBufferGeometry as J2}from"three";var nv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e=100,height:t=e,depth:r=e,widthSegments:n=64,heightSegments:s=64,phiStart:l,phiLength:c,thetaStart:f,thetaLength:h}=i.parameters,p=new J2(.5*e,n,s,l,c,f,h);return p.scale(1,t/e,r/e),Object.assign(p,{userData:fe(U({},i),{type:"SphereGeometry"})})}};import{PlaneBufferGeometry as K2}from"three";var iv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:0})}}static build(i){let{width:e=100,height:t=e,widthSegments:r=8,heightSegments:n=8}=i.parameters,s=new K2(e,t,r,n);return s.scale(1,1,1),Object.assign(s,{userData:fe(U({},i),{type:"PlaneGeometry"})})}};var ov=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,innerRadiusPercent:r,spikes:n,cornerRadius:s,angle:l,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h,surfaceMaxCount:p}=i.parameters,y=i.shape,g=e*.5,w=t*.5,S=0,T=0,C=l*Math.PI/360/n,B=Math.PI/2*3*-1,G=g*r/100,D=w*r/100;if(n==3&&r==50){C=2*Math.PI/n;for(let A=0;A<n;A++){let q=C*A,E=S+Math.sin(q)*g,b=T+Math.cos(q)*w;y.addPoint(y.createPoint(E,b))}}else for(let A=0;A<n;A++){let q=S+Math.cos(B)*g,E=T+Math.sin(B)*w;y.addPoint(y.createPoint(q,E)),B+=C,q=S+Math.cos(B)*G,E=T+Math.sin(B)*D,A<=n,y.addPoint(y.createPoint(q,E)),B+=C}y.isClosed=!0;for(let A=0,q=y.points.length;A<q;A++)y.points[A].roundness=s;y.roundness=s,y.update();let W=ur.create({shape:y,parameters:{surfaceMaxCount:p,roundness:s,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h}});return Object.assign(W,{userData:fe(U({},i),{type:"StarGeometry"})})}};import{PlaneBufferGeometry as X2}from"three";var cu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:0)})}}static build(i){let{width:e,height:t}=i.parameters,r=new X2(e,t);return Object.assign(r,{userData:fe(U({},i),{type:"TextFrameGeometry"})})}};var sv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(t.width),n=Math.abs((c=t.height)!=null?c:t.width),s=Math.abs((f=t.depth)!=null?f:t.width*.25);return{parameters:Object.assign(t,{width:r,height:n,depth:s})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,tubularSegments:s,arc:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=Z2(e,t,r,e*.5,l,s,0,0,n,c,f);return h.scale(1,t/e,1),Object.assign(h,{userData:fe(U({},i),{type:"TorusGeometry"})})}};function Z2(i,e,t,r,n,s,l,c,f,h,p){return[e,t]=[t,e],l=e/2,n/=2*Math.PI,n==1&&(h=0),new nu(!0,i,e,t,r,n,s,l,c,f,h,p)}import{TorusKnotBufferGeometry as Y2}from"three";var av=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width),tube:(l=t.tube)!=null?l:t.width*.125})}}static build(i){let{width:e,tube:t,tubularSegments:r,radialSegments:n,p:s,q:l}=i.parameters,c=e*.5;c!==t&&(c-=t);let f=new Y2(c,t,r,n,s,l);return Object.assign(f,{userData:fe(U({},i),{type:"TorusKnotGeometry"})})}};var lv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e=100,height:t,cornerRadius:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l,isRect:c,surfaceMaxCount:f}=i.parameters,h=i.shape,p=e*.5,y=t*.5;c?(h.addPoint(h.createPoint(-p,y)),h.addPoint(h.createPoint(p,-y)),h.addPoint(h.createPoint(-p,-y))):(h.addPoint(h.createPoint(0,y)),h.addPoint(h.createPoint(p,-y)),h.addPoint(h.createPoint(-p,-y))),h.isClosed=!0;for(let w=0,S=h.points.length;w<S;w++)h.points[w].roundness=r;h.roundness=r,h.update();let g=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(g,{userData:fe(U({},i),{type:"TriangleGeometry"})})}};var Ta={};tT(Ta,{addBarycentricAttribute:()=>nD,fixUvs:()=>oD,loadFromUrl:()=>iD,resizeGeometry:()=>rD,roundShapePolygon:()=>tD});import{BufferGeometryLoader as Q2,Float32BufferAttribute as eD,Vector3 as Qh}from"three";var cv=function(i,e){let t=e.x-i.x,r=e.y-i.y,n=Math.sqrt(t*t+r*r),s=t/n,l=r/n,c=Math.atan2(l,s);return{x:t,y:r,len:n,nx:s,ny:l,ang:c}},tD=(i,e,t)=>{let r,n,s,l,c,f,h,p,y,g,w,S,T,C,B=e.length;for(l=e[B-2],i.curves=[],r=1;r<B-1;r++){c=e[r%B],f=e[(r+1)%B];let G=cv(c,l),D=cv(c,f);h=G.nx*D.ny-G.ny*D.nx,p=G.nx*D.nx-G.ny*-D.ny,w=Math.asin(h),y=1,g=!1,p<0?w<0?w=Math.PI+w:(w=Math.PI-w,y=-1,g=!0):w>0&&(y=-1,g=!0),S=w/2,C=Math.abs(Math.cos(S)*t/Math.sin(S)),C>Math.min(G.len/2,D.len/2)?(C=Math.min(G.len/2,D.len/2),T=Math.abs(C*Math.sin(S)/Math.cos(S))):T=t,n=c.x+D.nx*C,s=c.y+D.ny*C,n+=-D.ny*T*y,s+=D.nx*T*y,i.absarc(n,s,T,G.ang+Math.PI/2*y,D.ang-Math.PI/2*y,g),l=c,c=f}i.closePath()},rD=(i,{width:e,height:t,depth:r})=>{e=Math.abs(e),t=Math.abs(t),r=Math.abs(r);let n=i.userData.parameters,s,l,c;e===0?(e=n.width,s=1):s=e/n.width,t===0?(t=n.height,l=1):l=t/n.height,r===0?(r=n.depth,c=1):c=r/n.depth,i.scale(s,l,c),n.width=e,n.height=t,n.depth=r},nD=(i,e)=>{let t=[new Qh(1,0,0),new Qh(0,1,0),new Qh(0,0,1)],r=i.attributes.position,n=new Float32Array(r.count*3);for(let s=0,l=r.count;s<l;s++)t[s%3].toArray(n,s*3);i.setAttribute(e,new eD(n,3))},iD=i=>new Promise(e=>{new Q2().load(i,r=>e(r))}),oD=(i,e,t)=>{let r=i.getAttribute("uv");if(r)for(let n=0;n<r.count;n++){let s=r.getX(n),l=r.getY(n);r.setXY(n,(s+e/2)/e,1-(l-t/2)/t*-1)}};import{BufferGeometry as uv,BufferAttribute as fv,Uint32BufferAttribute as ed,Float32BufferAttribute as td,Matrix4 as aD}from"three";import{mergeVertices as lD}from"three/examples/jsm/utils/BufferGeometryUtils.js";var sD,uu=new Promise(i=>{sD=i});var Oe;uu.then(i=>{Oe=i});var hv=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),dv=new Uint32Array([0,1,2,3]),pv=new Uint8Array([4]),en=class{static build(i,e,t,r,n){let s,l,c;if(i===void 0)s=en.allocate(n,t),Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r);else if(i.positionWASM!==void 0){e&&e!==0&&(Oe.free_bvh(e),Oe.free_subdivision_surface(e));try{s=en.allocate(n,void 0,i)}catch(f){console.error(f,i),s=en.allocate(n,void 0,{positionWASM:hv,indexWASM:dv,verticesPerFaceWASM:pv})}Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r)}else s=e;if(i!==void 0&&i.subdivisions!==void 0){let f=cD(i.subdivisions,i.positionWASM.length);Oe.set_destination_refinement_level(s,f),f>0?c=en.buildLevel(s,!1,r):c=null}return{subdivPointer:s,originalGeometry:l,subdividedGeometry:c}}static allocate(i,e,t){var A;let r,n,s,l=[],c=[];if(t)t.positionWASM&&t.positionWASM.length>0?(r=t.positionWASM,n=t.indexWASM,s=t.verticesPerFaceWASM):(r=hv,n=dv,s=pv);else{e.deleteAttribute("normal"),e.deleteAttribute("uv");let q=lD(e);r=q.attributes.position.array;let E=q.getIndex().array,b=E.length;switch(e.userData.type==="TorusGeometry"&&(e==null?void 0:e.userData.parameters.arc)===Math.PI*2&&(e.userData.type="ClosedTorusGeometry"),e.userData.type){case"ClosedTorusGeometry":case"PlaneGeometry":case"TorusKnotGeometry":case"CubeGeometry":n=new Uint32Array(b/3*2),s=new Uint8Array(b/6).fill(4);for(let re=0,Ne=0;re<b;re+=6)n[Ne++]=E[re],n[Ne++]=E[re+1],n[Ne++]=E[re+4],n[Ne++]=E[re+5];break;case"TorusGeometry":case"SphereGeometry":case"HelixGeometry":case"CylinderGeometry":case"ConeGeometry":let R,I,z;if(e.userData.type==="SphereGeometry")I=e.parameters.heightSegments,R=e.parameters.widthSegments,e.parameters.thetaLength!==Math.PI&&(z=!0);else if(e.userData.type==="CylinderGeometry")I=e.parameters.heightSegments+2,R=e.parameters.radialSegments;else if(e.userData.type==="ConeGeometry")I=e.parameters.heightSegments+1,R=e.parameters.radialSegments;else if(e.userData.type==="TorusGeometry"){let re=e.userData.parameters;I=Math.ceil(re.tubularSegments*re.arc/(2*Math.PI))+2,R=re.radialSegments}else{let{pathSegments:re,segments:Ne,revolutions:ye}=e.userData.parameters;I=Math.ceil(Ne*ye)+2,R=re}z?(n=new Uint32Array(1*R*3+(I-1)*R*4),s=new Uint8Array(1*R+(I-1)*R)):(n=new Uint32Array(2*R*3+(I-2)*R*4),s=new Uint8Array(2*R+(I-2)*R));let O=0,$=0,he=0;if(e.userData.type==="SphereGeometry"||e.userData.type==="HelixGeometry"||e.userData.type==="TorusGeometry"){for(;$<3*R;)n[$++]=E[O++],n[$++]=E[O++],n[$++]=E[O++],s[he++]=3;let re=z?n.length:3*R+4*(I-2)*R;for(;$<re;O+=6)n[$++]=E[O],n[$++]=E[O+1],n[$++]=E[O+4],n[$++]=E[O+5],s[he++]=4}else for(;$<4*(I-2)*R;O+=6)n[$++]=E[O],n[$++]=E[O+1],n[$++]=E[O+4],n[$++]=E[O+5],s[he++]=4;for(;$<n.length;)n[$++]=E[O++],n[$++]=E[O++],n[$++]=E[O++],s[he++]=3;break;default:n=E,s=new Uint8Array(b/3).fill(3);break}}let f=r.length,h=n.length,p=s.length,y=r.length+l.length+c.length,g=n.length+s.length,w=y*Float32Array.BYTES_PER_ELEMENT+g*Uint32Array.BYTES_PER_ELEMENT,S=y*Float32Array.BYTES_PER_ELEMENT,T=g*Uint32Array.BYTES_PER_ELEMENT,C=Oe._malloc(w),B=new Float32Array(Oe.HEAPF32.buffer,C,y),G=new Uint32Array(Oe.HEAPU32.buffer,C+S,g);B.set(r,0),B.set(l,r.length),B.set(c,r.length+l.length),G.set(n,0),G.set(s,n.length);let D;((A=t==null?void 0:t.scaleBaked)==null?void 0:A.some(q=>q!==1))&&(D=new aD().makeScale(...t.scaleBaked)),i&&(D?D.premultiply(i):D=i);let W=D?Oe.alloc_subdivision_surface2(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,p,D.elements):Oe.alloc_subdivision_surface(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,p);return Oe._free(C),W}static buildLevel(i,e,t,r,n){let s=n?Oe.get_mesh_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e,n.elements):Oe.get_mesh_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e),l=8,c=Oe.HEAPU32.subarray(s>>2,(s>>2)+l),f=c.subarray(4,4+4),h=0,p=Oe.HEAPU32[c[h]>>2],y=Oe.HEAPF32.subarray(p>>2,(p>>2)+f[h]);h++;let g=Oe.HEAPU32[c[h]>>2],w=Oe.HEAPF32.subarray(g>>2,(g>>2)+f[h]);h++;let S=Oe.HEAPU32[c[h]>>2],T=Oe.HEAPU32.subarray(S>>2,(S>>2)+f[h]);h++;let C=Oe.HEAPU32[c[h]>>2],B=Oe.HEAPU32.subarray(C>>2,(C>>2)+f[h]);if(h++,r===void 0){let G=new uv;if(G.setIndex(new ed(B,1)),G.setAttribute("position",new td(y,3)),G.setAttribute("normal",new td(w,3)),e){G.setAttribute("faceMap",new ed(T,1));let D=new Float32Array(w.length/3*4).fill(0);G.setAttribute("color",new fv(D,4))}return Oe.free_mesh_data(s),G.userData.type="SubdivGeometry",G}r.getAttribute("position").copyArray(y),r.getAttribute("normal").copyArray(w),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,Oe.free_mesh_data(s)}static buildControlCageWireframe(i,e,t){let r=Oe.get_wireframe_data_for_base_level(i),n=4,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(2,2+2),c=0,f=Oe.HEAPU32[s[c]>>2],h=Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]);c++;let p=Oe.HEAPU32[s[c]>>2],y=Oe.HEAPU32.subarray(p>>2,(p>>2)+l[c]);if(e===void 0){let g=new uv;g.setAttribute("position",new td(h,3));let w=new Float32Array(h.length);for(let S=0,T=h.length;S<T;)w[S++]=t.r,w[S++]=t.g,w[S++]=t.b;return g.setAttribute("color",new fv(w,3)),g.setIndex(new ed(y,1)),Oe.free_wireframe_data_for_base_level(r),g}e.getAttribute("position").copyArray(h),e.attributes.position.needsUpdate=!0,Oe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,e,t){e||Oe.set_destination_refinement_level(i,1);let r=t?Oe.get_topological_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t.elements):Oe.get_topological_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED),n=6,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(3,3+3),c=0,f=Oe.HEAPU32[s[c]>>2],h=new Float32Array(Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]));c++;let p=Oe.HEAPU32[s[c]>>2],y=new Uint32Array(Oe.HEAPU32.subarray(p>>2,(p>>2)+l[c]));c++;let g=Oe.HEAPU32[s[c]>>2],w=new Uint8Array(Oe.HEAPU32.subarray(g>>2,(g>>2)+l[c]));return Oe.free_topological_data(r),{positions:h,indices:y,verticesPerFace:w}}};function cD(i,e){let t=i;return t=Math.min(t,3-Math.ceil(Math.log(e/172e3)/Math.log(4))),Math.max(t,0)}var rd={ConeGeometry:g0,CubeGeometry:y0,CylinderGeometry:p0,DodecahedronGeometry:v0,EllipseGeometry:U0,HelixGeometry:J0,IcosahedronGeometry:K0,LatheGeometry:X0,NonParametricGeometry:au,PolygonGeometry:ev,PyramidGeometry:tv,RectangleGeometry:lu,SphereGeometry:nv,PlaneGeometry:iv,StarGeometry:ov,TextFrameGeometry:cu,TorusGeometry:sv,TorusKnotGeometry:av,TriangleGeometry:lv,VectorGeometry:ur},Ia=i=>rd[i.type].create(i);import{Matrix4 as ad}from"three";import{Box3 as xv,Line3 as gn,Matrix4 as nd,Vector3 as Ct}from"three";import{HemisphereLight as mv}from"three";import{Color as uD}from"three";var tn=class extends uD{constructor(e,t,r,n){super(e,t,r);this.isColorA=!0;this.a=n}setRGBA(e,t,r,n){super.setRGB(e,t,r),this.a=n}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}};function kt(i,e){let t;if(typeof i=="string"){let r=e==null?void 0:e.getColor(i);r?t=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),t=new tn(0,0,0,0))}else return"a"in i?new tn(i.r,i.g,i.b,i.a):new tn(i.r,i.g,i.b,1);return t}var fu=i=>"isEntity"in i,Ms=i=>"isAbstractMesh"in i;var Si=i=>"objectHelper"in i;function fD(i,e){var r;let t=!1;e.position&&(i.position.fromArray(e.position),t=!0),e.rotation&&(i.rotation.fromArray(e.rotation),t=!0),e.scale&&(t=!0,i.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(t=!0,i.hiddenMatrix.fromArray((r=e.hiddenMatrix)!=null?r:Ui.identity)),t&&i.updateMatrix(),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=e.isUpVectorFlipped),i.updateUp())}function hD(i,e){fD(i,e),e.name!==void 0&&(i.name=e.name),e.visible!==void 0&&(i.isEntity?i.visibility=e.visible:i.visible=e.visible)}function gv(i,e,t){hD(i,e),e.color!==void 0&&(i.color=kt(e.color,t)),e.intensity!==void 0&&(i.intensity=e.intensity),e.shadows!==void 0&&!(i instanceof mv)&&(i.castShadow=e.shadows),i.shadow&&!(i instanceof mv)&&e.depth!==void 0&&(i.shadow.camera.far=e.depth,i.shadow.needsUpdate=!0),e.helper!==void 0&&Si(i)&&(i.enableHelper=e.helper,i.gizmos.shadowmap.visible=e.helper)}function yv(i,e){i.shadow.camera.right=e/2,i.shadow.camera.left=-e/2,i.shadow.camera.top=e/2,i.shadow.camera.bottom=-e/2,i.shadow.needsUpdate=!0}var As=new xv,fr=new Ct,Ie=new Ct,$t=new nd;function dD(i,e,t=0,r=e.count){let n=1/0,s=1/0,l=1/0,c=-1/0,f=-1/0,h=-1/0;for(let p=t;p<r;p++){let y=e.getX(p),g=e.getY(p),w=e.getZ(p);y<n&&(n=y),g<s&&(s=g),w<l&&(l=w),y>c&&(c=y),g>f&&(f=g),w>h&&(h=w)}return i.min.set(n,s,l),i.max.set(c,f,h),i}var vv=(i,e,t,r)=>{var n;if(Ms(i)){let s=i.geometry.userData.parameters,l=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?fr.copy(i.originalGeometry.boundingSphere.center):(dD(As,l,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:l.count),As.getCenter(fr)),i.forceComputeSize?As.getSize(Ie).multiplyScalar(.5):Ie.set(s.width,s.height,(n=s.depth)!=null?n:0).multiplyScalar(.5)}else if(Si(i)&&r===!0){let s=i.geometryHelper.getAttribute("position");As.setFromArray(s.array),As.getCenter(fr),As.getSize(Ie).multiplyScalar(.5)}else fr.setScalar(0),Ie.setScalar(0);$t.copy(e).multiply(i.matrixWorld),Ie.x===0&&Ie.y===0&&Ie.z===0?t.push(new Ct(fr.x,fr.y,fr.z).applyMatrix4($t)):t.push(new Ct(-Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t))},hu=class extends xv{constructor(){super(...arguments);this.matrix=new nd;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 r=new nd().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,r,t)}expandByObjectSize(e,t,r=!1){let n=[];return r===!0?e.traverseEntity(s=>vv(s,t,n,e.enableHelper===!0)):vv(e,t,n,e.enableHelper===!0),this.setFromPoints(n)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4($t.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Ie).multiplyScalar(.5),this.getCenter(fr),$t.copy(this.matrix).setPosition(fr),this.vertices=[new Ct(-Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).applyMatrix4($t)]}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=[new gn(this.vertices[0],this.vertices[3]),new gn(this.vertices[1],this.vertices[2]),new gn(this.vertices[5],this.vertices[6]),new gn(this.vertices[4],this.vertices[7]),new gn(this.vertices[0],this.vertices[1]),new gn(this.vertices[3],this.vertices[2]),new gn(this.vertices[7],this.vertices[6]),new gn(this.vertices[4],this.vertices[5]),new gn(this.vertices[0],this.vertices[4]),new gn(this.vertices[1],this.vertices[5]),new gn(this.vertices[2],this.vertices[6]),new gn(this.vertices[3],this.vertices[7])],this.centerEdges=this.edges.map(e=>e.getCenter(new Ct))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=[new Ct().copy(this.vertices[0]).sub(this.vertices[2]).multiplyScalar(.5).add(this.vertices[2]),new Ct().copy(this.vertices[7]).sub(this.vertices[5]).multiplyScalar(.5).add(this.vertices[5]),new Ct().copy(this.vertices[4]).sub(this.vertices[1]).multiplyScalar(.5).add(this.vertices[1]),new Ct().copy(this.vertices[3]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6]),new Ct().copy(this.vertices[4]).sub(this.vertices[3]).multiplyScalar(.5).add(this.vertices[3]),new Ct().copy(this.vertices[1]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6])]}};import{Object3D as _D,Matrix4 as TD,Light as ID}from"three";import{Group as ND,Mesh as Lv,MeshStandardMaterial as _v}from"three";import{BufferGeometry as pD,Float32BufferAttribute as id}from"three";function bv(i){var l;let e=[],t=i.groups,r=i.getAttribute("position").array,n=i.getAttribute("normal").array,s=(l=i.getAttribute("uv"))==null?void 0:l.array;return t.forEach(c=>{let f=c.count,h=new pD,p=new Float32Array(f*3),y=new Float32Array(f*3),g=new Float32Array(f*2);for(let w=0;w<f;w++){let S=3*(c.start+w),T=3*w;if(p[T]=r[S],p[T+1]=r[S+1],p[T+2]=r[S+2],y[T]=n[S],y[T+1]=n[S+1],y[T+2]=n[S+2],s){let C=2*(c.start+w),B=2*w;g[B]=s[C],g[B+1]=s[C+1]}}h.setAttribute("position",new id(p,3)),h.setAttribute("normal",new id(y,3)),s&&h.setAttribute("uv",new id(g,2)),e.push(h)}),e}import{GLTFExporter as CD}from"three/examples/jsm/exporters/GLTFExporter.js";var mD,Sv=new Promise(i=>{mD=i});var Tv=rh(Cv());var pu={isPublish:!1,gltfQueue:[]};function sd(i,e,t){return i[e.uuid]===void 0&&(i[e.uuid]=e.toJSON(t)),e.uuid}var LD=new CD;function Iv(i,e,t){if(i[e.uuid]===void 0)if(e.userData.type==="NonParametricGeometry"||e.userData.type==="SubdivGeometry"){if(e.userData.type==="SubdivGeometry")if(pu.isPublish)e=au.create({geometry:e.clone()}),e.userData.parameters.subdivisions===0&&(delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.positionWASM,delete e.attributes.indexWASM,delete e.attributes.verticesPerFaceWASM);else{let n=e.originalGeometry;if(n){let s=e.userData;e=n.clone(),e.userData=s}else e=e.clone();delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.position,delete e.attributes.normal,e.index=null}let r=e.originalGeometry;if(r!==void 0){let n=e.userData;e=r,e.userData=n}if(!pu.isPublish)i[e.uuid]=e.toJSON();else{let n={type:"NonParametricGeometry",uuid:e.uuid,userData:{}};e.name!==""&&(n.name=e.name),Object.keys(e.userData).length>0&&(n.userData=U({},e.userData));let s=e.index===null,l=new ND;if(Array.isArray(t))bv(e).forEach((f,h)=>{let p=new Lv(f,new _v);l.add(p),f.userData.groupIndex=h,f.userData.materialIndex=e.groups[h].materialIndex,f.index===null&&(s=!0)});else{let c=new Lv(e,new _v);l.add(c)}pu.gltfQueue.push(new Promise(async c=>{await Promise.all(pu.gltfQueue),LD.parse(l,async f=>{let{gltfTransform:h,DracoMeshCompressionExtension:p,addIndex:y}=await Sv,g=h.readJSON({json:xo(f),resources:{}});g.createExtension(p).setRequired(!0).setEncoderOptions({quantizationVolume:"scene"}),s&&await g.transform(y);try{let{json:w,resources:S}=h.writeJSON(g),T=Tv.default.fromByteArray(new Uint8Array(S[".bin"]));w.buffers[0].uri=`data:application/octet-stream;base64,${T}`,c()}catch(w){c()}},{})})),i[e.uuid]=n}}else{let r=e.userData;if(r.type==="VectorGeometry"){let n=e.userData.shape;r=Object.assign({},r,{shape:n.toJSON()})}i[e.uuid]={uuid:e.uuid,userData:r}}return e.uuid}function Os(i){let e=[];for(let t in i){let r=i[t];delete r.metadata,e.push(r)}return e}function Mv(i){let e=[];for(let t in i)e.push(i[t]);return e}var mu=i=>class extends i{hasEntityChild(){return this.children.some(t=>fu(t))}isDescendantOf(t){t instanceof _D&&(t=t.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===t)return!0;r=r.parent}return!1}attach(t,r){this.updateWorldMatrix(!0,!1);let n=new TD().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),n.multiply(t.parent.matrixWorld)),fu(t)?t.hiddenMatrix.premultiply(n):t.applyMatrix4(n),t.updateWorldMatrix(!1,!1),this.add(t),r!==void 0&&(this.children.pop(),this.children.splice(r,0,t)),this}copy(t,r=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),r===!0)for(let n=0;n<t.children.length;n++){let s=t.children[n];this.add(s.clone())}return this}toJSON(t){let r=t===void 0,n={object:{uuid:"",objectType:""}};t===void 0&&(t={geometries:{},materials:{},textures:{},images:{},interactionStates:{},nodes:{}},n.metadata={version:1.5,type:"Object",generator:"Object3D.toJSON"});let s={uuid:this.uuid,objectType:this.type};if(this.name!==""&&(s.name=this.name),s.matrix=this.matrix.toArray(),this.castShadow===!0&&(s.castShadow=!0),this.receiveShadow===!0&&(s.receiveShadow=!0),this.visible===!1&&(s.visible=!1),this.frustumCulled===!1&&(s.frustumCulled=!1),this.renderOrder!==0&&(s.renderOrder=this.renderOrder),s.layers=this.layers.mask,JSON.stringify(this.userData)!=="{}"&&(s.userData=this.userData),this.children.length>0){s.children=[];for(let l of this.children)(fu(l)||l instanceof ID)&&s.children.push(l.toJSON(t).object)}if(r){let l=Os(t.geometries),c=Os(t.materials),f=Os(t.textures),h=Os(t.images),p=Os(t.interactionStates),y=Mv(t.nodes);l.length>0&&(n.geometries=l),c.length>0&&(n.materials=c),f.length>0&&(n.textures=f),h.length>0&&(n.images=h),p.length>0&&(n.interactionStates=p),y.length>0&&(n.nodes=y)}return n.object=s,n}fromJSON(t){return this.uuid=t.uuid,t.name!==void 0&&(this.name=t.name),t.matrix!==void 0?(this.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(this.matrixAutoUpdate=t.matrixAutoUpdate),this.matrixAutoUpdate&&this.matrix.decompose(this.position,this.quaternion,this.scale)):(t.position!==void 0&&this.position.fromArray(t.position),t.rotation!==void 0&&this.rotation.fromArray(t.rotation),t.quaternion!==void 0&&this.quaternion.fromArray(t.quaternion),t.scale!==void 0&&this.scale.fromArray(t.scale)),this.castShadow=t.castShadow!==void 0,this.receiveShadow=t.receiveShadow!==void 0,t.visible!==void 0&&(this.visible=t.visible),t.frustumCulled!==void 0&&(this.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(this.renderOrder=t.renderOrder),t.layers!==void 0&&(this.layers.mask=t.layers),t.userData!==void 0&&(this.userData=t.userData),this}};var xn=i=>"isEntity"in i;var vn=i=>class extends mu(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new ad;this._singleBBox=new hu;this._recursiveBBox=new hu;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}set visibility(t){this.visible=t;for(let r of this.children)xn(r)&&r.traverseEntity(n=>{Si(n)&&n.visible&&(n.objectHelper.visible=t)})}get visibility(){return this.visible}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(t=>{xn(t)&&(t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(t=>{t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0})}traverseEntity(t){t(this);for(let r of this.children)xn(r)&&r.traverseEntity(t)}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 r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&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 s of this.children)s.updateWorldMatrix(!1,!0)}shallowClone(t){return new this.constructor().shallowCopy(this,t)}shallowCopy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)xn(n)&&this.add(n.shallowClone());return this}clone(t){return new this.constructor().copy(this,t)}copy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)xn(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let t=new ad,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(r);for(let n of this.children)xn(n)&&n.hiddenMatrix.premultiply(t)}toJSON(t){let r=super.toJSON(t),n=r.object;return this.raycastLock===!0&&(n.raycastLock=!0),this.scaleLock===!0&&(n.scaleLock=!0),n.hiddenMatrix=this.hiddenMatrix.toArray(),r}fromJSON(t){return super.fromJSON(t),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.scaleLock!==void 0&&(this.scaleLock=t.scaleLock),this.hiddenMatrix.fromArray(t.hiddenMatrix),this}fromObject3D(t){let r=t.children;return t.children=[],Object.assign(t,{raycastLock:!1,scaleLock:!1,hiddenMatrix:new ad}),this.copy(t),t.children=r,this}toObjectTransformState(t=[]){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 ms(r,t)}fromObjectTransformState(t){return t.position&&this.position.fromArray(t.position),t.rotation&&this.rotation.fromArray(t.rotation),t.scale&&this.scale.fromArray(t.scale),t.hiddenMatrix&&this.hiddenMatrix.fromArray(t.hiddenMatrix),this.updateMatrix(),this}toState(t=[]){let r=U({name:this.name,visible:this.visible,raycastLock:this.raycastLock},this.toObjectTransformState(t));return ms(r,t)}fromState(t,r){return t.name&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.type!=="OrthographicCamera"&&t.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),t.visible!==void 0&&(this.visibility=t.visible),this.fromObjectTransformState(t),this}};import{Object3D as MD,Vector3 as Ma,Euler as Av,MathUtils as Ki}from"three";var gu=class extends MD{constructor(e,t={}){super();this.object=e;let r=e.recursiveBBox.getSize(new Ma),n=.1;this.parameters=xc.defaultData(r.toArray(),n),vo(this.parameters,t),this.update(),this.setHideBase(this.parameters.hideBase)}refreshMaterial(){if("material"in this.object)for(let e of this.children)e.material=this.object.material}setHideBase(e){if("material"in this.object){if(Array.isArray(this.object.material)){if(this.children.length>0){for(let t of this.object.material)t.visible=!0;if(e){let t=this.object.material.map(r=>r.clone());for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material}for(let t of this.object.material)t.visible=!e}else{if(this.children.length>0)if(this.object.material.visible=!0,e){let t=this.object.material.clone();for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material;this.object.material.visible=!e}this.parameters.hideBase=e}}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let t=0,r=e-this.children.length;t<r;++t){let n=this.object.shallowClone(!1);n.visible=!0,this.add(n),this.parameters.hideBase&&this.setHideBase(!0)}else for(let t=0,r=this.children.length-e;t<r;++t)this.remove(this.children[0])}_updateRadial(e){let t=e.radial,r=t.start*Ki.DEG2RAD,n=t.end*Ki.DEG2RAD,s=r-n,l=new Av(t.rotation[0]*Ki.DEG2RAD,t.rotation[1]*Ki.DEG2RAD,t.rotation[2]*Ki.DEG2RAD),c;switch(t.axis){case"z":c=new Ma(0,0,1);break;case"y":c=new Ma(0,1,0);break;default:case"x":c=new Ma(1,0,0);break}for(let[f,h]of this.children.entries()){h.hiddenMatrix.identity(),h.scale.x=t.scale[0]+1,h.scale.y=t.scale[1]+1,h.scale.z=t.scale[2]+1,h.position.setScalar(0);let p=s/e.count*f-r;switch(t.axis){case"x":h.rotation.set(0,p,0);break;case"y":h.rotation.set(0,0,p);break;case"z":h.rotation.set(p,0,0);break}h.translateOnAxis(c,t.radius),h.position.x+=t.position[0],h.position.y+=t.position[1],h.position.z+=t.position[2],t.alignment===!0?(h.rotation.x+=l.x,h.rotation.y+=l.y,h.rotation.z+=l.z):h.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let t=e.linear,r=new Av(t.rotation[0]*Ki.DEG2RAD,t.rotation[1]*Ki.DEG2RAD,t.rotation[2]*Ki.DEG2RAD);for(let[n,s]of this.children.entries())s.hiddenMatrix.identity(),s.scale.x=t.scale[0]*n+1,s.scale.y=t.scale[1]*n+1,s.scale.z=t.scale[2]*n+1,s.rotation.x=r.x*n,s.rotation.y=r.y*n,s.rotation.z=r.z*n,s.position.x=t.position[0]*n,s.position.y=t.position[1]*n,s.position.z=t.position[2]*n}_updateGrid(e){let t=0,r=e.grid;if(r.useCenter===!0){let n={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 Ma(r.size[0]*(r.count[0]-n.x)*.5,r.size[1]*(r.count[1]-n.y)*.5,r.size[2]*(r.count[2]-n.z)*.5);for(let l=0;l<r.count[0];l++)for(let c=0;c<r.count[1];c++)for(let f=0;f<r.count[2];f++){let h=this.children[t++];h.hiddenMatrix.identity(),h.scale.setScalar(1),h.rotation.set(0,0,0),h.position.x=r.size[0]*l-s.x,h.position.y=r.size[1]*c-s.y,h.position.z=r.size[2]*f-s.z}}else for(let n=0;n<r.count[0];n++)for(let s=0;s<r.count[1];s++)for(let l=0;l<r.count[2];l++){let c=this.children[t++];c.hiddenMatrix.identity(),c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=r.size[0]*n,c.position.y=-r.size[1]*s,c.position.z=-r.size[2]*l}}fromJSON(e){return this}toJSON(){return{}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),vo(this.parameters,e),this.update(),this}};var hr=class extends vn(AD){constructor(e,t){super(e,t);this.isAbstractMesh=!0;Array.isArray(t)&&(this.selectedMaterial=0,e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0))}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}getSelectedMaterial(e){return Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=e!=null?e:0),this.material[e!=null?e:this.selectedMaterial]):this.material}setSelectedMaterial(e,t){Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=t!=null?t:0),t=t!=null?t:this.selectedMaterial,this.material[t].dispose(),this.material[t]=e):(this.material.dispose(),this.material=e)}updateGeometry(e){let t=this.geometry,r=rd[t.userData.type],n=this.objectType==="NonParametric"?Object.assign({},t.userData,{geometry:t}):t.userData,s=r.build(r.normalizeInputs(e,n)),l=t.uuid;if(this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),this.cloner)for(let c of this.cloner.children)c.geometry=this.geometry}resizeGeometry(e,t,r){Ta.resizeGeometry(this.geometry,{width:e,height:t,depth:r})}shallowClone(e){return new this.constructor(this.geometry,this.material).shallowCopy(this,e)}clone(e){let t=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,r=Ia(t),n=Array.isArray(this.material)?this.material.map(s=>s.clone()):this.material.clone();return new this.constructor(r,n).copy(this,e)}copy(e,t=!0){return super.copy(e,t),e.cloner&&(this.cloner=new gu(e,e.cloner.parameters),this.add(this.cloner)),this}toJSON(e){let t=super.toJSON(e),r=t.object;if(r.geometry=Iv(e.geometries,this.geometry,this.material),Array.isArray(this.material)){let n=[];for(let s=0,l=this.material.length;s<l;s++)n.push(sd(e.materials,this.material[s],e));r.material=n}else r.material=sd(e.materials,this.material,e);return t}fromJSON(e){return super.fromJSON(e),e.selectedMaterial!==void 0&&(this.selectedMaterial=e.selectedMaterial),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new gu(this)),this.cloner.fromClonerState(e))}fromState(e,t){var r,n;return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=(r=e.castShadow)!=null?r:!0,this.receiveShadow=(n=e.receiveShadow)!=null?n:!0),this}};import{NormalBlending as YD,ShaderMaterial as QD,FrontSide as e3}from"three";import{CubeReflectionMapping as UD,CubeRefractionMapping as kD,CubeUVReflectionMapping as HD,CubeUVRefractionMapping as WD,LinearEncoding as jv,sRGBEncoding as qD}from"three";var yu=class{constructor(e){e=e!=null?e:{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};import{MathUtils as OD}from"three";var Pe=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=OD.generateUUID(),this.type=e,this.name="",this.userData={}}analyze(e,t){t=t!=null?t:{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,r){return r=r!=null?r:{},this.analyze(e,r),this.flow(e,t,r)}flow(e,t,r){r=r!=null?r:{},e.addFlow(r.slot,r.cache,r.context);let n={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),n}build(e,t,r){t=t!=null?t:this.getType(e,t);let n=e.getNodeData(r!=null?r:this);return e.analyzing&&this.appendDepsNode(e,n,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,r)}updateFrame(e){}generateReadonly(e,t,r,n,s,l){return""}generate(e,t,r,n,s){return""}parse(e,t,r,n){}appendDepsNode(e,t,r){t.deps=(t.deps||0)+1;let n=e.getTypeLength(r);(n>(t.outputMax||0)||this.getType(e,r))&&(t.outputMax=n,t.output=r)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getJSONNode(e){if((e==null?void 0:e.materials)&&(e==null?void 0:e.materials[this.uuid])!==void 0)return e.materials[this.uuid]}getHash(){let e="{",t,r;for(t in this)r=this[t],r instanceof Pe&&(e+='"'+t+'":'+r.getHash()+",");if(this.hashProperties)for(let n=0;n<this.hashProperties.length;n++)t=this.hashProperties[n],r=this[t],e+='"'+t+'":"'+String(r)+'",';return e+='"id":"'+this.uuid+'"}',e}copy(e){return this.name=e.name,e.type&&(this.type=e.type),e.frameId&&(this.frameId=e.frameId),e.hashProperties&&(this.hashProperties=e.hashProperties.map(t=>t)),this.userData=JSON.parse(JSON.stringify(e.userData)),this.shortcuts=JSON.parse(JSON.stringify(e.shortcuts)),this}clone(){return new this.constructor().copy(this)}createJSONNode(e){let t=e===void 0||typeof e=="string";if(typeof this.type!="string")throw new Error("Node does not allow serialization.");let r={};return r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),JSON.stringify(this.userData)!=="{}"&&(r.userData=this.userData),!t&&e&&(e.nodes[this.uuid]=r),r}toJSON(e){var t;return(t=this.getJSONNode(e))!=null?t:this.createJSONNode(e)}fromJSON(e,t){return this.uuid=e.uuid,this.type=e.type,e.name&&(this.name=e.name),e.userData&&(this.userData=e.userData),this}};var Ov=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,r){r=r!==void 0?r:!0,this.keywords[e]={callback:t,cache:r}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},tr=new Ov;import{Vector2 as Pv}from"three";import{MathUtils as PD}from"three";var Be=class extends Pe{constructor(e,t){super(e);this.scope="";t=t!=null?t:{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(e,t,r,n){if(t=t!=null?t:this.getType(e),this.getShared(e,t)){let s=this.getUnique(e,t);s&&this.uuid===void 0&&(this.uuid=PD.generateUUID()),r=e.getUUID(r!=null?r:this.getUUID(),!s);let l=e.getNodeData(r),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,r)):super.build(e,t,r);if(s)return l.name=l.name||super.build(e,t,r),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,t,r);r=this.getUUID(!1);let f=this.getTemp(e,r);if(f)return e.format(f,c,t);{f=super.generate(e,t,r,l.output,n);let h=this.generate(e,c,r);return e.addNodeCode(f+" = "+h+";"),e.format(f,c,t)}}return super.build(e,t,r)}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 r=e.getVars()[t];return r?r.name:void 0}generate(e,t,r,n,s){return this.getShared(e,t)||console.error("TempNode is not shared"),r=r!=null?r:this.uuid,e.getTempVar(r,n!=null?n:this.getType(e),s,this.getLabel()).name}};var It=class extends Be{constructor(e,t){t=t!=null?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}createJSONNode(e){let t=super.createJSONNode(e);return this.readonly===!0&&(t.readonly=this.readonly),t}fromJSON(e,t){return super.fromJSON(e,t),e.readonly!==void 0&&this.setReadonly(e.readonly),this}generate(e,t,r,n,s,l){r=e.getUUID(r!=null?r:this.getUUID()),n=n!=null?n:this.getType(e);let c=e.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,t,r,n,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,l,this.getLabel())),e.format(c.vertex.name,n,t)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,l,this.getLabel())),e.format(c.fragment.name,n,t))}copy(e){return super.copy(e),this.readonly=e.readonly,this}};var _r=class extends It{constructor(e=0,t){super("v2");this.nodeType="Vector2";this.value=e instanceof Pv?e:new Pv(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,r,n,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};import{Vector3 as Dv}from"three";var Tr=class extends It{constructor(e=0,t,r){super("v3");this.nodeType="Vector3";this.value=e instanceof Dv?e:new Dv(e,t,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,t,r,n,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var Xi=class extends It{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tn?e:new tn(e.r,e.g,e.b,e.a)}generateReadonly(e,t,r,n,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var DD=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Bv=/[a-z_0-9]+/gi,Se=class extends Be{constructor(e,t,r,n,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,r,n)}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,r,n,s){let l,c=0,f=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let h=[];for(;l=Bv.exec(this.src);)h.push(l);for(let p=0;p<h.length;p++){let y=h[p],g=y[0],w=this.isMethod?!this.getInputByName(g):!0,S=g;if(this.keywords[g]||this.useKeywords&&w&&tr.containsKeyword(g)){let T=this.keywords[g];if(!T){let C=tr.getKeywordData(g);C.cache&&(T=e.keywords[g]),T=T||tr.getKeyword(g,e),C.cache&&(e.keywords[g]=T)}S=T.build(e)}g!==S&&(f=f.substring(0,y.index+c)+S+f.substring(y.index+g.length+c),c+=S.length-g.length),this.getIncludeByName(S)===void 0&&tr.contains(S)&&e.include(tr.get(S))}return t==="source"?f:this.isMethod?(this.isInterface||e.include(this,void 0,f),this.name):e.format("( "+f+" )",this.getType(e),t)}parse(e,t,r,n){if(this.src=e||"",this.includes=t!=null?t:[],this.extensions=r!=null?r:{},this.keywords=n!=null?n:{},this.isMethod){let s=DD.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(Bv);if(l){let c=0;for(;c<l.length;){let f=l[c++],h;f==="in"||f==="out"||f==="inout"?h=l[c++]:(h=f,f="");let p=l[c++];this.inputs.push({name:p,type:h,qualifier:f})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}copy(e){return super.copy(e),this.isMethod=e.isMethod,this.useKeywords=e.useKeywords,e.type!==void 0&&(this.type=e.type),this.parse(e.src,e.includes,e.extensions,e.keywords),this}toJSON(e){var r;let t=this.getJSONNode(e);if(!t){t=this.createJSONNode(e),t.src=this.src,t.isMethod=this.isMethod,t.useKeywords=this.useKeywords,this.isMethod||(t.type=this.type),t.extensions=JSON.parse(JSON.stringify(this.extensions));let n={};for(let s in this.keywords)n[s]=this.keywords[s].toJSON(e).uuid;if(t.keywords=n,(r=this.includes)==null?void 0:r.length){let s=[];for(let l=0;l<this.includes.length;l++)s.push(this.includes[l].toJSON(e).uuid);t.includes=s}t.isMethod=this.isMethod,t.inputs=this.inputs}return t.nodeType=this.nodeType,t}fromJSON(e,t){if(super.fromJSON(e,t),e.inputs!==void 0&&(this.inputs=e.inputs),e.isMethod!==void 0&&(this.isMethod=e.isMethod),e.src&&(this.src=e.src),e.isMethod&&(this.isMethod=e.isMethod),e.useKeywords&&(this.useKeywords=e.useKeywords),e.type&&(this.type=e.type),e.extensions&&(this.extensions=e.extensions),e.keywords&&t){this.keywords={};for(let r in e.keywords)this.keywords[r]=t.getNode(e.keywords[r])}return e.includes&&t&&(this.includes=e.includes.map(r=>t.getNode(r))),this}};var BD=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,ld=class extends Be{constructor(e="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||ld.PI,void 0,void 0,void 0,t)}getType(e){return e.getTypeByFormat(this.type)}parse(e,t,r,n,s){this.src=e||"";let l,c,f="",h=BD.exec(e);this.useDefine=s!=null?s:this.src.charAt(0)==="#",h&&h.length>1?(c=h[1],l=h[2],f=h[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=f}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,r,n,s){return e.format(this.name,this.getType(e),t)}copy(e){return super.copy(e),this.parse(e.src,void 0,void 0,void 0,e.useDefine),this}},it=ld;it.PI="PI",it.PI2="PI2",it.RECIPROCAL_PI="RECIPROCAL_PI",it.RECIPROCAL_PI2="RECIPROCAL_PI2",it.LOG2="LOG2",it.EPSILON="EPSILON";var GD=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
21
21
|
)*?)}`,"gim"),jD=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Aa=class extends Be{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,r,n,s){return t==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),t)}parse(e=""){this.src=e,this.inputs=[];let t=GD.exec(e);if(t){let r=t[2],n;for(;n=jD.exec(r);)this.inputs.push({type:n[1],name:n[2]});this.name=t[1]}else this.name="";this.type=this.name}};var Oa=class extends Be{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e!=null?e:0}generate(e,t){e.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",n=e.isShader("vertex")?"uv"+r:"vUv"+r;return e.format(n,this.getType(e),t)}copy(e){return super.copy(e),this.index=e.index,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.index=this.index),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.index&&(this.index=e.index),this}};tr.addKeyword("uv",function(){return new Oa});tr.addKeyword("uv2",function(){return new Oa(1)});import{LinearEncoding as ED,sRGBEncoding as RD}from"three";var To=class extends Be{constructor(e=new Pe,t){super("v4");this.nodeType="ColorSpace";this.factor=new Pe;this.input=e,this.method=t!=null?t:To.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case ED:return["Linear"];case RD:return["sRGB"];default:return[]}}generate(e,t){var c;let r=this.input.build(e,"v4"),n=this.getType(e),s=To.Nodes[this.method],l=e.include(s);if(l===To.LINEAR_TO_LINEAR)return e.format(r,n,t);if(((c=s.inputs)==null?void 0:c.length)===2){let f=this.factor.build(e,"f");return e.format(l+"( "+r+", "+f+" )",n,t)}else return e.format(l+"( "+r+" )",n,t)}fromEncoding(e){let t=To.getEncodingComponents(e);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(e){let t=To.getEncodingComponents(e);this.method=t[0]+"ToLinear",this.factor=t[1]}copy(e){return super.copy(e),this.input.copy(e.input),this.method=e.method,this.factor.copy(e.factor),this}},zr=To;zr.Nodes={LinearToLinear:new Se(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
22
22
|
`)),sRGBToLinear:new Se(["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(`
|
|
23
23
|
`)),LinearTosRGB:new Se(["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(`
|