@netless/appliance-plugin 1.0.0-beta.4 → 1.0.0-beta.6

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.
@@ -0,0 +1,566 @@
1
+ var og=Object.defineProperty;var ag=(re,Xt,fe)=>Xt in re?og(re,Xt,{enumerable:!0,configurable:!0,writable:!0,value:fe}):re[Xt]=fe;var nt=(re,Xt,fe)=>(ag(re,typeof Xt!="symbol"?Xt+"":Xt,fe),fe);(function(){"use strict";var re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xt(d){return d&&d.__esModule&&Object.prototype.hasOwnProperty.call(d,"default")?d.default:d}function fe(){this.__data__=[],this.size=0}var ei=fe;function ri(d,r){return d===r||d!==d&&r!==r}var Qe=ri,ni=Qe;function ii(d,r){for(var t=d.length;t--;)if(ni(d[t][0],r))return t;return-1}var we=ii,si=we,oi=Array.prototype,ai=oi.splice;function li(d){var r=this.__data__,t=si(r,d);if(t<0)return!1;var e=r.length-1;return t==e?r.pop():ai.call(r,t,1),--this.size,!0}var ci=li,fi=we;function ui(d){var r=this.__data__,t=fi(r,d);return t<0?void 0:r[t][1]}var hi=ui,di=we;function gi(d){return di(this.__data__,d)>-1}var pi=gi,mi=we;function vi(d,r){var t=this.__data__,e=mi(t,d);return e<0?(++this.size,t.push([d,r])):t[e][1]=r,this}var yi=vi,Si=ei,xi=ci,Ti=hi,Mi=pi,Oi=yi;function me(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}me.prototype.clear=Si,me.prototype.delete=xi,me.prototype.get=Ti,me.prototype.has=Mi,me.prototype.set=Oi;var Ne=me,Ei=Ne;function Pi(){this.__data__=new Ei,this.size=0}var Ai=Pi;function Ci(d){var r=this.__data__,t=r.delete(d);return this.size=r.size,t}var Ri=Ci;function Ii(d){return this.__data__.get(d)}var Li=Ii;function bi(d){return this.__data__.has(d)}var Di=bi,wi=typeof re=="object"&&re&&re.Object===Object&&re,xr=wi,Ni=xr,Bi=typeof self=="object"&&self&&self.Object===Object&&self,Wi=Ni||Bi||Function("return this")(),Qt=Wi,Fi=Qt,ji=Fi.Symbol,Be=ji,Tr=Be,Mr=Object.prototype,Ui=Mr.hasOwnProperty,$i=Mr.toString,Ae=Tr?Tr.toStringTag:void 0;function zi(d){var r=Ui.call(d,Ae),t=d[Ae];try{d[Ae]=void 0;var e=!0}catch{}var n=$i.call(d);return e&&(r?d[Ae]=t:delete d[Ae]),n}var Gi=zi,Hi=Object.prototype,Ki=Hi.toString;function Vi(d){return Ki.call(d)}var Yi=Vi,Or=Be,Xi=Gi,Ji=Yi,Qi="[object Null]",Zi="[object Undefined]",Er=Or?Or.toStringTag:void 0;function ki(d){return d==null?d===void 0?Zi:Qi:Er&&Er in Object(d)?Xi(d):Ji(d)}var ue=ki;function qi(d){var r=typeof d;return d!=null&&(r=="object"||r=="function")}var oe=qi,_i=ue,ts=oe,es="[object AsyncFunction]",rs="[object Function]",ns="[object GeneratorFunction]",is="[object Proxy]";function ss(d){if(!ts(d))return!1;var r=_i(d);return r==rs||r==ns||r==es||r==is}var Pr=ss,os=Qt,as=os["__core-js_shared__"],ls=as,Ze=ls,Ar=function(){var d=/[^.]+$/.exec(Ze&&Ze.keys&&Ze.keys.IE_PROTO||"");return d?"Symbol(src)_1."+d:""}();function cs(d){return!!Ar&&Ar in d}var fs=cs,us=Function.prototype,hs=us.toString;function ds(d){if(d!=null){try{return hs.call(d)}catch{}try{return d+""}catch{}}return""}var Cr=ds,gs=Pr,ps=fs,ms=oe,vs=Cr,ys=/[\\^$.*+?()[\]{}|]/g,Ss=/^\[object .+?Constructor\]$/,xs=Function.prototype,Ts=Object.prototype,Ms=xs.toString,Os=Ts.hasOwnProperty,Es=RegExp("^"+Ms.call(Os).replace(ys,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ps(d){if(!ms(d)||ps(d))return!1;var r=gs(d)?Es:Ss;return r.test(vs(d))}var As=Ps;function Cs(d,r){return d==null?void 0:d[r]}var Rs=Cs,Is=As,Ls=Rs;function bs(d,r){var t=Ls(d,r);return Is(t)?t:void 0}var he=bs,Ds=he,ws=Qt,Ns=Ds(ws,"Map"),ke=Ns,Bs=he,Ws=Bs(Object,"create"),We=Ws,Rr=We;function Fs(){this.__data__=Rr?Rr(null):{},this.size=0}var js=Fs;function Us(d){var r=this.has(d)&&delete this.__data__[d];return this.size-=r?1:0,r}var $s=Us,zs=We,Gs="__lodash_hash_undefined__",Hs=Object.prototype,Ks=Hs.hasOwnProperty;function Vs(d){var r=this.__data__;if(zs){var t=r[d];return t===Gs?void 0:t}return Ks.call(r,d)?r[d]:void 0}var Ys=Vs,Xs=We,Js=Object.prototype,Qs=Js.hasOwnProperty;function Zs(d){var r=this.__data__;return Xs?r[d]!==void 0:Qs.call(r,d)}var ks=Zs,qs=We,_s="__lodash_hash_undefined__";function to(d,r){var t=this.__data__;return this.size+=this.has(d)?0:1,t[d]=qs&&r===void 0?_s:r,this}var eo=to,ro=js,no=$s,io=Ys,so=ks,oo=eo;function ve(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}ve.prototype.clear=ro,ve.prototype.delete=no,ve.prototype.get=io,ve.prototype.has=so,ve.prototype.set=oo;var ao=ve,Ir=ao,lo=Ne,co=ke;function fo(){this.size=0,this.__data__={hash:new Ir,map:new(co||lo),string:new Ir}}var uo=fo;function ho(d){var r=typeof d;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?d!=="__proto__":d===null}var go=ho,po=go;function mo(d,r){var t=d.__data__;return po(r)?t[typeof r=="string"?"string":"hash"]:t.map}var Fe=mo,vo=Fe;function yo(d){var r=vo(this,d).delete(d);return this.size-=r?1:0,r}var So=yo,xo=Fe;function To(d){return xo(this,d).get(d)}var Mo=To,Oo=Fe;function Eo(d){return Oo(this,d).has(d)}var Po=Eo,Ao=Fe;function Co(d,r){var t=Ao(this,d),e=t.size;return t.set(d,r),this.size+=t.size==e?0:1,this}var Ro=Co,Io=uo,Lo=So,bo=Mo,Do=Po,wo=Ro;function ye(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}ye.prototype.clear=Io,ye.prototype.delete=Lo,ye.prototype.get=bo,ye.prototype.has=Do,ye.prototype.set=wo;var Lr=ye,No=Ne,Bo=ke,Wo=Lr,Fo=200;function jo(d,r){var t=this.__data__;if(t instanceof No){var e=t.__data__;if(!Bo||e.length<Fo-1)return e.push([d,r]),this.size=++t.size,this;t=this.__data__=new Wo(e)}return t.set(d,r),this.size=t.size,this}var Uo=jo,$o=Ne,zo=Ai,Go=Ri,Ho=Li,Ko=Di,Vo=Uo;function Se(d){var r=this.__data__=new $o(d);this.size=r.size}Se.prototype.clear=zo,Se.prototype.delete=Go,Se.prototype.get=Ho,Se.prototype.has=Ko,Se.prototype.set=Vo;var br=Se;function Yo(d,r){for(var t=-1,e=d==null?0:d.length;++t<e&&r(d[t],t,d)!==!1;);return d}var Xo=Yo,Jo=he,Qo=function(){try{var d=Jo(Object,"defineProperty");return d({},"",{}),d}catch{}}(),Zo=Qo,Dr=Zo;function ko(d,r,t){r=="__proto__"&&Dr?Dr(d,r,{configurable:!0,enumerable:!0,value:t,writable:!0}):d[r]=t}var wr=ko,qo=wr,_o=Qe,ta=Object.prototype,ea=ta.hasOwnProperty;function ra(d,r,t){var e=d[r];(!(ea.call(d,r)&&_o(e,t))||t===void 0&&!(r in d))&&qo(d,r,t)}var Nr=ra,na=Nr,ia=wr;function sa(d,r,t,e){var n=!t;t||(t={});for(var s=-1,l=r.length;++s<l;){var o=r[s],i=e?e(t[o],d[o],o,t,d):void 0;i===void 0&&(i=d[o]),n?ia(t,o,i):na(t,o,i)}return t}var je=sa;function oa(d,r){for(var t=-1,e=Array(d);++t<d;)e[t]=r(t);return e}var aa=oa;function la(d){return d!=null&&typeof d=="object"}var se=la,ca=ue,fa=se,ua="[object Arguments]";function ha(d){return fa(d)&&ca(d)==ua}var da=ha,Br=da,ga=se,Wr=Object.prototype,pa=Wr.hasOwnProperty,ma=Wr.propertyIsEnumerable,va=Br(function(){return arguments}())?Br:function(d){return ga(d)&&pa.call(d,"callee")&&!ma.call(d,"callee")},ya=va,Sa=Array.isArray,Ue=Sa,$e={exports:{}};function xa(){return!1}var Ta=xa;$e.exports,function(d,r){var t=Qt,e=Ta,n=r&&!r.nodeType&&r,s=n&&!0&&d&&!d.nodeType&&d,l=s&&s.exports===n,o=l?t.Buffer:void 0,i=o?o.isBuffer:void 0,f=i||e;d.exports=f}($e,$e.exports);var qe=$e.exports,Ma=9007199254740991,Oa=/^(?:0|[1-9]\d*)$/;function Ea(d,r){var t=typeof d;return r=r??Ma,!!r&&(t=="number"||t!="symbol"&&Oa.test(d))&&d>-1&&d%1==0&&d<r}var Pa=Ea,Aa=9007199254740991;function Ca(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=Aa}var Fr=Ca,Ra=ue,Ia=Fr,La=se,ba="[object Arguments]",Da="[object Array]",wa="[object Boolean]",Na="[object Date]",Ba="[object Error]",Wa="[object Function]",Fa="[object Map]",ja="[object Number]",Ua="[object Object]",$a="[object RegExp]",za="[object Set]",Ga="[object String]",Ha="[object WeakMap]",Ka="[object ArrayBuffer]",Va="[object DataView]",Ya="[object Float32Array]",Xa="[object Float64Array]",Ja="[object Int8Array]",Qa="[object Int16Array]",Za="[object Int32Array]",ka="[object Uint8Array]",qa="[object Uint8ClampedArray]",_a="[object Uint16Array]",tl="[object Uint32Array]",Ft={};Ft[Ya]=Ft[Xa]=Ft[Ja]=Ft[Qa]=Ft[Za]=Ft[ka]=Ft[qa]=Ft[_a]=Ft[tl]=!0,Ft[ba]=Ft[Da]=Ft[Ka]=Ft[wa]=Ft[Va]=Ft[Na]=Ft[Ba]=Ft[Wa]=Ft[Fa]=Ft[ja]=Ft[Ua]=Ft[$a]=Ft[za]=Ft[Ga]=Ft[Ha]=!1;function el(d){return La(d)&&Ia(d.length)&&!!Ft[Ra(d)]}var rl=el;function nl(d){return function(r){return d(r)}}var _e=nl,ze={exports:{}};ze.exports,function(d,r){var t=xr,e=r&&!r.nodeType&&r,n=e&&!0&&d&&!d.nodeType&&d,s=n&&n.exports===e,l=s&&t.process,o=function(){try{var i=n&&n.require&&n.require("util").types;return i||l&&l.binding&&l.binding("util")}catch{}}();d.exports=o}(ze,ze.exports);var tr=ze.exports,il=rl,sl=_e,jr=tr,Ur=jr&&jr.isTypedArray,ol=Ur?sl(Ur):il,$r=ol,al=aa,ll=ya,cl=Ue,fl=qe,ul=Pa,hl=$r,dl=Object.prototype,gl=dl.hasOwnProperty;function pl(d,r){var t=cl(d),e=!t&&ll(d),n=!t&&!e&&fl(d),s=!t&&!e&&!n&&hl(d),l=t||e||n||s,o=l?al(d.length,String):[],i=o.length;for(var f in d)(r||gl.call(d,f))&&!(l&&(f=="length"||n&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||ul(f,i)))&&o.push(f);return o}var zr=pl,ml=Object.prototype;function vl(d){var r=d&&d.constructor,t=typeof r=="function"&&r.prototype||ml;return d===t}var er=vl;function yl(d,r){return function(t){return d(r(t))}}var Gr=yl,Sl=Gr,xl=Sl(Object.keys,Object),Tl=xl,Ml=er,Ol=Tl,El=Object.prototype,Pl=El.hasOwnProperty;function Al(d){if(!Ml(d))return Ol(d);var r=[];for(var t in Object(d))Pl.call(d,t)&&t!="constructor"&&r.push(t);return r}var Cl=Al,Rl=Pr,Il=Fr;function Ll(d){return d!=null&&Il(d.length)&&!Rl(d)}var Hr=Ll,bl=zr,Dl=Cl,wl=Hr;function Nl(d){return wl(d)?bl(d):Dl(d)}var rr=Nl,Bl=je,Wl=rr;function Fl(d,r){return d&&Bl(r,Wl(r),d)}var jl=Fl;function Ul(d){var r=[];if(d!=null)for(var t in Object(d))r.push(t);return r}var $l=Ul,zl=oe,Gl=er,Hl=$l,Kl=Object.prototype,Vl=Kl.hasOwnProperty;function Yl(d){if(!zl(d))return Hl(d);var r=Gl(d),t=[];for(var e in d)e=="constructor"&&(r||!Vl.call(d,e))||t.push(e);return t}var Xl=Yl,Jl=zr,Ql=Xl,Zl=Hr;function kl(d){return Zl(d)?Jl(d,!0):Ql(d)}var nr=kl,ql=je,_l=nr;function tc(d,r){return d&&ql(r,_l(r),d)}var ec=tc,Ge={exports:{}};Ge.exports,function(d,r){var t=Qt,e=r&&!r.nodeType&&r,n=e&&!0&&d&&!d.nodeType&&d,s=n&&n.exports===e,l=s?t.Buffer:void 0,o=l?l.allocUnsafe:void 0;function i(f,p){if(p)return f.slice();var c=f.length,m=o?o(c):new f.constructor(c);return f.copy(m),m}d.exports=i}(Ge,Ge.exports);var rc=Ge.exports;function nc(d,r){var t=-1,e=d.length;for(r||(r=Array(e));++t<e;)r[t]=d[t];return r}var ic=nc;function sc(d,r){for(var t=-1,e=d==null?0:d.length,n=0,s=[];++t<e;){var l=d[t];r(l,t,d)&&(s[n++]=l)}return s}var oc=sc;function ac(){return[]}var Kr=ac,lc=oc,cc=Kr,fc=Object.prototype,uc=fc.propertyIsEnumerable,Vr=Object.getOwnPropertySymbols,hc=Vr?function(d){return d==null?[]:(d=Object(d),lc(Vr(d),function(r){return uc.call(d,r)}))}:cc,ir=hc,dc=je,gc=ir;function pc(d,r){return dc(d,gc(d),r)}var mc=pc;function vc(d,r){for(var t=-1,e=r.length,n=d.length;++t<e;)d[n+t]=r[t];return d}var Yr=vc,yc=Gr,Sc=yc(Object.getPrototypeOf,Object),Xr=Sc,xc=Yr,Tc=Xr,Mc=ir,Oc=Kr,Ec=Object.getOwnPropertySymbols,Pc=Ec?function(d){for(var r=[];d;)xc(r,Mc(d)),d=Tc(d);return r}:Oc,Jr=Pc,Ac=je,Cc=Jr;function Rc(d,r){return Ac(d,Cc(d),r)}var Ic=Rc,Lc=Yr,bc=Ue;function Dc(d,r,t){var e=r(d);return bc(d)?e:Lc(e,t(d))}var Qr=Dc,wc=Qr,Nc=ir,Bc=rr;function Wc(d){return wc(d,Bc,Nc)}var Zr=Wc,Fc=Qr,jc=Jr,Uc=nr;function $c(d){return Fc(d,Uc,jc)}var zc=$c,Gc=he,Hc=Qt,Kc=Gc(Hc,"DataView"),Vc=Kc,Yc=he,Xc=Qt,Jc=Yc(Xc,"Promise"),Qc=Jc,Zc=he,kc=Qt,qc=Zc(kc,"Set"),_c=qc,tf=he,ef=Qt,rf=tf(ef,"WeakMap"),nf=rf,sr=Vc,or=ke,ar=Qc,lr=_c,cr=nf,kr=ue,xe=Cr,qr="[object Map]",sf="[object Object]",_r="[object Promise]",tn="[object Set]",en="[object WeakMap]",rn="[object DataView]",of=xe(sr),af=xe(or),lf=xe(ar),cf=xe(lr),ff=xe(cr),de=kr;(sr&&de(new sr(new ArrayBuffer(1)))!=rn||or&&de(new or)!=qr||ar&&de(ar.resolve())!=_r||lr&&de(new lr)!=tn||cr&&de(new cr)!=en)&&(de=function(d){var r=kr(d),t=r==sf?d.constructor:void 0,e=t?xe(t):"";if(e)switch(e){case of:return rn;case af:return qr;case lf:return _r;case cf:return tn;case ff:return en}return r});var He=de,uf=Object.prototype,hf=uf.hasOwnProperty;function df(d){var r=d.length,t=new d.constructor(r);return r&&typeof d[0]=="string"&&hf.call(d,"index")&&(t.index=d.index,t.input=d.input),t}var gf=df,pf=Qt,mf=pf.Uint8Array,nn=mf,sn=nn;function vf(d){var r=new d.constructor(d.byteLength);return new sn(r).set(new sn(d)),r}var fr=vf,yf=fr;function Sf(d,r){var t=r?yf(d.buffer):d.buffer;return new d.constructor(t,d.byteOffset,d.byteLength)}var xf=Sf,Tf=/\w*$/;function Mf(d){var r=new d.constructor(d.source,Tf.exec(d));return r.lastIndex=d.lastIndex,r}var Of=Mf,on=Be,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Ef(d){return ln?Object(ln.call(d)):{}}var Pf=Ef,Af=fr;function Cf(d,r){var t=r?Af(d.buffer):d.buffer;return new d.constructor(t,d.byteOffset,d.length)}var Rf=Cf,If=fr,Lf=xf,bf=Of,Df=Pf,wf=Rf,Nf="[object Boolean]",Bf="[object Date]",Wf="[object Map]",Ff="[object Number]",jf="[object RegExp]",Uf="[object Set]",$f="[object String]",zf="[object Symbol]",Gf="[object ArrayBuffer]",Hf="[object DataView]",Kf="[object Float32Array]",Vf="[object Float64Array]",Yf="[object Int8Array]",Xf="[object Int16Array]",Jf="[object Int32Array]",Qf="[object Uint8Array]",Zf="[object Uint8ClampedArray]",kf="[object Uint16Array]",qf="[object Uint32Array]";function _f(d,r,t){var e=d.constructor;switch(r){case Gf:return If(d);case Nf:case Bf:return new e(+d);case Hf:return Lf(d,t);case Kf:case Vf:case Yf:case Xf:case Jf:case Qf:case Zf:case kf:case qf:return wf(d,t);case Wf:return new e;case Ff:case $f:return new e(d);case jf:return bf(d);case Uf:return new e;case zf:return Df(d)}}var tu=_f,eu=oe,cn=Object.create,ru=function(){function d(){}return function(r){if(!eu(r))return{};if(cn)return cn(r);d.prototype=r;var t=new d;return d.prototype=void 0,t}}(),nu=ru,iu=nu,su=Xr,ou=er;function au(d){return typeof d.constructor=="function"&&!ou(d)?iu(su(d)):{}}var lu=au,cu=He,fu=se,uu="[object Map]";function hu(d){return fu(d)&&cu(d)==uu}var du=hu,gu=du,pu=_e,fn=tr,un=fn&&fn.isMap,mu=un?pu(un):gu,vu=mu,yu=He,Su=se,xu="[object Set]";function Tu(d){return Su(d)&&yu(d)==xu}var Mu=Tu,Ou=Mu,Eu=_e,hn=tr,dn=hn&&hn.isSet,Pu=dn?Eu(dn):Ou,Au=Pu,Cu=br,Ru=Xo,Iu=Nr,Lu=jl,bu=ec,Du=rc,wu=ic,Nu=mc,Bu=Ic,Wu=Zr,Fu=zc,ju=He,Uu=gf,$u=tu,zu=lu,Gu=Ue,Hu=qe,Ku=vu,Vu=oe,Yu=Au,Xu=rr,Ju=nr,Qu=1,Zu=2,ku=4,gn="[object Arguments]",qu="[object Array]",_u="[object Boolean]",th="[object Date]",eh="[object Error]",pn="[object Function]",rh="[object GeneratorFunction]",nh="[object Map]",ih="[object Number]",mn="[object Object]",sh="[object RegExp]",oh="[object Set]",ah="[object String]",lh="[object Symbol]",ch="[object WeakMap]",fh="[object ArrayBuffer]",uh="[object DataView]",hh="[object Float32Array]",dh="[object Float64Array]",gh="[object Int8Array]",ph="[object Int16Array]",mh="[object Int32Array]",vh="[object Uint8Array]",yh="[object Uint8ClampedArray]",Sh="[object Uint16Array]",xh="[object Uint32Array]",Nt={};Nt[gn]=Nt[qu]=Nt[fh]=Nt[uh]=Nt[_u]=Nt[th]=Nt[hh]=Nt[dh]=Nt[gh]=Nt[ph]=Nt[mh]=Nt[nh]=Nt[ih]=Nt[mn]=Nt[sh]=Nt[oh]=Nt[ah]=Nt[lh]=Nt[vh]=Nt[yh]=Nt[Sh]=Nt[xh]=!0,Nt[eh]=Nt[pn]=Nt[ch]=!1;function Ke(d,r,t,e,n,s){var l,o=r&Qu,i=r&Zu,f=r&ku;if(t&&(l=n?t(d,e,n,s):t(d)),l!==void 0)return l;if(!Vu(d))return d;var p=Gu(d);if(p){if(l=Uu(d),!o)return wu(d,l)}else{var c=ju(d),m=c==pn||c==rh;if(Hu(d))return Du(d,o);if(c==mn||c==gn||m&&!n){if(l=i||m?{}:zu(d),!o)return i?Bu(d,bu(l,d)):Nu(d,Lu(l,d))}else{if(!Nt[c])return n?d:{};l=$u(d,c,o)}}s||(s=new Cu);var y=s.get(d);if(y)return y;s.set(d,l),Yu(d)?d.forEach(function(v){l.add(Ke(v,r,t,v,d,s))}):Ku(d)&&d.forEach(function(v,T){l.set(T,Ke(v,r,t,T,d,s))});var O=f?i?Fu:Wu:i?Ju:Xu,x=p?void 0:O(d);return Ru(x||d,function(v,T){x&&(T=v,v=d[T]),Iu(l,T,Ke(v,r,t,T,d,s))}),l}var Th=Ke,Mh=Th,Oh=1,Eh=4;function Ph(d){return Mh(d,Oh|Eh)}var Ah=Ph,Jt=Xt(Ah),Vt=(d=>(d.Normal="Normal",d.Stroke="Stroke",d.Dotted="Dotted",d.LongDotted="LongDotted",d))(Vt||{}),Lt=(d=>(d.None="None",d.ShowFloatBar="ShowFloatBar",d.ZIndexFloatBar="ZIndexFloatBar",d.DeleteNode="DeleteNode",d.CopyNode="CopyNode",d.ZIndexActive="ZIndexActive",d.ZIndexNode="ZIndexNode",d.RotateNode="RotateNode",d.SetColorNode="SetColorNode",d.TranslateNode="TranslateNode",d.ScaleNode="ScaleNode",d.OriginalEvent="OriginalEvent",d.CreateScene="CreateScene",d.ActiveCursor="ActiveCursor",d.MoveCursor="MoveCursor",d.CommandEditor="CommandEditor",d.SetEditorData="SetEditorData",d.SetFontStyle="SetFontStyle",d.SetPoint="SetPoint",d.SetLock="SetLock",d.SetShapeOpt="SetShapeOpt",d))(Lt||{}),ht=(d=>(d[d.Pencil=1]="Pencil",d[d.Eraser=2]="Eraser",d[d.Selector=3]="Selector",d[d.Clicker=4]="Clicker",d[d.Arrow=5]="Arrow",d[d.Hand=6]="Hand",d[d.LaserPen=7]="LaserPen",d[d.Text=8]="Text",d[d.Straight=9]="Straight",d[d.Rectangle=10]="Rectangle",d[d.Ellipse=11]="Ellipse",d[d.Star=12]="Star",d[d.Triangle=13]="Triangle",d[d.Rhombus=14]="Rhombus",d[d.Polygon=15]="Polygon",d[d.SpeechBalloon=16]="SpeechBalloon",d[d.Image=17]="Image",d))(ht||{}),Tt=(d=>(d[d.Local=1]="Local",d[d.Service=2]="Service",d[d.Worker=3]="Worker",d))(Tt||{}),Rt=(d=>(d[d.Pending=0]="Pending",d[d.Start=1]="Start",d[d.Doing=2]="Doing",d[d.Done=3]="Done",d[d.Freeze=4]="Freeze",d[d.Unwritable=5]="Unwritable",d))(Rt||{}),ct=(d=>(d[d.None=0]="None",d[d.Init=1]="Init",d[d.UpdateCamera=2]="UpdateCamera",d[d.UpdateTools=3]="UpdateTools",d[d.CreateWork=4]="CreateWork",d[d.DrawWork=5]="DrawWork",d[d.FullWork=6]="FullWork",d[d.UpdateNode=7]="UpdateNode",d[d.RemoveNode=8]="RemoveNode",d[d.Clear=9]="Clear",d[d.Select=10]="Select",d[d.Destroy=11]="Destroy",d[d.Snapshot=12]="Snapshot",d[d.BoundingBox=13]="BoundingBox",d[d.Cursor=14]="Cursor",d[d.TextUpdate=15]="TextUpdate",d[d.GetTextActive=16]="GetTextActive",d[d.TasksQueue=17]="TasksQueue",d[d.CursorHover=18]="CursorHover",d))(ct||{}),Mt=(d=>(d[d.None=0]="None",d[d.Bg=1]="Bg",d[d.ServiceFloat=2]="ServiceFloat",d[d.Float=3]="Float",d[d.TopFloat=4]="TopFloat",d))(Mt||{}),jt=(d=>(d[d.none=1]="none",d[d.all=2]="all",d[d.both=3]="both",d[d.proportional=4]="proportional",d))(jt||{});class Zt{constructor(){nt(this,"localWork");nt(this,"serviceWork");nt(this,"scene")}registerForWorker(r,t,e){return this.localWork=r,this.serviceWork=t,this.scene=e,this}}class Ch extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.CopyNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.FullWork&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var n;const{workId:e}=t;e&&await((n=this.localWork)==null?void 0:n.consumeFull(t,this.scene))}}const Rh={linear:d=>d,easeInQuad:d=>d*d,easeOutQuad:d=>d*(2-d),easeInOutQuad:d=>d<.5?2*d*d:-1+(4-2*d)*d,easeInCubic:d=>d*d*d,easeOutCubic:d=>--d*d*d+1,easeInOutCubic:d=>d<.5?4*d*d*d:(d-1)*(2*d-2)*(2*d-2)+1,easeInQuart:d=>d*d*d*d,easeOutQuart:d=>1- --d*d*d*d,easeInOutQuart:d=>d<.5?8*d*d*d*d:1-8*--d*d*d*d,easeInQuint:d=>d*d*d*d*d,easeOutQuint:d=>1+--d*d*d*d*d,easeInOutQuint:d=>d<.5?16*d*d*d*d*d:1+16*--d*d*d*d*d,easeInSine:d=>1-Math.cos(d*Math.PI/2),easeOutSine:d=>Math.sin(d*Math.PI/2),easeInOutSine:d=>-(Math.cos(Math.PI*d)-1)/2,easeInExpo:d=>d<=0?0:Math.pow(2,10*d-10),easeOutExpo:d=>d>=1?1:1-Math.pow(2,-10*d),easeInOutExpo:d=>d<=0?0:d>=1?1:d<.5?Math.pow(2,20*d-10)/2:(2-Math.pow(2,-20*d+10))/2};class _{constructor(r=0,t=0,e=1){this.x=r,this.y=t,this.z=e}get XY(){return[this.x,this.y]}setz(r){return this.z=r,this}setXY(r=this.x,t=this.y){return this.x=r,this.y=t,this}set(r=this.x,t=this.y,e=this.z){return this.x=r,this.y=t,this.z=e,this}setTo({x:r=0,y:t=0,z:e=1}){return this.x=r,this.y=t,this.z=e,this}rot(r){if(r===0)return this;const{x:t,y:e}=this,n=Math.sin(r),s=Math.cos(r);return this.x=t*s-e*n,this.y=t*n+e*s,this}rotWith(r,t){if(t===0)return this;const e=this.x-r.x,n=this.y-r.y,s=Math.sin(t),l=Math.cos(t);return this.x=r.x+(e*l-n*s),this.y=r.y+(e*s+n*l),this}clone(){const{x:r,y:t,z:e}=this;return new _(r,t,e)}sub(r){return this.x-=r.x,this.y-=r.y,this}subXY(r,t){return this.x-=r,this.y-=t,this}subScalar(r){return this.x-=r,this.y-=r,this}add(r){return this.x+=r.x,this.y+=r.y,this}addXY(r,t){return this.x+=r,this.y+=t,this}addScalar(r){return this.x+=r,this.y+=r,this}clamp(r,t){return this.x=Math.max(this.x,r),this.y=Math.max(this.y,r),t!==void 0&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(r){return this.x/=r,this.y/=r,this}divV(r){return this.x/=r.x,this.y/=r.y,this}mul(r){return this.x*=r,this.y*=r,this}mulV(r){return this.x*=r.x,this.y*=r.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(r,t){const e=_.Tan(r,this);return this.add(e.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(r){return this.x=this.y*r.z-this.z*r.y,this.y=this.z*r.x-this.x*r.z,this}dpr(r){return _.Dpr(this,r)}cpr(r){return _.Cpr(this,r)}len2(){return _.Len2(this)}len(){return _.Len(this)}pry(r){return _.Pry(this,r)}per(){const{x:r,y:t}=this;return this.x=t,this.y=-r,this}uni(){return _.Uni(this)}tan(r){return _.Tan(this,r)}dist(r){return _.Dist(this,r)}distanceToLineSegment(r,t){return _.DistanceToLineSegment(r,t,this)}slope(r){return _.Slope(this,r)}snapToGrid(r){return this.x=Math.round(this.x/r)*r,this.y=Math.round(this.y/r)*r,this}angle(r){return _.Angle(this,r)}toAngle(){return _.ToAngle(this)}lrp(r,t){return this.x=this.x+(r.x-this.x)*t,this.y=this.y+(r.y-this.y)*t,this}equals(r,t){return _.Equals(this,r,t)}equalsXY(r,t){return _.EqualsXY(this,r,t)}norm(){const r=this.len();return this.x=r===0?0:this.x/r,this.y=r===0?0:this.y/r,this}toFixed(){return _.ToFixed(this)}toString(){return _.ToString(_.ToFixed(this))}toJson(){return _.ToJson(this)}toArray(){return _.ToArray(this)}static Add(r,t){return new _(r.x+t.x,r.y+t.y)}static AddXY(r,t,e){return new _(r.x+t,r.y+e)}static Sub(r,t){return new _(r.x-t.x,r.y-t.y)}static SubXY(r,t,e){return new _(r.x-t,r.y-e)}static AddScalar(r,t){return new _(r.x+t,r.y+t)}static SubScalar(r,t){return new _(r.x-t,r.y-t)}static Div(r,t){return new _(r.x/t,r.y/t)}static Mul(r,t){return new _(r.x*t,r.y*t)}static DivV(r,t){return new _(r.x/t.x,r.y/t.y)}static MulV(r,t){return new _(r.x*t.x,r.y*t.y)}static Neg(r){return new _(-r.x,-r.y)}static Per(r){return new _(r.y,-r.x)}static Dist2(r,t){return _.Sub(r,t).len2()}static Abs(r){return new _(Math.abs(r.x),Math.abs(r.y))}static Dist(r,t){return Math.hypot(r.y-t.y,r.x-t.x)}static Dpr(r,t){return r.x*t.x+r.y*t.y}static Cross(r,t){return new _(r.y*t.z-r.z*t.y,r.z*t.x-r.x*t.z)}static Cpr(r,t){return r.x*t.y-t.x*r.y}static Len2(r){return r.x*r.x+r.y*r.y}static Len(r){return Math.hypot(r.x,r.y)}static Pry(r,t){return _.Dpr(r,t)/_.Len(t)}static Uni(r){return _.Div(r,_.Len(r))}static Tan(r,t){return _.Uni(_.Sub(r,t))}static Min(r,t){return new _(Math.min(r.x,t.x),Math.min(r.y,t.y))}static Max(r,t){return new _(Math.max(r.x,t.x),Math.max(r.y,t.y))}static From(r){return new _().add(r)}static FromArray(r){return new _(r[0],r[1])}static Rot(r,t=0){const e=Math.sin(t),n=Math.cos(t);return new _(r.x*n-r.y*e,r.x*e+r.y*n)}static RotWith(r,t,e){const n=r.x-t.x,s=r.y-t.y,l=Math.sin(e),o=Math.cos(e);return new _(t.x+(n*o-s*l),t.y+(n*l+s*o))}static NearestPointOnLineThroughPoint(r,t,e){return _.Mul(t,_.Sub(e,r).pry(t)).add(r)}static NearestPointOnLineSegment(r,t,e,n=!0){const s=_.Tan(t,r),l=_.Add(r,_.Mul(s,_.Sub(e,r).pry(s)));if(n){if(l.x<Math.min(r.x,t.x))return _.Cast(r.x<t.x?r:t);if(l.x>Math.max(r.x,t.x))return _.Cast(r.x>t.x?r:t);if(l.y<Math.min(r.y,t.y))return _.Cast(r.y<t.y?r:t);if(l.y>Math.max(r.y,t.y))return _.Cast(r.y>t.y?r:t)}return l}static DistanceToLineThroughPoint(r,t,e){return _.Dist(e,_.NearestPointOnLineThroughPoint(r,t,e))}static DistanceToLineSegment(r,t,e,n=!0){return _.Dist(e,_.NearestPointOnLineSegment(r,t,e,n))}static Snap(r,t=1){return new _(Math.round(r.x/t)*t,Math.round(r.y/t)*t)}static Cast(r){return r instanceof _?r:_.From(r)}static Slope(r,t){return r.x===t.y?NaN:(r.y-t.y)/(r.x-t.x)}static Angle(r,t){return Math.atan2(t.y-r.y,t.x-r.x)}static Lrp(r,t,e){return _.Sub(t,r).mul(e).add(r)}static Med(r,t){return new _((r.x+t.x)/2,(r.y+t.y)/2)}static Equals(r,t,e=1e-4){return Math.abs(r.x-t.x)<e&&Math.abs(r.y-t.y)<e}static EqualsXY(r,t,e){return r.x===t&&r.y===e}static EqualsXYZ(r,t,e=1e-4){return _.Equals(r,t,e)&&Math.abs((r.z||0)-(t.z||0))<e}static Clockwise(r,t,e){return(e.x-r.x)*(t.y-r.y)-(t.x-r.x)*(e.y-r.y)<0}static Rescale(r,t){const e=_.Len(r);return new _(t*r.x/e,t*r.y/e)}static ScaleWithOrigin(r,t,e){return _.Sub(r,e).mul(t).add(e)}static ScaleWOrigin(r,t,e){return _.Sub(r,e).mulV(t).add(e)}static ToFixed(r,t=2){return new _(+r.x.toFixed(t),+r.y.toFixed(t),+r.z.toFixed(t))}static Nudge(r,t,e){return _.Add(r,_.Tan(t,r).mul(e))}static ToString(r){return`${r.x}, ${r.y}`}static ToAngle(r){let t=Math.atan2(r.y,r.x);return t<0&&(t+=Math.PI*2),t}static FromAngle(r,t=1){return new _(Math.cos(r)*t,Math.sin(r)*t)}static ToArray(r){return[r.x,r.y,r.z]}static ToJson(r){const{x:t,y:e,z:n}=r;return{x:t,y:e,z:n}}static Average(r){const t=r.length,e=new _(0,0);for(let n=0;n<t;n++)e.add(r[n]);return e.div(t)}static Clamp(r,t,e){return e===void 0?new _(Math.min(Math.max(r.x,t)),Math.min(Math.max(r.y,t))):new _(Math.min(Math.max(r.x,t),e),Math.min(Math.max(r.y,t),e))}static PointsBetween(r,t,e=6){const n=[];for(let s=0;s<e;s++){const l=Rh.easeInQuad(s/(e-1)),o=_.Lrp(r,t,l);o.z=Math.min(1,.5+Math.abs(.5-Ih(l))*.65),n.push(o)}return n}static SnapToGrid(r,t=8){return new _(Math.round(r.x/t)*t,Math.round(r.y/t)*t)}}const Ih=d=>d<.5?2*d*d:-1+(4-2*d)*d;class xt extends _{constructor(r=0,t=0,e=0,n={x:0,y:0},s=0,l=0){super(r,t,e),this.x=r,this.y=t,this.z=e,this.v=n,this.t=s,this.a=l}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(r){this.a=r}setT(r){this.t=r}setv(r){return this.v={x:r.x,y:r.y},this}set(r=this.x,t=this.y,e=this.z,n=this.v,s=this.t,l=this.a){return this.x=r,this.y=t,this.z=e,this.v=n,this.t=s,this.a=l,this}clone(){const{x:r,y:t,z:e,v:n,t:s,a:l}=this,o={x:n.x,y:n.y};return new xt(r,t,e,o,s,l)}distance(r){return xt.GetDistance(this,r)}isNear(r,t){return xt.IsNear(this,r,t)}getAngleByPoints(r,t){return xt.GetAngleByPoints(r,this,t)}static Sub(r,t){return new xt(r.x-t.x,r.y-t.y)}static Add(r,t){return new xt(r.x+t.x,r.y+t.y)}static GetDistance(r,t){return xt.Len(r.clone().sub(t))}static GetAngleByPoints(r,t,e){const n=t.x-r.x,s=e.x-t.x,l=t.y-r.y,o=e.y-t.y;let i=0;const f=Math.sqrt(n*n+l*l),p=Math.sqrt(s*s+o*o);if(f&&p){const c=n*s+l*o;i=Math.acos(c/(f*p)),i=i/Math.PI*180;let m=n*o-l*s;m=m>0?1:-1,i=180+m*i}return i}static IsNear(r,t,e){return xt.Len(r.clone().sub(t))<e}static RotWith(r,t,e,n=2){const s=r.x-t.x,l=r.y-t.y,o=Math.sin(e),i=Math.cos(e),f=Math.pow(10,n),p=Math.floor((t.x+(s*i-l*o))*f)/f,c=Math.floor((t.y+(s*o+l*i))*f)/f;return new xt(p,c)}static GetDotStroke(r,t,e=16){const n=new _(1,1),s=Math.PI+.001,l=xt.Add(r,xt.Sub(r,n).uni().per().mul(-t)),o=[];for(let i=1/e,f=i;f<=1;f+=i)o.push(xt.RotWith(l,r,s*2*f));return o}static GetSemicircleStroke(r,t,e=-1,n=8){const s=e*(Math.PI+.001),l=[];for(let o=1/n,i=o;i<=1;i+=o)l.push(xt.RotWith(t,r,s*i));return l}}function Ot(d,r){if(d&&r){const t=Math.min(d.x,r.x),e=Math.min(d.y,r.y),n=Math.max(d.x+d.w,r.x+r.w),s=Math.max(d.y+d.h,r.y+r.h),l=n-t,o=s-e;return{x:t,y:e,w:l,h:o}}return r||d}function Bt(d,r=0){const t={x:0,y:0,w:0,h:0};let e=1/0,n=1/0,s=-1/0,l=-1/0;return d.forEach(o=>{const[i,f]=o.XY;e=Math.min(e,i-r),n=Math.min(n,f-r),s=Math.max(s,i+r),l=Math.max(l,f+r)}),t.x=e,t.y=n,t.w=s-e,t.h=l-n,t}function Ce(d,r){return!(d.x+d.w<r.x||d.x>r.x+r.w||d.y+d.h<r.y||d.y>r.y+r.h)}function Wt(d,r=10){return{x:Math.floor(d.x-r),y:Math.floor(d.y-r),w:Math.floor(d.w+r*2),h:Math.floor(d.h+r*2)}}function Re(d,r){return{x:d.x+r[0],y:d.y+r[1],w:d.w,h:d.h}}function vn(d,r){const t=new _(d.x,d.y),e=new _(d.x+d.w,d.y),n=new _(d.x+d.w,d.y+d.h),s=new _(d.x,d.y+d.h),l=new _(d.x+d.w/2,d.y+d.h/2),o=Math.PI*r/180,i=_.RotWith(t,l,o),f=_.RotWith(e,l,o),p=_.RotWith(n,l,o),c=_.RotWith(s,l,o);return Bt([i,f,p,c])}function yn(d,r){const t=new _(d.x,d.y),e=new _(d.x+d.w,d.y),n=new _(d.x+d.w,d.y+d.h),s=new _(d.x,d.y+d.h),l=new _(d.x+d.w/2,d.y+d.h/2),o=new _(r[0],r[1]),i=_.ScaleWOrigin(t,o,l),f=_.ScaleWOrigin(e,o,l),p=_.ScaleWOrigin(n,o,l),c=_.ScaleWOrigin(s,o,l);return Bt([i,f,p,c])}function Lh(d,r,t){const e=new _(r[0],r[1]);for(let n=0;n<d.length;n+=3){const s=new _(d[n],d[n+1]),l=Math.PI*t/180,o=_.RotWith(s,e,l);d[n]=o.x,d[n+1]=o.y}}function bh(d,r,t){const e=new _(r[0],r[1]);for(let n=0;n<d.length;n+=3){const s=new _(d[n],d[n+1]),l=new _(t[0],t[1]);if(n<d.length-3){const i=new _(d[n+3],d[n+4]),f=_.Tan(i,s).per().mul(d[n+2]).mulV(l).len();d[n+2]=f}else if(n===d.length-3){const i=new _(d[n-3],d[n-2]),f=_.Tan(s,i).per().mul(d[n+2]).mulV(l).len();d[n+2]=f}const o=_.ScaleWOrigin(s,l,e);d[n]=o.x,d[n+1]=o.y}}function Dh(d,r){return d[0]>=r.x&&d[0]<=r.x+r.w&&d[1]>=r.y&&d[1]<=r.y+r.h}function Sn(d,r){const t=d<=r?1:d/r,e=r<=d?1:r/d;return[t,e]}const wh=d=>{if(d.tagName==="GROUP"){const r=Object.getOwnPropertySymbols(d).find(t=>t.toString()==="Symbol(sealed)");if(r&&d[r])return!0}return!1},Nh=d=>d!==ht.Text;function Te(d){return`${Ve(d.x)},${Ve(d.y)} `}function Me(d,r){return`${Ve((d.x+r.x)/2)},${Ve((d.y+r.y)/2)} `}function Ve(d){return+d.toFixed(4)}var Bh=ue,Wh=se,Fh="[object Number]";function jh(d){return typeof d=="number"||Wh(d)&&Bh(d)==Fh}var Uh=jh,kt=Xt(Uh);const te=class te{constructor(r){nt(this,"syncUnitTime",1e3);nt(this,"vNodes");nt(this,"drawLayer");nt(this,"fullLayer");nt(this,"workId");const{vNodes:t,fullLayer:e,drawLayer:n}=r;this.vNodes=t,this.fullLayer=e,this.drawLayer=n}setWorkId(r){this.workId=r}getWorkId(){return this.workId}getWorkOptions(){return this.workOptions}setWorkOptions(r){var n,s,l;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;const t=(n=this.workId)==null?void 0:n.toString(),e=t&&((s=this.vNodes)==null?void 0:s.get(t))||void 0;t&&e&&(e.opt=r,(l=this.vNodes)==null||l.setInfo(t,e))}updataOptService(r){var n,s;let t;const e=(n=this.workId)==null?void 0:n.toString();if(e&&r){const l=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(l.length!==1)return;const o=l[0],{pos:i,zIndex:f,scale:p,angle:c,translate:m}=r,y={};kt(f)&&(y.zIndex=f),i&&(y.pos=[i[0],i[1]]),p&&(y.scale=p),c&&(y.rotate=c),m&&(y.translate=m),o.attr(y);const O=o==null?void 0:o.getBoundingClientRect();return O&&(t=Ot(t,{x:Math.floor(O.x-te.SafeBorderPadding),y:Math.floor(O.y-te.SafeBorderPadding),w:Math.floor(O.width+te.SafeBorderPadding*2),h:Math.floor(O.height+te.SafeBorderPadding*2)})),(s=this.vNodes)==null||s.setInfo(e,{rect:t,centerPos:i}),t}}static updateNodeOpt(r){const{node:t,opt:e,vNodes:n,willSerializeData:s,targetNode:l}=r,{zIndex:o,translate:i,angle:f,box:p,boxScale:c,boxTranslate:m,pointMap:y}=e;let O;const x=l&&Jt(l)||n.get(t.name);if(!x)return;kt(o)&&(t.setAttribute("zIndex",o),x.opt.zIndex=o);const v=t.parent;if(v){if(p&&m&&c){const{rect:T}=x,a=[];for(let L=0;L<x.op.length;L+=3)a.push(new xt(x.op[L],x.op[L+1],x.op[L+2]));const h=Bt(a),u=[h.w*v.worldScaling[0],h.h*v.worldScaling[0]],g=[T.w-u[0],T.h-u[1]],M=[(T.w*c[0]-g[0])/u[0],(T.h*c[1]-g[1])/u[1]],A=[m[0]/v.worldScaling[0],m[1]/v.worldScaling[1]],I=x.op.map((L,D)=>{const R=D%3;return R===0?L+A[0]:R===1?L+A[1]:L}),b=[x.centerPos[0]+A[0],x.centerPos[1]+A[1]];bh(I,b,M);const E=[];for(let L=0;L<I.length;L+=3)E.push(new xt(I[L],I[L+1],I[L+2]));x.op=I,x.centerPos=b}else if(i){const T=[i[0]/v.worldScaling[0],i[1]/v.worldScaling[1]];t.setAttribute("translate",T),x.opt.translate=T,l&&(O=Re(x.rect,i),x.rect=O)}else kt(f)&&(t.setAttribute("rotate",f),x.opt.rotate=f,l&&(O=vn(x.rect,f),x.rect=O));if(y){const T=y.get(t.name);if(T)for(let a=0,h=0;a<x.op.length;a+=3,h++)x.op[a]=T[h][0],x.op[a+1]=T[h][1]}if(s){if(i){const T=[i[0]/v.worldScaling[0],i[1]/v.worldScaling[1]],a=x.op.map((h,u)=>{const g=u%3;return g===0?h+T[0]:g===1?h+T[1]:h});x.op=a,x.centerPos=[x.centerPos[0]+T[0],x.centerPos[1]+T[1]],x!=null&&x.opt&&(x.opt.translate=void 0)}else if(kt(f)){const T=x.op;Lh(T,x.centerPos,f),x.op=T,x!=null&&x.opt&&(x.opt.rotate=void 0)}}x&&n.setInfo(t.name,x)}}static getCenterPos(r,t){const{worldPosition:e,worldScaling:n}=t;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]]}static getRectFromLayer(r,t){const e=r.getElementsByName(t)[0];if(e){const n=e.getBoundingClientRect();return{x:Math.floor(n.x-te.SafeBorderPadding),y:Math.floor(n.y-te.SafeBorderPadding),w:Math.floor(n.width+te.SafeBorderPadding*2),h:Math.floor(n.height+te.SafeBorderPadding*2)}}}};nt(te,"SafeBorderPadding",10);let yt=te;var Dt=function(d){var r={};function t(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return d[e].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=d,t.c=r,t.d=function(e,n,s){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:s})},t.r=function(e){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(n&1&&(e=t(e)),n&8||n&4&&typeof e=="object"&&e&&e.__esModule)return e;var s=Object.create(null);if(t.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),n&2&&typeof e!="string")for(var l in e)t.d(s,l,(function(o){return e[o]}).bind(null,l));return s},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=0)}([function(d,r,t){t.r(r),t.d(r,"version",function(){return H}),t.d(r,"helpers",function(){return B}),t.d(r,"createElement",function(){return D}),t.d(r,"isSpriteNode",function(){return R}),t.d(r,"registerNode",function(){return C});var e=t(12);t.d(r,"ENV",function(){return e.ENV});var n=t(68);t.d(r,"requestAnimationFrame",function(){return n.requestAnimationFrame}),t.d(r,"cancelAnimationFrame",function(){return n.cancelAnimationFrame});var s=t(70);t.d(r,"Node",function(){return s.default});var l=t(217);t.d(r,"Cloud",function(){return l.default});var o=t(219);t.d(r,"Block",function(){return o.default});var i=t(224);t.d(r,"Sprite",function(){return i.default});var f=t(226);t.d(r,"Path",function(){return f.default});var p=t(229);t.d(r,"Rect",function(){return p.default});var c=t(231);t.d(r,"Triangle",function(){return c.default});var m=t(236);t.d(r,"Parallel",function(){return m.default});var y=t(238);t.d(r,"Regular",function(){return y.default});var O=t(240);t.d(r,"Star",function(){return O.default});var x=t(242);t.d(r,"Ellipse",function(){return x.default});var v=t(244);t.d(r,"Arc",function(){return v.default});var T=t(246);t.d(r,"Ring",function(){return T.default});var a=t(232);t.d(r,"Polyline",function(){return a.default});var h=t(248);t.d(r,"Label",function(){return h.default});var u=t(250);t.d(r,"Group",function(){return u.default});var g=t(286);t.d(r,"Layer",function(){return g.default});var M=t(287);t.d(r,"SpriteSvg",function(){return M.default});var A=t(289);t.d(r,"LayerWorker",function(){return A.default});var I=t(290);t.d(r,"Scene",function(){return I.default});var b=t(213),E=t(221);t.d(r,"Color",function(){return E.Color}),t.d(r,"Gradient",function(){return E.Gradient});var L=t(72);t(1).glMatrix.setMatrixArrayType(Array);const D=b.default.createElement,R=b.default.isSpriteNode,C=b.default.registerNode,B={parseColor:E.parseColor,sizeToPixel:L.sizeToPixel,toArray:L.toArray,toString:L.toString,toNumber:L.toNumber};let z;z="3.8.3";const H=z},function(d,r,t){t.r(r);var e=t(2);t.d(r,"glMatrix",function(){return e});var n=t(3);t.d(r,"mat2",function(){return n});var s=t(4);t.d(r,"mat2d",function(){return s});var l=t(5);t.d(r,"mat3",function(){return l});var o=t(6);t.d(r,"mat4",function(){return o});var i=t(7);t.d(r,"quat",function(){return i});var f=t(10);t.d(r,"quat2",function(){return f});var p=t(11);t.d(r,"vec2",function(){return p});var c=t(8);t.d(r,"vec3",function(){return c});var m=t(9);t.d(r,"vec4",function(){return m})},function(d,r,t){t.r(r),t.d(r,"EPSILON",function(){return e}),t.d(r,"ARRAY_TYPE",function(){return n}),t.d(r,"RANDOM",function(){return s}),t.d(r,"setMatrixArrayType",function(){return l}),t.d(r,"toRadian",function(){return i}),t.d(r,"equals",function(){return f});var e=1e-6,n=typeof Float32Array<"u"?Float32Array:Array,s=Math.random;function l(p){n=p}var o=Math.PI/180;function i(p){return p*o}function f(p,c){return Math.abs(p-c)<=e*Math.max(1,Math.abs(p),Math.abs(c))}Math.hypot||(Math.hypot=function(){for(var p=0,c=arguments.length;c--;)p+=arguments[c]*arguments[c];return Math.sqrt(p)})},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"copy",function(){return l}),t.d(r,"identity",function(){return o}),t.d(r,"fromValues",function(){return i}),t.d(r,"set",function(){return f}),t.d(r,"transpose",function(){return p}),t.d(r,"invert",function(){return c}),t.d(r,"adjoint",function(){return m}),t.d(r,"determinant",function(){return y}),t.d(r,"multiply",function(){return O}),t.d(r,"rotate",function(){return x}),t.d(r,"scale",function(){return v}),t.d(r,"fromRotation",function(){return T}),t.d(r,"fromScaling",function(){return a}),t.d(r,"str",function(){return h}),t.d(r,"frob",function(){return u}),t.d(r,"LDU",function(){return g}),t.d(r,"add",function(){return M}),t.d(r,"subtract",function(){return A}),t.d(r,"exactEquals",function(){return I}),t.d(r,"equals",function(){return b}),t.d(r,"multiplyScalar",function(){return E}),t.d(r,"multiplyScalarAndAdd",function(){return L}),t.d(r,"mul",function(){return D}),t.d(r,"sub",function(){return R});var e=t(2);function n(){var C=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(C[1]=0,C[2]=0),C[0]=1,C[3]=1,C}function s(C){var B=new e.ARRAY_TYPE(4);return B[0]=C[0],B[1]=C[1],B[2]=C[2],B[3]=C[3],B}function l(C,B){return C[0]=B[0],C[1]=B[1],C[2]=B[2],C[3]=B[3],C}function o(C){return C[0]=1,C[1]=0,C[2]=0,C[3]=1,C}function i(C,B,z,H){var X=new e.ARRAY_TYPE(4);return X[0]=C,X[1]=B,X[2]=z,X[3]=H,X}function f(C,B,z,H,X){return C[0]=B,C[1]=z,C[2]=H,C[3]=X,C}function p(C,B){if(C===B){var z=B[1];C[1]=B[2],C[2]=z}else C[0]=B[0],C[1]=B[2],C[2]=B[1],C[3]=B[3];return C}function c(C,B){var z=B[0],H=B[1],X=B[2],Z=B[3],j=z*Z-X*H;return j?(j=1/j,C[0]=Z*j,C[1]=-H*j,C[2]=-X*j,C[3]=z*j,C):null}function m(C,B){var z=B[0];return C[0]=B[3],C[1]=-B[1],C[2]=-B[2],C[3]=z,C}function y(C){return C[0]*C[3]-C[2]*C[1]}function O(C,B,z){var H=B[0],X=B[1],Z=B[2],j=B[3],G=z[0],Q=z[1],tt=z[2],et=z[3];return C[0]=H*G+Z*Q,C[1]=X*G+j*Q,C[2]=H*tt+Z*et,C[3]=X*tt+j*et,C}function x(C,B,z){var H=B[0],X=B[1],Z=B[2],j=B[3],G=Math.sin(z),Q=Math.cos(z);return C[0]=H*Q+Z*G,C[1]=X*Q+j*G,C[2]=H*-G+Z*Q,C[3]=X*-G+j*Q,C}function v(C,B,z){var H=B[0],X=B[1],Z=B[2],j=B[3],G=z[0],Q=z[1];return C[0]=H*G,C[1]=X*G,C[2]=Z*Q,C[3]=j*Q,C}function T(C,B){var z=Math.sin(B),H=Math.cos(B);return C[0]=H,C[1]=z,C[2]=-z,C[3]=H,C}function a(C,B){return C[0]=B[0],C[1]=0,C[2]=0,C[3]=B[1],C}function h(C){return"mat2("+C[0]+", "+C[1]+", "+C[2]+", "+C[3]+")"}function u(C){return Math.hypot(C[0],C[1],C[2],C[3])}function g(C,B,z,H){return C[2]=H[2]/H[0],z[0]=H[0],z[1]=H[1],z[3]=H[3]-C[2]*z[1],[C,B,z]}function M(C,B,z){return C[0]=B[0]+z[0],C[1]=B[1]+z[1],C[2]=B[2]+z[2],C[3]=B[3]+z[3],C}function A(C,B,z){return C[0]=B[0]-z[0],C[1]=B[1]-z[1],C[2]=B[2]-z[2],C[3]=B[3]-z[3],C}function I(C,B){return C[0]===B[0]&&C[1]===B[1]&&C[2]===B[2]&&C[3]===B[3]}function b(C,B){var z=C[0],H=C[1],X=C[2],Z=C[3],j=B[0],G=B[1],Q=B[2],tt=B[3];return Math.abs(z-j)<=e.EPSILON*Math.max(1,Math.abs(z),Math.abs(j))&&Math.abs(H-G)<=e.EPSILON*Math.max(1,Math.abs(H),Math.abs(G))&&Math.abs(X-Q)<=e.EPSILON*Math.max(1,Math.abs(X),Math.abs(Q))&&Math.abs(Z-tt)<=e.EPSILON*Math.max(1,Math.abs(Z),Math.abs(tt))}function E(C,B,z){return C[0]=B[0]*z,C[1]=B[1]*z,C[2]=B[2]*z,C[3]=B[3]*z,C}function L(C,B,z,H){return C[0]=B[0]+z[0]*H,C[1]=B[1]+z[1]*H,C[2]=B[2]+z[2]*H,C[3]=B[3]+z[3]*H,C}var D=O,R=A},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"copy",function(){return l}),t.d(r,"identity",function(){return o}),t.d(r,"fromValues",function(){return i}),t.d(r,"set",function(){return f}),t.d(r,"invert",function(){return p}),t.d(r,"determinant",function(){return c}),t.d(r,"multiply",function(){return m}),t.d(r,"rotate",function(){return y}),t.d(r,"scale",function(){return O}),t.d(r,"translate",function(){return x}),t.d(r,"fromRotation",function(){return v}),t.d(r,"fromScaling",function(){return T}),t.d(r,"fromTranslation",function(){return a}),t.d(r,"str",function(){return h}),t.d(r,"frob",function(){return u}),t.d(r,"add",function(){return g}),t.d(r,"subtract",function(){return M}),t.d(r,"multiplyScalar",function(){return A}),t.d(r,"multiplyScalarAndAdd",function(){return I}),t.d(r,"exactEquals",function(){return b}),t.d(r,"equals",function(){return E}),t.d(r,"mul",function(){return L}),t.d(r,"sub",function(){return D});var e=t(2);function n(){var R=new e.ARRAY_TYPE(6);return e.ARRAY_TYPE!=Float32Array&&(R[1]=0,R[2]=0,R[4]=0,R[5]=0),R[0]=1,R[3]=1,R}function s(R){var C=new e.ARRAY_TYPE(6);return C[0]=R[0],C[1]=R[1],C[2]=R[2],C[3]=R[3],C[4]=R[4],C[5]=R[5],C}function l(R,C){return R[0]=C[0],R[1]=C[1],R[2]=C[2],R[3]=C[3],R[4]=C[4],R[5]=C[5],R}function o(R){return R[0]=1,R[1]=0,R[2]=0,R[3]=1,R[4]=0,R[5]=0,R}function i(R,C,B,z,H,X){var Z=new e.ARRAY_TYPE(6);return Z[0]=R,Z[1]=C,Z[2]=B,Z[3]=z,Z[4]=H,Z[5]=X,Z}function f(R,C,B,z,H,X,Z){return R[0]=C,R[1]=B,R[2]=z,R[3]=H,R[4]=X,R[5]=Z,R}function p(R,C){var B=C[0],z=C[1],H=C[2],X=C[3],Z=C[4],j=C[5],G=B*X-z*H;return G?(G=1/G,R[0]=X*G,R[1]=-z*G,R[2]=-H*G,R[3]=B*G,R[4]=(H*j-X*Z)*G,R[5]=(z*Z-B*j)*G,R):null}function c(R){return R[0]*R[3]-R[1]*R[2]}function m(R,C,B){var z=C[0],H=C[1],X=C[2],Z=C[3],j=C[4],G=C[5],Q=B[0],tt=B[1],et=B[2],at=B[3],q=B[4],pt=B[5];return R[0]=z*Q+X*tt,R[1]=H*Q+Z*tt,R[2]=z*et+X*at,R[3]=H*et+Z*at,R[4]=z*q+X*pt+j,R[5]=H*q+Z*pt+G,R}function y(R,C,B){var z=C[0],H=C[1],X=C[2],Z=C[3],j=C[4],G=C[5],Q=Math.sin(B),tt=Math.cos(B);return R[0]=z*tt+X*Q,R[1]=H*tt+Z*Q,R[2]=z*-Q+X*tt,R[3]=H*-Q+Z*tt,R[4]=j,R[5]=G,R}function O(R,C,B){var z=C[0],H=C[1],X=C[2],Z=C[3],j=C[4],G=C[5],Q=B[0],tt=B[1];return R[0]=z*Q,R[1]=H*Q,R[2]=X*tt,R[3]=Z*tt,R[4]=j,R[5]=G,R}function x(R,C,B){var z=C[0],H=C[1],X=C[2],Z=C[3],j=C[4],G=C[5],Q=B[0],tt=B[1];return R[0]=z,R[1]=H,R[2]=X,R[3]=Z,R[4]=z*Q+X*tt+j,R[5]=H*Q+Z*tt+G,R}function v(R,C){var B=Math.sin(C),z=Math.cos(C);return R[0]=z,R[1]=B,R[2]=-B,R[3]=z,R[4]=0,R[5]=0,R}function T(R,C){return R[0]=C[0],R[1]=0,R[2]=0,R[3]=C[1],R[4]=0,R[5]=0,R}function a(R,C){return R[0]=1,R[1]=0,R[2]=0,R[3]=1,R[4]=C[0],R[5]=C[1],R}function h(R){return"mat2d("+R[0]+", "+R[1]+", "+R[2]+", "+R[3]+", "+R[4]+", "+R[5]+")"}function u(R){return Math.hypot(R[0],R[1],R[2],R[3],R[4],R[5],1)}function g(R,C,B){return R[0]=C[0]+B[0],R[1]=C[1]+B[1],R[2]=C[2]+B[2],R[3]=C[3]+B[3],R[4]=C[4]+B[4],R[5]=C[5]+B[5],R}function M(R,C,B){return R[0]=C[0]-B[0],R[1]=C[1]-B[1],R[2]=C[2]-B[2],R[3]=C[3]-B[3],R[4]=C[4]-B[4],R[5]=C[5]-B[5],R}function A(R,C,B){return R[0]=C[0]*B,R[1]=C[1]*B,R[2]=C[2]*B,R[3]=C[3]*B,R[4]=C[4]*B,R[5]=C[5]*B,R}function I(R,C,B,z){return R[0]=C[0]+B[0]*z,R[1]=C[1]+B[1]*z,R[2]=C[2]+B[2]*z,R[3]=C[3]+B[3]*z,R[4]=C[4]+B[4]*z,R[5]=C[5]+B[5]*z,R}function b(R,C){return R[0]===C[0]&&R[1]===C[1]&&R[2]===C[2]&&R[3]===C[3]&&R[4]===C[4]&&R[5]===C[5]}function E(R,C){var B=R[0],z=R[1],H=R[2],X=R[3],Z=R[4],j=R[5],G=C[0],Q=C[1],tt=C[2],et=C[3],at=C[4],q=C[5];return Math.abs(B-G)<=e.EPSILON*Math.max(1,Math.abs(B),Math.abs(G))&&Math.abs(z-Q)<=e.EPSILON*Math.max(1,Math.abs(z),Math.abs(Q))&&Math.abs(H-tt)<=e.EPSILON*Math.max(1,Math.abs(H),Math.abs(tt))&&Math.abs(X-et)<=e.EPSILON*Math.max(1,Math.abs(X),Math.abs(et))&&Math.abs(Z-at)<=e.EPSILON*Math.max(1,Math.abs(Z),Math.abs(at))&&Math.abs(j-q)<=e.EPSILON*Math.max(1,Math.abs(j),Math.abs(q))}var L=m,D=M},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"fromMat4",function(){return s}),t.d(r,"clone",function(){return l}),t.d(r,"copy",function(){return o}),t.d(r,"fromValues",function(){return i}),t.d(r,"set",function(){return f}),t.d(r,"identity",function(){return p}),t.d(r,"transpose",function(){return c}),t.d(r,"invert",function(){return m}),t.d(r,"adjoint",function(){return y}),t.d(r,"determinant",function(){return O}),t.d(r,"multiply",function(){return x}),t.d(r,"translate",function(){return v}),t.d(r,"rotate",function(){return T}),t.d(r,"scale",function(){return a}),t.d(r,"fromTranslation",function(){return h}),t.d(r,"fromRotation",function(){return u}),t.d(r,"fromScaling",function(){return g}),t.d(r,"fromMat2d",function(){return M}),t.d(r,"fromQuat",function(){return A}),t.d(r,"normalFromMat4",function(){return I}),t.d(r,"projection",function(){return b}),t.d(r,"str",function(){return E}),t.d(r,"frob",function(){return L}),t.d(r,"add",function(){return D}),t.d(r,"subtract",function(){return R}),t.d(r,"multiplyScalar",function(){return C}),t.d(r,"multiplyScalarAndAdd",function(){return B}),t.d(r,"exactEquals",function(){return z}),t.d(r,"equals",function(){return H}),t.d(r,"mul",function(){return X}),t.d(r,"sub",function(){return Z});var e=t(2);function n(){var j=new e.ARRAY_TYPE(9);return e.ARRAY_TYPE!=Float32Array&&(j[1]=0,j[2]=0,j[3]=0,j[5]=0,j[6]=0,j[7]=0),j[0]=1,j[4]=1,j[8]=1,j}function s(j,G){return j[0]=G[0],j[1]=G[1],j[2]=G[2],j[3]=G[4],j[4]=G[5],j[5]=G[6],j[6]=G[8],j[7]=G[9],j[8]=G[10],j}function l(j){var G=new e.ARRAY_TYPE(9);return G[0]=j[0],G[1]=j[1],G[2]=j[2],G[3]=j[3],G[4]=j[4],G[5]=j[5],G[6]=j[6],G[7]=j[7],G[8]=j[8],G}function o(j,G){return j[0]=G[0],j[1]=G[1],j[2]=G[2],j[3]=G[3],j[4]=G[4],j[5]=G[5],j[6]=G[6],j[7]=G[7],j[8]=G[8],j}function i(j,G,Q,tt,et,at,q,pt,dt){var W=new e.ARRAY_TYPE(9);return W[0]=j,W[1]=G,W[2]=Q,W[3]=tt,W[4]=et,W[5]=at,W[6]=q,W[7]=pt,W[8]=dt,W}function f(j,G,Q,tt,et,at,q,pt,dt,W){return j[0]=G,j[1]=Q,j[2]=tt,j[3]=et,j[4]=at,j[5]=q,j[6]=pt,j[7]=dt,j[8]=W,j}function p(j){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=1,j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function c(j,G){if(j===G){var Q=G[1],tt=G[2],et=G[5];j[1]=G[3],j[2]=G[6],j[3]=Q,j[5]=G[7],j[6]=tt,j[7]=et}else j[0]=G[0],j[1]=G[3],j[2]=G[6],j[3]=G[1],j[4]=G[4],j[5]=G[7],j[6]=G[2],j[7]=G[5],j[8]=G[8];return j}function m(j,G){var Q=G[0],tt=G[1],et=G[2],at=G[3],q=G[4],pt=G[5],dt=G[6],W=G[7],F=G[8],V=F*q-pt*W,J=-F*at+pt*dt,N=W*at-q*dt,$=Q*V+tt*J+et*N;return $?($=1/$,j[0]=V*$,j[1]=(-F*tt+et*W)*$,j[2]=(pt*tt-et*q)*$,j[3]=J*$,j[4]=(F*Q-et*dt)*$,j[5]=(-pt*Q+et*at)*$,j[6]=N*$,j[7]=(-W*Q+tt*dt)*$,j[8]=(q*Q-tt*at)*$,j):null}function y(j,G){var Q=G[0],tt=G[1],et=G[2],at=G[3],q=G[4],pt=G[5],dt=G[6],W=G[7],F=G[8];return j[0]=q*F-pt*W,j[1]=et*W-tt*F,j[2]=tt*pt-et*q,j[3]=pt*dt-at*F,j[4]=Q*F-et*dt,j[5]=et*at-Q*pt,j[6]=at*W-q*dt,j[7]=tt*dt-Q*W,j[8]=Q*q-tt*at,j}function O(j){var G=j[0],Q=j[1],tt=j[2],et=j[3],at=j[4],q=j[5],pt=j[6],dt=j[7],W=j[8];return G*(W*at-q*dt)+Q*(-W*et+q*pt)+tt*(dt*et-at*pt)}function x(j,G,Q){var tt=G[0],et=G[1],at=G[2],q=G[3],pt=G[4],dt=G[5],W=G[6],F=G[7],V=G[8],J=Q[0],N=Q[1],$=Q[2],S=Q[3],P=Q[4],w=Q[5],U=Q[6],K=Q[7],Y=Q[8];return j[0]=J*tt+N*q+$*W,j[1]=J*et+N*pt+$*F,j[2]=J*at+N*dt+$*V,j[3]=S*tt+P*q+w*W,j[4]=S*et+P*pt+w*F,j[5]=S*at+P*dt+w*V,j[6]=U*tt+K*q+Y*W,j[7]=U*et+K*pt+Y*F,j[8]=U*at+K*dt+Y*V,j}function v(j,G,Q){var tt=G[0],et=G[1],at=G[2],q=G[3],pt=G[4],dt=G[5],W=G[6],F=G[7],V=G[8],J=Q[0],N=Q[1];return j[0]=tt,j[1]=et,j[2]=at,j[3]=q,j[4]=pt,j[5]=dt,j[6]=J*tt+N*q+W,j[7]=J*et+N*pt+F,j[8]=J*at+N*dt+V,j}function T(j,G,Q){var tt=G[0],et=G[1],at=G[2],q=G[3],pt=G[4],dt=G[5],W=G[6],F=G[7],V=G[8],J=Math.sin(Q),N=Math.cos(Q);return j[0]=N*tt+J*q,j[1]=N*et+J*pt,j[2]=N*at+J*dt,j[3]=N*q-J*tt,j[4]=N*pt-J*et,j[5]=N*dt-J*at,j[6]=W,j[7]=F,j[8]=V,j}function a(j,G,Q){var tt=Q[0],et=Q[1];return j[0]=tt*G[0],j[1]=tt*G[1],j[2]=tt*G[2],j[3]=et*G[3],j[4]=et*G[4],j[5]=et*G[5],j[6]=G[6],j[7]=G[7],j[8]=G[8],j}function h(j,G){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=1,j[5]=0,j[6]=G[0],j[7]=G[1],j[8]=1,j}function u(j,G){var Q=Math.sin(G),tt=Math.cos(G);return j[0]=tt,j[1]=Q,j[2]=0,j[3]=-Q,j[4]=tt,j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function g(j,G){return j[0]=G[0],j[1]=0,j[2]=0,j[3]=0,j[4]=G[1],j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function M(j,G){return j[0]=G[0],j[1]=G[1],j[2]=0,j[3]=G[2],j[4]=G[3],j[5]=0,j[6]=G[4],j[7]=G[5],j[8]=1,j}function A(j,G){var Q=G[0],tt=G[1],et=G[2],at=G[3],q=Q+Q,pt=tt+tt,dt=et+et,W=Q*q,F=tt*q,V=tt*pt,J=et*q,N=et*pt,$=et*dt,S=at*q,P=at*pt,w=at*dt;return j[0]=1-V-$,j[3]=F-w,j[6]=J+P,j[1]=F+w,j[4]=1-W-$,j[7]=N-S,j[2]=J-P,j[5]=N+S,j[8]=1-W-V,j}function I(j,G){var Q=G[0],tt=G[1],et=G[2],at=G[3],q=G[4],pt=G[5],dt=G[6],W=G[7],F=G[8],V=G[9],J=G[10],N=G[11],$=G[12],S=G[13],P=G[14],w=G[15],U=Q*pt-tt*q,K=Q*dt-et*q,Y=Q*W-at*q,k=tt*dt-et*pt,rt=tt*W-at*pt,it=et*W-at*dt,lt=F*S-V*$,ut=F*P-J*$,ot=F*w-N*$,st=V*P-J*S,ft=V*w-N*S,mt=J*w-N*P,vt=U*mt-K*ft+Y*st+k*ot-rt*ut+it*lt;return vt?(vt=1/vt,j[0]=(pt*mt-dt*ft+W*st)*vt,j[1]=(dt*ot-q*mt-W*ut)*vt,j[2]=(q*ft-pt*ot+W*lt)*vt,j[3]=(et*ft-tt*mt-at*st)*vt,j[4]=(Q*mt-et*ot+at*ut)*vt,j[5]=(tt*ot-Q*ft-at*lt)*vt,j[6]=(S*it-P*rt+w*k)*vt,j[7]=(P*Y-$*it-w*K)*vt,j[8]=($*rt-S*Y+w*U)*vt,j):null}function b(j,G,Q){return j[0]=2/G,j[1]=0,j[2]=0,j[3]=0,j[4]=-2/Q,j[5]=0,j[6]=-1,j[7]=1,j[8]=1,j}function E(j){return"mat3("+j[0]+", "+j[1]+", "+j[2]+", "+j[3]+", "+j[4]+", "+j[5]+", "+j[6]+", "+j[7]+", "+j[8]+")"}function L(j){return Math.hypot(j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8])}function D(j,G,Q){return j[0]=G[0]+Q[0],j[1]=G[1]+Q[1],j[2]=G[2]+Q[2],j[3]=G[3]+Q[3],j[4]=G[4]+Q[4],j[5]=G[5]+Q[5],j[6]=G[6]+Q[6],j[7]=G[7]+Q[7],j[8]=G[8]+Q[8],j}function R(j,G,Q){return j[0]=G[0]-Q[0],j[1]=G[1]-Q[1],j[2]=G[2]-Q[2],j[3]=G[3]-Q[3],j[4]=G[4]-Q[4],j[5]=G[5]-Q[5],j[6]=G[6]-Q[6],j[7]=G[7]-Q[7],j[8]=G[8]-Q[8],j}function C(j,G,Q){return j[0]=G[0]*Q,j[1]=G[1]*Q,j[2]=G[2]*Q,j[3]=G[3]*Q,j[4]=G[4]*Q,j[5]=G[5]*Q,j[6]=G[6]*Q,j[7]=G[7]*Q,j[8]=G[8]*Q,j}function B(j,G,Q,tt){return j[0]=G[0]+Q[0]*tt,j[1]=G[1]+Q[1]*tt,j[2]=G[2]+Q[2]*tt,j[3]=G[3]+Q[3]*tt,j[4]=G[4]+Q[4]*tt,j[5]=G[5]+Q[5]*tt,j[6]=G[6]+Q[6]*tt,j[7]=G[7]+Q[7]*tt,j[8]=G[8]+Q[8]*tt,j}function z(j,G){return j[0]===G[0]&&j[1]===G[1]&&j[2]===G[2]&&j[3]===G[3]&&j[4]===G[4]&&j[5]===G[5]&&j[6]===G[6]&&j[7]===G[7]&&j[8]===G[8]}function H(j,G){var Q=j[0],tt=j[1],et=j[2],at=j[3],q=j[4],pt=j[5],dt=j[6],W=j[7],F=j[8],V=G[0],J=G[1],N=G[2],$=G[3],S=G[4],P=G[5],w=G[6],U=G[7],K=G[8];return Math.abs(Q-V)<=e.EPSILON*Math.max(1,Math.abs(Q),Math.abs(V))&&Math.abs(tt-J)<=e.EPSILON*Math.max(1,Math.abs(tt),Math.abs(J))&&Math.abs(et-N)<=e.EPSILON*Math.max(1,Math.abs(et),Math.abs(N))&&Math.abs(at-$)<=e.EPSILON*Math.max(1,Math.abs(at),Math.abs($))&&Math.abs(q-S)<=e.EPSILON*Math.max(1,Math.abs(q),Math.abs(S))&&Math.abs(pt-P)<=e.EPSILON*Math.max(1,Math.abs(pt),Math.abs(P))&&Math.abs(dt-w)<=e.EPSILON*Math.max(1,Math.abs(dt),Math.abs(w))&&Math.abs(W-U)<=e.EPSILON*Math.max(1,Math.abs(W),Math.abs(U))&&Math.abs(F-K)<=e.EPSILON*Math.max(1,Math.abs(F),Math.abs(K))}var X=x,Z=R},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"copy",function(){return l}),t.d(r,"fromValues",function(){return o}),t.d(r,"set",function(){return i}),t.d(r,"identity",function(){return f}),t.d(r,"transpose",function(){return p}),t.d(r,"invert",function(){return c}),t.d(r,"adjoint",function(){return m}),t.d(r,"determinant",function(){return y}),t.d(r,"multiply",function(){return O}),t.d(r,"translate",function(){return x}),t.d(r,"scale",function(){return v}),t.d(r,"rotate",function(){return T}),t.d(r,"rotateX",function(){return a}),t.d(r,"rotateY",function(){return h}),t.d(r,"rotateZ",function(){return u}),t.d(r,"fromTranslation",function(){return g}),t.d(r,"fromScaling",function(){return M}),t.d(r,"fromRotation",function(){return A}),t.d(r,"fromXRotation",function(){return I}),t.d(r,"fromYRotation",function(){return b}),t.d(r,"fromZRotation",function(){return E}),t.d(r,"fromRotationTranslation",function(){return L}),t.d(r,"fromQuat2",function(){return D}),t.d(r,"getTranslation",function(){return R}),t.d(r,"getScaling",function(){return C}),t.d(r,"getRotation",function(){return B}),t.d(r,"fromRotationTranslationScale",function(){return z}),t.d(r,"fromRotationTranslationScaleOrigin",function(){return H}),t.d(r,"fromQuat",function(){return X}),t.d(r,"frustum",function(){return Z}),t.d(r,"perspective",function(){return j}),t.d(r,"perspectiveFromFieldOfView",function(){return G}),t.d(r,"ortho",function(){return Q}),t.d(r,"lookAt",function(){return tt}),t.d(r,"targetTo",function(){return et}),t.d(r,"str",function(){return at}),t.d(r,"frob",function(){return q}),t.d(r,"add",function(){return pt}),t.d(r,"subtract",function(){return dt}),t.d(r,"multiplyScalar",function(){return W}),t.d(r,"multiplyScalarAndAdd",function(){return F}),t.d(r,"exactEquals",function(){return V}),t.d(r,"equals",function(){return J}),t.d(r,"mul",function(){return N}),t.d(r,"sub",function(){return $});var e=t(2);function n(){var S=new e.ARRAY_TYPE(16);return e.ARRAY_TYPE!=Float32Array&&(S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=0,S[12]=0,S[13]=0,S[14]=0),S[0]=1,S[5]=1,S[10]=1,S[15]=1,S}function s(S){var P=new e.ARRAY_TYPE(16);return P[0]=S[0],P[1]=S[1],P[2]=S[2],P[3]=S[3],P[4]=S[4],P[5]=S[5],P[6]=S[6],P[7]=S[7],P[8]=S[8],P[9]=S[9],P[10]=S[10],P[11]=S[11],P[12]=S[12],P[13]=S[13],P[14]=S[14],P[15]=S[15],P}function l(S,P){return S[0]=P[0],S[1]=P[1],S[2]=P[2],S[3]=P[3],S[4]=P[4],S[5]=P[5],S[6]=P[6],S[7]=P[7],S[8]=P[8],S[9]=P[9],S[10]=P[10],S[11]=P[11],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15],S}function o(S,P,w,U,K,Y,k,rt,it,lt,ut,ot,st,ft,mt,vt){var gt=new e.ARRAY_TYPE(16);return gt[0]=S,gt[1]=P,gt[2]=w,gt[3]=U,gt[4]=K,gt[5]=Y,gt[6]=k,gt[7]=rt,gt[8]=it,gt[9]=lt,gt[10]=ut,gt[11]=ot,gt[12]=st,gt[13]=ft,gt[14]=mt,gt[15]=vt,gt}function i(S,P,w,U,K,Y,k,rt,it,lt,ut,ot,st,ft,mt,vt,gt){return S[0]=P,S[1]=w,S[2]=U,S[3]=K,S[4]=Y,S[5]=k,S[6]=rt,S[7]=it,S[8]=lt,S[9]=ut,S[10]=ot,S[11]=st,S[12]=ft,S[13]=mt,S[14]=vt,S[15]=gt,S}function f(S){return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function p(S,P){if(S===P){var w=P[1],U=P[2],K=P[3],Y=P[6],k=P[7],rt=P[11];S[1]=P[4],S[2]=P[8],S[3]=P[12],S[4]=w,S[6]=P[9],S[7]=P[13],S[8]=U,S[9]=Y,S[11]=P[14],S[12]=K,S[13]=k,S[14]=rt}else S[0]=P[0],S[1]=P[4],S[2]=P[8],S[3]=P[12],S[4]=P[1],S[5]=P[5],S[6]=P[9],S[7]=P[13],S[8]=P[2],S[9]=P[6],S[10]=P[10],S[11]=P[14],S[12]=P[3],S[13]=P[7],S[14]=P[11],S[15]=P[15];return S}function c(S,P){var w=P[0],U=P[1],K=P[2],Y=P[3],k=P[4],rt=P[5],it=P[6],lt=P[7],ut=P[8],ot=P[9],st=P[10],ft=P[11],mt=P[12],vt=P[13],gt=P[14],St=P[15],It=w*rt-U*k,Et=w*it-K*k,Pt=w*lt-Y*k,At=U*it-K*rt,Ct=U*lt-Y*rt,Gt=K*lt-Y*it,Ut=ut*vt-ot*mt,$t=ut*gt-st*mt,zt=ut*St-ft*mt,Ht=ot*gt-st*vt,Kt=ot*St-ft*vt,Yt=st*St-ft*gt,bt=It*Yt-Et*Kt+Pt*Ht+At*zt-Ct*$t+Gt*Ut;return bt?(bt=1/bt,S[0]=(rt*Yt-it*Kt+lt*Ht)*bt,S[1]=(K*Kt-U*Yt-Y*Ht)*bt,S[2]=(vt*Gt-gt*Ct+St*At)*bt,S[3]=(st*Ct-ot*Gt-ft*At)*bt,S[4]=(it*zt-k*Yt-lt*$t)*bt,S[5]=(w*Yt-K*zt+Y*$t)*bt,S[6]=(gt*Pt-mt*Gt-St*Et)*bt,S[7]=(ut*Gt-st*Pt+ft*Et)*bt,S[8]=(k*Kt-rt*zt+lt*Ut)*bt,S[9]=(U*zt-w*Kt-Y*Ut)*bt,S[10]=(mt*Ct-vt*Pt+St*It)*bt,S[11]=(ot*Pt-ut*Ct-ft*It)*bt,S[12]=(rt*$t-k*Ht-it*Ut)*bt,S[13]=(w*Ht-U*$t+K*Ut)*bt,S[14]=(vt*Et-mt*At-gt*It)*bt,S[15]=(ut*At-ot*Et+st*It)*bt,S):null}function m(S,P){var w=P[0],U=P[1],K=P[2],Y=P[3],k=P[4],rt=P[5],it=P[6],lt=P[7],ut=P[8],ot=P[9],st=P[10],ft=P[11],mt=P[12],vt=P[13],gt=P[14],St=P[15];return S[0]=rt*(st*St-ft*gt)-ot*(it*St-lt*gt)+vt*(it*ft-lt*st),S[1]=-(U*(st*St-ft*gt)-ot*(K*St-Y*gt)+vt*(K*ft-Y*st)),S[2]=U*(it*St-lt*gt)-rt*(K*St-Y*gt)+vt*(K*lt-Y*it),S[3]=-(U*(it*ft-lt*st)-rt*(K*ft-Y*st)+ot*(K*lt-Y*it)),S[4]=-(k*(st*St-ft*gt)-ut*(it*St-lt*gt)+mt*(it*ft-lt*st)),S[5]=w*(st*St-ft*gt)-ut*(K*St-Y*gt)+mt*(K*ft-Y*st),S[6]=-(w*(it*St-lt*gt)-k*(K*St-Y*gt)+mt*(K*lt-Y*it)),S[7]=w*(it*ft-lt*st)-k*(K*ft-Y*st)+ut*(K*lt-Y*it),S[8]=k*(ot*St-ft*vt)-ut*(rt*St-lt*vt)+mt*(rt*ft-lt*ot),S[9]=-(w*(ot*St-ft*vt)-ut*(U*St-Y*vt)+mt*(U*ft-Y*ot)),S[10]=w*(rt*St-lt*vt)-k*(U*St-Y*vt)+mt*(U*lt-Y*rt),S[11]=-(w*(rt*ft-lt*ot)-k*(U*ft-Y*ot)+ut*(U*lt-Y*rt)),S[12]=-(k*(ot*gt-st*vt)-ut*(rt*gt-it*vt)+mt*(rt*st-it*ot)),S[13]=w*(ot*gt-st*vt)-ut*(U*gt-K*vt)+mt*(U*st-K*ot),S[14]=-(w*(rt*gt-it*vt)-k*(U*gt-K*vt)+mt*(U*it-K*rt)),S[15]=w*(rt*st-it*ot)-k*(U*st-K*ot)+ut*(U*it-K*rt),S}function y(S){var P=S[0],w=S[1],U=S[2],K=S[3],Y=S[4],k=S[5],rt=S[6],it=S[7],lt=S[8],ut=S[9],ot=S[10],st=S[11],ft=S[12],mt=S[13],vt=S[14],gt=S[15],St=P*k-w*Y,It=P*rt-U*Y,Et=P*it-K*Y,Pt=w*rt-U*k,At=w*it-K*k,Ct=U*it-K*rt,Gt=lt*mt-ut*ft,Ut=lt*vt-ot*ft,$t=lt*gt-st*ft,zt=ut*vt-ot*mt,Ht=ut*gt-st*mt,Kt=ot*gt-st*vt;return St*Kt-It*Ht+Et*zt+Pt*$t-At*Ut+Ct*Gt}function O(S,P,w){var U=P[0],K=P[1],Y=P[2],k=P[3],rt=P[4],it=P[5],lt=P[6],ut=P[7],ot=P[8],st=P[9],ft=P[10],mt=P[11],vt=P[12],gt=P[13],St=P[14],It=P[15],Et=w[0],Pt=w[1],At=w[2],Ct=w[3];return S[0]=Et*U+Pt*rt+At*ot+Ct*vt,S[1]=Et*K+Pt*it+At*st+Ct*gt,S[2]=Et*Y+Pt*lt+At*ft+Ct*St,S[3]=Et*k+Pt*ut+At*mt+Ct*It,Et=w[4],Pt=w[5],At=w[6],Ct=w[7],S[4]=Et*U+Pt*rt+At*ot+Ct*vt,S[5]=Et*K+Pt*it+At*st+Ct*gt,S[6]=Et*Y+Pt*lt+At*ft+Ct*St,S[7]=Et*k+Pt*ut+At*mt+Ct*It,Et=w[8],Pt=w[9],At=w[10],Ct=w[11],S[8]=Et*U+Pt*rt+At*ot+Ct*vt,S[9]=Et*K+Pt*it+At*st+Ct*gt,S[10]=Et*Y+Pt*lt+At*ft+Ct*St,S[11]=Et*k+Pt*ut+At*mt+Ct*It,Et=w[12],Pt=w[13],At=w[14],Ct=w[15],S[12]=Et*U+Pt*rt+At*ot+Ct*vt,S[13]=Et*K+Pt*it+At*st+Ct*gt,S[14]=Et*Y+Pt*lt+At*ft+Ct*St,S[15]=Et*k+Pt*ut+At*mt+Ct*It,S}function x(S,P,w){var U=w[0],K=w[1],Y=w[2],k,rt,it,lt,ut,ot,st,ft,mt,vt,gt,St;return P===S?(S[12]=P[0]*U+P[4]*K+P[8]*Y+P[12],S[13]=P[1]*U+P[5]*K+P[9]*Y+P[13],S[14]=P[2]*U+P[6]*K+P[10]*Y+P[14],S[15]=P[3]*U+P[7]*K+P[11]*Y+P[15]):(k=P[0],rt=P[1],it=P[2],lt=P[3],ut=P[4],ot=P[5],st=P[6],ft=P[7],mt=P[8],vt=P[9],gt=P[10],St=P[11],S[0]=k,S[1]=rt,S[2]=it,S[3]=lt,S[4]=ut,S[5]=ot,S[6]=st,S[7]=ft,S[8]=mt,S[9]=vt,S[10]=gt,S[11]=St,S[12]=k*U+ut*K+mt*Y+P[12],S[13]=rt*U+ot*K+vt*Y+P[13],S[14]=it*U+st*K+gt*Y+P[14],S[15]=lt*U+ft*K+St*Y+P[15]),S}function v(S,P,w){var U=w[0],K=w[1],Y=w[2];return S[0]=P[0]*U,S[1]=P[1]*U,S[2]=P[2]*U,S[3]=P[3]*U,S[4]=P[4]*K,S[5]=P[5]*K,S[6]=P[6]*K,S[7]=P[7]*K,S[8]=P[8]*Y,S[9]=P[9]*Y,S[10]=P[10]*Y,S[11]=P[11]*Y,S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15],S}function T(S,P,w,U){var K=U[0],Y=U[1],k=U[2],rt=Math.hypot(K,Y,k),it,lt,ut,ot,st,ft,mt,vt,gt,St,It,Et,Pt,At,Ct,Gt,Ut,$t,zt,Ht,Kt,Yt,bt,ee;return rt<e.EPSILON?null:(rt=1/rt,K*=rt,Y*=rt,k*=rt,it=Math.sin(w),lt=Math.cos(w),ut=1-lt,ot=P[0],st=P[1],ft=P[2],mt=P[3],vt=P[4],gt=P[5],St=P[6],It=P[7],Et=P[8],Pt=P[9],At=P[10],Ct=P[11],Gt=K*K*ut+lt,Ut=Y*K*ut+k*it,$t=k*K*ut-Y*it,zt=K*Y*ut-k*it,Ht=Y*Y*ut+lt,Kt=k*Y*ut+K*it,Yt=K*k*ut+Y*it,bt=Y*k*ut-K*it,ee=k*k*ut+lt,S[0]=ot*Gt+vt*Ut+Et*$t,S[1]=st*Gt+gt*Ut+Pt*$t,S[2]=ft*Gt+St*Ut+At*$t,S[3]=mt*Gt+It*Ut+Ct*$t,S[4]=ot*zt+vt*Ht+Et*Kt,S[5]=st*zt+gt*Ht+Pt*Kt,S[6]=ft*zt+St*Ht+At*Kt,S[7]=mt*zt+It*Ht+Ct*Kt,S[8]=ot*Yt+vt*bt+Et*ee,S[9]=st*Yt+gt*bt+Pt*ee,S[10]=ft*Yt+St*bt+At*ee,S[11]=mt*Yt+It*bt+Ct*ee,P!==S&&(S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S)}function a(S,P,w){var U=Math.sin(w),K=Math.cos(w),Y=P[4],k=P[5],rt=P[6],it=P[7],lt=P[8],ut=P[9],ot=P[10],st=P[11];return P!==S&&(S[0]=P[0],S[1]=P[1],S[2]=P[2],S[3]=P[3],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[4]=Y*K+lt*U,S[5]=k*K+ut*U,S[6]=rt*K+ot*U,S[7]=it*K+st*U,S[8]=lt*K-Y*U,S[9]=ut*K-k*U,S[10]=ot*K-rt*U,S[11]=st*K-it*U,S}function h(S,P,w){var U=Math.sin(w),K=Math.cos(w),Y=P[0],k=P[1],rt=P[2],it=P[3],lt=P[8],ut=P[9],ot=P[10],st=P[11];return P!==S&&(S[4]=P[4],S[5]=P[5],S[6]=P[6],S[7]=P[7],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[0]=Y*K-lt*U,S[1]=k*K-ut*U,S[2]=rt*K-ot*U,S[3]=it*K-st*U,S[8]=Y*U+lt*K,S[9]=k*U+ut*K,S[10]=rt*U+ot*K,S[11]=it*U+st*K,S}function u(S,P,w){var U=Math.sin(w),K=Math.cos(w),Y=P[0],k=P[1],rt=P[2],it=P[3],lt=P[4],ut=P[5],ot=P[6],st=P[7];return P!==S&&(S[8]=P[8],S[9]=P[9],S[10]=P[10],S[11]=P[11],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[0]=Y*K+lt*U,S[1]=k*K+ut*U,S[2]=rt*K+ot*U,S[3]=it*K+st*U,S[4]=lt*K-Y*U,S[5]=ut*K-k*U,S[6]=ot*K-rt*U,S[7]=st*K-it*U,S}function g(S,P){return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=P[0],S[13]=P[1],S[14]=P[2],S[15]=1,S}function M(S,P){return S[0]=P[0],S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=P[1],S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=P[2],S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function A(S,P,w){var U=w[0],K=w[1],Y=w[2],k=Math.hypot(U,K,Y),rt,it,lt;return k<e.EPSILON?null:(k=1/k,U*=k,K*=k,Y*=k,rt=Math.sin(P),it=Math.cos(P),lt=1-it,S[0]=U*U*lt+it,S[1]=K*U*lt+Y*rt,S[2]=Y*U*lt-K*rt,S[3]=0,S[4]=U*K*lt-Y*rt,S[5]=K*K*lt+it,S[6]=Y*K*lt+U*rt,S[7]=0,S[8]=U*Y*lt+K*rt,S[9]=K*Y*lt-U*rt,S[10]=Y*Y*lt+it,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S)}function I(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=U,S[6]=w,S[7]=0,S[8]=0,S[9]=-w,S[10]=U,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function b(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=U,S[1]=0,S[2]=-w,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=w,S[9]=0,S[10]=U,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function E(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=U,S[1]=w,S[2]=0,S[3]=0,S[4]=-w,S[5]=U,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function L(S,P,w){var U=P[0],K=P[1],Y=P[2],k=P[3],rt=U+U,it=K+K,lt=Y+Y,ut=U*rt,ot=U*it,st=U*lt,ft=K*it,mt=K*lt,vt=Y*lt,gt=k*rt,St=k*it,It=k*lt;return S[0]=1-(ft+vt),S[1]=ot+It,S[2]=st-St,S[3]=0,S[4]=ot-It,S[5]=1-(ut+vt),S[6]=mt+gt,S[7]=0,S[8]=st+St,S[9]=mt-gt,S[10]=1-(ut+ft),S[11]=0,S[12]=w[0],S[13]=w[1],S[14]=w[2],S[15]=1,S}function D(S,P){var w=new e.ARRAY_TYPE(3),U=-P[0],K=-P[1],Y=-P[2],k=P[3],rt=P[4],it=P[5],lt=P[6],ut=P[7],ot=U*U+K*K+Y*Y+k*k;return ot>0?(w[0]=(rt*k+ut*U+it*Y-lt*K)*2/ot,w[1]=(it*k+ut*K+lt*U-rt*Y)*2/ot,w[2]=(lt*k+ut*Y+rt*K-it*U)*2/ot):(w[0]=(rt*k+ut*U+it*Y-lt*K)*2,w[1]=(it*k+ut*K+lt*U-rt*Y)*2,w[2]=(lt*k+ut*Y+rt*K-it*U)*2),L(S,P,w),S}function R(S,P){return S[0]=P[12],S[1]=P[13],S[2]=P[14],S}function C(S,P){var w=P[0],U=P[1],K=P[2],Y=P[4],k=P[5],rt=P[6],it=P[8],lt=P[9],ut=P[10];return S[0]=Math.hypot(w,U,K),S[1]=Math.hypot(Y,k,rt),S[2]=Math.hypot(it,lt,ut),S}function B(S,P){var w=new e.ARRAY_TYPE(3);C(w,P);var U=1/w[0],K=1/w[1],Y=1/w[2],k=P[0]*U,rt=P[1]*K,it=P[2]*Y,lt=P[4]*U,ut=P[5]*K,ot=P[6]*Y,st=P[8]*U,ft=P[9]*K,mt=P[10]*Y,vt=k+ut+mt,gt=0;return vt>0?(gt=Math.sqrt(vt+1)*2,S[3]=.25*gt,S[0]=(ot-ft)/gt,S[1]=(st-it)/gt,S[2]=(rt-lt)/gt):k>ut&&k>mt?(gt=Math.sqrt(1+k-ut-mt)*2,S[3]=(ot-ft)/gt,S[0]=.25*gt,S[1]=(rt+lt)/gt,S[2]=(st+it)/gt):ut>mt?(gt=Math.sqrt(1+ut-k-mt)*2,S[3]=(st-it)/gt,S[0]=(rt+lt)/gt,S[1]=.25*gt,S[2]=(ot+ft)/gt):(gt=Math.sqrt(1+mt-k-ut)*2,S[3]=(rt-lt)/gt,S[0]=(st+it)/gt,S[1]=(ot+ft)/gt,S[2]=.25*gt),S}function z(S,P,w,U){var K=P[0],Y=P[1],k=P[2],rt=P[3],it=K+K,lt=Y+Y,ut=k+k,ot=K*it,st=K*lt,ft=K*ut,mt=Y*lt,vt=Y*ut,gt=k*ut,St=rt*it,It=rt*lt,Et=rt*ut,Pt=U[0],At=U[1],Ct=U[2];return S[0]=(1-(mt+gt))*Pt,S[1]=(st+Et)*Pt,S[2]=(ft-It)*Pt,S[3]=0,S[4]=(st-Et)*At,S[5]=(1-(ot+gt))*At,S[6]=(vt+St)*At,S[7]=0,S[8]=(ft+It)*Ct,S[9]=(vt-St)*Ct,S[10]=(1-(ot+mt))*Ct,S[11]=0,S[12]=w[0],S[13]=w[1],S[14]=w[2],S[15]=1,S}function H(S,P,w,U,K){var Y=P[0],k=P[1],rt=P[2],it=P[3],lt=Y+Y,ut=k+k,ot=rt+rt,st=Y*lt,ft=Y*ut,mt=Y*ot,vt=k*ut,gt=k*ot,St=rt*ot,It=it*lt,Et=it*ut,Pt=it*ot,At=U[0],Ct=U[1],Gt=U[2],Ut=K[0],$t=K[1],zt=K[2],Ht=(1-(vt+St))*At,Kt=(ft+Pt)*At,Yt=(mt-Et)*At,bt=(ft-Pt)*Ct,ee=(1-(st+St))*Ct,be=(gt+It)*Ct,De=(mt+Et)*Gt,_n=(gt-It)*Gt,ti=(1-(st+vt))*Gt;return S[0]=Ht,S[1]=Kt,S[2]=Yt,S[3]=0,S[4]=bt,S[5]=ee,S[6]=be,S[7]=0,S[8]=De,S[9]=_n,S[10]=ti,S[11]=0,S[12]=w[0]+Ut-(Ht*Ut+bt*$t+De*zt),S[13]=w[1]+$t-(Kt*Ut+ee*$t+_n*zt),S[14]=w[2]+zt-(Yt*Ut+be*$t+ti*zt),S[15]=1,S}function X(S,P){var w=P[0],U=P[1],K=P[2],Y=P[3],k=w+w,rt=U+U,it=K+K,lt=w*k,ut=U*k,ot=U*rt,st=K*k,ft=K*rt,mt=K*it,vt=Y*k,gt=Y*rt,St=Y*it;return S[0]=1-ot-mt,S[1]=ut+St,S[2]=st-gt,S[3]=0,S[4]=ut-St,S[5]=1-lt-mt,S[6]=ft+vt,S[7]=0,S[8]=st+gt,S[9]=ft-vt,S[10]=1-lt-ot,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function Z(S,P,w,U,K,Y,k){var rt=1/(w-P),it=1/(K-U),lt=1/(Y-k);return S[0]=Y*2*rt,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=Y*2*it,S[6]=0,S[7]=0,S[8]=(w+P)*rt,S[9]=(K+U)*it,S[10]=(k+Y)*lt,S[11]=-1,S[12]=0,S[13]=0,S[14]=k*Y*2*lt,S[15]=0,S}function j(S,P,w,U,K){var Y=1/Math.tan(P/2),k;return S[0]=Y/w,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=Y,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,K!=null&&K!==1/0?(k=1/(U-K),S[10]=(K+U)*k,S[14]=2*K*U*k):(S[10]=-1,S[14]=-2*U),S}function G(S,P,w,U){var K=Math.tan(P.upDegrees*Math.PI/180),Y=Math.tan(P.downDegrees*Math.PI/180),k=Math.tan(P.leftDegrees*Math.PI/180),rt=Math.tan(P.rightDegrees*Math.PI/180),it=2/(k+rt),lt=2/(K+Y);return S[0]=it,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=lt,S[6]=0,S[7]=0,S[8]=-((k-rt)*it*.5),S[9]=(K-Y)*lt*.5,S[10]=U/(w-U),S[11]=-1,S[12]=0,S[13]=0,S[14]=U*w/(w-U),S[15]=0,S}function Q(S,P,w,U,K,Y,k){var rt=1/(P-w),it=1/(U-K),lt=1/(Y-k);return S[0]=-2*rt,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=-2*it,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=2*lt,S[11]=0,S[12]=(P+w)*rt,S[13]=(K+U)*it,S[14]=(k+Y)*lt,S[15]=1,S}function tt(S,P,w,U){var K,Y,k,rt,it,lt,ut,ot,st,ft,mt=P[0],vt=P[1],gt=P[2],St=U[0],It=U[1],Et=U[2],Pt=w[0],At=w[1],Ct=w[2];return Math.abs(mt-Pt)<e.EPSILON&&Math.abs(vt-At)<e.EPSILON&&Math.abs(gt-Ct)<e.EPSILON?f(S):(ut=mt-Pt,ot=vt-At,st=gt-Ct,ft=1/Math.hypot(ut,ot,st),ut*=ft,ot*=ft,st*=ft,K=It*st-Et*ot,Y=Et*ut-St*st,k=St*ot-It*ut,ft=Math.hypot(K,Y,k),ft?(ft=1/ft,K*=ft,Y*=ft,k*=ft):(K=0,Y=0,k=0),rt=ot*k-st*Y,it=st*K-ut*k,lt=ut*Y-ot*K,ft=Math.hypot(rt,it,lt),ft?(ft=1/ft,rt*=ft,it*=ft,lt*=ft):(rt=0,it=0,lt=0),S[0]=K,S[1]=rt,S[2]=ut,S[3]=0,S[4]=Y,S[5]=it,S[6]=ot,S[7]=0,S[8]=k,S[9]=lt,S[10]=st,S[11]=0,S[12]=-(K*mt+Y*vt+k*gt),S[13]=-(rt*mt+it*vt+lt*gt),S[14]=-(ut*mt+ot*vt+st*gt),S[15]=1,S)}function et(S,P,w,U){var K=P[0],Y=P[1],k=P[2],rt=U[0],it=U[1],lt=U[2],ut=K-w[0],ot=Y-w[1],st=k-w[2],ft=ut*ut+ot*ot+st*st;ft>0&&(ft=1/Math.sqrt(ft),ut*=ft,ot*=ft,st*=ft);var mt=it*st-lt*ot,vt=lt*ut-rt*st,gt=rt*ot-it*ut;return ft=mt*mt+vt*vt+gt*gt,ft>0&&(ft=1/Math.sqrt(ft),mt*=ft,vt*=ft,gt*=ft),S[0]=mt,S[1]=vt,S[2]=gt,S[3]=0,S[4]=ot*gt-st*vt,S[5]=st*mt-ut*gt,S[6]=ut*vt-ot*mt,S[7]=0,S[8]=ut,S[9]=ot,S[10]=st,S[11]=0,S[12]=K,S[13]=Y,S[14]=k,S[15]=1,S}function at(S){return"mat4("+S[0]+", "+S[1]+", "+S[2]+", "+S[3]+", "+S[4]+", "+S[5]+", "+S[6]+", "+S[7]+", "+S[8]+", "+S[9]+", "+S[10]+", "+S[11]+", "+S[12]+", "+S[13]+", "+S[14]+", "+S[15]+")"}function q(S){return Math.hypot(S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7],S[8],S[9],S[10],S[11],S[12],S[13],S[14],S[15])}function pt(S,P,w){return S[0]=P[0]+w[0],S[1]=P[1]+w[1],S[2]=P[2]+w[2],S[3]=P[3]+w[3],S[4]=P[4]+w[4],S[5]=P[5]+w[5],S[6]=P[6]+w[6],S[7]=P[7]+w[7],S[8]=P[8]+w[8],S[9]=P[9]+w[9],S[10]=P[10]+w[10],S[11]=P[11]+w[11],S[12]=P[12]+w[12],S[13]=P[13]+w[13],S[14]=P[14]+w[14],S[15]=P[15]+w[15],S}function dt(S,P,w){return S[0]=P[0]-w[0],S[1]=P[1]-w[1],S[2]=P[2]-w[2],S[3]=P[3]-w[3],S[4]=P[4]-w[4],S[5]=P[5]-w[5],S[6]=P[6]-w[6],S[7]=P[7]-w[7],S[8]=P[8]-w[8],S[9]=P[9]-w[9],S[10]=P[10]-w[10],S[11]=P[11]-w[11],S[12]=P[12]-w[12],S[13]=P[13]-w[13],S[14]=P[14]-w[14],S[15]=P[15]-w[15],S}function W(S,P,w){return S[0]=P[0]*w,S[1]=P[1]*w,S[2]=P[2]*w,S[3]=P[3]*w,S[4]=P[4]*w,S[5]=P[5]*w,S[6]=P[6]*w,S[7]=P[7]*w,S[8]=P[8]*w,S[9]=P[9]*w,S[10]=P[10]*w,S[11]=P[11]*w,S[12]=P[12]*w,S[13]=P[13]*w,S[14]=P[14]*w,S[15]=P[15]*w,S}function F(S,P,w,U){return S[0]=P[0]+w[0]*U,S[1]=P[1]+w[1]*U,S[2]=P[2]+w[2]*U,S[3]=P[3]+w[3]*U,S[4]=P[4]+w[4]*U,S[5]=P[5]+w[5]*U,S[6]=P[6]+w[6]*U,S[7]=P[7]+w[7]*U,S[8]=P[8]+w[8]*U,S[9]=P[9]+w[9]*U,S[10]=P[10]+w[10]*U,S[11]=P[11]+w[11]*U,S[12]=P[12]+w[12]*U,S[13]=P[13]+w[13]*U,S[14]=P[14]+w[14]*U,S[15]=P[15]+w[15]*U,S}function V(S,P){return S[0]===P[0]&&S[1]===P[1]&&S[2]===P[2]&&S[3]===P[3]&&S[4]===P[4]&&S[5]===P[5]&&S[6]===P[6]&&S[7]===P[7]&&S[8]===P[8]&&S[9]===P[9]&&S[10]===P[10]&&S[11]===P[11]&&S[12]===P[12]&&S[13]===P[13]&&S[14]===P[14]&&S[15]===P[15]}function J(S,P){var w=S[0],U=S[1],K=S[2],Y=S[3],k=S[4],rt=S[5],it=S[6],lt=S[7],ut=S[8],ot=S[9],st=S[10],ft=S[11],mt=S[12],vt=S[13],gt=S[14],St=S[15],It=P[0],Et=P[1],Pt=P[2],At=P[3],Ct=P[4],Gt=P[5],Ut=P[6],$t=P[7],zt=P[8],Ht=P[9],Kt=P[10],Yt=P[11],bt=P[12],ee=P[13],be=P[14],De=P[15];return Math.abs(w-It)<=e.EPSILON*Math.max(1,Math.abs(w),Math.abs(It))&&Math.abs(U-Et)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(Et))&&Math.abs(K-Pt)<=e.EPSILON*Math.max(1,Math.abs(K),Math.abs(Pt))&&Math.abs(Y-At)<=e.EPSILON*Math.max(1,Math.abs(Y),Math.abs(At))&&Math.abs(k-Ct)<=e.EPSILON*Math.max(1,Math.abs(k),Math.abs(Ct))&&Math.abs(rt-Gt)<=e.EPSILON*Math.max(1,Math.abs(rt),Math.abs(Gt))&&Math.abs(it-Ut)<=e.EPSILON*Math.max(1,Math.abs(it),Math.abs(Ut))&&Math.abs(lt-$t)<=e.EPSILON*Math.max(1,Math.abs(lt),Math.abs($t))&&Math.abs(ut-zt)<=e.EPSILON*Math.max(1,Math.abs(ut),Math.abs(zt))&&Math.abs(ot-Ht)<=e.EPSILON*Math.max(1,Math.abs(ot),Math.abs(Ht))&&Math.abs(st-Kt)<=e.EPSILON*Math.max(1,Math.abs(st),Math.abs(Kt))&&Math.abs(ft-Yt)<=e.EPSILON*Math.max(1,Math.abs(ft),Math.abs(Yt))&&Math.abs(mt-bt)<=e.EPSILON*Math.max(1,Math.abs(mt),Math.abs(bt))&&Math.abs(vt-ee)<=e.EPSILON*Math.max(1,Math.abs(vt),Math.abs(ee))&&Math.abs(gt-be)<=e.EPSILON*Math.max(1,Math.abs(gt),Math.abs(be))&&Math.abs(St-De)<=e.EPSILON*Math.max(1,Math.abs(St),Math.abs(De))}var N=O,$=dt},function(d,r,t){t.r(r),t.d(r,"create",function(){return o}),t.d(r,"identity",function(){return i}),t.d(r,"setAxisAngle",function(){return f}),t.d(r,"getAxisAngle",function(){return p}),t.d(r,"getAngle",function(){return c}),t.d(r,"multiply",function(){return m}),t.d(r,"rotateX",function(){return y}),t.d(r,"rotateY",function(){return O}),t.d(r,"rotateZ",function(){return x}),t.d(r,"calculateW",function(){return v}),t.d(r,"exp",function(){return T}),t.d(r,"ln",function(){return a}),t.d(r,"pow",function(){return h}),t.d(r,"slerp",function(){return u}),t.d(r,"random",function(){return g}),t.d(r,"invert",function(){return M}),t.d(r,"conjugate",function(){return A}),t.d(r,"fromMat3",function(){return I}),t.d(r,"fromEuler",function(){return b}),t.d(r,"str",function(){return E}),t.d(r,"clone",function(){return L}),t.d(r,"fromValues",function(){return D}),t.d(r,"copy",function(){return R}),t.d(r,"set",function(){return C}),t.d(r,"add",function(){return B}),t.d(r,"mul",function(){return z}),t.d(r,"scale",function(){return H}),t.d(r,"dot",function(){return X}),t.d(r,"lerp",function(){return Z}),t.d(r,"length",function(){return j}),t.d(r,"len",function(){return G}),t.d(r,"squaredLength",function(){return Q}),t.d(r,"sqrLen",function(){return tt}),t.d(r,"normalize",function(){return et}),t.d(r,"exactEquals",function(){return at}),t.d(r,"equals",function(){return q}),t.d(r,"rotationTo",function(){return pt}),t.d(r,"sqlerp",function(){return dt}),t.d(r,"setAxes",function(){return W});var e=t(2),n=t(5),s=t(8),l=t(9);function o(){var F=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(F[0]=0,F[1]=0,F[2]=0),F[3]=1,F}function i(F){return F[0]=0,F[1]=0,F[2]=0,F[3]=1,F}function f(F,V,J){J=J*.5;var N=Math.sin(J);return F[0]=N*V[0],F[1]=N*V[1],F[2]=N*V[2],F[3]=Math.cos(J),F}function p(F,V){var J=Math.acos(V[3])*2,N=Math.sin(J/2);return N>e.EPSILON?(F[0]=V[0]/N,F[1]=V[1]/N,F[2]=V[2]/N):(F[0]=1,F[1]=0,F[2]=0),J}function c(F,V){var J=X(F,V);return Math.acos(2*J*J-1)}function m(F,V,J){var N=V[0],$=V[1],S=V[2],P=V[3],w=J[0],U=J[1],K=J[2],Y=J[3];return F[0]=N*Y+P*w+$*K-S*U,F[1]=$*Y+P*U+S*w-N*K,F[2]=S*Y+P*K+N*U-$*w,F[3]=P*Y-N*w-$*U-S*K,F}function y(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U+P*w,F[1]=$*U+S*w,F[2]=S*U-$*w,F[3]=P*U-N*w,F}function O(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U-S*w,F[1]=$*U+P*w,F[2]=S*U+N*w,F[3]=P*U-$*w,F}function x(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U+$*w,F[1]=$*U-N*w,F[2]=S*U+P*w,F[3]=P*U-S*w,F}function v(F,V){var J=V[0],N=V[1],$=V[2];return F[0]=J,F[1]=N,F[2]=$,F[3]=Math.sqrt(Math.abs(1-J*J-N*N-$*$)),F}function T(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=Math.sqrt(J*J+N*N+$*$),w=Math.exp(S),U=P>0?w*Math.sin(P)/P:0;return F[0]=J*U,F[1]=N*U,F[2]=$*U,F[3]=w*Math.cos(P),F}function a(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=Math.sqrt(J*J+N*N+$*$),w=P>0?Math.atan2(P,S)/P:0;return F[0]=J*w,F[1]=N*w,F[2]=$*w,F[3]=.5*Math.log(J*J+N*N+$*$+S*S),F}function h(F,V,J){return a(F,V),H(F,F,J),T(F,F),F}function u(F,V,J,N){var $=V[0],S=V[1],P=V[2],w=V[3],U=J[0],K=J[1],Y=J[2],k=J[3],rt,it,lt,ut,ot;return it=$*U+S*K+P*Y+w*k,it<0&&(it=-it,U=-U,K=-K,Y=-Y,k=-k),1-it>e.EPSILON?(rt=Math.acos(it),lt=Math.sin(rt),ut=Math.sin((1-N)*rt)/lt,ot=Math.sin(N*rt)/lt):(ut=1-N,ot=N),F[0]=ut*$+ot*U,F[1]=ut*S+ot*K,F[2]=ut*P+ot*Y,F[3]=ut*w+ot*k,F}function g(F){var V=e.RANDOM(),J=e.RANDOM(),N=e.RANDOM(),$=Math.sqrt(1-V),S=Math.sqrt(V);return F[0]=$*Math.sin(2*Math.PI*J),F[1]=$*Math.cos(2*Math.PI*J),F[2]=S*Math.sin(2*Math.PI*N),F[3]=S*Math.cos(2*Math.PI*N),F}function M(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=J*J+N*N+$*$+S*S,w=P?1/P:0;return F[0]=-J*w,F[1]=-N*w,F[2]=-$*w,F[3]=S*w,F}function A(F,V){return F[0]=-V[0],F[1]=-V[1],F[2]=-V[2],F[3]=V[3],F}function I(F,V){var J=V[0]+V[4]+V[8],N;if(J>0)N=Math.sqrt(J+1),F[3]=.5*N,N=.5/N,F[0]=(V[5]-V[7])*N,F[1]=(V[6]-V[2])*N,F[2]=(V[1]-V[3])*N;else{var $=0;V[4]>V[0]&&($=1),V[8]>V[$*3+$]&&($=2);var S=($+1)%3,P=($+2)%3;N=Math.sqrt(V[$*3+$]-V[S*3+S]-V[P*3+P]+1),F[$]=.5*N,N=.5/N,F[3]=(V[S*3+P]-V[P*3+S])*N,F[S]=(V[S*3+$]+V[$*3+S])*N,F[P]=(V[P*3+$]+V[$*3+P])*N}return F}function b(F,V,J,N){var $=.5*Math.PI/180;V*=$,J*=$,N*=$;var S=Math.sin(V),P=Math.cos(V),w=Math.sin(J),U=Math.cos(J),K=Math.sin(N),Y=Math.cos(N);return F[0]=S*U*Y-P*w*K,F[1]=P*w*Y+S*U*K,F[2]=P*U*K-S*w*Y,F[3]=P*U*Y+S*w*K,F}function E(F){return"quat("+F[0]+", "+F[1]+", "+F[2]+", "+F[3]+")"}var L=l.clone,D=l.fromValues,R=l.copy,C=l.set,B=l.add,z=m,H=l.scale,X=l.dot,Z=l.lerp,j=l.length,G=j,Q=l.squaredLength,tt=Q,et=l.normalize,at=l.exactEquals,q=l.equals,pt=function(){var F=s.create(),V=s.fromValues(1,0,0),J=s.fromValues(0,1,0);return function(N,$,S){var P=s.dot($,S);return P<-.999999?(s.cross(F,V,$),s.len(F)<1e-6&&s.cross(F,J,$),s.normalize(F,F),f(N,F,Math.PI),N):P>.999999?(N[0]=0,N[1]=0,N[2]=0,N[3]=1,N):(s.cross(F,$,S),N[0]=F[0],N[1]=F[1],N[2]=F[2],N[3]=1+P,et(N,N))}}(),dt=function(){var F=o(),V=o();return function(J,N,$,S,P,w){return u(F,N,P,w),u(V,$,S,w),u(J,F,V,2*w*(1-w)),J}}(),W=function(){var F=n.create();return function(V,J,N,$){return F[0]=N[0],F[3]=N[1],F[6]=N[2],F[1]=$[0],F[4]=$[1],F[7]=$[2],F[2]=-J[0],F[5]=-J[1],F[8]=-J[2],et(V,I(V,F))}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"length",function(){return l}),t.d(r,"fromValues",function(){return o}),t.d(r,"copy",function(){return i}),t.d(r,"set",function(){return f}),t.d(r,"add",function(){return p}),t.d(r,"subtract",function(){return c}),t.d(r,"multiply",function(){return m}),t.d(r,"divide",function(){return y}),t.d(r,"ceil",function(){return O}),t.d(r,"floor",function(){return x}),t.d(r,"min",function(){return v}),t.d(r,"max",function(){return T}),t.d(r,"round",function(){return a}),t.d(r,"scale",function(){return h}),t.d(r,"scaleAndAdd",function(){return u}),t.d(r,"distance",function(){return g}),t.d(r,"squaredDistance",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return I}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return R}),t.d(r,"hermite",function(){return C}),t.d(r,"bezier",function(){return B}),t.d(r,"random",function(){return z}),t.d(r,"transformMat4",function(){return H}),t.d(r,"transformMat3",function(){return X}),t.d(r,"transformQuat",function(){return Z}),t.d(r,"rotateX",function(){return j}),t.d(r,"rotateY",function(){return G}),t.d(r,"rotateZ",function(){return Q}),t.d(r,"angle",function(){return tt}),t.d(r,"zero",function(){return et}),t.d(r,"str",function(){return at}),t.d(r,"exactEquals",function(){return q}),t.d(r,"equals",function(){return pt}),t.d(r,"sub",function(){return dt}),t.d(r,"mul",function(){return W}),t.d(r,"div",function(){return F}),t.d(r,"dist",function(){return V}),t.d(r,"sqrDist",function(){return J}),t.d(r,"len",function(){return N}),t.d(r,"sqrLen",function(){return $}),t.d(r,"forEach",function(){return S});var e=t(2);function n(){var P=new e.ARRAY_TYPE(3);return e.ARRAY_TYPE!=Float32Array&&(P[0]=0,P[1]=0,P[2]=0),P}function s(P){var w=new e.ARRAY_TYPE(3);return w[0]=P[0],w[1]=P[1],w[2]=P[2],w}function l(P){var w=P[0],U=P[1],K=P[2];return Math.hypot(w,U,K)}function o(P,w,U){var K=new e.ARRAY_TYPE(3);return K[0]=P,K[1]=w,K[2]=U,K}function i(P,w){return P[0]=w[0],P[1]=w[1],P[2]=w[2],P}function f(P,w,U,K){return P[0]=w,P[1]=U,P[2]=K,P}function p(P,w,U){return P[0]=w[0]+U[0],P[1]=w[1]+U[1],P[2]=w[2]+U[2],P}function c(P,w,U){return P[0]=w[0]-U[0],P[1]=w[1]-U[1],P[2]=w[2]-U[2],P}function m(P,w,U){return P[0]=w[0]*U[0],P[1]=w[1]*U[1],P[2]=w[2]*U[2],P}function y(P,w,U){return P[0]=w[0]/U[0],P[1]=w[1]/U[1],P[2]=w[2]/U[2],P}function O(P,w){return P[0]=Math.ceil(w[0]),P[1]=Math.ceil(w[1]),P[2]=Math.ceil(w[2]),P}function x(P,w){return P[0]=Math.floor(w[0]),P[1]=Math.floor(w[1]),P[2]=Math.floor(w[2]),P}function v(P,w,U){return P[0]=Math.min(w[0],U[0]),P[1]=Math.min(w[1],U[1]),P[2]=Math.min(w[2],U[2]),P}function T(P,w,U){return P[0]=Math.max(w[0],U[0]),P[1]=Math.max(w[1],U[1]),P[2]=Math.max(w[2],U[2]),P}function a(P,w){return P[0]=Math.round(w[0]),P[1]=Math.round(w[1]),P[2]=Math.round(w[2]),P}function h(P,w,U){return P[0]=w[0]*U,P[1]=w[1]*U,P[2]=w[2]*U,P}function u(P,w,U,K){return P[0]=w[0]+U[0]*K,P[1]=w[1]+U[1]*K,P[2]=w[2]+U[2]*K,P}function g(P,w){var U=w[0]-P[0],K=w[1]-P[1],Y=w[2]-P[2];return Math.hypot(U,K,Y)}function M(P,w){var U=w[0]-P[0],K=w[1]-P[1],Y=w[2]-P[2];return U*U+K*K+Y*Y}function A(P){var w=P[0],U=P[1],K=P[2];return w*w+U*U+K*K}function I(P,w){return P[0]=-w[0],P[1]=-w[1],P[2]=-w[2],P}function b(P,w){return P[0]=1/w[0],P[1]=1/w[1],P[2]=1/w[2],P}function E(P,w){var U=w[0],K=w[1],Y=w[2],k=U*U+K*K+Y*Y;return k>0&&(k=1/Math.sqrt(k)),P[0]=w[0]*k,P[1]=w[1]*k,P[2]=w[2]*k,P}function L(P,w){return P[0]*w[0]+P[1]*w[1]+P[2]*w[2]}function D(P,w,U){var K=w[0],Y=w[1],k=w[2],rt=U[0],it=U[1],lt=U[2];return P[0]=Y*lt-k*it,P[1]=k*rt-K*lt,P[2]=K*it-Y*rt,P}function R(P,w,U,K){var Y=w[0],k=w[1],rt=w[2];return P[0]=Y+K*(U[0]-Y),P[1]=k+K*(U[1]-k),P[2]=rt+K*(U[2]-rt),P}function C(P,w,U,K,Y,k){var rt=k*k,it=rt*(2*k-3)+1,lt=rt*(k-2)+k,ut=rt*(k-1),ot=rt*(3-2*k);return P[0]=w[0]*it+U[0]*lt+K[0]*ut+Y[0]*ot,P[1]=w[1]*it+U[1]*lt+K[1]*ut+Y[1]*ot,P[2]=w[2]*it+U[2]*lt+K[2]*ut+Y[2]*ot,P}function B(P,w,U,K,Y,k){var rt=1-k,it=rt*rt,lt=k*k,ut=it*rt,ot=3*k*it,st=3*lt*rt,ft=lt*k;return P[0]=w[0]*ut+U[0]*ot+K[0]*st+Y[0]*ft,P[1]=w[1]*ut+U[1]*ot+K[1]*st+Y[1]*ft,P[2]=w[2]*ut+U[2]*ot+K[2]*st+Y[2]*ft,P}function z(P,w){w=w||1;var U=e.RANDOM()*2*Math.PI,K=e.RANDOM()*2-1,Y=Math.sqrt(1-K*K)*w;return P[0]=Math.cos(U)*Y,P[1]=Math.sin(U)*Y,P[2]=K*w,P}function H(P,w,U){var K=w[0],Y=w[1],k=w[2],rt=U[3]*K+U[7]*Y+U[11]*k+U[15];return rt=rt||1,P[0]=(U[0]*K+U[4]*Y+U[8]*k+U[12])/rt,P[1]=(U[1]*K+U[5]*Y+U[9]*k+U[13])/rt,P[2]=(U[2]*K+U[6]*Y+U[10]*k+U[14])/rt,P}function X(P,w,U){var K=w[0],Y=w[1],k=w[2];return P[0]=K*U[0]+Y*U[3]+k*U[6],P[1]=K*U[1]+Y*U[4]+k*U[7],P[2]=K*U[2]+Y*U[5]+k*U[8],P}function Z(P,w,U){var K=U[0],Y=U[1],k=U[2],rt=U[3],it=w[0],lt=w[1],ut=w[2],ot=Y*ut-k*lt,st=k*it-K*ut,ft=K*lt-Y*it,mt=Y*ft-k*st,vt=k*ot-K*ft,gt=K*st-Y*ot,St=rt*2;return ot*=St,st*=St,ft*=St,mt*=2,vt*=2,gt*=2,P[0]=it+ot+mt,P[1]=lt+st+vt,P[2]=ut+ft+gt,P}function j(P,w,U,K){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[0],k[1]=Y[1]*Math.cos(K)-Y[2]*Math.sin(K),k[2]=Y[1]*Math.sin(K)+Y[2]*Math.cos(K),P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function G(P,w,U,K){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[2]*Math.sin(K)+Y[0]*Math.cos(K),k[1]=Y[1],k[2]=Y[2]*Math.cos(K)-Y[0]*Math.sin(K),P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function Q(P,w,U,K){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[0]*Math.cos(K)-Y[1]*Math.sin(K),k[1]=Y[0]*Math.sin(K)+Y[1]*Math.cos(K),k[2]=Y[2],P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function tt(P,w){var U=P[0],K=P[1],Y=P[2],k=w[0],rt=w[1],it=w[2],lt=Math.sqrt(U*U+K*K+Y*Y),ut=Math.sqrt(k*k+rt*rt+it*it),ot=lt*ut,st=ot&&L(P,w)/ot;return Math.acos(Math.min(Math.max(st,-1),1))}function et(P){return P[0]=0,P[1]=0,P[2]=0,P}function at(P){return"vec3("+P[0]+", "+P[1]+", "+P[2]+")"}function q(P,w){return P[0]===w[0]&&P[1]===w[1]&&P[2]===w[2]}function pt(P,w){var U=P[0],K=P[1],Y=P[2],k=w[0],rt=w[1],it=w[2];return Math.abs(U-k)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(k))&&Math.abs(K-rt)<=e.EPSILON*Math.max(1,Math.abs(K),Math.abs(rt))&&Math.abs(Y-it)<=e.EPSILON*Math.max(1,Math.abs(Y),Math.abs(it))}var dt=c,W=m,F=y,V=g,J=M,N=l,$=A,S=function(){var P=n();return function(w,U,K,Y,k,rt){var it,lt;for(U||(U=3),K||(K=0),Y?lt=Math.min(Y*U+K,w.length):lt=w.length,it=K;it<lt;it+=U)P[0]=w[it],P[1]=w[it+1],P[2]=w[it+2],k(P,P,rt),w[it]=P[0],w[it+1]=P[1],w[it+2]=P[2];return w}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"fromValues",function(){return l}),t.d(r,"copy",function(){return o}),t.d(r,"set",function(){return i}),t.d(r,"add",function(){return f}),t.d(r,"subtract",function(){return p}),t.d(r,"multiply",function(){return c}),t.d(r,"divide",function(){return m}),t.d(r,"ceil",function(){return y}),t.d(r,"floor",function(){return O}),t.d(r,"min",function(){return x}),t.d(r,"max",function(){return v}),t.d(r,"round",function(){return T}),t.d(r,"scale",function(){return a}),t.d(r,"scaleAndAdd",function(){return h}),t.d(r,"distance",function(){return u}),t.d(r,"squaredDistance",function(){return g}),t.d(r,"length",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return I}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return R}),t.d(r,"random",function(){return C}),t.d(r,"transformMat4",function(){return B}),t.d(r,"transformQuat",function(){return z}),t.d(r,"zero",function(){return H}),t.d(r,"str",function(){return X}),t.d(r,"exactEquals",function(){return Z}),t.d(r,"equals",function(){return j}),t.d(r,"sub",function(){return G}),t.d(r,"mul",function(){return Q}),t.d(r,"div",function(){return tt}),t.d(r,"dist",function(){return et}),t.d(r,"sqrDist",function(){return at}),t.d(r,"len",function(){return q}),t.d(r,"sqrLen",function(){return pt}),t.d(r,"forEach",function(){return dt});var e=t(2);function n(){var W=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(W[0]=0,W[1]=0,W[2]=0,W[3]=0),W}function s(W){var F=new e.ARRAY_TYPE(4);return F[0]=W[0],F[1]=W[1],F[2]=W[2],F[3]=W[3],F}function l(W,F,V,J){var N=new e.ARRAY_TYPE(4);return N[0]=W,N[1]=F,N[2]=V,N[3]=J,N}function o(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W}function i(W,F,V,J,N){return W[0]=F,W[1]=V,W[2]=J,W[3]=N,W}function f(W,F,V){return W[0]=F[0]+V[0],W[1]=F[1]+V[1],W[2]=F[2]+V[2],W[3]=F[3]+V[3],W}function p(W,F,V){return W[0]=F[0]-V[0],W[1]=F[1]-V[1],W[2]=F[2]-V[2],W[3]=F[3]-V[3],W}function c(W,F,V){return W[0]=F[0]*V[0],W[1]=F[1]*V[1],W[2]=F[2]*V[2],W[3]=F[3]*V[3],W}function m(W,F,V){return W[0]=F[0]/V[0],W[1]=F[1]/V[1],W[2]=F[2]/V[2],W[3]=F[3]/V[3],W}function y(W,F){return W[0]=Math.ceil(F[0]),W[1]=Math.ceil(F[1]),W[2]=Math.ceil(F[2]),W[3]=Math.ceil(F[3]),W}function O(W,F){return W[0]=Math.floor(F[0]),W[1]=Math.floor(F[1]),W[2]=Math.floor(F[2]),W[3]=Math.floor(F[3]),W}function x(W,F,V){return W[0]=Math.min(F[0],V[0]),W[1]=Math.min(F[1],V[1]),W[2]=Math.min(F[2],V[2]),W[3]=Math.min(F[3],V[3]),W}function v(W,F,V){return W[0]=Math.max(F[0],V[0]),W[1]=Math.max(F[1],V[1]),W[2]=Math.max(F[2],V[2]),W[3]=Math.max(F[3],V[3]),W}function T(W,F){return W[0]=Math.round(F[0]),W[1]=Math.round(F[1]),W[2]=Math.round(F[2]),W[3]=Math.round(F[3]),W}function a(W,F,V){return W[0]=F[0]*V,W[1]=F[1]*V,W[2]=F[2]*V,W[3]=F[3]*V,W}function h(W,F,V,J){return W[0]=F[0]+V[0]*J,W[1]=F[1]+V[1]*J,W[2]=F[2]+V[2]*J,W[3]=F[3]+V[3]*J,W}function u(W,F){var V=F[0]-W[0],J=F[1]-W[1],N=F[2]-W[2],$=F[3]-W[3];return Math.hypot(V,J,N,$)}function g(W,F){var V=F[0]-W[0],J=F[1]-W[1],N=F[2]-W[2],$=F[3]-W[3];return V*V+J*J+N*N+$*$}function M(W){var F=W[0],V=W[1],J=W[2],N=W[3];return Math.hypot(F,V,J,N)}function A(W){var F=W[0],V=W[1],J=W[2],N=W[3];return F*F+V*V+J*J+N*N}function I(W,F){return W[0]=-F[0],W[1]=-F[1],W[2]=-F[2],W[3]=-F[3],W}function b(W,F){return W[0]=1/F[0],W[1]=1/F[1],W[2]=1/F[2],W[3]=1/F[3],W}function E(W,F){var V=F[0],J=F[1],N=F[2],$=F[3],S=V*V+J*J+N*N+$*$;return S>0&&(S=1/Math.sqrt(S)),W[0]=V*S,W[1]=J*S,W[2]=N*S,W[3]=$*S,W}function L(W,F){return W[0]*F[0]+W[1]*F[1]+W[2]*F[2]+W[3]*F[3]}function D(W,F,V,J){var N=V[0]*J[1]-V[1]*J[0],$=V[0]*J[2]-V[2]*J[0],S=V[0]*J[3]-V[3]*J[0],P=V[1]*J[2]-V[2]*J[1],w=V[1]*J[3]-V[3]*J[1],U=V[2]*J[3]-V[3]*J[2],K=F[0],Y=F[1],k=F[2],rt=F[3];return W[0]=Y*U-k*w+rt*P,W[1]=-(K*U)+k*S-rt*$,W[2]=K*w-Y*S+rt*N,W[3]=-(K*P)+Y*$-k*N,W}function R(W,F,V,J){var N=F[0],$=F[1],S=F[2],P=F[3];return W[0]=N+J*(V[0]-N),W[1]=$+J*(V[1]-$),W[2]=S+J*(V[2]-S),W[3]=P+J*(V[3]-P),W}function C(W,F){F=F||1;var V,J,N,$,S,P;do V=e.RANDOM()*2-1,J=e.RANDOM()*2-1,S=V*V+J*J;while(S>=1);do N=e.RANDOM()*2-1,$=e.RANDOM()*2-1,P=N*N+$*$;while(P>=1);var w=Math.sqrt((1-S)/P);return W[0]=F*V,W[1]=F*J,W[2]=F*N*w,W[3]=F*$*w,W}function B(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3];return W[0]=V[0]*J+V[4]*N+V[8]*$+V[12]*S,W[1]=V[1]*J+V[5]*N+V[9]*$+V[13]*S,W[2]=V[2]*J+V[6]*N+V[10]*$+V[14]*S,W[3]=V[3]*J+V[7]*N+V[11]*$+V[15]*S,W}function z(W,F,V){var J=F[0],N=F[1],$=F[2],S=V[0],P=V[1],w=V[2],U=V[3],K=U*J+P*$-w*N,Y=U*N+w*J-S*$,k=U*$+S*N-P*J,rt=-S*J-P*N-w*$;return W[0]=K*U+rt*-S+Y*-w-k*-P,W[1]=Y*U+rt*-P+k*-S-K*-w,W[2]=k*U+rt*-w+K*-P-Y*-S,W[3]=F[3],W}function H(W){return W[0]=0,W[1]=0,W[2]=0,W[3]=0,W}function X(W){return"vec4("+W[0]+", "+W[1]+", "+W[2]+", "+W[3]+")"}function Z(W,F){return W[0]===F[0]&&W[1]===F[1]&&W[2]===F[2]&&W[3]===F[3]}function j(W,F){var V=W[0],J=W[1],N=W[2],$=W[3],S=F[0],P=F[1],w=F[2],U=F[3];return Math.abs(V-S)<=e.EPSILON*Math.max(1,Math.abs(V),Math.abs(S))&&Math.abs(J-P)<=e.EPSILON*Math.max(1,Math.abs(J),Math.abs(P))&&Math.abs(N-w)<=e.EPSILON*Math.max(1,Math.abs(N),Math.abs(w))&&Math.abs($-U)<=e.EPSILON*Math.max(1,Math.abs($),Math.abs(U))}var G=p,Q=c,tt=m,et=u,at=g,q=M,pt=A,dt=function(){var W=n();return function(F,V,J,N,$,S){var P,w;for(V||(V=4),J||(J=0),N?w=Math.min(N*V+J,F.length):w=F.length,P=J;P<w;P+=V)W[0]=F[P],W[1]=F[P+1],W[2]=F[P+2],W[3]=F[P+3],$(W,W,S),F[P]=W[0],F[P+1]=W[1],F[P+2]=W[2],F[P+3]=W[3];return F}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return l}),t.d(r,"clone",function(){return o}),t.d(r,"fromValues",function(){return i}),t.d(r,"fromRotationTranslationValues",function(){return f}),t.d(r,"fromRotationTranslation",function(){return p}),t.d(r,"fromTranslation",function(){return c}),t.d(r,"fromRotation",function(){return m}),t.d(r,"fromMat4",function(){return y}),t.d(r,"copy",function(){return O}),t.d(r,"identity",function(){return x}),t.d(r,"set",function(){return v}),t.d(r,"getReal",function(){return T}),t.d(r,"getDual",function(){return a}),t.d(r,"setReal",function(){return h}),t.d(r,"setDual",function(){return u}),t.d(r,"getTranslation",function(){return g}),t.d(r,"translate",function(){return M}),t.d(r,"rotateX",function(){return A}),t.d(r,"rotateY",function(){return I}),t.d(r,"rotateZ",function(){return b}),t.d(r,"rotateByQuatAppend",function(){return E}),t.d(r,"rotateByQuatPrepend",function(){return L}),t.d(r,"rotateAroundAxis",function(){return D}),t.d(r,"add",function(){return R}),t.d(r,"multiply",function(){return C}),t.d(r,"mul",function(){return B}),t.d(r,"scale",function(){return z}),t.d(r,"dot",function(){return H}),t.d(r,"lerp",function(){return X}),t.d(r,"invert",function(){return Z}),t.d(r,"conjugate",function(){return j}),t.d(r,"length",function(){return G}),t.d(r,"len",function(){return Q}),t.d(r,"squaredLength",function(){return tt}),t.d(r,"sqrLen",function(){return et}),t.d(r,"normalize",function(){return at}),t.d(r,"str",function(){return q}),t.d(r,"exactEquals",function(){return pt}),t.d(r,"equals",function(){return dt});var e=t(2),n=t(7),s=t(6);function l(){var W=new e.ARRAY_TYPE(8);return e.ARRAY_TYPE!=Float32Array&&(W[0]=0,W[1]=0,W[2]=0,W[4]=0,W[5]=0,W[6]=0,W[7]=0),W[3]=1,W}function o(W){var F=new e.ARRAY_TYPE(8);return F[0]=W[0],F[1]=W[1],F[2]=W[2],F[3]=W[3],F[4]=W[4],F[5]=W[5],F[6]=W[6],F[7]=W[7],F}function i(W,F,V,J,N,$,S,P){var w=new e.ARRAY_TYPE(8);return w[0]=W,w[1]=F,w[2]=V,w[3]=J,w[4]=N,w[5]=$,w[6]=S,w[7]=P,w}function f(W,F,V,J,N,$,S){var P=new e.ARRAY_TYPE(8);P[0]=W,P[1]=F,P[2]=V,P[3]=J;var w=N*.5,U=$*.5,K=S*.5;return P[4]=w*J+U*V-K*F,P[5]=U*J+K*W-w*V,P[6]=K*J+w*F-U*W,P[7]=-w*W-U*F-K*V,P}function p(W,F,V){var J=V[0]*.5,N=V[1]*.5,$=V[2]*.5,S=F[0],P=F[1],w=F[2],U=F[3];return W[0]=S,W[1]=P,W[2]=w,W[3]=U,W[4]=J*U+N*w-$*P,W[5]=N*U+$*S-J*w,W[6]=$*U+J*P-N*S,W[7]=-J*S-N*P-$*w,W}function c(W,F){return W[0]=0,W[1]=0,W[2]=0,W[3]=1,W[4]=F[0]*.5,W[5]=F[1]*.5,W[6]=F[2]*.5,W[7]=0,W}function m(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W[4]=0,W[5]=0,W[6]=0,W[7]=0,W}function y(W,F){var V=n.create();s.getRotation(V,F);var J=new e.ARRAY_TYPE(3);return s.getTranslation(J,F),p(W,V,J),W}function O(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W[4]=F[4],W[5]=F[5],W[6]=F[6],W[7]=F[7],W}function x(W){return W[0]=0,W[1]=0,W[2]=0,W[3]=1,W[4]=0,W[5]=0,W[6]=0,W[7]=0,W}function v(W,F,V,J,N,$,S,P,w){return W[0]=F,W[1]=V,W[2]=J,W[3]=N,W[4]=$,W[5]=S,W[6]=P,W[7]=w,W}var T=n.copy;function a(W,F){return W[0]=F[4],W[1]=F[5],W[2]=F[6],W[3]=F[7],W}var h=n.copy;function u(W,F){return W[4]=F[0],W[5]=F[1],W[6]=F[2],W[7]=F[3],W}function g(W,F){var V=F[4],J=F[5],N=F[6],$=F[7],S=-F[0],P=-F[1],w=-F[2],U=F[3];return W[0]=(V*U+$*S+J*w-N*P)*2,W[1]=(J*U+$*P+N*S-V*w)*2,W[2]=(N*U+$*w+V*P-J*S)*2,W}function M(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[0]*.5,w=V[1]*.5,U=V[2]*.5,K=F[4],Y=F[5],k=F[6],rt=F[7];return W[0]=J,W[1]=N,W[2]=$,W[3]=S,W[4]=S*P+N*U-$*w+K,W[5]=S*w+$*P-J*U+Y,W[6]=S*U+J*w-N*P+k,W[7]=-J*P-N*w-$*U+rt,W}function A(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],K=F[7],Y=P*S+K*J+w*$-U*N,k=w*S+K*N+U*J-P*$,rt=U*S+K*$+P*N-w*J,it=K*S-P*J-w*N-U*$;return n.rotateX(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function I(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],K=F[7],Y=P*S+K*J+w*$-U*N,k=w*S+K*N+U*J-P*$,rt=U*S+K*$+P*N-w*J,it=K*S-P*J-w*N-U*$;return n.rotateY(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function b(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],K=F[7],Y=P*S+K*J+w*$-U*N,k=w*S+K*N+U*J-P*$,rt=U*S+K*$+P*N-w*J,it=K*S-P*J-w*N-U*$;return n.rotateZ(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function E(W,F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=F[0],w=F[1],U=F[2],K=F[3];return W[0]=P*S+K*J+w*$-U*N,W[1]=w*S+K*N+U*J-P*$,W[2]=U*S+K*$+P*N-w*J,W[3]=K*S-P*J-w*N-U*$,P=F[4],w=F[5],U=F[6],K=F[7],W[4]=P*S+K*J+w*$-U*N,W[5]=w*S+K*N+U*J-P*$,W[6]=U*S+K*$+P*N-w*J,W[7]=K*S-P*J-w*N-U*$,W}function L(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[0],w=V[1],U=V[2],K=V[3];return W[0]=J*K+S*P+N*U-$*w,W[1]=N*K+S*w+$*P-J*U,W[2]=$*K+S*U+J*w-N*P,W[3]=S*K-J*P-N*w-$*U,P=V[4],w=V[5],U=V[6],K=V[7],W[4]=J*K+S*P+N*U-$*w,W[5]=N*K+S*w+$*P-J*U,W[6]=$*K+S*U+J*w-N*P,W[7]=S*K-J*P-N*w-$*U,W}function D(W,F,V,J){if(Math.abs(J)<e.EPSILON)return O(W,F);var N=Math.hypot(V[0],V[1],V[2]);J=J*.5;var $=Math.sin(J),S=$*V[0]/N,P=$*V[1]/N,w=$*V[2]/N,U=Math.cos(J),K=F[0],Y=F[1],k=F[2],rt=F[3];W[0]=K*U+rt*S+Y*w-k*P,W[1]=Y*U+rt*P+k*S-K*w,W[2]=k*U+rt*w+K*P-Y*S,W[3]=rt*U-K*S-Y*P-k*w;var it=F[4],lt=F[5],ut=F[6],ot=F[7];return W[4]=it*U+ot*S+lt*w-ut*P,W[5]=lt*U+ot*P+ut*S-it*w,W[6]=ut*U+ot*w+it*P-lt*S,W[7]=ot*U-it*S-lt*P-ut*w,W}function R(W,F,V){return W[0]=F[0]+V[0],W[1]=F[1]+V[1],W[2]=F[2]+V[2],W[3]=F[3]+V[3],W[4]=F[4]+V[4],W[5]=F[5]+V[5],W[6]=F[6]+V[6],W[7]=F[7]+V[7],W}function C(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[4],w=V[5],U=V[6],K=V[7],Y=F[4],k=F[5],rt=F[6],it=F[7],lt=V[0],ut=V[1],ot=V[2],st=V[3];return W[0]=J*st+S*lt+N*ot-$*ut,W[1]=N*st+S*ut+$*lt-J*ot,W[2]=$*st+S*ot+J*ut-N*lt,W[3]=S*st-J*lt-N*ut-$*ot,W[4]=J*K+S*P+N*U-$*w+Y*st+it*lt+k*ot-rt*ut,W[5]=N*K+S*w+$*P-J*U+k*st+it*ut+rt*lt-Y*ot,W[6]=$*K+S*U+J*w-N*P+rt*st+it*ot+Y*ut-k*lt,W[7]=S*K-J*P-N*w-$*U+it*st-Y*lt-k*ut-rt*ot,W}var B=C;function z(W,F,V){return W[0]=F[0]*V,W[1]=F[1]*V,W[2]=F[2]*V,W[3]=F[3]*V,W[4]=F[4]*V,W[5]=F[5]*V,W[6]=F[6]*V,W[7]=F[7]*V,W}var H=n.dot;function X(W,F,V,J){var N=1-J;return H(F,V)<0&&(J=-J),W[0]=F[0]*N+V[0]*J,W[1]=F[1]*N+V[1]*J,W[2]=F[2]*N+V[2]*J,W[3]=F[3]*N+V[3]*J,W[4]=F[4]*N+V[4]*J,W[5]=F[5]*N+V[5]*J,W[6]=F[6]*N+V[6]*J,W[7]=F[7]*N+V[7]*J,W}function Z(W,F){var V=tt(F);return W[0]=-F[0]/V,W[1]=-F[1]/V,W[2]=-F[2]/V,W[3]=F[3]/V,W[4]=-F[4]/V,W[5]=-F[5]/V,W[6]=-F[6]/V,W[7]=F[7]/V,W}function j(W,F){return W[0]=-F[0],W[1]=-F[1],W[2]=-F[2],W[3]=F[3],W[4]=-F[4],W[5]=-F[5],W[6]=-F[6],W[7]=F[7],W}var G=n.length,Q=G,tt=n.squaredLength,et=tt;function at(W,F){var V=tt(F);if(V>0){V=Math.sqrt(V);var J=F[0]/V,N=F[1]/V,$=F[2]/V,S=F[3]/V,P=F[4],w=F[5],U=F[6],K=F[7],Y=J*P+N*w+$*U+S*K;W[0]=J,W[1]=N,W[2]=$,W[3]=S,W[4]=(P-J*Y)/V,W[5]=(w-N*Y)/V,W[6]=(U-$*Y)/V,W[7]=(K-S*Y)/V}return W}function q(W){return"quat2("+W[0]+", "+W[1]+", "+W[2]+", "+W[3]+", "+W[4]+", "+W[5]+", "+W[6]+", "+W[7]+")"}function pt(W,F){return W[0]===F[0]&&W[1]===F[1]&&W[2]===F[2]&&W[3]===F[3]&&W[4]===F[4]&&W[5]===F[5]&&W[6]===F[6]&&W[7]===F[7]}function dt(W,F){var V=W[0],J=W[1],N=W[2],$=W[3],S=W[4],P=W[5],w=W[6],U=W[7],K=F[0],Y=F[1],k=F[2],rt=F[3],it=F[4],lt=F[5],ut=F[6],ot=F[7];return Math.abs(V-K)<=e.EPSILON*Math.max(1,Math.abs(V),Math.abs(K))&&Math.abs(J-Y)<=e.EPSILON*Math.max(1,Math.abs(J),Math.abs(Y))&&Math.abs(N-k)<=e.EPSILON*Math.max(1,Math.abs(N),Math.abs(k))&&Math.abs($-rt)<=e.EPSILON*Math.max(1,Math.abs($),Math.abs(rt))&&Math.abs(S-it)<=e.EPSILON*Math.max(1,Math.abs(S),Math.abs(it))&&Math.abs(P-lt)<=e.EPSILON*Math.max(1,Math.abs(P),Math.abs(lt))&&Math.abs(w-ut)<=e.EPSILON*Math.max(1,Math.abs(w),Math.abs(ut))&&Math.abs(U-ot)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(ot))}},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return s}),t.d(r,"fromValues",function(){return l}),t.d(r,"copy",function(){return o}),t.d(r,"set",function(){return i}),t.d(r,"add",function(){return f}),t.d(r,"subtract",function(){return p}),t.d(r,"multiply",function(){return c}),t.d(r,"divide",function(){return m}),t.d(r,"ceil",function(){return y}),t.d(r,"floor",function(){return O}),t.d(r,"min",function(){return x}),t.d(r,"max",function(){return v}),t.d(r,"round",function(){return T}),t.d(r,"scale",function(){return a}),t.d(r,"scaleAndAdd",function(){return h}),t.d(r,"distance",function(){return u}),t.d(r,"squaredDistance",function(){return g}),t.d(r,"length",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return I}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return R}),t.d(r,"random",function(){return C}),t.d(r,"transformMat2",function(){return B}),t.d(r,"transformMat2d",function(){return z}),t.d(r,"transformMat3",function(){return H}),t.d(r,"transformMat4",function(){return X}),t.d(r,"rotate",function(){return Z}),t.d(r,"angle",function(){return j}),t.d(r,"zero",function(){return G}),t.d(r,"str",function(){return Q}),t.d(r,"exactEquals",function(){return tt}),t.d(r,"equals",function(){return et}),t.d(r,"len",function(){return at}),t.d(r,"sub",function(){return q}),t.d(r,"mul",function(){return pt}),t.d(r,"div",function(){return dt}),t.d(r,"dist",function(){return W}),t.d(r,"sqrDist",function(){return F}),t.d(r,"sqrLen",function(){return V}),t.d(r,"forEach",function(){return J});var e=t(2);function n(){var N=new e.ARRAY_TYPE(2);return e.ARRAY_TYPE!=Float32Array&&(N[0]=0,N[1]=0),N}function s(N){var $=new e.ARRAY_TYPE(2);return $[0]=N[0],$[1]=N[1],$}function l(N,$){var S=new e.ARRAY_TYPE(2);return S[0]=N,S[1]=$,S}function o(N,$){return N[0]=$[0],N[1]=$[1],N}function i(N,$,S){return N[0]=$,N[1]=S,N}function f(N,$,S){return N[0]=$[0]+S[0],N[1]=$[1]+S[1],N}function p(N,$,S){return N[0]=$[0]-S[0],N[1]=$[1]-S[1],N}function c(N,$,S){return N[0]=$[0]*S[0],N[1]=$[1]*S[1],N}function m(N,$,S){return N[0]=$[0]/S[0],N[1]=$[1]/S[1],N}function y(N,$){return N[0]=Math.ceil($[0]),N[1]=Math.ceil($[1]),N}function O(N,$){return N[0]=Math.floor($[0]),N[1]=Math.floor($[1]),N}function x(N,$,S){return N[0]=Math.min($[0],S[0]),N[1]=Math.min($[1],S[1]),N}function v(N,$,S){return N[0]=Math.max($[0],S[0]),N[1]=Math.max($[1],S[1]),N}function T(N,$){return N[0]=Math.round($[0]),N[1]=Math.round($[1]),N}function a(N,$,S){return N[0]=$[0]*S,N[1]=$[1]*S,N}function h(N,$,S,P){return N[0]=$[0]+S[0]*P,N[1]=$[1]+S[1]*P,N}function u(N,$){var S=$[0]-N[0],P=$[1]-N[1];return Math.hypot(S,P)}function g(N,$){var S=$[0]-N[0],P=$[1]-N[1];return S*S+P*P}function M(N){var $=N[0],S=N[1];return Math.hypot($,S)}function A(N){var $=N[0],S=N[1];return $*$+S*S}function I(N,$){return N[0]=-$[0],N[1]=-$[1],N}function b(N,$){return N[0]=1/$[0],N[1]=1/$[1],N}function E(N,$){var S=$[0],P=$[1],w=S*S+P*P;return w>0&&(w=1/Math.sqrt(w)),N[0]=$[0]*w,N[1]=$[1]*w,N}function L(N,$){return N[0]*$[0]+N[1]*$[1]}function D(N,$,S){var P=$[0]*S[1]-$[1]*S[0];return N[0]=N[1]=0,N[2]=P,N}function R(N,$,S,P){var w=$[0],U=$[1];return N[0]=w+P*(S[0]-w),N[1]=U+P*(S[1]-U),N}function C(N,$){$=$||1;var S=e.RANDOM()*2*Math.PI;return N[0]=Math.cos(S)*$,N[1]=Math.sin(S)*$,N}function B(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[2]*w,N[1]=S[1]*P+S[3]*w,N}function z(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[2]*w+S[4],N[1]=S[1]*P+S[3]*w+S[5],N}function H(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[3]*w+S[6],N[1]=S[1]*P+S[4]*w+S[7],N}function X(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[4]*w+S[12],N[1]=S[1]*P+S[5]*w+S[13],N}function Z(N,$,S,P){var w=$[0]-S[0],U=$[1]-S[1],K=Math.sin(P),Y=Math.cos(P);return N[0]=w*Y-U*K+S[0],N[1]=w*K+U*Y+S[1],N}function j(N,$){var S=N[0],P=N[1],w=$[0],U=$[1],K=Math.sqrt(S*S+P*P)*Math.sqrt(w*w+U*U),Y=K&&(S*w+P*U)/K;return Math.acos(Math.min(Math.max(Y,-1),1))}function G(N){return N[0]=0,N[1]=0,N}function Q(N){return"vec2("+N[0]+", "+N[1]+")"}function tt(N,$){return N[0]===$[0]&&N[1]===$[1]}function et(N,$){var S=N[0],P=N[1],w=$[0],U=$[1];return Math.abs(S-w)<=e.EPSILON*Math.max(1,Math.abs(S),Math.abs(w))&&Math.abs(P-U)<=e.EPSILON*Math.max(1,Math.abs(P),Math.abs(U))}var at=M,q=p,pt=c,dt=m,W=u,F=g,V=A,J=function(){var N=n();return function($,S,P,w,U,K){var Y,k;for(S||(S=2),P||(P=0),w?k=Math.min(w*S+P,$.length):k=$.length,Y=P;Y<k;Y+=S)N[0]=$[Y],N[1]=$[Y+1],U(N,N,K),$[Y]=N[0],$[Y+1]=N[1];return $}}()},function(d,r,t){t.r(r);var e=t(13);t.d(r,"Renderer",function(){return e.default});var n=t(40);t.d(r,"Figure2D",function(){return n.default});var s=t(56);t.d(r,"Mesh2D",function(){return s.default});var l=t(29);t.d(r,"MeshCloud",function(){return l.default});var o=t(23);t.d(r,"parseFont",function(){return o.default});var i=t(31);t.d(r,"parseColor",function(){return i.default});var f=t(21);t.d(r,"ENV",function(){return f.default}),t(1).glMatrix.setMatrixArrayType(Array)},function(d,r,t){t.r(r),t.d(r,"default",function(){return b});var e=t(14),n=t(1),s=t(20),l=t(27),o=t(25),i=t(40),f=t(56),p=t(29),c=t(59),m=t(21),y=t(63);t(1).glMatrix.setMatrixArrayType(Array);const O={autoUpdate:!1,preserveDrawingBuffer:!1,bufferSize:1500},x=`attribute vec3 a_vertexPosition;
2
+ attribute vec3 a_vertexTextureCoord;
3
+ varying vec3 vTextureCoord;
4
+ uniform mat3 viewMatrix;
5
+ uniform mat3 projectionMatrix;
6
+
7
+ void main() {
8
+ gl_PointSize = 1.0;
9
+ vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
10
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
11
+ vTextureCoord = a_vertexTextureCoord;
12
+ }
13
+ `,v=`precision mediump float;
14
+ varying vec3 vTextureCoord;
15
+ uniform sampler2D u_texSampler;
16
+ void main() {
17
+ gl_FragColor = texture2D(u_texSampler, vTextureCoord.xy);
18
+ }
19
+ `,T=Symbol("glRenderer"),a=Symbol("canvasRenderer"),h=Symbol("options"),u=Symbol("globalTransform"),g=Symbol("applyGlobalTransform"),M=Symbol("canvas");function A(E){const L=E.gl,D=E.fbo;D&&L.bindFramebuffer(L.FRAMEBUFFER,D),E._draw(),D&&L.bindFramebuffer(L.FRAMEBUFFER,null)}function I(E,L,D,R){const C=E.createTexture(L.canvas),B=[[[0,0],[D,0],[D,R],[0,R],[0,0]]];B.closed=!0;const z=new f.default({contours:B});z.setTexture(C),E.setMeshData([z.meshData]),A(E),C.delete(),L.clearRect(0,0,D,R),delete L._filter}class b{constructor(L,D={}){let R=D.contextType;if(R||(typeof WebGL2RenderingContext=="function"?R="webgl2":typeof WebGLRenderingContext=="function"?R="webgl":R="2d"),!L.getContext){const C=L;L={getContext(){return C},width:D.width,height:D.height},C.canvas=L,R="2d"}if(this[M]=L,R!=="webgl"&&R!=="webgl2"&&R!=="2d")throw new Error(`Unknown context type ${R}`);if(D.contextType=R,this[h]=Object.assign({},O,D),R==="webgl"||R==="webgl2"){R==="webgl2"&&(this[h].webgl2=!0);const C=new e.default(L,this[h]);R==="webgl2"&&!C.isWebGL2&&(D.contextType="webgl"),Object(y.createShaders)(C),Object(y.applyShader)(C),Object(y.createCloudShaders)(C);const B=C.gl;B.clearColor(0,0,0,0),B.blendFuncSeparate(B.SRC_ALPHA,B.ONE_MINUS_SRC_ALPHA,B.ONE,B.ONE_MINUS_SRC_ALPHA),this[T]=C}else this[a]=new s.default(L,this[h]);this[u]=[1,0,0,0,1,0,0,0,1],this.updateResolution()}get canvas(){return this[M]}get canvasRenderer(){return this[a]}get glRenderer(){return this[T]}get isWebGL2(){return this[T]&&this[T].isWebGL2}get options(){return this[h]}get globalTransformMatrix(){const L=this[u];return[L[0],L[1],L[3],L[4],L[6],L[7]]}get viewMatrix(){return this[u]}[g](){const L=this[T]||this[a];if(this[T]){const{width:D,height:R}=this.canvas;L.uniforms.viewMatrix=this.viewMatrix,L.uniforms.projectionMatrix=this.projectionMatrix,L.uniforms.u_resolution=[D,R]}}updateResolution(){const{width:L,height:D}=this.canvas,R=[1,0,0,0,1,0,-L/2,-D/2,1],C=[2/L,0,0,0,-2/D,0,0,0,1],B=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),C,R);this.projectionMatrix=B,this[T]&&this[T].gl.viewport(0,0,L,D)}createTexture(L,D){return(this[T]||this[a]).createTexture(L,D)}loadTexture(L,{useImageBitmap:D=!1}={}){return(this[T]||this[a]).loadTexture(L,{useImageBitmap:D})}createText(L,{font:D="16px arial",fillColor:R=null,strokeColor:C=null,strokeWidth:B=1}={}){if(this[T]){const z=m.default.createText(L,{font:D,fillColor:R,strokeColor:C,strokeWidth:B});return{image:this.createTexture(z.image),rect:z.rect}}return{_img:{font:D,fillColor:R,strokeColor:C,strokeWidth:B,text:L}}}createProgram({vertex:L,fragment:D,options:R}={}){if(this[T]){const C=this[T].compileSync(D,L);return C._attribOpts=R,C}throw new Error("Context 2D cannot create webgl program.")}createPassProgram({vertex:L=x,fragment:D=v,options:R}={}){return this.createProgram({vertex:L,fragment:D,options:R})}useProgram(L,D={}){if(this[T]){const R=Object.assign({},L._attribOpts,D);return this[T].useProgram(L,R)}throw new Error("Context 2D cannot use webgl program.")}deleteTexture(L){return(this[T]||this[a]).deleteTexture(L)}clear(...L){if(this[T]){const D=this[T].gl;D.clear(D.COLOR_BUFFER_BIT)}else this[a].clear(...L)}drawMeshCloud(L,{clear:D=!1,program:R=null}={}){const C=this[T]||this[a],B=R||L.program;if(this[T]){const z=C.gl;if(D&&z.clear(z.COLOR_BUFFER_BIT),B)C.program!==B&&this.useProgram(B,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}});else{const H=L.mesh.meshData,X=!!H.uniforms.u_texSampler,Z=!!H.uniforms.u_filterFlag,j=!!H.uniforms.u_radialGradientVector,G=L.hasCloudColor,Q=L.hasCloudFilter,tt=!!H.uniforms.u_clipSampler;Object(y.applyCloudShader)(C,{hasTexture:X,hasFilter:Z,hasGradient:j,hasCloudColor:G,hasCloudFilter:Q,hasClipPath:tt})}this[g](),C.setMeshData([L.meshData]),L.beforeRender&&L.beforeRender(z,L),A(C),L.afterRender&&L.afterRender(z,L)}else C.setTransform(this.globalTransformMatrix),C.drawMeshCloud(L,{clear:D,hook:!1})}drawMeshes(L,{clear:D=!1,program:R=null}={}){const C=this[T]||this[a];if(this[T]){const B=C.fbo,z=Object(l.default)(this,L,R==null),H=C.gl;D&&H.clear(H.COLOR_BUFFER_BIT);const X=!Object(c.isUnitTransform)(this.globalTransformMatrix);this._drawCalls=0;for(const Z of z){this._drawCalls++;const j=R||Z.program;if(Z instanceof p.default)this.drawMeshCloud(Z,{clear:D,program:j});else{const{width:G,height:Q}=this.canvas;if(Z.beforeRender&&Z.beforeRender(H,Z),Z.pass.length&&((!this.fbo||this.fbo.width!==G||this.fbo.height!==Q)&&(this.fbo={width:G,height:Q,target:C.createFBO(),buffer:C.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}}),C.bindFBO(this.fbo.target)),!j&&Z.filterCanvas){Object(y.applyShader)(C,{hasTexture:!0});let tt=this.filterContext;tt||(tt=m.default.createCanvas(G,Q).getContext("2d"),this.filterContext=tt);const et=L[Z.packIndex],at=et.filter,q=L[Z.packIndex+1],pt=L[Z.packIndex-1];(!pt||!pt.filterCanvas||pt.filter!==at)&&(!q||!q.filterCanvas||q.filter!==at)?(X?(tt.save(),Object(o.drawMesh2D)(et,tt,!1),tt.restore(),Object(o.applyFilter)(tt,at)):Object(o.drawMesh2D)(et,tt,!0),this[g](),I(C,tt,G,Q)):(X&&tt.save(),Object(o.drawMesh2D)(et,tt,!1),X&&tt.restore(),(!q||!q.filterCanvas||et.filter!==q.filter)&&(Object(o.applyFilter)(tt,at),this[g](),I(C,tt,G,Q)))}else{if(j)C.program!==j&&this.useProgram(j,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}});else{const tt=!!Z.uniforms.u_texSampler,et=!!Z.uniforms.u_filterFlag,at=!!Z.uniforms.u_radialGradientVector,q=!!Z.uniforms.u_clipSampler;Object(y.applyShader)(C,{hasTexture:tt,hasFilter:et,hasGradient:at,hasClipPath:q})}Z.filterCanvas&&console.warn("User program ignored some filter effects."),this[g](),C.setMeshData([Z]),A(C)}if(Z.pass.length){const tt=Z.pass.length;Z.pass.forEach((et,at)=>{et.blend=Z.enableBlend,et.setTexture(C.fbo.texture),at===tt-1?C.bindFBO(B):(this.fbo.swap(),C.bindFBO(this.fbo.target)),et.program?C.useProgram(et.program):(this.defaultPassProgram=this.defaultPassProgram||this.createPassProgram(),C.useProgram(this.defaultPassProgram)),C.setMeshData([et.meshData]),H.clear(H.COLOR_BUFFER_BIT),A(C)})}Z.afterRender&&Z.afterRender(H,Z)}}}else C.setTransform(this.globalTransformMatrix),C.drawMeshes(L,{clear:D})}drawImage(L,...D){const R=D.length;if(R<2)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': 3 arguments required, but only ${D.length+1} present.`);if(R!==2&&R!==4&&R!==8)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': Valid arities are: [3, 5, 9], but ${D.length+1} arguments provided.`);let C=null,B=null;R===2?C=[D[0],D[1],L.width,L.height]:R===4?C=D:R===8&&(B=D.slice(0,4),C=D.slice(4));const z=this.createTexture(L),{width:H,height:X}=this.canvas,Z=new i.default;Z.rect(C[0],C[1],H,X);const j=new f.default(Z,{width:H,height:X});j.setTexture(z,{rect:C,srcRect:B}),this.drawMeshes([j]),this.deleteTexture(z)}setGlobalTransform(...L){return this[u]=[L[0],L[1],0,L[2],L[3],0,L[4],L[5],1],this}globalTransform(...L){const D=this[u];return this[u]=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),D,L),this}globalTranslate(L,D){let R=n.mat3.create();return R=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),R,[L,D]),this.globalTransform(...R)}globalRotate(L,[D,R]=[0,0]){let C=n.mat3.create();return C=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),C,[D,R]),C=n.mat3.rotate(Array.of(0,0,0,0,0,0,0,0,0),C,L),C=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),C,[-D,-R]),this.globalTransform(...C)}globalScale(L,D=L,[R,C]=[0,0]){let B=n.mat3.create();return B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[R,C]),B=n.mat3.scale(Array.of(0,0,0,0,0,0,0,0,0),B,[L,D]),B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[-R,-C]),this.globalTransform(...B)}globalSkew(L,D=L,[R,C]=[0,0]){let B=n.mat3.create();return B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[R,C]),B=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),B,n.mat3.fromValues(1,Math.tan(D),Math.tan(L),1,0,0)),B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[-R,-C]),this.globalTransform(...B)}transformPoint(L,D,R){let C=this.globalTransformMatrix;R&&(C=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),C,R));const B=L*C[0]+D*C[2]+C[4],z=L*C[1]+D*C[3]+C[5];return[B,z]}}},function(d,r,t){t.r(r);var e=t(15);t(1).glMatrix.setMatrixArrayType(Array),r.default=e.default},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(16),n=t(17),s=t(18),l=t(19);t(1).glMatrix.setMatrixArrayType(Array);function o(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const i={};function f(O,x=3){const v=[],T=O.length;for(let a=0;a<T;a++)a%x<2&&v.push(.5*(O[a]+1));return v}function p(O,x){const v=x._buffers;Object.values(v).forEach(T=>{O.deleteBuffer(T)}),x._buffers={}}function c(O,x,v){return O.activeTexture(O.TEXTURE0+v),Array.isArray(x._img)?O.bindTexture(O.TEXTURE_CUBE_MAP,x):O.bindTexture(O.TEXTURE_2D,x),x}const m={int:"1i",ivec2:"2i",ivec3:"3i",ivec4:"4i",float:"1f",vec2:"2f",vec3:"3f",vec4:"4f",mat2:"Matrix2fv",mat3:"Matrix3fv",mat4:"Matrix4fv",sampler1D:"sampler1D",sampler2D:"sampler2D",sampler3D:"sampler3D",samplerCube:"samplerCube",sampler1DShadow:"sampler1DShadow",sampler2DShadow:"sampler2DShadow",sampler2DRect:"sampler2DRect",sampler2DRectShadow:"sampler2DRectShadow"};class y{static addLibs(x={}){Object.assign(i,x)}static FLOAT(x,v){return Object(e.pointsToBuffer)(x,Float32Array,v)}static UNSIGNED_BYTE(x,v){return Object(e.pointsToBuffer)(x,Uint8Array,v)}static UNSIGNED_SHORT(x,v){return Object(e.pointsToBuffer)(x,Uint16Array,v)}static BYTE(x,v){return Object(e.pointsToBuffer)(x,Int8Array,v)}static SHORT(x,v){return Object(e.pointsToBuffer)(x,Int16Array,v)}constructor(x,v={}){this.options=Object.assign({},y.defaultOptions,v),this.canvas=x;let T;this.options.webgl2&&(T=x.getContext("webgl2",this.options)),T==null&&(T=Object(e.setupWebGL)(x,this.options),this.aia_ext=T.getExtension("ANGLE_instanced_arrays")),this.gl=T,T.viewport(0,0,x.width,x.height),T.clearColor(0,0,0,0),T.blendFuncSeparate(T.SRC_ALPHA,T.ONE_MINUS_SRC_ALPHA,T.ONE,T.ONE_MINUS_SRC_ALPHA),this.programs=[],this._events={}}get program(){const x=this.gl;return x.getParameter(x.CURRENT_PROGRAM)}_declareUniform(x,v,T="1f"){const a=this.gl,h=a.getUniformLocation(x,v);let u;const g=this;if(/^sampler/.test(T)){const M=x._samplerMap,A=x._bindTextures;Object.defineProperty(x.uniforms,v,{get(){return u},set(I){u=I;const b=M[v]!=null?M[v]:A.length;A[b]=I,c(a,I,b),M[v]||(M[v]=b,a.uniform1i(h,b)),g.options.autoUpdate&&g.update()},configurable:!1,enumerable:!0})}else{const M=T.indexOf("Matrix")===0,A=!M&&/v$/.test(T),I=a[`uniform${T}`].bind(a);Object.defineProperty(x.uniforms,v,{get(){return u},set(b){u=b,typeof b=="number"&&(b=[b]),M?I(h,!1,b):A?I(h,b):I(h,...b),g.options.autoUpdate&&g.update()},configurable:!1,enumerable:!0})}}_draw(){const x=this.program;x.meshData.forEach((v,T)=>{const{positions:a,cells:h,instanceCount:u,cellsCount:g,attributes:M,uniforms:A,textureCoord:I,enableBlend:b}=v,E=this.gl;let L=v.mode!=null?v.mode:E.TRIANGLES;typeof L=="string"&&(L=E[L]),b?E.enable(E.BLEND):E.disable(E.BLEND),E.bindBuffer(E.ARRAY_BUFFER,x._buffers.verticesBuffer),E.bufferData(E.ARRAY_BUFFER,a,E.STATIC_DRAW),h&&(E.bindBuffer(E.ELEMENT_ARRAY_BUFFER,x._buffers.cellsBuffer),E.bufferData(E.ELEMENT_ARRAY_BUFFER,h,E.STATIC_DRAW));const D=[];M&&Object.values(M).forEach(({name:C,data:B,divisor:z})=>{if(E.bindBuffer(E.ARRAY_BUFFER,x._buffers[C]),E.bufferData(E.ARRAY_BUFFER,B,E.STATIC_DRAW),z!=null){const H=E.getAttribLocation(x,C);H>=0&&(E.enableVertexAttribArray(H),D.push(H),E.vertexAttribDivisor?E.vertexAttribDivisor(H,z):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(H,z))}}),A&&Object.entries(A).forEach(([C,B])=>{this.uniforms[C]=B});let R;if(!h){const C=x._dimension;R=a.length/C}if(x._enableTextures&&x._buffers.texCoordBuffer){const C=I||f(a,x._dimension);E.bindBuffer(E.ARRAY_BUFFER,x._buffers.texCoordBuffer),E.bufferData(E.ARRAY_BUFFER,y.FLOAT(C),E.STATIC_DRAW)}u!=null?(h?E.drawElementsInstanced?E.drawElementsInstanced(L,g,E.UNSIGNED_SHORT,0,u):this.aia_ext&&this.aia_ext.drawElementsInstancedANGLE(L,g,E.UNSIGNED_SHORT,0,u):E.drawArraysInstanced?E.drawArraysInstanced(L,0,R,u):this.aia_ext.drawArraysInstancedANGLE(L,0,R,u),D.forEach(C=>{E.vertexAttribDivisor?E.vertexAttribDivisor(C,null):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(C,null)})):h?E.drawElements(L,g,E.UNSIGNED_SHORT,0):E.drawArrays(L,0,R)})}get isWebGL2(){return typeof WebGL2RenderingContext<"u"&&this.gl instanceof WebGL2RenderingContext}get enableTextures(){return this.program&&this.program._enableTextures}get uniforms(){const x=this.program;if(!x||!x.uniforms)throw Error("No avaliable program.");return x.uniforms}deleteProgram(x){const v=this.gl;this.program===x&&(this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID),v.useProgram(null));const T=this.programs.indexOf(x);T>=0&&this.programs.splice(T,1),p(v,x),v.deleteProgram(x)}setMeshData(x){Array.isArray(x)||(x=[x]);const v=this.program;v.meshData=x.map(({mode:T,positions:a,instanceCount:h,cells:u,cellsCount:g,attributes:M,uniforms:A,textureCoord:I,enableBlend:b})=>{const E={positions:y.FLOAT(a),uniforms:A,enableBlend:!!b,textureCoord:y.FLOAT(I)};if(u&&(E.cells=y.USHORT(u),E.cellsCount=g||E.cells.length),T!=null&&(E.mode=T),h!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use instanceCount in this rendering context, use webgl2 context instead.");E.instanceCount=h}if(M){const L={};Object.entries(M).forEach(([D,R])=>{if(!v._attribute[D])v._attribute[D]="ignored";else if(v._attribute[D]!=="ignored"){const{name:C,type:B}=v._attribute[D];let z=R.data||R;if(Array.isArray(z)&&(z=y[B](z)),L[D]={name:C,data:z},R.divisor!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use divisor in this rendering context, use webgl2 context instead.");L[D].divisor=R.divisor}}}),E.attributes=L}return E}),this.options.autoUpdate&&this.update()}createProgram(x,v){const T=/^\s*uniform\s+sampler/mg.test(x);x==null&&(x=s.default),v==null&&(v=T?l.default:n.default);const a=this.gl,h=Object(e.createProgram)(a,v,x);h.shaderText={vertexShader:v,fragmentShader:x},h._buffers={},h._attribute={},h.uniforms={},h._samplerMap={},h._bindTextures=[];const u=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexPosition}`,"im");let g=v.match(u);g&&(h._dimension=Number(g[1]));const M=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexTextureCoord}`,"im");g=v.match(M),g&&(h._texCoordSize=Number(g[1]));const A=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/gim;if(g=v.match(A),g)for(let E=0;E<g.length;E++){const L=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/im,D=g[E].match(L);if(D&&D[3]!==this.options.vertexPosition&&D[3]!==this.options.vertexTextureCoord){let[,R,C,B]=D;R==="mat"&&(C**=2),h._buffers[B]=a.createBuffer(),h._attribute[B]={name:B,type:R,size:Number(C)||1}}}const I=/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/mg;g=v.match(I)||[],g=g.concat(x.match(I)||[]),g.forEach(E=>{const L=E.match(/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/);let[D,R,C]=L.slice(1);D=m[D],C=!!C,D.indexOf("Matrix")!==0&&C&&(D+="v"),this._declareUniform(h,R,D)}),h._buffers.verticesBuffer=a.createBuffer(),h._buffers.cellsBuffer=a.createBuffer();const b=a.getAttribLocation(h,this.options.vertexTextureCoord);return h._enableTextures=b>=0,h._enableTextures&&(h._buffers.texCoordBuffer=a.createBuffer()),this.programs.push(h),h}useProgram(x,v={}){this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID);const T=this.gl;T.useProgram(x);const a=x._dimension;T.bindBuffer(T.ARRAY_BUFFER,x._buffers.verticesBuffer);const h=T.getAttribLocation(x,this.options.vertexPosition);if(T.vertexAttribPointer(h,a,T.FLOAT,!1,0,0),T.enableVertexAttribArray(h),x._enableTextures){T.bindBuffer(T.ARRAY_BUFFER,x._buffers.texCoordBuffer);const u=T.getAttribLocation(x,this.options.vertexTextureCoord);T.vertexAttribPointer(u,x._texCoordSize||2,T.FLOAT,!1,0,0),T.enableVertexAttribArray(u)}if(Object.entries(x._attribute).forEach(([u,g])=>{if(g!=="ignored"){const M=g.size,A=v[u]||{},I=!!A.normalize;let b=A.type||"FLOAT";const E=A.key||u;b==="UBYTE"&&(b="UNSIGNED_BYTE"),b==="USHORT"&&(b="UNSIGNED_SHORT"),g.type=b,E&&E!==u&&(x._attribute[E]=g),T.bindBuffer(T.ARRAY_BUFFER,x._buffers[u]);const L=T.getAttribLocation(x,u);L>=0&&(T.vertexAttribPointer(L,M,T[b],I,0,0),T.enableVertexAttribArray(L))}}),!x.meshData){const u=[[-1,-1,0,1].slice(0,a),[1,-1,0,1].slice(0,a),[1,1,0,1].slice(0,a),[-1,1,0,1].slice(0,a)],g=[[0,1,3],[3,1,2]];this.setMeshData({positions:u,cells:g})}return x}compileSync(x,v){x=x||s.default;const T={};function a(M){M=M.replace(/^\s*/mg,"");const A=[],I=M.match(/^#pragma\s+include\s+.*/mg);if(I){for(let b=0;b<I.length;b++){const L=I[b].match(/(?:<|")(.*)(?:>|")/);if(L){const D=L[0].indexOf("<")===0?"lib":"link";let R=L[1];if(R==="graph"&&(R="graphics"),T[R])A.push(`/* included ${R} */`);else if(T[R]=!0,D==="lib"){const C=a(i[R]);A.push(C)}else if(D==="link")throw new Error("Cannot load external links synchronously. Use compile instead of compileSync.")}}A.forEach(b=>{M=M.replace(/^#pragma\s+include\s+.*/m,b)})}return M}const h=a(x),u=v?a(v):null;return this.createProgram(h,u)}async compile(x,v){x=x||s.default;const T={};async function a(M){M=M.replace(/^\s*/mg,"");const A=[],I=M.match(/^#pragma\s+include\s+.*/mg);if(I){for(let b=0;b<I.length;b++){const L=I[b].match(/(?:<|")(.*)(?:>|")/);if(L){const D=L[0].indexOf("<")===0?"lib":"link";let R=L[1];if(R==="graph"&&(R="graphics"),T[R])A.push(`/* included ${R} */`);else if(T[R]=!0,D==="lib"){const C=await a(i[R]);A.push(C)}else if(D==="link"){let C=await y.fetchShader(R);C=await a(C),A.push(C)}}}A.forEach(b=>{M=M.replace(/^#pragma\s+include\s+.*/m,b)})}return M}const h=await a(x),u=v?await a(v):null;return this.createProgram(h,u)}async load(x,v=null){return x=await y.fetchShader(x),v&&(v=await y.fetchShader(v)),this.compile(x,v)}createTexture(x=null,{wrapS:v=this.gl.CLAMP_TO_EDGE,wrapT:T=this.gl.CLAMP_TO_EDGE,minFilter:a=this.gl.LINEAR,magFilter:h=this.gl.LINEAR}={}){const u=this.gl,g=Array.isArray(x)?u.TEXTURE_CUBE_MAP:u.TEXTURE_2D;this._max_texture_image_units=this._max_texture_image_units||u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),u.activeTexture(u.TEXTURE0+this._max_texture_image_units-1);const M=u.createTexture();u.bindTexture(g,M),u.pixelStorei(u.UNPACK_FLIP_Y_WEBGL,!0);const{width:A,height:I}=this.canvas;if(x)if(g===u.TEXTURE_CUBE_MAP)for(let b=0;b<6;b++)u.texImage2D(u.TEXTURE_CUBE_MAP_POSITIVE_X+b,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,x[b]);else u.texImage2D(g,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,x);else if(g===u.TEXTURE_CUBE_MAP)for(let b=0;b<6;b++)this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X+b,0,u.RGBA,A,I,0,u.RGBA,u.UNSIGNED_BYTE,null);else u.texImage2D(g,0,u.RGBA,A,I,0,u.RGBA,u.UNSIGNED_BYTE,null);return u.texParameteri(g,u.TEXTURE_MIN_FILTER,a),u.texParameteri(g,u.TEXTURE_MAG_FILTER,h),u.texParameteri(g,u.TEXTURE_WRAP_S,v),u.texParameteri(g,u.TEXTURE_WRAP_T,T),g===u.TEXTURE_CUBE_MAP&&(x.width=x[0].width,x.height=x[0].height),u.bindTexture(g,null),M._img=x||{width:A,height:I},M.delete=()=>{this.deleteTexture(M)},M}deleteTexture(x){const v=x._img;this.gl.deleteTexture(x),typeof v.close=="function"&&v.close()}async loadTexture(x,{useImageBitmap:v=!0}={}){const T=await y.loadImage(x,{useImageBitmap:v});return this.createTexture(T)}createFBO({color:x=1,blend:v=!1,depth:T=this.options.depth!==!1,stencil:a=!!this.options.stencil}={}){const h=this.gl,u=h.createFramebuffer();h.bindFramebuffer(h.FRAMEBUFFER,u);const g=[];for(let I=0;I<x;I++){const b=this.createTexture();h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0+I,h.TEXTURE_2D,b,0),g.push(b)}u.textures=g,u.texture=g[0],u.blend=v;const{width:M,height:A}=this.canvas;return T&&!a&&(u.depthBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,u.depthBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.DEPTH_COMPONENT16,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.DEPTH_ATTACHMENT,h.RENDERBUFFER,u.depthBuffer)),a&&!T&&(u.stencilBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,u.stencilBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.STENCIL_INDEX8,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.STENCIL_ATTACHMENT,h.RENDERBUFFER,u.stencilBuffer)),T&&a&&(u.depthStencilBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,u.depthStencilBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.DEPTH_STENCIL,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.DEPTH_STENCIL_ATTACHMENT,h.RENDERBUFFER,u.depthStencilBuffer)),h.bindFramebuffer(h.FRAMEBUFFER,null),u}bindFBO(x=null){this.fbo=x}render({clearBuffer:x=!0}={}){this.startRender=!0;const v=this.gl;let T=this.program;T||(T=this.createProgram(),this.useProgram(T)),this.fbo&&v.bindFramebuffer(v.FRAMEBUFFER,this.fbo);const a=this.options.depth;a&&v.enable(v.DEPTH_TEST),this.gl.clear(this.gl.COLOR_BUFFER_BIT|(a?this.gl.DEPTH_BUFFER_BIT:0)|(this.options.stencil?this.gl.STENCIL_BUFFER_BIT:0));const h=this._renderFrameID;this._draw(),this.fbo&&v.bindFramebuffer(v.FRAMEBUFFER,null),this._renderFrameID===h&&(this._renderFrameID=null)}update(){this.startRender&&this._renderFrameID==null&&(this._renderFrameID=requestAnimationFrame(this.render.bind(this)))}}o(y,"defaultOptions",{preserveDrawingBuffer:!0,autoUpdate:!0,vertexPosition:"a_vertexPosition",vertexTextureCoord:"a_vertexTextureCoord",webgl2:!1}),o(y,"UBYTE",y.UNSIGNED_BYTE),o(y,"USHORT",y.UNSIGNED_SHORT),o(y,"fetchShader",e.fetchShader),o(y,"loadImage",e.loadImage)},function(d,r,t){t.r(r),t.d(r,"setupWebGL",function(){return n}),t.d(r,"createProgram",function(){return s}),t.d(r,"pointsToBuffer",function(){return l}),t.d(r,"loadImage",function(){return i}),t.d(r,"fetchShader",function(){return p}),t(1).glMatrix.setMatrixArrayType(Array);function e(c,m){const y=["webgl","experimental-webgl","webkit-3d","moz-webgl"];let O=null;for(let x=0;x<y.length;++x){try{O=c.getContext(y[x],m)}catch{}if(O)break}return O}function n(c,m){const y=e(c,m);if(!y)throw new Error("Sorry, your browser doesn't support WebGL.");return y}function s(c,m,y){const O=c.createShader(c.VERTEX_SHADER);if(c.shaderSource(O,m),c.compileShader(O),!c.getShaderParameter(O,c.COMPILE_STATUS)){const T=`Vertex shader failed to compile. The error log is:${c.getShaderInfoLog(O)}`;throw new Error(T)}const x=c.createShader(c.FRAGMENT_SHADER);if(c.shaderSource(x,y),c.compileShader(x),!c.getShaderParameter(x,c.COMPILE_STATUS)){const T=`Fragment shader failed to compile. The error log is:${c.getShaderInfoLog(x)}`;throw new Error(T)}const v=c.createProgram();if(c.attachShader(v,O),c.attachShader(v,x),c.linkProgram(v),!c.getProgramParameter(v,c.LINK_STATUS)){const T=`Shader program failed to link. The error log is:${c.getProgramInfoLog(v)}`;throw new Error(T)}return c.deleteShader(O),c.deleteShader(x),v}function l(c,m=Float32Array,y=null){if(y&&!(y instanceof m))throw new TypeError("Wrong buffer type.");if(c==null||c instanceof m)return c;if(c[0]==null||c[0].length==null)return y?(y.set(c,0),y):new m(c);const O=c[0].length,x=c.length;y||(y=new m(O*x));let v=0;for(let T=0;T<x;T++)for(let a=0;a<O;a++)y[v++]=c[T][a];return y}const o={};function i(c,{useImageBitmap:m=!0,alias:y=null}={}){if(!o[c]){if(typeof Image=="function"){const O=new Image;typeof c=="string"&&!(typeof location=="object"&&/^file:/.test(location.href))&&!/^data:/.test(c)&&(O.crossOrigin="anonymous"),o[c]=new Promise(x=>{O.onload=function(){m&&typeof createImageBitmap=="function"?createImageBitmap(O,{imageOrientation:"flipY"}).then(v=>{o[c]=v,y&&(o[y]=v),x(v)}):(o[c]=O,y&&(o[y]=O),x(O))},O.src=c}),y&&(o[y]=o[c])}else if(typeof fetch=="function")return fetch(c,{method:"GET",mode:"cors",cache:"default"}).then(O=>O.blob()).then(O=>createImageBitmap(O,{imageOrientation:"flipY"}).then(x=>(o[c]=x,y&&(o[y]=x),x)))}return o[c]}const f={};async function p(c){if(f[c])return f[c];const m=await fetch(c);if(m.status>=200&&m.status<300){const y=await m.text();return f[c]=y,y}throw new Error("Shader loaded error.")}},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
20
+
21
+ void main() {
22
+ gl_PointSize = 1.0;
23
+ gl_Position = vec4(a_vertexPosition, 1);
24
+ }`},function(d,r,t){t.r(r),r.default=`#ifdef GL_ES
25
+ precision mediump float;
26
+ #endif
27
+
28
+ void main() {
29
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.1);
30
+ }`},function(d,r,t){t.r(r),r.default=`attribute vec4 a_vertexPosition;
31
+ attribute vec2 a_vertexTextureCoord;
32
+ varying vec2 vTextureCoord;
33
+
34
+ void main() {
35
+ gl_PointSize = 1.0;
36
+ gl_Position = a_vertexPosition;
37
+ vTextureCoord = a_vertexTextureCoord;
38
+ }`},function(d,r,t){t.r(r),t.d(r,"default",function(){return l});var e=t(21),n=t(25);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol("transform");class l{constructor(i,f){this.context=i.getContext("2d"),this.options=f,this[s]=[1,0,0,1,0,0]}createTexture(i){return{_img:i}}async loadTexture(i){const f=await e.default.loadImage(i,{useImageBitmap:!1});return this.createTexture(f)}deleteTexture(i){return i}clear(i,f,p,c){const m=this.context;i=i||0,f=f||0,p=p||m.canvas.width-i,c=c||m.canvas.height-f,m.clearRect(i,f,p,c)}drawMeshCloud(i,{clear:f=!1}={}){const p=[];for(let c=0;c<i.amount;c++){const m=i.getTransform(c);let y=i.getTextureFrame(c);y&&(y=y._img);const O=i.getFilter(c),{fill:x,stroke:v}=i.getCloudRGBA(c);p.push({mesh:i.mesh,_cloudOptions:[x,v,y,m,O]})}i.beforeRender&&i.beforeRender(this.context,i),this.drawMeshes(p,{clear:f,hook:!1}),i.afterRender&&i.afterRender(this.context,i)}drawMeshes(i,{clear:f=!1,hook:p=!0}={}){const c=this.context;f&&c.clearRect(0,0,c.canvas.width,c.canvas.height);let m=null;const{width:y,height:O}=c.canvas,x=i.length;i.forEach((v,T)=>{let a,h,u,g,M;p&&v.beforeRender&&v.beforeRender(c,v),v._cloudOptions&&([a,h,u,g,M]=v._cloudOptions,v=v.mesh);let A=v.filter;if(M&&(A=A?`${A} ${M}`:M),A&&!this.filterBuffer&&this.filterBuffer!==!1){const I=e.default.createCanvas(y,O);I?this.filterBuffer=I.getContext("2d"):this.filterBuffer=!1}m&&m!==A&&(Object(n.applyFilter)(this.filterBuffer,m),c.drawImage(this.filterBuffer.canvas,0,0,y,O),this.filterBuffer.clearRect(0,0,y,O),m=null),A&&this.filterBuffer?(this.filterBuffer.save(),this.filterBuffer.transform(...this[s]),Object(n.drawMesh2D)(v,this.filterBuffer,!1,a,h,u,g),this.filterBuffer.restore(),T===x-1?(Object(n.applyFilter)(this.filterBuffer,A),c.drawImage(this.filterBuffer.canvas,0,0,y,O),this.filterBuffer.clearRect(0,0,y,O)):m=A):(c.save(),c.transform(...this[s]),Object(n.drawMesh2D)(v,c,!1,a,h,u,g),c.restore()),p&&v.afterRender&&v.afterRender(c,v)})}setTransform(i){this[s]=i}}},function(d,r,t){t.r(r),(function(e){var n=t(14),s=t(23),l=t(24);t(1).glMatrix.setMatrixArrayType(Array);const o={};function i(y,O){const{style:x,variant:v,weight:T,stretch:a,size:h,pxLineHeight:u,family:g}=y;return a==="normal"?`${x} ${v} ${T} ${h*O}px/${u*O}px ${g}`:`${x} ${v} ${T} ${a} ${h*O}px/${u*O}px ${g}`}function f(y,{font:O,fillColor:x,strokeColor:v,strokeWidth:T,ratio:a=1,textCanvas:h,cachable:u=!1}){let g;if(u){g=[y,O,String(x),String(v),String(T)].join("###");const z=o[g];if(z)return z}h||(h=c(1,1));const M=h.getContext("2d");M.save(),M.font=O;let{width:A}=M.measureText(y);M.restore();const I=Object(s.default)(O),b=Math.max(I.pxLineHeight,I.pxHeight*1.13);/italic|oblique/.test(O)&&(A+=b*Math.tan(15*Math.PI/180)),!x&&!v&&(x="#000");const E=M.canvas,L=Math.ceil(A),D=Math.ceil(b);E.width=Math.round(L*a),E.height=Math.round(D*a),M.save(),M.font=i(I,a),M.textAlign="center",M.textBaseline="middle";const R=E.height*.5+I.pxHeight*.05*a,C=E.width*.5;if(x){if(Array.isArray(x))x=Object(l.default)(x);else if(x.vector){let z;const{vector:H,colors:X}=x;H.length===6?z=M.createRadialGradient(...H):z=M.createLinearGradient(...H),X.forEach(({offset:Z,color:j})=>{z.addColorStop(Z,j)}),x=z}M.fillStyle=x,M.fillText(y,C,R)}if(v){if(M.lineWidth=T*a,Array.isArray(v))v=Object(l.default)(v);else if(v.vector){let z;const{vector:H,colors:X}=v;H.length===6?z=M.createRadialGradient(...H):z=M.createLinearGradient(...H),X.forEach(({offset:Z,color:j})=>{z.addColorStop(Z,j)}),v=z}M.strokeStyle=v,M.strokeText(y,C,R)}M.restore();const B={image:h,rect:[0,0,L,D]};return u&&(o[g]=B),B}let p=!1;if(typeof navigator=="object"&&typeof navigator.userAgent=="string"){const y=navigator.userAgent.toLowerCase().match(/chrome\/(\d+)/);y&&(p=Number(y[1])<70)}function c(y,O,x={}){const v=x.offscreen||!p&&x.offscreen!==!1;let T;return typeof e<"u"&&typeof e.createCanvas=="function"?T=e.createCanvas(y,O,x):v&&typeof OffscreenCanvas=="function"?T=new OffscreenCanvas(y,O):(T=document.createElement("canvas"),T.width=y,T.height=O),T}const m={createCanvas:c,createText:f,loadImage:n.default.loadImage};r.default=m}).call(this,t(22))},function(d,r){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch{typeof window=="object"&&(t=window)}d.exports=t},function(d,r,t){t.r(r),t.d(r,"default",function(){return x}),t(1).glMatrix.setMatrixArrayType(Array);function e(v,T){if(typeof v=="string"){const u=v.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%)$/);u?v={size:parseFloat(u[1]),unit:u[2]}:v={size:parseInt(v,10),unit:"px"}}let{size:a,unit:h}=v;if(h==="pt")a/=.75;else if(h==="pc")a*=16;else if(h==="in")a*=96;else if(h==="cm")a*=96/2.54;else if(h==="mm")a*=96/25.4;else if(h==="em"||h==="rem"||h==="ex"){if(!T&&typeof getComputedStyle=="function"&&typeof document<"u"){const u=getComputedStyle(document.documentElement).fontSize;T=e(u,16)}a*=T,h==="ex"&&(a/=2)}else if(h==="q")a*=96/25.4/4;else if(h==="vw"||h==="vh"){if(typeof document<"u"){const u=h==="vw"?document.documentElement.clientWidth:document.documentElement.clientHeight;a*=u/100}}else if((h==="vmax"||h==="vmin")&&typeof document<"u"){const u=document.documentElement.clientWidth,g=document.documentElement.clientHeight;h==="vmax"?a*=Math.max(u,g)/100:a*=Math.min(u,g)/100}return a}const n="bold|bolder|lighter|[1-9]00",s="italic|oblique",l="small-caps",o="ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",i="px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%",f=`'([^']+)'|"([^"]+)"|([\\w-]|[一-龥])+`,p=new RegExp(`(${n}) +`,"i"),c=new RegExp(`(${s}) +`,"i"),m=new RegExp(`(${l}) +`,"i"),y=new RegExp(`(${o}) +`,"i"),O=new RegExp("([\\d\\.]+)("+i+")(?:\\/([\\d\\.]+)("+i+"))? *((?:"+f+")( *, *(?:"+f+"))*)");function x(v,T){const a=O.exec(v);if(!a)return;const h=parseFloat(a[3]),u={weight:"normal",style:"normal",stretch:"normal",variant:"normal",size:parseFloat(a[1]),unit:a[2],lineHeight:Number.isFinite(h)?h:void 0,lineHeightUnit:a[4],family:a[5].replace(/ *, */g,",")},g=v.substring(0,a.index),M=p.exec(g),A=c.exec(g),I=m.exec(g),b=y.exec(g);return M&&(u.weight=M[1]),A&&(u.style=A[1]),I&&(u.variant=I[1]),b&&(u.stretch=b[1]),u.pxHeight=e({size:u.size,unit:u.unit},T),u.pxLineHeight=e({size:u.lineHeight||u.size,unit:u.lineHeightUnit||u.unit},T),u}},function(d,r,t){t.r(r),t.d(r,"default",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n){return`rgba(${n.map((s,l)=>l<3?Math.round(s*255):s).join()})`}},function(d,r,t){t.r(r),t.d(r,"applyFilter",function(){return o}),t.d(r,"drawMesh2D",function(){return f});var e=t(1),n=t(24),s=t(23),l=t(26);t(1).glMatrix.setMatrixArrayType(Array);function o(p,c){const m=p.canvas;p.save(),p.filter=c,p.drawImage(m,0,0,m.width,m.height),p.restore()}function i(p,c){const m=/rgba\((\d+),(\d+),(\d+),(\d+)\)/;p=p.match(m).slice(1,5).map(Number),c=c.match(m).slice(1,5).map(Number);const y=[],O=c[3];for(let x=0;x<4;x++)y[x]=Object(l.mix)(p[x],c[x],O);return`rgba(${y.join()})`}function f(p,c,m=!0,y=null,O=null,x=null,v=null){c.save();let T=!1,a=!1;if(c.globalAlpha=p.getOpacity(),p._updateMatrix&&p.transformScale/p.contours.scale>1.5&&p.accurate(p.transformScale),p.lineWidth){let g=p.gradient&&p.gradient.stroke;if(g){const{vector:M,colors:A}=g;if(M.length===6)g=c.createRadialGradient(...M);else if(M.length===4)g=c.createLinearGradient(...M);else if(M.length===3)g=c.createCircularGradient(...M);else throw new TypeError("Invalid vector dimension.");A.forEach(({offset:I,color:b})=>{let E=Object(n.default)(b);O&&(E=i(E,O)),g.addColorStop(I,E)}),c.strokeStyle=g,T=!0}else p.strokeStyle&&(O?c.strokeStyle=i(p.strokeStyle,O):c.strokeStyle=p.strokeStyle,T=!0)}T&&(c.lineWidth=p.lineWidth,c.lineJoin=p.lineJoin,c.lineCap=p.lineCap,c.miterLimit=p.miterLimit,p.lineDash&&(c.setLineDash(p.lineDash),p.lineDashOffset&&(c.lineDashOffset=p.lineDashOffset)));let h=p.gradient&&p.gradient.fill;if(h){const{vector:g,colors:M}=h;if(g.length===6)h=c.createRadialGradient(...g);else if(g.length===4)h=c.createLinearGradient(...g);else if(g.length===3)h=c.createCircularGradient(...g);else throw new TypeError("Invalid vector dimension.");M.forEach(({offset:A,color:I})=>{let b=Object(n.default)(I);O&&(b=i(b,O)),h.addColorStop(A,b)}),c.fillStyle=h,a=!0}else p.fillStyle&&(y?c.fillStyle=i(p.fillStyle,y):c.fillStyle=p.fillStyle,a=!0);if(v&&c.transform(...v),c.transform(...p.transformMatrix),p.clipPath){const g=p.clipPath,M=new Path2D(g);c.clip(M)}const u=p.contours.length;if(p.contours.forEach((g,M)=>{const A=g.length,I=A>1&&e.vec2.equals(g[0],g[A-1]),b=M===u-1&&p.texture;if(g&&A>0){if(a||T||b){c.beginPath(),c.moveTo(...g[0]);for(let E=1;E<A;E++)E===A-1&&I?c.closePath():c.lineTo(...g[E])}if(a&&c.fill(p.fillRule),b){c.save(),c.clip();let{image:E,options:L}=p.texture;if(x&&(E=x),L.repeat&&console.warn("Context 2D not supported image repeat yet."),E.font){L.scale&&console.warn("Context 2D not supported text scale yet."),L.srcRect&&console.warn("Context 2D not supported text srcRect yet.");let{font:D,fillColor:R,strokeColor:C,strokeWidth:B,text:z}=E;!R&&!C&&(R="#000"),Array.isArray(R)&&(R=Object(n.default)(R)),Array.isArray(C)&&(C=Object(n.default)(C)),c.font=D;const{width:H}=c.measureText(z),X=Object(s.default)(D),Z=Math.max(X.pxLineHeight,X.pxHeight*1.13);c.textAlign="center",c.textBaseline="middle";const j=L.rect,G=j[0]+Z*.5+X.pxHeight*.06,Q=j[1]+H*.5;j[2]!=null&&c.scale(j[2]/H,j[3]/Z),R&&(c.fillStyle=R,c.fillText(z,Q,G)),C&&(c.lineWidth=B,c.strokeStyle=C,c.strokeText(z,Q,G))}else{let D=L.rect;const R=L.srcRect;L.scale&&(D=[0,0,c.canvas.width,c.canvas.height]),L.rotated&&D&&(D=[-D[1],D[0],D[3],D[2]]),R&&(D=D||[0,0,R[2],R[3]]),L.rotated&&(c.translate(0,D?D[2]:E.width),c.rotate(-.5*Math.PI)),R?c.drawImage(E,...R,...D):D?c.drawImage(E,...D):c.drawImage(E,0,0)}c.restore()}T&&c.stroke()}}),c.restore(),m){const g=p.filter;g&&o(c,g)}}},function(d,r,t){t.r(r),t.d(r,"clamp",function(){return e}),t.d(r,"mix",function(){return n}),t.d(r,"transformPoint",function(){return s}),t(1).glMatrix.setMatrixArrayType(Array);function e(l,o,i){return o>i&&([o,i]=[i,o]),l<o?o:l>i?i:l}function n(l,o,i){return l*(1-i)+o*i}function s(l,o){const[i,f]=l;return[i*o[0]+f*o[2]+o[4],i*o[1]+f*o[3]+o[5]]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(28),n=t(29);t(1).glMatrix.setMatrixArrayType(Array);function s(f,p,c){const m=f.uniforms||{},y=p.uniforms||{};if(m.u_texSampler&&y.u_texSampler&&m.u_texSampler!==y.u_texSampler)return!1;const O=Object.keys(m),x=Object.keys(y),v=O.indexOf("u_texSampler"),T=x.indexOf("u_texSampler");if(v>=0&&O.splice(v,1),T>=0&&x.splice(T,1),O.length!==x.length)return!1;const a=O.every(h=>{const u=m[h],g=y[h];if(u===g)return!0;if(u.length&&g.length&&u.length===g.length){for(let M=0;M<u.length;M++)if(u[M]!==g[M])return!1;return!0}return!1});if(a){if(m.u_texSampler&&!y.u_texSampler)p.setTexture(m.u_texSampler,{hidden:!0});else if(!m.u_texSampler&&y.u_texSampler)for(let h=0;h<c.length;h++)c[h].setTexture(y.u_texSampler,{hidden:!0})}return a}const l={};function o(f,p){if(f.length){const c=Object(e.default)(f,l);return c.enableBlend=p,f[0].filterCanvas&&(c.filterCanvas=!0),c.packIndex=f[0].packIndex,c.packLength=f.length,c.beforeRender=f[0].beforeRender,c.pass=f[0].pass,c.afterRender=f[f.length-1].afterRender,f.length=0,c}}function*i(f,p,c=!1){const m=[],y=f.options.bufferSize;let O=0,x=!1;for(let v=0;v<p.length;v++){const T=p[v];if(T instanceof n.default)m.length&&(yield o(m,x)),O=0,x=!1,yield T;else{const a=T.meshData;if(a.clipPath&&!a.uniforms.u_clipSampler){const u=f.createTexture(a.clipPath);a.uniforms.u_clipSampler=u}let h=0;if((!c||!T.canIgnore())&&a&&a.positions.length){T.packIndex=v;const u=T.filterCanvas;if(h=a.positions.length,u||O+h>y)m.length&&(yield o(m,x)),O=0,x=!1;else if(O){const g=m[m.length-1];g&&(g.filterCanvas||g.afterRender||T.beforeRender||g.pass.length||T.pass.length||g.program!==T.program||!s(g,T,m))&&(yield o(m,x),O=0,x=!1)}m.push(T),x=x||T.enableBlend,O+=h}v===p.length-1&&m.length&&(yield o(m,x))}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return s}),t(1).glMatrix.setMatrixArrayType(Array);const e={UNSIGNED_BYTE:Uint8Array,UNSIGNED_SHORT:Uint16Array,BYTE:Int8Array,SHORT:Int16Array,FLOAT:Float32Array};function n(l,o){let i=0,f=0,p=0,c=0,m=0,y=0,O=0;const x=l[0].program;for(let v=0;v<l.length;v++){const T=l[v].meshData;if(T){O+=T.positions.length;const a=T.positions[0].length;i+=T.positions.length*a,f+=T.cells.length*3,y+=T.attributes.a_color.length*4;const h=T.textureCoord;h&&(p+=h.length*h[0].length);const u=T.attributes.a_sourceRect;u&&(c+=u.length*4);const g=T.attributes.a_clipUV;g&&(m+=g.length*2)}}if((!o.positions||o.positions.length<i)&&(o.positions=new Float32Array(i)),(!o.cells||o.cells.length<f)&&(o.cells=new Uint16Array(f)),p&&(!o.textureCoord||o.textureCoord.length<p)&&(o.textureCoord=new Float32Array(p)),(!o.a_color||o.a_color.length<y)&&(o.a_color=new Uint8Array(y)),c&&(!o.a_sourceRect||o.a_sourceRect.length<c)&&(o.a_sourceRect=new Float32Array(c)),m&&(!o.a_clipUV||o.a_clipUV.length<m)&&(o.a_clipUV=new Float32Array(m)),x){const v=Object.entries(x._attribute),T=x._attribOpts||{};for(let a=0;a<v.length;a++){const[h,u]=v[a];if(h!=="a_color"&&h!=="a_sourceRect"&&u!=="ignored"){const g=T[h]?T[h].type:"FLOAT",M=e[g],A=u.size*O;(!o[h]||o[h].length<A)&&(o[h]=new M(A))}}}return o}function s(l,o){let i=[],f=[],p=[],c=[],m=[],y=[],O=0,x=0;const v=l[0]?l[0].uniforms||{}:{},T=l[0]?l[0].program:null;o&&(n(l,o),f=o.cells,i=o.positions,p=o.textureCoord,c=o.a_color,m=o.a_sourceRect,y=o.a_clipUV);let a=!1,h=!1;const u={};for(let M=0;M<l.length;M++){let A=l[M];if(A){if(A.meshData&&(A=A.meshData),o){const b=A.positions;for(let E=0;E<b.length;E++){const L=b[E],D=3*(O+E);for(let R=0;R<L.length;R++)i[D+R]=L[R]}}else i.push(...A.positions);const I=A.cells;for(let b=0;b<I.length;b++){const E=I[b];if(o){const L=3*(x+b);f[L]=E[0]+O,f[L+1]=E[1]+O,f[L+2]=E[2]+O}else f.push([E[0]+O,E[1]+O,E[2]+O])}if(o){const b=A.attributes.a_color;for(let E=0;E<b.length;E++){const L=b[E],D=4*(O+E);c[D]=L[0],c[D+1]=L[1],c[D+2]=L[2],c[D+3]=L[3]}}else c.push(...A.attributes.a_color);if(A.attributes.a_sourceRect)if(a=!0,o){const b=A.attributes.a_sourceRect;for(let E=0;E<b.length;E++){const L=b[E],D=4*(O+E);m[D]=L[0],m[D+1]=L[1],m[D+2]=L[2],m[D+3]=L[3]}}else m.push(...A.attributes.a_sourceRect);if(A.attributes.a_clipUV)if(h=!0,o){const b=A.attributes.a_clipUV;for(let E=0;E<b.length;E++){const L=b[E],D=2*(O+E);y[D]=L[0],y[D+1]=L[1]}}else y.push(...A.attributes.a_clipUV);if(A.textureCoord)if(o){const b=A.textureCoord;for(let E=0;E<b.length;E++){const L=b[E],D=3*(O+E);for(let R=0;R<L.length;R++)p[D+R]=L[R]}}else p.push(...A.textureCoord);if(T){const b=Object.entries(T._attribute);for(let E=0;E<b.length;E++){const[L,D]=b[E];if(L!=="a_color"&&L!=="a_sourceRect"&&D!=="ignored")if(u[L]=[],o){u[L]=o[L];const R=A.attributes[L],C=R[0].length;for(let B=0;B<R.length;B++){const z=R[B],H=C*(O+B);for(let X=0;X<z.length;X++)u[L][H+X]=z[X]}}else u[L].push(...A.attributes[L])}}O+=A.positions.length,x+=A.cells.length}}u.a_color=c,a&&m&&m.length>0&&(u.a_sourceRect=m);const g={positions:i,cells:f,attributes:u,uniforms:v,cellsCount:x*3,program:T};return p&&p.length&&(g.textureCoord=p),h&&y.length>0&&(u.a_clipUV=y),g}},function(d,r,t){t.r(r);var e=t(1),n=t(30),s=t(26),l=t(31);t(1).glMatrix.setMatrixArrayType(Array);function o(u,g){var M=Object.keys(u);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(u);g&&(A=A.filter(function(I){return Object.getOwnPropertyDescriptor(u,I).enumerable})),M.push.apply(M,A)}return M}function i(u){for(var g=1;g<arguments.length;g++){var M=arguments[g]!=null?arguments[g]:{};g%2?o(Object(M),!0).forEach(function(A){f(u,A,M[A])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(M)):o(Object(M)).forEach(function(A){Object.defineProperty(u,A,Object.getOwnPropertyDescriptor(M,A))})}return u}function f(u,g,M){return g in u?Object.defineProperty(u,g,{value:M,enumerable:!0,configurable:!0,writable:!0}):u[g]=M,u}const p=Symbol("mesh"),c=Symbol("count"),m=Symbol("blend"),y=Symbol("filter"),O=Symbol("textures"),x=Symbol("textureOptions"),v=Symbol("cloudColor"),T=Symbol("cloudFilter"),a=Symbol("buffer");function h(u,g=null){const M=new Float32Array(3*u),A=new Float32Array(3*u),I=new Float32Array(4*u),b=new Float32Array(4*u),E=new Float32Array(4*u),L=new Float32Array(4*u),D=new Float32Array(4*u),R=new Uint8Array(u),C=new Uint8Array(4*u),B=new Uint8Array(4*u);return g&&(M.set(g.transform0,0),A.set(g.transform1,0),I.set(g.color0,0),b.set(g.color1,0),E.set(g.color2,0),L.set(g.color3,0),D.set(g.color4,0),R.set(g.frameIndex,0),C.set(g.fillColor,0),B.set(g.strokeColor,0)),{bufferSize:u,transform0:M,transform1:A,color0:I,color1:b,color2:E,color3:L,color4:D,frameIndex:R,fillColor:C,strokeColor:B}}r.default=class{constructor(u,g=1,{buffer:M=1e3}={}){M=Math.max(M,g),this[c]=g,this[p]=u,this[a]=h(M),this[O]=[],this[y]=[],this[v]=!1,this[T]=!1,this[m]=!1,this.initBuffer()}initBuffer(u=0){const g=this[c];for(let M=u;M<g;M++)this[a].transform0.set([1,0,0],M*3),this[a].transform1.set([0,1,0],M*3),this[a].frameIndex.set([-1],M),this[a].fillColor.set([0,0,0,0],M*4),this[a].strokeColor.set([0,0,0,0],M*4),this.setColorTransform(M,null)}get bufferSize(){return this[a].bufferSize}get mesh(){return this[p]}set mesh(u){this[p]=u,this[O]&&this.setTextureFrames(this[O],this[x])}get hasCloudColor(){return this[v]}get hasCloudFilter(){return this[T]}_getFilter(u){return this[y][u]=this[y][u]||[],this[y][u]}getFilter(u){return this._getFilter(u).join(" ")}get enableBlend(){return this[p].enableBlend||this[m]}canIgnore(){return this[p].canIgnore()}delete(u){if(u>=this[c]||u<0)throw new Error("Out of range.");const{transform0:g,transform1:M,color0:A,color1:I,color2:b,color3:E,color4:L,frameIndex:D,fillColor:R,strokeColor:C}=this[a];g.set(g.subarray(3*(u+1)),3*u),M.set(M.subarray(3*(u+1)),3*u),A.set(A.subarray(4*(u+1)),4*u),I.set(I.subarray(4*(u+1)),4*u),b.set(b.subarray(4*(u+1)),4*u),E.set(E.subarray(4*(u+1)),4*u),L.set(L.subarray(4*(u+1)),4*u),D.set(D.subarray(u+1),u),R.set(R.subarray(4*(u+1)),4*u),C.set(C.subarray(4*(u+1)),4*u);for(const B in this[y])B===u?delete this[y][B]:B>u&&(this[y][B-1]=this[y][B],delete this[y][B]);this[c]--}setColorTransform(u,g){if(u>=this[c]||u<0)throw new Error("Out of range.");u*=4;const{color0:M,color1:A,color2:I,color3:b,color4:E}=this[a];return g!=null?(M.set([g[0],g[5],g[10],g[15]],u),A.set([g[1],g[6],g[11],g[16]],u),I.set([g[2],g[7],g[12],g[17]],u),b.set([g[3],g[8],g[13],g[18]],u),E.set([g[4],g[9],g[14],g[19]],u),this[m]=this[m]||g[18]<1,this[T]=!0):(M.set([1,0,0,0],u),A.set([0,1,0,0],u),I.set([0,0,1,0],u),b.set([0,0,0,1],u),E.set([0,0,0,0],u)),this}getColorTransform(u){if(u>=this[c]||u<0)throw new Error("Out of range.");u*=4;const{color0:g,color1:M,color2:A,color3:I,color4:b}=this[a];return[g[u],M[u],A[u],I[u],b[u],g[u+1],M[u+1],A[u+1],I[u+1],b[u+1],g[u+2],M[u+2],A[u+2],I[u+2],b[u+2],g[u+3],M[u+3],A[u+3],I[u+3],b[u+3]]}transformColor(u,g){let M=this.getColorTransform(u);return M=Object(n.multiply)(M,g),this.setColorTransform(u,M),this}setFillColor(u,g){if(u>=this[c]||u<0)throw new Error("Out of range.");typeof g=="string"&&(g=Object(l.default)(g)),g[3]>0&&(this[v]=!0),this[a].fillColor.set(g.map(M=>Math.round(255*M)),4*u)}setStrokeColor(u,g){if(u>=this[c]||u<0)throw new Error("Out of range.");typeof g=="string"&&(g=Object(l.default)(g)),g[3]>0&&(this[v]=!0),this[a].strokeColor.set(g.map(M=>Math.round(255*M)),4*u)}getCloudRGBA(u){if(u>=this[c]||u<0)throw new Error("Out of range.");u*=4;const{fillColor:g,strokeColor:M}=this[a],A=[g[u],g[u+1],g[u+2],g[u+3]],I=[M[u],M[u+1],M[u+2],M[u+3]];return A[3]/=255,I[3]/=255,{fill:`rgba(${A.join()})`,stroke:`rgba(${I.join()})`}}grayscale(u,g){this.transformColor(u,Object(n.grayscale)(g)),this._getFilter(u).push(`grayscale(${100*g}%)`)}brightness(u,g){this.transformColor(u,Object(n.brightness)(g)),this._getFilter(u).push(`brightness(${100*g}%)`)}saturate(u,g){this.transformColor(u,Object(n.saturate)(g)),this._getFilter(u).push(`saturate(${100*g}%)`)}contrast(u,g){this.transformColor(u,Object(n.contrast)(g)),this._getFilter(u).push(`contrast(${100*g}%)`)}invert(u,g){this.transformColor(u,Object(n.invert)(g)),this._getFilter(u).push(`invert(${100*g}%)`)}sepia(u,g){this.transformColor(u,Object(n.sepia)(g)),this._getFilter(u).push(`sepia(${100*g}%)`)}opacity(u,g){this.transformColor(u,Object(n.opacity)(g)),this._getFilter(u).push(`opacity(${100*g}%)`)}hueRotate(u,g){this.transformColor(u,Object(n.hueRotate)(g)),this._getFilter(u).push(`hue-rotate(${g}deg)`)}setTransform(u,g){if(u>=this[c]||u<0)throw new Error("Out of range.");u*=3,g==null&&(g=[1,0,0,1,0,0]);const{transform0:M,transform1:A}=this[a];return M.set([g[0],g[2],g[4]],u),A.set([g[1],g[3],g[5]],u),this}getTransform(u){if(u>=this[c]||u<0)throw new Error("Out of range.");u*=3;const{transform0:g,transform1:M}=this[a];return[g[u],M[u],g[u+1],M[u+1],g[u+2],M[u+2]]}getTextureFrame(u){return this[O][this[a].frameIndex[u]]}setTextureFrames(u=[],g={}){if(u.length>12)throw new Error("Max frames exceed. Allow 12 frames.");u.length&&this[p].setTexture(u[0],g),this[O]=u,this[x]=g}setFrameIndex(u,g){if(u>=this[c]||u<0)throw new Error("Out of range.");const M=this[O].length;if(M<=0)throw new Error("No frames");this[a].frameIndex[u]=g%M}get amount(){return this[c]}set amount(u){const g=this[c];u!==g&&(u>this[a].bufferSize&&(this[a]=h(Math.max(u,this[a].bufferSize+1e3),this[a])),this[c]=u,u>g&&this.initBuffer(g))}get meshData(){const{attributes:u,cells:g,positions:M,textureCoord:A,uniforms:I}=this[p].meshData,b=this[O],E={attributes:i({},u),cells:g,positions:M,textureCoord:A,uniforms:i({},I),instanceCount:this[c],enableBlend:this.enableBlend};b.length&&b.forEach((G,Q)=>{E.uniforms[`u_texFrame${Q}`]=G});const{transform0:L,transform1:D,color0:R,color1:C,color2:B,color3:z,color4:H,fillColor:X,strokeColor:Z,frameIndex:j}=this[a];return this[p].uniforms.u_texSampler&&(E.attributes.a_frameIndex={data:j,divisor:1}),E.attributes.a_transform0={data:L,divisor:1},E.attributes.a_transform1={data:D,divisor:1},E.attributes.a_colorCloud0={data:R,divisor:1},E.attributes.a_colorCloud1={data:C,divisor:1},E.attributes.a_colorCloud2={data:B,divisor:1},E.attributes.a_colorCloud3={data:z,divisor:1},E.attributes.a_colorCloud4={data:H,divisor:1},this.hasCloudColor&&(E.attributes.a_fillCloudColor={data:X,divisor:1},E.attributes.a_strokeCloudColor={data:Z,divisor:1}),E}setProgram(u){this[p].setProgram(u)}get program(){return this[p].program}transform(u,g){const M=this.getTransform(u);return g=e.mat2d.multiply(Array.of(0,0,0,0,0,0),M,g),this.setTransform(u,g),this}translate(u,[g,M]){let A=e.mat2d.create();return A=e.mat2d.translate(Array.of(0,0,0,0,0,0),A,[g,M]),this.transform(u,A)}rotate(u,g,[M,A]=[0,0]){let I=e.mat2d.create();return I=e.mat2d.translate(Array.of(0,0,0,0,0,0),I,[M,A]),I=e.mat2d.rotate(Array.of(0,0,0,0,0,0),I,g),I=e.mat2d.translate(Array.of(0,0,0,0,0,0),I,[-M,-A]),this.transform(u,I)}scale(u,[g,M=g],[A,I]=[0,0]){let b=e.mat2d.create();return b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[A,I]),b=e.mat2d.scale(Array.of(0,0,0,0,0,0),b,[g,M]),b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[-A,-I]),this.transform(u,b)}skew(u,[g,M=g],[A,I]=[0,0]){let b=e.mat2d.create();return b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[A,I]),b=e.mat2d.multiply(Array.of(0,0,0,0,0,0),b,e.mat2d.fromValues(1,Math.tan(M),Math.tan(g),1,0,0)),b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[-A,-I]),this.transform(u,b)}isPointCollision(u,[g,M],A="both"){const I=this.getTransform(u),b=Object(s.transformPoint)([g,M],e.mat2d.invert(Array.of(0,0,0,0,0,0),I));return this[p].isPointCollision(...b,A)}isPointInFill(u,[g,M]){return this.isPointCollision(u,[g,M],"fill")}isPointInStroke(u,[g,M]){return this.isPointCollision(u,[g,M],"stroke")}}},function(d,r,t){t.r(r),t.d(r,"multiply",function(){return n}),t.d(r,"grayscale",function(){return s}),t.d(r,"brightness",function(){return l}),t.d(r,"saturate",function(){return o}),t.d(r,"contrast",function(){return i}),t.d(r,"invert",function(){return f}),t.d(r,"sepia",function(){return p}),t.d(r,"opacity",function(){return c}),t.d(r,"hueRotate",function(){return m});var e=t(26);t(1).glMatrix.setMatrixArrayType(Array);function n(y,O){const x=[],v=y[0],T=y[1],a=y[2],h=y[3],u=y[4],g=y[5],M=y[6],A=y[7],I=y[8],b=y[9],E=y[10],L=y[11],D=y[12],R=y[13],C=y[14],B=y[15],z=y[16],H=y[17],X=y[18],Z=y[19];let j=O[0],G=O[1],Q=O[2],tt=O[3],et=O[4];return x[0]=j*v+G*g+Q*E+tt*B,x[1]=j*T+G*M+Q*L+tt*z,x[2]=j*a+G*A+Q*D+tt*H,x[3]=j*h+G*I+Q*R+tt*X,x[4]=j*u+G*b+Q*C+tt*Z+et,j=O[5],G=O[6],Q=O[7],tt=O[8],et=O[9],x[5]=j*v+G*g+Q*E+tt*B,x[6]=j*T+G*M+Q*L+tt*z,x[7]=j*a+G*A+Q*D+tt*H,x[8]=j*h+G*I+Q*R+tt*X,x[9]=j*u+G*b+Q*C+tt*Z+et,j=O[10],G=O[11],Q=O[12],tt=O[13],et=O[14],x[10]=j*v+G*g+Q*E+tt*B,x[11]=j*T+G*M+Q*L+tt*z,x[12]=j*a+G*A+Q*D+tt*H,x[13]=j*h+G*I+Q*R+tt*X,x[14]=j*u+G*b+Q*C+tt*Z+et,j=O[15],G=O[16],Q=O[17],tt=O[18],et=O[19],x[15]=j*v+G*g+Q*E+tt*B,x[16]=j*T+G*M+Q*L+tt*z,x[17]=j*a+G*A+Q*D+tt*H,x[18]=j*h+G*I+Q*R+tt*X,x[19]=j*u+G*b+Q*C+tt*Z+et,x}function s(y){y=Object(e.clamp)(0,1,y);const O=.2126*y,x=.7152*y,v=.0722*y;return[O+1-y,x,v,0,0,O,x+1-y,v,0,0,O,x,v+1-y,0,0,0,0,0,1,0]}function l(y){return[y,0,0,0,0,0,y,0,0,0,0,0,y,0,0,0,0,0,1,0]}function o(y){const O=.2126*(1-y),x=.7152*(1-y),v=.0722*(1-y);return[O+y,x,v,0,0,O,x+y,v,0,0,O,x,v+y,0,0,0,0,0,1,0]}function i(y){const O=.5*(1-y);return[y,0,0,0,O,0,y,0,0,O,0,0,y,0,O,0,0,0,1,0]}function f(y){const O=1-2*y;return[O,0,0,0,y,0,O,0,0,y,0,0,O,0,y,0,0,0,1,0]}function p(y){return[1-.607*y,.769*y,.189*y,0,0,.349*y,1-.314*y,.168*y,0,0,.272*y,.534*y,1-.869*y,0,0,0,0,0,1,0]}function c(y){return[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,y,0]}function m(y){const O=y/180*Math.PI,x=Math.cos(O),v=Math.sin(O),T=.2126,a=.7152,h=.0722;return[T+x*(1-T)+v*-T,a+x*-a+v*-a,h+x*-h+v*(1-h),0,0,T+x*-T+v*.143,a+x*(1-a)+v*.14,h+x*-h+v*-.283,0,0,T+x*-T+v*-(1-T),a+x*-a+v*a,h+x*(1-h)+v*h,0,0,0,0,0,1,0]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return s});var e=t(32),n=t.n(e);t(1).glMatrix.setMatrixArrayType(Array);function s(l){const o=n()(l);if(!o||!o.length)throw new TypeError("Invalid color value.");return[o[0]/255,o[1]/255,o[2]/255,o[3]]}},function(d,r,t){var e=t(33),n=t(37),s=t(39);d.exports=function(o){var i,f=e(o);return f.space?(i=Array(3),i[0]=s(f.values[0],0,255),i[1]=s(f.values[1],0,255),i[2]=s(f.values[2],0,255),f.space[0]==="h"&&(i=n.rgb(i)),i.push(s(f.alpha,0,1)),i):[]}},function(d,r,t){(function(e){var n=t(34),s=t(35),l=t(36);d.exports=i;var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function i(f){var p,c=[],m=1,y;if(typeof f=="string")if(n[f])c=n[f].slice(),y="rgb";else if(f==="transparent")m=0,y="rgb",c=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(f)){var O=f.slice(1),x=O.length,v=x<=4;m=1,v?(c=[parseInt(O[0]+O[0],16),parseInt(O[1]+O[1],16),parseInt(O[2]+O[2],16)],x===4&&(m=parseInt(O[3]+O[3],16)/255)):(c=[parseInt(O[0]+O[1],16),parseInt(O[2]+O[3],16),parseInt(O[4]+O[5],16)],x===8&&(m=parseInt(O[6]+O[7],16)/255)),c[0]||(c[0]=0),c[1]||(c[1]=0),c[2]||(c[2]=0),y="rgb"}else if(p=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(f)){var T=p[1],a=T==="rgb",O=T.replace(/a$/,"");y=O;var x=O==="cmyk"?4:O==="gray"?1:3;c=p[2].trim().split(/\s*,\s*/).map(function(M,A){if(/%$/.test(M))return A===x?parseFloat(M)/100:O==="rgb"?parseFloat(M)*255/100:parseFloat(M);if(O[A]==="h"){if(/deg$/.test(M))return parseFloat(M);if(o[M]!==void 0)return o[M]}return parseFloat(M)}),T===O&&c.push(1),m=a||c[x]===void 0?1:c[x],c=c.slice(0,x)}else f.length>10&&/[0-9](?:\s|\/)/.test(f)&&(c=f.match(/([0-9]+)/g).map(function(u){return parseFloat(u)}),y=f.match(/([a-z])/ig).join("").toLowerCase());else if(!isNaN(f))y="rgb",c=[f>>>16,(f&65280)>>>8,f&255];else if(s(f)){var h=l(f.r,f.red,f.R,null);h!==null?(y="rgb",c=[h,l(f.g,f.green,f.G),l(f.b,f.blue,f.B)]):(y="hsl",c=[l(f.h,f.hue,f.H),l(f.s,f.saturation,f.S),l(f.l,f.lightness,f.L,f.b,f.brightness)]),m=l(f.a,f.alpha,f.opacity,1),f.opacity!=null&&(m/=100)}else(Array.isArray(f)||e.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(f))&&(c=[f[0],f[1],f[2]],y="rgb",m=f.length===4?f[3]:1);return{space:y,values:c,alpha:m}}}).call(this,t(22))},function(d,r,t){d.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(d,r,t){var e=Object.prototype.toString;d.exports=function(n){var s;return e.call(n)==="[object Object]"&&(s=Object.getPrototypeOf(n),s===null||s===Object.getPrototypeOf({}))}},function(d,r){d.exports=function(){for(var t=0;t<arguments.length;t++)if(arguments[t]!==void 0)return arguments[t]}},function(d,r,t){var e=t(38);d.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(n){var s=n[0]/360,l=n[1]/100,o=n[2]/100,i,f,p,c,m;if(l===0)return m=o*255,[m,m,m];o<.5?f=o*(1+l):f=o+l-o*l,i=2*o-f,c=[0,0,0];for(var y=0;y<3;y++)p=s+1/3*-(y-1),p<0?p++:p>1&&p--,6*p<1?m=i+(f-i)*6*p:2*p<1?m=f:3*p<2?m=i+(f-i)*(2/3-p)*6:m=i,c[y]=m*255;return c}},e.hsl=function(n){var s=n[0]/255,l=n[1]/255,o=n[2]/255,i=Math.min(s,l,o),f=Math.max(s,l,o),p=f-i,c,m,y;return f===i?c=0:s===f?c=(l-o)/p:l===f?c=2+(o-s)/p:o===f&&(c=4+(s-l)/p),c=Math.min(c*60,360),c<0&&(c+=360),y=(i+f)/2,f===i?m=0:y<=.5?m=p/(f+i):m=p/(2-f-i),[c,m*100,y*100]}},function(d,r,t){d.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},function(d,r){d.exports=t;function t(e,n,s){return n<s?e<n?n:e>s?s:e:e<s?s:e>n?n:e}},function(d,r,t){t.r(r),t.d(r,"default",function(){return h});var e=t(41),n=t.n(e),s=t(42),l=t.n(s),o=t(43),i=t.n(o),f=t(44),p=t(46),c=t.n(p),m=t(53),y=t(55);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("contours"),x=Symbol("path"),v=Symbol("simplify"),T=Symbol("scale"),a=2*Math.PI;class h{constructor(g={}){typeof g=="string"&&(g={path:g}),g.path?this[x]=n()(g.path):this[x]=[],this[O]=null,this[v]=g.simplify!=null?g.simplify:0,this[T]=g.scale!=null?g.scale:2}get contours(){let g=null;if(!this[O]&&this[x]){const M=Object(f.default)(i()(this[x]));this[O]=c()(M,this[T],this[v]),this[O].path=M,this[O].simplify=this[v],this[O].scale=this[T]}return this[O]&&(g=this[O].map(M=>[...M]),g.path=this[O].path,g.simplify=this[O].simplify,g.scale=this[O].scale),g}get path(){return this[x]}get simplify(){return this[v]}get boundingBox(){const g=this.contours;if(g&&g.length){const M=g.reduce((A,I)=>[...A,...I]);return l()(M)}return[[0,0],[0,0]]}get boundingCenter(){const g=this.boundingBox;return g?[.5*(g[0][0]+g[1][0]),.5*(g[0][1]+g[1][1])]:[0,0]}normalize(g=0,M=0){const A=Object(f.default)(i()(this[x])).map(([I,...b])=>{const E=[I];for(let L=0;L<b.length;L+=2){const D=b[L]-g,R=b[L+1]-M;E.push(D,R)}return E});return this.beginPath(),this[x].push(...A),this}getPointAtLength(g){return this.contours?Object(m.getPointAtLength)(this[O],g):null}getTotalLength(){return this.contours?Object(m.getTotalLength)(this[O]):0}addPath(g){this[O]=null,typeof g=="string"&&(g=n()(g)),this[x].push(...g)}beginPath(){this[x]=[],this[O]=null}clear(){this.beginPath()}ellipse(g,M,A,I,b,E,L,D=0){if(E+=b,L+=b,A<=0||I<=0||L===E)return;L<E&&(L=E+a+(L-E)%a),L-E>a&&(L=E+a);const R=L-E;R>=a&&(L-=.001);let C=this[x].length>0&&R<a?"L":"M";const B=Object(y.getPoint)(g,M,A,I,E),z=Object(y.getPoint)(g,M,A,I,L),H=+!D;let X=R>Math.PI?1:0;D&&(X=1-X),C+=B.join(" "),C+=`A${A} ${I} 0 ${X} ${H} ${z.join(" ")}`,R>=a&&(C+="Z"),this.addPath(C)}arc(g,M,A,I,b,E=0){return this.ellipse(g,M,A,A,0,I,b,E)}arcTo(g,M,A,I,b,E,L){this[O]=null,this[x].push(["A",g,M,A,I,b,E,L])}moveTo(g,M){this[O]=null,this[x].push(["M",g,M])}lineTo(g,M){this[O]=null,this[x].push(["L",g,M])}bezierCurveTo(g,M,A,I,b,E){this[O]=null,this[x].push(["C",g,M,A,I,b,E])}quadraticCurveTo(g,M,A,I){this[O]=null,this[x].push(["Q",g,M,A,I])}rect(g,M,A,I){const b=`M${g} ${M}L${g+A} ${M}L${g+A} ${M+I}L${g} ${M+I}Z`;this.addPath(b)}closePath(){this[O]=null;let g=[];const M=this[x].length;M>0&&(g=this[x][M-1]),g[0]!=="Z"&&g[0]!=="z"&&this[x].push(["Z"])}}},function(d,r){d.exports=n;var t={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},e=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function n(o){var i=[];return o.replace(e,function(f,p,c){var m=p.toLowerCase();for(c=l(c),m=="m"&&c.length>2&&(i.push([p].concat(c.splice(0,2))),m="l",p=p=="m"?"l":"L");;){if(c.length==t[m])return c.unshift(p),i.push(c);if(c.length<t[m])throw new Error("malformed path data");i.push([p].concat(c.splice(0,t[m])))}}),i}var s=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function l(o){var i=o.match(s);return i?i.map(Number):[]}},function(d,r,t){d.exports=e;function e(n){var s=n.length;if(s===0)return[[],[]];for(var l=n[0].length,o=n[0].slice(),i=n[0].slice(),f=1;f<s;++f)for(var p=n[f],c=0;c<l;++c){var m=p[c];o[c]=Math.min(o[c],m),i[c]=Math.max(i[c],m)}return[o,i]}},function(d,r){d.exports=t;function t(e){var n=0,s=0,l=0,o=0;return e.map(function(i){i=i.slice();var f=i[0],p=f.toUpperCase();if(f!=p)switch(i[0]=p,f){case"a":i[6]+=l,i[7]+=o;break;case"v":i[1]+=o;break;case"h":i[1]+=l;break;default:for(var c=1;c<i.length;)i[c++]+=l,i[c++]+=o}switch(p){case"Z":l=n,o=s;break;case"H":l=i[1];break;case"V":o=i[1];break;case"M":l=n=i[1],o=s=i[2];break;default:l=i[i.length-2],o=i[i.length-1]}return i})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(45);t(1).glMatrix.setMatrixArrayType(Array);function n(o){for(var i,f=[],p=0,c=0,m=0,y=0,O=null,x=null,v=0,T=0,a=0,h=o.length;a<h;a++){var u=o[a],g=u[0];switch(g){case"M":m=u[1],y=u[2];break;case"A":var M=Object(e.default)(v,T,u[6],u[7],u[4],u[5],u[1],u[2],u[3]);if(!M.length)continue;M=M.map(L=>{const[D,R,C,B,z,H,X,Z]=L;return{x1:C,y1:B,x2:z,y2:H,x:X,y:Z}});for(var A=0,I;A<M.length;A++)I=M[A],u=["C",I.x1,I.y1,I.x2,I.y2,I.x,I.y],A<M.length-1&&f.push(u);break;case"S":var b=v,E=T;(i=="C"||i=="S")&&(b+=b-p,E+=E-c),u=["C",b,E,u[1],u[2],u[3],u[4]];break;case"T":i=="Q"||i=="T"?(O=v*2-O,x=T*2-x):(O=v,x=T),u=l(v,T,O,x,u[1],u[2]);break;case"Q":O=u[1],x=u[2],u=l(v,T,u[1],u[2],u[3],u[4]);break;case"L":u=s(v,T,u[1],u[2]);break;case"H":u=s(v,T,u[1],T);break;case"V":u=s(v,T,v,u[1]);break;case"Z":u=s(v,T,m,y);break}i=g,v=u[u.length-2],T=u[u.length-1],u.length>4?(p=u[u.length-4],c=u[u.length-3]):(p=v,c=T),f.push(u)}return f}function s(o,i,f,p){return["C",o,i,f,p,f,p]}function l(o,i,f,p,c,m){return["C",o/3+2/3*f,i/3+2/3*p,c/3+2/3*f,m/3+2/3*p,c,m]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o}),t(1).glMatrix.setMatrixArrayType(Array);const e=Math.PI*2;function n(i,f,p,c){const m=i*c-f*p<0?-1:1;let y=i*p+f*c;return y>1&&(y=1),y<-1&&(y=-1),m*Math.acos(y)}function s(i,f,p,c,m,y,O,x,v,T){const a=T*(i-p)/2+v*(f-c)/2,h=-v*(i-p)/2+T*(f-c)/2,u=O*O,g=x*x,M=a*a,A=h*h;let I=u*g-u*A-g*M;I<0&&(I=0),I/=u*A+g*M,I=Math.sqrt(I)*(m===y?-1:1);const b=I*O/x*h,E=I*-x/O*a,L=T*b-v*E+(i+p)/2,D=v*b+T*E+(f+c)/2,R=(a-b)/O,C=(h-E)/x,B=(-a-b)/O,z=(-h-E)/x,H=n(1,0,R,C);let X=n(R,C,B,z);return y===0&&X>0&&(X-=e),y===1&&X<0&&(X+=e),[L,D,H,X]}function l(i,f){const p=1.3333333333333333*Math.tan(f/4),c=Math.cos(i),m=Math.sin(i),y=Math.cos(i+f),O=Math.sin(i+f);return[c,m,c-m*p,m+c*p,y+O*p,O-y*p,y,O]}function o(i,f,p,c,m,y,O,x,v){const T=Math.sin(v*e/360),a=Math.cos(v*e/360),h=a*(i-p)/2+T*(f-c)/2,u=-T*(i-p)/2+a*(f-c)/2;if(h===0&&u===0)return[];if(O===0||x===0)return[];O=Math.abs(O),x=Math.abs(x);const g=h*h/(O*O)+u*u/(x*x);g>1&&(O*=Math.sqrt(g),x*=Math.sqrt(g));const M=s(i,f,p,c,m,y,O,x,T,a),A=[];let I=M[2],b=M[3];const E=Math.max(Math.ceil(Math.abs(b)/(e/4)),1);b/=E;for(let L=0;L<E;L++)A.push(l(I,b)),I+=b;return A.map(L=>{for(let D=0;D<L.length;D+=2){let R=L[D+0],C=L[D+1];R*=O,C*=x;const B=a*R-T*C,z=T*R+a*C;L[D+0]=B+M[0],L[D+1]=z+M[1]}return L})}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e=t(47),{copy:n}=t(49),s=t(50);function l(c,m,y){return c[0]=m,c[1]=y,c}var o=[0,0],i=[0,0],f=[0,0];function p(c,m,y,O){e(y,l(o,O[1],O[2]),l(i,O[3],O[4]),l(f,O[5],O[6]),m,c)}d.exports=function(m,y,O){var x=[],v=[],T=[0,0];return m.forEach(function(a,h,u){if(a[0]==="M")n(T,a.slice(1)),v.length>0&&(x.push(v),v=[]);else if(a[0]==="C")p(v,y,T,a),l(T,a[5],a[6]);else throw new Error("illegal type in SVG: "+a[0])}),v.length>0&&x.push(v),x.map(function(a){return s(a,O||0)})}},function(d,r,t){d.exports=t(48)()},function(d,r){function t(n){return[n[0],n[1]]}function e(n,s){return[n,s]}d.exports=function(s){s=s||{};var l=typeof s.recursion=="number"?s.recursion:8,o=typeof s.epsilon=="number"?s.epsilon:11920929e-14,i=typeof s.pathEpsilon=="number"?s.pathEpsilon:1,f=typeof s.angleEpsilon=="number"?s.angleEpsilon:.01,p=s.angleTolerance||0,c=s.cuspLimit||0;return function(x,v,T,a,h,u){u||(u=[]),h=typeof h=="number"?h:1;var g=i/h;return g*=g,m(x,v,T,a,u,g),u};function m(O,x,v,T,a,h){a.push(t(O));var u=O[0],g=O[1],M=x[0],A=x[1],I=v[0],b=v[1],E=T[0],L=T[1];y(u,g,M,A,I,b,E,L,a,h,0),a.push(t(T))}function y(O,x,v,T,a,h,u,g,M,A,I){if(!(I>l)){var b=Math.PI,E=(O+v)/2,L=(x+T)/2,D=(v+a)/2,R=(T+h)/2,C=(a+u)/2,B=(h+g)/2,z=(E+D)/2,H=(L+R)/2,X=(D+C)/2,Z=(R+B)/2,j=(z+X)/2,G=(H+Z)/2;if(I>0){var Q=u-O,tt=g-x,et=Math.abs((v-u)*tt-(T-g)*Q),at=Math.abs((a-u)*tt-(h-g)*Q),q,pt;if(et>o&&at>o){if((et+at)*(et+at)<=A*(Q*Q+tt*tt)){if(p<f){M.push(e(j,G));return}var dt=Math.atan2(h-T,a-v);if(q=Math.abs(dt-Math.atan2(T-x,v-O)),pt=Math.abs(Math.atan2(g-h,u-a)-dt),q>=b&&(q=2*b-q),pt>=b&&(pt=2*b-pt),q+pt<p){M.push(e(j,G));return}if(c!==0){if(q>c){M.push(e(v,T));return}if(pt>c){M.push(e(a,h));return}}}}else if(et>o){if(et*et<=A*(Q*Q+tt*tt)){if(p<f){M.push(e(j,G));return}if(q=Math.abs(Math.atan2(h-T,a-v)-Math.atan2(T-x,v-O)),q>=b&&(q=2*b-q),q<p){M.push(e(v,T)),M.push(e(a,h));return}if(c!==0&&q>c){M.push(e(v,T));return}}}else if(at>o){if(at*at<=A*(Q*Q+tt*tt)){if(p<f){M.push(e(j,G));return}if(q=Math.abs(Math.atan2(g-h,u-a)-Math.atan2(h-T,a-v)),q>=b&&(q=2*b-q),q<p){M.push(e(v,T)),M.push(e(a,h));return}if(c!==0&&q>c){M.push(e(a,h));return}}}else if(Q=j-(O+u)/2,tt=G-(x+g)/2,Q*Q+tt*tt<=A){M.push(e(j,G));return}}y(O,x,E,L,z,H,j,G,M,A,I+1),y(j,G,X,Z,C,B,u,g,M,A,I+1)}}}},function(d,r,t){t.r(r),t.d(r,"create",function(){return s}),t.d(r,"clone",function(){return n}),t.d(r,"copy",function(){return l}),t.d(r,"scaleAndAdd",function(){return o}),t.d(r,"dot",function(){return i}),t.d(r,"rotate",function(){return f}),t.d(r,"cross",function(){return p}),t.d(r,"sub",function(){return c}),t.d(r,"add",function(){return m}),t.d(r,"computeMiter",function(){return v}),t.d(r,"normal",function(){return T}),t.d(r,"direction",function(){return a});var e=t(1);t(1).glMatrix.setMatrixArrayType(Array);function n(h){return[h[0],h[1]]}function s(){return[0,0]}const l=e.vec2.copy,o=e.vec2.scaleAndAdd,i=e.vec2.dot,f=e.vec2.rotate,p=e.vec2.cross,c=e.vec2.sub,m=e.vec2.add,y=e.vec2.normalize,O=e.vec2.set,x=s();function v(h,u,g,M,A){m(h,g,M),y(h,h),O(u,-h[1],h[0]),O(x,-g[1],g[0]);const I=A/i(u,x);return Math.abs(I)}function T(h,u){return O(h,-u[1],u[0]),h}function a(h,u,g){return c(h,u,g),y(h,h),h}},function(d,r,t){var e=t(51),n=t(52);d.exports=function(l,o){return l=e(l,o),l=n(l,o),l},d.exports.radialDistance=e,d.exports.douglasPeucker=n},function(d,r){function t(e,n){var s=e[0]-n[0],l=e[1]-n[1];return s*s+l*l}d.exports=function(n,s){if(n.length<=1)return n;s=typeof s=="number"?s:1;for(var l=s*s,o=n[0],i=[o],f,p=1,c=n.length;p<c;p++)f=n[p],t(f,o)>l&&(i.push(f),o=f);return o!==f&&i.push(f),i}},function(d,r){function t(n,s,l){var o=s[0],i=s[1],f=l[0]-o,p=l[1]-i;if(f!==0||p!==0){var c=((n[0]-o)*f+(n[1]-i)*p)/(f*f+p*p);c>1?(o=l[0],i=l[1]):c>0&&(o+=f*c,i+=p*c)}return f=n[0]-o,p=n[1]-i,f*f+p*p}function e(n,s,l,o,i){for(var f=o,p,c=s+1;c<l;c++){var m=t(n[c],n[s],n[l]);m>f&&(p=c,f=m)}f>o&&(p-s>1&&e(n,s,p,o,i),i.push(n[p]),l-p>1&&e(n,p,l,o,i))}d.exports=function(s,l){if(s.length<=1)return s;l=typeof l=="number"?l:1;var o=l*l,i=s.length-1,f=[s[0]];return e(s,0,i,o,f),f.push(s[i]),f}},function(d,r,t){t.r(r),t.d(r,"getTotalLength",function(){return n}),t.d(r,"getPointAtLength",function(){return l}),t.d(r,"getDashContours",function(){return o});var e=t(54);t(1).glMatrix.setMatrixArrayType(Array);function n(i){if(i.totalLength!=null)return i.totalLength;let f=0;return i.forEach(p=>{let c=p[0];for(let m=1;m<p.length;m++){const y=p[m];f+=Object(e.distance)(c,y),c=y}}),i.totalLength=f,f}function s(i,f,p=!0){if(f=Number(f),!Number.isFinite(f))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(f<=0)throw new TypeError("Length must > 0");const c=n(i);if(f>=c){const y=i[i.length-1],O=y[y.length-2],x=y[y.length-1],v=Math.atan2(x[1]-O[1],x[0]-O[0]);return{current:i.map(T=>[...T]),point:{x:x[0],y:x[1],angle:v}}}const m=[];for(let y=0;y<i.length;y++){m[y]=[];const O=i[y];let x=O[0];for(let v=1;v<O.length;v++){const T=O[v],a=Object(e.distance)(x,T);if(f<a){const h=f/a,u=Math.atan2(T[1]-x[1],T[0]-x[0]),g={x:x[0]*(1-h)+T[0]*h,y:x[1]*(1-h)+T[1]*h,angle:u};if(m[y].push(x),f>0&&m[y].push([g.x,g.y]),!p)return{current:m,point:g};const M=[],A=y;for(;y<i.length;y++){for(M[y-A]=[],y===A&&M[0].push([g.x,g.y]);v<O.length;v++)M[y-A].push(O[v]);v=0}return{current:m,point:g,rest:M}}f-=a,m[y].push(x),x=T}}}function l(i,f){if(f=Number(f),!Number.isFinite(f))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(i.length<=0)return{x:0,y:0,angle:0};if(f<=0){const p=i[0][0],c=i[0][1],m=Math.atan2(c[1]-p[1],c[0]-p[0]);return{x:p[0],y:p[1],angle:m}}return s(i,f,!1).point}function o(i,f,p){let c=0,m=f[0],y=i;const O=[],x=f.length;if(p>0){do p-=f[c%x],c++;while(p>0);p<0&&(m=-p,c--)}else if(p<0){c=-1;do p+=f[c%x+x-1],c--;while(p<0);p>=0&&(c++,m=f[c%x+x-1]-p)}do{const v=s(y,m);y=v.rest,++c%2&&O.push(...v.current);let T=c%x;T<0&&(T+=x),m=f[T]}while(y);return O}},function(d,r,t){t.r(r),t.d(r,"normalize",function(){return e}),t.d(r,"distance",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function e([s,l,o],i,f,p){return s=s*2/i-1,l=1-l*2/f,Number.isFinite(p)?(o=o*2/p-1,[s,l,o]):[s,l]}function n([s,l,o=0],[i,f,p=0]){return Math.hypot(i-s,f-l,p-o)}},function(d,r,t){t.r(r),t.d(r,"getPoint",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);const e=Math.PI*2;function n(s,l,o,i,f){f%=e,f<0&&(f+=e);const p=Math.tan(f);if(Math.abs(p)<1e5){const c=l-p*s,m=1/o**2+p**2/i**2;let y=-1;(f<=Math.PI/2||f>3*Math.PI/2)&&(y=1);const O=y*Math.sqrt(1/m)+s,x=p*O+c;return[O,x]}return f<Math.PI?[s,l+i]:[s,l-i]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return V});var e=t(1),n=t(42),s=t.n(n),l=t(57),o=t(28),i=t(24),f=t(30),p=t(59),c=t(53),m=t(60),y=t.n(m),O=t(46),x=t.n(O),v=t(31),T=t(40),a=t(21);t(1).glMatrix.setMatrixArrayType(Array);function h(J,N){if(J==null)return{};var $=u(J,N),S,P;if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(J);for(P=0;P<w.length;P++)S=w[P],!(N.indexOf(S)>=0)&&Object.prototype.propertyIsEnumerable.call(J,S)&&($[S]=J[S])}return $}function u(J,N){if(J==null)return{};var $={},S=Object.keys(J),P,w;for(w=0;w<S.length;w++)P=S[w],!(N.indexOf(P)>=0)&&($[P]=J[P]);return $}const g=Symbol("mesh"),M=Symbol("contours"),A=Symbol("stroke"),I=Symbol("fill"),b=Symbol("strokeColor"),E=Symbol("fillColor"),L=Symbol("transform"),D=Symbol("invertTransform"),R=Symbol("uniforms"),C=Symbol("texOptions"),B=Symbol("blend"),z=Symbol("applyTexture"),H=Symbol("applyTransform"),X=Symbol("applyGradientTransform"),Z=Symbol("applyProgram"),j=Symbol("gradient"),G=Symbol("filter"),Q=Symbol("opacity"),tt=Symbol("program"),et=Symbol("attributes"),at=Symbol("pass"),q=Symbol("clipContext"),pt=Symbol("applyClipPath");function dt(J,N){const[$,S]=[J[1][0]-J[0][0],J[1][1]-J[0][1]],P=[];for(let w=0;w<N.length;w++){const U=N[w],K=[(U[0]-J[0][0])/$,1-(U[1]-J[0][1])/S];P.push(K)}return P}function W([J,N],[$,S,P,w],{scale:U}){return U||(J/=P,N=1-N/w,J-=$,N+=S),[J,N,0]}function F(J,N,$){const S=x()(J,N,$);return S.path=J,S.simplify=$,S.scale=N,S}class V{constructor(N){this[A]=null,this[I]=null,this[L]=[1,0,0,1,0,0],this[Q]=1,this[R]={},this[G]=[],this[B]=null,this[C]={},this.contours=N.contours,this[tt]=null,this[et]={},this[at]=[]}get contours(){return this[M]}set contours(N){this[g]=null,this[M]=N;const $=N.scale;this.transformScale/$>1.5&&this.accurate(this.transformScale)}setProgram(N){this[tt]=N,this[g]&&this[Z](N)}get program(){return this[tt]}setAttribute(N,$){$==null?delete this[et][N]:this[et][N]=$}getOpacity(){return this[Q]}setOpacity(N){if(N<0||N>1)throw new TypeError("Invalid opacity value.");this[g]&&this[g].positions.forEach($=>{$[2]=1/$[2]>0?N:-N}),this[Q]=N}setClipPath(N){this.clipPath=N,this[R].u_clipSampler&&this[R].u_clipSampler.delete(),this.setUniforms({u_clipSampler:null}),this[g]&&delete this[g].attributes.a_clipUV,N&&this[g]&&this[pt]()}[pt](){if(this.clipPath){this[q]||(this[q]=a.default.createCanvas(1,1));const[[N,$],[S,P]]=this.boundingBox;S&&P&&(this[q].width=S-N,this[q].height=P-$);const w=this[q].getContext("2d"),U=new Path2D(this.clipPath);w.clearRect(0,0,this[q].width,this[q].height),w.save(),w.translate(-N,-$),w.fillStyle="white",w.fill(U),w.restore(),this[g].clipPath=this[q];const K=dt(this.boundingBox,this[g].position0);this[g].attributes.a_clipUV=K}}getPointAtLength(N){return Object(c.getPointAtLength)(this[M],N)}getTotalLength(){return Object(c.getTotalLength)(this[M])}get blend(){return this[B]==null?"auto":this[B]}set blend(N){this[B]=N,this[g]&&(this[g].enableBlend=this.enableBlend)}get boundingBox(){if(this[g]&&this[g].boundingBox)return this[g].boundingBox;const N=this.meshData;if(N){const $=N.position0;if($.length)N.boundingBox=s()($);else return[[0,0],[0,0]];return N.boundingBox}return[[0,0],[0,0]]}get boundingCenter(){const N=this.boundingBox;return N?[.5*(N[0][0]+N[1][0]),.5*(N[0][1]+N[1][1])]:[0,0]}get fillRule(){return this[I]?this[I].rule:"nonzero"}get lineWidth(){return this[A]?this[A].lineWidth:0}get lineCap(){return this[A]?this[A].lineCap:""}get lineJoin(){return this[A]?this[A].lineJoin:""}get miterLimit(){return this[A]?this[A].miterLimit:0}get strokeStyle(){return this[b]&&this[b][3]!==0?Object(i.default)(this[b]):""}get lineDash(){return this[A]?this[A].lineDash:null}get lineDashOffset(){return this[A]?this[A].lineDashOffset:0}get fillStyle(){return this[E]&&this[E][3]!==0?Object(i.default)(this[E]):""}get gradient(){return this[j]}get texture(){return this[R].u_texSampler?{image:this[R].u_texSampler._img,options:this[C]}:null}get enableBlend(){return this[B]===!0||this[B]===!1?this[B]:this[Q]<1||this[b]!=null&&this[b][3]<1||this[E]!=null&&this[E][3]<1||this[R].u_colorMatrix!=null&&this[R].u_colorMatrix[18]<1||this[R].u_radialGradientVector!=null||this.beforeRender||this.afterRender}get filterCanvas(){return/blur|drop-shadow|url/.test(this.filter)}get filter(){return this[G].join(" ")}get transformMatrix(){return this[L]}get invertMatrix(){if(!this[D]){const N=e.mat2d.invert(Array.of(0,0,0,0,0,0),this[L]);this[D]=N}return this[D]}get transformScale(){const N=this[L];return Math.max(Math.hypot(N[0],N[1]),Math.hypot(N[2],N[3]))}get uniforms(){return this[R]}get pass(){return this[at]}[Z](N){const $=this[et],S=this[g].position0,P=Object.entries(N._attribute);for(let w=0;w<P.length;w++){const[U,K]=P[w];if(U!=="a_color"&&U!=="a_sourceRect"&&K!=="ignored"){const Y=$[U];if(U==="uv"&&!Y){const k=this[g].boundingBox||s()(S);this[g].attributes[U]=dt(k,S)}else{this[g].attributes[U]=[];for(let k=0;k<S.length;k++){const rt=S[k];this[g].attributes[U].push(Y?Y(rt,w,S):Array(K.size).fill(0))}}}}}get meshData(){if(this._updateMatrix&&this.transformScale/this.contours.scale>1.5&&this.accurate(this.transformScale),!this[g]){!this[I]&&!this[A]&&this.setFill();const N=this[M],$={};if(N&&N.length){if(this[I])try{const w=y()(N,this[I]);w.positions=w.positions.map(U=>(U.push(this[Q]),U)),w.attributes={a_color:Array.from({length:w.positions.length}).map(()=>this[E].map(U=>Math.round(255*U)))},$.fill=w}catch{}if(this[A]){const w=this[A].lineDash;let U=N;if(w){const Y=this[A].lineDashOffset;U=Object(c.getDashContours)(N,w,Y)}const K=U.map((Y,k)=>{const rt=Y.length>1&&e.vec2.equals(Y[0],Y[Y.length-1]),it=this[A].build(Y,rt);return y()([it])});K.forEach(Y=>{Y.positions=Y.positions.map(k=>(k.push(-this[Q]),k)),Y.attributes={a_color:Array.from({length:Y.positions.length}).map(()=>this[b].map(k=>Math.round(255*k)))}}),$.stroke=Object(o.default)(K)}}const S=Object(o.default)([$.fill,$.stroke]);S.fillPointCount=$.fill?$.fill.positions.length:0,S.enableBlend=this.enableBlend,S.position0=S.positions.map(([w,U,K])=>[w,U,K]),S.uniforms=this[R],this[g]=S,this[R].u_texSampler&&this[z](S,this[C]);const P=this[L];Object(p.isUnitTransform)(P)||(this[H](S,P),this[R].u_radialGradientVector&&this[X]()),this.clipPath&&this[pt](),this[tt]&&this[Z](this[tt])}return this._updateMatrix&&(this[g].matrix=this[L],this[H](this[g],this[L]),this[R].u_radialGradientVector&&this[X]()),this[g]}[H](N,$){const{positions:S,position0:P}=N;for(let w=0;w<S.length;w++){const[U,K]=P[w],Y=S[w];Y[0]=U*$[0]+K*$[2]+$[4],Y[1]=U*$[1]+K*$[3]+$[5]}this._updateMatrix=!1}[X](){const N=this[L],$=[...this._radialGradientVector];if($){const[S,P,,w,U]=$;$[0]=S*N[0]+P*N[2]+N[4],$[1]=S*N[1]+P*N[3]+N[5],$[3]=w*N[0]+U*N[2]+N[4],$[4]=w*N[1]+U*N[3]+N[5],this[R].u_radialGradientVector=$}}[z](N,$){function S(k,rt){return k==null&&rt==null?!0:k==null||rt==null?!1:k[0]===rt[0]&&k[1]===rt[1]&&k[2]===rt[2]&&k[3]===rt[3]}const P=this[R].u_texSampler;if(!P)return;const{width:w,height:U}=P._img,K=$.srcRect;let Y=$.rect||[0,0];if($.rotated&&(Y=[-Y[1],Y[0],Y[3],Y[2]]),Y[2]==null&&(Y[2]=K?K[2]:w),Y[3]==null&&(Y[3]=K?K[3]:U),$.hidden)N.textureCoord=N.positions.map(()=>[-1,-1,-1]);else if(!N.textureCoord||!S(this[C].rect,$.rect)||this[C].hidden!==$.hidden||this[C].rotated!==$.rotated){let k=null;$.rotated&&(k=e.mat2d.rotate(Array.of(0,0,0,0,0,0),e.mat2d.fromValues(1,0,0,1,0,0),.5*Math.PI),k=e.mat2d.translate(Array.of(0,0,0,0,0,0),k,[0,-Y[2]])),N.textureCoord=N.position0.map(([rt,it,lt])=>{if(1/lt>0){if($.rotated){const ot=rt*k[0]+it*k[2]+k[4],st=rt*k[1]+it*k[3]+k[5];[rt,it]=[ot,st]}const ut=W([rt,it],[Y[0]/Y[2],Y[1]/Y[3],Y[2],Y[3]],$);return $.repeat&&(ut[2]=1),ut}return[-1,-1,-1]})}if(K){const k=[K[0]/w,K[1]/U,K[2]/w,K[3]/U];N.attributes.a_sourceRect=N.positions.map(()=>[...k])}else N.attributes.a_sourceRect=N.positions.map(()=>[0,0,0,0])}accurate(N){if(!this.contours)return;if(this.contours.path){const S=this.contours.simplify,P=F(this.contours.path,2*N,S);this[g]=null,this[M]=P}}canIgnore(){const N=this[A]==null||this[A].lineWidth===0||this[b][3]===0,$=this[I]==null||this[E][3]===0,S=this[R].u_radialGradientVector==null,P=this[R].u_texSampler==null;return this[Q]===0||this[tt]==null&&N&&$&&S&&P&&!this.beforeRender&&!this.afterRender}setStroke({thickness:N=1,cap:$="butt",join:S="miter",miterLimit:P=10,color:w=[0,0,0,0],lineDash:U=null,lineDashOffset:K=0,roundSegments:Y=20}={}){return this[g]=null,this[A]=new l.default({lineWidth:N,lineCap:$,lineJoin:S,miterLimit:P,roundSegments:Y}),typeof w=="string"&&(w=Object(v.default)(w)),this[b]=w,this[A].lineDash=U,this[A].lineDashOffset=K,this}setFill({rule:N=this.fillRule,color:$=[0,0,0,0]}={}){return this[g]=null,this[I]={rule:N},typeof $=="string"&&($=Object(v.default)($)),this[E]=$,this}setTexture(N,$={}){if(N&&N.image){const{image:S,rect:P}=N;if(N=S,$.rect)for(let w=0;w<$.rect.length;w++)P[w]=$.rect[w];$.rect=P}return this[I]||this.setFill(),this.setUniforms({u_texSampler:N}),this[g]&&this[z](this[g],$),this[C]=$,this}setCircularGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==3)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:N,colors:$,type:S})}setLinearGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==4)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:N,colors:$,type:S})}setRadialGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==6)throw new TypeError("Invalid radialGradient.");this.setGradient({vector:N,colors:$,type:S})}setGradient({vector:N,colors:$,type:S="fill"}={}){$=$.map(({offset:U,color:K})=>(typeof K=="string"&&(K=Object(v.default)(K)),{offset:U,color:K})),this[j]=this[j]||{},this[j][S]={vector:N,colors:$},$.sort((U,K)=>U.offset-K.offset);const P=[];$.forEach(({offset:U,color:K})=>{P.push(U,...K)});let w;if(N.length===4?w=[N[0],N[1],0,N[2],N[3],0]:w=[...N],P.length<40&&P.push(-1),P.length>40)throw new Error("Too many colors, should be less than 8 colors");return this._radialGradientVector=w,this[R].u_colorSteps=P,S==="fill"?this[R].u_gradientType=1:this[R].u_gradientType=0,this[X](),this}setUniforms(N={}){return Object.assign(this[R],N),this}setTransform(...N){const $=this[L];return e.mat2d.equals(N,$)||(this[L]=N,delete this[D],this._updateMatrix=!0),this}transform(...N){const $=this[L];return this[L]=e.mat2d.multiply(Array.of(0,0,0,0,0,0),$,N),delete this[D],this._updateMatrix=!0,this}translate(N,$){let S=e.mat2d.create();return S=e.mat2d.translate(Array.of(0,0,0,0,0,0),S,[N,$]),this.transform(...S)}rotate(N,[$,S]=[0,0]){let P=e.mat2d.create();return P=e.mat2d.translate(Array.of(0,0,0,0,0,0),P,[$,S]),P=e.mat2d.rotate(Array.of(0,0,0,0,0,0),P,N),P=e.mat2d.translate(Array.of(0,0,0,0,0,0),P,[-$,-S]),this.transform(...P)}scale(N,$=N,[S,P]=[0,0]){let w=e.mat2d.create();return w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[S,P]),w=e.mat2d.scale(Array.of(0,0,0,0,0,0),w,[N,$]),w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[-S,-P]),this.transform(...w)}skew(N,$=N,[S,P]=[0,0]){let w=e.mat2d.create();return w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[S,P]),w=e.mat2d.multiply(Array.of(0,0,0,0,0,0),w,e.mat2d.fromValues(1,Math.tan($),Math.tan(N),1,0,0)),w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[-S,-P]),this.transform(...w)}clearFilter(){return this.setColorTransform(null),this[G].length=0,this}setColorTransform(...N){return N[0]===null?this.setUniforms({u_filterFlag:0,u_colorMatrix:0}):this.setUniforms({u_filterFlag:1,u_colorMatrix:N}),this}transformColor(...N){let $=this.uniforms.u_colorMatrix;return $?$=Object(f.multiply)($,N):$=N,this.setColorTransform(...$),this}blur(N){return this[G].push(`blur(${N}px)`),this}brightness(N=1){return this[G].push(`brightness(${100*N}%)`),this.transformColor(...Object(f.brightness)(N))}contrast(N=1){return this[G].push(`contrast(${100*N}%)`),this.transformColor(...Object(f.contrast)(N))}dropShadow(N,$,S=0,P=[0,0,0,1]){return Array.isArray(P)&&(P=Object(i.default)(P)),this[G].push(`drop-shadow(${N}px ${$}px ${S}px ${P})`),this}grayscale(N=1){return this[G].push(`grayscale(${100*N}%)`),this.transformColor(...Object(f.grayscale)(N))}hueRotate(N=0){return this[G].push(`hue-rotate(${N}deg)`),this.transformColor(...Object(f.hueRotate)(N))}invert(N=1){return this[G].push(`invert(${100*N}%)`),this.transformColor(...Object(f.invert)(N))}opacity(N=1){return this[G].push(`opacity(${100*N}%)`),this.transformColor(...Object(f.opacity)(N))}saturate(N=1){return this[G].push(`saturate(${100*N}%)`),this.transformColor(...Object(f.saturate)(N))}sepia(N=1){return this[G].push(`sepia(${100*N}%)`),this.transformColor(...Object(f.sepia)(N))}url(N){return this[G].push(`url(${N})`),this}isPointCollision(N,$,S="both"){const P=this.meshData,{positions:w,cells:U}=P,K=this.invertMatrix,Y=K[0]*N+K[2]*$+K[4],k=K[1]*N+K[3]*$+K[5],rt=this.boundingBox;if(Y<rt[0][0]||Y>rt[1][0]||k<rt[0][1]||k>rt[1][1])return!1;function it([lt,ut],[ot,st],[ft,mt]){const vt=ft-ot,gt=mt-st,St=((lt-ot)*vt+(ut-st)*gt)/(vt**2+gt**2);return St>=0&&St<=1}for(let lt=0;lt<U.length;lt++){const ut=U[lt];if(S==="fill"&&ut[0]>=P.fillPointCount)break;if(S==="stroke"&&ut[0]<P.fillPointCount)continue;const[[ot,st],[ft,mt],[vt,gt]]=ut.map(Pt=>w[Pt]),St=Math.sign((N-ot)*(mt-st)-(ft-ot)*($-st));if(St===0&&it([N,$],[ot,st],[ft,mt]))return!0;const It=Math.sign((N-ft)*(gt-mt)-(vt-ft)*($-mt));if(It===0&&it([N,$],[ft,mt],[vt,gt]))return!0;const Et=Math.sign((N-vt)*(st-gt)-(ot-vt)*($-gt));if(Et===0&&it([N,$],[vt,gt],[ot,st])||St===1&&It===1&&Et===1||St===-1&&It===-1&&Et===-1)return!0}return!1}isPointInFill(N,$){return this.isPointCollision(N,$,"fill")}isPointInStroke(N,$){return this.isPointCollision(N,$,"stroke")}addPass(N,$={}){let{width:S,height:P}=$,w=h($,["width","height"]);const U=new T.default;U.rect(0,0,S,P);const K=new V(U,{width:S,height:P});K.setUniforms(w),K.setProgram(N),this[at].push(K)}}},function(d,r,t){t.r(r);var e=t(58);t(1).glMatrix.setMatrixArrayType(Array),r.default=e.Stroke},function(d,r,t){t.r(r),t.d(r,"Stroke",function(){return p});var e=t(49);t(1).glMatrix.setMatrixArrayType(Array);const n=Object(e.create)(),s=Object(e.create)(),l=Object(e.create)(),o=Object(e.create)(),i=Object(e.create)(),f=1e20;class p{constructor({lineWidth:x=1,lineJoin:v="miter",miterLimit:T=10,lineCap:a="butt",roundSegments:h=20}={}){this.lineWidth=x,this.lineJoin=v,this.miterLimit=T,this.lineCap=a,this.roundSegments=h,this._normal=null}build(x,v=!1){let T=x.length;if(x=[...x],T<2)return x;v&&((x[0][0]!==x[T-1][0]||x[0][1]!==x[T-1][1])&&x.push([...x[0]]),x.push([...x[1]])),T=x.length,this._normal=null;const a={left:[],right:[]},h=this.lineWidth/2,u=this.lineCap;if(!v&&u==="square"){Object(e.direction)(s,x[0],x[1]),Object(e.scaleAndAdd)(x[0],x[0],s,h);const M=x.length-1;Object(e.direction)(s,x[M],x[M-1]),Object(e.scaleAndAdd)(x[M],x[M],s,h)}for(let M=1;M<T;M++){const A=x[M-1],I=x[M],b=x[M+1];this._seg(a,A,I,b,h,v)}return!v&&u==="round"&&y(a,this.roundSegments),[...a.left,...a.right.reverse()]}_seg(x,v,T,a,h,u){const g=this.lineJoin==="bevel",M=this.lineJoin==="round";if(Object(e.direction)(s,T,v),this._normal||(this._normal=Object(e.create)(),Object(e.normal)(this._normal,s)),x.left.length||m(x,v,this._normal,h),!a)Object(e.normal)(this._normal,s),u?m(x,v,this._normal,h):m(x,T,this._normal,h);else{Object(e.direction)(l,a,T);let A=Object(e.computeMiter)(o,i,s,l,h);A=Math.min(A,f);const I=Object(e.dot)(o,this._normal)<0?-1:1;let b=g||M;if(!b&&this.lineJoin==="miter"&&A/h>this.miterLimit&&(b=!0),b){Object(e.scaleAndAdd)(n,T,this._normal,-h*I),c(x,n,I);let E=1/0;v&&(E=Math.min(E,Math.hypot(T[0]-v[0],T[1]-v[1]))),a&&(E=Math.min(E,Math.hypot(a[0]-T[0],a[1]-T[1])));const L=Math.max(h,Math.min(A,E));if(Object(e.scaleAndAdd)(n,T,i,L*I),c(x,n,-I),a)if(Object(e.normal)(n,l),Object(e.copy)(this._normal,n),Object(e.scaleAndAdd)(n,T,n,-h*I),M){const D=Object(e.clone)(n),R=I>0?x.left[x.left.length-1]:x.right[x.right.length-1],C=Object(e.clone)(T),B=Object(e.sub)(Object(e.create)(),R,C),z=Object(e.sub)(Object(e.create)(),D,C),H=Math.PI/this.roundSegments;for(let X=0;X<this.roundSegments&&(Object(e.rotate)(B,B,[0,0],I*H),Math.sign(Object(e.cross)(n,B,z)[2])===I);X++)Object(e.add)(n,B,C),c(x,n,I);c(x,D,I)}else c(x,n,I)}else m(x,T,i,A),Object(e.copy)(this._normal,i)}}}function c(O,x,v){v>0?O.left.push(Object(e.clone)(x)):O.right.push(Object(e.clone)(x))}function m(O,x,v,T,a=-1){Object(e.scaleAndAdd)(n,x,v,-T),c(O,n,-a),Object(e.scaleAndAdd)(n,x,v,T),c(O,n,a)}function y({left:O,right:x},v){const T=Object(e.create)(),a=Object(e.create)();let h=O[0],u=x[0],g=[.5*(h[0]+u[0]),.5*(h[1]+u[1])];Object(e.sub)(a,h,g);for(let M=1;M<=v;M++){const A=-1*Math.PI*M/v;Object(e.rotate)(T,a,[0,0],A),Object(e.add)(n,g,T),O.unshift(Object(e.clone)(n))}h=x[x.length-1],u=O[O.length-1],g=[.5*(h[0]+u[0]),.5*(h[1]+u[1])],Object(e.sub)(a,h,g);for(let M=1;M<=v;M++){const A=-1*Math.PI*M/v;Object(e.rotate)(T,a,[0,0],A),Object(e.add)(n,g,T),x.push(Object(e.clone)(n))}}},function(d,r,t){t.r(r),t.d(r,"isUnitTransform",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n){return n[0]===1&&n[1]===0&&n[2]===0&&n[3]===1&&n[4]===0&&n[5]===0}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e=t(61),n=t(62);d.exports=function(s,l){if(l=l||{},s=s.filter(function(v){return v.length>2}),s.length===0)return{positions:[],cells:[]};typeof l.vertexSize!="number"&&(l.vertexSize=s[0][0].length),s=s.map(function(v){return v.reduce(function(T,a){return T.concat(a)})});const o=l.rule==="evenodd"?e.WINDING_ODD:e.WINDING_NONZERO;for(var i=e.tesselate(n({contours:s,windingRule:o,elementType:e.POLYGONS,polySize:3,vertexSize:2},l)),f=[],p=0;p<i.vertices.length;p+=l.vertexSize){var c=i.vertices.slice(p,p+l.vertexSize);f.push(c)}var m=[];for(p=0;p<i.elements.length;p+=3){var y=i.elements[p],O=i.elements[p+1],x=i.elements[p+2];m.push([y,O,x])}return{positions:f,cells:m}}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e={},n={};d.exports=e,e.WINDING_ODD=0,e.WINDING_NONZERO=1,e.WINDING_POSITIVE=2,e.WINDING_NEGATIVE=3,e.WINDING_ABS_GEQ_TWO=4,e.POLYGONS=0,e.CONNECTED_POLYGONS=1,e.BOUNDARY_CONTOURS=2,e.tesselate=function(a){for(var h=a.debug||!1,u=new T,g=0;g<a.contours.length;g++)u.addContour(a.vertexSize||2,a.contours[g]);return u.tesselate(a.windingRule||e.WINDING_ODD,a.elementType||e.POLYGONS,a.polySize||3,a.vertexSize||2,a.normal||[0,0,1]),{vertices:u.vertices,vertexIndices:u.vertexIndices,vertexCount:u.vertexCount,elements:u.elements,elementCount:u.elementCount,mesh:h?u.mesh:void 0}};var s=function(a){if(!a)throw"Assertion Failed!"};function l(){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}function o(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}function i(a){this.next=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Org=null,this.Lface=null,this.activeRegion=null,this.winding=0,this.side=a}i.prototype={get Rface(){return this.Sym.Lface},set Rface(a){this.Sym.Lface=a},get Dst(){return this.Sym.Org},set Dst(a){this.Sym.Org=a},get Oprev(){return this.Sym.Lnext},set Oprev(a){this.Sym.Lnext=a},get Lprev(){return this.Onext.Sym},set Lprev(a){this.Onext.Sym=a},get Dprev(){return this.Lnext.Sym},set Dprev(a){this.Lnext.Sym=a},get Rprev(){return this.Sym.Onext},set Rprev(a){this.Sym.Onext=a},get Dnext(){return this.Sym.Onext.Sym},set Dnext(a){this.Sym.Onext.Sym=a},get Rnext(){return this.Sym.Lnext.Sym},set Rnext(a){this.Sym.Lnext.Sym=a}};function f(){var a=new l,h=new o,u=new i(0),g=new i(1);a.next=a.prev=a,a.anEdge=null,h.next=h.prev=h,h.anEdge=null,h.trail=null,h.marked=!1,h.inside=!1,u.next=u,u.Sym=g,u.Onext=null,u.Lnext=null,u.Org=null,u.Lface=null,u.winding=0,u.activeRegion=null,g.next=g,g.Sym=u,g.Onext=null,g.Lnext=null,g.Org=null,g.Lface=null,g.winding=0,g.activeRegion=null,this.vHead=a,this.fHead=h,this.eHead=u,this.eHeadSym=g}f.prototype={makeEdge_:function(a){var h=new i(0),u=new i(1);a.Sym.side<a.side&&(a=a.Sym);var g=a.Sym.next;return u.next=g,g.Sym.next=h,h.next=a,a.Sym.next=u,h.Sym=u,h.Onext=h,h.Lnext=u,h.Org=null,h.Lface=null,h.winding=0,h.activeRegion=null,u.Sym=h,u.Onext=u,u.Lnext=h,u.Org=null,u.Lface=null,u.winding=0,u.activeRegion=null,h},splice_:function(a,h){var u=a.Onext,g=h.Onext;u.Sym.Lnext=h,g.Sym.Lnext=a,a.Onext=g,h.Onext=u},makeVertex_:function(a,h,u){var g=a;s(g!==null);var M=u.prev;g.prev=M,M.next=g,g.next=u,u.prev=g,g.anEdge=h;var A=h;do A.Org=g,A=A.Onext;while(A!==h)},makeFace_:function(a,h,u){var g=a;s(g!==null);var M=u.prev;g.prev=M,M.next=g,g.next=u,u.prev=g,g.anEdge=h,g.trail=null,g.marked=!1,g.inside=u.inside;var A=h;do A.Lface=g,A=A.Lnext;while(A!==h)},killEdge_:function(a){a.Sym.side<a.side&&(a=a.Sym);var h=a.next,u=a.Sym.next;h.Sym.next=u,u.Sym.next=h},killVertex_:function(a,h){var u=a.anEdge,g=u;do g.Org=h,g=g.Onext;while(g!==u);var M=a.prev,A=a.next;A.prev=M,M.next=A},killFace_:function(a,h){var u=a.anEdge,g=u;do g.Lface=h,g=g.Lnext;while(g!==u);var M=a.prev,A=a.next;A.prev=M,M.next=A},makeEdge:function(){var a=new l,h=new l,u=new o,g=this.makeEdge_(this.eHead);return this.makeVertex_(a,g,this.vHead),this.makeVertex_(h,g.Sym,this.vHead),this.makeFace_(u,g,this.fHead),g},splice:function(a,h){var u=!1,g=!1;if(a!==h){if(h.Org!==a.Org&&(g=!0,this.killVertex_(h.Org,a.Org)),h.Lface!==a.Lface&&(u=!0,this.killFace_(h.Lface,a.Lface)),this.splice_(h,a),!g){var M=new l;this.makeVertex_(M,h,a.Org),a.Org.anEdge=a}if(!u){var A=new o;this.makeFace_(A,h,a.Lface),a.Lface.anEdge=a}}},delete:function(a){var h=a.Sym,u=!1;if(a.Lface!==a.Rface&&(u=!0,this.killFace_(a.Lface,a.Rface)),a.Onext===a)this.killVertex_(a.Org,null);else if(a.Rface.anEdge=a.Oprev,a.Org.anEdge=a.Onext,this.splice_(a,a.Oprev),!u){var g=new o;this.makeFace_(g,a,a.Lface)}h.Onext===h?(this.killVertex_(h.Org,null),this.killFace_(h.Lface,null)):(a.Lface.anEdge=h.Oprev,h.Org.anEdge=h.Onext,this.splice_(h,h.Oprev)),this.killEdge_(a)},addEdgeVertex:function(a){var h=this.makeEdge_(a),u=h.Sym;this.splice_(h,a.Lnext),h.Org=a.Dst;var g=new l;return this.makeVertex_(g,u,h.Org),h.Lface=u.Lface=a.Lface,h},splitEdge:function(a,h){var u=this.addEdgeVertex(a),g=u.Sym;return this.splice_(a.Sym,a.Sym.Oprev),this.splice_(a.Sym,g),a.Dst=g.Org,g.Dst.anEdge=g.Sym,g.Rface=a.Rface,g.winding=a.winding,g.Sym.winding=a.Sym.winding,g},connect:function(a,h){var u=!1,g=this.makeEdge_(a),M=g.Sym;if(h.Lface!==a.Lface&&(u=!0,this.killFace_(h.Lface,a.Lface)),this.splice_(g,a.Lnext),this.splice_(M,h),g.Org=a.Dst,M.Org=h.Org,g.Lface=M.Lface=a.Lface,a.Lface.anEdge=M,!u){var A=new o;this.makeFace_(A,g,a.Lface)}return g},zapFace:function(a){var h=a.anEdge,u,g,M,A,I;g=h.Lnext;do u=g,g=u.Lnext,u.Lface=null,u.Rface===null&&(u.Onext===u?this.killVertex_(u.Org,null):(u.Org.anEdge=u.Onext,this.splice_(u,u.Oprev)),M=u.Sym,M.Onext===M?this.killVertex_(M.Org,null):(M.Org.anEdge=M.Onext,this.splice_(M,M.Oprev)),this.killEdge_(u));while(u!=h);A=a.prev,I=a.next,I.prev=A,A.next=I},countFaceVerts_:function(a){var h=a.anEdge,u=0;do u++,h=h.Lnext;while(h!==a.anEdge);return u},mergeConvexFaces:function(a){var h,u,g,M,A,I,b;for(h=this.fHead.next;h!==this.fHead;h=h.next)if(h.inside)for(u=h.anEdge,A=u.Org;g=u.Lnext,M=u.Sym,M&&M.Lface&&M.Lface.inside&&(I=this.countFaceVerts_(h),b=this.countFaceVerts_(M.Lface),I+b-2<=a&&n.vertCCW(u.Lprev.Org,u.Org,M.Lnext.Lnext.Org)&&n.vertCCW(M.Lprev.Org,M.Org,u.Lnext.Lnext.Org)&&(g=M.Lnext,this.delete(M),u=null,M=null)),!(u&&u.Lnext.Org===A);)u=g;return!0},check:function(){var a=this.fHead,h=this.vHead,u=this.eHead,g,M,A,I,b,E;for(M=a,M=a;(g=M.next)!==a;M=g){s(g.prev===M),b=g.anEdge;do s(b.Sym!==b),s(b.Sym.Sym===b),s(b.Lnext.Onext.Sym===b),s(b.Onext.Sym.Lnext===b),s(b.Lface===g),b=b.Lnext;while(b!==g.anEdge)}for(s(g.prev===M&&g.anEdge===null),I=h,I=h;(A=I.next)!==h;I=A){s(A.prev===I),b=A.anEdge;do s(b.Sym!==b),s(b.Sym.Sym===b),s(b.Lnext.Onext.Sym===b),s(b.Onext.Sym.Lnext===b),s(b.Org===A),b=b.Onext;while(b!==A.anEdge)}for(s(A.prev===I&&A.anEdge===null),E=u,E=u;(b=E.next)!==u;E=b)s(b.Sym.next===E.Sym),s(b.Sym!==b),s(b.Sym.Sym===b),s(b.Org!==null),s(b.Dst!==null),s(b.Lnext.Onext.Sym===b),s(b.Onext.Sym.Lnext===b);s(b.Sym.next===E.Sym&&b.Sym===this.eHeadSym&&b.Sym.Sym===b&&b.Org===null&&b.Dst===null&&b.Lface===null&&b.Rface===null)}},n.vertEq=function(a,h){return a.s===h.s&&a.t===h.t},n.vertLeq=function(a,h){return a.s<h.s||a.s===h.s&&a.t<=h.t},n.transLeq=function(a,h){return a.t<h.t||a.t===h.t&&a.s<=h.s},n.edgeGoesLeft=function(a){return n.vertLeq(a.Dst,a.Org)},n.edgeGoesRight=function(a){return n.vertLeq(a.Org,a.Dst)},n.vertL1dist=function(a,h){return Math.abs(a.s-h.s)+Math.abs(a.t-h.t)},n.edgeEval=function(a,h,u){s(n.vertLeq(a,h)&&n.vertLeq(h,u));var g=h.s-a.s,M=u.s-h.s;return g+M>0?g<M?h.t-a.t+(a.t-u.t)*(g/(g+M)):h.t-u.t+(u.t-a.t)*(M/(g+M)):0},n.edgeSign=function(a,h,u){s(n.vertLeq(a,h)&&n.vertLeq(h,u));var g=h.s-a.s,M=u.s-h.s;return g+M>0?(h.t-u.t)*g+(h.t-a.t)*M:0},n.transEval=function(a,h,u){s(n.transLeq(a,h)&&n.transLeq(h,u));var g=h.t-a.t,M=u.t-h.t;return g+M>0?g<M?h.s-a.s+(a.s-u.s)*(g/(g+M)):h.s-u.s+(u.s-a.s)*(M/(g+M)):0},n.transSign=function(a,h,u){s(n.transLeq(a,h)&&n.transLeq(h,u));var g=h.t-a.t,M=u.t-h.t;return g+M>0?(h.s-u.s)*g+(h.s-a.s)*M:0},n.vertCCW=function(a,h,u){return a.s*(h.t-u.t)+h.s*(u.t-a.t)+u.s*(a.t-h.t)>=0},n.interpolate=function(a,h,u,g){return a=a<0?0:a,u=u<0?0:u,a<=u?u===0?(h+g)/2:h+(g-h)*(a/(a+u)):g+(h-g)*(u/(a+u))},n.intersect=function(a,h,u,g,M){var A,I,b;n.vertLeq(a,h)||(b=a,a=h,h=b),n.vertLeq(u,g)||(b=u,u=g,g=b),n.vertLeq(a,u)||(b=a,a=u,u=b,b=h,h=g,g=b),n.vertLeq(u,h)?n.vertLeq(h,g)?(A=n.edgeEval(a,u,h),I=n.edgeEval(u,h,g),A+I<0&&(A=-A,I=-I),M.s=n.interpolate(A,u.s,I,h.s)):(A=n.edgeSign(a,u,h),I=-n.edgeSign(a,g,h),A+I<0&&(A=-A,I=-I),M.s=n.interpolate(A,u.s,I,g.s)):M.s=(u.s+h.s)/2,n.transLeq(a,h)||(b=a,a=h,h=b),n.transLeq(u,g)||(b=u,u=g,g=b),n.transLeq(a,u)||(b=a,a=u,u=b,b=h,h=g,g=b),n.transLeq(u,h)?n.transLeq(h,g)?(A=n.transEval(a,u,h),I=n.transEval(u,h,g),A+I<0&&(A=-A,I=-I),M.t=n.interpolate(A,u.t,I,h.t)):(A=n.transSign(a,u,h),I=-n.transSign(a,g,h),A+I<0&&(A=-A,I=-I),M.t=n.interpolate(A,u.t,I,g.t)):M.t=(u.t+h.t)/2};function p(){this.key=null,this.next=null,this.prev=null}function c(a,h){this.head=new p,this.head.next=this.head,this.head.prev=this.head,this.frame=a,this.leq=h}c.prototype={min:function(){return this.head.next},max:function(){return this.head.prev},insert:function(a){return this.insertBefore(this.head,a)},search:function(a){var h=this.head;do h=h.next;while(h.key!==null&&!this.leq(this.frame,a,h.key));return h},insertBefore:function(a,h){do a=a.prev;while(a.key!==null&&!this.leq(this.frame,a.key,h));var u=new p;return u.key=h,u.next=a.next,a.next.prev=u,u.prev=a,a.next=u,u},delete:function(a){a.next.prev=a.prev,a.prev.next=a.next}};function m(){this.handle=null}function y(){this.key=null,this.node=null}function O(a,h){this.size=0,this.max=a,this.nodes=[],this.nodes.length=a+1;var u;for(u=0;u<this.nodes.length;u++)this.nodes[u]=new m;for(this.handles=[],this.handles.length=a+1,u=0;u<this.handles.length;u++)this.handles[u]=new y;this.initialized=!1,this.freeList=0,this.leq=h,this.nodes[1].handle=1,this.handles[1].key=null}O.prototype={floatDown_:function(a){var h=this.nodes,u=this.handles,g,M,A;for(g=h[a].handle;;){if(A=a<<1,A<this.size&&this.leq(u[h[A+1].handle].key,u[h[A].handle].key)&&++A,s(A<=this.max),M=h[A].handle,A>this.size||this.leq(u[g].key,u[M].key)){h[a].handle=g,u[g].node=a;break}h[a].handle=M,u[M].node=a,a=A}},floatUp_:function(a){var h=this.nodes,u=this.handles,g,M,A;for(g=h[a].handle;;){if(A=a>>1,M=h[A].handle,A===0||this.leq(u[M].key,u[g].key)){h[a].handle=g,u[g].node=a;break}h[a].handle=M,u[M].node=a,a=A}},init:function(){for(var a=this.size;a>=1;--a)this.floatDown_(a);this.initialized=!0},min:function(){return this.handles[this.nodes[1].handle].key},insert:function(a){var h,u;if(h=++this.size,h*2>this.max){this.max*=2;var g,M;for(M=this.nodes.length,this.nodes.length=this.max+1,g=M;g<this.nodes.length;g++)this.nodes[g]=new m;for(M=this.handles.length,this.handles.length=this.max+1,g=M;g<this.handles.length;g++)this.handles[g]=new y}return this.freeList===0?u=h:(u=this.freeList,this.freeList=this.handles[u].node),this.nodes[h].handle=u,this.handles[u].node=h,this.handles[u].key=a,this.initialized&&this.floatUp_(h),u},extractMin:function(){var a=this.nodes,h=this.handles,u=a[1].handle,g=h[u].key;return this.size>0&&(a[1].handle=a[this.size].handle,h[a[1].handle].node=1,h[u].key=null,h[u].node=this.freeList,this.freeList=u,--this.size,this.size>0&&this.floatDown_(1)),g},delete:function(a){var h=this.nodes,u=this.handles,g;s(a>=1&&a<=this.max&&u[a].key!==null),g=u[a].node,h[g].handle=h[this.size].handle,u[h[g].handle].node=g,--this.size,g<=this.size&&(g<=1||this.leq(u[h[g>>1].handle].key,u[h[g].handle].key)?this.floatDown_(g):this.floatUp_(g)),u[a].key=null,u[a].node=this.freeList,this.freeList=a}};function x(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}var v={};v.regionBelow=function(a){return a.nodeUp.prev.key},v.regionAbove=function(a){return a.nodeUp.next.key},v.debugEvent=function(a){},v.addWinding=function(a,h){a.winding+=h.winding,a.Sym.winding+=h.Sym.winding},v.edgeLeq=function(a,h,u){var g=a.event,I,b,M=h.eUp,A=u.eUp;if(M.Dst===g)return A.Dst===g?n.vertLeq(M.Org,A.Org)?n.edgeSign(A.Dst,M.Org,A.Org)<=0:n.edgeSign(M.Dst,A.Org,M.Org)>=0:n.edgeSign(A.Dst,g,A.Org)<=0;if(A.Dst===g)return n.edgeSign(M.Dst,g,M.Org)>=0;var I=n.edgeEval(M.Dst,g,M.Org),b=n.edgeEval(A.Dst,g,A.Org);return I>=b},v.deleteRegion=function(a,h){h.fixUpperEdge&&s(h.eUp.winding===0),h.eUp.activeRegion=null,a.dict.delete(h.nodeUp)},v.fixUpperEdge=function(a,h,u){s(h.fixUpperEdge),a.mesh.delete(h.eUp),h.fixUpperEdge=!1,h.eUp=u,u.activeRegion=h},v.topLeftRegion=function(a,h){var u=h.eUp.Org,g;do h=v.regionAbove(h);while(h.eUp.Org===u);if(h.fixUpperEdge){if(g=a.mesh.connect(v.regionBelow(h).eUp.Sym,h.eUp.Lnext),g===null)return null;v.fixUpperEdge(a,h,g),h=v.regionAbove(h)}return h},v.topRightRegion=function(a){var h=a.eUp.Dst;do a=v.regionAbove(a);while(a.eUp.Dst===h);return a},v.addRegionBelow=function(a,h,u){var g=new x;return g.eUp=u,g.nodeUp=a.dict.insertBefore(h.nodeUp,g),g.fixUpperEdge=!1,g.sentinel=!1,g.dirty=!1,u.activeRegion=g,g},v.isWindingInside=function(a,h){switch(a.windingRule){case e.WINDING_ODD:return(h&1)!==0;case e.WINDING_NONZERO:return h!==0;case e.WINDING_POSITIVE:return h>0;case e.WINDING_NEGATIVE:return h<0;case e.WINDING_ABS_GEQ_TWO:return h>=2||h<=-2}return s(!1),!1},v.computeWinding=function(a,h){h.windingNumber=v.regionAbove(h).windingNumber+h.eUp.winding,h.inside=v.isWindingInside(a,h.windingNumber)},v.finishRegion=function(a,h){var u=h.eUp,g=u.Lface;g.inside=h.inside,g.anEdge=u,v.deleteRegion(a,h)},v.finishLeftRegions=function(a,h,u){for(var g,I,M=null,A=h,I=h.eUp;A!==u;){if(A.fixUpperEdge=!1,M=v.regionBelow(A),g=M.eUp,g.Org!=I.Org){if(!M.fixUpperEdge){v.finishRegion(a,A);break}g=a.mesh.connect(I.Lprev,g.Sym),v.fixUpperEdge(a,M,g)}I.Onext!==g&&(a.mesh.splice(g.Oprev,g),a.mesh.splice(I,g)),v.finishRegion(a,A),I=M.eUp,A=M}return I},v.addRightEdges=function(a,h,u,g,M,A){var I,b,E,L,D=!0;E=u;do s(n.vertLeq(E.Org,E.Dst)),v.addRegionBelow(a,h,E.Sym),E=E.Onext;while(E!==g);for(M===null&&(M=v.regionBelow(h).eUp.Rprev),b=h,L=M;I=v.regionBelow(b),E=I.eUp.Sym,E.Org===L.Org;)E.Onext!==L&&(a.mesh.splice(E.Oprev,E),a.mesh.splice(L.Oprev,E)),I.windingNumber=b.windingNumber-E.winding,I.inside=v.isWindingInside(a,I.windingNumber),b.dirty=!0,!D&&v.checkForRightSplice(a,b)&&(v.addWinding(E,L),v.deleteRegion(a,b),a.mesh.delete(L)),D=!1,b=I,L=E;b.dirty=!0,s(b.windingNumber-E.winding===I.windingNumber),A&&v.walkDirtyRegions(a,b)},v.spliceMergeVertices=function(a,h,u){a.mesh.splice(h,u)},v.vertexWeights=function(a,h,u){var g=n.vertL1dist(h,a),M=n.vertL1dist(u,a),A=.5*M/(g+M),I=.5*g/(g+M);a.coords[0]+=A*h.coords[0]+I*u.coords[0],a.coords[1]+=A*h.coords[1]+I*u.coords[1],a.coords[2]+=A*h.coords[2]+I*u.coords[2]},v.getIntersectData=function(a,h,u,g,M,A){h.coords[0]=h.coords[1]=h.coords[2]=0,h.idx=-1,v.vertexWeights(h,u,g),v.vertexWeights(h,M,A)},v.checkForRightSplice=function(a,h){var u=v.regionBelow(h),g=h.eUp,M=u.eUp;if(n.vertLeq(g.Org,M.Org)){if(n.edgeSign(M.Dst,g.Org,M.Org)>0)return!1;n.vertEq(g.Org,M.Org)?g.Org!==M.Org&&(a.pq.delete(g.Org.pqHandle),v.spliceMergeVertices(a,M.Oprev,g)):(a.mesh.splitEdge(M.Sym),a.mesh.splice(g,M.Oprev),h.dirty=u.dirty=!0)}else{if(n.edgeSign(g.Dst,M.Org,g.Org)<0)return!1;v.regionAbove(h).dirty=h.dirty=!0,a.mesh.splitEdge(g.Sym),a.mesh.splice(M.Oprev,g)}return!0},v.checkForLeftSplice=function(a,h){var u=v.regionBelow(h),g=h.eUp,M=u.eUp,A;if(s(!n.vertEq(g.Dst,M.Dst)),n.vertLeq(g.Dst,M.Dst)){if(n.edgeSign(g.Dst,M.Dst,g.Org)<0)return!1;v.regionAbove(h).dirty=h.dirty=!0,A=a.mesh.splitEdge(g),a.mesh.splice(M.Sym,A),A.Lface.inside=h.inside}else{if(n.edgeSign(M.Dst,g.Dst,M.Org)>0)return!1;h.dirty=u.dirty=!0,A=a.mesh.splitEdge(M),a.mesh.splice(g.Lnext,M.Sym),A.Rface.inside=h.inside}return!0},v.checkForIntersect=function(a,h){var u=v.regionBelow(h),g=h.eUp,M=u.eUp,A=g.Org,I=M.Org,b=g.Dst,E=M.Dst,L,D,R=new l,C,B;if(s(!n.vertEq(E,b)),s(n.edgeSign(b,a.event,A)<=0),s(n.edgeSign(E,a.event,I)>=0),s(A!==a.event&&I!==a.event),s(!h.fixUpperEdge&&!u.fixUpperEdge),A===I||(L=Math.min(A.t,b.t),D=Math.max(I.t,E.t),L>D))return!1;if(n.vertLeq(A,I)){if(n.edgeSign(E,A,I)>0)return!1}else if(n.edgeSign(b,I,A)<0)return!1;return v.debugEvent(a),n.intersect(b,A,E,I,R),s(Math.min(A.t,b.t)<=R.t),s(R.t<=Math.max(I.t,E.t)),s(Math.min(E.s,b.s)<=R.s),s(R.s<=Math.max(I.s,A.s)),n.vertLeq(R,a.event)&&(R.s=a.event.s,R.t=a.event.t),C=n.vertLeq(A,I)?A:I,n.vertLeq(C,R)&&(R.s=C.s,R.t=C.t),n.vertEq(R,A)||n.vertEq(R,I)?(v.checkForRightSplice(a,h),!1):!n.vertEq(b,a.event)&&n.edgeSign(b,a.event,R)>=0||!n.vertEq(E,a.event)&&n.edgeSign(E,a.event,R)<=0?E===a.event?(a.mesh.splitEdge(g.Sym),a.mesh.splice(M.Sym,g),h=v.topLeftRegion(a,h),g=v.regionBelow(h).eUp,v.finishLeftRegions(a,v.regionBelow(h),u),v.addRightEdges(a,h,g.Oprev,g,g,!0),!0):b===a.event?(a.mesh.splitEdge(M.Sym),a.mesh.splice(g.Lnext,M.Oprev),u=h,h=v.topRightRegion(h),B=v.regionBelow(h).eUp.Rprev,u.eUp=M.Oprev,M=v.finishLeftRegions(a,u,null),v.addRightEdges(a,h,M.Onext,g.Rprev,B,!0),!0):(n.edgeSign(b,a.event,R)>=0&&(v.regionAbove(h).dirty=h.dirty=!0,a.mesh.splitEdge(g.Sym),g.Org.s=a.event.s,g.Org.t=a.event.t),n.edgeSign(E,a.event,R)<=0&&(h.dirty=u.dirty=!0,a.mesh.splitEdge(M.Sym),M.Org.s=a.event.s,M.Org.t=a.event.t),!1):(a.mesh.splitEdge(g.Sym),a.mesh.splitEdge(M.Sym),a.mesh.splice(M.Oprev,g),g.Org.s=R.s,g.Org.t=R.t,g.Org.pqHandle=a.pq.insert(g.Org),v.getIntersectData(a,g.Org,A,b,I,E),v.regionAbove(h).dirty=h.dirty=u.dirty=!0,!1)},v.walkDirtyRegions=function(a,h){for(var u=v.regionBelow(h),g,M;;){for(;u.dirty;)h=u,u=v.regionBelow(u);if(!h.dirty&&(u=h,h=v.regionAbove(h),h===null||!h.dirty))return;if(h.dirty=!1,g=h.eUp,M=u.eUp,g.Dst!==M.Dst&&v.checkForLeftSplice(a,h)&&(u.fixUpperEdge?(v.deleteRegion(a,u),a.mesh.delete(M),u=v.regionBelow(h),M=u.eUp):h.fixUpperEdge&&(v.deleteRegion(a,h),a.mesh.delete(g),h=v.regionAbove(u),g=h.eUp)),g.Org!==M.Org)if(g.Dst!==M.Dst&&!h.fixUpperEdge&&!u.fixUpperEdge&&(g.Dst===a.event||M.Dst===a.event)){if(v.checkForIntersect(a,h))return}else v.checkForRightSplice(a,h);g.Org===M.Org&&g.Dst===M.Dst&&(v.addWinding(M,g),v.deleteRegion(a,h),a.mesh.delete(g),h=v.regionAbove(u))}},v.connectRightVertex=function(a,h,u){var g,M=u.Onext,A=v.regionBelow(h),I=h.eUp,b=A.eUp,E=!1;if(I.Dst!==b.Dst&&v.checkForIntersect(a,h),n.vertEq(I.Org,a.event)&&(a.mesh.splice(M.Oprev,I),h=v.topLeftRegion(a,h),M=v.regionBelow(h).eUp,v.finishLeftRegions(a,v.regionBelow(h),A),E=!0),n.vertEq(b.Org,a.event)&&(a.mesh.splice(u,b.Oprev),u=v.finishLeftRegions(a,A,null),E=!0),E){v.addRightEdges(a,h,u.Onext,M,M,!0);return}n.vertLeq(b.Org,I.Org)?g=b.Oprev:g=I,g=a.mesh.connect(u.Lprev,g),v.addRightEdges(a,h,g,g.Onext,g.Onext,!1),g.Sym.activeRegion.fixUpperEdge=!0,v.walkDirtyRegions(a,h)},v.connectLeftDegenerate=function(a,h,u){var g,M,A,I,b;if(g=h.eUp,n.vertEq(g.Org,u)){s(!1),v.spliceMergeVertices(a,g,u.anEdge);return}if(!n.vertEq(g.Dst,u)){a.mesh.splitEdge(g.Sym),h.fixUpperEdge&&(a.mesh.delete(g.Onext),h.fixUpperEdge=!1),a.mesh.splice(u.anEdge,g),v.sweepEvent(a,u);return}s(!1),h=v.topRightRegion(h),b=v.regionBelow(h),A=b.eUp.Sym,M=I=A.Onext,b.fixUpperEdge&&(s(M!==A),v.deleteRegion(a,b),a.mesh.delete(A),A=M.Oprev),a.mesh.splice(u.anEdge,A),n.edgeGoesLeft(M)||(M=null),v.addRightEdges(a,h,A.Onext,I,M,!0)},v.connectLeftVertex=function(a,h){var u,g,M,A,I,b,E=new x;if(E.eUp=h.anEdge.Sym,u=a.dict.search(E).key,g=v.regionBelow(u),!!g){if(A=u.eUp,I=g.eUp,n.edgeSign(A.Dst,h,A.Org)===0){v.connectLeftDegenerate(a,u,h);return}if(M=n.vertLeq(I.Dst,A.Dst)?u:g,u.inside||M.fixUpperEdge){if(M===u)b=a.mesh.connect(h.anEdge.Sym,A.Lnext);else{var L=a.mesh.connect(I.Dnext,h.anEdge);b=L.Sym}M.fixUpperEdge?v.fixUpperEdge(a,M,b):v.computeWinding(a,v.addRegionBelow(a,u,b)),v.sweepEvent(a,h)}else v.addRightEdges(a,u,h.anEdge,h.anEdge,null,!0)}},v.sweepEvent=function(a,h){a.event=h,v.debugEvent(a);for(var u=h.anEdge;u.activeRegion===null;)if(u=u.Onext,u===h.anEdge){v.connectLeftVertex(a,h);return}var g=v.topLeftRegion(a,u.activeRegion);s(g!==null);var M=v.regionBelow(g),A=M.eUp,I=v.finishLeftRegions(a,M,null);I.Onext===A?v.connectRightVertex(a,g,I):v.addRightEdges(a,g,I.Onext,A,A,!0)},v.addSentinel=function(a,h,u,g){var M=new x,A=a.mesh.makeEdge();A.Org.s=u,A.Org.t=g,A.Dst.s=h,A.Dst.t=g,a.event=A.Dst,M.eUp=A,M.windingNumber=0,M.inside=!1,M.fixUpperEdge=!1,M.sentinel=!0,M.dirty=!1,M.nodeUp=a.dict.insert(M)},v.initEdgeDict=function(a){a.dict=new c(a,v.edgeLeq);var h=a.bmax[0]-a.bmin[0],u=a.bmax[1]-a.bmin[1],g=a.bmin[0]-h,M=a.bmax[0]+h,A=a.bmin[1]-u,I=a.bmax[1]+u;v.addSentinel(a,g,M,A),v.addSentinel(a,g,M,I)},v.doneEdgeDict=function(a){for(var h,u=0;(h=a.dict.min().key)!==null;)h.sentinel||(s(h.fixUpperEdge),s(++u===1)),s(h.windingNumber===0),v.deleteRegion(a,h)},v.removeDegenerateEdges=function(a){var h,u,g,M=a.mesh.eHead;for(h=M.next;h!==M;h=u)u=h.next,g=h.Lnext,n.vertEq(h.Org,h.Dst)&&h.Lnext.Lnext!==h&&(v.spliceMergeVertices(a,g,h),a.mesh.delete(h),h=g,g=h.Lnext),g.Lnext===h&&(g!==h&&((g===u||g===u.Sym)&&(u=u.next),a.mesh.delete(g)),(h===u||h===u.Sym)&&(u=u.next),a.mesh.delete(h))},v.initPriorityQ=function(a){var h,u,g,M=0;for(g=a.mesh.vHead,u=g.next;u!==g;u=u.next)M++;for(M+=8,h=a.pq=new O(M,n.vertLeq),g=a.mesh.vHead,u=g.next;u!==g;u=u.next)u.pqHandle=h.insert(u);return u!==g?!1:(h.init(),!0)},v.donePriorityQ=function(a){a.pq=null},v.removeDegenerateFaces=function(a,h){var u,g,M;for(u=h.fHead.next;u!==h.fHead;u=g)g=u.next,M=u.anEdge,s(M.Lnext!==M),M.Lnext.Lnext===M&&(v.addWinding(M.Onext,M),a.mesh.delete(M));return!0},v.computeInterior=function(a){var h,u;if(v.removeDegenerateEdges(a),!v.initPriorityQ(a))return!1;for(v.initEdgeDict(a);(h=a.pq.extractMin())!==null;){for(;u=a.pq.min(),!(u===null||!n.vertEq(u,h));)u=a.pq.extractMin(),v.spliceMergeVertices(a,h.anEdge,u.anEdge);v.sweepEvent(a,h)}return a.event=a.dict.min().key.eUp.Org,v.debugEvent(a),v.doneEdgeDict(a),v.donePriorityQ(a),v.removeDegenerateFaces(a,a.mesh)?(a.mesh.check(),!0):!1};function T(){this.mesh=null,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=e.WINDING_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}T.prototype={dot_:function(a,h){return a[0]*h[0]+a[1]*h[1]+a[2]*h[2]},normalize_:function(a){var h=a[0]*a[0]+a[1]*a[1]+a[2]*a[2];s(h>0),h=Math.sqrt(h),a[0]/=h,a[1]/=h,a[2]/=h},longAxis_:function(a){var h=0;return Math.abs(a[1])>Math.abs(a[0])&&(h=1),Math.abs(a[2])>Math.abs(a[h])&&(h=2),h},computeNormal_:function(a){var h,u,g,M,A,I,b=[0,0,0],E=[0,0,0],L=[0,0,0],D=[0,0,0],R=[0,0,0],C=[null,null,null],B=[null,null,null],z=this.mesh.vHead,H;for(h=z.next,H=0;H<3;++H)M=h.coords[H],E[H]=M,B[H]=h,b[H]=M,C[H]=h;for(h=z.next;h!==z;h=h.next)for(H=0;H<3;++H)M=h.coords[H],M<E[H]&&(E[H]=M,B[H]=h),M>b[H]&&(b[H]=M,C[H]=h);if(H=0,b[1]-E[1]>b[0]-E[0]&&(H=1),b[2]-E[2]>b[H]-E[H]&&(H=2),E[H]>=b[H]){a[0]=0,a[1]=0,a[2]=1;return}for(I=0,u=B[H],g=C[H],L[0]=u.coords[0]-g.coords[0],L[1]=u.coords[1]-g.coords[1],L[2]=u.coords[2]-g.coords[2],h=z.next;h!==z;h=h.next)D[0]=h.coords[0]-g.coords[0],D[1]=h.coords[1]-g.coords[1],D[2]=h.coords[2]-g.coords[2],R[0]=L[1]*D[2]-L[2]*D[1],R[1]=L[2]*D[0]-L[0]*D[2],R[2]=L[0]*D[1]-L[1]*D[0],A=R[0]*R[0]+R[1]*R[1]+R[2]*R[2],A>I&&(I=A,a[0]=R[0],a[1]=R[1],a[2]=R[2]);I<=0&&(a[0]=a[1]=a[2]=0,a[this.longAxis_(L)]=1)},checkOrientation_:function(){var a,h,u=this.mesh.fHead,g,M=this.mesh.vHead,A;for(a=0,h=u.next;h!==u;h=h.next)if(A=h.anEdge,!(A.winding<=0))do a+=(A.Org.s-A.Dst.s)*(A.Org.t+A.Dst.t),A=A.Lnext;while(A!==h.anEdge);if(a<0){for(g=M.next;g!==M;g=g.next)g.t=-g.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},projectPolygon_:function(){var a,h=this.mesh.vHead,u=[0,0,0],g,M,A,I,b=!1;for(u[0]=this.normal[0],u[1]=this.normal[1],u[2]=this.normal[2],u[0]===0&&u[1]===0&&u[2]===0&&(this.computeNormal_(u),b=!0),g=this.sUnit,M=this.tUnit,A=this.longAxis_(u),g[A]=0,g[(A+1)%3]=1,g[(A+2)%3]=0,M[A]=0,M[(A+1)%3]=0,M[(A+2)%3]=u[A]>0?1:-1,a=h.next;a!==h;a=a.next)a.s=this.dot_(a.coords,g),a.t=this.dot_(a.coords,M);for(b&&this.checkOrientation_(),I=!0,a=h.next;a!==h;a=a.next)I?(this.bmin[0]=this.bmax[0]=a.s,this.bmin[1]=this.bmax[1]=a.t,I=!1):(a.s<this.bmin[0]&&(this.bmin[0]=a.s),a.s>this.bmax[0]&&(this.bmax[0]=a.s),a.t<this.bmin[1]&&(this.bmin[1]=a.t),a.t>this.bmax[1]&&(this.bmax[1]=a.t))},addWinding_:function(a,h){a.winding+=h.winding,a.Sym.winding+=h.Sym.winding},tessellateMonoRegion_:function(a,h){var u,g;for(u=h.anEdge,s(u.Lnext!==u&&u.Lnext.Lnext!==u);n.vertLeq(u.Dst,u.Org);u=u.Lprev);for(;n.vertLeq(u.Org,u.Dst);u=u.Lnext);for(g=u.Lprev;u.Lnext!==g;)if(n.vertLeq(u.Dst,g.Org)){for(;g.Lnext!==u&&(n.edgeGoesLeft(g.Lnext)||n.edgeSign(g.Org,g.Dst,g.Lnext.Dst)<=0);){var M=a.connect(g.Lnext,g);g=M.Sym}g=g.Lprev}else{for(;g.Lnext!==u&&(n.edgeGoesRight(u.Lprev)||n.edgeSign(u.Dst,u.Org,u.Lprev.Org)>=0);){var M=a.connect(u,u.Lprev);u=M.Sym}u=u.Lnext}for(s(g.Lnext!==u);g.Lnext.Lnext!==u;){var M=a.connect(g.Lnext,g);g=M.Sym}return!0},tessellateInterior_:function(a){var h,u;for(h=a.fHead.next;h!==a.fHead;h=u)if(u=h.next,h.inside&&!this.tessellateMonoRegion_(a,h))return!1;return!0},discardExterior_:function(a){var h,u;for(h=a.fHead.next;h!==a.fHead;h=u)u=h.next,h.inside||a.zapFace(h)},setWindingNumber_:function(a,h,u){var g,M;for(g=a.eHead.next;g!==a.eHead;g=M)M=g.next,g.Rface.inside!==g.Lface.inside?g.winding=g.Lface.inside?h:-h:u?a.delete(g):g.winding=0},getNeighbourFace_:function(a){return!a.Rface||!a.Rface.inside?-1:a.Rface.n},outputPolymesh_:function(a,h,u,g){var M,A,I,b=0,E=0,L,D;for(u>3&&a.mergeConvexFaces(u),M=a.vHead.next;M!==a.vHead;M=M.next)M.n=-1;for(A=a.fHead.next;A!==a.fHead;A=A.next)if(A.n=-1,!!A.inside){I=A.anEdge,L=0;do M=I.Org,M.n===-1&&(M.n=E,E++),L++,I=I.Lnext;while(I!==A.anEdge);s(L<=u),A.n=b,++b}for(this.elementCount=b,h===e.CONNECTED_POLYGONS&&(b*=2),this.elements=[],this.elements.length=b*u,this.vertexCount=E,this.vertices=[],this.vertices.length=E*g,this.vertexIndices=[],this.vertexIndices.length=E,M=a.vHead.next;M!==a.vHead;M=M.next)if(M.n!==-1){var R=M.n*g;this.vertices[R+0]=M.coords[0],this.vertices[R+1]=M.coords[1],g>2&&(this.vertices[R+2]=M.coords[2]),this.vertexIndices[M.n]=M.idx}var C=0;for(A=a.fHead.next;A!==a.fHead;A=A.next)if(A.inside){I=A.anEdge,L=0;do M=I.Org,this.elements[C++]=M.n,L++,I=I.Lnext;while(I!==A.anEdge);for(D=L;D<u;++D)this.elements[C++]=-1;if(h===e.CONNECTED_POLYGONS){I=A.anEdge;do this.elements[C++]=this.getNeighbourFace_(I),I=I.Lnext;while(I!==A.anEdge);for(D=L;D<u;++D)this.elements[C++]=-1}}},outputContours_:function(a,h){var u,g,M,A=0,I=0;for(this.vertexCount=0,this.elementCount=0,u=a.fHead.next;u!==a.fHead;u=u.next)if(u.inside){M=g=u.anEdge;do this.vertexCount++,g=g.Lnext;while(g!==M);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*h,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var b=0,E=0,L=0;for(A=0,u=a.fHead.next;u!==a.fHead;u=u.next)if(u.inside){I=0,M=g=u.anEdge;do this.vertices[b++]=g.Org.coords[0],this.vertices[b++]=g.Org.coords[1],h>2&&(this.vertices[b++]=g.Org.coords[2]),this.vertexIndices[E++]=g.Org.idx,I++,g=g.Lnext;while(g!==M);this.elements[L++]=A,this.elements[L++]=I,A+=I}},addContour:function(a,h){var u,g;for(this.mesh===null&&(this.mesh=new f),a<2&&(a=2),a>3&&(a=3),u=null,g=0;g<h.length;g+=a)u===null?(u=this.mesh.makeEdge(),this.mesh.splice(u,u.Sym)):(this.mesh.splitEdge(u),u=u.Lnext),u.Org.coords[0]=h[g+0],u.Org.coords[1]=h[g+1],a>2?u.Org.coords[2]=h[g+2]:u.Org.coords[2]=0,u.Org.idx=this.vertexIndexCounter++,u.winding=1,u.Sym.winding=-1},tesselate:function(a,h,u,g,M){if(this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,M&&(this.normal[0]=M[0],this.normal[1]=M[1],this.normal[2]=M[2]),this.windingRule=a,g<2&&(g=2),g>3&&(g=3),!this.mesh)return!1;this.projectPolygon_(),v.computeInterior(this);var A=this.mesh;return h===e.BOUNDARY_CONTOURS?this.setWindingNumber_(A,1,!0):this.tessellateInterior_(A),A.check(),h===e.BOUNDARY_CONTOURS?this.outputContours_(A,g):this.outputPolymesh_(A,h,u,g),!0}}},function(d,r){d.exports=e;var t=Object.prototype.hasOwnProperty;function e(){for(var n={},s=0;s<arguments.length;s++){var l=arguments[s];for(var o in l)t.call(l,o)&&(n[o]=l[o])}return n}},function(d,r,t){t.r(r),t.d(r,"createShaders",function(){return i}),t.d(r,"applyShader",function(){return f}),t.d(r,"createCloudShaders",function(){return c}),t.d(r,"applyCloudShader",function(){return m});var e=t(64),n=t(65),s=t(66),l=t(67);t(1).glMatrix.setMatrixArrayType(Array);const o=Symbol("shaders");function i(y){y[o]=[];for(let O=0;O<16;O++){const x=[],v=!!(O&1),T=!!(O&2),a=!!(O&4),h=!!(O&8);v&&x.push("#define TEXTURE 1"),T&&x.push("#define FILTER 1"),a&&x.push("#define GRADIENT 1"),h&&x.push("#define CLIPPATH 1");const u=`${x.join(`
39
+ `)}
40
+ `,g=[];v&&g.push("uniform sampler2D u_texSampler;"),h&&g.push("uniform sampler2D u_clipSampler;"),y[o][O]=[u+g.join(`
41
+ `)+n.default,u+e.default]}}function f(y,{hasTexture:O=!1,hasFilter:x=!1,hasGradient:v=!1,hasClipPath:T=!1}={}){const a=O|x<<1|v<<2|T<<3;let h=y[o][a];Array.isArray(h)&&(h=y.createProgram(...h),y[o][a]=h),y.program!==h&&y.useProgram(h,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}})}const p=[];function c(y){for(let O=0;O<64;O++){const x=[],v=!!(O&1),T=!!(O&2),a=!!(O&4),h=!!(O&8),u=!!(O&16),g=!!(O&32);v&&x.push("#define TEXTURE 1"),T&&x.push("#define FILTER 1"),a&&x.push("#define GRADIENT 1"),h&&x.push("#define CLOUDCOLOR 1"),u&&x.push("#define CLOUDFILTER 1"),g&&x.push("#define CLIPPATH 1");const M=`${x.join(`
42
+ `)}
43
+ `,A=[];if(v){A.push("uniform sampler2D u_texSampler;");for(let I=0;I<12;I++)A.push(`uniform sampler2D u_texFrame${I};`)}g&&A.push("uniform sampler2D u_clipSampler;"),p[O]=[M+A.join(`
44
+ `)+l.default,M+s.default]}}function m(y,{hasTexture:O=!1,hasFilter:x=!1,hasGradient:v=!1,hasCloudColor:T=!1,hasCloudFilter:a=!1,hasClipPath:h=!1}={}){const u=O|x<<1|v<<2|T<<3|a<<4|h<<5;let g=p[u];Array.isArray(g)&&(g=y.createProgram(...g),p[u]=g),y.program!==g&&y.useProgram(g,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}})}},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
45
+ attribute vec4 a_color;
46
+ varying vec4 vColor;
47
+ varying float flagBackground;
48
+ uniform vec2 u_resolution;
49
+ uniform mat3 viewMatrix;
50
+ uniform mat3 projectionMatrix;
51
+
52
+ #ifdef TEXTURE
53
+ attribute vec3 a_vertexTextureCoord;
54
+ varying vec3 vTextureCoord;
55
+ attribute vec4 a_sourceRect;
56
+ varying vec4 vSourceRect;
57
+ #endif
58
+
59
+ #ifdef CLIPPATH
60
+ attribute vec2 a_clipUV;
61
+ varying vec2 vClipUV;
62
+ #endif
63
+
64
+ #ifdef GRADIENT
65
+ uniform float u_radialGradientVector[6];
66
+ varying vec3 vGradientVector1;
67
+ varying vec3 vGradientVector2;
68
+ #endif
69
+
70
+ void main() {
71
+ gl_PointSize = 1.0;
72
+
73
+ vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
74
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
75
+
76
+ #ifdef GRADIENT
77
+ vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
78
+ vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
79
+ float h = u_resolution.y;
80
+ vg1.y = h - vg1.y;
81
+ vg2.y = h - vg2.y;
82
+ vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
83
+ vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
84
+ #endif
85
+
86
+ flagBackground = a_vertexPosition.z;
87
+ vColor = a_color;
88
+
89
+ #ifdef TEXTURE
90
+ vTextureCoord = a_vertexTextureCoord;
91
+ vSourceRect = a_sourceRect;
92
+ #endif
93
+
94
+ #ifdef CLIPPATH
95
+ vClipUV = a_clipUV;
96
+ #endif
97
+ }`},function(d,r,t){t.r(r),r.default=`precision mediump float;
98
+
99
+ varying vec4 vColor;
100
+ varying float flagBackground;
101
+
102
+ #ifdef TEXTURE
103
+ varying vec3 vTextureCoord;
104
+ varying vec4 vSourceRect;
105
+ #endif
106
+
107
+ #ifdef CLIPPATH
108
+ varying vec2 vClipUV;
109
+ #endif
110
+
111
+ #ifdef FILTER
112
+ uniform int u_filterFlag;
113
+ uniform float u_colorMatrix[20];
114
+ #endif
115
+
116
+ #ifdef GRADIENT
117
+ varying vec3 vGradientVector1;
118
+ varying vec3 vGradientVector2;
119
+ uniform float u_colorSteps[40];
120
+ uniform int u_gradientType;
121
+ // uniform float u_radialGradientVector[6];
122
+
123
+ void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
124
+ float t;
125
+ // center circle radius
126
+ float cr = gv1.z;
127
+ // focal circle radius
128
+ float fr = gv2.z;
129
+
130
+ if(cr > 0.0 || fr > 0.0) {
131
+ // radial gradient
132
+ vec2 center = gv1.xy;
133
+ vec2 focal = gv2.xy;
134
+ float x = focal.x - gl_FragCoord.x;
135
+ float y = focal.y - gl_FragCoord.y;
136
+ float dx = focal.x - center.x;
137
+ float dy = focal.y - center.y;
138
+ float dr = cr - fr;
139
+ float a = dx * dx + dy * dy - dr * dr;
140
+ float b = -2.0 * (y * dy + x * dx + fr * dr);
141
+ float c = x * x + y * y - fr * fr;
142
+ t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
143
+ } else {
144
+ // linear gradient
145
+ vec2 v1 = gl_FragCoord.xy - gv1.xy;
146
+ vec2 v2 = gv2.xy - gv1.xy;
147
+ t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
148
+ }
149
+
150
+ vec4 colors[8];
151
+ colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
152
+ colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
153
+ colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
154
+ colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
155
+ colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
156
+ colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
157
+ colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
158
+ colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
159
+
160
+ float steps[8];
161
+ steps[0] = colorSteps[0];
162
+ steps[1] = colorSteps[5];
163
+ steps[2] = colorSteps[10];
164
+ steps[3] = colorSteps[15];
165
+ steps[4] = colorSteps[20];
166
+ steps[5] = colorSteps[25];
167
+ steps[6] = colorSteps[30];
168
+ steps[7] = colorSteps[35];
169
+
170
+ color = colors[0];
171
+ for (int i = 1; i < 8; i++) {
172
+ if (steps[i] < 0.0 || steps[i] > 1.0) {
173
+ break;
174
+ }
175
+ if(steps[i] == steps[i - 1]) {
176
+ color = colors[i];
177
+ } else {
178
+ color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
179
+ }
180
+ if (steps[i] >= t) {
181
+ break;
182
+ }
183
+ }
184
+ }
185
+ #endif
186
+
187
+ #ifdef FILTER
188
+ void transformColor(inout vec4 color, in float colorMatrix[20]) {
189
+ float r = color.r, g = color.g, b = color.b, a = color.a;
190
+ color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
191
+ color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
192
+ color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
193
+ color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
194
+ }
195
+ #endif
196
+
197
+ void main() {
198
+ vec4 color = vColor;
199
+ float opacity = abs(flagBackground);
200
+
201
+ #ifdef GRADIENT
202
+ if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
203
+ gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
204
+ }
205
+ #endif
206
+
207
+ if(opacity < 1.0) {
208
+ color.a *= opacity;
209
+ }
210
+
211
+ #ifdef TEXTURE
212
+ if(flagBackground > 0.0) {
213
+ vec3 texCoord = vTextureCoord;
214
+
215
+ if(texCoord.z == 1.0) {
216
+ texCoord = fract(texCoord);
217
+ }
218
+
219
+ if(texCoord.x <= 1.0 && texCoord.x >= 0.0
220
+ && texCoord.y <= 1.0 && texCoord.y >= 0.0) {
221
+ if(vSourceRect.z > 0.0) {
222
+ texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
223
+ texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
224
+ }
225
+ vec4 texColor = texture2D(u_texSampler, texCoord.xy);
226
+ float alpha = texColor.a;
227
+ if(opacity < 1.0) {
228
+ texColor.a *= opacity;
229
+ alpha *= mix(0.465, 1.0, opacity);
230
+ }
231
+ // color = mix(color, texColor, texColor.a);
232
+ color.rgb = mix(color.rgb, texColor.rgb, alpha);
233
+ // color.rgb = mix(texColor.rgb, color.rgb, color.a);
234
+ color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
235
+ color.a = texColor.a + (1.0 - texColor.a) * color.a;
236
+ }
237
+ }
238
+ #endif
239
+
240
+ #ifdef FILTER
241
+ if(u_filterFlag > 0) {
242
+ transformColor(color, u_colorMatrix);
243
+ }
244
+ #endif
245
+
246
+ #ifdef CLIPPATH
247
+ float clip = texture2D(u_clipSampler, vClipUV).r;
248
+ color *= clip;
249
+ #endif
250
+
251
+ gl_FragColor = color;
252
+ }`},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
253
+ attribute vec4 a_color;
254
+ varying vec4 vColor;
255
+ varying float flagBackground;
256
+ attribute vec3 a_transform0;
257
+ attribute vec3 a_transform1;
258
+ uniform vec2 u_resolution;
259
+ uniform mat3 viewMatrix;
260
+ uniform mat3 projectionMatrix;
261
+
262
+ #ifdef TEXTURE
263
+ attribute vec3 a_vertexTextureCoord;
264
+ varying vec3 vTextureCoord;
265
+ attribute float a_frameIndex;
266
+ varying float frameIndex;
267
+ attribute vec4 a_sourceRect;
268
+ varying vec4 vSourceRect;
269
+ #endif
270
+
271
+ #ifdef CLIPPATH
272
+ attribute vec2 a_clipUV;
273
+ varying vec2 vClipUV;
274
+ #endif
275
+
276
+ #ifdef CLOUDFILTER
277
+ attribute vec4 a_colorCloud0;
278
+ attribute vec4 a_colorCloud1;
279
+ attribute vec4 a_colorCloud2;
280
+ attribute vec4 a_colorCloud3;
281
+ attribute vec4 a_colorCloud4;
282
+ varying vec4 colorCloud0;
283
+ varying vec4 colorCloud1;
284
+ varying vec4 colorCloud2;
285
+ varying vec4 colorCloud3;
286
+ varying vec4 colorCloud4;
287
+ #endif
288
+
289
+ #ifdef CLOUDCOLOR
290
+ attribute vec4 a_fillCloudColor;
291
+ attribute vec4 a_strokeCloudColor;
292
+ #endif
293
+
294
+ #ifdef GRADIENT
295
+ uniform float u_radialGradientVector[6];
296
+ varying vec3 vGradientVector1;
297
+ varying vec3 vGradientVector2;
298
+ #endif
299
+
300
+ void main() {
301
+ gl_PointSize = 1.0;
302
+
303
+ mat3 modelMatrix = mat3(
304
+ a_transform0.x, a_transform1.x, 0,
305
+ a_transform0.y, a_transform1.y, 0,
306
+ a_transform0.z, a_transform1.z, 1
307
+ );
308
+
309
+ vec3 pos = projectionMatrix * viewMatrix * modelMatrix * vec3(a_vertexPosition.xy, 1.0);
310
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
311
+
312
+ #ifdef GRADIENT
313
+ vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
314
+ vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
315
+ float h = u_resolution.y;
316
+ vg1.y = h - vg1.y;
317
+ vg2.y = h - vg2.y;
318
+ vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
319
+ vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
320
+ #endif
321
+
322
+ flagBackground = a_vertexPosition.z;
323
+
324
+ #ifdef CLOUDCOLOR
325
+ if(flagBackground > 0.0) {
326
+ vColor = mix(a_color, a_fillCloudColor, a_fillCloudColor.a);
327
+ } else {
328
+ vColor = mix(a_color, a_strokeCloudColor, a_strokeCloudColor.a);
329
+ }
330
+ #else
331
+ vColor = a_color;
332
+ #endif
333
+
334
+ #ifdef TEXTURE
335
+ vTextureCoord = a_vertexTextureCoord;
336
+ frameIndex = a_frameIndex;
337
+ vSourceRect = a_sourceRect;
338
+ #endif
339
+
340
+ #ifdef CLIPPATH
341
+ vClipUV = a_clipUV;
342
+ #endif
343
+
344
+ #ifdef CLOUDFILTER
345
+ colorCloud0 = a_colorCloud0;
346
+ colorCloud1 = a_colorCloud1;
347
+ colorCloud2 = a_colorCloud2;
348
+ colorCloud3 = a_colorCloud3;
349
+ colorCloud4 = a_colorCloud4;
350
+ #endif
351
+ }`},function(d,r,t){t.r(r),r.default=`precision mediump float;
352
+
353
+ varying vec4 vColor;
354
+ varying float flagBackground;
355
+
356
+ #ifdef TEXTURE
357
+ varying float frameIndex;
358
+ varying vec3 vTextureCoord;
359
+ varying vec4 vSourceRect;
360
+ #endif
361
+
362
+ #ifdef CLIPPATH
363
+ varying vec2 vClipUV;
364
+ #endif
365
+
366
+ #ifdef FILTER
367
+ uniform int u_filterFlag;
368
+ uniform float u_colorMatrix[20];
369
+ #endif
370
+
371
+ #ifdef CLOUDFILTER
372
+ varying vec4 colorCloud0;
373
+ varying vec4 colorCloud1;
374
+ varying vec4 colorCloud2;
375
+ varying vec4 colorCloud3;
376
+ varying vec4 colorCloud4;
377
+ #endif
378
+
379
+ #ifdef GRADIENT
380
+ varying vec3 vGradientVector1;
381
+ varying vec3 vGradientVector2;
382
+ uniform float u_colorSteps[40];
383
+ uniform int u_gradientType;
384
+
385
+ void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
386
+ float t;
387
+ // center circle radius
388
+ float cr = gv1.z;
389
+ // focal circle radius
390
+ float fr = gv2.z;
391
+
392
+ if(cr > 0.0 || fr > 0.0) {
393
+ // radial gradient
394
+ vec2 center = gv1.xy;
395
+ vec2 focal = gv2.xy;
396
+ float x = focal.x - gl_FragCoord.x;
397
+ float y = focal.y - gl_FragCoord.y;
398
+ float dx = focal.x - center.x;
399
+ float dy = focal.y - center.y;
400
+ float dr = cr - fr;
401
+ float a = dx * dx + dy * dy - dr * dr;
402
+ float b = -2.0 * (y * dy + x * dx + fr * dr);
403
+ float c = x * x + y * y - fr * fr;
404
+ t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
405
+ } else {
406
+ // linear gradient
407
+ vec2 v1 = gl_FragCoord.xy - gv1.xy;
408
+ vec2 v2 = gv2.xy - gv1.xy;
409
+ t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
410
+ }
411
+
412
+ vec4 colors[8];
413
+ colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
414
+ colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
415
+ colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
416
+ colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
417
+ colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
418
+ colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
419
+ colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
420
+ colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
421
+
422
+ float steps[8];
423
+ steps[0] = colorSteps[0];
424
+ steps[1] = colorSteps[5];
425
+ steps[2] = colorSteps[10];
426
+ steps[3] = colorSteps[15];
427
+ steps[4] = colorSteps[20];
428
+ steps[5] = colorSteps[25];
429
+ steps[6] = colorSteps[30];
430
+ steps[7] = colorSteps[35];
431
+
432
+ color = colors[0];
433
+ for (int i = 1; i < 8; i++) {
434
+ if (steps[i] < 0.0 || steps[i] > 1.0) {
435
+ break;
436
+ }
437
+ if(steps[i] == steps[i - 1]) {
438
+ color = colors[i];
439
+ } else {
440
+ color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
441
+ }
442
+ if (steps[i] >= t) {
443
+ break;
444
+ }
445
+ }
446
+ }
447
+ #endif
448
+
449
+ void transformColor(inout vec4 color, in float colorMatrix[20]) {
450
+ float r = color.r, g = color.g, b = color.b, a = color.a;
451
+ color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
452
+ color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
453
+ color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
454
+ color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
455
+ }
456
+
457
+ #ifdef CLOUDFILTER
458
+ void buildCloudColor(inout float colorCloudMatrix[20]) {
459
+ colorCloudMatrix[0] = colorCloud0[0];
460
+ colorCloudMatrix[1] = colorCloud1[0];
461
+ colorCloudMatrix[2] = colorCloud2[0];
462
+ colorCloudMatrix[3] = colorCloud3[0];
463
+ colorCloudMatrix[4] = colorCloud4[0];
464
+
465
+ colorCloudMatrix[5] = colorCloud0[1];
466
+ colorCloudMatrix[6] = colorCloud1[1];
467
+ colorCloudMatrix[7] = colorCloud2[1];
468
+ colorCloudMatrix[8] = colorCloud3[1];
469
+ colorCloudMatrix[9] = colorCloud4[1];
470
+
471
+ colorCloudMatrix[10] = colorCloud0[2];
472
+ colorCloudMatrix[11] = colorCloud1[2];
473
+ colorCloudMatrix[12] = colorCloud2[2];
474
+ colorCloudMatrix[13] = colorCloud3[2];
475
+ colorCloudMatrix[14] = colorCloud4[2];
476
+
477
+ colorCloudMatrix[15] = colorCloud0[3];
478
+ colorCloudMatrix[16] = colorCloud1[3];
479
+ colorCloudMatrix[17] = colorCloud2[3];
480
+ colorCloudMatrix[18] = colorCloud3[3];
481
+ colorCloudMatrix[19] = colorCloud4[3];
482
+ }
483
+ #endif
484
+
485
+ void main() {
486
+ vec4 color = vColor;
487
+ float opacity = abs(flagBackground);
488
+
489
+ #ifdef GRADIENT
490
+ if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
491
+ gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
492
+ }
493
+ #endif
494
+
495
+ if(opacity < 1.0) {
496
+ color.a *= opacity;
497
+ }
498
+
499
+ #ifdef TEXTURE
500
+ if(flagBackground > 0.0) {
501
+ vec3 texCoord = vTextureCoord;
502
+
503
+ if(texCoord.z == 1.0) {
504
+ texCoord = fract(texCoord);
505
+ }
506
+
507
+ if(texCoord.x <= 1.0 && texCoord.x >= 0.0
508
+ && texCoord.y <= 1.0 && texCoord.y >= 0.0) {
509
+ if(vSourceRect.z > 0.0) {
510
+ texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
511
+ texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
512
+ }
513
+ if(frameIndex < 0.0) {
514
+ vec4 texColor = texture2D(u_texSampler, texCoord.xy);
515
+ color = mix(color, texColor, texColor.a);
516
+ } else {
517
+ int index = int(floor(clamp(0.0, 11.0, frameIndex)));
518
+ vec4 texColor;
519
+ if(index == 0) texColor = texture2D(u_texFrame0, texCoord.xy);
520
+ else if(index == 1) texColor = texture2D(u_texFrame1, texCoord.xy);
521
+ else if(index == 2) texColor = texture2D(u_texFrame2, texCoord.xy);
522
+ else if(index == 3) texColor = texture2D(u_texFrame3, texCoord.xy);
523
+ else if(index == 4) texColor = texture2D(u_texFrame4, texCoord.xy);
524
+ else if(index == 5) texColor = texture2D(u_texFrame5, texCoord.xy);
525
+ else if(index == 6) texColor = texture2D(u_texFrame6, texCoord.xy);
526
+ else if(index == 7) texColor = texture2D(u_texFrame7, texCoord.xy);
527
+ else if(index == 8) texColor = texture2D(u_texFrame8, texCoord.xy);
528
+ else if(index == 9) texColor = texture2D(u_texFrame9, texCoord.xy);
529
+ else if(index == 10) texColor = texture2D(u_texFrame10, texCoord.xy);
530
+ else texColor = texture2D(u_texFrame11, texCoord.xy);
531
+ float alpha = texColor.a;
532
+ if(opacity < 1.0) {
533
+ texColor.a *= opacity;
534
+ alpha *= mix(0.465, 1.0, opacity);
535
+ }
536
+ // color = mix(color, texColor, texColor.a);
537
+ color.rgb = mix(color.rgb, texColor.rgb, alpha);
538
+ // color.rgb = mix(texColor.rgb, color.rgb, color.a);
539
+ color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
540
+ color.a = texColor.a + (1.0 - texColor.a) * color.a;
541
+ }
542
+ }
543
+ }
544
+ #endif
545
+
546
+ #ifdef FILTER
547
+ if(u_filterFlag > 0) {
548
+ transformColor(color, u_colorMatrix);
549
+ }
550
+ #endif
551
+
552
+ #ifdef CLOUDFILTER
553
+ float colorCloudMatrix[20];
554
+ buildCloudColor(colorCloudMatrix);
555
+ transformColor(color, colorCloudMatrix);
556
+ #endif
557
+
558
+ #ifdef CLIPPATH
559
+ float clip = texture2D(u_clipSampler, vClipUV).r;
560
+ color *= clip;
561
+ #endif
562
+
563
+ gl_FragColor = color;
564
+ }`},function(d,r,t){t.r(r),(function(e,n){t.d(r,"requestAnimationFrame",function(){return l}),t.d(r,"cancelAnimationFrame",function(){return o}),t(1).glMatrix.setMatrixArrayType(Array);function s(){if(typeof performance<"u"&&performance.now)return performance.now();if(typeof e<"u"&&e.hrtime){const[i,f]=e.hrtime();return i*1e3+f*1e-6}return Date.now?Date.now():new Date().getTime()}let l,o;typeof n<"u"&&typeof n.requestAnimationFrame=="function"?(l=n.requestAnimationFrame,o=n.cancelAnimationFrame):(l=function(i){return setTimeout(()=>{i(s())},16)},o=function(i){return clearTimeout(i)})}).call(this,t(69),t(22))},function(d,r){var t=d.exports={},e,n;function s(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?e=setTimeout:e=s}catch{e=s}try{typeof clearTimeout=="function"?n=clearTimeout:n=l}catch{n=l}})();function o(T){if(e===setTimeout)return setTimeout(T,0);if((e===s||!e)&&setTimeout)return e=setTimeout,setTimeout(T,0);try{return e(T,0)}catch{try{return e.call(null,T,0)}catch{return e.call(this,T,0)}}}function i(T){if(n===clearTimeout)return clearTimeout(T);if((n===l||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(T);try{return n(T)}catch{try{return n.call(null,T)}catch{return n.call(this,T)}}}var f=[],p=!1,c,m=-1;function y(){!p||!c||(p=!1,c.length?f=c.concat(f):m=-1,f.length&&O())}function O(){if(!p){var T=o(y);p=!0;for(var a=f.length;a;){for(c=f,f=[];++m<a;)c&&c[m].run();m=-1,a=f.length}c=null,p=!1,i(T)}}t.nextTick=function(T){var a=new Array(arguments.length-1);if(arguments.length>1)for(var h=1;h<arguments.length;h++)a[h-1]=arguments[h];f.push(new x(T,a)),f.length===1&&!p&&o(O)};function x(T,a){this.fun=T,this.array=a}x.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={};function v(){}t.on=v,t.addListener=v,t.once=v,t.off=v,t.removeListener=v,t.removeAllListeners=v,t.emit=v,t.prependListener=v,t.prependOnceListener=v,t.listeners=function(T){return[]},t.binding=function(T){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(T){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},function(d,r,t){t.r(r),t.d(r,"default",function(){return I});var e=t(1),n=t(71),s=t(73),l=t(213),o=t(214),i=t(215),f=t(216);t(1).glMatrix.setMatrixArrayType(Array);function p(b,E){var L=Object.keys(b);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(b);E&&(D=D.filter(function(R){return Object.getOwnPropertyDescriptor(b,R).enumerable})),L.push.apply(L,D)}return L}function c(b){for(var E=1;E<arguments.length;E++){var L=arguments[E]!=null?arguments[E]:{};E%2?p(Object(L),!0).forEach(function(D){m(b,D,L[D])}):Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(L)):p(Object(L)).forEach(function(D){Object.defineProperty(b,D,Object.getOwnPropertyDescriptor(L,D))})}return b}function m(b,E,L){return E in b?Object.defineProperty(b,E,{value:L,enumerable:!0,configurable:!0,writable:!0}):b[E]=L,b}const y=Symbol.for("spritejs_changedAttrs"),O=Symbol.for("spritejs_attributes"),x=Symbol("resolution"),v=Symbol("animations"),T=Symbol("eventListeners"),a=Symbol("captureEventListeners"),h=Symbol("filters"),u=Symbol("display"),g=Symbol("program"),M=Symbol("shaderAttrs"),A=Symbol("uniforms");class I{constructor(E={}){this.attributes=new this.constructor.Attr(this),this[x]={width:300,height:150},Object.assign(this.attributes,E),this[v]=new Set,this[T]={},this[a]={}}get ancestors(){let E=this.parent;const L=[];for(;E;)L.push(E),E=E.parent;return L}get animations(){return this[v]}get filters(){return this[h]||this.parent&&this.parent.filters}get isVisible(){return!1}get layer(){return this.parent?this.parent.layer:null}get localMatrix(){const E=this.transformMatrix,{x:L,y:D}=this.attributes;return E[4]+=L,E[5]+=D,E}get opacity(){let E=this.attributes.opacity;return this.parent&&this.parent.opacity!=null&&(E*=this.parent.opacity),E}get parentNode(){return this.parent}get nextSibling(){return this.getNodeNearBy(1)}get previousSibling(){return this.getNodeNearBy(-1)}get program(){return this[g]}get renderer(){return this.parent?this.parent.renderer:null}get renderMatrix(){if(this.__cacheRenderMatrix)return this.__cacheRenderMatrix;let E=this.localMatrix;const L=this.parent;if(L){const D=L.__cacheRenderMatrix||L.renderMatrix;D&&(E=e.mat2d.multiply(Array.of(0,0,0,0,0,0),D,E))}return E}get worldScaling(){const E=this.renderMatrix;return[Math.hypot(E[0],E[1]),Math.hypot(E[2],E[3])]}get worldRotation(){const E=this.renderMatrix;return Math.atan2(E[1],E[3])}get worldPosition(){const E=this.renderMatrix;return[E[4],E[5]]}get uniforms(){return this[A]}get className(){return this.attributes.className}set className(E){this.attributes.className=E}get id(){return this.attributes.id}set id(E){this.attributes.id=E}get name(){return this.attributes.name}set name(E){this.attributes.name=E}get zIndex(){return this.attributes.zIndex}set zIndex(E){this.attributes.zIndex=E}get mesh(){return null}get shaderAttrs(){return this[M]||{}}activateAnimations(){const E=this.layer;if(E){const L=this[v];L.forEach(R=>{R.baseTimeline=E.timeline,R.play(),R.finished.then(()=>{L.delete(R)})});const D=this.children;D&&D.forEach(R=>{R.activateAnimations&&R.activateAnimations()})}}addEventListener(E,L,D={}){E==="mousewheel"&&(E="wheel"),typeof D=="boolean"&&(D={capture:D});const{capture:R,once:C}=D,B=R?a:T;return this[B][E]=this[B][E]||[],this[B][E].push({listener:L,once:C}),this}animate(E,L){const D=new s.default(this,E,L);return this.effects&&D.applyEffects(this.effects),this.layer&&(D.baseTimeline=this.layer.timeline,D.play(),D.finished.then(()=>{this[v].delete(D)})),this[v].add(D),D}attr(...E){if(E.length===0)return this.attributes[O];if(E.length>1){let[L,D]=E;return typeof D=="function"&&(D=D(this.attr(L))),this.setAttribute(L,D),this}return typeof E[0]=="string"?this.getAttribute(E[0]):(Object.assign(this.attributes,E[0]),this)}cloneNode(){const E=new this.constructor,L=this.attributes[y];return E.attr(L),E}connect(E,L){Object.defineProperty(this,"parent",{value:E,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:L,writable:!1,configurable:!0}),E.timeline&&this.activateAnimations(),this.setResolution(E.getResolution()),this.forceUpdate(),this.dispatchEvent({type:"append",detail:{parent:E,zOrder:L}})}contains(E){for(;E&&this!==E;)E=E.parent;return!!E}deactivateAnimations(){this[v].forEach(L=>L.cancel());const E=this.children;E&&E.forEach(L=>{L.deactivateAnimations&&L.deactivateAnimations()})}disconnect(){const{parent:E,zOrder:L}=this;delete this.parent,delete this.zOrder,this.deactivateAnimations(),this.dispatchEvent({type:"remove",detail:{parent:E,zOrder:L}}),E&&E.forceUpdate()}dispatchEvent(E){E instanceof o.default||(E=new o.default(E)),E.target=this;let L=E.type;L==="mousewheel"&&(L="wheel");const D=[this];let R=this.parent;for(;E.bubbles&&R;)D.push(R),R=R.parent;for(let C=D.length-1;C>=0;C--){const B=D[C],z=B[a]&&B[a][L];if(z&&z.length&&(E.currentTarget=B,z.forEach(({listener:H,once:X})=>{H.call(this,E),X&&D.removeEventListener(H)}),delete E.currentTarget),!E.bubbles&&E.cancelBubble)break}if(!E.cancelBubble)for(let C=0;C<D.length;C++){const B=D[C],z=B[T]&&B[T][L];if(z&&z.length&&(E.currentTarget=B,z.forEach(({listener:H,once:X})=>{H.call(this,E),X&&D.removeEventListener(H)}),delete E.currentTarget),!E.bubbles||E.cancelBubble)break}}dispatchPointerEvent(E){const{layerX:L,layerY:D}=E;return this.isPointCollision(L,D)?(this.dispatchEvent(E),!0):!1}draw(E=[]){const L=this.mesh;if(L){if(Object(i.applyFilters)(L,this.filters),E.push(L),this[g]){L.setProgram(this[g]);const D=this[M];D&&Object.entries(D).forEach(([C,B])=>{L.setAttribute(C,B)});const R=this[A];if(this[A]){const C={};Object.entries(R).forEach(([B,z])=>{typeof z=="function"&&(z=z(this,B)),C[B]=z}),L.setUniforms(C)}}Object(f.default)(this,L)}return E}forceUpdate(){this.parent&&this.parent.forceUpdate()}getAttribute(E){return this.attributes[E]}getListeners(E,{capture:L=!1}={}){return[...this[L?a:T][E]||[]]}getNodeNearBy(E=1){if(!this.parent)return null;if(E===0)return this;const L=this.parent.children,D=L.indexOf(this);return L[D+E]}getWorldPosition(E,L){const D=this.renderMatrix,R=E*D[0]+L*D[2]+D[4],C=E*D[1]+L*D[3]+D[5];return[R,C]}getOffsetPosition(E,L){const D=e.mat2d.invert(Array.of(0,0,0,0,0,0),this.renderMatrix),R=E*D[0]+L*D[2]+D[4],C=E*D[1]+L*D[3]+D[5];return[R,C]}getResolution(){return c({},this[x])}isPointCollision(E,L){if(!this.mesh)return!1;const D=this.attributes.pointerEvents;if(D==="none"||D!=="all"&&!this.isVisible)return!1;let R="both";return D==="visibleFill"&&(R="fill"),D==="visibleStroke"&&(R="stroke"),this.mesh.isPointCollision(E,L,R)}onPropertyChange(E,L,D){E!=="id"&&E!=="name"&&E!=="className"&&E!=="pointerEvents"&&E!=="passEvents"&&this.forceUpdate(),E==="filter"&&(this[h]=Object(i.parseFilterString)(L)),E==="zIndex"&&this.parent&&this.parent.reorder()}setAttribute(E,L){E==="attrs"&&this.attr(L),this.attributes[E]=L}setMouseCapture(){this.layer&&(this.layer.__mouseCapturedTarget=this)}setProgram(E){this[g]=E,this.forceUpdate()}setShaderAttribute(E,L){this[M]=this[M]||{},this[M][E]=L,this.forceUpdate()}setUniforms(E){this[A]=this[A]||{},Object.assign(this[A],E),this.forceUpdate()}setResolution({width:E,height:L}){const{width:D,height:R}=this[x];(D!==E||R!==L)&&(this[x]={width:E,height:L},this.forceUpdate(),this.dispatchEvent({type:"resolutionchange",detail:{width:E,height:L}}))}show(){this.attributes.display==="none"&&(this.attributes.display=this[u]||"")}hide(){this.attributes.display!=="none"&&(this[u]=this.attributes.display,this.attributes.display="none")}releaseMouseCapture(){this.layer&&this.layer.__mouseCapturedTarget===this&&(this.layer.__mouseCapturedTarget=null)}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}removeAllListeners(E,L={}){typeof L=="boolean"&&(L={capture:L});const R=L.capture?a:T;return this[R][E]&&(this[R][E]=[]),this}removeAttribute(E){this.setAttribute(E,null)}removeEventListener(E,L,D={}){typeof D=="boolean"&&(D={capture:D});const C=D.capture?a:T;if(this[C][E]){const B=this[C][E];if(B)for(let z=0;z<B.length;z++){const{listener:H}=B[z];if(H===L){this[C][E].splice(z,1);break}}}return this}transition(E,L="linear"){const D=this,R=Symbol("animation");L=L||"linear";let C=0;return typeof E=="object"&&(C=E.delay||0,E=E.duration),{[R]:null,cancel(B=!1){const z=this[R];z&&z.cancel(B)},end(){const B=this[R];B&&(B.playState==="running"||B.playState==="pending")&&B.finish()},reverse(){const B=this[R];if(B)if(B.playState==="running"||B.playState==="pending")B.playbackRate=-B.playbackRate;else{const z=B.timing.direction;B.timing.direction=z==="reverse"?"normal":"reverse",B.play()}return B.finished},attr(B,z){return this.end(),typeof B=="string"&&(B={[B]:z}),Object.entries(B).forEach(([H,X])=>{typeof X=="function"&&(B[H]=X(D.attr(H)))}),this[R]=D.animate([B],{duration:E*1e3,delay:C*1e3,fill:"forwards",easing:L}),this[R].finished}}}updateContours(){}}m(I,"Attr",n.default),l.default.registerNode(I,"node")},function(d,r,t){t.r(r),t.d(r,"default",function(){return I});var e=t(1),n=t(12),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_declareAlias"),i=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),p=Symbol.for("spritejs_attributes"),c=Symbol.for("spritejs_changedAttrs"),m=Symbol("subject"),y=Symbol("attr"),O=Symbol("default"),x=Symbol("alias");function v(b,[E,L]){let D=e.mat2d.fromValues(1,0,0,1,0,0);return[...b].forEach(([R,C])=>{if((E||L)&&(D=e.mat2d.translate(Array.of(0,0,0,0,0,0),D,[E,L])),R==="matrix")D=e.mat2d.multiply(D,D,C);else if(R==="offsetTranslate")D[4]+=C[0],D[5]+=C[1];else if(R==="offsetRotate")D=e.mat2d.rotate(Array.of(0,0,0,0,0,0),D,C);else if(R==="skew"){const[B,z]=C;D=e.mat2d.multiply(D,D,e.mat2d.fromValues(1,Math.tan(z),Math.tan(B),1,0,0))}else e.mat2d[R](D,D,C);(E||L)&&(D=e.mat2d.translate(Array.of(0,0,0,0,0,0),D,[-E,-L]))}),D}const T=Symbol("transformMatrix"),a=Symbol("transforms"),h=Symbol("changedAttrs"),u=Symbol("lastChangedAttr"),g=Symbol("offsetFigure");function M(b,E,L){const D=b[y][E];if(b[i](E,L,!1)||b[u]!==E){const C=b[a];C.has(E)&&C.delete(E),L&&(E==="rotate"&&(L=Math.PI*L/180),E==="scale"&&(L=L.map(B=>Math.abs(B)>1e-5?B:1/B>0?1e-5:-1e-5)),C.set(E,L)),b[T]=null,b[m].onPropertyChange(E,L,D,b)}}function A(b){const E=b[g],L=b.offsetDistance*E.getTotalLength(),D=E.getPointAtLength(L);if(D){const R=b[a];let C=b.offsetRotate;C==="auto"?C=D.angle:C==="reverse"?C=Math.PI+D.angle:C=Math.PI*C/180,R.set("offsetRotate",C),R.set("offsetTranslate",[D.x,D.y]),b[T]=null}}class I{static setDefault(E,...L){return E[l](...L)}static declareAlias(E,...L){return E[o](...L)}static setAttribute(E,...L){return E[i](...L)}static getAttribute(E,...L){return E[f](...L)}static getAttributes(E){return E[p]}static getChangedAttributes(E){return E[c]}constructor(E){this[m]=E,this[y]={},this[T]=e.mat2d.fromValues(1,0,0,1,0,0),this[a]=new Map,this[O]={},this[x]=[],Object.defineProperty(E,"transformMatrix",{get:()=>(this[T]||(this[T]=v(this[a],this.transformOrigin)),[...this[T]])}),this[l]({id:"",name:"",className:"",x:0,y:0,transformOrigin:[0,0],transform:"",translate:[0,0],rotate:0,scale:[1,1],skew:[0,0],opacity:1,zIndex:0,offsetPath:void 0,offsetDistance:0,offsetRotate:"auto",pointerEvents:"visible",filter:"none",display:""}),this[o]("class","pos"),this[h]=new Set,this[g]=new n.Figure2D({scale:5,simplify:0})}get[c](){const E={};return[...this[h]].forEach(L=>{E[L]=this[y][L]}),E}get[p](){const E=Object.assign({},this[y]);for(let L=0;L<this[x].length;L++){const D=this[x][L];E[D]=this[D]}return E}[l](E){Object.assign(this[O],E),Object.assign(this[y],E)}[o](...E){this[x].push(...E)}[i](E,L,D=!0){const R=this[y][E],C=this[m];return L==null&&(L=this[O][E]),Object(s.compareValue)(R,L)?!1:(this[y][E]=L,this[h].has(E)&&this[h].delete(E),this[h].add(E),this[u]=E,D&&C.onPropertyChange(E,L,R,this),!0)}[f](E){return this[y][E]}set id(E){this[i]("id",E)}get id(){return this[f]("id")}set name(E){this[i]("name",E)}get name(){return this[f]("name")}set className(E){this[i]("className",E)}get className(){return this[f]("className")}set class(E){this.className=E}get class(){return this.className}get x(){return this[f]("x")}set x(E){this[i]("x",Object(s.toNumber)(E))}get y(){return this[f]("y")}set y(E){this[i]("y",Object(s.toNumber)(E))}get pos(){return[this.x,this.y]}set pos(E){E=Object(s.toArray)(E),Array.isArray(E)||(E=[E,E]),this.x=E[0],this.y=E[1]}get transform(){return this[f]("transform")}set transform(E){let L=null;if(Array.isArray(E)&&(L=E,E=`matrix(${E.map(s.toNumber).join()})`),typeof E=="string")E=E.replace(/\s*,\s*/g,",");else if(E!=null)throw new TypeError("Invalid transform value.");const D=this[y].transform;if(this[i]("transform",E,!1)){const R=this[a];if(R.has("matrix")&&R.delete("matrix"),L)R.set("matrix",L);else if(E){const C=E.match(/(matrix|translate|rotate|scale|skew)\([^()]+\)/g);if(C){let B=e.mat2d.fromValues(1,0,0,1,0,0);for(let z=0;z<C.length;z++){const X=C[z].match(/^(matrix|translate|rotate|scale|skew)\(([^()]+)\)/);if(X){let[,Z,j]=X;Z==="rotate"?j=Math.PI*parseFloat(j)/180:j=j.trim().split(/[\s,]+/).map(G=>Object(s.toNumber)(G)),Z==="matrix"?B=e.mat2d.multiply(B,B,j):Z==="skew"?B=e.mat2d.multiply(B,B,e.mat2d.fromValues(1,Math.tan(j[1]),Math.tan(j[0]),1,0,0)):e.mat2d[Z](B,B,j),R.set("matrix",B)}}}else throw new TypeError("Invalid transform value.")}this[T]=null,this[m].onPropertyChange("transform",E,D,this)}}get transformOrigin(){return this[f]("transformOrigin")}set transformOrigin(E){E=Object(s.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),this[i]("transformOrigin",E)&&(this[T]=null)}get rotate(){return this[f]("rotate")}set rotate(E){M(this,"rotate",E)}get translate(){return this[f]("translate")}set translate(E){E=Object(s.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"translate",E)}get scale(){return this[f]("scale")}set scale(E){E=Object(s.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"scale",E)}get skew(){return this[f]("skew")}set skew(E){E=Object(s.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"skew",E)}get opacity(){return this[f]("opacity")}set opacity(E){E!=null&&(E=Number(E)),this[i]("opacity",E)}get zIndex(){return this[f]("zIndex")}set zIndex(E){E!=null&&(E=Number(E)),this[i]("zIndex",E)}get offsetPath(){return this[f]("offsetPath")}set offsetPath(E){this[i]("offsetPath",E)&&(this[g].beginPath(),E!=null&&this[g].addPath(E),A(this))}get offsetDistance(){return this[f]("offsetDistance")}set offsetDistance(E){this[i]("offsetDistance",Object(s.toNumber)(E))&&A(this)}get offsetRotate(){return this[f]("offsetRotate")}set offsetRotate(E){this[i]("offsetRotate",E),A(this)}get pointerEvents(){return this[f]("pointerEvents")}set pointerEvents(E){if(E!=null&&E!=="none"&&E!=="visible"&&E!=="visibleFill"&&E!=="visibleStroke"&&E!=="all")throw new TypeError("Invalid pointerEvents type.");this[i]("pointerEvents",E)}get filter(){return this[f]("filter")}set filter(E){this[i]("filter",E)}get display(){return this[f]("display")}set display(E){this[i]("display",E)}set offset(E){}}},function(d,r,t){t.r(r),t.d(r,"sizeToPixel",function(){return e}),t.d(r,"toString",function(){return n}),t.d(r,"toNumber",function(){return s}),t.d(r,"toArray",function(){return l}),t.d(r,"compareValue",function(){return o}),t(1).glMatrix.setMatrixArrayType(Array);function e(i,f){const p=i.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/);p?i={size:parseFloat(p[1]),unit:p[2]}:i={size:parseFloat(i),unit:"px"};let{size:c,unit:m}=i;if(m==="pt")c/=.75;else if(m==="pc")c*=16;else if(m==="in")c*=96;else if(m==="cm")c*=96/2.54;else if(m==="mm")c*=96/25.4;else if(m==="em"||m==="rem"||m==="ex"){if(!f&&typeof getComputedStyle=="function"&&typeof document<"u"){const y=getComputedStyle(document.documentElement).fontSize;y?f=e(y,16):f=16}c*=f,m==="ex"&&(c/=2)}else if(m==="q")c*=96/25.4/4;else if(m==="vw"||m==="vh"){if(typeof document<"u"){const y=m==="vw"?window.innerWidth||document.documentElement.clientWidth:window.innerHeight||document.documentElement.clientHeight;c*=y/100}}else if((m==="vmax"||m==="vmin")&&typeof document<"u"){const y=window.innerWidth||document.documentElement.clientWidth,O=window.innerHeight||document.documentElement.clientHeight;m==="vmax"?c*=Math.max(y,O)/100:c*=Math.min(y,O)/100}return c}function n(i){return i==null?i:String(i)}function s(i){if(i==null)return i;if(typeof i=="string"&&(i=e(i)),!Number.isFinite(i))throw new TypeError("Invalid value");return i}function l(i,f=!1){return i===""?null:(typeof i=="string"&&(i=i.split(/[\s,]+/g)),Array.isArray(i)&&(f&&(i=i.map(s)),i.length===1)?i[0]:i)}function o(i,f){if(Array.isArray(i)&&Array.isArray(f)){if(i.length!==f.length)return!1;for(let p=0;p<i.length;p++)if(i[p]!==f[p])return!1;return!0}return i==null&&f==null||i===f}},function(d,r,t){t.r(r),t.d(r,"default",function(){return m});var e=t(74),n=t(32),s=t.n(n),l=t(68),o=t(72);t(1).glMatrix.setMatrixArrayType(Array);function i(){return i=Object.assign||function(y){for(var O=1;O<arguments.length;O++){var x=arguments[O];for(var v in x)Object.prototype.hasOwnProperty.call(x,v)&&(y[v]=x[v])}return y},i.apply(this,arguments)}function f(y){if(typeof y=="string"){if(y=y.trim(),/^[0-9.]+%$/.test(y))return parseFloat(y)/100;if(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/.test(y))return Object(o.sizeToPixel)(y)}return y}function p(y,O,x,v,T){return typeof y=="string"&&(y=s()(y)),typeof O=="string"&&(O=s()(O)),e.Effects.default(y,O,x,v,T)}function c(y,O,x,v,T){return e.Effects.default(y,O,x,v,T)}e.Effects.default=function(y,O,x,v,T){return Array.isArray(y)&&Array.isArray(O)?y.map((a,h)=>a+(x-v)/(T-v)*(O[h]-a)):typeof y=="number"&&typeof O=="number"?y+(x-v)/(T-v)*(O-y):x-v>T-x?O:y},e.Effects.fillColor=p,e.Effects.strokeColor=p,e.Effects.bgcolor=p,e.Effects.borderColor=p,e.Effects.text=c;class m extends e.Animator{constructor(O,x,v){const T=O.attr();Object.entries(T).forEach(([a,h])=>{T[a]=e.Effects[a]?h:f(h)}),x=x.map(a=>{let h=i({},a);const u={};return Object.entries(h).forEach(([g,M])=>{u[g]=e.Effects[g]?M:f(M)}),u}),super(T,x,v),this.target=O,this.setter=function(a,h){h.attr(a)}}get playState(){return this.target.parent?super.playState:"idle"}get finished(){return super.finished.then(()=>{const O=this;return new Promise(x=>{function v(){O.setter(O.frame,O.target);const T=O.playState;T==="finished"||T==="idle"?(Object(l.cancelAnimationFrame)(O.requestId),x()):Object(l.requestAnimationFrame)(v)}v()})})}finish(){super.finish(),Object(l.cancelAnimationFrame)(this.requestId),this.setter(this.frame,this.target)}play(){if(!this.target.parent||this.playState==="running")return;super.play(),this.setter(this.frame,this.target);const O=this;this.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(l.requestAnimationFrame)(function x(){const v=O.target;if(typeof document<"u"&&document.documentElement&&document.documentElement.contains&&v.layer&&v.layer.canvas&&!document.documentElement.contains(v.layer.canvas)){O.cancel();return}const T=O.playState;O.setter(O.frame,O.target),T!=="idle"&&(T==="running"?O.requestId=Object(l.requestAnimationFrame)(x):(T==="paused"||T==="pending"&&O.timeline.currentTime<0)&&O.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(l.requestAnimationFrame)(x)}))})})}cancel(O=!1){Object(l.cancelAnimationFrame)(this.requestId),O?(this.setter(this.frame,this.target),super.cancel()):(super.cancel(),this.setter(this.frame,this.target))}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.Timeline=r.Effects=r.Easings=r.Animator=void 0;var e=t(75),n=p(e),s=t(187),l=p(s),o=t(188),i=t(190),f=p(i);function p(c){return c&&c.__esModule?c:{default:c}}r.Animator=f.default,r.Easings=o.Easings,r.Effects=l.default,r.Timeline=n.default},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(76),n=a(e),s=t(133),l=a(s),o=t(141),i=a(o),f=t(164),p=a(f),c=t(170),m=a(c),y=t(171),O=a(y),x=t(175),v=a(x),T=t(186);function a(D){return D&&D.__esModule?D:{default:D}}var h=(0,T.createNowTime)(),u={originTime:0,playbackRate:1},g=(0,v.default)("timeMark"),M=(0,v.default)("playbackRate"),A=(0,v.default)("timers"),I=(0,v.default)("originTime"),b=(0,v.default)("setTimer"),E=(0,v.default)("parent"),L=function(){function D(R,C){(0,m.default)(this,D),R instanceof D&&(C=R,R={}),R=(0,p.default)({},u,R),C&&(this[E]=C);var B=R.nowtime||h;if(C)Object.defineProperty(this,"globalTime",{get:function(){return C.currentTime}});else{var z=B();Object.defineProperty(this,"globalTime",{get:function(){return B()-z}})}this[g]=[{globalTime:this.globalTime,localTime:-R.originTime,entropy:-R.originTime,playbackRate:R.playbackRate,globalEntropy:0}],this[E]&&(this[g][0].globalEntropy=this[E].entropy),this[I]=R.originTime,this[M]=R.playbackRate,this[A]=new i.default}return(0,O.default)(D,[{key:"markTime",value:function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},B=C.time,z=B===void 0?this.currentTime:B,H=C.entropy,X=H===void 0?this.entropy:H,Z=C.playbackRate,j=Z===void 0?this.playbackRate:Z,G={globalTime:this.globalTime,localTime:z,entropy:X,playbackRate:j,globalEntropy:this.globalEntropy};this[g].push(G)}},{key:"fork",value:function(C){return new D(C,this)}},{key:"seekGlobalTime",value:function(C){var B=this.seekTimeMark(C),z=this[g][B],H=z.entropy,X=z.playbackRate,Z=z.globalTime;return Z+(C-H)/Math.abs(X)}},{key:"seekLocalTime",value:function(C){var B=this.seekTimeMark(C),z=this[g][B],H=z.localTime,X=z.entropy,Z=z.playbackRate;return Z>0?H+(C-X):H-(C-X)}},{key:"seekTimeMark",value:function(C){var B=this[g],z=0,H=B.length-1;if(C<=B[z].entropy)return z;if(C>=B[H].entropy)return H;for(var X=Math.floor((z+H)/2);X>z&&X<H;){if(C===B[X].entropy)return X;C<B[X].entropy?H=X:C>B[X].entropy&&(z=X),X=Math.floor((z+H)/2)}return z}},{key:"updateTimers",value:function(){var C=this,B=[].concat((0,l.default)(this[A]));B.forEach(function(z){var H=(0,n.default)(z,2),X=H[0],Z=H[1];C[b](Z.handler,Z.time,X)})}},{key:"clearTimeout",value:function(R){function C(B){return R.apply(this,arguments)}return C.toString=function(){return R.toString()},C}(function(R){var C=this[A].get(R);C&&C.timerID!=null&&(this[E]?this[E].clearTimeout(C.timerID):clearTimeout(C.timerID)),this[A].delete(R)})},{key:"clearInterval",value:function(C){return this.clearTimeout(C)}},{key:"clear",value:function(){var C=this,B=this[A];[].concat((0,l.default)(B.keys())).forEach(function(z){C.clearTimeout(z)})}},{key:"setTimeout",value:function(C){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0};return this[b](C,B)}},{key:"setInterval",value:function(C){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0},z=this,H=this[b](function X(){z[b](X,B,H),C()},B);return H}},{key:b,value:function(C,B){var z=this,H=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(0,v.default)("timerID");B=(0,T.formatDelay)(B);var X=this[A].get(H),Z=void 0,j=null,G=void 0,Q=void 0;X?(this.clearTimeout(H),B.isEntropy?Z=(B.delay-(this.entropy-X.startEntropy))/Math.abs(this.playbackRate):Z=(B.delay-(this.currentTime-X.startTime))/this.playbackRate,G=X.startTime,Q=X.startEntropy):(Z=B.delay/(B.isEntropy?Math.abs(this.playbackRate):this.playbackRate),G=this.currentTime,Q=this.entropy);var tt=this[E],et=tt?tt.setTimeout.bind(tt):setTimeout,at=B.heading;return!tt&&at===!1&&Z<0&&(Z=1/0),(isFinite(Z)||tt)&&(Z=Math.ceil(Z),et!==setTimeout&&(Z={delay:Z,heading:at}),j=et(function(){z[A].delete(H),C()},Z)),this[A].set(H,{timerID:j,handler:C,time:B,startTime:G,startEntropy:Q}),H}},{key:"parent",get:function(){return this[E]}},{key:"lastTimeMark",get:function(){return this[g][this[g].length-1]}},{key:"currentTime",get:function(){var C=this.lastTimeMark,B=C.localTime,z=C.globalTime;return B+(this.globalTime-z)*this.playbackRate},set:function(C){var B=this,z=this.currentTime,H=C,X=this[A];this.markTime({time:C}),[].concat((0,l.default)(X)).forEach(function(Z){var j=(0,n.default)(Z,2),G=j[0],Q=j[1];if(X.has(G)){var tt=Q.time,et=tt.isEntropy,at=tt.delay,q=tt.heading,pt=Q.handler,dt=Q.startTime;if(et)at===0&&(pt(),B.clearTimeout(G));else{var W=dt+at;(at===0||q!==!1&&(H-z)*at<=0||z<=W&&W<=H||z>=W&&W>=H)&&(pt(),B.clearTimeout(G))}}}),this.updateTimers()}},{key:"entropy",get:function(){var C=this.lastTimeMark,B=C.entropy,z=C.globalEntropy;return B+Math.abs((this.globalEntropy-z)*this.playbackRate)},set:function(C){if(this.entropy>C){var B=this.seekTimeMark(C);this[g].length=B+1}this.markTime({entropy:C}),this.updateTimers()}},{key:"globalEntropy",get:function(){return this[E]?this[E].entropy:this.globalTime}},{key:"playbackRate",get:function(){return this[M]},set:function(C){C!==this.playbackRate&&(this.markTime({playbackRate:C}),this[M]=C,this.updateTimers())}},{key:"paused",get:function(){if(this.playbackRate===0)return!0;for(var C=this.parent;C;){if(C.playbackRate===0)return!0;C=C.parent}return!1}}]),D}();r.default=L},function(d,r,t){r.__esModule=!0;var e=t(77),n=o(e),s=t(129),l=o(s);function o(i){return i&&i.__esModule?i:{default:i}}r.default=function(){function i(f,p){var c=[],m=!0,y=!1,O=void 0;try{for(var x=(0,l.default)(f),v;!(m=(v=x.next()).done)&&(c.push(v.value),!(p&&c.length===p));m=!0);}catch(T){y=!0,O=T}finally{try{!m&&x.return&&x.return()}finally{if(y)throw O}}return c}return function(f,p){if(Array.isArray(f))return f;if((0,n.default)(Object(f)))return i(f,p);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(d,r,t){d.exports={default:t(78),__esModule:!0}},function(d,r,t){t(79),t(125),d.exports=t(127)},function(d,r,t){t(80);for(var e=t(91),n=t(95),s=t(83),l=t(122)("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),i=0;i<o.length;i++){var f=o[i],p=e[f],c=p&&p.prototype;c&&!c[l]&&n(c,l,f),s[f]=s.Array}},function(d,r,t){var e=t(81),n=t(82),s=t(83),l=t(84);d.exports=t(88)(Array,"Array",function(o,i){this._t=l(o),this._i=0,this._k=i},function(){var o=this._t,i=this._k,f=this._i++;return!o||f>=o.length?(this._t=void 0,n(1)):i=="keys"?n(0,f):i=="values"?n(0,o[f]):n(0,[f,o[f]])},"values"),s.Arguments=s.Array,e("keys"),e("values"),e("entries")},function(d,r){d.exports=function(){}},function(d,r){d.exports=function(t,e){return{value:e,done:!!t}}},function(d,r){d.exports={}},function(d,r,t){var e=t(85),n=t(87);d.exports=function(s){return e(n(s))}},function(d,r,t){var e=t(86);d.exports=Object("z").propertyIsEnumerable(0)?Object:function(n){return e(n)=="String"?n.split(""):Object(n)}},function(d,r){var t={}.toString;d.exports=function(e){return t.call(e).slice(8,-1)}},function(d,r){d.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(d,r,t){var e=t(89),n=t(90),s=t(106),l=t(95),o=t(83),i=t(107),f=t(121),p=t(123),c=t(122)("iterator"),m=!([].keys&&"next"in[].keys()),y="@@iterator",O="keys",x="values",v=function(){return this};d.exports=function(T,a,h,u,g,M,A){i(h,a,u);var I=function(j){if(!m&&j in D)return D[j];switch(j){case O:return function(){return new h(this,j)};case x:return function(){return new h(this,j)}}return function(){return new h(this,j)}},b=a+" Iterator",E=g==x,L=!1,D=T.prototype,R=D[c]||D[y]||g&&D[g],C=R||I(g),B=g?E?I("entries"):C:void 0,z=a=="Array"&&D.entries||R,H,X,Z;if(z&&(Z=p(z.call(new T)),Z!==Object.prototype&&Z.next&&(f(Z,b,!0),!e&&typeof Z[c]!="function"&&l(Z,c,v))),E&&R&&R.name!==x&&(L=!0,C=function(){return R.call(this)}),(!e||A)&&(m||L||!D[c])&&l(D,c,C),o[a]=C,o[b]=v,g)if(H={values:E?C:I(x),keys:M?C:I(O),entries:B},A)for(X in H)X in D||s(D,X,H[X]);else n(n.P+n.F*(m||L),a,H);return H}},function(d,r){d.exports=!0},function(d,r,t){var e=t(91),n=t(92),s=t(93),l=t(95),o=t(105),i="prototype",f=function(p,c,m){var y=p&f.F,O=p&f.G,x=p&f.S,v=p&f.P,T=p&f.B,a=p&f.W,h=O?n:n[c]||(n[c]={}),u=h[i],g=O?e:x?e[c]:(e[c]||{})[i],M,A,I;O&&(m=c);for(M in m)A=!y&&g&&g[M]!==void 0,!(A&&o(h,M))&&(I=A?g[M]:m[M],h[M]=O&&typeof g[M]!="function"?m[M]:T&&A?s(I,e):a&&g[M]==I?function(b){var E=function(L,D,R){if(this instanceof b){switch(arguments.length){case 0:return new b;case 1:return new b(L);case 2:return new b(L,D)}return new b(L,D,R)}return b.apply(this,arguments)};return E[i]=b[i],E}(I):v&&typeof I=="function"?s(Function.call,I):I,v&&((h.virtual||(h.virtual={}))[M]=I,p&f.R&&u&&!u[M]&&l(u,M,I)))};f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,d.exports=f},function(d,r){var t=d.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(d,r){var t=d.exports={version:"2.6.11"};typeof __e=="number"&&(__e=t)},function(d,r,t){var e=t(94);d.exports=function(n,s,l){if(e(n),s===void 0)return n;switch(l){case 1:return function(o){return n.call(s,o)};case 2:return function(o,i){return n.call(s,o,i)};case 3:return function(o,i,f){return n.call(s,o,i,f)}}return function(){return n.apply(s,arguments)}}},function(d,r){d.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(d,r,t){var e=t(96),n=t(104);d.exports=t(100)?function(s,l,o){return e.f(s,l,n(1,o))}:function(s,l,o){return s[l]=o,s}},function(d,r,t){var e=t(97),n=t(99),s=t(103),l=Object.defineProperty;r.f=t(100)?Object.defineProperty:function(i,f,p){if(e(i),f=s(f,!0),e(p),n)try{return l(i,f,p)}catch{}if("get"in p||"set"in p)throw TypeError("Accessors not supported!");return"value"in p&&(i[f]=p.value),i}},function(d,r,t){var e=t(98);d.exports=function(n){if(!e(n))throw TypeError(n+" is not an object!");return n}},function(d,r){d.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(d,r,t){d.exports=!t(100)&&!t(101)(function(){return Object.defineProperty(t(102)("div"),"a",{get:function(){return 7}}).a!=7})},function(d,r,t){d.exports=!t(101)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(d,r){d.exports=function(t){try{return!!t()}catch{return!0}}},function(d,r,t){var e=t(98),n=t(91).document,s=e(n)&&e(n.createElement);d.exports=function(l){return s?n.createElement(l):{}}},function(d,r,t){var e=t(98);d.exports=function(n,s){if(!e(n))return n;var l,o;if(s&&typeof(l=n.toString)=="function"&&!e(o=l.call(n))||typeof(l=n.valueOf)=="function"&&!e(o=l.call(n))||!s&&typeof(l=n.toString)=="function"&&!e(o=l.call(n)))return o;throw TypeError("Can't convert object to primitive value")}},function(d,r){d.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}},function(d,r){var t={}.hasOwnProperty;d.exports=function(e,n){return t.call(e,n)}},function(d,r,t){d.exports=t(95)},function(d,r,t){var e=t(108),n=t(104),s=t(121),l={};t(95)(l,t(122)("iterator"),function(){return this}),d.exports=function(o,i,f){o.prototype=e(l,{next:n(1,f)}),s(o,i+" Iterator")}},function(d,r,t){var e=t(97),n=t(109),s=t(119),l=t(116)("IE_PROTO"),o=function(){},i="prototype",f=function(){var p=t(102)("iframe"),c=s.length,m="<",y=">",O;for(p.style.display="none",t(120).appendChild(p),p.src="javascript:",O=p.contentWindow.document,O.open(),O.write(m+"script"+y+"document.F=Object"+m+"/script"+y),O.close(),f=O.F;c--;)delete f[i][s[c]];return f()};d.exports=Object.create||function(c,m){var y;return c!==null?(o[i]=e(c),y=new o,o[i]=null,y[l]=c):y=f(),m===void 0?y:n(y,m)}},function(d,r,t){var e=t(96),n=t(97),s=t(110);d.exports=t(100)?Object.defineProperties:function(o,i){n(o);for(var f=s(i),p=f.length,c=0,m;p>c;)e.f(o,m=f[c++],i[m]);return o}},function(d,r,t){var e=t(111),n=t(119);d.exports=Object.keys||function(l){return e(l,n)}},function(d,r,t){var e=t(105),n=t(84),s=t(112)(!1),l=t(116)("IE_PROTO");d.exports=function(o,i){var f=n(o),p=0,c=[],m;for(m in f)m!=l&&e(f,m)&&c.push(m);for(;i.length>p;)e(f,m=i[p++])&&(~s(c,m)||c.push(m));return c}},function(d,r,t){var e=t(84),n=t(113),s=t(115);d.exports=function(l){return function(o,i,f){var p=e(o),c=n(p.length),m=s(f,c),y;if(l&&i!=i){for(;c>m;)if(y=p[m++],y!=y)return!0}else for(;c>m;m++)if((l||m in p)&&p[m]===i)return l||m||0;return!l&&-1}}},function(d,r,t){var e=t(114),n=Math.min;d.exports=function(s){return s>0?n(e(s),9007199254740991):0}},function(d,r){var t=Math.ceil,e=Math.floor;d.exports=function(n){return isNaN(n=+n)?0:(n>0?e:t)(n)}},function(d,r,t){var e=t(114),n=Math.max,s=Math.min;d.exports=function(l,o){return l=e(l),l<0?n(l+o,0):s(l,o)}},function(d,r,t){var e=t(117)("keys"),n=t(118);d.exports=function(s){return e[s]||(e[s]=n(s))}},function(d,r,t){var e=t(92),n=t(91),s="__core-js_shared__",l=n[s]||(n[s]={});(d.exports=function(o,i){return l[o]||(l[o]=i!==void 0?i:{})})("versions",[]).push({version:e.version,mode:t(89)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(d,r){var t=0,e=Math.random();d.exports=function(n){return"Symbol(".concat(n===void 0?"":n,")_",(++t+e).toString(36))}},function(d,r){d.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(d,r,t){var e=t(91).document;d.exports=e&&e.documentElement},function(d,r,t){var e=t(96).f,n=t(105),s=t(122)("toStringTag");d.exports=function(l,o,i){l&&!n(l=i?l:l.prototype,s)&&e(l,s,{configurable:!0,value:o})}},function(d,r,t){var e=t(117)("wks"),n=t(118),s=t(91).Symbol,l=typeof s=="function",o=d.exports=function(i){return e[i]||(e[i]=l&&s[i]||(l?s:n)("Symbol."+i))};o.store=e},function(d,r,t){var e=t(105),n=t(124),s=t(116)("IE_PROTO"),l=Object.prototype;d.exports=Object.getPrototypeOf||function(o){return o=n(o),e(o,s)?o[s]:typeof o.constructor=="function"&&o instanceof o.constructor?o.constructor.prototype:o instanceof Object?l:null}},function(d,r,t){var e=t(87);d.exports=function(n){return Object(e(n))}},function(d,r,t){var e=t(126)(!0);t(88)(String,"String",function(n){this._t=String(n),this._i=0},function(){var n=this._t,s=this._i,l;return s>=n.length?{value:void 0,done:!0}:(l=e(n,s),this._i+=l.length,{value:l,done:!1})})},function(d,r,t){var e=t(114),n=t(87);d.exports=function(s){return function(l,o){var i=String(n(l)),f=e(o),p=i.length,c,m;return f<0||f>=p?s?"":void 0:(c=i.charCodeAt(f),c<55296||c>56319||f+1===p||(m=i.charCodeAt(f+1))<56320||m>57343?s?i.charAt(f):c:s?i.slice(f,f+2):(c-55296<<10)+(m-56320)+65536)}}},function(d,r,t){var e=t(128),n=t(122)("iterator"),s=t(83);d.exports=t(92).isIterable=function(l){var o=Object(l);return o[n]!==void 0||"@@iterator"in o||s.hasOwnProperty(e(o))}},function(d,r,t){var e=t(86),n=t(122)("toStringTag"),s=e(function(){return arguments}())=="Arguments",l=function(o,i){try{return o[i]}catch{}};d.exports=function(o){var i,f,p;return o===void 0?"Undefined":o===null?"Null":typeof(f=l(i=Object(o),n))=="string"?f:s?e(i):(p=e(i))=="Object"&&typeof i.callee=="function"?"Arguments":p}},function(d,r,t){d.exports={default:t(130),__esModule:!0}},function(d,r,t){t(79),t(125),d.exports=t(131)},function(d,r,t){var e=t(97),n=t(132);d.exports=t(92).getIterator=function(s){var l=n(s);if(typeof l!="function")throw TypeError(s+" is not iterable!");return e(l.call(s))}},function(d,r,t){var e=t(128),n=t(122)("iterator"),s=t(83);d.exports=t(92).getIteratorMethod=function(l){if(l!=null)return l[n]||l["@@iterator"]||s[e(l)]}},function(d,r,t){r.__esModule=!0;var e=t(134),n=s(e);function s(l){return l&&l.__esModule?l:{default:l}}r.default=function(l){if(Array.isArray(l)){for(var o=0,i=Array(l.length);o<l.length;o++)i[o]=l[o];return i}else return(0,n.default)(l)}},function(d,r,t){d.exports={default:t(135),__esModule:!0}},function(d,r,t){t(125),t(136),d.exports=t(92).Array.from},function(d,r,t){var e=t(93),n=t(90),s=t(124),l=t(137),o=t(138),i=t(113),f=t(139),p=t(132);n(n.S+n.F*!t(140)(function(c){Array.from(c)}),"Array",{from:function(m){var y=s(m),O=typeof this=="function"?this:Array,x=arguments.length,v=x>1?arguments[1]:void 0,T=v!==void 0,a=0,h=p(y),u,g,M,A;if(T&&(v=e(v,x>2?arguments[2]:void 0,2)),h!=null&&!(O==Array&&o(h)))for(A=h.call(y),g=new O;!(M=A.next()).done;a++)f(g,a,T?l(A,v,[M.value,a],!0):M.value);else for(u=i(y.length),g=new O(u);u>a;a++)f(g,a,T?v(y[a],a):y[a]);return g.length=a,g}})},function(d,r,t){var e=t(97);d.exports=function(n,s,l,o){try{return o?s(e(l)[0],l[1]):s(l)}catch(f){var i=n.return;throw i!==void 0&&e(i.call(n)),f}}},function(d,r,t){var e=t(83),n=t(122)("iterator"),s=Array.prototype;d.exports=function(l){return l!==void 0&&(e.Array===l||s[n]===l)}},function(d,r,t){var e=t(96),n=t(104);d.exports=function(s,l,o){l in s?e.f(s,l,n(0,o)):s[l]=o}},function(d,r,t){var e=t(122)("iterator"),n=!1;try{var s=[7][e]();s.return=function(){n=!0},Array.from(s,function(){throw 2})}catch{}d.exports=function(l,o){if(!o&&!n)return!1;var i=!1;try{var f=[7],p=f[e]();p.next=function(){return{done:i=!0}},f[e]=function(){return p},l(f)}catch{}return i}},function(d,r,t){d.exports={default:t(142),__esModule:!0}},function(d,r,t){t(143),t(125),t(79),t(144),t(157),t(160),t(162),d.exports=t(92).Map},function(d,r){},function(d,r,t){var e=t(145),n=t(151),s="Map";d.exports=t(152)(s,function(l){return function(){return l(this,arguments.length>0?arguments[0]:void 0)}},{get:function(o){var i=e.getEntry(n(this,s),o);return i&&i.v},set:function(o,i){return e.def(n(this,s),o===0?0:o,i)}},e,!0)},function(d,r,t){var e=t(96).f,n=t(108),s=t(146),l=t(93),o=t(147),i=t(148),f=t(88),p=t(82),c=t(149),m=t(100),y=t(150).fastKey,O=t(151),x=m?"_s":"size",v=function(T,a){var h=y(a),u;if(h!=="F")return T._i[h];for(u=T._f;u;u=u.n)if(u.k==a)return u};d.exports={getConstructor:function(T,a,h,u){var g=T(function(M,A){o(M,g,a,"_i"),M._t=a,M._i=n(null),M._f=void 0,M._l=void 0,M[x]=0,A!=null&&i(A,h,M[u],M)});return s(g.prototype,{clear:function(){for(var A=O(this,a),I=A._i,b=A._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=void 0),delete I[b.i];A._f=A._l=void 0,A[x]=0},delete:function(M){var A=O(this,a),I=v(A,M);if(I){var b=I.n,E=I.p;delete A._i[I.i],I.r=!0,E&&(E.n=b),b&&(b.p=E),A._f==I&&(A._f=b),A._l==I&&(A._l=E),A[x]--}return!!I},forEach:function(A){O(this,a);for(var I=l(A,arguments.length>1?arguments[1]:void 0,3),b;b=b?b.n:this._f;)for(I(b.v,b.k,this);b&&b.r;)b=b.p},has:function(A){return!!v(O(this,a),A)}}),m&&e(g.prototype,"size",{get:function(){return O(this,a)[x]}}),g},def:function(T,a,h){var u=v(T,a),g,M;return u?u.v=h:(T._l=u={i:M=y(a,!0),k:a,v:h,p:g=T._l,n:void 0,r:!1},T._f||(T._f=u),g&&(g.n=u),T[x]++,M!=="F"&&(T._i[M]=u)),T},getEntry:v,setStrong:function(T,a,h){f(T,a,function(u,g){this._t=O(u,a),this._k=g,this._l=void 0},function(){for(var u=this,g=u._k,M=u._l;M&&M.r;)M=M.p;return!u._t||!(u._l=M=M?M.n:u._t._f)?(u._t=void 0,p(1)):g=="keys"?p(0,M.k):g=="values"?p(0,M.v):p(0,[M.k,M.v])},h?"entries":"values",!h,!0),c(a)}}},function(d,r,t){var e=t(95);d.exports=function(n,s,l){for(var o in s)l&&n[o]?n[o]=s[o]:e(n,o,s[o]);return n}},function(d,r){d.exports=function(t,e,n,s){if(!(t instanceof e)||s!==void 0&&s in t)throw TypeError(n+": incorrect invocation!");return t}},function(d,c,t){var e=t(93),n=t(137),s=t(138),l=t(97),o=t(113),i=t(132),f={},p={},c=d.exports=function(m,y,O,x,v){var T=v?function(){return m}:i(m),a=e(O,x,y?2:1),h=0,u,g,M,A;if(typeof T!="function")throw TypeError(m+" is not iterable!");if(s(T)){for(u=o(m.length);u>h;h++)if(A=y?a(l(g=m[h])[0],g[1]):a(m[h]),A===f||A===p)return A}else for(M=T.call(m);!(g=M.next()).done;)if(A=n(M,a,g.value,y),A===f||A===p)return A};c.BREAK=f,c.RETURN=p},function(d,r,t){var e=t(91),n=t(92),s=t(96),l=t(100),o=t(122)("species");d.exports=function(i){var f=typeof n[i]=="function"?n[i]:e[i];l&&f&&!f[o]&&s.f(f,o,{configurable:!0,get:function(){return this}})}},function(d,r,t){var e=t(118)("meta"),n=t(98),s=t(105),l=t(96).f,o=0,i=Object.isExtensible||function(){return!0},f=!t(101)(function(){return i(Object.preventExtensions({}))}),p=function(x){l(x,e,{value:{i:"O"+ ++o,w:{}}})},c=function(x,v){if(!n(x))return typeof x=="symbol"?x:(typeof x=="string"?"S":"P")+x;if(!s(x,e)){if(!i(x))return"F";if(!v)return"E";p(x)}return x[e].i},m=function(x,v){if(!s(x,e)){if(!i(x))return!0;if(!v)return!1;p(x)}return x[e].w},y=function(x){return f&&O.NEED&&i(x)&&!s(x,e)&&p(x),x},O=d.exports={KEY:e,NEED:!1,fastKey:c,getWeak:m,onFreeze:y}},function(d,r,t){var e=t(98);d.exports=function(n,s){if(!e(n)||n._t!==s)throw TypeError("Incompatible receiver, "+s+" required!");return n}},function(d,r,t){var e=t(91),n=t(90),s=t(150),l=t(101),o=t(95),i=t(146),f=t(148),p=t(147),c=t(98),m=t(121),y=t(96).f,O=t(153)(0),x=t(100);d.exports=function(v,T,a,h,u,g){var M=e[v],A=M,I=u?"set":"add",b=A&&A.prototype,E={};return!x||typeof A!="function"||!(g||b.forEach&&!l(function(){new A().entries().next()}))?(A=h.getConstructor(T,v,u,I),i(A.prototype,a),s.NEED=!0):(A=T(function(L,D){p(L,A,v,"_c"),L._c=new M,D!=null&&f(D,u,L[I],L)}),O("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(L){var D=L=="add"||L=="set";L in b&&!(g&&L=="clear")&&o(A.prototype,L,function(R,C){if(p(this,A,L),!D&&g&&!c(R))return L=="get"?void 0:!1;var B=this._c[L](R===0?0:R,C);return D?this:B})}),g||y(A.prototype,"size",{get:function(){return this._c.size}})),m(A,v),E[v]=A,n(n.G+n.W+n.F,E),g||h.setStrong(A,v,u),A}},function(d,r,t){var e=t(93),n=t(85),s=t(124),l=t(113),o=t(154);d.exports=function(i,f){var p=i==1,c=i==2,m=i==3,y=i==4,O=i==6,x=i==5||O,v=f||o;return function(T,a,h){for(var u=s(T),g=n(u),M=e(a,h,3),A=l(g.length),I=0,b=p?v(T,A):c?v(T,0):void 0,E,L;A>I;I++)if((x||I in g)&&(E=g[I],L=M(E,I,u),i)){if(p)b[I]=L;else if(L)switch(i){case 3:return!0;case 5:return E;case 6:return I;case 2:b.push(E)}else if(y)return!1}return O?-1:m||y?y:b}}},function(d,r,t){var e=t(155);d.exports=function(n,s){return new(e(n))(s)}},function(d,r,t){var e=t(98),n=t(156),s=t(122)("species");d.exports=function(l){var o;return n(l)&&(o=l.constructor,typeof o=="function"&&(o===Array||n(o.prototype))&&(o=void 0),e(o)&&(o=o[s],o===null&&(o=void 0))),o===void 0?Array:o}},function(d,r,t){var e=t(86);d.exports=Array.isArray||function(s){return e(s)=="Array"}},function(d,r,t){var e=t(90);e(e.P+e.R,"Map",{toJSON:t(158)("Map")})},function(d,r,t){var e=t(128),n=t(159);d.exports=function(s){return function(){if(e(this)!=s)throw TypeError(s+"#toJSON isn't generic");return n(this)}}},function(d,r,t){var e=t(148);d.exports=function(n,s){var l=[];return e(n,!1,l.push,l,s),l}},function(d,r,t){t(161)("Map")},function(d,r,t){var e=t(90);d.exports=function(n){e(e.S,n,{of:function(){for(var l=arguments.length,o=new Array(l);l--;)o[l]=arguments[l];return new this(o)}})}},function(d,r,t){t(163)("Map")},function(d,r,t){var e=t(90),n=t(94),s=t(93),l=t(148);d.exports=function(o){e(e.S,o,{from:function(f){var p=arguments[1],c,m,y,O;return n(this),c=p!==void 0,c&&n(p),f==null?new this:(m=[],c?(y=0,O=s(p,arguments[2],2),l(f,!1,function(x){m.push(O(x,y++))})):l(f,!1,m.push,m),new this(m))}})}},function(d,r,t){d.exports={default:t(165),__esModule:!0}},function(d,r,t){t(166),d.exports=t(92).Object.assign},function(d,r,t){var e=t(90);e(e.S+e.F,"Object",{assign:t(167)})},function(d,r,t){var e=t(100),n=t(110),s=t(168),l=t(169),o=t(124),i=t(85),f=Object.assign;d.exports=!f||t(101)(function(){var p={},c={},m=Symbol(),y="abcdefghijklmnopqrst";return p[m]=7,y.split("").forEach(function(O){c[O]=O}),f({},p)[m]!=7||Object.keys(f({},c)).join("")!=y})?function(c,m){for(var y=o(c),O=arguments.length,x=1,v=s.f,T=l.f;O>x;)for(var a=i(arguments[x++]),h=v?n(a).concat(v(a)):n(a),u=h.length,g=0,M;u>g;)M=h[g++],(!e||T.call(a,M))&&(y[M]=a[M]);return y}:f},function(d,r){r.f=Object.getOwnPropertySymbols},function(d,r){r.f={}.propertyIsEnumerable},function(d,r,t){r.__esModule=!0,r.default=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}},function(d,r,t){r.__esModule=!0;var e=t(172),n=s(e);function s(l){return l&&l.__esModule?l:{default:l}}r.default=function(){function l(o,i){for(var f=0;f<i.length;f++){var p=i[f];p.enumerable=p.enumerable||!1,p.configurable=!0,"value"in p&&(p.writable=!0),(0,n.default)(o,p.key,p)}}return function(o,i,f){return i&&l(o.prototype,i),f&&l(o,f),o}}()},function(d,r,t){d.exports={default:t(173),__esModule:!0}},function(d,r,t){t(174);var e=t(92).Object;d.exports=function(s,l,o){return e.defineProperty(s,l,o)}},function(d,r,t){var e=t(90);e(e.S+e.F*!t(100),"Object",{defineProperty:t(96).f})},function(d,r,t){d.exports={default:t(176),__esModule:!0}},function(d,r,t){t(177),t(143),t(184),t(185),d.exports=t(92).Symbol},function(d,r,t){var e=t(91),n=t(105),s=t(100),l=t(90),o=t(106),i=t(150).KEY,f=t(101),p=t(117),c=t(121),m=t(118),y=t(122),O=t(178),x=t(179),v=t(180),T=t(156),a=t(97),h=t(98),u=t(124),g=t(84),M=t(103),A=t(104),I=t(108),b=t(181),E=t(183),L=t(168),D=t(96),R=t(110),C=E.f,B=D.f,z=b.f,H=e.Symbol,X=e.JSON,Z=X&&X.stringify,j="prototype",G=y("_hidden"),Q=y("toPrimitive"),tt={}.propertyIsEnumerable,et=p("symbol-registry"),at=p("symbols"),q=p("op-symbols"),pt=Object[j],dt=typeof H=="function"&&!!L.f,W=e.QObject,F=!W||!W[j]||!W[j].findChild,V=s&&f(function(){return I(B({},"a",{get:function(){return B(this,"a",{value:7}).a}})).a!=7})?function(ot,st,ft){var mt=C(pt,st);mt&&delete pt[st],B(ot,st,ft),mt&&ot!==pt&&B(pt,st,mt)}:B,J=function(ot){var st=at[ot]=I(H[j]);return st._k=ot,st},N=dt&&typeof H.iterator=="symbol"?function(ot){return typeof ot=="symbol"}:function(ot){return ot instanceof H},$=function(st,ft,mt){return st===pt&&$(q,ft,mt),a(st),ft=M(ft,!0),a(mt),n(at,ft)?(mt.enumerable?(n(st,G)&&st[G][ft]&&(st[G][ft]=!1),mt=I(mt,{enumerable:A(0,!1)})):(n(st,G)||B(st,G,A(1,{})),st[G][ft]=!0),V(st,ft,mt)):B(st,ft,mt)},S=function(st,ft){a(st);for(var mt=v(ft=g(ft)),vt=0,gt=mt.length,St;gt>vt;)$(st,St=mt[vt++],ft[St]);return st},P=function(st,ft){return ft===void 0?I(st):S(I(st),ft)},w=function(st){var ft=tt.call(this,st=M(st,!0));return this===pt&&n(at,st)&&!n(q,st)?!1:ft||!n(this,st)||!n(at,st)||n(this,G)&&this[G][st]?ft:!0},U=function(st,ft){if(st=g(st),ft=M(ft,!0),!(st===pt&&n(at,ft)&&!n(q,ft))){var mt=C(st,ft);return mt&&n(at,ft)&&!(n(st,G)&&st[G][ft])&&(mt.enumerable=!0),mt}},K=function(st){for(var ft=z(g(st)),mt=[],vt=0,gt;ft.length>vt;)!n(at,gt=ft[vt++])&&gt!=G&&gt!=i&&mt.push(gt);return mt},Y=function(st){for(var ft=st===pt,mt=z(ft?q:g(st)),vt=[],gt=0,St;mt.length>gt;)n(at,St=mt[gt++])&&(!ft||n(pt,St))&&vt.push(at[St]);return vt};dt||(H=function(){if(this instanceof H)throw TypeError("Symbol is not a constructor!");var st=m(arguments.length>0?arguments[0]:void 0),ft=function(mt){this===pt&&ft.call(q,mt),n(this,G)&&n(this[G],st)&&(this[G][st]=!1),V(this,st,A(1,mt))};return s&&F&&V(pt,st,{configurable:!0,set:ft}),J(st)},o(H[j],"toString",function(){return this._k}),E.f=U,D.f=$,t(182).f=b.f=K,t(169).f=w,L.f=Y,s&&!t(89)&&o(pt,"propertyIsEnumerable",w,!0),O.f=function(ot){return J(y(ot))}),l(l.G+l.W+l.F*!dt,{Symbol:H});for(var k="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;k.length>rt;)y(k[rt++]);for(var it=R(y.store),lt=0;it.length>lt;)x(it[lt++]);l(l.S+l.F*!dt,"Symbol",{for:function(ot){return n(et,ot+="")?et[ot]:et[ot]=H(ot)},keyFor:function(st){if(!N(st))throw TypeError(st+" is not a symbol!");for(var ft in et)if(et[ft]===st)return ft},useSetter:function(){F=!0},useSimple:function(){F=!1}}),l(l.S+l.F*!dt,"Object",{create:P,defineProperty:$,defineProperties:S,getOwnPropertyDescriptor:U,getOwnPropertyNames:K,getOwnPropertySymbols:Y});var ut=f(function(){L.f(1)});l(l.S+l.F*ut,"Object",{getOwnPropertySymbols:function(st){return L.f(u(st))}}),X&&l(l.S+l.F*(!dt||f(function(){var ot=H();return Z([ot])!="[null]"||Z({a:ot})!="{}"||Z(Object(ot))!="{}"})),"JSON",{stringify:function(st){for(var ft=[st],mt=1,vt,gt;arguments.length>mt;)ft.push(arguments[mt++]);if(gt=vt=ft[1],!(!h(vt)&&st===void 0||N(st)))return T(vt)||(vt=function(St,It){if(typeof gt=="function"&&(It=gt.call(this,St,It)),!N(It))return It}),ft[1]=vt,Z.apply(X,ft)}}),H[j][Q]||t(95)(H[j],Q,H[j].valueOf),c(H,"Symbol"),c(Math,"Math",!0),c(e.JSON,"JSON",!0)},function(d,r,t){r.f=t(122)},function(d,r,t){var e=t(91),n=t(92),s=t(89),l=t(178),o=t(96).f;d.exports=function(i){var f=n.Symbol||(n.Symbol=s?{}:e.Symbol||{});i.charAt(0)!="_"&&!(i in f)&&o(f,i,{value:l.f(i)})}},function(d,r,t){var e=t(110),n=t(168),s=t(169);d.exports=function(l){var o=e(l),i=n.f;if(i)for(var f=i(l),p=s.f,c=0,m;f.length>c;)p.call(l,m=f[c++])&&o.push(m);return o}},function(d,r,t){var e=t(84),n=t(182).f,s={}.toString,l=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],o=function(i){try{return n(i)}catch{return l.slice()}};d.exports.f=function(f){return l&&s.call(f)=="[object Window]"?o(f):n(e(f))}},function(d,r,t){var e=t(111),n=t(119).concat("length","prototype");r.f=Object.getOwnPropertyNames||function(l){return e(l,n)}},function(d,r,t){var e=t(169),n=t(104),s=t(84),l=t(103),o=t(105),i=t(99),f=Object.getOwnPropertyDescriptor;r.f=t(100)?f:function(c,m){if(c=s(c),m=l(m,!0),i)try{return f(c,m)}catch{}if(o(c,m))return n(!e.f.call(c,m),c[m])}},function(d,r,t){t(179)("asyncIterator")},function(d,r,t){t(179)("observable")},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.createNowTime=e,r.formatDelay=n;function e(){var s=null;return Date.now?s=Date.now:s=function(){return new Date().getTime()},s}function n(s){return typeof s=="number"?s={delay:s}:"entropy"in s&&(s={delay:s.entropy,isEntropy:!0}),s}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.default={default:function(n,s,l,o,i){return typeof n=="number"&&typeof s=="number"?n+(l-o)/(i-o)*(s-n):l-o>i-l?s:n}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.parseEasing=r.Easings=void 0;var e=t(76),n=f(e),s=t(133),l=f(s),o=t(141),i=f(o);function f(T){return T&&T.__esModule?T:{default:T}}var p=t(189),c=new i.default;function m(){for(var T=arguments.length,a=Array(T),h=0;h<T;h++)a[h]=arguments[h];var u=c.get(a);return u||(u=p.apply(void 0,a),c.set(a,u),u)}function y(T){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"end";return function(h,u){for(var g=1;g<u.length;g++){var M=u[g].offset;if(h<=M){var A=u[g-1].offset,I=M,b=(h-A)/(I-A),E=1/T,L=b/E;return a==="end"?L=Math.floor(L):L=Math.ceil(L),E*L*(I-A)+A}}return 0}}function O(T){var a=/^cubic-bezier\((.*)\)/,h=T.match(a);if(h){var u=h[1].trim();return u=u.split(",").map(function(E){return parseFloat(E.trim())}),m.apply(void 0,(0,l.default)(u))}if(a=/^steps\((.*)\)/,h=T.match(a),h){var g=h[1].trim();g=g.split(",").map(function(E){return E.trim()});var M=g,A=(0,n.default)(M,2),I=A[0],b=A[1];return y(parseInt(I,10),b)}return T}var x={linear:function(a){return a},ease:m(.25,.1,.25,1),"ease-in":m(.42,0,1,1),"ease-out":m(0,0,.58,1),"ease-in-out":m(.42,0,.58,1),"step-start":y(1,"start"),"step-end":y(1,"end")};function v(T){return typeof T=="string"?x[T]?T=x[T]:T=O(T):T.type==="cubic-bezier"?T=m.apply(void 0,(0,l.default)(T.value)):T.type==="steps"&&(T=y(T.step,T.pos)),T}r.Easings=x,r.parseEasing=v},function(d,r){var t=4,e=.001,n=1e-7,s=10,l=11,o=1/(l-1),i=typeof Float32Array=="function";function f(T,a){return 1-3*a+3*T}function p(T,a){return 3*a-6*T}function c(T){return 3*T}function m(T,a,h){return((f(a,h)*T+p(a,h))*T+c(a))*T}function y(T,a,h){return 3*f(a,h)*T*T+2*p(a,h)*T+c(a)}function O(T,a,h,u,g){var M,A,I=0;do A=a+(h-a)/2,M=m(A,u,g)-T,M>0?h=A:a=A;while(Math.abs(M)>n&&++I<s);return A}function x(T,a,h,u){for(var g=0;g<t;++g){var M=y(a,h,u);if(M===0)return a;var A=m(a,h,u)-T;a-=A/M}return a}function v(T){return T}d.exports=function(a,h,u,g){if(!(0<=a&&a<=1&&0<=u&&u<=1))throw new Error("bezier x values must be in [0, 1] range");if(a===h&&u===g)return v;for(var M=i?new Float32Array(l):new Array(l),A=0;A<l;++A)M[A]=m(A*o,a,u);function I(b){for(var E=0,L=1,D=l-1;L!==D&&M[L]<=b;++L)E+=o;--L;var R=(b-M[L])/(M[L+1]-M[L]),C=E+R*o,B=y(C,a,u);return B>=e?x(b,C,a,u):B===0?C:O(b,E,E+o,a,u)}return function(E){return E===0?0:E===1?1:m(I(E),h,g)}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(191),n=h(e),s=t(204),l=h(s),o=t(164),i=h(o),f=t(170),p=h(f),c=t(171),m=h(c),y=t(175),O=h(y),x=t(75),v=h(x),T=t(208),a=t(188);function h(B){return B&&B.__esModule?B:{default:B}}var u=(0,O.default)("timing"),g=(0,O.default)("keyframes"),M=(0,O.default)("initState"),A=(0,O.default)("readyDefer"),I=(0,O.default)("finishedDefer"),b=(0,O.default)("effects"),E=(0,O.default)("activeReadyTimer"),L=(0,O.default)("activeFinishTimer"),D=(0,O.default)("removeDefer"),R={delay:0,endDelay:0,fill:"auto",iterations:1,playbackRate:1,direction:"normal",easing:"linear",effect:null},C=function(){function B(z,H,X){var Z=this;if((0,p.default)(this,B),Array.isArray(z)){var j=[z[0],z,H];z=j[0],H=j[1],X=j[2]}typeof X=="number"&&(X={duration:X}),this[u]=(0,i.default)({},R,X),this[u].easing=(0,a.parseEasing)(this[u].easing),this[g]=(0,T.calculateFramesOffset)(H);var G=this[g][this[g].length-1];this[M]={},(0,l.default)(G).forEach(function(Q){Object.prototype.hasOwnProperty.call(z,Q)&&Q!=="easing"&&Q!=="offset"&&(Z[M][Q]=z[Q])}),this[g]=this[g].map(function(Q){return(0,i.default)({},Z[M],Q)}),this[g][0].offset!==0&&this[g].unshift((0,i.default)({},this[M],{offset:0})),G.offset<1&&this[g].push((0,i.default)({},G,{offset:1})),this[b]={},this.timeline=null}return(0,m.default)(B,[{key:"pause",value:function(){this.timeline.playbackRate=0}},{key:E,value:function(){var H=this;this[A]&&!this[A].timerID&&(this.timeline.currentTime<0?this[A].timerID=this.timeline.setTimeout(function(){H[A].resolve(),delete H[A]},{delay:-this.timeline.currentTime,heading:!1}):this[A].timerID=this.timeline.setTimeout(function(){H[A].resolve(),delete H[A]},{delay:0,isEntropy:!0}))}},{key:L,value:function(){var H=this,X=this[u],Z=X.duration,j=X.iterations,G=X.endDelay,Q=Math.ceil(Z*j+G-this.timeline.currentTime)+1;this[I]&&!this[I].timerID&&(this[I].timerID=this.timeline.setTimeout(function(){H[I].resolve(),H[D](A),H[D](I)},{delay:Q,heading:!1}),this[I].reverseTimerID=this.timeline.setTimeout(function(){H[I].resolve(),H[D](A),H[D](I),H.timeline=null},{delay:-this[u].delay-1,heading:!1}))}},{key:"play",value:function(){if(this.playState==="finished"&&this.cancel(),this.playState==="idle"){if(this.playbackRate<=0)return;var H=this[u],X=H.delay,Z=H.playbackRate,j=H.timeline;this.timeline=new v.default({originTime:X,playbackRate:Z},j),this[E](),this[L]()}else this.playState==="paused"&&(this.timeline.playbackRate=this.playbackRate,this[E]())}},{key:D,value:function(H){var X=this[H],Z=this.timeline;X&&Z&&(Z.clearTimeout(X.timerID),X.reverseTimerID&&Z.clearTimeout(X.reverseTimerID)),delete this[H]}},{key:"cancel",value:function(){this[D](A),this[D](I),this.timeline=null}},{key:"finish",value:function(){this.timeline&&(this.timeline.currentTime=1/0/this.playbackRate),this[D](A),this[D](I)}},{key:"applyEffects",value:function(H){return(0,i.default)(this[b],H)}},{key:"playbackRate",get:function(){return this[u].playbackRate},set:function(H){this.timeline&&(this.timeline.playbackRate=H),this[u].playbackRate=H}},{key:"playState",get:function(){var H=this.timeline,X=this[u],Z=X.iterations,j=X.duration,G=X.endDelay,Q="running";if(H==null)Q="idle";else if(H.paused)Q="paused";else if(H.currentTime<0)Q="pending";else{var tt=H.currentTime-Z*j;tt>0&&tt<G?Q="pending":tt>=G&&(Q="finished")}return Q}},{key:"progress",get:function(){if(!this.timeline)return 0;var H=this[u],X=H.duration,Z=H.iterations,j=this.timeline,G=this.playState,Q=void 0;if(G==="idle")Q=0;else if(G==="paused"&&j.currentTime<0)Q=0;else if(G==="pending")if(j.currentTime<0)Q=0;else{var tt=j.seekLocalTime(Z*X);Q=(0,T.periodicity)(tt,X)[1]/X}else(G==="running"||G==="paused")&&(Q=(0,T.periodicity)(j.currentTime,X)[1]/X);return G==="finished"&&(Q=(0,T.periodicity)(Z,1)[1]),Q}},{key:"frame",get:function(){var H=this.playState,X=this[M],Z=this[u].fill;if(H==="idle")return X;var j=this.timeline.currentTime,G=this[g].slice(0),Q=(0,T.getProgress)(this.timeline,this[u],this.progress),tt=Q.p,et=Q.inverted,at=X;return j<0&&H==="pending"?(Z==="backwards"||Z==="both")&&(at=et?G[G.length-1]:G[0]):(H!=="pending"&&H!=="finished"||Z==="forwards"||Z==="both")&&(at=(0,T.getCurrentFrame)(this[u],G,this[b],tt)),at}},{key:"timing",get:function(){return this[u]}},{key:"effects",get:function(){return this[b]}},{key:"baseTimeline",set:function(H){this[u].timeline=H},get:function(){return this[u].timeline}},{key:"ready",get:function(){return this[A]?this[A].promise:this.timeline&&this.timeline.currentTime>=0&&this.playState!=="paused"?n.default.resolve():(this[A]=(0,T.defer)(),this.timeline&&this[E](),this[A]?this[A].promise:n.default.resolve())}},{key:"finished",get:function(){return this.playState==="finished"?n.default.resolve():(this[I]||(this[I]=(0,T.defer)(),this.timeline&&this[L]()),this[I].promise)}}]),B}();r.default=C},function(d,r,t){d.exports={default:t(192),__esModule:!0}},function(d,r,t){t(143),t(125),t(79),t(193),t(202),t(203),d.exports=t(92).Promise},function(d,r,t){var e=t(89),n=t(91),s=t(93),l=t(128),o=t(90),i=t(98),f=t(94),p=t(147),c=t(148),m=t(194),y=t(195).set,O=t(197)(),x=t(198),v=t(199),T=t(200),a=t(201),h="Promise",u=n.TypeError,g=n.process,M=g&&g.versions,A=M&&M.v8||"",I=n[h],b=l(g)=="process",E=function(){},L,D,R,C,B=D=x.f,z=!!function(){try{var et=I.resolve(1),at=(et.constructor={})[t(122)("species")]=function(q){q(E,E)};return(b||typeof PromiseRejectionEvent=="function")&&et.then(E)instanceof at&&A.indexOf("6.6")!==0&&T.indexOf("Chrome/66")===-1}catch{}}(),H=function(et){var at;return i(et)&&typeof(at=et.then)=="function"?at:!1},X=function(et,at){if(!et._n){et._n=!0;var q=et._c;O(function(){for(var pt=et._v,dt=et._s==1,W=0,F=function(V){var J=dt?V.ok:V.fail,N=V.resolve,$=V.reject,S=V.domain,P,w,U;try{J?(dt||(et._h==2&&G(et),et._h=1),J===!0?P=pt:(S&&S.enter(),P=J(pt),S&&(S.exit(),U=!0)),P===V.promise?$(u("Promise-chain cycle")):(w=H(P))?w.call(P,N,$):N(P)):$(pt)}catch(K){S&&!U&&S.exit(),$(K)}};q.length>W;)F(q[W++]);et._c=[],et._n=!1,at&&!et._h&&Z(et)})}},Z=function(et){y.call(n,function(){var at=et._v,q=j(et),pt,dt,W;if(q&&(pt=v(function(){b?g.emit("unhandledRejection",at,et):(dt=n.onunhandledrejection)?dt({promise:et,reason:at}):(W=n.console)&&W.error&&W.error("Unhandled promise rejection",at)}),et._h=b||j(et)?2:1),et._a=void 0,q&&pt.e)throw pt.v})},j=function(et){return et._h!==1&&(et._a||et._c).length===0},G=function(et){y.call(n,function(){var at;b?g.emit("rejectionHandled",et):(at=n.onrejectionhandled)&&at({promise:et,reason:et._v})})},Q=function(et){var at=this;at._d||(at._d=!0,at=at._w||at,at._v=et,at._s=2,at._a||(at._a=at._c.slice()),X(at,!0))},tt=function(et){var at=this,q;if(!at._d){at._d=!0,at=at._w||at;try{if(at===et)throw u("Promise can't be resolved itself");(q=H(et))?O(function(){var pt={_w:at,_d:!1};try{q.call(et,s(tt,pt,1),s(Q,pt,1))}catch(dt){Q.call(pt,dt)}}):(at._v=et,at._s=1,X(at,!1))}catch(pt){Q.call({_w:at,_d:!1},pt)}}};z||(I=function(at){p(this,I,h,"_h"),f(at),L.call(this);try{at(s(tt,this,1),s(Q,this,1))}catch(q){Q.call(this,q)}},L=function(at){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},L.prototype=t(146)(I.prototype,{then:function(at,q){var pt=B(m(this,I));return pt.ok=typeof at=="function"?at:!0,pt.fail=typeof q=="function"&&q,pt.domain=b?g.domain:void 0,this._c.push(pt),this._a&&this._a.push(pt),this._s&&X(this,!1),pt.promise},catch:function(et){return this.then(void 0,et)}}),R=function(){var et=new L;this.promise=et,this.resolve=s(tt,et,1),this.reject=s(Q,et,1)},x.f=B=function(et){return et===I||et===C?new R(et):D(et)}),o(o.G+o.W+o.F*!z,{Promise:I}),t(121)(I,h),t(149)(h),C=t(92)[h],o(o.S+o.F*!z,h,{reject:function(at){var q=B(this),pt=q.reject;return pt(at),q.promise}}),o(o.S+o.F*(e||!z),h,{resolve:function(at){return a(e&&this===C?I:this,at)}}),o(o.S+o.F*!(z&&t(140)(function(et){I.all(et).catch(E)})),h,{all:function(at){var q=this,pt=B(q),dt=pt.resolve,W=pt.reject,F=v(function(){var V=[],J=0,N=1;c(at,!1,function($){var S=J++,P=!1;V.push(void 0),N++,q.resolve($).then(function(w){P||(P=!0,V[S]=w,--N||dt(V))},W)}),--N||dt(V)});return F.e&&W(F.v),pt.promise},race:function(at){var q=this,pt=B(q),dt=pt.reject,W=v(function(){c(at,!1,function(F){q.resolve(F).then(pt.resolve,dt)})});return W.e&&dt(W.v),pt.promise}})},function(d,r,t){var e=t(97),n=t(94),s=t(122)("species");d.exports=function(l,o){var i=e(l).constructor,f;return i===void 0||(f=e(i)[s])==null?o:n(f)}},function(d,r,t){var e=t(93),n=t(196),s=t(120),l=t(102),o=t(91),i=o.process,f=o.setImmediate,p=o.clearImmediate,c=o.MessageChannel,m=o.Dispatch,y=0,O={},x="onreadystatechange",v,T,a,h=function(){var g=+this;if(O.hasOwnProperty(g)){var M=O[g];delete O[g],M()}},u=function(g){h.call(g.data)};(!f||!p)&&(f=function(M){for(var A=[],I=1;arguments.length>I;)A.push(arguments[I++]);return O[++y]=function(){n(typeof M=="function"?M:Function(M),A)},v(y),y},p=function(M){delete O[M]},t(86)(i)=="process"?v=function(g){i.nextTick(e(h,g,1))}:m&&m.now?v=function(g){m.now(e(h,g,1))}:c?(T=new c,a=T.port2,T.port1.onmessage=u,v=e(a.postMessage,a,1)):o.addEventListener&&typeof postMessage=="function"&&!o.importScripts?(v=function(g){o.postMessage(g+"","*")},o.addEventListener("message",u,!1)):x in l("script")?v=function(g){s.appendChild(l("script"))[x]=function(){s.removeChild(this),h.call(g)}}:v=function(g){setTimeout(e(h,g,1),0)}),d.exports={set:f,clear:p}},function(d,r){d.exports=function(t,e,n){var s=n===void 0;switch(e.length){case 0:return s?t():t.call(n);case 1:return s?t(e[0]):t.call(n,e[0]);case 2:return s?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return s?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return s?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(d,r,t){var e=t(91),n=t(195).set,s=e.MutationObserver||e.WebKitMutationObserver,l=e.process,o=e.Promise,i=t(86)(l)=="process";d.exports=function(){var f,p,c,m=function(){var v,T;for(i&&(v=l.domain)&&v.exit();f;){T=f.fn,f=f.next;try{T()}catch(a){throw f?c():p=void 0,a}}p=void 0,v&&v.enter()};if(i)c=function(){l.nextTick(m)};else if(s&&!(e.navigator&&e.navigator.standalone)){var y=!0,O=document.createTextNode("");new s(m).observe(O,{characterData:!0}),c=function(){O.data=y=!y}}else if(o&&o.resolve){var x=o.resolve(void 0);c=function(){x.then(m)}}else c=function(){n.call(e,m)};return function(v){var T={fn:v,next:void 0};p&&(p.next=T),f||(f=T,c()),p=T}}},function(d,r,t){var e=t(94);function n(s){var l,o;this.promise=new s(function(i,f){if(l!==void 0||o!==void 0)throw TypeError("Bad Promise constructor");l=i,o=f}),this.resolve=e(l),this.reject=e(o)}d.exports.f=function(s){return new n(s)}},function(d,r){d.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(d,r,t){var e=t(91),n=e.navigator;d.exports=n&&n.userAgent||""},function(d,r,t){var e=t(97),n=t(98),s=t(198);d.exports=function(l,o){if(e(l),n(o)&&o.constructor===l)return o;var i=s.f(l),f=i.resolve;return f(o),i.promise}},function(d,r,t){var e=t(90),n=t(92),s=t(91),l=t(194),o=t(201);e(e.P+e.R,"Promise",{finally:function(i){var f=l(this,n.Promise||s.Promise),p=typeof i=="function";return this.then(p?function(c){return o(f,i()).then(function(){return c})}:i,p?function(c){return o(f,i()).then(function(){throw c})}:i)}})},function(d,r,t){var e=t(90),n=t(198),s=t(199);e(e.S,"Promise",{try:function(l){var o=n.f(this),i=s(l);return(i.e?o.reject:o.resolve)(i.v),o.promise}})},function(d,r,t){d.exports={default:t(205),__esModule:!0}},function(d,r,t){t(206),d.exports=t(92).Object.keys},function(d,r,t){var e=t(124),n=t(110);t(207)("keys",function(){return function(l){return n(e(l))}})},function(d,r,t){var e=t(90),n=t(92),s=t(101);d.exports=function(l,o){var i=(n.Object||{})[l]||Object[l],f={};f[l]=o(i),e(e.S+e.F*s(function(){i(1)}),"Object",f)}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(76),n=O(e),s=t(209),l=O(s),o=t(164),i=O(o),f=t(191),p=O(f);r.defer=x,r.periodicity=v,r.calculateFramesOffset=T,r.getProgress=a,r.getCurrentFrame=u;var c=t(188),m=t(187),y=O(m);function O(g){return g&&g.__esModule?g:{default:g}}function x(){var g={};return g.promise=new p.default(function(M,A){g.resolve=M,g.reject=A}),g}function v(g,M){var A=Math.floor(g/M),I=g-A*M;return I===0&&A>0&&(I=M,A--),[A,I]}function T(g){g=g.slice(0);var M=g[0],A=g[g.length-1];A.offset=A.offset||1,M.offset=M.offset||0;for(var I=0,b=-1,E=0;E<g.length;E++){var L=g[E];if(L.offset!=null){var D=E-b;if(D>1)for(var R=(L.offset-I)/D,C=0;C<D-1;C++)g[b+C+1].offset=I+R*(C+1);I=L.offset,b=E}if(L.easing!=null&&(L.easing=(0,c.parseEasing)(L.easing)),E>0){var B=g[E].easing!=null;g[E]=(0,i.default)({},g[E-1],g[E]),B||delete g[E].easing}}return g}function a(g,M,A){var I=g.currentTime,b=M.direction,E=M.duration,L=!1;if(b==="reverse")A=1-A,L=!0;else if(b==="alternate"||b==="alternate-reverse"){var D=Math.floor(I/E);A===1&&D--,D%2^b==="alternate-reverse"&&(A=1-A,L=!0)}return{p:A,inverted:L}}function h(g,M,A,I){var b={};return(0,l.default)(M).forEach(function(E){var L=(0,n.default)(E,2),D=L[0],R=L[1];if(D!=="offset"&&D!=="easing"){var C=A[D]||A.default,B=C(g[D],R,I,g.offset,M.offset);B!=null&&(b[D]=B)}}),b}function u(g,M,A,I){var b=g.easing,E=g.effect;E||(A=(0,i.default)({},y.default,A));var L={};I=b(I,M);for(var D=1;D<M.length;D++){var R=M[D],C=R.offset;if(C>=I||D===M.length-1){var B=M[D-1],z=B.offset,H=B.easing,X=I;if(H){var Z=C-z;X=H((I-z)/Z)*Z+z}E?L=E(B,R,X,z,C):L=h(B,R,A,X);break}}return L}},function(d,r,t){d.exports={default:t(210),__esModule:!0}},function(d,r,t){t(211),d.exports=t(92).Object.entries},function(d,r,t){var e=t(90),n=t(212)(!0);e(e.S,"Object",{entries:function(l){return n(l)}})},function(d,r,t){var e=t(100),n=t(110),s=t(84),l=t(169).f;d.exports=function(o){return function(i){for(var f=s(i),p=n(f),c=p.length,m=0,y=[],O;c>m;)O=p[m++],(!e||l.call(f,O))&&y.push(o?[O,f[O]]:f[O]);return y}}},function(d,r,t){t.r(r),t(1).glMatrix.setMatrixArrayType(Array);const e=new Map;function n(l,o={},i=[]){l=l.toLowerCase();const f=e.get(l);if(!f)throw new TypeError(`Invalid node: ${l}`);const p=new f(o);return i.forEach(c=>{p.appendChild(c)}),p}const s={registerNode(l,o,i=100){if(o=o.toLowerCase(),e.has(o))throw new TypeError(`Cannot registerNode, ${o} has been taken.`);e.set(o,l),Object.defineProperties(l.prototype,{nodeType:{value:i},tagName:{value:o.toUpperCase()},nodeName:{value:o},ownerDocument:{value:s},namespaceURI:{value:`http://spritejs.com/${o}`}})},createElement:n,createElementNS(l,o){return n(o)},isSpriteNode(l){return e.has(l.toLowerCase())}};r.default=s},function(d,r,t){t.r(r),t.d(r,"default",function(){return o}),t(1).glMatrix.setMatrixArrayType(Array);const e=Symbol("type"),n=Symbol("bubbles"),s=Symbol("originalEvent"),l=Symbol("detail");class o{constructor(f,{bubbles:p=null}={}){if(typeof f=="string"?(this[e]=f,this[n]=!!p):(this[e]=f.type,this[s]=f,this[n]=p!=null?!!p:!!f.bubbles,f.detail&&(this[l]=f.detail)),!this[e])throw new TypeError("Invalid event type.");this.cancelBubble=!1}setOriginalEvent(f){this[s]=f}get originalEvent(){return this[s]}get type(){return this[e]}get bubbles(){return this[n]}get detail(){return this[l]}stopPropagation(){this.cancelBubble=!0}}},function(d,r,t){t.r(r),t.d(r,"parseFilterString",function(){return n}),t.d(r,"applyFilters",function(){return s});var e=t(72);t(1).glMatrix.setMatrixArrayType(Array);function n(l){if(l=l.trim(),!l||l==="none")return null;const o=/^(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+$/i,i=l.match(/(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+?/ig),f=[];return i&&i.forEach(p=>{const c=p.match(o);if(!c)throw new TypeError("Invalid fitler string.");let[,m,y]=c;m=m.toLowerCase(),y=y.trim().match(/([^( )]+|([^( )]+\(.*\)))(?=\s|$)/g).map((O,x)=>{let v;return m==="url"||m==="drop-shadow"&&x===3?v=O:v=Object(e.toNumber)(O),/%$/.test(O)&&(v/=100),v}),f.push({type:m,args:y})}),f}function s(l,o){l.clearFilter(),o&&o.forEach(({type:i,args:f})=>{let p=i;p==="drop-shadow"?p="dropShadow":p==="hue-rotate"&&(p="hueRotate"),l[p](...f)})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n,s){if(!s)return;const l=n.getListeners("beforerender"),o=n.getListeners("afterrender");l.length&&!s.beforeRender?s.beforeRender=i=>{n.dispatchEvent({type:"beforerender",detail:{context:i}})}:l.length||(s.beforeRender=null),o.length&&!s.afterRender?s.afterRender=i=>{n.dispatchEvent({type:"afterrender",detail:{context:i}})}:o.length||(s.afterRender=null)}},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(12),n=t(218),s=t(70),l=t(213);t(1).glMatrix.setMatrixArrayType(Array);const o=Symbol("amount"),i=Symbol("meshCloud");class f extends s.default{constructor(c,m=1){super(),this.meshNode=c,c.connect(this),this[o]=m,this[i]=null}get meshCloud(){const c=this.meshNode,m=this[o];return!this[i]&&c.mesh&&(this[i]=new e.MeshCloud(c.mesh,m)),this[i]}get isVisible(){return!!this.meshNode&&this.meshNode.isVisible}get amount(){return this[o]}set amount(c){this[o]=c,this[i]&&(this[i].amount=c)}brightness(c,m){this.meshCloud&&(this.meshCloud.brightness(c,m),this.forceUpdate())}contrast(c,m){this.meshCloud&&(this.meshCloud.contrast(c,m),this.forceUpdate())}delete(c){this.meshCloud&&(this.meshCloud.delete(c),this[o]--,this.forceUpdate())}draw(c=[]){if(super.draw(c),this.meshCloud){if(this.program){this.meshCloud.setProgram(this.program);const m=this.shaderAttrs;m&&Object.entries(m).forEach(([O,x])=>{this.meshCloud.mesh.setAttribute(O,x)});const y=this.uniforms;if(this.uniforms){const O={};Object.entries(y).forEach(([x,v])=>{typeof v=="function"&&(v=v(this,x)),O[x]=v}),this.meshCloud.mesh.setUniforms(O)}}this.meshNode.textureImage&&Object(n.drawTexture)(this.meshNode,this.meshNode.mesh),c.push(this.meshCloud)}return c}getTransform(c){if(this.meshCloud)return this.meshCloud.getTransform(c)}grayscale(c,m){this.meshCloud&&(this.meshCloud.grayscale(c,m),this.forceUpdate())}hueRotate(c,m){this.meshCloud&&(this.meshCloud.hueRotate(c,m),this.forceUpdate())}invert(c,m){this.meshCloud&&(this.meshCloud.invert(c,m),this.forceUpdate())}isPointCollision(c,m){if(!this.meshCloud)return!1;const y=this.attributes.pointerEvents;if(y==="none"||y!=="all"&&!this.isVisible)return!1;let O="both";y==="visibleFill"&&(O="fill"),y==="visibleStroke"&&(O="stroke");for(let x=0;x<this[o];x++)if(!this.meshCloud.isPointCollision(x,[c,m],O))return!1;return!0}setOpacity(c,m){this.meshCloud&&(this.meshCloud.opacity(c,m),this.forceUpdate())}rotate(c,m,[y,O]=[0,0]){const x=Math.PI*m/180;if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes;this.meshCloud.rotate(c,x,[y+v,O+T]),this.forceUpdate()}}saturate(c,m){this.meshCloud&&(this.meshCloud.saturate(c,m),this.forceUpdate())}scale(c,[m,y=m],[O,x]=[0,0]){if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes,a=1e-5;Math.abs(m)<a&&(m=1/m>0?a:-a),Math.abs(y)<a&&(y=1/y>0?a:-a),this.meshCloud.scale(c,[m,y],[O+v,x+T]),this.forceUpdate()}}setColorTransform(c,m){this.meshCloud&&(this.meshCloud.setColorTransform(c,m),this.forceUpdate())}setFillColor(c,m){this.meshCloud&&(Array.isArray(m)&&(m=[...m],m[0]/=255,m[1]/=255,m[2]/=255),this.meshCloud.setFillColor(c,m),this.forceUpdate())}sepia(c,m){this.meshCloud&&(this.meshCloud.sepia(c,m),this.forceUpdate())}setResolution({width:c,height:m}){super.setResolution({width:c,height:m}),this.meshNode.setResolution({width:c,height:m})}setStrokeColor(c,m){this.meshCloud&&(Array.isArray(m)&&(m=[...m],m[0]/=255,m[1]/=255,m[2]/=255),this.meshCloud.setStrokeColor(c,m),this.forceUpdate())}setTransform(c,m){this.meshCloud&&(this.meshCloud.setTransform(c,m),this.forceUpdate())}skew(c,[m,y=m],[O,x]=[0,0]){if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes;this.meshCloud.skew(c,[m,y],[O+v,x+T]),this.forceUpdate()}}transform(c,m){this.meshCloud&&(this.meshCloud.transform(c,m),this.forceUpdate())}transformColor(c,m){this.meshCloud&&(this.meshCloud.transformColor(c,m),this.forceUpdate())}translate(c,[m,y]){this.meshCloud&&(this.meshCloud.translate(c,[m,y]),this.forceUpdate())}updateMesh(){this[i]&&(this[i].mesh=this.meshNode.mesh,this.forceUpdate())}}l.default.registerNode(f,"cloud")},function(d,r,t){t.r(r),t.d(r,"loadTexture",function(){return l}),t.d(r,"applyTexture",function(){return o}),t.d(r,"createTexture",function(){return f}),t.d(r,"deleteTexture",function(){return p}),t.d(r,"drawTexture",function(){return m}),t.d(r,"loadFrames",function(){return y});var e=t(12),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s={};function l(O,x){if(s[O])return s[O];const v=e.ENV.loadImage(O,{alias:x,useImageBitmap:!1});return v??O}async function o(O,x,v){let T=x;if(typeof x=="string"&&(T=l(x)),T&&typeof T.then=="function"&&(T=await T),x===O.attributes.texture){T&&T.image&&(T.sourceRect&&(O.attributes.sourceRect=T.sourceRect),O.textureImageRotated=!!T.rotated,T=T.image);const{width:a,height:h,textureRect:u}=O.attributes,g=O.textureImage;O.textureImage=T,v&&g!==T&&!u&&(a==null||h==null)&&O.updateContours(),O.forceUpdate()}return T}const i=Symbol("textureMap");function f(O,x){if(x[i]=x[i]||new Map,x[i].has(O))return x[i].get(O);const v=x.createTexture(O);return!/^blob:/.test(O.src)&&typeof O.getContext!="function"&&x[i].set(O,v),v}function p(O,x){if(x[i]&&x[i].has(O)){const v=x[i].get(O);return x.deleteTexture(v),x[i].delete(O),!0}return!1}const c=Symbol("textureContext");function m(O,x){const v=O.textureImage instanceof String?String(O.textureImage):O.textureImage,T=O.textureImageRotated,a=x.texture,h=O.renderer;if(v){const u=O.originalContentRect;let g=O.attributes.textureRect;const M=O.attributes.textureRepeat,A=O.attributes.sourceRect;if(!a||O[c]&&O[c]!==h||a.image!==v||a.options.repeat!==M||!Object(n.compareValue)(a.options.rect,g)||!Object(n.compareValue)(a.options.srcRect,A)){const I=f(v,h);g?(g[0]+=u[0],g[1]+=u[1]):g=u;let b=null;a&&!h[i].has(a.image)&&(!a.options||!a.options.hidden)&&(b=x.uniforms.u_texSampler),x.setTexture(I,{rect:g,repeat:M,srcRect:A,rotated:T}),b&&b.delete&&b.delete(),O[c]=h}}else if(a){let u=null;!h[i].has(a.image)&&(!a.options||!a.options.hidden)&&(u=x.uniforms.u_texSampler),x.setTexture(null),u&&u.delete&&u.delete()}}async function y(O,x){typeof x=="string"&&(x=await(await fetch(x,{method:"GET",mode:"cors",cache:"default"})).json());const v=await l(O),T=x.frames;return Object.entries(T).forEach(([a,h])=>{const{x:u,y:g,w:M,h:A}=h.frame;let I=[u,g,M,A];const b=h.rotated;b&&(I=[I[0],I[1],I[3],I[2]]),s[a]={image:v,sourceRect:I,rotated:b}}),v}},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(1),n=t(12),s=t(70),l=t(220),o=t(221),i=t(222),f=t(213),p=t(223);t(1).glMatrix.setMatrixArrayType(Array);function c(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const m=Symbol("mesh");class y extends s.default{constructor(x={}){super(x)}get borderSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:a,borderWidth:h}=this.attributes,[u,g]=this.contentSize;return[a+u+v+h,x+g+T+h]}get clientSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:a}=this.attributes,[h,u]=this.contentSize;return[a+h+v,x+u+T]}get contentSize(){let{width:x,height:v,boxSizing:T,paddingTop:a,paddingRight:h,paddingBottom:u,paddingLeft:g}=this.attributes;if(x=x||0,v=v||0,T==="border-box"){const M=2*this.attributes.borderWidth;x-=M+h+g,v-=M+a+u,x=Math.max(0,x),v=Math.max(0,v)}return[x,v]}get hasBorder(){return this.attributes.borderWidth>0}get isVisible(){const[x,v]=this.borderSize;return x>0&&v>0}get mesh(){if(this.attributes.display==="none")return null;const x=this.clientBox;if(x){let v=this[m];if(v)v.box!==x&&(v.contours=x.contours,v.box=x);else{v=new n.Mesh2D(x),v.box=x;const a=this.attributes.bgcolor;if(Object(o.setFillColor)(v,{color:a}),this.hasBorder){const{borderColor:u,borderWidth:g,borderDash:M,borderDashOffset:A}=this.attributes;Object(o.setStrokeColor)(v,{color:u,lineWidth:g,lineDash:M,lineDashOffset:A})}this[m]=v;const h=this.attributes.clipPath;h&&this[m].setClipPath(h)}const T=this.opacity;return v.getOpacity()!==T&&v.setOpacity(T),v.setTransform(...this.renderMatrix),v}return null}get offsetSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:a,borderWidth:h}=this.attributes,[u,g]=this.contentSize,M=2*h;return[a+u+v+M,x+g+T+M]}get originalClientRect(){if(this.mesh){const x=this.mesh.boundingBox;return[x[0][0],x[0][1],x[1][0]-x[0][0],x[1][1]-x[0][1]]}return[0,0,0,0]}get originalContentRect(){const[x,v,T,a]=this.originalClientRect,h=this.attributes.padding;return[x+h[0],v+h[1],T-h[0]-h[2],a-h[1]-h[3]]}getBoundingClientRect(){let x=this.renderMatrix;this.layer&&this.layer.layerTransformInvert&&(x=e.mat2d.multiply(Array.of(0,0,0,0,0,0),this.layer.transformMatrix,x));let v=null;if(this.mesh){v=[...this.mesh.boundingBox];const T=this.attributes.borderWidth;T&&(v[0]=[v[0][0]-T,v[0][1]-T],v[1]=[v[1][0]+T,v[1][1]+T])}return Object(p.default)(v,x)}onPropertyChange(x,v,T){if(super.onPropertyChange(x,v,T),(x==="anchorX"||x==="anchorY"||x==="boxSizing"||x==="width"||x==="height"||x==="borderWidth"||x==="paddingLeft"||x==="paddingRight"||x==="paddingTop"||x==="paddingBottom"||/^border(TopLeft|TopRight|BottomRight|BottomLeft)Radius$/.test(x))&&this.updateContours(),this[m]&&x==="clipPath"&&this[m].setClipPath(v),this[m]&&x==="bgcolor"&&Object(o.setFillColor)(this[m],{color:v}),this[m]&&(x==="borderColor"||x==="borderWidth"||x==="borderDash"||x==="borderDashOffset")){const{borderColor:a,borderWidth:h,borderDash:u,borderDashOffset:g}=this.attributes;Object(o.setStrokeColor)(this[m],{color:a,lineWidth:h,lineDash:h?u:0,lineDashOffset:g})}}updateContours(){const{anchorX:x,anchorY:v,borderWidth:T,borderRadius:a}=this.attributes,[h,u]=this.borderSize,g=this.offsetSize,M=.5*T,A=-x*g[0]+M,I=-v*g[1]+M;this.clientBox=new n.Figure2D,Object(i.createRadiusBox)(this.clientBox,[A,I,h,u],a)}}c(y,"Attr",l.default),f.default.registerNode(y,"block")},function(d,r,t){t.r(r),t.d(r,"default",function(){return p});var e=t(71),n=t(72),s=t(221);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute"),i=Symbol.for("spritejs_setAttributeDefault"),f=Symbol.for("spritejs_declareAlias");class p extends e.default{constructor(m){super(m),this[i]({anchorX:0,anchorY:0,width:void 0,height:void 0,borderWidth:0,borderColor:"rgba(0,0,0,1)",borderDash:void 0,borderDashOffset:0,borderTopLeftRadius:[0,0],borderTopRightRadius:[0,0],borderBottomRightRadius:[0,0],borderBottomLeftRadius:[0,0],bgcolor:"rgba(0,0,0,0)",paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0,boxSizing:"content-box",clipPath:void 0}),this[f]("anchor","size","border","borderRadius","padding")}get anchorX(){return this[o]("anchorX")}set anchorX(m){this[l]("anchorX",Object(n.toNumber)(m))}get anchorY(){return this[o]("anchorY")}set anchorY(m){this[l]("anchorY",Object(n.toNumber)(m))}get anchor(){return[this.anchorX,this.anchorY]}set anchor(m){m=Object(n.toArray)(m),Array.isArray(m)||(m=[m,m]),this.anchorX=m[0],this.anchorY=m[1]}get width(){return this[o]("width")}set width(m){this[l]("width",Object(n.toNumber)(m))}get height(){return this[o]("height")}set height(m){this[l]("height",Object(n.toNumber)(m))}get size(){return[this.width,this.height]}set size(m){m=Object(n.toArray)(m),Array.isArray(m)||(m=[m,m]),this.width=m[0],this.height=m[1]}get borderWidth(){return this[o]("borderWidth")}set borderWidth(m){this[l]("borderWidth",Object(n.toNumber)(m))}get borderColor(){return this[o]("borderColor")}set borderColor(m){this[l]("borderColor",Object(s.parseColor)(m))}get border(){return[this.borderWidth,this.borderColor]}set border(m){m=Object(n.toArray)(m),Array.isArray(m)||(m=[m]),this.borderWidth=m[0],m[1]!=null&&(this.borderColor=m[1])}get borderDash(){return this[o]("borderDash")}set borderDash(m){m=Object(n.toArray)(m,!0),m!=null&&!Array.isArray(m)&&(m=[m]),this[l]("borderDash",m?m.map(n.toNumber):null)}get borderDashOffset(){return this[o]("borderDashOffset")}set borderDashOffset(m){this[l]("borderDashOffset",Object(n.toNumber)(m))}get borderTopLeftRadius(){return this[o]("borderTopLeftRadius")}set borderTopLeftRadius(m){m=Object(n.toArray)(m,!0),Array.isArray(m)||(m=[m,m]),this[l]("borderTopLeftRadius",m.map(n.toNumber))}get borderTopRightRadius(){return this[o]("borderTopRightRadius")}set borderTopRightRadius(m){m=Object(n.toArray)(m,!0),Array.isArray(m)||(m=[m,m]),this[l]("borderTopRightRadius",m.map(n.toNumber))}get borderBottomRightRadius(){return this[o]("borderBottomRightRadius")}set borderBottomRightRadius(m){m=Object(n.toArray)(m,!0),Array.isArray(m)||(m=[m,m]),this[l]("borderBottomRightRadius",m.map(n.toNumber))}get borderBottomLeftRadius(){return this[o]("borderBottomLeftRadius")}set borderBottomLeftRadius(m){m=Object(n.toArray)(m,!0),Array.isArray(m)||(m=[m,m]),this[l]("borderBottomLeftRadius",m.map(n.toNumber))}get borderRadius(){return[...this.borderTopLeftRadius,...this.borderTopRightRadius,...this.borderBottomRightRadius,...this.borderBottomLeftRadius]}set borderRadius(m){if(m=Object(n.toArray)(m),!Array.isArray(m))m=Array(8).fill(m);else if(m.length===2)m=[m[0],m[1],m[0],m[1],m[0],m[1],m[0],m[1]];else if(m.length===4)m=[m[0],m[1],m[2],m[3],m[0],m[1],m[2],m[3]];else if(m.length===6)m=[m[0],m[1],m[2],m[3],m[4],m[5],m[2],m[3]];else if(m.length!==8)throw new TypeError("Invalid borderRadius value.");this.borderTopLeftRadius=[m[0],m[1]],this.borderTopRightRadius=[m[2],m[3]],this.borderBottomRightRadius=[m[4],m[5]],this.borderBottomLeftRadius=[m[6],m[7]]}get bgcolor(){return this[o]("bgcolor")}set bgcolor(m){this[l]("bgcolor",Object(s.parseColor)(m))}get paddingTop(){return this[o]("paddingTop")}set paddingTop(m){this[l]("paddingTop",Object(n.toNumber)(m))}get paddingRight(){return this[o]("paddingRight")}set paddingRight(m){this[l]("paddingRight",Object(n.toNumber)(m))}get paddingBottom(){return this[o]("paddingBottom")}set paddingBottom(m){this[l]("paddingBottom",Object(n.toNumber)(m))}get paddingLeft(){return this[o]("paddingLeft")}set paddingLeft(m){this[l]("paddingLeft",Object(n.toNumber)(m))}get padding(){return[this.paddingTop,this.paddingRight,this.paddingBottom,this.paddingLeft]}set padding(m){m=Object(n.toArray)(m),Array.isArray(m)?m.length===2?m=[m[0],m[1],m[0],m[1]]:m.length===3&&(m=[m[0],m[1],m[2],m[1]]):m=[m,m,m,m],this.paddingTop=m[0],this.paddingRight=m[1],this.paddingBottom=m[2],this.paddingLeft=m[3]}get clipPath(){return this[o]("clipPath")}set clipPath(m){this[l]("clipPath",m)}get boxSizing(){return this[o]("boxSizing")}set boxSizing(m){if(m!=null&&m!=="border-box"&&m!=="content-box")throw new TypeError("Invalid boxSizing type.");this[l]("boxSizing",m)}}},function(d,r,t){t.r(r),t.d(r,"Gradient",function(){return s}),t.d(r,"isTransparent",function(){return l}),t.d(r,"parseColor",function(){return o}),t.d(r,"setFillColor",function(){return f}),t.d(r,"setStrokeColor",function(){return p}),t.d(r,"Color",function(){return c});var e=t(32),n=t.n(e);t(1).glMatrix.setMatrixArrayType(Array);class s{constructor({vector:y,colors:O}){if(!Array.isArray(y)||y.length!==4&&y.length!==6&&y.length!==3)throw new TypeError("Invalid gradient");this.vector=y,this.colors=O.map(({offset:x,color:v})=>({offset:x,color:o(v)}))}toString(){return JSON.stringify({vector:this.vector,colors:this.colors})}}function l(m){return m instanceof s?!1:m==null?!0:n()(m)[3]===0}function o(m){if(m==null||(m||(m="transparent"),m instanceof s))return m;const y=n()(m);if(!y||!y.length)throw new TypeError("Invalid color value.");return`rgba(${y.join()})`}function i(m,y,O){const x=m.boundingBox[0];if(O.vector){let{vector:v,colors:T}=O;v.length===4?(v=[v[0]+x[0],v[1]+x[1],v[2]+x[0],v[3]+x[1]],m.setLinearGradient({vector:v,colors:T,type:y})):v.length===3?(v=[v[0]+x[0],v[1]+x[1],v[2]],m.setCircularGradient({vector:v,colors:T,type:y})):(v=[v[0]+x[0],v[1]+x[1],v[2],v[3]+x[0],v[4]+x[1],v[5]],m.setRadialGradient({vector:v,colors:T,type:y}))}else m.gradient&&m.gradient[y]&&(delete m.gradient[y],delete m.uniforms.u_radialGradientVector)}function f(m,{color:y,rule:O="nonzero"}){return i(m,"fill",y),y.vector||m.setFill({color:y,rule:O}),m}function p(m,{color:y,lineWidth:O,lineCap:x,lineJoin:v,lineDash:T,lineDashOffset:a,miterLimit:h,roundSegments:u}){i(m,"stroke",y),y.vector&&(y=[0,0,0,1]),m.setStroke({color:y,thickness:O,cap:x,join:v,miterLimit:h,lineDash:T,lineDashOffset:a,roundSegments:u})}class c extends Array{constructor(y=0,O=0,x=0,v=0){return Array.isArray(y)&&([y,O,x,v]=y),typeof y=="string"&&([y,O,x,v]=n()(y),y/=255,O/=255,x/=255),super(y,O,x,v),this}get r(){return Math.round(this[0]*255)}set r(y){this[0]=y/255}get g(){return Math.round(this[1]*255)}set g(y){this[1]=y/255}get b(){return Math.round(this[2]*255)}set b(y){this[2]=y/255}get a(){return this[3]}set a(y){this[3]=y}get hex(){const y=`0${this.r.toString(16)}`.slice(-2),O=`0${this.g.toString(16)}`.slice(-2),x=`0${this.b.toString(16)}`.slice(-2);let v;return this.a<1&&(v=Math.round(this[3]*255),v=`0${v.toString(16)}`.slice(-2)),`#${y}${O}${x}${v||""}`}get rgba(){return`rgba(${this.r},${this.g},${this.b},${this.a})`}fromColor(y){return typeof y=="string"&&(y=n()(y),y[0]/=255,y[1]/=255,y[2]/=255),this[0]=y[0],this[1]=y[1],this[2]=y[2],this[3]=y[3],this}}},function(d,r,t){t.r(r),t.d(r,"createRadiusBox",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function e(s,l,o,i,f,p="leftTop"){const c=.5522848,m=i/2*c,y=f/2*c,O=l+i,x=o+f,v=l+i/2,T=o+f/2;p==="leftTop"?(s.moveTo(l,T),s.bezierCurveTo(l,T-y,v-m,o,v,o)):p==="rightTop"?s.bezierCurveTo(v+m,o,O,T-y,O,T):p==="rightBottom"?s.bezierCurveTo(O,T+y,v+m,x,v,x):p==="leftBottom"&&s.bezierCurveTo(v-m,x,l,T+y,l,T)}function n(s,[l,o,i,f],p){if(!p||Array.isArray(p)&&p.every(c=>c===0))s.beginPath(),s.rect(l,o,i,f);else{typeof p=="number"&&(p=Array(8).fill(p));const[c,m,y,O,x,v,T,a]=p.map((h,u)=>u%2?Math.min(h,f/2):Math.min(h,i/2));s.beginPath(),s.moveTo(l,o+m),e(s,l,o,c*2,m*2,"leftTop"),s.lineTo(l+i-y,o),e(s,l+i-y*2,o,y*2,O*2,"rightTop"),s.lineTo(l+i,o+f-v),e(s,l+i-x*2,o+f-v*2,x*2,v*2,"rightBottom"),s.lineTo(l+T,o+f),e(s,l,o+f-a*2,T*2,a*2,"leftBottom"),s.closePath()}return s}},function(d,r,t){t.r(r),t(1).glMatrix.setMatrixArrayType(Array),r.default=function(e,n){if(!e)return{x:0,y:0,width:0,height:0,left:0,top:0,right:0,bottom:0};const[[s,l],[o,i]]=e,f=s*n[0]+l*n[2]+n[4],p=s*n[1]+l*n[3]+n[5],c=o*n[0]+l*n[2]+n[4],m=o*n[1]+l*n[3]+n[5],y=o*n[0]+i*n[2]+n[4],O=o*n[1]+i*n[3]+n[5],x=s*n[0]+i*n[2]+n[4],v=s*n[1]+i*n[3]+n[5],T=Math.min(f,c,y,x),a=Math.min(p,m,O,v),h=Math.max(f,c,y,x),u=Math.max(p,m,O,v);return{x:T,y:a,width:h-T,height:u-a,left:T,top:a,right:h,bottom:u}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(218),n=t(219),s=t(225),l=t(213);t(1).glMatrix.setMatrixArrayType(Array);function o(p,c,m){return c in p?Object.defineProperty(p,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):p[c]=m,p}const i=Symbol("textureTask");class f extends n.default{constructor(c={}){typeof c=="string"&&(c={texture:c}),super(c)}get contentSize(){let[c,m]=super.contentSize;const{width:y,height:O}=this.attributes;if(y==null||O==null){const x=this.textureImage,v=this.attributes.textureRect,T=this.attributes.sourceRect;if(v)y==null&&(c=v[0]+v[2]),O==null&&(m=v[1]+v[3]);else if(T){const a=this.layer?this.layer.displayRatio:1;y==null&&(c=T[2]/a),O==null&&(m=T[3]/a)}else if(x){const a=this.layer?this.layer.displayRatio:1;y==null&&(c=x.width/a),O==null&&(m=x.height/a)}}return[c,m]}get textureImageReady(){return this[i]||Promise.resolve()}draw(c=[]){super.draw(c);const m=this.mesh;return m&&Object(e.drawTexture)(this,m),c}onPropertyChange(c,m,y){if(super.onPropertyChange(c,m,y),c==="texture"&&(this[i]=Object(e.applyTexture)(this,m,!0)),c==="textureRect"){const{width:O,height:x}=this.attributes;(O==null||x==null)&&this.updateContours()}}}o(f,"Attr",s.default),l.default.registerNode(f,"sprite")},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(220);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");class o extends e.default{constructor(f){super(f),this[n]({texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0})}get texture(){return this[l]("texture")}set texture(f){this[s]("texture",f)}get textureRect(){return this[l]("textureRect")}set textureRect(f){this[s]("textureRect",f)}get sourceRect(){return this[l]("sourceRect")}set sourceRect(f){this[s]("sourceRect",f)}get textureRepeat(){return this[l]("textureRepeat")}set textureRepeat(f){this[s]("textureRepeat",!!f)}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return O});var e=t(12),n=t(227),s=t.n(n),l=t(70),o=t(228),i=t(221),f=t(218),p=t(213),c=t(223);t(1).glMatrix.setMatrixArrayType(Array);function m(x,v,T){return v in x?Object.defineProperty(x,v,{value:T,enumerable:!0,configurable:!0,writable:!0}):x[v]=T,x}const y=Symbol("mesh");class O extends l.default{constructor(v={}){typeof v=="string"&&(v={d:v}),super(v),this.effects={d(T,a,h,u,g){const M=(h-u)/(g-u);if(M<=0)return T;if(M>=1)return a;const A=s.a._preprocessing(s.a.path2shapes(T),s.a.path2shapes(a)),I=s.a._lerp(...A,M)[0];return I.reduce((E,L)=>`${E}${L.slice(2).join(" ")} `,`M${I[0][0]} ${I[0][1]}C`).trim()}}}get isVisible(){return!!this.d}get mesh(){if(this.attributes.display==="none")return null;const v=this.path;if(v){let T=this[y];if(T)T.path!==v&&(T.contours=v.contours,T.path=v);else{T=new e.Mesh2D(this.path),T.path=v;const h=this.attributes.fillColor,u=this.attributes.fillRule;h&&Object(i.setFillColor)(T,{color:h,rule:u});const g=this.attributes.lineWidth,M=this.attributes.strokeColor;if(M&&g>0){const{lineCap:I,lineJoin:b,miterLimit:E,lineDash:L,lineDashOffset:D,roundSegments:R}=this.attributes;Object(i.setStrokeColor)(T,{color:M,lineWidth:g,lineCap:I,lineJoin:b,miterLimit:E,lineDash:L,lineDashOffset:D,roundSegments:R})}this[y]=T;const A=this.attributes.clipPath;A&&this[y].setClipPath(A)}const a=this.opacity;return T.getOpacity()!==a&&T.setOpacity(a),T.setTransform(...this.renderMatrix),T}return null}get originalContentRect(){if(this.path){const v=this.path.boundingBox;return[v[0][0],v[0][1],v[1][0]-v[0][0],v[1][1]-v[0][1]]}return[0,0,0,0]}get originalClientRect(){if(this.mesh){const v=this.mesh.boundingBox;return[v[0][0],v[0][1],v[1][0]-v[0][0],v[1][1]-v[0][1]]}return[0,0,0,0]}get originalClientCenter(){return this.mesh?this.mesh.boundingCenter:[0,0]}set d(v){this.attributes.d=v}get d(){return this.attributes.d}draw(v=[]){super.draw(v);const T=this.mesh;return T&&Object(f.drawTexture)(this,T),v}getBoundingClientRect(){let v=null;return this.mesh&&(v=this.mesh.boundingBox),Object(c.default)(v,this.renderMatrix)}getPathLength(){return this.mesh?this.mesh.getTotalLength():0}getPointAtLength(v){if(this.mesh){const T=this.mesh.getPointAtLength(v);if(T)return[T.x,T.y]}return[0,0]}onPropertyChange(v,T,a){if(super.onPropertyChange(v,T,a),(v==="d"||v==="normalize")&&this.updateContours(),this[y]&&(v==="fillColor"||v==="fillRule")){const{fillColor:h,fillRule:u}=this.attributes;Object(i.setFillColor)(this[y],{color:h,rule:u})}if(this[y]&&(v==="strokeColor"||v==="lineWidth"||v==="lineCap"||v==="lineJoin"||v==="lineDash"||v==="lineDashOffset"||v==="roundSegments")){const{strokeColor:h,lineWidth:u}=this.attributes;if(h&&u>0){const{lineCap:g,lineJoin:M,lineDash:A,lineDashOffset:I,miterLimit:b,roundSegments:E}=this.attributes;Object(i.setStrokeColor)(this[y],{color:h,lineCap:g,lineJoin:M,lineWidth:u,lineDash:A,lineDashOffset:I,miterLimit:b,roundSegments:E})}}this[y]&&v==="clipPath"&&this[y].setClipPath(T),v==="texture"&&Object(f.applyTexture)(this,T)}updateContours(){this.path=new e.Figure2D,this.path.addPath(this.attributes.d),this.attributes.normalize&&this.path.normalize(...this.path.boundingCenter)}}m(O,"Attr",o.default),p.default.registerNode(O,"path")},function(d,r,t){(function(e,n){d.exports=n()})(this,function(){var e=function(){function L(D,R){var C=[],B=!0,z=!1,H=void 0;try{for(var X=D[Symbol.iterator](),Z;!(B=(Z=X.next()).done)&&(C.push(Z.value),!(R&&C.length===R));B=!0);}catch(j){z=!0,H=j}finally{try{!B&&X.return&&X.return()}finally{if(z)throw H}}return C}return function(D,R){if(Array.isArray(D))return D;if(Symbol.iterator in Object(D))return L(D,R);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=Math.PI*2,s=function(D,R,C,B,z,H,X){var Z=D.x,j=D.y;Z*=R,j*=C;var G=B*Z-z*j,Q=z*Z+B*j;return{x:G+H,y:Q+X}},l=function(D,R){var C=1.3333333333333333*Math.tan(R/4),B=Math.cos(D),z=Math.sin(D),H=Math.cos(D+R),X=Math.sin(D+R);return[{x:B-z*C,y:z+B*C},{x:H+X*C,y:X-H*C},{x:H,y:X}]},o=function(D,R,C,B){var z=D*B-R*C<0?-1:1,H=Math.sqrt(D*D+R*R),X=Math.sqrt(D*D+R*R),Z=D*C+R*B,j=Z/(H*X);return j>1&&(j=1),j<-1&&(j=-1),z*Math.acos(j)},i=function(D,R,C,B,z,H,X,Z,j,G,Q,tt){var et=Math.pow(z,2),at=Math.pow(H,2),q=Math.pow(Q,2),pt=Math.pow(tt,2),dt=et*at-et*pt-at*q;dt<0&&(dt=0),dt/=et*pt+at*q,dt=Math.sqrt(dt)*(X===Z?-1:1);var W=dt*z/H*tt,F=dt*-H/z*Q,V=G*W-j*F+(D+C)/2,J=j*W+G*F+(R+B)/2,N=(Q-W)/z,$=(tt-F)/H,S=(-Q-W)/z,P=(-tt-F)/H,w=o(1,0,N,$),U=o(N,$,S,P);return Z===0&&U>0&&(U-=n),Z===1&&U<0&&(U+=n),[V,J,w,U]},f=function(D){var R=D.px,C=D.py,B=D.cx,z=D.cy,H=D.rx,X=D.ry,Z=D.xAxisRotation,j=Z===void 0?0:Z,G=D.largeArcFlag,Q=G===void 0?0:G,tt=D.sweepFlag,et=tt===void 0?0:tt,at=[];if(H===0||X===0)return[];var q=Math.sin(j*n/360),pt=Math.cos(j*n/360),dt=pt*(R-B)/2+q*(C-z)/2,W=-q*(R-B)/2+pt*(C-z)/2;if(dt===0&&W===0)return[];H=Math.abs(H),X=Math.abs(X);var F=Math.pow(dt,2)/Math.pow(H,2)+Math.pow(W,2)/Math.pow(X,2);F>1&&(H*=Math.sqrt(F),X*=Math.sqrt(F));var V=i(R,C,B,z,H,X,Q,et,q,pt,dt,W),J=e(V,4),N=J[0],$=J[1],S=J[2],P=J[3],w=Math.max(Math.ceil(Math.abs(P)/(n/4)),1);P/=w;for(var U=0;U<w;U++)at.push(l(S,P)),S+=P;return at.map(function(K){var Y=s(K[0],H,X,pt,q,N,$),k=Y.x,rt=Y.y,it=s(K[1],H,X,pt,q,N,$),lt=it.x,ut=it.y,ot=s(K[2],H,X,pt,q,N,$),st=ot.x,ft=ot.y;return{x1:k,y1:rt,x2:lt,y2:ut,x:st,y:ft}})},p={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},c=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function m(L){var D=[];return L.replace(c,function(R,C,B){var z=C.toLowerCase();for(B=O(B),z=="m"&&B.length>2&&(D.push([C].concat(B.splice(0,2))),z="l",C=C=="m"?"l":"L");;){if(B.length==p[z])return B.unshift(C),D.push(B);if(B.length<p[z])throw new Error("malformed path data");D.push([C].concat(B.splice(0,p[z])))}}),D}var y=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function O(L){var D=L.match(y);return D?D.map(Number):[]}function x(L){var D=L[0][0],R=L[0][1],C=D,B=R;return L.forEach(function(z){var H=z[0],X=z[2],Z=z[4],j=z[6],G=z[1],Q=z[3],tt=z[5],et=z[7];D=Math.min(D,H,X,Z,j),R=Math.min(R,G,Q,tt,et),C=Math.max(C,H,X,Z,j),B=Math.max(B,G,Q,tt,et)}),[D,R,C,B]}function v(L,D){return Math.sqrt(Math.pow(L[0]-D[0],2)+Math.pow(L[1]-D[1],2))+Math.sqrt(Math.pow(L[2]-D[2],2)+Math.pow(L[3]-D[3],2))}function T(L,D){var R=L[0],C=L[2],B=L[4],z=L[6],H=L[1],X=L[3],Z=L[5],j=L[7],G=D[0],Q=D[2],tt=D[4],et=D[6],at=D[1],q=D[3],pt=D[5],dt=D[7];return Math.sqrt(Math.pow(G-R,2)+Math.pow(at-H,2))+Math.sqrt(Math.pow(Q-C,2)+Math.pow(q-X,2))+Math.sqrt(Math.pow(tt-B,2)+Math.pow(pt-Z,2))+Math.sqrt(Math.pow(et-z,2)+Math.pow(dt-j,2))}function a(L,D){var R=u(L.length),C=[];R.forEach(function(z){var H=0,X=0;z.forEach(function(Z){H+=T(L[Z],D[X++])}),C.push({index:z,distance:H})}),C.sort(function(z,H){return z.distance-H.distance});var B=[];return C[0].index.forEach(function(z){B.push(L[z])}),B}function h(L,D){var R=g(L.length),C=[];R.forEach(function(z){var H=0;z.forEach(function(X){H+=v(x(L[X]),x(D[X]))}),C.push({index:z,distance:H})}),C.sort(function(z,H){return z.distance-H.distance});var B=[];return C[0].index.forEach(function(z){B.push(L[z])}),B}function u(L){for(var D=[],R=0;R<L;R++){for(var C=[],B=0;B<L;B++){var z=B+R;z>L-1&&(z-=L),C[z]=B}D.push(C)}return D}function g(L){for(var D=[],R=0;R<L;R++)D.push(R);return M(D)}function M(L){var D=[],R=[];function C(B){var z,H;for(z=0;z<B.length;z++)H=B.splice(z,1)[0],R.push(H),B.length==0&&D.push(R.slice()),C(B),B.splice(z,0,H),R.pop();return D}return C(L)}var A={};A.parser=m,A.lerpCurve=function(L,D,R){return A.lerpPoints(L[0],L[1],D[0],D[1],R).concat(A.lerpPoints(L[2],L[3],D[2],D[3],R)).concat(A.lerpPoints(L[4],L[5],D[4],D[5],R)).concat(A.lerpPoints(L[6],L[7],D[6],D[7],R))},A.lerpPoints=function(L,D,R,C,B){return[L+(R-L)*B,D+(C-D)*B]},A.q2b=function(L,D,R,C,B,z){return[L,D,(L+2*R)/3,(D+2*C)/3,(B+2*R)/3,(z+2*C)/3,B,z]},A.path2shapes=function(L){for(var D=A.parser(L),R=0,C=0,B=0,z=D.length,H=[],X=null,Z=void 0,j=void 0,G=void 0,Q=void 0,tt=void 0,et=void 0,at=void 0;B<z;B++){var q=D[B],pt=q[0],dt=D[B-1];switch(pt){case"m":tt=H.length,H[tt]=[],X=H[tt],R=R+q[1],C=C+q[2];break;case"M":tt=H.length,H[tt]=[],X=H[tt],R=q[1],C=q[2];break;case"l":X.push([R,C,R,C,R,C,R+q[1],C+q[2]]),R+=q[1],C+=q[2];break;case"L":X.push([R,C,q[1],q[2],q[1],q[2],q[1],q[2]]),R=q[1],C=q[2];break;case"h":X.push([R,C,R,C,R,C,R+q[1],C]),R+=q[1];break;case"H":X.push([R,C,q[1],C,q[1],C,q[1],C]),R=q[1];break;case"v":X.push([R,C,R,C,R,C,R,C+q[1]]),C+=q[1];break;case"V":X.push([R,C,R,q[1],R,q[1],R,q[1]]),C=q[1];break;case"C":X.push([R,C,q[1],q[2],q[3],q[4],q[5],q[6]]),R=q[5],C=q[6];break;case"S":dt[0]==="C"||dt[0]==="c"?X.push([R,C,R+dt[5]-dt[3],C+dt[6]-dt[4],q[1],q[2],q[3],q[4]]):(dt[0]==="S"||dt[0]==="s")&&X.push([R,C,R+dt[3]-dt[1],C+dt[4]-dt[2],q[1],q[2],q[3],q[4]]),R=q[3],C=q[4];break;case"c":X.push([R,C,R+q[1],C+q[2],R+q[3],C+q[4],R+q[5],C+q[6]]),R=R+q[5],C=C+q[6];break;case"s":dt[0]==="C"||dt[0]==="c"?X.push([R,C,R+dt[5]-dt[3],C+dt[6]-dt[4],R+q[1],C+q[2],R+q[3],C+q[4]]):(dt[0]==="S"||dt[0]==="s")&&X.push([R,C,R+dt[3]-dt[1],C+dt[4]-dt[2],R+q[1],C+q[2],R+q[3],C+q[4]]),R=R+q[3],C=C+q[4];break;case"a":et=f({rx:q[1],ry:q[2],px:R,py:C,xAxisRotation:q[3],largeArcFlag:q[4],sweepFlag:q[5],cx:R+q[6],cy:C+q[7]}),at=et[et.length-1],et.forEach(function(W,F){F===0?X.push([R,C,W.x1,W.y1,W.x2,W.y2,W.x,W.y]):X.push([et[F-1].x,et[F-1].y,W.x1,W.y1,W.x2,W.y2,W.x,W.y])}),R=at.x,C=at.y;break;case"A":et=f({rx:q[1],ry:q[2],px:R,py:C,xAxisRotation:q[3],largeArcFlag:q[4],sweepFlag:q[5],cx:q[6],cy:q[7]}),at=et[et.length-1],et.forEach(function(W,F){F===0?X.push([R,C,W.x1,W.y1,W.x2,W.y2,W.x,W.y]):X.push([et[F-1].x,et[F-1].y,W.x1,W.y1,W.x2,W.y2,W.x,W.y])}),R=at.x,C=at.y;break;case"Q":X.push(A.q2b(R,C,q[1],q[2],q[3],q[4])),R=q[3],C=q[4];break;case"q":X.push(A.q2b(R,C,R+q[1],C+q[2],q[3]+R,q[4]+C)),R+=q[3],C+=q[4];break;case"T":dt[0]==="Q"||dt[0]==="q"?(G=R+dt[3]-dt[1],Q=C+dt[4]-dt[2],X.push(A.q2b(R,C,G,Q,q[1],q[2]))):(dt[0]==="T"||dt[0]==="t")&&(X.push(A.q2b(R,C,R+R-G,C+C-Q,q[1],q[2])),G=R+R-G,Q=C+C-Q),R=q[1],C=q[2];break;case"t":dt[0]==="Q"||dt[0]==="q"?(G=R+dt[3]-dt[1],Q=C+dt[4]-dt[2],X.push(A.q2b(R,C,G,Q,R+q[1],C+q[2]))):(dt[0]==="T"||dt[0]==="t")&&(X.push(A.q2b(R,C,R+R-G,C+C-Q,R+q[1],C+q[2])),G=R+R-G,Q=C+C-Q),R+=q[1],C+=q[2];break;case"Z":Z=X[0][0],j=X[0][1],X.push([R,C,Z,j,Z,j,Z,j]);break;case"z":Z=X[0][0],j=X[0][1],X.push([R,C,Z,j,Z,j,Z,j]);break}}return H},A._upCurves=function(L,D){for(var R=0,C=0,B=L.length;R<D;R++)L.push(L[C].slice(0)),C++,C>B-1&&(C-=B)};function I(L,D,R,C,B,z,H,X,Z){return{left:b(L,D,R,C,B,z,H,X,Z),right:b(H,X,B,z,R,C,L,D,1-Z,!0)}}function b(L,D,R,C,B,z,H,X,Z,j){var G=(R-L)*Z+L,Q=(C-D)*Z+D,tt=(B-R)*Z+R,et=(z-C)*Z+C,at=(H-B)*Z+B,q=(X-z)*Z+z,pt=(tt-G)*Z+G,dt=(et-Q)*Z+Q,W=(at-tt)*Z+tt,F=(q-et)*Z+et,V=(W-pt)*Z+pt,J=(F-dt)*Z+dt;return j?[V,J,pt,dt,G,Q,L,D]:[L,D,G,Q,pt,dt,V,J]}A._splitCurves=function(L,D){for(var R=0,C=0;R<D;R++){var B=L[C],z=I(B[0],B[1],B[2],B[3],B[4],B[5],B[6],B[7],.5);L.splice(C,1),L.splice(C,0,z.left,z.right),C+=2,C>=L.length-1&&(C=0)}};function E(L,D){for(var R=function(z){var H=L[L.length-1],X=[];H.forEach(function(Z){X.push(Z.slice(0))}),L.push(X)},C=0;C<D;C++)R()}return A.lerp=function(L,D,R){return A._lerp(A.path2shapes(L),A.path2shapes(D),R)},A.MIM_CURVES_COUNT=100,A._preprocessing=function(L,D){var R=L.length,C=D.length,B=JSON.parse(JSON.stringify(L)),z=JSON.parse(JSON.stringify(D));return R>C?E(z,R-C):R<C&&E(B,C-R),B=h(B,z),B.forEach(function(H,X){var Z=H.length,j=z[X].length;Z>j?Z<A.MIM_CURVES_COUNT?(A._splitCurves(H,A.MIM_CURVES_COUNT-Z),A._splitCurves(z[X],A.MIM_CURVES_COUNT-j)):A._splitCurves(z[X],Z-j):Z<j&&(j<A.MIM_CURVES_COUNT?(A._splitCurves(H,A.MIM_CURVES_COUNT-Z),A._splitCurves(z[X],A.MIM_CURVES_COUNT-j)):A._splitCurves(H,j-Z))}),B.forEach(function(H,X){B[X]=a(H,z[X])}),[B,z]},A._lerp=function(L,D,R){var C=[];return L.forEach(function(B,z){var H=[];B.forEach(function(X,Z){H.push(A.lerpCurve(X,D[z][Z],R))}),C.push(H)}),C},A.animate=function(L){var D=A.path2shapes(L.from),R=A.path2shapes(L.to),C=A._preprocessing(D,R),B=new Date,z=L.end||function(){},H=L.progress||function(){},X=L.begin||function(){},Z=L.easing||function(et){return et},j=null,G=null,Q=L.time;X(D);var tt=function et(){var at=new Date-B;if(at>=Q){G=R,H(G,1),z(G),cancelAnimationFrame(j);return}var q=Z(at/Q);G=A._lerp(C[0],C[1],q),H(G,q),j=requestAnimationFrame(et)};tt()},A})},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(71),n=t(221),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute");class f extends e.default{constructor(c){super(c),this[l]({d:"",normalize:!1,fillColor:void 0,fillRule:"nonzero",strokeColor:void 0,lineWidth:1,lineJoin:"miter",lineCap:"butt",roundSegments:20,lineDash:void 0,lineDashOffset:0,miterLimit:10,texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0,clipPath:void 0})}get d(){return this[i]("d")}set d(c){this[o]("d",c)}get normalize(){return this[i]("normalize")}set normalize(c){this[o]("normalize",!!c)}get fillColor(){return this[i]("fillColor")}set fillColor(c){this[o]("fillColor",Object(n.parseColor)(c))}get fillRule(){return this[i]("fillRule")}set fillRule(c){if(c!=null&&c!=="nonzero"&&c!=="evenodd")throw new TypeError("Invalid fill rule.");this[o]("fillRule",c)}get strokeColor(){return this[i]("strokeColor")}set strokeColor(c){this[o]("strokeColor",Object(n.parseColor)(c))}get lineWidth(){return this[i]("lineWidth")}set lineWidth(c){this[o]("lineWidth",Object(s.toNumber)(c))}get lineJoin(){return this[i]("lineJoin")}set lineJoin(c){if(c!=null&&c!=="miter"&&c!=="bevel"&&c!=="round")throw new TypeError("Invalid lineJoin type.");this[o]("lineJoin",c)}get lineCap(){return this[i]("lineCap")}set lineCap(c){if(c!=null&&c!=="butt"&&c!=="square"&&c!=="round")throw new TypeError("Invalid lineCap type.");this[o]("lineCap",c)}get lineDash(){return this[i]("lineDash")}set lineDash(c){c=Object(s.toArray)(c,!0),c!=null&&!Array.isArray(c)&&(c=[c]),this[o]("lineDash",c?c.map(s.toNumber):null)}get lineDashOffset(){return this[i]("lineDashOffset")}set lineDashOffset(c){this[o]("lineDashOffset",Object(s.toNumber)(c))}get miterLimit(){return this[i]("miterLimit")}set miterLimit(c){this[o]("miterLimit",Object(s.toNumber)(c))}get roundSegments(){return this[i]("roundSegments")}set roundSegments(c){this[o]("roundSegments",c)}get texture(){return this[i]("texture")}set texture(c){this[o]("texture",c)}get textureRect(){return this[i]("textureRect")}set textureRect(c){this[o]("textureRect",c)}get sourceRect(){return this[i]("sourceRect")}set sourceRect(c){this[o]("sourceRect",c)}get textureRepeat(){return this[i]("textureRepeat")}set textureRepeat(c){this[o]("textureRepeat",!!c)}get clipPath(){return this[i]("clipPath")}set clipPath(c){this[o]("clipPath",c)}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(226),n=t(213),s=t(230);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{width:f,height:p}=this.attributes;return f>0&&p>0&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"rect")},function(d,r,t){t.r(r),t.d(r,"default",function(){return p});var e=t(228),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute"),i=Symbol.for("spritejs_declareAlias");function f(c){const{width:m,height:y}=c;return`M0 0L${m} 0L${m} ${y}L0 ${y}Z`}class p extends e.default{constructor(m){super(m),this[s]({width:0,height:0}),this[i]("size")}get d(){return this[o]("d")}set d(m){}get width(){return this[o]("width")}set width(m){if(m=Object(n.toNumber)(m),this[l]("width",m)){const y=f(this);this[l]("d",y)}}get height(){return this[o]("height")}set height(m){if(m=Object(n.toNumber)(m),this[l]("height",m)){const y=f(this);this[l]("d",y)}}get size(){return[this.width,this.height]}set size(m){m=Object(n.toArray)(m),Array.isArray(m)||(m=[m,m]),this.width=m[0],this.height=m[1]}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(232),n=t(213),s=t(235);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{sides:f}=this.attributes;return f[0]>0&&f[1]>0&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"triangle")},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(226),n=t(213),s=t(233);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{points:f}=this.attributes;return f.length>0&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"polyline")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(228),n=t(72),s=t(234);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_declareAlias");function p(m){const{points:y,smooth:O,smoothRange:x,close:v}=m,T=[];for(let h=0;h<y.length;h+=2)T.push([y[h],y[h+1]]);let a="";return O?a=Object(s.makeSmoothCurveLine)(T,x):T.length&&(a=`M${T.map(h=>h.join(" ")).join("L")}`),a&&v&&(a+="Z"),a}class c extends e.default{constructor(y){super(y),this[l]({points:[],smooth:!1,smoothRange:[0],closeType:"none"}),this[f]("close")}get d(){return this[i]("d")}set d(y){}get close(){return this.closeType!=="none"}set close(y){y=y?"normal":"none",this.closeType=y}get closeType(){return this[i]("closeType")}set closeType(y){if(y!=null&&y!=="none"&&y!=="normal")throw new TypeError("Invalid closeType type.");if(this[o]("closeType",y)){const O=p(this);this[o]("d",O)}}get smooth(){return this[i]("smooth")}set smooth(y){if(this[o]("smooth",y)){const O=p(this);this[o]("d",O)}}get smoothRange(){return this[i]("smoothRange")}set smoothRange(y){if(y&&!Array.isArray(y)&&(y=[y]),this[o]("smoothRange",y)&&this.smooth){const O=p(this);this[o]("d",O)}}get points(){return this[i]("points")}set points(y){if(y=Object(n.toArray)(y),Array.isArray(y)&&(y=y.reduce((O,x)=>Array.isArray(x)?[...O,...x.map(v=>Object(n.toNumber)(v))]:[...O,Object(n.toNumber)(x)],[])),this[o]("points",y)){const O=p(this);this[o]("d",O)}}}},function(d,r,t){t.r(r),t.d(r,"makeSmoothCurveLine",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n,s=[0]){function l(f,p=.168,c=.168){let m,y,O,x;if((n[f].x===n[f+1].x||n[f].y===n[f+1].y)&&(p=0,c=0),f<1?(m=n[0].x+(n[1].x-n[0].x)*p,y=n[0].y+(n[1].y-n[0].y)*p):(m=n[f].x+(n[f+1].x-n[f-1].x)*p,y=n[f].y+(n[f+1].y-n[f-1].y)*p),f>n.length-3){const v=n.length-1;O=n[v].x-(n[v].x-n[v-1].x)*c,x=n[v].y-(n[v].y-n[v-1].y)*c}else O=n[f+1].x-(n[f+2].x-n[f].x)*c,x=n[f+1].y-(n[f+2].y-n[f].y)*c;return[{x:m,y},{x:O,y:x}]}n=n.map(([f,p])=>({x:f,y:p}));let o="",i=0;return n.forEach((f,p)=>{if(p===0)o+=`M${f.x} ${f.y}`;else{for(;p>s[i];)i++;if(i%2){const[c,m]=l(p-1);o+=`C${[c.x,c.y,m.x,m.y,f.x,f.y].join(" ")}`}else o+=`L${f.x} ${f.y}`}}),o}},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute");function i(p){const[c,m]=p.sides;let y=p.angle%360;return y<0&&(y+=360),y=Math.PI*y/180,[0,0,c,0,m*Math.cos(y),m*Math.sin(y)]}class f extends e.default{constructor(c){super(c),this[s]({sides:[0,0],angle:60,closeType:"normal"})}get points(){return super.points}set points(c){}get sides(){return this[o]("sides")}set sides(c){if(c=Object(n.toArray)(c,!0),c!=null&&!Array.isArray(c)&&(c=[c,c]),this[l]("sides",c)){const m=i(this);super.points=m}}get angle(){return this[o]("angle")}set angle(c){if(c=Object(n.toNumber)(c),this[l]("angle",c)){const m=i(this);super.points=m}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(232),n=t(213),s=t(237);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{sides:f}=this.attributes;return f[0]>0&&f[1]>0&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"parallel")},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute");function i(p){const[c,m]=p.sides;let y=p.angle%360;y<0&&(y+=360),y=Math.PI*y/180;const O=m*Math.cos(y),x=m*Math.sin(y);return[0,0,c,0,O+c,x,O,x]}class f extends e.default{constructor(c){super(c),this[s]({sides:[0,0],angle:90,closeType:"normal"})}get points(){return super.points}set points(c){}get sides(){return this[o]("sides")}set sides(c){if(c=Object(n.toArray)(c,!0),c!=null&&!Array.isArray(c)&&(c=[c,c]),this[l]("sides",c)){const m=i(this);super.points=m}}get angle(){return this[o]("angle")}set angle(c){if(c=Object(n.toNumber)(c),this[l]("angle",c)){const m=i(this);super.points=m}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(232),n=t(213),s=t(239);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{}l(o,"Attr",s.default),n.default.registerNode(o,"regular")},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute");function i(p){const{edges:c,radius:m,offsetAngle:y}=p,O=Math.PI*y/180-.5*Math.PI;if(c<3||m<=0)return[];const x=[];for(let v=0;v<c;v++){const T=v*2*Math.PI/c+O,a=m*Math.cos(T),h=m*Math.sin(T);x.push(a,h)}return x}class f extends e.default{constructor(c){super(c),this[s]({edges:3,radius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(c){}get edges(){return this[o]("edges")}set edges(c){if(c=Object(n.toNumber)(c),this[l]("edges",c)){const m=i(this);super.points=m}}get radius(){return this[o]("radius")}set radius(c){if(c=Object(n.toNumber)(c),this[l]("radius",c)){const m=i(this);super.points=m}}get offsetAngle(){return this[o]("offsetAngle")}set offsetAngle(c){if(c=Object(n.toNumber)(c),this[l]("offsetAngle",c)){const m=i(this);super.points=m}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(232),n=t(213),s=t(241);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{}l(o,"Attr",s.default),n.default.registerNode(o,"star")},function(d,r,t){t.r(r),t.d(r,"default",function(){return f});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute");function i(p){const{angles:c,innerRadius:m,outerRadius:y,offsetAngle:O}=p,x=Math.PI*O/180-.5*Math.PI;if(c<3||m<=0||y<=0)return[];const v=[];for(let T=0;T<c*2;T++){const a=T*Math.PI/c+x,h=T%2?m:y,u=h*Math.cos(a),g=h*Math.sin(a);v.push(u,g)}return v}class f extends e.default{constructor(c){super(c),this[s]({angles:5,innerRadius:0,outerRadius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(c){}get angles(){return this[o]("angles")}set angles(c){if(c=Object(n.toNumber)(c),this[l]("angles",c)){const m=i(this);super.points=m}}get innerRadius(){return this[o]("innerRadius")}set innerRadius(c){if(c=Object(n.toNumber)(c),this[l]("innerRadius",c)){const m=i(this);super.points=m}}get outerRadius(){return this[o]("outerRadius")}set outerRadius(c){if(c=Object(n.toNumber)(c),this[l]("outerRadius",c)){const m=i(this);super.points=m}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(c){c=Object(n.toArray)(c,!0),Array.isArray(c)||(c=[c,c]),this.innerRadius=c[0],this.outerRadius=c[1]}get offsetAngle(){return this[o]("offsetAngle")}set offsetAngle(c){if(c=Object(n.toNumber)(c),this[l]("offsetAngle",c)){const m=i(this);super.points=m}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(226),n=t(213),s=t(243);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{radiusX:f,radiusY:p,startAngle:c,endAngle:m}=this.attributes;return f>0&&p>0&&c!==m&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"ellipse")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_declareAlias");function p(m){const{radiusX:y,radiusY:O,startAngle:x,endAngle:v,direction:T,closeType:a}=m,h=T==="anitclockwise",u=new e.Figure2D;return a==="sector"&&u.moveTo(0,0),u.ellipse(0,0,y,O,0,Math.PI*x/180,Math.PI*v/180,h),a!=="none"&&u.closePath(),u.path.reduce((A,I)=>A+I.join(" "),"")}class c extends n.default{constructor(y){super(y),this[l]({radiusX:0,radiusY:0,startAngle:0,endAngle:360,direction:"clockwise",closeType:"none"}),this[f]("radius","angle")}get d(){return this[i]("d")}set d(y){}get radiusX(){return this[i]("radiusX")}set radiusX(y){if(y=Object(s.toNumber)(y),this[o]("radiusX",y)){const O=p(this);this[o]("d",O)}}get radiusY(){return this[i]("radiusY")}set radiusY(y){if(y=Object(s.toNumber)(y),this[o]("radiusY",y)){const O=p(this);this[o]("d",O)}}get radius(){return[this.radiusX,this.radiusY]}set radius(y){y=Object(s.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this.radiusX=y[0],this.radiusY=y[1]}get angle(){return[this.startAngle,this.endAngle]}set angle(y){y=Object(s.toArray)(y),Array.isArray(y)||(y=[y,y]),this.startAngle=y[0],this.endAngle=y[1]}get direction(){return this[i]("direction")}set direction(y){if(y!=null&&y!=="clockwise"&&y!=="anticlockwise")throw new TypeError("Invalid direction type.");this[o]("direction",y)}get startAngle(){return this[i]("startAngle")}set startAngle(y){if(y=Object(s.toNumber)(y),this[o]("startAngle",y)){const O=p(this);this[o]("d",O)}}get endAngle(){return this[i]("endAngle")}set endAngle(y){if(y=Object(s.toNumber)(y),this[o]("endAngle",y)){const O=p(this);this[o]("d",O)}}get closeType(){return this[i]("closeType")}set closeType(y){if(y!=null&&y!=="none"&&y!=="sector"&&y!=="normal")throw new TypeError("Invalid closeType type.");if(this[o]("closeType",y)){const O=p(this);this[o]("d",O)}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(242),n=t(213),s=t(245);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{}l(o,"Attr",s.default),n.default.registerNode(o,"arc")},function(d,r,t){t.r(r),t.d(r,"default",function(){return s});var e=t(243),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);class s extends e.default{get radius(){return super.radiusX}set radius(o){o=Object(n.toNumber)(o),super.radiusX=o,super.radiusY=o}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(226),n=t(213),s=t(247);t(1).glMatrix.setMatrixArrayType(Array);function l(i,f,p){return f in i?Object.defineProperty(i,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):i[f]=p,i}class o extends e.default{get isVisible(){const{innerRadius:f,outerRadius:p,startAngle:c,endAngle:m}=this.attributes;return(f>0||p>0)&&c!==m&&super.isVisible}}l(o,"Attr",s.default),n.default.registerNode(o,"ring")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_declareAlias");function p(m){let{innerRadius:y,outerRadius:O,startAngle:x,endAngle:v}=m;const T=new e.Figure2D;if(x=Math.PI*x/180,v=Math.PI*v/180,y>O&&([y,O]=[O,y]),y<=0&&T.moveTo(0,0),T.arc(0,0,O,x,v,!1),y>0){const u=Math.PI*2;v<x&&(v=x+u+(v-x)%u),v-x>=u&&(v=x+u-1e-6),T.arc(0,0,y,v,x,!0)}return T.closePath(),T.path.reduce((u,g)=>u+g.join(" "),"")}class c extends n.default{constructor(y){super(y),this[l]({innerRadius:0,outerRadius:0,startAngle:0,endAngle:360}),this[f]("radius","angle")}get d(){return this[i]("d")}set d(y){}get innerRadius(){return this[i]("innerRadius")}set innerRadius(y){if(y=Object(s.toNumber)(y),this[o]("innerRadius",y)){const O=p(this);this[o]("d",O)}}get outerRadius(){return this[i]("outerRadius")}set outerRadius(y){if(y=Object(s.toNumber)(y),this[o]("outerRadius",y)){const O=p(this);this[o]("d",O)}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(y){y=Object(s.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this.innerRadius=y[0],this.outerRadius=y[1]}get startAngle(){return this[i]("startAngle")}set startAngle(y){if(y=Object(s.toNumber)(y),this[o]("startAngle",y)){const O=p(this);this[o]("d",O)}}get endAngle(){return this[i]("endAngle")}set endAngle(y){if(y=Object(s.toNumber)(y),this[o]("endAngle",y)){const O=p(this);this[o]("d",O)}}get angle(){return[this.startAngle,this.endAngle]}set angle(y){y=Object(s.toArray)(y),Array.isArray(y)||(y=[y,y]),this.startAngle=y[0],this.endAngle=y[1]}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return O});var e=t(12),n=t(218),s=t(219),l=t(249),o=t(213);t(1).glMatrix.setMatrixArrayType(Array);function i(x,v,T){return v in x?Object.defineProperty(x,v,{value:T,enumerable:!0,configurable:!0,writable:!0}):x[v]=T,x}const f=Symbol("textImage"),p=Symbol("textImageTask"),c=Symbol("textureContext"),m=Symbol("updateTextureRect"),y=Symbol("textCanvas");class O extends s.default{constructor(v={}){typeof v=="string"&&(v={text:v}),super(v)}get contentSize(){let[v,T]=super.contentSize;const{width:a,height:h}=this.attributes;if(a==null||h==null){const u=this[f];u&&(a==null&&(v=u.rect[2]),h==null&&(T=u.rect[3]))}return[v,T]}get text(){return this.attributes.text}set text(v){this.attributes.text=v}get textContent(){return this.attributes.text}set textContent(v){this.attributes.text=v}get textImage(){return this[f]||{}}get textImageReady(){return this[p]||Promise.resolve()}draw(v){super.draw(v);const T=this.mesh;if(T){const a=this[f];if(a){let h=T.texture;if(!h||this[c]&&this[c]!==this.renderer||a.needsUpdate?(a.needsUpdate=!1,Object(n.deleteTexture)(a.image,this.renderer),h=Object(n.createTexture)(a.image,this.renderer),this[m]=!0):h=T.uniforms.u_texSampler,this[m]){const[u,g]=a.rect.slice(2),[M,A]=this.contentSize,I=this.attributes.textAlign,b=this.attributes.verticalAlign;let E=0;I==="center"?E=(M-u)/2:(I==="right"||I==="end")&&(E=M-u);const L=this.attributes.fontSize,D=this.attributes.lineHeight;let R=0;b==="top"?R=(L-D)/2:b==="bottom"&&(R=(D-L)/2);const{paddingLeft:C,paddingTop:B}=this.attributes,{borderWidth:z}=this.attributes;E+=C+z,R+=B+z;const{anchorX:H,anchorY:X}=this.attributes;E-=this.offsetSize[0]*H,R-=this.offsetSize[1]*X,T.setTexture(h,{rect:[E,R,u,g]}),this[m]=!1,this[c]=this.renderer}}}return v}onPropertyChange(v,T,a){v==="text"||v==="fontSize"||v==="fontFamily"||v==="fontStyle"||v==="fontVariant"||v==="fontWeight"||v==="fontStretch"||v==="lineHeight"||v==="strokeColor"||v==="fillColor"||v==="strokeWidth"?this.updateText():((v==="textAlign"||v==="verticalAlign")&&(this[m]=!0),super.onPropertyChange(v,T,a))}updateContours(){super.updateContours(),this[m]=!0}updateText(){this[p]||(this[p]=Promise.resolve().then(()=>{this[p]=null;const{text:v,font:T,fillColor:a,strokeColor:h,strokeWidth:u}=this.attributes,g=this.layer?this.layer.displayRatio:1;return this[y]=this[y]||e.ENV.createCanvas(1,1),this[f]=e.ENV.createText(v,{font:T,fillColor:a,strokeColor:h,strokeWidth:u,parseFont:e.parseFont,ratio:g,textCanvas:this[y]}),this[f].needsUpdate=!0,this.updateContours(),this.forceUpdate(),this[f]}))}}i(O,"Attr",l.default),o.default.registerNode(O,"label")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(12),n=t(72),s=t(221),l=t(220);t(1).glMatrix.setMatrixArrayType(Array);const o=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),p=Symbol.for("spritejs_declareAlias");class c extends l.default{constructor(y){super(y),this[o]({text:"",fontSize:16,fontFamily:"Helvetica,Arial,sans-serif",fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",fontStretch:"normal",lineHeight:"",textAlign:"left",strokeColor:void 0,strokeWidth:1,fillColor:void 0,verticalAlign:"middle"}),this[p]("font")}get text(){return this[f]("text")||" "}set text(y){this[i]("text",y)}get fontSize(){return this[f]("fontSize")}set fontSize(y){this[i]("fontSize",Object(n.toNumber)(y))}get fontFamily(){return this[f]("fontFamily")}set fontFamily(y){this[i]("fontFamily",y)}get fontStyle(){return this[f]("fontStyle")}set fontStyle(y){this[i]("fontStyle",y)}get fontVariant(){return this[f]("fontVariant")}set fontVariant(y){this[i]("fontVariant",y)}get fontWeight(){return this[f]("fontWeight")}set fontWeight(y){this[i]("fontWeight",y)}get fontStretch(){return this[f]("fontStretch")}set fontStretch(y){this[i]("fontStretch",y)}get lineHeight(){return this[f]("lineHeight")||this.fontSize}set lineHeight(y){this[i]("lineHeight",Object(n.toNumber)(y))}get textAlign(){return this[f]("textAlign")}set textAlign(y){this[i]("textAlign",y)}get strokeColor(){return this[f]("strokeColor")}set strokeColor(y){this[i]("strokeColor",Object(s.parseColor)(y))}get strokeWidth(){return this[f]("strokeWidth")}set strokeWidth(y){this[i]("strokeWidth",Object(n.toNumber)(y))}get verticalAlign(){return this[f]("verticalAlign")}set verticalAlign(y){this[i]("verticalAlign",y)}get fillColor(){return this[f]("fillColor")}set fillColor(y){this[i]("fillColor",Object(s.parseColor)(y))}get font(){const{fontStyle:y,fontVariant:O,fontWeight:x,fontStretch:v,fontSize:T,lineHeight:a,fontFamily:h}=this;return`${y} ${O} ${x} ${v} ${T}px/${a}px ${h}`}set font(y){if(y==null)this.fontStyle=null,this.fontVariant=null,this.fontWeight=null,this.fontStretch=null,this.fontSize=null,this.lineHeight=null,this.fontFamily=null;else{const O=Object(e.parseFont)(y);this.fontStyle=O.style,this.fontVariant=O.variant,this.fontWeight=O.weight,this.fontStretch=O.stretch,this.fontSize=Object(n.toNumber)(`${O.size}${O.unit}`),O.lineHeight&&(this.lineHeight=O.pxLineHeight),this.fontFamily=O.family}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(12),n=t(219),s=t(251),l=t(213),o=t(252);t(1).glMatrix.setMatrixArrayType(Array);function i(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const f=Symbol("zOrder"),p=Symbol("ordered"),c=Symbol("children"),m=Symbol("sealed");class y extends n.default{constructor(x={}){super(x),this[c]=[],this[p]=null,this[f]=0}get childNodes(){return this[c]}get children(){return this[c]}get orderedChildren(){return this[p]||(this[p]=[...this[c]],this[p].sort((x,v)=>x.zIndex-v.zIndex||x.zOrder-v.zOrder)),this[p]}append(...x){return x.map(v=>this.appendChild(v))}appendChild(x){return x.remove(),this[c].push(x),x.connect(this,this[f]++),this[p]&&(this[p].length&&x.zIndex<this[p][this[p].length-1].zIndex?this.reorder():this[p].push(x)),x}cloneNode(x=!1){const v=super.cloneNode();return x&&this[c].forEach(T=>{const a=T.cloneNode(x);v.appendChild(a)}),v}dispatchPointerEvent(x){const v=this.orderedChildren;for(let T=v.length-1;T>=0;T--)if(v[T].dispatchPointerEvent(x))return!0;return super.dispatchPointerEvent(x)}draw(x=[]){if(this.__cacheRenderMatrix=this.renderMatrix,super.draw(x),!this[m]&&this.attributes.display!=="none"){const v=this.orderedChildren;for(let T=0;T<v.length;T++)v[T].draw(x)}return this.__cacheRenderMatrix=null,x}getElementById(x){return Object(o.querySelector)(`#${x}`,this)}getElementsByClassName(x){return Object(o.querySelectorAll)(`.${x}`,this)}getElementsByName(x){return Object(o.querySelectorAll)(`[name="${x}"]`,this)}getElementsByTagName(x){return Object(o.querySelectorAll)(x,this)}insertBefore(x,v){if(v==null)return this.appendChild(x);x.remove();const T=this[c].indexOf(v);if(T<0)throw new Error("Invalid reference node.");const a=v.zOrder;for(let h=T;h<this[c].length;h++){const u=this[c][h].zOrder,g=this[c][h];delete g.zOrder,Object.defineProperty(g,"zOrder",{value:u+1,writable:!1,configurable:!0})}if(this[c].splice(T,0,x),x.connect(this,a),this[p])if(x.zIndex!==v.zIndex)this.reorder();else{const h=this[p].indexOf(v);this[p].splice(h,0,x)}return x}querySelector(x){return Object(o.querySelector)(x,this)}querySelectorAll(x){return Object(o.querySelectorAll)(x,this)}replaceChild(x,v){x.remove();const T=this[c].indexOf(v);if(T<0)throw new Error("Invalid reference node.");if(this[c][T]=x,x.connect(this,v.zOrder),this[p])if(x.zIndex!==v.zIndex)this.reorder();else{const a=this[p].indexOf(v);this[p][a]=x}return v.disconnect(this),x}removeAllChildren(){const x=this[c];for(let v=x.length-1;v>=0;v--)x[v].remove()}removeChild(x){const v=this[c].indexOf(x);if(v>=0){if(this[c].splice(v,1),this[p]){const T=this[p].indexOf(x);this[p].splice(T,1)}return x.disconnect(this),x}return null}reorder(){this[p]=null}seal(){function x(h,u){const g=[];for(let M=0;M<h.length;M++){const A=[...h[M]];for(let I=1;I<A.length;I+=2){const b=A[I],E=A[I+1];A[I]=b*u[0]+E*u[2]+u[4],A[I+1]=b*u[1]+E*u[3]+u[5]}g.push(A)}return g}const v=this.orderedChildren,T=new e.Figure2D,a=this.localMatrix;for(let h=0;h<v.length;h++){let u=v[h];if(u instanceof y&&(u=u.seal()),u.clientBox){let g=u.clientBox.contours.path;g=x(g,u.localMatrix),T.addPath(g)}if(u.path){let g=u.path.contours.path;g=x(g,u.localMatrix),T.addPath(g)}}return this[m]=!0,this.clientBox=T,{clientBox:T,localMatrix:a}}setResolution({width:x,height:v}){super.setResolution({width:x,height:v}),this[c].forEach(T=>{T.setResolution({width:x,height:v})})}updateContours(){this[m]||super.updateContours()}}i(y,"Attr",s.default),l.default.registerNode(y,"group")},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(220);t(1).glMatrix.setMatrixArrayType(Array);class n extends e.default{}},function(d,r,t){t.r(r),t.d(r,"querySelectorAll",function(){return m}),t.d(r,"querySelector",function(){return y}),t.d(r,"isMatched",function(){return O}),t.d(r,"compile",function(){return x});var e=t(221),n=t(213);t(1).glMatrix.setMatrixArrayType(Array);const s=t(253);function l(v){return v.nodeType===1||n.default.isSpriteNode(v.nodeName)}function o(v){return Array.from(v.childNodes||[])}function i(v){return n.default.isSpriteNode(v.nodeName)?v.parent||v.canvas||v.container:v.parentElement}function f(v){let T=v.length,a,h,u;for(;--T>-1;){for(a=h=v[T],v[T]=null,u=!0;h;){if(v.indexOf(h)>-1){u=!1,v.splice(T,1);break}h=i(h)}u&&(v[T]=a)}return v}const p={isTag:l,existsOne(v,T){return T.some(a=>l(a)?v(a)||p.existsOne(v,o(a)):!1)},getSiblings(v){const T=i(v);return T&&o(T)},getChildren:o,getParent:i,getAttributeValue(v,T){if(v.nodeType===1&&T==="class"||T==="id")return v[T];if(this.hasAttrib(v,T)){let a=v.attributes[T];return Array.isArray(a)&&(a=`[${a.join()}]`),String(a)}},hasAttrib(v,T){return v.attributes[T]!=null},removeSubsets:f,getName(v){return v.tagName?v.tagName.toLowerCase():null},findOne:function v(T,a){let h=null;for(let u=0,g=a.length;u<g&&!h;u++)if(T(a[u]))h=a[u];else{const M=o(a[u]);M&&M.length>0&&(h=v(T,M))}return h},findAll:function v(T,a){let h=[];for(let u=0,g=a.length;u<g;u++){if(!l(a[u]))continue;T(a[u])&&h.push(a[u]);const M=o(a[u]);M&&(h=h.concat(v(T,M)))}return h},getText:function v(T){return Array.isArray(T)?T.map(v).join(""):l(T)?v(o(T)):T.nodeType===3?T.nodeValue:n.default.isSpriteNode(T.nodeName)?T.text:""}};function c(v){if(typeof v!="string")return v;let T=v.match(/\[(bgcolor|fillColor|strokeColor|color)\s*=\s*['"]?\w+['"]?\]/g);return T&&(T=T.map(a=>{const h=a.slice(1,-1).split("="),u=Object(e.parseColor)(h[1].replace(/['"]/g,""));return[a,`[${h[0]}="${u}"]`]}),T.forEach(([a,h])=>{v=v.replace(a,h)})),T=v.match(/\[\w+\s*=\s*['"]\[.+?\]['"]\]/g),T&&(T=T.map(a=>{const h=a.slice(1,-1).split("="),u=h[1].slice(2,-2).split(/,/g).map(g=>g.trim());return[a,`[${h[0]}="[${u}]"]`]}),T.forEach(([a,h])=>{v=v.replace(a,h)})),v}function m(v,T){return s.selectAll(c(v),T,{adapter:p})}function y(v,T){return s.selectOne(c(v),T,{adapter:p})}function O(v,T){return s.is(v,c(T),{adapter:p})}function x(v){return s.compile(c(v),{adapter:p})}},function(d,r,t){d.exports=x;var e=t(254),n=t(273).falseFunc,s=t(274);function l(v){return function(a,h,u){return h=h||{},h.adapter=h.adapter||e,v(a,h,u)}}var o=l(s),i=l(s.compileUnsafe);function f(v){return function(a,h,u){return u=u||{},u.adapter=u.adapter||e,typeof a!="function"&&(a=i(a,u,h)),a.shouldTestNextSiblings&&(h=c(u&&u.context||h,u.adapter)),Array.isArray(h)?h=u.adapter.removeSubsets(h):h=u.adapter.getChildren(h),v(a,h,u)}}function p(v,T){var a=T.getSiblings(v);if(!Array.isArray(a))return[];for(a=a.slice(0);a.shift()!==v;);return a}function c(v,T){Array.isArray(v)||(v=[v]);for(var a=v.slice(0),h=0,u=v.length;h<u;h++){var g=p(a[h],T);a.push.apply(a,g)}return a}var m=f(function(T,a,h){return T===n||!a||a.length===0?[]:h.adapter.findAll(T,a)}),y=f(function(T,a,h){return T===n||!a||a.length===0?null:h.adapter.findOne(T,a)});function O(v,T,a){return a=a||{},a.adapter=a.adapter||e,(typeof T=="function"?T:o(T,a))(v)}function x(v,T,a){return m(v,T,a)}x.compile=o,x.filters=s.Pseudos.filters,x.pseudos=s.Pseudos.pseudos,x.selectAll=m,x.selectOne=y,x.is=O,x.parse=o,x.iterate=m,x._compileUnsafe=i,x._compileToken=s.compileToken},function(d,r,t){var e=d.exports;[t(255),t(268),t(269),t(270),t(271),t(272)].forEach(function(n){Object.keys(n).forEach(function(s){e[s]=n[s].bind(e)})})},function(d,r,t){var e=t(256),n=t(257),s=e.isTag;d.exports={getInnerHTML:l,getOuterHTML:n,getText:o};function l(i,f){return i.children?i.children.map(function(p){return n(p,f)}).join(""):""}function o(i){return Array.isArray(i)?i.map(o).join(""):s(i)?i.name==="br"?`
565
+ `:o(i.children):i.type===e.CDATA?o(i.children):i.type===e.Text?i.data:""}},function(d,r){d.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(t){return t.type==="tag"||t.type==="script"||t.type==="style"}}},function(d,r,t){var e=t(258),n=t(259),s=t(267);s.elementNames.__proto__=null,s.attributeNames.__proto__=null;var l={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0};function o(v,T){if(v){var a="",h;for(var u in v)h=v[u],a&&(a+=" "),T.xmlMode==="foreign"&&(u=s.attributeNames[u]||u),a+=u,(h!==null&&h!==""||T.xmlMode)&&(a+='="'+(T.decodeEntities?n.encodeXML(h):h.replace(/\"/g,"&quot;"))+'"');return a}}var i={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},f=d.exports=function(v,T){!Array.isArray(v)&&!v.cheerio&&(v=[v]),T=T||{};for(var a="",h=0;h<v.length;h++){var u=v[h];u.type==="root"?a+=f(u.children,T):e.isTag(u)?a+=c(u,T):u.type===e.Directive?a+=m(u):u.type===e.Comment?a+=x(u):u.type===e.CDATA?a+=O(u):a+=y(u,T)}return a},p=["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"];function c(v,T){T.xmlMode==="foreign"&&(v.name=s.elementNames[v.name]||v.name,v.parent&&p.indexOf(v.parent.name)>=0&&(T=Object.assign({},T,{xmlMode:!1}))),!T.xmlMode&&["svg","math"].indexOf(v.name)>=0&&(T=Object.assign({},T,{xmlMode:"foreign"}));var a="<"+v.name,h=o(v.attribs,T);return h&&(a+=" "+h),T.xmlMode&&(!v.children||v.children.length===0)?a+="/>":(a+=">",v.children&&(a+=f(v.children,T)),(!i[v.name]||T.xmlMode)&&(a+="</"+v.name+">")),a}function m(v){return"<"+v.data+">"}function y(v,T){var a=v.data||"";return T.decodeEntities&&!(v.parent&&v.parent.name in l)&&(a=n.encodeXML(a)),a}function O(v){return"<![CDATA["+v.children[0].data+"]]>"}function x(v){return"<!--"+v.data+"-->"}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});function e(n){return n.type==="tag"||n.type==="script"||n.type==="style"}r.isTag=e,r.Text="text",r.Directive="directive",r.Comment="comment",r.Script="script",r.Style="style",r.Tag="tag",r.CDATA="cdata",r.Doctype="doctype"},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.encode=r.decodeStrict=r.decode=void 0;var e=t(260),n=t(266);function s(p,c){return(!c||c<=0?e.decodeXML:e.decodeHTML)(p)}r.decode=s;function l(p,c){return(!c||c<=0?e.decodeXML:e.decodeHTMLStrict)(p)}r.decodeStrict=l;function o(p,c){return(!c||c<=0?n.encodeXML:n.encodeHTML)(p)}r.encode=o;var i=t(266);Object.defineProperty(r,"encodeXML",{enumerable:!0,get:function(){return i.encodeXML}}),Object.defineProperty(r,"encodeHTML",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(r,"escape",{enumerable:!0,get:function(){return i.escape}}),Object.defineProperty(r,"encodeHTML4",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(r,"encodeHTML5",{enumerable:!0,get:function(){return i.encodeHTML}});var f=t(260);Object.defineProperty(r,"decodeXML",{enumerable:!0,get:function(){return f.decodeXML}}),Object.defineProperty(r,"decodeHTML",{enumerable:!0,get:function(){return f.decodeHTML}}),Object.defineProperty(r,"decodeHTMLStrict",{enumerable:!0,get:function(){return f.decodeHTMLStrict}}),Object.defineProperty(r,"decodeHTML4",{enumerable:!0,get:function(){return f.decodeHTML}}),Object.defineProperty(r,"decodeHTML5",{enumerable:!0,get:function(){return f.decodeHTML}}),Object.defineProperty(r,"decodeHTML4Strict",{enumerable:!0,get:function(){return f.decodeHTMLStrict}}),Object.defineProperty(r,"decodeHTML5Strict",{enumerable:!0,get:function(){return f.decodeHTMLStrict}}),Object.defineProperty(r,"decodeXMLStrict",{enumerable:!0,get:function(){return f.decodeXML}})},function(d,r,t){var e=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(r,"__esModule",{value:!0}),r.decodeHTML=r.decodeHTMLStrict=r.decodeXML=void 0;var n=e(t(261)),s=e(t(262)),l=e(t(263)),o=e(t(264));r.decodeXML=i(l.default),r.decodeHTMLStrict=i(n.default);function i(c){var m=Object.keys(c).join("|"),y=p(c);m+="|#[xX][\\da-fA-F]+|#\\d+";var O=new RegExp("&(?:"+m+");","g");return function(x){return String(x).replace(O,y)}}var f=function(c,m){return c<m?1:-1};r.decodeHTML=function(){for(var c=Object.keys(s.default).sort(f),m=Object.keys(n.default).sort(f),y=0,O=0;y<m.length;y++)c[O]===m[y]?(m[y]+=";?",O++):m[y]+=";";var x=new RegExp("&(?:"+m.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),v=p(n.default);function T(a){return a.substr(-1)!==";"&&(a+=";"),v(a)}return function(a){return String(a).replace(x,T)}}();function p(c){return function(y){if(y.charAt(1)==="#"){var O=y.charAt(2);return O==="X"||O==="x"?o.default(parseInt(y.substr(3),16)):o.default(parseInt(y.substr(2),10))}return c[y.slice(1,-1)]}}},function(d){d.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(d){d.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},function(d){d.exports=JSON.parse(`{"amp":"&","apos":"'","gt":">","lt":"<","quot":"\\""}`)},function(d,r,t){var e=this&&this.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(r,"__esModule",{value:!0});var n=e(t(265));function s(l){if(l>=55296&&l<=57343||l>1114111)return"�";l in n.default&&(l=n.default[l]);var o="";return l>65535&&(l-=65536,o+=String.fromCharCode(l>>>10&1023|55296),l=56320|l&1023),o+=String.fromCharCode(l),o}r.default=s},function(d){d.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},function(d,r,t){var e=this&&this.__importDefault||function(T){return T&&T.__esModule?T:{default:T}};Object.defineProperty(r,"__esModule",{value:!0}),r.escape=r.encodeHTML=r.encodeXML=void 0;var n=e(t(263)),s=p(n.default),l=c(s);r.encodeXML=O(s,l);var o=e(t(261)),i=p(o.default),f=c(i);r.encodeHTML=O(i,f);function p(T){return Object.keys(T).sort().reduce(function(a,h){return a[T[h]]="&"+h+";",a},{})}function c(T){for(var a=[],h=[],u=0,g=Object.keys(T);u<g.length;u++){var M=g[u];M.length===1?a.push("\\"+M):h.push(M)}a.sort();for(var A=0;A<a.length-1;A++){for(var I=A;I<a.length-1&&a[I].charCodeAt(1)+1===a[I+1].charCodeAt(1);)I+=1;var b=1+I-A;b<3||a.splice(A,b,a[A]+"-"+a[I])}return h.unshift("["+a.join("")+"]"),new RegExp(h.join("|"),"g")}var m=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;function y(T){return"&#x"+T.codePointAt(0).toString(16).toUpperCase()+";"}function O(T,a){return function(h){return h.replace(a,function(u){return T[u]}).replace(m,y)}}var x=c(s);function v(T){return T.replace(x,y).replace(m,y)}r.escape=v},function(d){d.exports=JSON.parse('{"elementNames":{"altglyph":"altGlyph","altglyphdef":"altGlyphDef","altglyphitem":"altGlyphItem","animatecolor":"animateColor","animatemotion":"animateMotion","animatetransform":"animateTransform","clippath":"clipPath","feblend":"feBlend","fecolormatrix":"feColorMatrix","fecomponenttransfer":"feComponentTransfer","fecomposite":"feComposite","feconvolvematrix":"feConvolveMatrix","fediffuselighting":"feDiffuseLighting","fedisplacementmap":"feDisplacementMap","fedistantlight":"feDistantLight","fedropshadow":"feDropShadow","feflood":"feFlood","fefunca":"feFuncA","fefuncb":"feFuncB","fefuncg":"feFuncG","fefuncr":"feFuncR","fegaussianblur":"feGaussianBlur","feimage":"feImage","femerge":"feMerge","femergenode":"feMergeNode","femorphology":"feMorphology","feoffset":"feOffset","fepointlight":"fePointLight","fespecularlighting":"feSpecularLighting","fespotlight":"feSpotLight","fetile":"feTile","feturbulence":"feTurbulence","foreignobject":"foreignObject","glyphref":"glyphRef","lineargradient":"linearGradient","radialgradient":"radialGradient","textpath":"textPath"},"attributeNames":{"definitionurl":"definitionURL","attributename":"attributeName","attributetype":"attributeType","basefrequency":"baseFrequency","baseprofile":"baseProfile","calcmode":"calcMode","clippathunits":"clipPathUnits","diffuseconstant":"diffuseConstant","edgemode":"edgeMode","filterunits":"filterUnits","glyphref":"glyphRef","gradienttransform":"gradientTransform","gradientunits":"gradientUnits","kernelmatrix":"kernelMatrix","kernelunitlength":"kernelUnitLength","keypoints":"keyPoints","keysplines":"keySplines","keytimes":"keyTimes","lengthadjust":"lengthAdjust","limitingconeangle":"limitingConeAngle","markerheight":"markerHeight","markerunits":"markerUnits","markerwidth":"markerWidth","maskcontentunits":"maskContentUnits","maskunits":"maskUnits","numoctaves":"numOctaves","pathlength":"pathLength","patterncontentunits":"patternContentUnits","patterntransform":"patternTransform","patternunits":"patternUnits","pointsatx":"pointsAtX","pointsaty":"pointsAtY","pointsatz":"pointsAtZ","preservealpha":"preserveAlpha","preserveaspectratio":"preserveAspectRatio","primitiveunits":"primitiveUnits","refx":"refX","refy":"refY","repeatcount":"repeatCount","repeatdur":"repeatDur","requiredextensions":"requiredExtensions","requiredfeatures":"requiredFeatures","specularconstant":"specularConstant","specularexponent":"specularExponent","spreadmethod":"spreadMethod","startoffset":"startOffset","stddeviation":"stdDeviation","stitchtiles":"stitchTiles","surfacescale":"surfaceScale","systemlanguage":"systemLanguage","tablevalues":"tableValues","targetx":"targetX","targety":"targetY","textlength":"textLength","viewbox":"viewBox","viewtarget":"viewTarget","xchannelselector":"xChannelSelector","ychannelselector":"yChannelSelector","zoomandpan":"zoomAndPan"}}')},function(d,r){var t=r.getChildren=function(n){return n.children},e=r.getParent=function(n){return n.parent};r.getSiblings=function(n){var s=e(n);return s?t(s):[n]},r.getAttributeValue=function(n,s){return n.attribs&&n.attribs[s]},r.hasAttrib=function(n,s){return!!n.attribs&&hasOwnProperty.call(n.attribs,s)},r.getName=function(n){return n.name}},function(d,r){r.removeElement=function(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){var e=t.parent.children;e.splice(e.lastIndexOf(t),1)}},r.replaceElement=function(t,e){var n=e.prev=t.prev;n&&(n.next=e);var s=e.next=t.next;s&&(s.prev=e);var l=e.parent=t.parent;if(l){var o=l.children;o[o.lastIndexOf(t)]=e}},r.appendChild=function(t,e){if(e.parent=t,t.children.push(e)!==1){var n=t.children[t.children.length-2];n.next=e,e.prev=n,e.next=null}},r.append=function(t,e){var n=t.parent,s=t.next;if(e.next=s,e.prev=t,t.next=e,e.parent=n,s){if(s.prev=e,n){var l=n.children;l.splice(l.lastIndexOf(s),0,e)}}else n&&n.children.push(e)},r.prepend=function(t,e){var n=t.parent;if(n){var s=n.children;s.splice(s.lastIndexOf(t),0,e)}t.prev&&(t.prev.next=e),e.parent=n,e.prev=t.prev,e.next=t,t.prev=e}},function(d,r,t){var e=t(256).isTag;d.exports={filter:n,find:s,findOneChild:l,findOne:o,existsOne:i,findAll:f};function n(p,c,m,y){return Array.isArray(c)||(c=[c]),(typeof y!="number"||!isFinite(y))&&(y=1/0),s(p,c,m!==!1,y)}function s(p,c,m,y){for(var O=[],x,v=0,T=c.length;v<T&&!(p(c[v])&&(O.push(c[v]),--y<=0)||(x=c[v].children,m&&x&&x.length>0&&(x=s(p,x,m,y),O=O.concat(x),y-=x.length,y<=0)));v++);return O}function l(p,c){for(var m=0,y=c.length;m<y;m++)if(p(c[m]))return c[m];return null}function o(p,c){for(var m=null,y=0,O=c.length;y<O&&!m;y++)if(e(c[y]))p(c[y])?m=c[y]:c[y].children.length>0&&(m=o(p,c[y].children));else continue;return m}function i(p,c){for(var m=0,y=c.length;m<y;m++)if(e(c[m])&&(p(c[m])||c[m].children.length>0&&i(p,c[m].children)))return!0;return!1}function f(p,c){for(var m=[],y=c.slice();y.length;){var O=y.shift();e(O)&&(O.children&&O.children.length>0&&y.unshift.apply(y,O.children),p(O)&&m.push(O))}return m}},function(d,r,t){var e=t(256),n=r.isTag=e.isTag;r.testElement=function(i,f){for(var p in i)if(i.hasOwnProperty(p)){if(p==="tag_name"){if(!n(f)||!i.tag_name(f.name))return!1}else if(p==="tag_type"){if(!i.tag_type(f.type))return!1}else if(p==="tag_contains"){if(n(f)||!i.tag_contains(f.data))return!1}else if(!f.attribs||!i[p](f.attribs[p]))return!1}return!0};var s={tag_name:function(i){return typeof i=="function"?function(f){return n(f)&&i(f.name)}:i==="*"?n:function(f){return n(f)&&f.name===i}},tag_type:function(i){return typeof i=="function"?function(f){return i(f.type)}:function(f){return f.type===i}},tag_contains:function(i){return typeof i=="function"?function(f){return!n(f)&&i(f.data)}:function(f){return!n(f)&&f.data===i}}};function l(i,f){return typeof f=="function"?function(p){return p.attribs&&f(p.attribs[i])}:function(p){return p.attribs&&p.attribs[i]===f}}function o(i,f){return function(p){return i(p)||f(p)}}r.getElements=function(i,f,p,c){var m=Object.keys(i).map(function(y){var O=i[y];return y in s?s[y](O):l(y,O)});return m.length===0?[]:this.filter(m.reduce(o),f,p,c)},r.getElementById=function(i,f,p){return Array.isArray(f)||(f=[f]),this.findOne(l("id",i),f,p!==!1)},r.getElementsByTagName=function(i,f,p,c){return this.filter(s.tag_name(i),f,p,c)},r.getElementsByTagType=function(i,f,p,c){return this.filter(s.tag_type(i),f,p,c)}},function(d,r){r.removeSubsets=function(n){for(var s=n.length,l,o,i;--s>-1;){for(l=o=n[s],n[s]=null,i=!0;o;){if(n.indexOf(o)>-1){i=!1,n.splice(s,1);break}o=o.parent}i&&(n[s]=l)}return n};var t={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},e=r.compareDocumentPosition=function(n,s){var l=[],o=[],i,f,p,c,m,y;if(n===s)return 0;for(i=n;i;)l.unshift(i),i=i.parent;for(i=s;i;)o.unshift(i),i=i.parent;for(y=0;l[y]===o[y];)y++;return y===0?t.DISCONNECTED:(f=l[y-1],p=f.children,c=l[y],m=o[y],p.indexOf(c)>p.indexOf(m)?f===s?t.FOLLOWING|t.CONTAINED_BY:t.FOLLOWING:f===n?t.PRECEDING|t.CONTAINS:t.PRECEDING)};r.uniqueSort=function(n){var s=n.length,l,o;for(n=n.slice();--s>-1;)l=n[s],o=n.indexOf(l),o>-1&&o<s&&n.splice(s,1);return n.sort(function(i,f){var p=e(i,f);return p&t.PRECEDING?-1:p&t.FOLLOWING?1:0}),n}},function(d,r){d.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},function(d,r,t){d.exports=m;var e=t(275).parse,n=t(273),s=t(278),l=t(279),o=t(280),i=t(282),f=n.trueFunc,p=n.falseFunc,c=i.filters;function m(E,L,D){var R=O(E,L,D);return y(R,L)}function y(E,L){var D=L.adapter;return function(C){return D.isTag(C)&&E(C)}}function O(E,L,D){var R=e(E,L);return g(R,L,D)}function x(E){return E.type==="pseudo"&&(E.name==="scope"||Array.isArray(E.data)&&E.data.some(function(L){return L.some(x)}))}var v={type:"descendant"},T={type:"_flexibleDescendant"},a={type:"pseudo",name:"scope"},h={};function u(E,L,D){var R=L.adapter,C=!!D&&!!D.length&&D.every(function(B){return B===h||!!R.getParent(B)});E.forEach(function(B){if(!(B.length>0&&M(B[0])&&B[0].type!=="descendant"))if(C&&!(Array.isArray(B)?B.some(x):x(B)))B.unshift(v);else return;B.unshift(a)})}function g(E,L,D){E=E.filter(function(z){return z.length>0}),E.forEach(s);var R=Array.isArray(D);D=L&&L.context||D,D&&!R&&(D=[D]),u(E,L,D);var C=!1,B=E.map(function(z){if(z[0]&&z[1]&&z[0].name==="scope"){var H=z[1].type;R&&H==="descendant"?z[1]=T:(H==="adjacent"||H==="sibling")&&(C=!0)}return A(z,L,D)}).reduce(I,p);return B.shouldTestNextSiblings=C,B}function M(E){return l[E.type]<0}function A(E,L,D){return E.reduce(function(R,C){if(R===p)return R;if(!(C.type in o))throw new Error("Rule type "+C.type+" is not supported by css-select");return o[C.type](R,C,L,D)},L&&L.rootFunc||f)}function I(E,L){return L===p||E===f?E:E===p||L===f?L:function(R){return E(R)||L(R)}}function b(E){return E.some(M)}c.not=function(E,L,D,R){var C={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),adapter:D.adapter};if(C.strict&&(L.length>1||L.some(b)))throw new Error("complex selectors in :not aren't allowed in strict mode");var B=g(L,C,R);return B===p?E:B===f?p:function(H){return!B(H)&&E(H)}},c.has=function(E,L,D){var R=D.adapter,C={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),adapter:R},B=L.some(b)?[h]:null,z=g(L,C,B);return z===p?p:z===f?function(X){return R.getChildren(X).some(R.isTag)&&E(X)}:(z=y(z,D),B?function(X){return E(X)&&(B[0]=X,R.existsOne(z,R.getChildren(X)))}:function(X){return E(X)&&R.existsOne(z,R.getChildren(X))})},c.matches=function(E,L,D,R){var C={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),rootFunc:E,adapter:D.adapter};return g(L,C,R)},m.compileToken=g,m.compileUnsafe=O,m.Pseudos=i},function(d,r,t){var e=this&&this.__createBinding||(Object.create?function(o,i,f,p){p===void 0&&(p=f),Object.defineProperty(o,p,{enumerable:!0,get:function(){return i[f]}})}:function(o,i,f,p){p===void 0&&(p=f),o[p]=i[f]}),n=this&&this.__exportStar||function(o,i){for(var f in o)f!=="default"&&!i.hasOwnProperty(f)&&e(i,o,f)};Object.defineProperty(r,"__esModule",{value:!0}),n(t(276),r);var s=t(276);Object.defineProperty(r,"parse",{enumerable:!0,get:function(){return s.default}});var l=t(277);Object.defineProperty(r,"stringify",{enumerable:!0,get:function(){return l.default}})},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.default=x;var e=/^[^\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,n=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,s=/^\s*((?:\\.|[\w\u00b0-\uFFFF-])+)\s*(?:(\S?)=\s*(?:(['"])([^]*?)\3|(#?(?:\\.|[\w\u00b0-\uFFFF-])*)|)|)\s*(i)?\]/,l={undefined:"exists","":"equals","~":"element","^":"start",$:"end","*":"any","!":"not","|":"hyphen"},o={">":"child","<":"parent","~":"sibling","+":"adjacent"},i={"#":["id","equals"],".":["class","element"]},f=new Set(["has","not","matches"]),p=new Set(["contains","icontains"]),c=new Set(['"',"'"]);function m(a,h,u){var g=parseInt(h,16)-65536;return g!==g||u?h:g<0?String.fromCharCode(g+65536):String.fromCharCode(g>>10|55296,g&1023|56320)}function y(a){return a.replace(n,m)}function O(a){return a===" "||a===`
566
+ `||a===" "||a==="\f"||a==="\r"}function x(a,h){var u=[];if(a=v(u,""+a,h),a!=="")throw new Error("Unmatched selector: "+a);return u}function v(a,h,u){var g=[],M=!1;function A(){var Q=h.match(e);if(!Q)throw new Error("Expected name, found "+h);var tt=Q[0];return h=h.substr(tt.length),y(tt)}function I(Q){for(;O(h.charAt(Q));)Q++;h=h.substr(Q)}function b(Q){for(var tt=0;h.charAt(--Q)==="\\";)tt++;return(tt&1)===1}for(I(0);h!=="";){var E=h.charAt(0);if(O(E))M=!0,I(1);else if(E in o)g.push({type:o[E]}),M=!1,I(1);else if(E===","){if(g.length===0)throw new Error("Empty sub-selector");a.push(g),g=[],M=!1,I(1)}else if(M&&(g.length>0&&g.push({type:"descendant"}),M=!1),E==="*")h=h.substr(1),g.push({type:"universal"});else if(E in i){var L=i[E],D=L[0],R=L[1];h=h.substr(1),g.push({type:"attribute",name:D,action:R,value:A(),ignoreCase:!1})}else if(E==="["){h=h.substr(1);var C=h.match(s);if(!C)throw new Error("Malformed attribute selector: "+h);h=h.substr(C[0].length);var B=y(C[1]);(!u||("lowerCaseAttributeNames"in u?u.lowerCaseAttributeNames:!u.xmlMode))&&(B=B.toLowerCase()),g.push({type:"attribute",name:B,action:l[C[2]],value:y(C[4]||C[5]||""),ignoreCase:!!C[6]})}else if(E===":"){if(h.charAt(1)===":"){h=h.substr(2),g.push({type:"pseudo-element",name:A().toLowerCase()});continue}h=h.substr(1);var z=A().toLowerCase(),C=null;if(h.charAt(0)==="(")if(f.has(z)){var H=h.charAt(1),X=c.has(H);if(h=h.substr(X?2:1),C=[],h=v(C,h,u),X){if(h.charAt(0)!==H)throw new Error("Unmatched quotes in :"+z);h=h.substr(1)}if(h.charAt(0)!==")")throw new Error("Missing closing parenthesis in :"+z+" ("+h+")");h=h.substr(1)}else{for(var Z=1,j=1;j>0&&Z<h.length;Z++)h.charAt(Z)==="("&&!b(Z)?j++:h.charAt(Z)===")"&&!b(Z)&&j--;if(j)throw new Error("Parenthesis not matched");if(C=h.substr(1,Z-2),h=h.substr(Z),p.has(z)){var H=C.charAt(0);H===C.slice(-1)&&c.has(H)&&(C=C.slice(1,-1)),C=y(C)}}g.push({type:"pseudo",name:z,data:C})}else if(e.test(h)){var G=A();(!u||("lowerCaseTags"in u?u.lowerCaseTags:!u.xmlMode))&&(G=G.toLowerCase()),g.push({type:"tag",name:G})}else return g.length&&g[g.length-1].type==="descendant"&&g.pop(),T(a,g),h}return T(a,g),h}function T(a,h){if(a.length>0&&h.length===0)throw new Error("Empty sub-selector");a.push(h)}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e={equals:"",element:"~",start:"^",end:"$",any:"*",not:"!",hyphen:"|"};function n(i){return i.map(s).join(", ")}r.default=n;function s(i){return i.map(l).join("")}function l(i){switch(i.type){case"child":return" > ";case"parent":return" < ";case"sibling":return" ~ ";case"adjacent":return" + ";case"descendant":return" ";case"universal":return"*";case"tag":return i.name;case"pseudo-element":return"::"+i.name;case"pseudo":return i.data===null?":"+i.name:typeof i.data=="string"?":"+i.name+"("+i.data+")":":"+i.name+"("+n(i.data)+")";case"attribute":return i.action==="exists"?"["+i.name+"]":i.name==="id"&&i.action==="equals"&&!i.ignoreCase?"#"+i.value:i.name==="class"&&i.action==="element"&&!i.ignoreCase?"."+i.value:"["+i.name+e[i.action]+"='"+i.value+"'"+(i.ignoreCase?"i":"")+"]";default:throw new Error("Unknown type")}}function o(i){return i}},function(d,r,t){d.exports=s;var e=t(279),n={__proto__:null,exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function s(o){for(var i=o.map(l),f=1;f<o.length;f++){var p=i[f];if(!(p<0))for(var c=f-1;c>=0&&p<i[c];c--){var m=o[c+1];o[c+1]=o[c],o[c]=m,i[c+1]=i[c],i[c]=p}}}function l(o){var i=e[o.type];if(i===e.attribute)i=n[o.action],i===n.equals&&o.name==="id"&&(i=9),o.ignoreCase&&(i>>=1);else if(i===e.pseudo)if(!o.data)i=3;else if(o.name==="has"||o.name==="contains")i=0;else if(o.name==="matches"||o.name==="not"){i=0;for(var f=0;f<o.data.length;f++)if(o.data[f].length===1){var p=l(o.data[f][0]);if(p===0){i=0;break}p>i&&(i=p)}o.data.length>1&&i>0&&(i-=1)}else i=1;return i}},function(d){d.exports=JSON.parse('{"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1}')},function(d,r,t){var e=t(281),n=t(282);d.exports={__proto__:null,attribute:e.compile,pseudo:n.compile,tag:function(s,l,o){var i=l.name,f=o.adapter;return function(c){return f.getName(c)===i&&s(c)}},descendant:function(s,l,o){var i=typeof WeakSet<"u"?new WeakSet:null,f=o.adapter;return function(c){for(var m=!1;!m&&(c=f.getParent(c));)(!i||!i.has(c))&&(m=s(c),!m&&i&&i.add(c));return m}},_flexibleDescendant:function(s,l,o){var i=o.adapter;return function(p){for(var c=s(p);!c&&(p=i.getParent(p));)c=s(p);return c}},parent:function(s,l,o){if(o&&o.strict)throw new Error("Parent selector isn't part of CSS3");var i=o.adapter;return function(c){return i.getChildren(c).some(f)};function f(p){return i.isTag(p)&&s(p)}},child:function(s,l,o){var i=o.adapter;return function(p){var c=i.getParent(p);return!!c&&s(c)}},sibling:function(s,l,o){var i=o.adapter;return function(p){for(var c=i.getSiblings(p),m=0;m<c.length;m++)if(i.isTag(c[m])){if(c[m]===p)break;if(s(c[m]))return!0}return!1}},adjacent:function(s,l,o){var i=o.adapter;return function(p){for(var c=i.getSiblings(p),m,y=0;y<c.length;y++)if(i.isTag(c[y])){if(c[y]===p)break;m=c[y]}return!!m&&s(m)}},universal:function(s){return s}}},function(d,r,t){var e=t(273).falseFunc,n=/[-[\]{}()*+?.,\\^$|#\s]/g,s={__proto__:null,equals:function(l,o,i){var f=o.name,p=o.value,c=i.adapter;return o.ignoreCase?(p=p.toLowerCase(),function(y){var O=c.getAttributeValue(y,f);return O!=null&&O.toLowerCase()===p&&l(y)}):function(y){return c.getAttributeValue(y,f)===p&&l(y)}},hyphen:function(l,o,i){var f=o.name,p=o.value,c=p.length,m=i.adapter;return o.ignoreCase?(p=p.toLowerCase(),function(O){var x=m.getAttributeValue(O,f);return x!=null&&(x.length===c||x.charAt(c)==="-")&&x.substr(0,c).toLowerCase()===p&&l(O)}):function(O){var x=m.getAttributeValue(O,f);return x!=null&&x.substr(0,c)===p&&(x.length===c||x.charAt(c)==="-")&&l(O)}},element:function(l,o,i){var f=o.name,p=o.value,c=i.adapter;if(/\s/.test(p))return e;p=p.replace(n,"\\$&");var m="(?:^|\\s)"+p+"(?:$|\\s)",y=o.ignoreCase?"i":"",O=new RegExp(m,y);return function(v){var T=c.getAttributeValue(v,f);return T!=null&&O.test(T)&&l(v)}},exists:function(l,o,i){var f=o.name,p=i.adapter;return function(m){return p.hasAttrib(m,f)&&l(m)}},start:function(l,o,i){var f=o.name,p=o.value,c=p.length,m=i.adapter;return c===0?e:o.ignoreCase?(p=p.toLowerCase(),function(O){var x=m.getAttributeValue(O,f);return x!=null&&x.substr(0,c).toLowerCase()===p&&l(O)}):function(O){var x=m.getAttributeValue(O,f);return x!=null&&x.substr(0,c)===p&&l(O)}},end:function(l,o,i){var f=o.name,p=o.value,c=-p.length,m=i.adapter;return c===0?e:o.ignoreCase?(p=p.toLowerCase(),function(O){var x=m.getAttributeValue(O,f);return x!=null&&x.substr(c).toLowerCase()===p&&l(O)}):function(O){var x=m.getAttributeValue(O,f);return x!=null&&x.substr(c)===p&&l(O)}},any:function(l,o,i){var f=o.name,p=o.value,c=i.adapter;if(p==="")return e;if(o.ignoreCase){var m=new RegExp(p.replace(n,"\\$&"),"i");return function(O){var x=c.getAttributeValue(O,f);return x!=null&&m.test(x)&&l(O)}}return function(O){var x=c.getAttributeValue(O,f);return x!=null&&x.indexOf(p)>=0&&l(O)}},not:function(l,o,i){var f=o.name,p=o.value,c=i.adapter;return p===""?function(y){return!!c.getAttributeValue(y,f)&&l(y)}:o.ignoreCase?(p=p.toLowerCase(),function(y){var O=c.getAttributeValue(y,f);return O!=null&&O.toLowerCase()!==p&&l(y)}):function(y){return c.getAttributeValue(y,f)!==p&&l(y)}}};d.exports={compile:function(l,o,i){if(i&&i.strict&&(o.ignoreCase||o.action==="not"))throw new Error("Unsupported attribute selector");return s[o.action](l,o,i)},rules:s}},function(d,r,t){var e=t(283),n=t(273),s=t(281),l=n.trueFunc,o=n.falseFunc,i=s.rules.equals;function f(T,a){var h={name:T,value:a};return function(g,M,A){return i(g,h,A)}}function p(T,a){return function(h){return!!a.getParent(h)&&T(h)}}var c={contains:function(T,a,h){var u=h.adapter;return function(M){return T(M)&&u.getText(M).indexOf(a)>=0}},icontains:function(T,a,h){var u=a.toLowerCase(),g=h.adapter;return function(A){return T(A)&&g.getText(A).toLowerCase().indexOf(u)>=0}},"nth-child":function(T,a,h){var u=e(a),g=h.adapter;return u===o?u:u===l?p(T,g):function(A){for(var I=g.getSiblings(A),b=0,E=0;b<I.length;b++)if(g.isTag(I[b])){if(I[b]===A)break;E++}return u(E)&&T(A)}},"nth-last-child":function(T,a,h){var u=e(a),g=h.adapter;return u===o?u:u===l?p(T,g):function(A){for(var I=g.getSiblings(A),b=0,E=I.length-1;E>=0;E--)if(g.isTag(I[E])){if(I[E]===A)break;b++}return u(b)&&T(A)}},"nth-of-type":function(T,a,h){var u=e(a),g=h.adapter;return u===o?u:u===l?p(T,g):function(A){for(var I=g.getSiblings(A),b=0,E=0;E<I.length;E++)if(g.isTag(I[E])){if(I[E]===A)break;g.getName(I[E])===g.getName(A)&&b++}return u(b)&&T(A)}},"nth-last-of-type":function(T,a,h){var u=e(a),g=h.adapter;return u===o?u:u===l?p(T,g):function(A){for(var I=g.getSiblings(A),b=0,E=I.length-1;E>=0;E--)if(g.isTag(I[E])){if(I[E]===A)break;g.getName(I[E])===g.getName(A)&&b++}return u(b)&&T(A)}},root:function(T,a,h){var u=h.adapter;return function(g){return!u.getParent(g)&&T(g)}},scope:function(T,a,h,u){var g=h.adapter;if(!u||u.length===0)return c.root(T,a,h);function M(A,I){return typeof g.equals=="function"?g.equals(A,I):A===I}return u.length===1?function(A){return M(u[0],A)&&T(A)}:function(A){return u.indexOf(A)>=0&&T(A)}},checkbox:f("type","checkbox"),file:f("type","file"),password:f("type","password"),radio:f("type","radio"),reset:f("type","reset"),image:f("type","image"),submit:f("type","submit"),hover:function(T,a,h){var u=h.adapter;return typeof u.isHovered=="function"?function(M){return T(M)&&u.isHovered(M)}:o},visited:function(T,a,h){var u=h.adapter;return typeof u.isVisited=="function"?function(M){return T(M)&&u.isVisited(M)}:o},active:function(T,a,h){var u=h.adapter;return typeof u.isActive=="function"?function(M){return T(M)&&u.isActive(M)}:o}};function m(T,a){for(var h=0;T&&h<T.length;h++)if(a.isTag(T[h]))return T[h]}var y={empty:function(T,a){return!a.getChildren(T).some(function(h){return a.isTag(h)||h.type==="text"})},"first-child":function(T,a){return m(a.getSiblings(T),a)===T},"last-child":function(T,a){for(var h=a.getSiblings(T),u=h.length-1;u>=0;u--){if(h[u]===T)return!0;if(a.isTag(h[u]))break}return!1},"first-of-type":function(T,a){for(var h=a.getSiblings(T),u=0;u<h.length;u++)if(a.isTag(h[u])){if(h[u]===T)return!0;if(a.getName(h[u])===a.getName(T))break}return!1},"last-of-type":function(T,a){for(var h=a.getSiblings(T),u=h.length-1;u>=0;u--)if(a.isTag(h[u])){if(h[u]===T)return!0;if(a.getName(h[u])===a.getName(T))break}return!1},"only-of-type":function(T,a){for(var h=a.getSiblings(T),u=0,g=h.length;u<g;u++)if(a.isTag(h[u])){if(h[u]===T)continue;if(a.getName(h[u])===a.getName(T))return!1}return!0},"only-child":function(T,a){for(var h=a.getSiblings(T),u=0;u<h.length;u++)if(a.isTag(h[u])&&h[u]!==T)return!1;return!0},link:function(T,a){return a.hasAttrib(T,"href")},selected:function(T,a){if(a.hasAttrib(T,"selected"))return!0;if(a.getName(T)!=="option")return!1;var h=a.getParent(T);if(!h||a.getName(h)!=="select"||a.hasAttrib(h,"multiple"))return!1;for(var u=a.getChildren(h),g=!1,M=0;M<u.length;M++)if(a.isTag(u[M]))if(u[M]===T)g=!0;else if(g){if(a.hasAttrib(u[M],"selected"))return!1}else return!1;return g},disabled:function(T,a){return a.hasAttrib(T,"disabled")},enabled:function(T,a){return!a.hasAttrib(T,"disabled")},checked:function(T,a){return a.hasAttrib(T,"checked")||y.selected(T,a)},required:function(T,a){return a.hasAttrib(T,"required")},optional:function(T,a){return!a.hasAttrib(T,"required")},parent:function(T,a){return!y.empty(T,a)},header:O(["h1","h2","h3","h4","h5","h6"]),button:function(T,a){var h=a.getName(T);return h==="button"||h==="input"&&a.getAttributeValue(T,"type")==="button"},input:O(["input","textarea","select","button"]),text:function(T,a){var h;return a.getName(T)==="input"&&(!(h=a.getAttributeValue(T,"type"))||h.toLowerCase()==="text")}};function O(T){if(typeof Set<"u"){var a=new Set(T);return function(h,u){return a.has(u.getName(h))}}return function(h,u){return T.indexOf(u.getName(h))>=0}}function x(T,a,h){if(h===null){if(T.length>2&&a!=="scope")throw new Error("pseudo-selector :"+a+" requires an argument")}else if(T.length===2)throw new Error("pseudo-selector :"+a+" doesn't have any arguments")}var v=/^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;d.exports={compile:function(T,a,h,u){var g=a.name,M=a.data,A=h.adapter;if(h&&h.strict&&!v.test(g))throw new Error(":"+g+" isn't part of CSS3");if(typeof c[g]=="function")return c[g](T,M,h,u);if(typeof y[g]=="function"){var I=y[g];return x(I,g,M),I===o?I:T===l?function(E){return I(E,A,M)}:function(E){return I(E,A,M)&&T(E)}}else throw new Error("unmatched pseudo-class :"+g)},filters:c,pseudos:y}},function(d,r,t){var e=t(284),n=t(285);d.exports=function(l){return n(e(l))},d.exports.parse=e,d.exports.compile=n},function(d,r){d.exports=e;var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;function e(n){if(n=n.trim().toLowerCase(),n==="even")return[2,0];if(n==="odd")return[2,1];var s=n.match(t);if(!s)throw new SyntaxError("n-th rule couldn't be parsed ('"+n+"')");var l;return s[1]?(l=parseInt(s[1],10),isNaN(l)&&(s[1].charAt(0)==="-"?l=-1:l=1)):l=0,[l,s[3]?parseInt((s[2]||"")+s[3],10):0]}},function(d,r,t){d.exports=l;var e=t(273),n=e.trueFunc,s=e.falseFunc;function l(o){var i=o[0],f=o[1]-1;if(f<0&&i<=0)return s;if(i===-1)return function(c){return c<=f};if(i===0)return function(c){return c===f};if(i===1)return f<0?n:function(c){return c>=f};var p=f%i;return p<0&&(p+=i),i>1?function(c){return c>=f&&c%i===p}:(i*=-1,function(c){return c<=f&&c%i===p})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return M});var e=t(12),n=t(74),s=t(1),l=t(68),o=t(250),i=t(213),f=t(218);t(1).glMatrix.setMatrixArrayType(Array);function p(A,I){if(A==null)return{};var b=c(A,I),E,L;if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(A);for(L=0;L<D.length;L++)E=D[L],!(I.indexOf(E)>=0)&&Object.prototype.propertyIsEnumerable.call(A,E)&&(b[E]=A[E])}return b}function c(A,I){if(A==null)return{};var b={},E=Object.keys(A),L,D;for(D=0;D<E.length;D++)L=E[D],!(I.indexOf(L)>=0)&&(b[L]=A[L]);return b}const m={antialias:!0,autoRender:!0,alpha:!0},y=Symbol("autoRender"),O=Symbol("renderer"),x=Symbol("timeline"),v=Symbol("prepareRender"),T=Symbol("tickRender"),a=Symbol("pass"),h=Symbol("fbo"),u=Symbol("tickers"),g=Symbol("layerTransformInvert");class M extends o.default{constructor(I={}){if(super(),!I.canvas){const{width:D,height:R}=this.getResolution(),C=e.ENV.createCanvas(D,R,{offscreen:!!I.offscreen,id:I.id,extra:I.extra});C.style&&(C.style.position="absolute"),C.dataset&&(C.dataset.layerId=I.id),C.contextType&&(I.contextType=C.contextType),I.canvas=C}const b=I.canvas,E=Object.assign({},m,I);this[y]=E.autoRender,delete I.autoRender;const L=E.Renderer||e.Renderer;this[O]=new L(b,E),this.options=I,this.id=I.id,this[a]=[],this.setResolution(b),this.canvas=b,this[x]=new n.Timeline,this.__mouseCapturedTarget=null,this[g]=null}get autoRender(){return this[y]}get displayRatio(){return this.parent&&this.parent.options?this.parent.options.displayRatio:1}get height(){const{height:I}=this.getResolution();return I/this.displayRatio}get gl(){return this.renderer.glRenderer?this.renderer.glRenderer.gl:null}get layer(){return this}get offscreen(){return!!this.options.offscreen||this.canvas._offscreen}get pass(){return this[a]}get prepareRender(){return this[v]?this[v]:Promise.resolve()}get renderer(){return this[O]}get renderOffset(){if(this.parent&&this.parent.options){const{left:I,top:b}=this.parent.options;return[I,b]}return[this.options.left|0,this.options.top|0]}get timeline(){return this[x]}get width(){const{width:I}=this.getResolution();return I/this.displayRatio}get localMatrix(){const{x:I,y:b}=this.attributes;return[1,0,0,1,I,b]}get layerTransformInvert(){if(this[g])return this[g];const I=this.transformMatrix;return I[0]===1&&I[1]===0&&I[2]===0&&I[3]===1&&I[4]===0&&I[5]===0?null:(this[g]=s.mat2d.invert(Array.of(0,0,0,0,0,0),I),this[g])}forceContextLoss(){const I=this.renderer.glRenderer;if(I){const b=I.getExtension("WEBGL_lose_context");if(b)return b.loseContext(),!0}return!1}addPass({vertex:I,fragment:b,options:E,uniforms:L}={}){if(this.renderer.glRenderer){const{width:D,height:R}=this.getResolution(),C=this.renderer.createPassProgram({vertex:I,fragment:b,options:E}),B=new e.Figure2D;B.rect(0,0,D/this.displayRatio,R/this.displayRatio);const z=new e.Mesh2D(B);return z.setUniforms(L),z.setProgram(C),this[a].push(z),this.forceUpdate(),z}return null}deleteTexture(I){return Object(f.deleteTexture)(I,this.renderer)}dispatchPointerEvent(I){const b=I.type;if(b==="mousedown"||b==="mouseup"||b==="mousemove"){const C=this.__mouseCapturedTarget;if(C){if(C.layer===this)return C.dispatchEvent(I),!0;this.__mouseCapturedTarget=null}}let E,L;const D=this.layerTransformInvert;if(D){E=I.x,L=I.y;const C=D,B=C[0]*E+C[2]*L+C[4],z=C[1]*E+C[3]*L+C[5];delete I.x,delete I.y,delete I.layerX,delete I.layerY,Object.defineProperties(I,{layerX:{value:B,configurable:!0},layerY:{value:z,configurable:!0},x:{value:B,configurable:!0},y:{value:z,configurable:!0}})}const R=super.dispatchPointerEvent(I);return D&&Object.defineProperties(I,{layerX:{value:E,configurable:!0},layerY:{value:L,configurable:!0},x:{value:E,configurable:!0},y:{value:L,configurable:!0}}),R}forceUpdate(){if(!this[v])if(this.parent&&this.parent.hasOffscreenCanvas){this.parent.forceUpdate();let I=null;const b=new Promise(E=>{I=E});b._resolve=I,this[v]=b}else{let I=null,b=null;const E=new Promise(L=>{I=L,this[y]&&(b=Object(l.requestAnimationFrame)(()=>{delete E._requestID,this.render()}))});E._resolve=I,E._requestID=b,this[v]=E}}getFBO(){const I=this.renderer.glRenderer,{width:b,height:E}=this.getResolution();return I&&(!this[h]||this[h].width!==b||this[h].height!==E)?(this[h]={width:b,height:E,target:I.createFBO(),buffer:I.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}},this[h]):this[h]?this[h]:null}updateGlobalTransform(){if(this.layerTransformInvert){const I=this.renderer,b=I.__globalTransformMatrix||I.globalTransformMatrix;I.__globalTransformMatrix=b;const E=s.mat2d.fromValues(1,0,0,1,0,0);I.setGlobalTransform(...s.mat2d.multiply(E,b,this.transformMatrix))}}onPropertyChange(I,b,E){if(super.onPropertyChange(I,b,E),I==="zIndex"&&(this.canvas.style.zIndex=b),I==="transform"||I==="translate"||I==="rotate"||I==="scale"||I==="skew"){const L=this[g];if(this[g]=null,this.updateGlobalTransform(),L&&!this.layerTransformInvert){const D=this.renderer,R=D.__globalTransformMatrix||D.globalTransformMatrix;D.setGlobalTransform(...R)}}}_prepareRenderFinished(){this[v]&&(this[v]._requestID&&Object(l.cancelAnimationFrame)(this[v]._requestID),this[v]._resolve(),delete this[v])}render({clear:I=!0}={}){const b=this[a].length?this.getFBO():null;b&&this.renderer.glRenderer.bindFBO(b.target),I&&this[O].clear();const E=this.draw();if(E&&E.length&&(this.renderer.drawMeshes(E),this.canvas.draw&&this.canvas.draw()),b){const L=this.renderer.glRenderer,D=this[a].length,{width:R,height:C}=this.getResolution(),B=[0,0,R/this.displayRatio,C/this.displayRatio];this[a].forEach((z,H)=>{z.blend=!0,z.setTexture(b.target.texture,{rect:B}),H===D-1?L.bindFBO(null):(b.swap(),L.bindFBO(b.target)),this[O].clear(),this.renderer.drawMeshes([z])})}this._prepareRenderFinished()}setResolution({width:I,height:b}){const E=this.renderer,L=E.__globalTransformMatrix||E.globalTransformMatrix,D=L[4],R=L[5],C=L[0],{width:B,height:z}=this.getResolution();(B!==I||z!==b)&&(super.setResolution({width:I,height:b}),this.canvas&&(this.canvas.width=I,this.canvas.height=b,E.updateResolution&&E.updateResolution()),this.attributes.size=[I,b],this[a].length&&this[a].forEach(j=>{const G=new e.Figure2D;G.rect(0,0,I/this.displayRatio,b/this.displayRatio),j.contours=G.contours}));const[H,X]=this.renderOffset,Z=this.displayRatio;(D!==H||R!==X||C!==Z)&&(E.setGlobalTransform(Z,0,0,Z,H,X),E.__globalTransformMatrix=null,this[g]=null,this.updateGlobalTransform(),this.forceUpdate())}tick(I=null,b={}){let{duration:E=1/0}=b,L=p(b,["duration"]);const D=this.timeline.fork(L),R=this;this[u]=this[u]||[],this[u].push({handler:I,duration:E});const C=()=>{let B=null,z=null;const H=()=>{const X=this[u].map(({handler:Z,duration:j})=>{const G=Math.min(1,D.currentTime/j);return{value:Z?Z(D.currentTime,G):null,p:G}});R[T]||(R[T]=Promise.resolve().then(()=>{R[y]&&R.render(),delete R[T];for(let Z=X.length-1;Z>=0;Z--){const{value:j,p:G}=X[Z];(j===!1||G>=1)&&this[u].splice(Z,1)}this[u].length>0&&C()}))};if(this[v]&&this[v]._type!=="ticker"&&(Object(l.cancelAnimationFrame)(this[v]._requestID),delete this[v]),!this[v]){const X=new Promise(Z=>{B=Z,z=Object(l.requestAnimationFrame)(H)});X._resolve=B,X._requestID=z,X._type="ticker",this[v]=X}};C()}toGlobalPos(I,b){if(this.layerTransformInvert){const B=this.transformMatrix;I=B[0]*I+B[2]*b+B[4],b=B[1]*I+B[3]*b+B[5]}const{width:E,height:L}=this.getResolution(),D=this.renderOffset,R=[this.canvas.clientWidth,this.canvas.clientHeight];I=I*R[0]/E+D[0],b=b*R[1]/L+D[1];const C=this.displayRatio;return I*=C,b*=C,[I,b]}toLocalPos(I,b){const{width:E,height:L}=this.getResolution(),D=this.renderOffset,R=[this.canvas.clientWidth,this.canvas.clientHeight];I=I*E/R[0]-D[0],b=b*L/R[1]-D[1];const C=this.displayRatio;I/=C,b/=C;const B=this.layerTransformInvert;return B&&(I=B[0]*I+B[2]*b+B[4],b=B[1]*I+B[3]*b+B[5]),[I,b]}}i.default.registerNode(M,"layer")},function(d,r,t){t.r(r),t.d(r,"default",function(){return v});var e=t(224),n=t(288),s=t(213),l=t(252),o=t(72);t(1).glMatrix.setMatrixArrayType(Array);function i(T,a){if(T==null)return{};var h=f(T,a),u,g;if(Object.getOwnPropertySymbols){var M=Object.getOwnPropertySymbols(T);for(g=0;g<M.length;g++)u=M[g],!(a.indexOf(u)>=0)&&Object.prototype.propertyIsEnumerable.call(T,u)&&(h[u]=T[u])}return h}function f(T,a){if(T==null)return{};var h={},u=Object.keys(T),g,M;for(M=0;M<u.length;M++)g=u[M],!(a.indexOf(g)>=0)&&(h[g]=T[g]);return h}function p(T,a,h){return a in T?Object.defineProperty(T,a,{value:h,enumerable:!0,configurable:!0,writable:!0}):T[a]=h,T}const c="http://www.w3.org/2000/svg",m=Symbol.for("spritejs_setAttribute"),y=Symbol("root"),O=Symbol("task");function x(T,a=!0){const h=T[y];if(h&&h.children[0]){const u=T.svg,g=T.layer?T.layer.displayRatio:1;if(!u.hasAttribute("data-original-width")){let I=u.getAttribute("width");I=I?Object(o.sizeToPixel)(I):300;let b=u.getAttribute("height");b=b?Object(o.sizeToPixel)(b):150,u.hasAttribute("viewBox")||u.setAttribute("viewBox",`0 0 ${Math.round(I)} ${Math.round(b)}`),u.setAttribute("data-original-width",I),u.setAttribute("data-original-height",b)}let M=T.attributes.width||Number(u.getAttribute("data-original-width")),A=T.attributes.height||Number(u.getAttribute("data-original-height"));if(M*=g,A*=g,a&&T.attributes.flexible){const I=T.attributes.scale[0];if(M*=I,A*=I,u.setAttribute("width",M),u.setAttribute("height",A),M&&A&&T.textureImage){const b=T.textureImage.width,E=T.textureImage.height,L=T.clientSize;T.attributes.textureRect=[0,0,Math.round(L[0]*b/M),Math.round(L[1]*E/A)]}}else T[O]||(u.setAttribute("width",M),u.setAttribute("height",A),T[O]=Promise.resolve().then(()=>{delete T[O];const I=h.innerHTML,b=new Blob([I],{type:"image/svg+xml"}),E=URL.createObjectURL(b),L=new Image;L.onload=function(){L.width&&L.height?(T.attributes[m]("texture",L),T.attributes.flexible&&(T.attributes.textureRect=null)):T.attributes[m]("texture",null)},L.src=E}))}}class v extends e.default{constructor(a={}){typeof a=="string"&&(a={svgText:a});let{svgText:h}=a,u=i(a,["svgText"]);if(super(u),this[y]=document.createElement("div"),h){this[y].innerHTML=h;const g=this[y].children[0];g?g.setAttribute("xmlns",c):(fetch(h).then(M=>M.text()).then(M=>{this[y].innerHTML=M,(!this.observer||this.attributes.flexible)&&x(this)}),h=null)}if(!h){const g=document.createElementNS(c,"svg");g.setAttribute("xmlns",c),this[y].appendChild(g)}if(typeof MutationObserver=="function"){const g=new MutationObserver(M=>{x(this,!1)});g.observe(this[y],{attributes:!0,subtree:!0,characterData:!0,childList:!0}),this.observer=g}}get children(){return[this.svg]}get childNodes(){return[this.svg]}get svg(){return this[y]?this[y].children[0]:null}setResolution({width:a,height:h}){super.setResolution({width:a,height:h}),x(this)}dispatchPointerEvent(a){const h=super.dispatchPointerEvent(a);if(h&&this.attributes.passEvents&&typeof MouseEvent=="function"){const{x:u,y:g}=a;let[M,A]=this.getOffsetPosition(u,g);const I=a.originalEvent,b=this.attributes.anchor,E=this.clientSize;M=(M+b[0]*E[0])/2,A=(A+b[1]*E[1])/2;const L=a.type;if(L===I.type){let D=null;if(I instanceof MouseEvent)D=new MouseEvent(L,{screenX:M,screenY:A,clientX:M,clientY:A,bubbles:I.bubbles,button:I.button,buttons:I.buttons,cancelBubble:I.cancelBubble,cancelable:I.cancelable,currentTarget:I.currentTarget,fromElement:I.fromElement,relatedTarget:I.relatedTarget,returnValue:I.returnValue,srcElement:I.srcElement,target:I.target,toElement:I.toElement,which:I.witch});else if(I instanceof TouchEvent){let R=null;const C=I.changedTouches||[I];for(let B=0;B<C.length;B++){const z=C[B];if(a.identifier===z.identifier){R=z;break}}if(R){const B=new Touch({identifier:R.identifier,target:R.target,clientX:M,clientY:A,screenX:M,screenY:A,pageX:M,pageY:A,radiusX:R.radiusX,radiusY:R.radiusY,rotationAngle:R.rotationAngle,force:R.force});D=new TouchEvent(L,{cancelable:I.cancelable,bubbles:I.bubbles,composed:I.composed,touches:[B],targetTouches:[B],changedTouches:[B]})}}else D=I;D&&this.svg.dispatchEvent(D)}}return h}getElementById(a){return Object(l.querySelector)(`#${a}`,this)}getElementsByClassName(a){return Object(l.querySelectorAll)(`.${a}`,this)}getElementsByName(a){return Object(l.querySelectorAll)(`[name="${a}"]`,this)}getElementsByTagName(a){return Object(l.querySelectorAll)(a,this)}querySelector(a){return Object(l.querySelector)(a,this)}querySelectorAll(a){return Object(l.querySelectorAll)(a,this)}onPropertyChange(a,h,u){super.onPropertyChange(a,h,u),a==="flexible"&&x(this),this.attributes.flexible&&(a==="width"||a==="height"||a==="scale"||a==="transform")&&x(this)}}p(v,"Attr",n.default),s.default.registerNode(v,"spritesvg")},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(225);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_getAttribute"),s=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_setAttributeDefault");class o extends e.default{constructor(f){super(f),this[l]({passEvents:!1,flexible:!1})}get texture(){return this[n]("texture")}set texture(f){}get passEvents(){return this[n]("passEvents")}set passEvents(f){return this[s]("passEvents",f)}get flexible(){return this[n]("flexible")}set flexible(f){return this[s]("flexible",f)}}},function(d,r,t){t.r(r);var e=t(12);t(1).glMatrix.setMatrixArrayType(Array);function n(f,p){var c=Object.keys(f);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(f);p&&(m=m.filter(function(y){return Object.getOwnPropertyDescriptor(f,y).enumerable})),c.push.apply(c,m)}return c}function s(f){for(var p=1;p<arguments.length;p++){var c=arguments[p]!=null?arguments[p]:{};p%2?n(Object(c),!0).forEach(function(m){l(f,m,c[m])}):Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(c)):n(Object(c)).forEach(function(m){Object.defineProperty(f,m,Object.getOwnPropertyDescriptor(c,m))})}return f}function l(f,p,c){return p in f?Object.defineProperty(f,p,{value:c,enumerable:!0,configurable:!0,writable:!0}):f[p]=c,f}const o=Symbol("inited");let i=null;typeof Worker=="function"&&(i=class extends Worker{constructor(f){if(f.worker===!0&&(f.worker=`./${f.id}.worker.js`),super(f.worker),this.options=f,!f.canvas){const{width:p,height:c}=this.getResolution(),m=e.ENV.createCanvas(p,c,{offscreen:!1});m.style&&(m.style.position="absolute"),m.dataset&&(m.dataset.layerId=f.id),f.canvas=m}this.canvas=f.canvas}get id(){return this.options.id}setResolution({width:f,height:p}){if(this[o])this.postMessage({type:"resolution_change",width:f,height:p});else{this.canvas.width=f,this.canvas.height=p;const c=this.options,m=c.canvas.transferControlToOffscreen(),y=s({},c);delete y.container,y.canvas=m,this.postMessage({type:"create",options:y},[m]),this[o]=!0}}getResolution(){if(this.canvas){const{width:f,height:p}=this.canvas;return{width:f,height:p}}return{width:300,height:150}}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}connect(f,p){Object.defineProperty(this,"parent",{value:f,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:p,writable:!1,configurable:!0})}disconnect(){delete this.parent,delete this.zOrder}dispatchPointerEvent(f){this.postMessage({type:"event",event:{cancelBubble:f.cancelBubble,bubbles:f.bubbles,detail:f.detail,identifier:f.identifier,layerX:f.layerX,layerY:f.layerY,originalX:f.originalX,originalY:f.originalY,type:f.type,x:f.x,y:f.y}})}}),r.default=i},function(d,r,t){t.r(r),(function(e){t.d(r,"default",function(){return M});var n=t(12),s=t(68),l=t(70),o=t(286),i=t(289),f=t(250),p=t(291),c=t(214),m=t(218),y=t(213);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("enteredTargets");function x(A){return A.id=A.id||`_layer${Math.random().toString(36).slice(2,12)}`,A.dataset||(A.dataset={}),A.dataset.layerId=A.id,A.connect=(I,b)=>{A.parent=I,Object.defineProperty(A,"zOrder",{value:b,writable:!1,configurable:!0})},A.disconnect=I=>{delete A.zOrder},A.canvas=A,A.getResolution=()=>({width:0,height:0}),A.setResolution=()=>!1,A.options={handleEvent:!1},A}function v(A,I){const b=A.children;let E=null;for(let L=0;L<b.length;L++){const D=b[L];if((I===D||E!=null)&&(E=D),E&&E!==I&&!E.offscreen)return E.canvas}return null}function T(A,I){const[b,E]=A.renderOffset,{width:L,height:D}=A.getResolution(),R=A.displayRatio;A.renderer.drawImage(I.canvas,-b/R,-E/R,L/R,D/R)}const a={};function h(A){const I=["mousedown","mouseup","mousemove","mousewheel","wheel","touchstart","touchend","touchmove","touchcancel","click","dblclick","longpress","tap","contextmenu"],b=A.container;b.addEventListener("mouseleave",E=>{const L=A[O];if(L.size){const D=new c.default("mouseleave");D.setOriginalEvent(E),[...L].forEach(R=>{R.dispatchEvent(D)}),A[O].clear()}},{passive:!0}),I.forEach(E=>{b.addEventListener(E,L=>{const{left:D,top:R,displayRatio:C}=A.options,B=A.orderedChildren;Object(p.default)(L,{offsetLeft:D,offsetTop:R,displayRatio:C}).forEach(H=>{const X=H.identifier;if(H.type==="touchmove"||H.type==="touchend"){const j=a[X];j&&j.dispatchEvent(H),H.type==="touchend"&&delete a[X]}else{for(let j=B.length-1;j>=0;j--){const G=B[j];if(G.options.handleEvent!==!1){if(G.dispatchPointerEvent(H)&&H.target!==G)break;H.cancelBubble=!1}}if(H.target===B[0])for(let j=B.length-1;j>=0;j--){const G=B[j];if(G.options.handleEvent!==!1){H.target=G;break}}}const Z=H.target;if(H.type==="touchstart"&&(a[X]=H.target),H.type==="mousemove"){const j=A[O];let G;if(Z){const et=Z.ancestors||[];G=new Set([Z,...et])}else G=new Set;const Q=Object.entries(L);if(!j.has(Z)&&Z){const et=new c.default("mouseenter");et.setOriginalEvent(L),Q.forEach(([q,pt])=>{et[q]=pt}),j.add(Z),Z.dispatchEvent(et);const at=Z.ancestors;at&&at.forEach(q=>{q instanceof l.default&&!j.has(q)&&(j.add(q),q.dispatchEvent(et))})}const tt=new c.default("mouseleave");tt.setOriginalEvent(L),Q.forEach(([et,at])=>{tt[et]=at}),[...j].forEach(et=>{G.has(et)||(j.delete(et),et.dispatchEvent(tt))})}})},{passive:E!=="contextmenu"})})}function u(A,I){if(I&&I.style){let{width:b,height:E,mode:L,container:D}=A;const{clientWidth:R,clientHeight:C}=D;b=b||R,E=E||C,L==="static"?(I.style.width=`${b}px`,I.style.height=`${E}px`):(I.style.top="0",I.style.left="0",I.style.width=`${R}px`,I.style.height=`${C}px`,I.style.transform="",I.style.webkitTransform="")}}const g=Symbol("offscreenLayerCount");class M extends f.default{constructor(I={}){if(super(),!I.container)if(typeof n.ENV.Container=="function")I.container=new n.ENV.Container(I.width||300,I.height||150);else throw new Error("No container specified.");if(this.container=I.container,this.container.style&&(this.container.style.overflow||(this.container.style.overflow="hidden"),this.container.style.position||(this.container.style.position="relative")),this.options=I,I.displayRatio=I.displayRatio||1,I.mode=I.mode||"scale",I.left=0,I.top=0,I.autoResize=I.autoResize!==!1,I.autoResize){let b;if(typeof globalThis<"u"?b=globalThis:b=typeof window<"u"?window:e,b.addEventListener){const E=this;b.addEventListener("resize",function L(){typeof document<"u"&&document.contains(E.container)?E.resize():b.removeEventListener("resize",L)})}}this[O]=new Set,this.setResolution(I),h(this),this[g]=0}get hasOffscreenCanvas(){return this[g]>0}set displayRatio(I){this.options.displayRatio!==I&&(this.options.displayRatio=I,this.resize())}get displayRatio(){return this.options.displayRatio}set height(I){this.options.height!==I&&(this.options.height=I,this.resize())}get height(){return this.options.height}set mode(I){this.options.mode!==I&&(this.options.mode=I,this.resize())}get mode(){return this.options.mode}set width(I){this.options.width!==I&&(this.options.width=I,this.resize())}get width(){return this.options.width}appendChild(I){!(I instanceof o.default)&&!(I instanceof i.default)&&x(I);const b=super.appendChild(I),E=I.canvas;return I.offscreen?this[g]++:this.container.appendChild(E),u(this.options,E),I.setResolution(this.getResolution()),b}forceUpdate(){this.hasOffscreenCanvas&&!this._requestID&&(this._requestID=Object(s.requestAnimationFrame)(()=>{delete this._requestID,this.render()}))}insertBefore(I,b){!(I instanceof o.default)&&!(I instanceof i.default)&&x(I);const E=super.insertBefore(I,b),L=I.canvas;if(!I.offscreen){const D=v(this,I);this.container.insertBefore(L,D)}return u(this.options,L),I.setResolution(this.getResolution()),E}layer(I="default",b={}){b=Object.assign({},this.options,b),b.id=I;const E=this.orderedChildren;for(let R=0;R<E.length;R++)if(E[R].id===I)return E[R];const L=b.worker;let D;return L?D=new i.default(b):D=new o.default(b),this.appendChild(D),D}async preload(...I){const b=[],E=[],L=[];for(let D=0;D<I.length;D++){const R=I[D];let C;if(typeof R=="string")C=Object(m.loadTexture)(R);else if(Array.isArray(R))C=Object(m.loadFrames)(...R);else{const{id:B,src:z}=R;C=Object(m.loadTexture)(z,B)}C instanceof Promise||(C=Promise.resolve(C)),E.push(C.then(B=>{b.push(B),L[D]=B;const z=new c.default({type:"preload",detail:{current:B,loaded:b,resources:I}});this.dispatchEvent(z)}))}return await Promise.all(E),L}removeChild(I){const b=super.removeChild(I);if(b){I._prepareRenderFinished&&I._prepareRenderFinished();const E=I.canvas;E&&E.remove&&E.remove(),I.offscreen&&this[g]--}return b}render(){const I=this.orderedChildren;let b=null;const E=[];for(let L=0;L<I.length;L++){const D=I[L],R=E.length>0;if(D instanceof o.default&&!D.offscreen)if(!D.autoRender)R&&(console.warn("Some offscreen canvas will not be rendered."),E.length=0);else if(b=D,R){D.renderer.clear();for(let C=0;C<E.length;C++){const B=E[C];B.render(),T(D,B)}E.length=0,D.render({clear:!1})}else D.prepareRender&&D.render();else D.offscreen?b?(D.prepareRender&&D.render(),T(b,D)):E.push(D):D instanceof i.default&&R&&(console.warn("Some offscreen canvas will not be rendered."),E.length=0)}}replaceChild(I,b){const E=super.replaceChild(I,b);b.canvas.remove&&b.canvas.remove(),b.offscreen&&this[g]--;const L=I.canvas;if(!I.offscreen){const D=v(this,I);this.container.insertBefore(L,D)}return u(this.options,L),I.setResolution(this.getResolution()),E}resize(){const I=this.options;this.children.forEach(b=>{u(I,b.canvas)}),this.setResolution(I),this.dispatchEvent({type:"resize"})}setResolution({width:I,height:b}={}){const E=this.container,{clientWidth:L,clientHeight:D}=E;(I==null||b==null)&&(I=I??L,b=b??D);const{mode:R,displayRatio:C}=this.options;if(I*=C,b*=C,this.options.left=0,this.options.top=0,R==="stickyHeight"||R==="stickyLeft"||R==="stickyRight"){const B=I;I=L*b/D,R==="stickyHeight"&&(this.options.left=.5*(I-B)),R==="stickyRight"&&(this.options.left=I-B)}else if(R==="stickyWidth"||R==="stickyTop"||R==="stickyBottom"){const B=b;b=D*I/L,R==="stickyWidth"&&(this.options.top=.5*(b-B)),R==="stickyBottom"&&(this.options.top=b-B)}super.setResolution({width:I,height:b})}snapshot({offscreen:I=!1,layers:b}={}){const E=I?"snapshotOffScreenCanvas":"snapshotCanvas",{width:L,height:D}=this.getResolution();this[E]=this[E]||n.ENV.createCanvas(L,D,{offscreen:I});const R=this[E].getContext("2d");b=b||this.orderedChildren,this[E].width=L,this[E].height=D;for(let C=0;C<b.length;C++){const B=b[C];if(!B.options.ignoreSnapshot){B.render&&B.render();const z=B.canvas;z&&z!==B&&R.drawImage(z,0,0,L,D)}}return this[E]}}typeof document<"u"&&(M.prototype.layer3d=function(A,I={}){const b=I.url||"https://unpkg.com/sprite-extend-3d/dist/sprite-extend-3d.min.js";return new Promise((E,L)=>{const D=document.createElement("script");D.async=!1,D.src=b,D.onload=()=>{try{E(this.layer3d(A,I))}catch(R){L(R)}},document.documentElement.appendChild(D)})}),y.default.registerNode(M,"scene")}).call(this,t(22))},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(214);t(1).glMatrix.setMatrixArrayType(Array);function n(s,{offsetTop:l=0,offsetLeft:o=0,displayRatio:i=1}={}){let f,p;const c=[],{left:m,top:y,width:O,height:x}=s.target.getBoundingClientRect(),v=s.target.width,T=s.target.height,a=s.changedTouches||[s];for(let u=0;u<a.length;u++){const g=a[u],M=g.identifier,{clientX:A,clientY:I}=g;A!=null&&I!=null&&c.push({x:Math.round((A|0)-m),y:Math.round((I|0)-y),identifier:M})}c.length<=0&&c.push({x:f,y:p});const h=[];return c.forEach(u=>{u.x!=null&&u.y!=null&&(f=(u.x*v/O-o)/i,p=(u.y*T/x-l)/i);const g=new e.default(s);Object.defineProperties(g,{layerX:{value:f,configurable:!0},layerY:{value:p,configurable:!0},originalX:{value:u.x},originalY:{value:u.y},x:{value:f,configurable:!0},y:{value:p,configurable:!0},identifier:{value:u.identifier}}),h.push(g)}),h}}]);Dt.version,Dt.Arc,Dt.Block,Dt.Cloud,Dt.Color;const xn=Dt.Ellipse;Dt.Gradient;const ne=Dt.Group,$h=Dt.Label;Dt.Layer,Dt.LayerWorker,Dt.Node,Dt.Parallel;const ge=Dt.Path,pe=Dt.Polyline,ur=Dt.Rect;Dt.Regular,Dt.Ring;const zh=Dt.Scene,Gh=Dt.Sprite;Dt.SpriteSvg,Dt.Star,Dt.Triangle,Dt.helpers,Dt.createElement,Dt.isSpriteNode,Dt.registerNode,Dt.requestAnimationFrame,Dt.cancelAnimationFrame,Dt.ENV;function Oe(d,r=!0){const t=d.length;if(t<2)return"";let e=d[0],n=d[1];if(t===2)return`M${Te(e)}L${Te(n)}`;let s="";for(let l=2,o=t-1;l<o;l++)e=d[l],n=d[l+1],s+=Me(e,n);return r?`M${Me(d[0],d[1])}Q${Te(d[1])}${Me(d[1],d[2])}T${s}${Me(d[t-1],d[0])}${Me(d[0],d[1])}Z`:`M${Te(d[0])}Q${Te(d[1])}${Me(d[1],d[2])}${d.length>3?"T":""}${s}L${Te(d[t-1])}`}var hr={exports:{}};hr.exports,function(d){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function l(i,f){if(!s[i]){s[i]={};for(var p=0;p<i.length;p++)s[i][i.charAt(p)]=p}return s[i][f]}var o={compressToBase64:function(i){if(i==null)return"";var f=o._compress(i,6,function(p){return e.charAt(p)});switch(f.length%4){default:case 0:return f;case 1:return f+"===";case 2:return f+"==";case 3:return f+"="}},decompressFromBase64:function(i){return i==null?"":i==""?null:o._decompress(i.length,32,function(f){return l(e,i.charAt(f))})},compressToUTF16:function(i){return i==null?"":o._compress(i,15,function(f){return t(f+32)})+" "},decompressFromUTF16:function(i){return i==null?"":i==""?null:o._decompress(i.length,16384,function(f){return i.charCodeAt(f)-32})},compressToUint8Array:function(i){for(var f=o.compress(i),p=new Uint8Array(f.length*2),c=0,m=f.length;c<m;c++){var y=f.charCodeAt(c);p[c*2]=y>>>8,p[c*2+1]=y%256}return p},decompressFromUint8Array:function(i){if(i==null)return o.decompress(i);for(var f=new Array(i.length/2),p=0,c=f.length;p<c;p++)f[p]=i[p*2]*256+i[p*2+1];var m=[];return f.forEach(function(y){m.push(t(y))}),o.decompress(m.join(""))},compressToEncodedURIComponent:function(i){return i==null?"":o._compress(i,6,function(f){return n.charAt(f)})},decompressFromEncodedURIComponent:function(i){return i==null?"":i==""?null:(i=i.replace(/ /g,"+"),o._decompress(i.length,32,function(f){return l(n,i.charAt(f))}))},compress:function(i){return o._compress(i,16,function(f){return t(f)})},_compress:function(i,f,p){if(i==null)return"";var c,m,y={},O={},x="",v="",T="",a=2,h=3,u=2,g=[],M=0,A=0,I;for(I=0;I<i.length;I+=1)if(x=i.charAt(I),Object.prototype.hasOwnProperty.call(y,x)||(y[x]=h++,O[x]=!0),v=T+x,Object.prototype.hasOwnProperty.call(y,v))T=v;else{if(Object.prototype.hasOwnProperty.call(O,T)){if(T.charCodeAt(0)<256){for(c=0;c<u;c++)M=M<<1,A==f-1?(A=0,g.push(p(M)),M=0):A++;for(m=T.charCodeAt(0),c=0;c<8;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1}else{for(m=1,c=0;c<u;c++)M=M<<1|m,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=0;for(m=T.charCodeAt(0),c=0;c<16;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1}a--,a==0&&(a=Math.pow(2,u),u++),delete O[T]}else for(m=y[T],c=0;c<u;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1;a--,a==0&&(a=Math.pow(2,u),u++),y[v]=h++,T=String(x)}if(T!==""){if(Object.prototype.hasOwnProperty.call(O,T)){if(T.charCodeAt(0)<256){for(c=0;c<u;c++)M=M<<1,A==f-1?(A=0,g.push(p(M)),M=0):A++;for(m=T.charCodeAt(0),c=0;c<8;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1}else{for(m=1,c=0;c<u;c++)M=M<<1|m,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=0;for(m=T.charCodeAt(0),c=0;c<16;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1}a--,a==0&&(a=Math.pow(2,u),u++),delete O[T]}else for(m=y[T],c=0;c<u;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1;a--,a==0&&(a=Math.pow(2,u),u++)}for(m=2,c=0;c<u;c++)M=M<<1|m&1,A==f-1?(A=0,g.push(p(M)),M=0):A++,m=m>>1;for(;;)if(M=M<<1,A==f-1){g.push(p(M));break}else A++;return g.join("")},decompress:function(i){return i==null?"":i==""?null:o._decompress(i.length,32768,function(f){return i.charCodeAt(f)})},_decompress:function(i,f,p){var c=[],m=4,y=4,O=3,x="",v=[],T,a,h,u,g,M,A,I={val:p(0),position:f,index:1};for(T=0;T<3;T+=1)c[T]=T;for(h=0,g=Math.pow(2,2),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;switch(h){case 0:for(h=0,g=Math.pow(2,8),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;A=t(h);break;case 1:for(h=0,g=Math.pow(2,16),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;A=t(h);break;case 2:return""}for(c[3]=A,a=A,v.push(A);;){if(I.index>i)return"";for(h=0,g=Math.pow(2,O),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;switch(A=h){case 0:for(h=0,g=Math.pow(2,8),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;c[y++]=t(h),A=y-1,m--;break;case 1:for(h=0,g=Math.pow(2,16),M=1;M!=g;)u=I.val&I.position,I.position>>=1,I.position==0&&(I.position=f,I.val=p(I.index++)),h|=(u>0?1:0)*M,M<<=1;c[y++]=t(h),A=y-1,m--;break;case 2:return v.join("")}if(m==0&&(m=Math.pow(2,O),O++),c[A])x=c[A];else if(A===y)x=a+a.charAt(0);else return null;v.push(x),c[y++]=a+x.charAt(0),m--,a=x,m==0&&(m=Math.pow(2,O),O++)}}};return o}();d!=null?d.exports=r:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return r})}(hr);var Tn=hr.exports;function Ie(d){return JSON.parse(Tn.decompress(d))}function qt(d){return Tn.compress(JSON.stringify(d))}class Mn extends yt{constructor(t){super(t);nt(this,"canRotate",!0);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Pencil);nt(this,"syncTimestamp");nt(this,"syncIndex",0);nt(this,"tmpPoints",[]);nt(this,"MAX_REPEAR",10);nt(this,"uniThickness");nt(this,"workOptions");nt(this,"centerPos",[0,0]);this.workOptions=t.toolsOpt,this.uniThickness=this.MAX_REPEAR/this.workOptions.thickness/10,this.syncTimestamp=0}combineConsume(){var o;const t=(o=this.workId)==null?void 0:o.toString(),e=this.transformDataAll(!0),n={name:t};let s;const l=this.drawLayer||this.fullLayer;return e.length&&(s=this.draw({attrs:n,tasks:e,replaceId:t,layer:l,isClearAll:!0})),{rect:s,type:ct.DrawWork,dataType:Tt.Local}}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){var T;const{data:e,isFullWork:n,isClearAll:s,isSubWorker:l,isMainThread:o}=t;if(((T=e.op)==null?void 0:T.length)===0)return{type:ct.None};const{workId:i}=e,{tasks:f,effects:p,consumeIndex:c}=this.transformData(e,!1);this.syncIndex=Math.min(this.syncIndex,c,Math.max(0,this.tmpPoints.length-2));const m={name:i==null?void 0:i.toString()};let y,O=!1;const x=this.syncIndex;if(this.syncTimestamp===0&&(this.syncTimestamp=Date.now()),f.length&&(f[0].taskId-this.syncTimestamp>this.syncUnitTime&&(O=!0,this.syncTimestamp=f[0].taskId,this.syncIndex=this.tmpPoints.length),l||o)){const a=n?this.fullLayer:this.drawLayer||this.fullLayer;y=this.draw({attrs:m,tasks:f,effects:p,layer:a,isClearAll:s})}if(l)return c>10&&this.tmpPoints.splice(0,c-10),{rect:y,type:ct.DrawWork,dataType:Tt.Local};const v=[];return this.tmpPoints.slice(x).forEach(a=>{v.push(a.x,a.y,this.computRadius(a.z,this.workOptions.thickness))}),{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:O?i:void 0,op:O?v:void 0,index:O?x*3:void 0}}consumeAll(t){var p,c;if(t.data){const{op:m,workState:y}=t.data;m!=null&&m.length&&y===Rt.Done&&this.workOptions.strokeType===Vt.Stroke&&this.updateTempPointsWithPressureWhenDone(m)}const e=(p=this.workId)==null?void 0:p.toString();if(!e)return{type:ct.None};const n=this.transformDataAll(!0),s={name:e};let l;const o=this.fullLayer;n.length&&(l=this.draw({attrs:s,tasks:n,replaceId:e,layer:o,isClearAll:!1}));const i=[];this.tmpPoints.map(m=>{i.push(m.x,m.y,this.computRadius(m.z,this.workOptions.thickness))}),this.syncTimestamp=0,delete this.workOptions.syncUnitTime;const f=qt(i);return(c=this.vNodes)==null||c.setInfo(e,{rect:l,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:l&&yt.getCenterPos(l,o)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:e,ops:f,updateNodeOpt:{pos:this.centerPos,useAnimation:!0},opt:this.workOptions}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var c,m;const{op:e,isFullWork:n,replaceId:s,isClearAll:l}=t;this.tmpPoints.length=0;for(let y=0;y<e.length;y+=3){const O=new xt(e[y],e[y+1],e[y+2]);if(this.tmpPoints.length>0){const x=this.tmpPoints[this.tmpPoints.length-1],v=_.Sub(O,x).uni();O.setv(v)}this.tmpPoints.push(O)}const o=this.transformDataAll(!1),i=(c=this.workId)==null?void 0:c.toString(),f={name:i};let p;if(i&&o.length){const y=n?this.fullLayer:this.drawLayer||this.fullLayer;p=this.draw({attrs:f,tasks:o,replaceId:s,layer:y,isClearAll:l}),(m=this.vNodes)==null||m.setInfo(i,{rect:p,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:p&&yt.getCenterPos(p,y)})}return p}transformDataAll(t=!0){return this.getTaskPoints(this.tmpPoints,t&&this.workOptions.thickness||void 0)}draw(t){var g;const{attrs:e,tasks:n,replaceId:s,effects:l,layer:o,isClearAll:i}=t,{strokeColor:f,strokeType:p,thickness:c,zIndex:m,scale:y,rotate:O,translate:x}=this.workOptions;i&&o.removeAllChildren(),s&&(this.fullLayer.getElementsByName(s+"").map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(s+"").map(M=>M.remove())),l!=null&&l.size&&(l.forEach(M=>{var A;(A=o.getElementById(M+""))==null||A.remove()}),l.clear());let v;const T=[],a=o.worldPosition,h=o.worldScaling;for(let M=0;M<n.length;M++){const{pos:A,points:I,taskId:b}=n[M];e.id=b.toString();const{ps:E,rect:L}=this.computDrawPoints(I);let D;const R=I.length===1;p===Vt.Stroke||R?D=Oe(E,!0):D=Oe(E,!1);const C={pos:A,d:D,fillColor:p===Vt.Stroke||R?f:void 0,lineDash:p===Vt.Dotted&&!R?[1,c*2]:p===Vt.LongDotted&&!R?[c,c*2]:void 0,strokeColor:f,lineCap:p===Vt.Stroke||R?void 0:"round",lineWidth:p===Vt.Stroke||R?0:c};v=Ot(v,{x:Math.floor((L.x+A[0])*h[0]+a[0]-yt.SafeBorderPadding),y:Math.floor((L.y+A[1])*h[1]+a[1]-yt.SafeBorderPadding),w:Math.floor(L.w*h[0]+2*yt.SafeBorderPadding),h:Math.floor(L.h*h[1]+2*yt.SafeBorderPadding)}),T.push(C)}y&&(e.scale=y),O&&(e.rotate=O),x&&(e.translate=x);const u=new ne;if(v){this.centerPos=yt.getCenterPos(v,o),u.attr({...e,normalize:!0,id:e.name,anchor:[.5,.5],bgcolor:p===Vt.Stroke?f:void 0,pos:this.centerPos,size:[(v.w-2*yt.SafeBorderPadding)/h[0],(v.h-2*yt.SafeBorderPadding)/h[1]],zIndex:m});const M=T.map(A=>(A.pos=[A.pos[0]-this.centerPos[0],A.pos[1]-this.centerPos[1]],new ge(A)));u.append(...M),p===Vt.Stroke&&u.seal(),o.append(u)}if(y||O||x){const M=u==null?void 0:u.getBoundingClientRect();if(M)return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}return v}computDrawPoints(t){return this.workOptions.strokeType===Vt.Stroke||t.length===1?this.computStroke(t):this.computNomal(t)}computNomal(t){let e=this.workOptions.thickness;const n=t.map(s=>(e=Math.max(e,s.radius),s.point));return{ps:n,rect:Bt(n,e)}}computStroke(t){return t.length===1?this.computDotStroke(t[0]):this.computLineStroke(t)}computLineStroke(t){const e=[],n=[];for(let f=0;f<t.length;f++){const{point:p,radius:c}=t[f];let m=p.v;f===0&&t.length>1&&(m=t[f+1].point.v);const y=_.Per(m).mul(c);e.push(xt.Sub(p,y)),n.push(xt.Add(p,y))}const s=t[t.length-1],l=xt.GetSemicircleStroke(s.point,e[e.length-1],-1,8),o=xt.GetSemicircleStroke(t[0].point,n[0],-1,8),i=e.concat(l,n.reverse(),o);return{ps:i,rect:Bt(i)}}computDotStroke(t){const{point:e,radius:n}=t,s={x:e.x-n,y:e.y-n,w:n*2,h:n*2};return{ps:xt.GetDotStroke(e,n,8),rect:s}}transformData(t,e){const{op:n,workState:s}=t;let l=this.tmpPoints.length-1,o=[];if(n!=null&&n.length&&s){const{strokeType:i,thickness:f}=this.workOptions,p=new Set;l=i===Vt.Stroke?this.updateTempPointsWithPressure(n,f,p):this.updateTempPoints(n,f,p);const c=e?this.tmpPoints:this.tmpPoints.slice(l);return o=this.getTaskPoints(c,f),{tasks:o,effects:p,consumeIndex:l}}return{tasks:o,consumeIndex:l}}computRadius(t,e){return t*.03*e+e*.5}getMinZ(t,e){return((e||Math.max(1,Math.floor(t*.3)))-t*.5)*100/t/3}getTaskPoints(t,e){var c;const n=[];if(t.length===0)return[];let s=0,l=t[0].x,o=t[0].y,i=[l,o],f=[],p=t[0].t;for(;s<t.length;){const m=t[s],y=m.x-l,O=m.y-o,x=m.z,v=e?this.computRadius(x,e):x;if(f.push({point:new xt(y,O,x,t[s].v),radius:v}),s>0&&s<t.length-1){const T=t[s].getAngleByPoints(t[s-1],t[s+1]);if(T<90||T>270){const a=(c=f.pop())==null?void 0:c.point.clone();a&&n.push({taskId:p,pos:i,points:[...f,{point:a,radius:v}]}),l=t[s].x,o=t[s].y,i=[l,o];const h=m.x-l,u=m.y-o;f=[{point:new xt(h,u,x),radius:v}],p=Date.now()}}s++}return n.push({taskId:p,pos:i,points:f}),n}updateTempPointsWithPressure(t,e,n){const s=Date.now(),l=this.tmpPoints.length;let o=l;for(let f=0;f<t.length;f+=2){o=Math.min(o,l);const p=this.tmpPoints.length,c=new xt(t[f],t[f+1]);if(p===0){this.tmpPoints.push(c);continue}const m=p-1,y=this.tmpPoints[m],O=_.Sub(c,y).uni();if(c.isNear(y,e)){if(y.z<this.MAX_REPEAR){if(y.setz(Math.min(y.z+1,this.MAX_REPEAR)),o=Math.min(o,m),p>1){let T=p-1;for(;T>0;){const a=this.tmpPoints[T].distance(this.tmpPoints[T-1]),h=Math.max(this.tmpPoints[T].z-this.uniThickness*a,0);if(this.tmpPoints[T-1].z>=h)break;this.tmpPoints[T-1].setz(h),o=Math.min(o,T-1),T--}}}else o=1/0;continue}c.setv(O);const x=c.distance(y),v=Math.max(y.z-this.uniThickness*x,0);p>1&&_.Equals(O,y.v,.02)&&(v>0||y.z<=0)&&(n&&y.t&&n.add(y.t),this.tmpPoints.pop(),o=Math.min(m,o)),c.setz(v),this.tmpPoints.push(c)}if(o===1/0)return this.tmpPoints.length;let i=l;if(o===l){i=Math.max(i-1,0);const f=this.tmpPoints[i].t;f&&(n==null||n.add(f))}else{let f=l-1;for(i=o;f>=0;){const p=this.tmpPoints[f].t;if(p&&(n==null||n.add(p),f<=o)){i=f,f=-1;break}f--}}return this.tmpPoints[i].setT(s),i}updateTempPoints(t,e,n){var f;const s=Date.now(),l=this.tmpPoints.length;let o=l;for(let p=0;p<t.length;p+=2){const c=this.tmpPoints.length,m=new xt(t[p],t[p+1]);if(c===0){this.tmpPoints.push(m);continue}const y=c-1,O=this.tmpPoints[y],x=_.Sub(m,O).uni();if(m.isNear(O,e/2)){o=Math.min(y,o);continue}_.Equals(x,O.v,.02)&&(n&&O.t&&n.add(O.t),this.tmpPoints.pop(),o=Math.min(y,o)),m.setv(x),this.tmpPoints.push(m)}let i=l;if(o===l){i=Math.max(i-1,0);const p=this.tmpPoints[i].t;p&&(n==null||n.add(p))}else{let p=Math.min(l-1,o);for(i=o;p>=0;){const c=(f=this.tmpPoints[p])==null?void 0:f.t;if(c&&(n==null||n.add(c),p<=o)){i=p,p=-1;break}p--}}return this.tmpPoints[i].setT(s),i}updateTempPointsWithPressureWhenDone(t){const{thickness:e}=this.workOptions,n=t.length,s=this.getMinZ(e);for(let l=0;l<n;l+=2){const o=this.tmpPoints.length,i=new xt(t[l],t[l+1]);if(o===0){this.tmpPoints.push(i);continue}const f=o-1,p=this.tmpPoints[f],c=_.Sub(i,p).uni(),m=i.distance(p);if(o>1&&p.z===s)break;if(i.isNear(p,e/2)){if(n<3&&p.z<this.MAX_REPEAR&&(p.setz(Math.min(p.z+1,this.MAX_REPEAR)),o>1)){let O=o-1;for(;O>0;){const x=this.tmpPoints[O].distance(this.tmpPoints[O-1]),v=Math.max(this.tmpPoints[O].z-this.uniThickness*x,-e/4);if(this.tmpPoints[O-1].z>=v)break;this.tmpPoints[O-1].setz(v),O--}}continue}i.setv(c);const y=Math.max(p.z-this.uniThickness*m,s);o>1&&_.Equals(c,p.v,.02)&&p.z<=0&&this.tmpPoints.pop(),i.setz(y),this.tmpPoints.push(i)}}static updateNodeOpt(t){var i;const{node:e,opt:n,vNodes:s}=t,{strokeColor:l}=n,o=s.get(e.name);return l&&(e.tagName==="GROUP"?wh(e)?e.setAttribute("bgcolor",l):e.children.forEach(f=>{f.setAttribute("strokeColor",l),f.getAttribute("fillColor")&&f.setAttribute("fillColor",l)}):(e.setAttribute("strokeColor",l),e.setAttribute("fillColor",l)),(i=o==null?void 0:o.opt)!=null&&i.strokeColor&&(o.opt.strokeColor=l)),o&&s.setInfo(e.name,o),yt.updateNodeOpt(t)}}class On extends yt{constructor(t){super(t);nt(this,"toolsType",ht.LaserPen);nt(this,"canRotate",!1);nt(this,"scaleType",jt.none);nt(this,"syncTimestamp");nt(this,"syncIndex",0);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"consumeIndex",0);this.workOptions=t.toolsOpt,this.syncTimestamp=0}combineConsume(){}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:e,isSubWorker:n}=t,{workId:s,op:l}=e;if((l==null?void 0:l.length)===0)return{type:ct.None};if(this.updateTempPoints(l||[]),this.consumeIndex>this.tmpPoints.length-4)return{type:ct.None};const{strokeColor:o,thickness:i,strokeType:f}=this.workOptions,p=Bt(this.tmpPoints,i);let c=!1;const m=this.syncIndex,y=this.tmpPoints.slice(this.consumeIndex);this.consumeIndex=this.tmpPoints.length-1,this.syncTimestamp===0&&(this.syncTimestamp=Date.now());const O={name:s==null?void 0:s.toString(),opacity:1,lineDash:f===Vt.Dotted?[1,i*2]:f===Vt.LongDotted?[i,i*2]:void 0,strokeColor:o,lineCap:"round",lineWidth:i,anchor:[.5,.5]},x=this.getTaskPoints(y);if(x.length){const T=Date.now();T-this.syncTimestamp>this.syncUnitTime&&(c=!0,this.syncTimestamp=T,this.syncIndex=this.tmpPoints.length),n&&this.draw({attrs:O,tasks:x,isDot:!1,layer:this.drawLayer||this.fullLayer})}const v=[];return this.tmpPoints.slice(m).forEach(T=>{v.push(T.x,T.y)}),{rect:{x:p.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:p.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:p.w*this.fullLayer.worldScaling[0],h:p.h*this.fullLayer.worldScaling[1]},type:ct.DrawWork,dataType:Tt.Local,workId:c?s:void 0,op:c?v:void 0,index:c?m*2:void 0}}consumeAll(){var l;const t=(l=this.workId)==null?void 0:l.toString();let e;if(this.tmpPoints.length-1>this.consumeIndex){let o=this.tmpPoints.slice(this.consumeIndex);const i=o.length===1,{strokeColor:f,thickness:p,strokeType:c}=this.workOptions;if(i){const O=this.computDotStroke({point:o[0],radius:p/2});o=O.ps,e=O.rect}else e=Bt(this.tmpPoints,p);const m={name:t==null?void 0:t.toString(),fillColor:i?f:void 0,opacity:1,lineDash:c===Vt.Dotted&&!i?[1,p*2]:c===Vt.LongDotted&&!i?[p,p*2]:void 0,strokeColor:f,lineCap:i?void 0:"round",lineWidth:i?0:p,anchor:[.5,.5]},y=this.getTaskPoints(o);y.length&&this.draw({attrs:m,tasks:y,isDot:i,layer:this.drawLayer||this.fullLayer})}const n=[];this.tmpPoints.forEach(o=>{n.push(o.x,o.y)});const s=qt(n);return{rect:e&&{x:e.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:e.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:e.w*this.fullLayer.worldScaling[0],h:e.h*this.fullLayer.worldScaling[1]},type:ct.FullWork,dataType:Tt.Local,workId:t,ops:s,index:this.syncIndex*2}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var x;const{op:e,replaceId:n,isFullWork:s}=t,{strokeColor:l,thickness:o,strokeType:i}=this.workOptions;if(!e.length){const v=Bt(this.tmpPoints,o);return{x:v.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:v.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:v.w*this.fullLayer.worldScaling[0],h:v.h*this.fullLayer.worldScaling[1]}}const f=Math.max(0,this.tmpPoints.length-1);this.updateTempPoints(e||[]);let p,c=this.tmpPoints.slice(f);const m=c.length===1;if(m){const v=this.computDotStroke({point:c[0],radius:o/2});c=v.ps,p=v.rect}else p=Bt(this.tmpPoints,o);const y={name:(x=this.workId)==null?void 0:x.toString(),fillColor:m?l:void 0,opacity:1,lineDash:i===Vt.Dotted&&!m?[1,o*2]:i===Vt.LongDotted&&!m?[o,o*2]:void 0,strokeColor:l,lineCap:m?void 0:"round",lineWidth:m?0:o,anchor:[.5,.5]},O=this.getTaskPoints(c);if(O.length){const v=s?this.fullLayer:this.drawLayer||this.fullLayer;this.draw({attrs:y,tasks:O,isDot:m,replaceId:n,layer:v})}return{x:p.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:p.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:p.w*this.fullLayer.worldScaling[0],h:p.h*this.fullLayer.worldScaling[1]}}computDotStroke(t){const{point:e,radius:n}=t,s={x:e.x-n,y:e.y-n,w:n*2,h:n*2};return{ps:xt.GetDotStroke(e,n,8),rect:s}}updateTempPoints(t){const e=this.tmpPoints.length;for(let n=0;n<t.length;n+=2){if(e){const s=this.tmpPoints.slice(-1)[0];s&&s.x===t[n]&&s.y===t[n+1]&&this.tmpPoints.pop()}this.tmpPoints.push(new xt(t[n],t[n+1]))}}async draw(t){const{attrs:e,tasks:n,isDot:s,layer:l}=t,{duration:o}=this.workOptions;for(const i of n){const f=new ge,{pos:p,points:c}=i;let m;s?m=Oe(c,!0):m=Oe(c,!1),f.attr({...e,pos:p,d:m});const{vertex:y,fragment:O}=this.workOptions;if(y&&O){const x=l.renderer.createProgram({vertex:y,fragment:O}),{width:v,height:T}=l.getResolution();f.setUniforms({u_time:0,u_resolution:[v,T]}),f.setProgram(x)}l.appendChild(f),f.transition(o).attr({scale:s?[.1,.1]:[1,1],lineWidth:s?0:1}).then(()=>{f.remove()})}}getTaskPoints(t){var f;const e=[];if(t.length===0)return[];let n=0,s=t[0].x,l=t[0].y,o=[s,l],i=[];for(;n<t.length;){const p=t[n],c=p.x-s,m=p.y-l;if(i.push(new xt(c,m)),n>0&&n<t.length-1){const y=t[n].getAngleByPoints(t[n-1],t[n+1]);if(y<90||y>270){const O=(f=i.pop())==null?void 0:f.clone();O&&e.push({pos:o,points:[...i,O]}),s=t[n].x,l=t[n].y,o=[s,l];const x=p.x-s,v=p.y-l;i=[new xt(x,v)]}}n++}return e.push({pos:o,points:i}),e}removeLocal(){}removeService(t){let e;const n=[];return this.fullLayer.getElementsByName(t).forEach(s=>{if(s.name===t){const l=s.getBoundingClientRect();e=Ot(e,{x:l.x,y:l.y,w:l.width,h:l.height}),n.push(s)}}),n.length&&n.forEach(s=>s.remove()),e}}var Hh=Ye;Ye.polyline=Ye,Ye.polygon=Kh;function Ye(d,r,t){var e=d.length,n=Ee(d[0],r),s=[],l,o,i,f,p;for(t||(t=[]),l=1;l<e;l++){for(o=d[l-1],i=d[l],f=p=Ee(i,r);;)if(n|f){if(n&f)break;n?(o=dr(o,i,n,r),n=Ee(o,r)):(i=dr(o,i,f,r),f=Ee(i,r))}else{s.push(o),f!==p?(s.push(i),l<e-1&&(t.push(s),s=[])):l===e-1&&s.push(i);break}n=p}return s.length&&t.push(s),t}function Kh(d,r){var t,e,n,s,l,o,i;for(e=1;e<=8;e*=2){for(t=[],n=d[d.length-1],s=!(Ee(n,r)&e),l=0;l<d.length;l++)o=d[l],i=!(Ee(o,r)&e),i!==s&&t.push(dr(n,o,e,r)),i&&t.push(o),n=o,s=i;if(d=t,!d.length)break}return t}function dr(d,r,t,e){return t&8?[d[0]+(r[0]-d[0])*(e[3]-d[1])/(r[1]-d[1]),e[3]]:t&4?[d[0]+(r[0]-d[0])*(e[1]-d[1])/(r[1]-d[1]),e[1]]:t&2?[e[2],d[1]+(r[1]-d[1])*(e[2]-d[0])/(r[0]-d[0])]:t&1?[e[0],d[1]+(r[1]-d[1])*(e[0]-d[0])/(r[0]-d[0])]:null}function Ee(d,r){var t=0;return d[0]<r[0]?t|=1:d[0]>r[2]&&(t|=2),d[1]<r[1]?t|=4:d[1]>r[3]&&(t|=8),t}var Vh=Xt(Hh);const Pe=class Pe extends yt{constructor(t,e){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.none);nt(this,"toolsType",ht.Eraser);nt(this,"serviceWork");nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"worldPosition");nt(this,"worldScaling");nt(this,"eraserRect");nt(this,"eraserPolyline");this.serviceWork=e,this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(){}consumeService(){}setWorkOptions(t){super.setWorkOptions(t)}createEraserRect(t){const e=t[0]*this.worldScaling[0]+this.worldPosition[0],n=t[1]*this.worldScaling[1]+this.worldPosition[1],{width:s,height:l}=Pe.eraserSizes[this.workOptions.thickness];this.eraserRect={x:e-s*.5,y:n-l*.5,w:s,h:l},this.eraserPolyline=[this.eraserRect.x,this.eraserRect.y,this.eraserRect.x+this.eraserRect.w,this.eraserRect.y+this.eraserRect.h]}computRectCenterPoints(){const t=this.tmpPoints.slice(-2);if(this.tmpPoints.length===4){const e=new _(this.tmpPoints[0],this.tmpPoints[1]),n=new _(this.tmpPoints[2],this.tmpPoints[3]),s=_.Sub(n,e).uni(),l=_.Dist(e,n),{width:o,height:i}=Pe.eraserSizes[this.workOptions.thickness],f=Math.min(o,i),p=Math.round(l/f);if(p>1){const c=[];for(let m=0;m<p;m++){const y=_.Mul(s,m*f);c.push(this.tmpPoints[0]+y.x,this.tmpPoints[1]+y.y)}return c.concat(t)}}return t}isNear(t,e){const n=new _(t[0],t[1]),s=new _(e[0],e[1]),{width:l,height:o}=Pe.eraserSizes[this.workOptions.thickness];return _.Dist(n,s)<Math.hypot(l,o)*.5}cutPolyline(t,e){let n=[e],s=0;for(;s<t.length;){const i=t[s];if(i.length<2)break;n=l(n,i),s++}return n;function l(i,f){const p=i;for(let c=0;c<i.length;c++){const m=i[c],y=m.findIndex((O,x)=>x<m.length-1?o([O,m[x+1]],[f[0],f[1]]):!1);if(y!==-1&&y>-1){const O=[],x=m.slice(0,y+1);if(_.Equals(m[y],f[0])||x.push(f[0].clone().setz(m[y].z)),x.length>1&&O.push(x),y+f.length-1<m.length-1){const v=y+f.length-1,T=m.slice(v),a=f[f.length-1];_.Equals(m[v],a)||T.unshift(a.clone().setz(m[v].z)),T.length>1&&O.push(T)}return p.splice(c,1,...O),p}}return p}function o(i,f){const p=_.Sub(i[1],i[0]),c=_.Sub(f[1],f[0]),m=_.Sub(f[0],i[0]);return Math.abs(_.Cpr(p,c))<.1&&Math.abs(_.Cpr(p,m))<.1}}isSamePoint(t,e){return t[0]===e[0]&&t[1]===e[1]}translateIntersect(t){const e=[];for(let n=0;n<t.length;n++){const s=t[n].filter((i,f,p)=>!(f>0&&this.isSamePoint(i,p[f-1]))),l=[];let o=0;for(;o<s.length;){const i=s[o],f=new _(i[0],i[1]);l.push(f),o++}e.push(l)}return e}isLineEraser(t,e){return!(t===ht.Pencil&&!e)}remove(t){const{curNodeMap:e,removeIds:n,newWorkDatas:s}=t,{isLine:l}=this.workOptions;let o;for(const[i,f]of e.entries())if(f.rect&&this.eraserRect&&this.eraserPolyline&&Ce(this.eraserRect,f.rect)){const{op:p,toolsType:c}=f,m=this.isLineEraser(c,l),y=[],O=[];for(let v=0;v<p.length;v+=3){const T=new _(p[v]*this.worldScaling[0]+this.worldPosition[0],p[v+1]*this.worldScaling[1]+this.worldPosition[1],p[v+2]);O.push(T),y.push(new xt(T.x,T.y))}const x=y.length&&Bt(y)||f.rect;if(Ce(x,this.eraserRect)){if(O.length>1){const v=Vh.polyline(O.map(T=>T.XY),this.eraserPolyline);if(v.length&&(n.add(f.name),!m)){const T=this.translateIntersect(v),a=this.cutPolyline(T,O);for(let h=0;h<a.length;h++){const u=`${i}_s_${h}`,g=[];a[h].forEach(M=>{g.push((M.x-this.worldPosition[0])/this.worldScaling[0],(M.y-this.worldPosition[1])/this.worldScaling[1],M.z)}),f.opt&&f.toolsType&&this.vNodes&&(this.vNodes.setInfo(u,{rect:x,op:g,opt:f.opt,canRotate:f.canRotate,scaleType:f.scaleType,toolsType:f.toolsType}),s.set(u,{workId:u,op:g,opt:f.opt,toolsType:f.toolsType}))}}}else n.add(f.name);o=Ot(o,x)}}return n.forEach(i=>{var f;return(f=this.vNodes)==null?void 0:f.delete(i)}),o&&(o.x-=yt.SafeBorderPadding,o.y-=yt.SafeBorderPadding,o.w+=yt.SafeBorderPadding*2,o.h+=yt.SafeBorderPadding*2),o}consume(t){const{op:e}=t.data;if(!e||e.length===0)return{type:ct.None};const n=this.tmpPoints.length;if(n>1&&this.isNear([e[0],e[1]],[this.tmpPoints[n-2],this.tmpPoints[n-1]]))return{type:ct.None};n===4&&(this.tmpPoints.shift(),this.tmpPoints.shift()),this.tmpPoints.push(e[0],e[1]);const s=this.computRectCenterPoints();let l;const o=new Set,i=new Map;if(!this.vNodes)return{type:ct.None};this.vNodes.setTarget();const f=this.getUnLockNodeMap(this.vNodes.getLastTarget());for(let p=0;p<s.length-1;p+=2){this.createEraserRect(s.slice(p,p+2));const c=this.remove({curNodeMap:f,removeIds:o,newWorkDatas:i});l=Ot(l,c)}if(this.vNodes.deleteLastTarget(),l&&o.size){for(const p of i.keys())o.has(p)&&i.delete(p);return{type:ct.RemoveNode,dataType:Tt.Local,rect:l,removeIds:[...o],newWorkDatas:i}}return{type:ct.None}}consumeAll(t){return this.consume(t)}clearTmpPoints(){this.tmpPoints.length=0}getUnLockNodeMap(t){var e;if(this.serviceWork){const n=Jt(t),s=this.serviceWork.selectorWorkShapes,l=this.serviceWork.workShapes;for(const o of s.values())if((e=o.selectIds)!=null&&e.length)for(const i of o.selectIds)n.delete(i);for(const o of l.keys())n.delete(o);return n}return t}};nt(Pe,"eraserSizes",Object.freeze([Object.freeze({width:18,height:26}),Object.freeze({width:26,height:34}),Object.freeze({width:34,height:50})]));let ae=Pe;const gr="++",Yh="selector",Xh="all";var Jh="__lodash_hash_undefined__";function Qh(d){return this.__data__.set(d,Jh),this}var Zh=Qh;function kh(d){return this.__data__.has(d)}var qh=kh,_h=Lr,td=Zh,ed=qh;function Xe(d){var r=-1,t=d==null?0:d.length;for(this.__data__=new _h;++r<t;)this.add(d[r])}Xe.prototype.add=Xe.prototype.push=td,Xe.prototype.has=ed;var rd=Xe;function nd(d,r){for(var t=-1,e=d==null?0:d.length;++t<e;)if(r(d[t],t,d))return!0;return!1}var id=nd;function sd(d,r){return d.has(r)}var od=sd,ad=rd,ld=id,cd=od,fd=1,ud=2;function hd(d,r,t,e,n,s){var l=t&fd,o=d.length,i=r.length;if(o!=i&&!(l&&i>o))return!1;var f=s.get(d),p=s.get(r);if(f&&p)return f==r&&p==d;var c=-1,m=!0,y=t&ud?new ad:void 0;for(s.set(d,r),s.set(r,d);++c<o;){var O=d[c],x=r[c];if(e)var v=l?e(x,O,c,r,d,s):e(O,x,c,d,r,s);if(v!==void 0){if(v)continue;m=!1;break}if(y){if(!ld(r,function(T,a){if(!cd(y,a)&&(O===T||n(O,T,t,e,s)))return y.push(a)})){m=!1;break}}else if(!(O===x||n(O,x,t,e,s))){m=!1;break}}return s.delete(d),s.delete(r),m}var En=hd;function dd(d){var r=-1,t=Array(d.size);return d.forEach(function(e,n){t[++r]=[n,e]}),t}var gd=dd;function pd(d){var r=-1,t=Array(d.size);return d.forEach(function(e){t[++r]=e}),t}var md=pd,Pn=Be,An=nn,vd=Qe,yd=En,Sd=gd,xd=md,Td=1,Md=2,Od="[object Boolean]",Ed="[object Date]",Pd="[object Error]",Ad="[object Map]",Cd="[object Number]",Rd="[object RegExp]",Id="[object Set]",Ld="[object String]",bd="[object Symbol]",Dd="[object ArrayBuffer]",wd="[object DataView]",Cn=Pn?Pn.prototype:void 0,pr=Cn?Cn.valueOf:void 0;function Nd(d,r,t,e,n,s,l){switch(t){case wd:if(d.byteLength!=r.byteLength||d.byteOffset!=r.byteOffset)return!1;d=d.buffer,r=r.buffer;case Dd:return!(d.byteLength!=r.byteLength||!s(new An(d),new An(r)));case Od:case Ed:case Cd:return vd(+d,+r);case Pd:return d.name==r.name&&d.message==r.message;case Rd:case Ld:return d==r+"";case Ad:var o=Sd;case Id:var i=e&Td;if(o||(o=xd),d.size!=r.size&&!i)return!1;var f=l.get(d);if(f)return f==r;e|=Md,l.set(d,r);var p=yd(o(d),o(r),e,n,s,l);return l.delete(d),p;case bd:if(pr)return pr.call(d)==pr.call(r)}return!1}var Bd=Nd,Rn=Zr,Wd=1,Fd=Object.prototype,jd=Fd.hasOwnProperty;function Ud(d,r,t,e,n,s){var l=t&Wd,o=Rn(d),i=o.length,f=Rn(r),p=f.length;if(i!=p&&!l)return!1;for(var c=i;c--;){var m=o[c];if(!(l?m in r:jd.call(r,m)))return!1}var y=s.get(d),O=s.get(r);if(y&&O)return y==r&&O==d;var x=!0;s.set(d,r),s.set(r,d);for(var v=l;++c<i;){m=o[c];var T=d[m],a=r[m];if(e)var h=l?e(a,T,m,r,d,s):e(T,a,m,d,r,s);if(!(h===void 0?T===a||n(T,a,t,e,s):h)){x=!1;break}v||(v=m=="constructor")}if(x&&!v){var u=d.constructor,g=r.constructor;u!=g&&"constructor"in d&&"constructor"in r&&!(typeof u=="function"&&u instanceof u&&typeof g=="function"&&g instanceof g)&&(x=!1)}return s.delete(d),s.delete(r),x}var $d=Ud,mr=br,zd=En,Gd=Bd,Hd=$d,In=He,Ln=Ue,bn=qe,Kd=$r,Vd=1,Dn="[object Arguments]",wn="[object Array]",Je="[object Object]",Yd=Object.prototype,Nn=Yd.hasOwnProperty;function Xd(d,r,t,e,n,s){var l=Ln(d),o=Ln(r),i=l?wn:In(d),f=o?wn:In(r);i=i==Dn?Je:i,f=f==Dn?Je:f;var p=i==Je,c=f==Je,m=i==f;if(m&&bn(d)){if(!bn(r))return!1;l=!0,p=!1}if(m&&!p)return s||(s=new mr),l||Kd(d)?zd(d,r,t,e,n,s):Gd(d,r,i,t,e,n,s);if(!(t&Vd)){var y=p&&Nn.call(d,"__wrapped__"),O=c&&Nn.call(r,"__wrapped__");if(y||O){var x=y?d.value():d,v=O?r.value():r;return s||(s=new mr),n(x,v,t,e,s)}}return m?(s||(s=new mr),Hd(d,r,t,e,n,s)):!1}var Jd=Xd,Qd=Jd,Bn=se;function Wn(d,r,t,e,n){return d===r?!0:d==null||r==null||!Bn(d)&&!Bn(r)?d!==d&&r!==r:Qd(d,r,t,e,Wn,n)}var Zd=Wn,kd=Zd;function qd(d,r){return kd(d,r)}var _d=qd,le=Xt(_d);const ie=class ie extends yt{constructor(t){super(t);nt(this,"toolsType",ht.Selector);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"vNodes");nt(this,"selectIds");nt(this,"selectorColor");nt(this,"strokeColor");nt(this,"fillColor");nt(this,"oldSelectRect");nt(this,"canRotate",!1);nt(this,"canTextEdit",!1);nt(this,"canLock",!1);nt(this,"scaleType",jt.all);nt(this,"toolsTypes");nt(this,"shapeOpt");nt(this,"textOpt");nt(this,"isLocked");this.workOptions=t.toolsOpt,this.vNodes=t.vNodes}computSelector(t=!0){const e=Bt(this.tmpPoints);if(e.w===0||e.h===0)return{selectIds:[],intersectRect:void 0,subNodeMap:new Map};const{rectRange:n,nodeRange:s}=this.vNodes.getRectIntersectRange(e,t);return{selectIds:[...s.keys()],intersectRect:n,subNodeMap:s}}updateTempPoints(t){const e=this.tmpPoints.length,n=t.length;if(n>1){const s=new xt(t[n-2]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[n-1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]);e===2?this.tmpPoints.splice(1,1,s):this.tmpPoints.push(s)}}drawSelector(t){const{drawRect:e,subNodeMap:n,selectorId:s,layer:l,isService:o}=t,i=new ne({pos:[e.x,e.y],anchor:[0,0],size:[e.w,e.h],id:s,name:s,zIndex:1e3}),f=[];if(o){const p=new ur({normalize:!0,pos:[e.w/2,e.h/2],lineWidth:1,strokeColor:this.selectorColor||this.workOptions.strokeColor,width:e.w,height:e.h,name:ie.selectorBorderId});f.push(p)}n.forEach((p,c)=>{const m=[p.rect.x+p.rect.w/2-e.x,p.rect.y+p.rect.h/2-e.y],y=new ur({normalize:!0,pos:m,lineWidth:1,strokeColor:n.size>1?this.selectorColor||this.workOptions.strokeColor:void 0,width:p.rect.w,height:p.rect.h,id:`selector-${c}`,name:`selector-${c}`});f.push(y)}),f&&i.append(...f),(l==null?void 0:l.parent).appendChild(i)}draw(t,e,n,s=!1){var i,f;const{intersectRect:l,subNodeMap:o}=n;(f=(i=e.parent)==null?void 0:i.getElementById(t))==null||f.remove(),l&&this.drawSelector({drawRect:l,subNodeMap:o,selectorId:t,layer:e,isService:s})}getSelecteorInfo(t){this.scaleType=jt.all,this.canRotate=!1,this.textOpt=void 0,this.strokeColor=void 0,this.fillColor=void 0,this.canTextEdit=!1,this.canLock=!1,this.isLocked=!1,this.toolsTypes=void 0,this.shapeOpt=void 0;const e=new Set;let n;for(const s of t.values()){const{opt:l,canRotate:o,scaleType:i,toolsType:f}=s;this.selectorColor=this.workOptions.strokeColor,l.strokeColor&&(this.strokeColor=l.strokeColor),l.fillColor&&(this.fillColor=l.fillColor),l.textOpt&&(this.textOpt=l.textOpt),f===ht.SpeechBalloon&&(e.add(f),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.placement=l.placement),f===ht.Polygon&&(e.add(f),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices),f===ht.Star&&(e.add(f),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices,this.shapeOpt.innerRatio=l.innerRatio,this.shapeOpt.innerVerticeStep=l.innerVerticeStep),f===ht.Text&&(this.textOpt=l),t.size===1&&(this.textOpt&&(this.canTextEdit=!0),this.canRotate=o,this.scaleType=i),i===jt.none&&(this.scaleType=i),f===ht.Image&&(n=s)}e.size&&(this.toolsTypes=[...e]),n&&(t.size===1?(this.canLock=!0,n.opt.locked&&(this.isLocked=!0,this.scaleType=jt.none,this.canRotate=!1,this.textOpt=void 0,this.fillColor=void 0,this.selectorColor="rgb(177,177,177)",this.strokeColor=void 0,this.canTextEdit=!1)):t.size>1&&!n.opt.locked&&(this.canLock=!1,this.canRotate=!1))}getChildrenPoints(){var t,e;if(this.scaleType===jt.both&&((t=this.selectIds)==null?void 0:t.length)===1){const n=this.selectIds[0],s=(e=this.vNodes.get(n))==null?void 0:e.op;if(s){const l=[];for(let o=0;o<s.length;o+=3)l.push([s[o],s[o+1]]);return l}}}consume(t){const{op:e,workState:n}=t.data;let s=this.oldSelectRect;if(n===Rt.Start&&(s=this.unSelectedAllIds()),!(e!=null&&e.length)||!this.vNodes.curNodeMap.size)return{type:ct.None};this.updateTempPoints(e);const l=this.computSelector();if(this.selectIds&&le(this.selectIds,l.selectIds))return{type:ct.None};this.selectIds=l.selectIds;const o=l.intersectRect;this.getSelecteorInfo(l.subNodeMap),this.draw(ie.selectorId,this.fullLayer,l),this.oldSelectRect=o;const i=this.getChildrenPoints();return{type:ct.Select,dataType:Tt.Local,rect:Ot(o,s),selectIds:l.selectIds,opt:this.workOptions,selectRect:o,selectorColor:this.selectorColor,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:i,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt}}consumeAll(){var e,n;let t=this.oldSelectRect;if(!((e=this.selectIds)!=null&&e.length)&&this.tmpPoints[0]&&this.selectSingleTool(this.tmpPoints[0].XY,ie.selectorId,!1),(n=this.selectIds)!=null&&n.length&&(t=this.selectedByIds(this.selectIds)),t){const s=this.getChildrenPoints();return{type:ct.Select,dataType:Tt.Local,rect:this.oldSelectRect,selectIds:this.selectIds,opt:this.workOptions,selectorColor:this.selectorColor,selectRect:this.oldSelectRect,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:s,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt}}return{type:ct.None}}consumeService(){}clearTmpPoints(){this.tmpPoints.length=0}clearSelectData(){this.selectIds=void 0,this.oldSelectRect=void 0}selectSingleTool(t,e=ie.selectorId,n=!1){if(t.length===2){const s=t[0],l=t[1];let o;const{nodeRange:i}=this.vNodes.getRectIntersectRange({x:s,y:l,w:0,h:0},!1),f=[...i.values()].sort((p,c)=>(c.opt.zIndex||0)-(p.opt.zIndex||0));for(const p of f){const c=this.fullLayer.getElementsByName(p.name);if(Yn(c).find(y=>y.isPointCollision(s,l))){o=p;break}}if(o){const p=o.name;if(!le(this.oldSelectRect,o.rect)){const c=new Map([[p,o]]);this.getSelecteorInfo(c),this.draw(e,this.fullLayer,{intersectRect:o.rect,subNodeMap:c,selectIds:this.selectIds||[]},n)}this.selectIds=[p],this.oldSelectRect=o.rect}}}unSelectedAllIds(){let t;for(const[e,n]of this.vNodes.curNodeMap.entries())n.isSelected&&(t=Ot(t,n.rect),this.vNodes.unSelected(e));return t}unSelectedByIds(t){let e;for(const n of t){const s=this.vNodes.get(n);s&&s.isSelected&&(e=Ot(e,s.rect),this.vNodes.unSelected(n))}return e}selectedByIds(t){let e;for(const n of t){const s=this.vNodes.get(n);s&&(e=Ot(e,s.rect),this.vNodes.selected(n))}return e}getSelectorRect(t,e){var o;let n;const s=(o=t.parent)==null?void 0:o.getElementById(e),l=s==null?void 0:s.getBoundingClientRect();return l&&(n=Ot(n,{x:Math.floor(l.x),y:Math.floor(l.y),w:Math.floor(l.width+1),h:Math.floor(l.height+1)})),n}isCanFillColor(t){return t===ht.Ellipse||t===ht.Triangle||t===ht.Rectangle||t===ht.Polygon||t===ht.Star||t===ht.SpeechBalloon}async updateSelector(t){const{updateSelectorOpt:e,selectIds:n,vNodes:s,willSerializeData:l,worker:o,offset:i,scene:f,isMainThread:p}=t,c=this.fullLayer;if(!c)return;let m;const y=new Map,{box:O,workState:x,angle:v,translate:T}=e;let a=[0,0],h=[1,1],u=[0,0],g,M;if(O||T||kt(v)){if(x===Rt.Start)return s.setTarget(),{type:ct.Select,dataType:Tt.Local,selectRect:this.oldSelectRect,rect:this.oldSelectRect};if(g=s.getLastTarget(),g&&O){let b;n==null||n.forEach(E=>{const L=g==null?void 0:g.get(E);b=Ot(b,L==null?void 0:L.rect)}),b&&(h=[O.w/b.w,O.h/b.h],a=[O.x+O.w/2-(b.x+b.w/2),O.y+O.h/2-(b.y+b.h/2)],u=[b.x+b.w/2,b.y+b.h/2]),M=b}}if(n)for(const b of n){const E=s.get(b);if(E){const{toolsType:L}=E;let D=(c==null?void 0:c.getElementsByName(b))[0];if(D){const R={...e};let C;if(L){if(g&&(C=g.get(b),C&&O)){R.boxScale=h;const z=[C.rect.x+C.rect.w/2,C.rect.y+C.rect.h/2],H=[z[0]-u[0],z[1]-u[1]];R.boxTranslate=[H[0]*(h[0]-1)+a[0]+(i&&i[0]||0),H[1]*(h[1]-1)+a[1]+(i&&i[1]||0)]}const B=Vn(L);if(B==null||B.updateNodeOpt({node:D,opt:R,vNodes:s,willSerializeData:l,targetNode:C}),E&&o&&(l&&(R.angle||R.translate)||R.box&&R.workState!==Rt.Start||R.pointMap&&R.pointMap.has(b)||L===ht.Text&&(R.fontSize||R.translate||R.textInfos&&R.textInfos.get(b))||L===ht.Image&&(R.angle||R.translate||R.boxScale)||L===R.toolsType&&R.willRefresh)){const z=o.createWorkShapeNode({toolsType:L,toolsOpt:E.opt});z==null||z.setWorkId(b);let H;L===ht.Image&&f?H=await z.consumeServiceAsync({isFullWork:!0,replaceId:b,scene:f,isMainThread:p}):H=z==null?void 0:z.consumeService({op:E.op,isFullWork:!0,replaceId:b}),H&&(E.rect=H),D=(c==null?void 0:c.getElementsByName(b))[0]}E&&(y.set(b,E),m=Ot(m,E.rect))}}}}g&&x===Rt.Done&&s.deleteLastTarget();const A=m;if(M&&e.dir&&A){let b=[0,0];switch(e.dir){case"topLeft":case"left":{const E=[M.x+M.w,M.y+M.h];b=[E[0]-(A.x+A.w),E[1]-(A.y+A.h)];break}case"bottomLeft":case"bottom":{const E=[M.x+M.w,M.y];b=[E[0]-(A.x+A.w),E[1]-A.y];break}case"topRight":case"top":{const E=[M.x,M.y+M.h];b=[E[0]-A.x,E[1]-(A.y+A.h)];break}case"right":case"bottomRight":{const E=[M.x,M.y];b=[E[0]-A.x,E[1]-A.y];break}}if(b[0]||b[1])return A.x=A.x+b[0],A.y=A.y+b[1],await this.updateSelector({...t,offset:b})}this.getSelecteorInfo(y),this.draw(ie.selectorId,c,{selectIds:n||[],subNodeMap:y,intersectRect:A});const I=Ot(this.oldSelectRect,A);return this.oldSelectRect=A,{type:ct.Select,dataType:Tt.Local,selectRect:A,renderRect:m,rect:Ot(I,A)}}blurSelector(){const t=this.unSelectedAllIds();return{type:ct.Select,dataType:Tt.Local,rect:t,selectIds:[],willSyncService:!0}}getRightServiceId(t){return t.replace(gr,"-")}selectServiceNode(t,e,n){const{selectIds:s}=e,l=this.getRightServiceId(t),o=this.getSelectorRect(this.fullLayer,l);let i;const f=new Map;return s==null||s.forEach(p=>{const c=this.vNodes.get(p);c&&(i=Ot(i,c.rect),f.set(p,c))}),this.getSelecteorInfo(f),this.draw(l,this.fullLayer,{intersectRect:i,selectIds:s||[],subNodeMap:f},n),Ot(i,o)}reRenderSelector(){var n;let t;const e=new Map;return(n=this.selectIds)==null||n.forEach(s=>{const l=this.vNodes.get(s);l&&(t=Ot(t,l.rect),e.set(s,l))},this),this.getSelecteorInfo(e),this.draw(ie.selectorId,this.fullLayer,{intersectRect:t,subNodeMap:e,selectIds:this.selectIds||[]}),this.oldSelectRect=t,t}updateSelectIds(t){var l;let e;const n=(l=this.selectIds)==null?void 0:l.filter(o=>!t.includes(o));if(n!=null&&n.length&&(e=this.unSelectedByIds(n)),t.length){const o=this.selectedByIds(t);e=Ot(e,o)}this.selectIds=t;const s=this.reRenderSelector();return{bgRect:e,selectRect:s}}cursorHover(t){var l,o;const e=this.oldSelectRect;this.selectIds=[];const n=(l=this.workId)==null?void 0:l.toString(),s=[t[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]];if(this.selectSingleTool(s,n,!0),this.oldSelectRect&&!le(e,this.oldSelectRect))return{type:ct.CursorHover,dataType:Tt.Local,rect:Ot(e,this.oldSelectRect),selectorColor:this.selectorColor,willSyncService:!1};if((o=this.selectIds)!=null&&o.length||(this.oldSelectRect=void 0),e&&!this.oldSelectRect)return this.cursorBlur(),{type:ct.CursorHover,dataType:Tt.Local,rect:e,selectorColor:this.selectorColor,willSyncService:!1}}cursorBlur(){var e,n;this.selectIds=[];const t=(e=this.workId)==null?void 0:e.toString();((n=this.fullLayer)==null?void 0:n.parent).children.forEach(s=>{s.name===t&&s.remove()})}};nt(ie,"selectorId",Yh),nt(ie,"selectorBorderId","selector-border");let wt=ie;class Fn extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.both);nt(this,"toolsType",ht.Arrow);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"arrowTipWidth");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.arrowTipWidth=this.workOptions.thickness*4,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var a;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(h=>h.remove()),(a=this.drawLayer)==null||a.getElementsByName(e).map(h=>h.remove());const{strokeColor:s,thickness:l,zIndex:o,scale:i,rotate:f,translate:p}=this.workOptions,c=n.worldPosition,m=n.worldScaling,{points:y,rect:O}=this.computDrawPoints(l),v={pos:[O.x+O.w/2,O.y+O.h/2],name:e,id:e,close:!0,points:y,fillColor:s,strokeColor:s,lineWidth:0,normalize:!0,zIndex:o};i&&(v.scale=i),f&&(v.rotate=f),p&&(v.translate=p);const T=new pe(v);if(n.append(T),i||f||p){const h=T.getBoundingClientRect();return{x:Math.floor(h.x-yt.SafeBorderPadding),y:Math.floor(h.y-yt.SafeBorderPadding),w:Math.floor(h.width+yt.SafeBorderPadding*2),h:Math.floor(h.height+yt.SafeBorderPadding*2)}}return{x:Math.floor(O.x*m[0]+c[0]-yt.SafeBorderPadding),y:Math.floor(O.y*m[1]+c[1]-yt.SafeBorderPadding),w:Math.floor(O.w*m[0]+2*yt.SafeBorderPadding),h:Math.floor(O.h*m[1]+2*yt.SafeBorderPadding)}}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.arrowTipWidth?this.computFullArrowPoints(t):this.computTrianglePoints()}computFullArrowPoints(t){const e=_.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=_.Per(e).mul(t/2),s=xt.Sub(this.tmpPoints[0],n),l=xt.Add(this.tmpPoints[0],n),o=_.Mul(e,this.arrowTipWidth),i=_.Sub(this.tmpPoints[1],o),f=xt.Sub(i,n),p=xt.Add(i,n),c=_.Per(e).mul(t*1.5),m=xt.Sub(i,c),y=xt.Add(i,c),O=[s,f,m,this.tmpPoints[1],y,p,l];return{points:O.map(x=>xt.Sub(x,this.tmpPoints[0]).XY).flat(1),rect:Bt(O),isTriangle:!1,pos:this.tmpPoints[0].XY}}computTrianglePoints(){const t=_.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),e=this.tmpPoints[1].distance(this.tmpPoints[0]),n=_.Per(t).mul(Math.floor(e*3/8)),s=xt.Sub(this.tmpPoints[0],n),l=xt.Add(this.tmpPoints[0],n),o=[s,this.tmpPoints[1],l];return{points:o.map(i=>xt.Sub(i,this.tmpPoints[0]).XY).flat(1),rect:Bt(o),isTriangle:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var i;const{node:e,opt:n,vNodes:s}=t,{strokeColor:l}=n,o=s.get(e.name);return l&&(e.setAttribute("strokeColor",l),e.setAttribute("fillColor",l),(i=o==null?void 0:o.opt)!=null&&i.strokeColor&&(o.opt.strokeColor=l),o&&s.setInfo(e.name,o)),yt.updateNodeOpt(t)}}class jn extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Ellipse);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x,isDrawing:!0})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s,isDrawing:!1});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:l&&yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var g;const{workId:e,layer:n,isDrawing:s}=t;this.fullLayer.getElementsByName(e).map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(e).map(M=>M.remove());const{strokeColor:l,fillColor:o,thickness:i,zIndex:f,scale:p,rotate:c,translate:m}=this.workOptions,y=n.worldPosition,O=n.worldScaling,{radius:x,rect:v,pos:T}=this.computDrawPoints(i),a={pos:T,name:e,id:e,radius:x,lineWidth:i,fillColor:o!=="transparent"&&o||void 0,strokeColor:l,normalize:!0,zIndex:f},h={x:Math.floor(v.x*O[0]+y[0]-yt.SafeBorderPadding),y:Math.floor(v.y*O[1]+y[1]-yt.SafeBorderPadding),w:Math.floor(v.w*O[0]+2*yt.SafeBorderPadding),h:Math.floor(v.h*O[1]+2*yt.SafeBorderPadding)};if(s){const{name:M,id:A,zIndex:I,strokeColor:b}=a,E=yt.getCenterPos(h,n),L=new ne({name:M,id:A,zIndex:I,pos:E,anchor:[.5,.5],size:[h.w,h.h]}),D=new xn({...a,pos:[0,0]}),R=new ge({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:b,lineWidth:1,scale:[1/O[0],1/O[1]]});return L.append(D,R),n.append(L),h}p&&(a.scale=p),c&&(a.rotate=c),m&&(a.translate=m);const u=new xn(a);if(n.append(u),c||p||m){const M=u.getBoundingClientRect();return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}return h}computDrawPoints(t){const e=Bt(this.tmpPoints),n=Bt(this.tmpPoints,t),s=[Math.floor(e.x+e.w/2),Math.floor(e.y+e.h/2)];return{rect:n,pos:s,radius:[Math.floor(e.w/2),Math.floor(e.h/2)]}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l,isDrawing:!1});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var p,c;const{node:e,opt:n,vNodes:s}=t,{strokeColor:l,fillColor:o}=n,i=s.get(e.name);let f=e;return e.tagName==="GROUP"&&(f=e.children[0]),l&&(f.setAttribute("strokeColor",l),(p=i==null?void 0:i.opt)!=null&&p.strokeColor&&(i.opt.strokeColor=l)),o&&(o==="transparent"?f.setAttribute("fillColor","rgba(0,0,0,0)"):f.setAttribute("fillColor",o),(c=i==null?void 0:i.opt)!=null&&c.fillColor&&(i.opt.fillColor=o)),i&&s.setInfo(e.name,i),yt.updateNodeOpt(t)}}var t0=ue,e0=se,r0="[object Boolean]";function n0(d){return d===!0||d===!1||e0(d)&&t0(d)==r0}var i0=n0,ce=Xt(i0);class Un extends yt{constructor(t){super(t);nt(this,"canRotate",!0);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Rectangle);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}transformData(){const t=Bt(this.tmpPoints);return[[t.x,t.y,0],[t.x+t.w,t.y,0],[t.x+t.w,t.y+t.h,0],[t.x,t.y+t.h,0]]}computDrawPoints(t){const{thickness:e}=this.workOptions,n=[];for(const o of t)n.push(new _(...o));const s=Bt(n,e),l=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:l,points:n.map(o=>o.XY).flat(1)}}consume(t){var x;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(x=e==null?void 0:e.workId)==null?void 0:x.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};const m=this.transformData();let y;if(s||l){const v=n?this.fullLayer:this.drawLayer||this.fullLayer;y=this.draw({ps:m,workId:o,layer:v,isDrawing:!0})}if(!s){const v=Date.now();return v-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=v,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:m.flat(1),isSync:!0,index:0}):{type:ct.None}}const O=Ot(y,this.oldRect);return this.oldRect=y,{rect:O,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var p,c;const{data:e}=t,n=(p=e==null?void 0:e.workId)==null?void 0:p.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.transformData(),l=this.fullLayer,o=this.draw({ps:s,workId:n,layer:l,isDrawing:!1});this.oldRect=o;const i=s.flat(1),f=qt(i);return(c=this.vNodes)==null||c.setInfo(n,{rect:o,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,l)}),{rect:o,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:f,opt:this.workOptions,isSync:!0}}draw(t){var b;const{workId:e,layer:n,isDrawing:s,ps:l,replaceId:o}=t;this.fullLayer.getElementsByName(o||e).map(E=>E.remove()),(b=this.drawLayer)==null||b.getElementsByName(o||e).map(E=>E.remove());const{strokeColor:i,fillColor:f,thickness:p,zIndex:c,scale:m,rotate:y,translate:O,textOpt:x}=this.workOptions,v=n.worldPosition,T=n.worldScaling,{points:a,rect:h,pos:u}=this.computDrawPoints(l),g={close:!0,normalize:!0,points:a,lineWidth:p,fillColor:f!=="transparent"&&f||void 0,strokeColor:i,lineJoin:"round"},M={x:Math.floor(h.x*T[0]+v[0]-yt.SafeBorderPadding),y:Math.floor(h.y*T[1]+v[1]-yt.SafeBorderPadding),w:Math.floor(h.w*T[0]+2*yt.SafeBorderPadding),h:Math.floor(h.h*T[0]+2*yt.SafeBorderPadding)},A=new ne({name:e,id:e,zIndex:c,pos:u,anchor:[.5,.5],size:[h.w,h.h],scale:m,rotate:y,translate:O}),I=new pe({...g,pos:[0,0]});if(A.appendChild(I),s){const E=new ge({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:i,lineWidth:1,scale:[1/T[0],1/T[1]]});A.appendChild(E)}if(n.append(A),m||y||O){const E=A.getBoundingClientRect();return{x:Math.floor(E.x-yt.SafeBorderPadding),y:Math.floor(E.y-yt.SafeBorderPadding),w:Math.floor(E.width+2*yt.SafeBorderPadding),h:Math.floor(E.height+2*yt.SafeBorderPadding)}}return M}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var p,c;const{op:e,isFullWork:n,replaceId:s}=t,l=(p=this.workId)==null?void 0:p.toString();if(!l)return;const o=[];for(let m=0;m<e.length;m+=3)o.push([e[m],e[m+1],e[m+2]]);const i=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({ps:o,workId:l,layer:i,isDrawing:!1,replaceId:s});return this.oldRect=f,(c=this.vNodes)==null||c.setInfo(l,{rect:f,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&yt.getCenterPos(f,i)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var T,a;const{node:e,opt:n,vNodes:s}=t,{strokeColor:l,fillColor:o,fontColor:i,fontBgColor:f,bold:p,italic:c,lineThrough:m,underline:y,fontSize:O}=n,x=s.get(e.name);let v=e;if(e.tagName==="GROUP"&&(v=e.children[0]),l&&(v.setAttribute("strokeColor",l),(T=x==null?void 0:x.opt)!=null&&T.strokeColor&&(x.opt.strokeColor=l)),o&&(o==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",o),(a=x==null?void 0:x.opt)!=null&&a.fillColor&&(x.opt.fillColor=o)),x!=null&&x.opt.textOpt){const h=x.opt.textOpt;i&&h.fontColor&&(h.fontColor=i),f&&h.fontBgColor&&(h.fontBgColor=f),p&&(h.bold=p),c&&(h.italic=c),ce(m)&&(h.lineThrough=m),ce(y)&&(h.underline=y),O&&(h.fontSize=O)}return x&&s.setInfo(e.name,x),yt.updateNodeOpt(t)}}class $n extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Star);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x,isDrawing:!0})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s,isDrawing:!1});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:l&&yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var b;const{workId:e,layer:n,isDrawing:s}=t;this.fullLayer.getElementsByName(e).map(E=>E.remove()),(b=this.drawLayer)==null||b.getElementsByName(e).map(E=>E.remove());const{strokeColor:l,fillColor:o,thickness:i,zIndex:f,vertices:p,innerVerticeStep:c,innerRatio:m,scale:y,rotate:O,translate:x}=this.workOptions,v=n.worldScaling,{rect:T,pos:a,points:h}=this.computDrawPoints(i,p,c,m),u={close:!0,points:h,lineWidth:i,fillColor:o!=="transparent"&&o||void 0,strokeColor:l,normalize:!0,lineJoin:"round"},g={name:e,id:e,zIndex:f,pos:a,anchor:[.5,.5],size:[T.w,T.h],className:`${a[0]},${a[1]}`};y&&(g.scale=y),O&&(g.rotate=O),x&&(g.translate=x);const M=new ne(g);if(s){const E=new ge({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/v[0],1/v[1]]});M.append(E)}const A=new pe({...u,pos:[0,0]});M.append(A),n.append(M);const I=M.getBoundingClientRect();return{x:Math.floor(I.x-yt.SafeBorderPadding),y:Math.floor(I.y-yt.SafeBorderPadding),w:Math.floor(I.width+yt.SafeBorderPadding*2),h:Math.floor(I.height+yt.SafeBorderPadding*2)}}computDrawPoints(t,e,n,s){const l=Bt(this.tmpPoints),o=[Math.floor(l.x+l.w/2),Math.floor(l.y+l.h/2)],i=Sn(l.w,l.h),f=Math.floor(Math.min(l.w,l.h)/2),p=s*f,c=[],m=2*Math.PI/e;for(let O=0;O<e;O++){const x=O*m-.5*Math.PI;let v,T;O%n===1?(v=p*i[0]*Math.cos(x),T=p*i[1]*Math.sin(x)):(v=f*i[0]*Math.cos(x),T=f*i[1]*Math.sin(x),c.push(v,T)),c.push(v,T)}return{rect:Bt(this.tmpPoints,t),pos:o,points:c}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l)||xt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l,isDrawing:!1});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:s}=t,{strokeColor:l,fillColor:o,toolsType:i,vertices:f,innerVerticeStep:p,innerRatio:c}=n,m=s.get(e.name),y=m==null?void 0:m.opt;let O=e;return e.tagName==="GROUP"&&(O=e.children[0]),l&&(O.setAttribute("strokeColor",l),y!=null&&y.strokeColor&&(y.strokeColor=l)),o&&(o==="transparent"?O.setAttribute("fillColor","rgba(0,0,0,0)"):O.setAttribute("fillColor",o),y!=null&&y.fillColor&&(y.fillColor=o)),i===ht.Star&&(f&&(y.vertices=f),p&&(y.innerVerticeStep=p),c&&(y.innerRatio=c)),m&&s.setInfo(e.name,{...m,opt:y}),yt.updateNodeOpt(t)}}class zn extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Polygon);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x,isDrawing:!0})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s,isDrawing:!1});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:l&&yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var A;const{workId:e,layer:n,isDrawing:s}=t;this.fullLayer.getElementsByName(e).map(I=>I.remove()),(A=this.drawLayer)==null||A.getElementsByName(e).map(I=>I.remove());const{strokeColor:l,fillColor:o,thickness:i,zIndex:f,vertices:p,scale:c,rotate:m,translate:y}=this.workOptions,O=n.worldScaling,{rect:x,pos:v,points:T}=this.computDrawPoints(i,p),a={close:!0,points:T,lineWidth:i,fillColor:o!=="transparent"&&o||void 0,strokeColor:l,normalize:!0,lineJoin:"round"},h={name:e,id:e,zIndex:f,pos:v,anchor:[.5,.5],size:[x.w,x.h]};c&&(h.scale=c),m&&(h.rotate=m),y&&(h.translate=y);const u=new ne(h);if(s){const I=new ge({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/O[0],1/O[1]]});u.append(I)}const g=new pe({...a,pos:[0,0]});u.append(g),n.append(u);const M=u.getBoundingClientRect();return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}computDrawPoints(t,e){const n=Bt(this.tmpPoints),s=[Math.floor(n.x+n.w/2),Math.floor(n.y+n.h/2)],l=Sn(n.w,n.h),o=Math.floor(Math.min(n.w,n.h)/2),i=[],f=2*Math.PI/e;for(let c=0;c<e;c++){const m=c*f-.5*Math.PI,y=o*l[0]*Math.cos(m),O=o*l[1]*Math.sin(m);i.push(y,O)}return{rect:Bt(this.tmpPoints,t),pos:s,points:i}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l)||xt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l,isDrawing:!1});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:s}=t,{strokeColor:l,fillColor:o,toolsType:i,vertices:f}=n,p=s.get(e.name),c=p==null?void 0:p.opt;let m=e;return e.tagName==="GROUP"&&(m=e.children[0]),l&&(m.setAttribute("strokeColor",l),c!=null&&c.strokeColor&&(c.strokeColor=l)),o&&(o==="transparent"?m.setAttribute("fillColor","rgba(0,0,0,0)"):m.setAttribute("fillColor",o),c!=null&&c.fillColor&&(c.fillColor=o)),i===ht.Polygon&&f&&(c.vertices=f),p&&s.setInfo(e.name,{...p,opt:c}),yt.updateNodeOpt(t)}}class _t{static bezier(r,t){const e=[];for(let n=0;n<t.length;n+=4){const s=t[n],l=t[n+1],o=t[n+2],i=t[n+3];s&&l&&o&&i?e.push(..._t.getBezierPoints(r,s,l,o,i)):s&&l&&o?e.push(..._t.getBezierPoints(r,s,l,o)):s&&l?e.push(..._t.getBezierPoints(r,s,l)):s&&e.push(s)}return e}static getBezierPoints(r=10,t,e,n,s){let l=null;const o=[];!n&&!s?l=_t.oneBezier:n&&!s?l=_t.twoBezier:n&&s&&(l=_t.threeBezier);for(let i=0;i<r;i++)l&&o.push(l(i/r,t,e,n,s));return s?o.push(s):n&&o.push(n),o}static oneBezier(r,t,e){const n=t.x+(e.x-t.x)*r,s=t.y+(e.y-t.y)*r;return new _(n,s)}static twoBezier(r,t,e,n){const s=(1-r)*(1-r)*t.x+2*r*(1-r)*e.x+r*r*n.x,l=(1-r)*(1-r)*t.y+2*r*(1-r)*e.y+r*r*n.y;return new _(s,l)}static threeBezier(r,t,e,n,s){const l=t.x*(1-r)*(1-r)*(1-r)+3*e.x*r*(1-r)*(1-r)+3*n.x*r*r*(1-r)+s.x*r*r*r,o=t.y*(1-r)*(1-r)*(1-r)+3*e.y*r*(1-r)*(1-r)+3*n.y*r*r*(1-r)+s.y*r*r*r;return new _(l,o)}}class Gn extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.SpeechBalloon);nt(this,"ratio",.8);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x,isDrawing:!0})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s,isDrawing:!1});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:l&&yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var g;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(e).map(M=>M.remove());const{strokeColor:s,fillColor:l,thickness:o,zIndex:i,placement:f,scale:p,rotate:c,translate:m}=this.workOptions,{rect:y,pos:O,points:x}=this.computDrawPoints(o,f),v={points:x.map(M=>M.XY),lineWidth:o,fillColor:l!=="transparent"&&l||void 0,strokeColor:s,normalize:!0,className:`${O[0]},${O[1]}`,lineJoin:"round",close:!0},T={name:e,id:e,zIndex:i,pos:O,anchor:[.5,.5],size:[y.w,y.h]};p&&(T.scale=p),c&&(T.rotate=c),m&&(T.translate=m);const a=new ne(T),h=new pe({...v,pos:[0,0]});a.append(h),n.append(a);const u=a.getBoundingClientRect();return{x:Math.floor(u.x-yt.SafeBorderPadding),y:Math.floor(u.y-yt.SafeBorderPadding),w:Math.floor(u.width+yt.SafeBorderPadding*2),h:Math.floor(u.height+yt.SafeBorderPadding*2)}}transformControlPoints(t){const e=Bt(this.tmpPoints);switch(t){case"bottom":case"bottomLeft":case"bottomRight":{const n=e.y+e.h*this.ratio;return[new _(e.x,e.y,0),new _(e.x+e.w,e.y,0),new _(e.x+e.w,n,0),new _(e.x,n,0)]}case"top":case"topLeft":case"topRight":{const n=e.y+e.h*(1-this.ratio);return[new _(e.x,n,0),new _(e.x+e.w,n,0),new _(e.x+e.w,e.y+e.h,0),new _(e.x,e.y+e.h,0)]}case"left":case"leftBottom":case"leftTop":{const n=e.x+e.w*(1-this.ratio);return[new _(n,e.y,0),new _(e.x+e.w,e.y,0),new _(e.x+e.w,e.y+e.h,0),new _(n,e.y+e.h,0)]}case"right":case"rightBottom":case"rightTop":{const n=e.x+e.w*this.ratio;return[new _(e.x,e.y,0),new _(n,e.y,0),new _(n,e.y+e.h,0),new _(e.x,e.y+e.h,0)]}}}computDrawPoints(t,e){const n=Bt(this.tmpPoints),s=this.transformControlPoints(e),l=Math.floor(n.w*.1),o=Math.floor(n.h*.1),i=[],f=_.Add(s[0],new _(0,o,0)),p=_.Add(s[0],new _(l,0,0)),c=_t.getBezierPoints(10,f,s[0],p),m=_.Sub(s[1],new _(l,0,0)),y=_.Add(s[1],new _(0,o,0)),O=_t.getBezierPoints(10,m,s[1],y),x=_.Sub(s[2],new _(0,o,0)),v=_.Sub(s[2],new _(l,0,0)),T=_t.getBezierPoints(10,x,s[2],v),a=_.Add(s[3],new _(l,0,0)),h=_.Sub(s[3],new _(0,o,0)),u=_t.getBezierPoints(10,a,s[3],h),g=l*(1-this.ratio)*10,M=o*(1-this.ratio)*10;switch(e){case"bottom":{const b=_.Sub(s[2],new _(l*5-g/2,0,0)),E=_.Sub(s[2],new _(l*5,-M,0)),L=_.Sub(s[2],new _(l*5+g/2,0,0));i.push(E,L,...u,...c,...O,...T,b);break}case"bottomRight":{const b=_.Sub(s[2],new _(l*1.1,0,0)),E=_.Sub(s[2],new _(l*1.1+g/2,-M,0)),L=_.Sub(s[2],new _(l*1.1+g,0,0));i.push(E,L,...u,...c,...O,...T,b);break}case"bottomLeft":{const b=_.Add(s[3],new _(l*1.1+g,0,0)),E=_.Add(s[3],new _(l*1.1+g/2,M,0)),L=_.Add(s[3],new _(l*1.1,0,0));i.push(E,L,...u,...c,...O,...T,b);break}case"top":{const b=_.Sub(s[1],new _(l*5-g/2,0,0)),E=_.Sub(s[1],new _(l*5,M,0)),L=_.Sub(s[1],new _(l*5+g/2,0,0));i.push(E,b,...O,...T,...u,...c,L);break}case"topRight":{const b=_.Sub(s[1],new _(l*1.1,0,0)),E=_.Sub(s[1],new _(l*1.1+g/2,M,0)),L=_.Sub(s[1],new _(l*1.1+g,0,0));i.push(E,b,...O,...T,...u,...c,L);break}case"topLeft":{const b=_.Add(s[0],new _(l*1.1+g,0,0)),E=_.Add(s[0],new _(l*1.1+g/2,-M,0)),L=_.Add(s[0],new _(l*1.1,0,0));i.push(E,b,...O,...T,...u,...c,L);break}case"left":{const b=_.Add(s[0],new _(0,o*5-M/2,0)),E=_.Add(s[0],new _(-g,o*5,0)),L=_.Add(s[0],new _(0,o*5+M/2,0));i.push(E,b,...c,...O,...T,...u,L);break}case"leftTop":{const b=_.Add(s[0],new _(0,o*1.1,0)),E=_.Add(s[0],new _(-g,o*1.1+M/2,0)),L=_.Add(s[0],new _(0,o*1.1+M,0));i.push(E,b,...c,...O,...T,...u,L);break}case"leftBottom":{const b=_.Sub(s[3],new _(0,o*1.1+M,0)),E=_.Sub(s[3],new _(g,o*1.1+M/2,0)),L=_.Sub(s[3],new _(0,o*1.1,0));i.push(E,b,...c,...O,...T,...u,L);break}case"right":{const b=_.Add(s[1],new _(0,o*5-M/2,0)),E=_.Add(s[1],new _(g,o*5,0)),L=_.Add(s[1],new _(0,o*5+M/2,0));i.push(E,L,...T,...u,...c,...O,b);break}case"rightTop":{const b=_.Add(s[1],new _(0,o*1.1,0)),E=_.Add(s[1],new _(g,o*1.1+M/2,0)),L=_.Add(s[1],new _(0,o*1.1+M,0));i.push(E,L,...T,...u,...c,...O,b);break}case"rightBottom":{const b=_.Sub(s[2],new _(0,o*1.1+M,0)),E=_.Sub(s[2],new _(-g,o*1.1+M/2,0)),L=_.Sub(s[2],new _(0,o*1.1,0));i.push(E,L,...T,...u,...c,...O,b);break}}const A=Bt(this.tmpPoints,t),I=[Math.floor(A.x+A.w/2),Math.floor(A.y+A.h/2)];return{rect:A,pos:I,points:i}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l)||xt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l,isDrawing:!1});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:s}=t,{strokeColor:l,fillColor:o,toolsType:i,placement:f}=n,p=s.get(e.name),c=p==null?void 0:p.opt;let m=e;return e.tagName==="GROUP"&&(m=e.children[0]),l&&(m.setAttribute("strokeColor",l),c!=null&&c.strokeColor&&(c.strokeColor=l)),o&&(o==="transparent"?m.setAttribute("fillColor","rgba(0,0,0,0)"):m.setAttribute("fillColor",o),c!=null&&c.fillColor&&(c.fillColor=o)),i===ht.SpeechBalloon&&f&&(c.placement=f),p&&s.setInfo(e.name,{...p,opt:c}),yt.updateNodeOpt(t)}}class Hn extends yt{constructor(t){super(t);nt(this,"canRotate",!0);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Image);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=this.workOptions.uniformScale?jt.proportional:jt.all}consume(){return{type:ct.None}}consumeAll(){return{type:ct.None}}draw(t){var u;const{layer:e,workId:n,replaceId:s,imageBitmap:l,isMainThread:o}=t,{centerX:i,centerY:f,width:p,height:c,scale:m,rotate:y,translate:O,zIndex:x}=this.workOptions;this.fullLayer.getElementsByName(s||n).map(g=>g.remove()),(u=this.drawLayer)==null||u.getElementsByName(s||n).map(g=>g.remove());const v={anchor:[.5,.5],pos:[i,f],name:n,size:[p,c],zIndex:x};if(m)if(this.scaleType===jt.proportional){const g=Math.min(m[0],m[1]);v.scale=[g,g]}else v.scale=m;O&&(v.translate=O),y&&(v.rotate=y);const T=new ne(v),a=new Gh({anchor:[.5,.5],pos:[0,0],size:[p,c],texture:l,rotate:!o&&180||void 0});T.append(a),e.append(T);const h=T.getBoundingClientRect();if(h)return{x:Math.floor(h.x-yt.SafeBorderPadding),y:Math.floor(h.y-yt.SafeBorderPadding),w:Math.floor(h.width+yt.SafeBorderPadding*2),h:Math.floor(h.height+yt.SafeBorderPadding*2)}}consumeService(){}async consumeServiceAsync(t){var c,m,y,O;const{isFullWork:e,replaceId:n,scene:s,isMainThread:l}=t,{src:o,uuid:i}=this.workOptions,f=((c=this.workId)==null?void 0:c.toString())||i,p=e?this.fullLayer:this.drawLayer||this.fullLayer;if(o){const x=await s.preload({id:i,src:this.workOptions.src}),v=this.draw({workId:f,layer:p,replaceId:n,imageBitmap:x[0],isMainThread:l});return this.oldRect=f&&((y=(m=this.vNodes)==null?void 0:m.get(f))==null?void 0:y.rect)||void 0,(O=this.vNodes)==null||O.setInfo(f,{rect:v,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&yt.getCenterPos(v,p)}),v}}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:s,targetNode:l}=t,{translate:o,box:i,boxScale:f,boxTranslate:p,angle:c,isLocked:m,zIndex:y}=n,O=l&&Jt(l)||s.get(e.name);if(!O)return;const x=e.parent;if(x){if(kt(y)&&(e.setAttribute("zIndex",y),O.opt.zIndex=y),ce(m)&&(O.opt.locked=m),i&&p&&f){const{centerX:v,centerY:T,width:a,height:h,uniformScale:u}=O.opt;if(u){const A=Math.min(f[0],f[1]);O.opt.scale=[A,A]}else O.opt.scale=f;O.opt.width=Math.floor(a*f[0]),O.opt.height=Math.floor(h*f[1]);const g=[p[0]/x.worldScaling[0],p[1]/x.worldScaling[1]];O.opt.centerX=v+g[0],O.opt.centerY=T+g[1];const M=[O.centerPos[0]+g[0],O.centerPos[1]+g[1]];if(O.centerPos=M,l){let A=yn(O.rect,f);A=Re(A,g),O.rect=A}}else if(o){const v=[o[0]/x.worldScaling[0],o[1]/x.worldScaling[1]];if(O.opt.centerX=O.opt.centerX+v[0],O.opt.centerY=O.opt.centerY+v[1],O.centerPos=[O.centerPos[0]+v[0],O.centerPos[1]+v[1]],l){const T=Re(O.rect,v);O.rect=T}}else if(kt(c)&&(e.setAttribute("rotate",c),O.opt.rotate=c,l)){const v=vn(O.rect,c);O.rect=v}return O&&s.setInfo(e.name,O),O==null?void 0:O.rect}}}class Kn extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.both);nt(this,"toolsType",ht.Straight);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");nt(this,"straightTipWidth");nt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.straightTipWidth=this.workOptions.thickness/2,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:s,isMainThread:l}=t,o=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!o)return{type:ct.None};const{op:i,workState:f}=e,p=i==null?void 0:i.length;if(!p||p<2)return{type:ct.None};let c;if(f===Rt.Start?(this.tmpPoints=[new xt(i[0],i[1])],c=!1):c=this.updateTempPoints(i),!c)return{type:ct.None};let m;if(s||l){const x=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({workId:o,layer:x})}if(!s){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:ct.DrawWork,dataType:Tt.Local,workId:o,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:ct.None}}const y=Ot(m,this.oldRect);return this.oldRect=m,{rect:y,type:ct.DrawWork,dataType:Tt.Local,workId:o}}consumeAll(t){var f,p;const{data:e}=t,n=(f=e==null?void 0:e.workId)==null?void 0:f.toString();if(!n)return{type:ct.None};if(this.tmpPoints.length<2)return{type:ct.RemoveNode,removeIds:[n]};const s=this.fullLayer,l=this.draw({workId:n,layer:s});this.oldRect=l;const o=this.tmpPoints.map(c=>[...c.XY,0]).flat(1),i=qt(o);return(p=this.vNodes)==null||p.setInfo(n,{rect:l,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:l&&yt.getCenterPos(l,s)}),{rect:l,type:ct.FullWork,dataType:Tt.Local,workId:n,ops:i,isSync:!0,opt:this.workOptions}}draw(t){var h;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(u=>u.remove()),(h=this.drawLayer)==null||h.getElementsByName(e).map(u=>u.remove());const{strokeColor:s,thickness:l,zIndex:o,scale:i,rotate:f,translate:p}=this.workOptions,c=n.worldPosition,m=n.worldScaling,{d:y,rect:O}=this.computDrawPoints(l),x=[O.x+O.w/2,O.y+O.h/2],v={pos:x,name:e,id:e,d:y,fillColor:s,strokeColor:s,lineWidth:0,className:`${x[0]},${x[1]}`,normalize:!0,zIndex:o};i&&(v.scale=i),f&&(v.rotate=f),p&&(v.translate=p);const T=new ge(v);if(n.append(T),f||i||p){const u=T.getBoundingClientRect();return{x:Math.floor(u.x-yt.SafeBorderPadding),y:Math.floor(u.y-yt.SafeBorderPadding),w:Math.floor(u.width+yt.SafeBorderPadding*2),h:Math.floor(u.height+yt.SafeBorderPadding*2)}}return{x:Math.floor(O.x*m[0]+c[0]-yt.SafeBorderPadding),y:Math.floor(O.y*m[1]+c[1]-yt.SafeBorderPadding),w:Math.floor(O.w*m[0]+2*yt.SafeBorderPadding),h:Math.floor(O.h*m[1]+2*yt.SafeBorderPadding)}}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.straightTipWidth?this.computFullPoints(t):this.computDotPoints(t)}computFullPoints(t){const e=_.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=_.Per(e).mul(t/2),s=xt.Sub(this.tmpPoints[0],n),l=xt.Add(this.tmpPoints[0],n),o=xt.Sub(this.tmpPoints[1],n),i=xt.Add(this.tmpPoints[1],n),f=xt.GetSemicircleStroke(this.tmpPoints[1],o,-1,8),p=xt.GetSemicircleStroke(this.tmpPoints[0],l,-1,8),c=[s,o,...f,i,l,...p];return{d:Oe(c,!0),rect:Bt(c),isDot:!1,pos:this.tmpPoints[0].XY}}computDotPoints(t){const e=xt.GetDotStroke(this.tmpPoints[0],t/2,8);return{d:Oe(e,!0),rect:Bt(e),isDot:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const e=t.slice(-2),n=new xt(e[0],e[1]),s=this.tmpPoints[0],{thickness:l}=this.workOptions;if(s.isNear(n,l))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var i,f;const{op:e,isFullWork:n}=t,s=(i=this.workId)==null?void 0:i.toString();if(!s)return;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3)this.tmpPoints.push(new xt(e[p],e[p+1],e[p+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:s,layer:l});return this.oldRect=o,(f=this.vNodes)==null||f.setInfo(s,{rect:o,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,l)}),o}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var i;const{node:e,opt:n,vNodes:s}=t,{strokeColor:l}=n,o=s.get(e.name);return l&&(e.setAttribute("strokeColor",l),e.setAttribute("fillColor",l),(i=o==null?void 0:o.opt)!=null&&i.strokeColor&&(o.opt.strokeColor=l)),o&&s.setInfo(e.name,o),yt.updateNodeOpt(t)}}class Le extends yt{constructor(t){super(t);nt(this,"canRotate",!1);nt(this,"scaleType",jt.all);nt(this,"toolsType",ht.Text);nt(this,"tmpPoints",[]);nt(this,"workOptions");nt(this,"oldRect");this.workOptions=t.toolsOpt}consume(){return{type:ct.None}}consumeAll(){return{type:ct.None}}draw(t){var x;const{workId:e,layer:n,isDrawLabel:s}=t;this.fullLayer.getElementsByName(e).map(v=>v.remove()),(x=this.drawLayer)==null||x.getElementsByName(e).map(v=>v.remove());const{boxSize:l,boxPoint:o,zIndex:i}=this.workOptions,f=n.worldPosition,p=n.worldScaling;if(!o||!l)return;const c=new ne({name:e,id:e,pos:[o[0]+l[0]/2,o[1]+l[1]/2],anchor:[.5,.5],size:l,zIndex:i}),m={x:o[0],y:o[1],w:l[0],h:l[1]},y=new ur({normalize:!0,pos:[0,0],size:l}),O=s&&Le.createLabels(this.workOptions,n)||[];return c.append(...O,y),n.append(c),{x:Math.floor(m.x*p[0]+f[0]),y:Math.floor(m.y*p[1]+f[1]),w:Math.floor(m.w*p[0]),h:Math.floor(m.h*p[1])}}consumeService(t){var f,p,c,m;const e=(f=this.workId)==null?void 0:f.toString();if(!e)return;const{isFullWork:n,replaceId:s,isDrawLabel:l}=t;this.oldRect=s&&((c=(p=this.vNodes)==null?void 0:p.get(s))==null?void 0:c.rect)||void 0;const o=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:e,layer:o,isDrawLabel:l});return(m=this.vNodes)==null||m.setInfo(e,{rect:i,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,o)}),i}updataOptService(t){var y,O;if(!this.workId)return;const e=this.workId.toString(),{fontColor:n,fontBgColor:s,bold:l,italic:o,lineThrough:i,underline:f,zIndex:p}=t,c=(y=this.vNodes)==null?void 0:y.get(e);if(!c)return;n&&(c.opt.fontColor=n),s&&(c.opt.fontBgColor=s),l&&(c.opt.bold=l),o&&(c.opt.italic=o),ce(i)&&(c.opt.lineThrough=i),ce(f)&&(c.opt.underline=f),s&&(c.opt.fontBgColor=s),kt(p)&&(c.opt.zIndex=p),this.oldRect=c.rect;const m=this.draw({workId:e,layer:this.fullLayer,isDrawLabel:!1});return(O=this.vNodes)==null||O.setInfo(e,{rect:m,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:m&&yt.getCenterPos(m,this.fullLayer)}),m}clearTmpPoints(){this.tmpPoints.length=0}static getFontWidth(t){const{ctx:e,opt:n,text:s}=t,{bold:l,italic:o,fontSize:i,fontFamily:f}=n;return e.font=`${l} ${o} ${i}px ${f}`,e.measureText(s).width}static createLabels(t,e){const n=[],s=t.text.split(","),l=s.length;for(let o=0;o<l;o++){const i=s[o],{fontSize:f,lineHeight:p,bold:c,textAlign:m,italic:y,boxSize:O,fontFamily:x,verticalAlign:v,fontColor:T,underline:a,lineThrough:h}=t,u=p||f*1.2,g=e&&e.parent.canvas.getContext("2d"),M=g&&Le.getFontWidth({text:i,opt:t,ctx:g,worldScaling:e.worldScaling});if(M){const A={anchor:[0,.5],text:i,fontSize:f,lineHeight:u,fontFamily:x,fontWeight:c,fillColor:T,textAlign:m,fontStyle:y,name:o.toString(),className:"label"},I=[0,0];if(v==="middle"){const E=(l-1)/2;I[1]=(o-E)*u}m==="left"&&(I[0]=O&&-O[0]/2+5||0),A.pos=I;const b=new $h(A);if(n.push(b),a){const E={normalize:!1,pos:[A.pos[0],A.pos[1]+f/2],lineWidth:2*e.worldScaling[0],points:[0,0,M,0],strokeColor:T,name:`${o}_underline`,className:"underline"},L=new pe(E);n.push(L)}if(h){const E={normalize:!1,pos:A.pos,lineWidth:2*e.worldScaling[0],points:[0,0,M,0],strokeColor:T,name:`${o}_lineThrough`,className:"lineThrough"},L=new pe(E);n.push(L)}}}return n}static updateNodeOpt(t){const{node:e,opt:n,vNodes:s,targetNode:l}=t,{fontBgColor:o,fontColor:i,translate:f,box:p,boxScale:c,boxTranslate:m,bold:y,italic:O,lineThrough:x,underline:v,fontSize:T,textInfos:a}=n,h=l&&Jt(l)||s.get(e.name);if(!h)return;const u=e.parent;if(!u)return;const g=h.opt;if(i&&g.fontColor&&(g.fontColor=i),o&&g.fontBgColor&&(g.fontBgColor=o),y&&(g.bold=y),O&&(g.italic=O),ce(x)&&(g.lineThrough=x),ce(v)&&(g.underline=v),T&&(g.fontSize=T),p&&m&&c){const M=a==null?void 0:a.get(e.name);if(M){const{fontSize:b,boxSize:E}=M;g.boxSize=E||g.boxSize,g.fontSize=b||g.fontSize}const A=h.rect,I=Re(yn(A,c),m);g.boxPoint=I&&[(I.x-u.worldPosition[0])/u.worldScaling[0],(I.y-u.worldPosition[1])/u.worldScaling[1]]}else if(f&&g.boxPoint){const M=[f[0]/u.worldScaling[0],f[1]/u.worldScaling[1]];g.boxPoint=[g.boxPoint[0]+M[0],g.boxPoint[1]+M[1]],h.centerPos=[h.centerPos[0]+M[0],h.centerPos[1]+M[1]],h.rect=Re(h.rect,M)}return h&&s.setInfo(e.name,h),h==null?void 0:h.rect}static getRectFromLayer(t,e){const n=t.getElementsByName(e)[0];if(n){const s=n.getBoundingClientRect();return{x:Math.floor(s.x),y:Math.floor(s.y),w:Math.floor(s.width),h:Math.floor(s.height)}}}}function Vn(d){switch(d){case ht.Arrow:return Fn;case ht.Pencil:return Mn;case ht.Straight:return Kn;case ht.Ellipse:return jn;case ht.Polygon:case ht.Triangle:return zn;case ht.Star:case ht.Rhombus:return $n;case ht.Rectangle:return Un;case ht.SpeechBalloon:return Gn;case ht.Text:return Le;case ht.LaserPen:return On;case ht.Eraser:return ae;case ht.Selector:return wt;case ht.Image:return Hn}}function vr(d,r){const{toolsType:t,...e}=d;switch(t){case ht.Arrow:return new Fn(e);case ht.Pencil:return new Mn(e);case ht.Straight:return new Kn(e);case ht.Ellipse:return new jn(e);case ht.Polygon:case ht.Triangle:return new zn(e);case ht.Star:case ht.Rhombus:return new $n(e);case ht.Rectangle:return new Un(e);case ht.SpeechBalloon:return new Gn(e);case ht.Text:return new Le(e);case ht.LaserPen:return new On(e);case ht.Eraser:return new ae(e,r);case ht.Selector:return e.vNodes?new wt({...e,vNodes:e.vNodes,drawLayer:e.fullLayer}):void 0;case ht.Image:return new Hn(e);default:return}}function Yn(d){const r=[],t=["PATH","SPRITE","POLYLINE","RECT","ELLIPSE"];for(const e of d){if(e.tagName==="GROUP"&&e.children.length)return Yn(e.children);e.tagName&&t.includes(e.tagName)&&r.push(e)}return r}class s0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.SetColorNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i}=t;e===wt.selectorId&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s}=t,{willSyncService:l,isSync:o,textUpdateForWoker:i}=e,f=n.render||[],p=n.sp||[];if(l)for(const[c,m]of s.entries())i&&m.toolsType===ht.Text?p.push({...m,workId:c,type:ct.TextUpdate,dataType:Tt.Local,willSyncService:!0}):p.push({...m,workId:c,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:o});return{render:f,sp:p}}}class o0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.ZIndexNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var i;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o}=t;e===wt.selectorId&&n&&await((i=this.localWork)==null?void 0:i.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s}=t,{willSyncService:l,isSync:o}=e,i=n.render||[],f=n.sp||[];if(l&&f)for(const[p,c]of s.entries())f.push({...c,workId:p,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:o});return{render:i,sp:f}}}class a0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.TranslateNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var p,c;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i,emitEventType:f}=t;e===wt.selectorId&&n&&(n.workState===Rt.Done&&(n!=null&&n.translate)&&(n.translate[0]||n.translate[1])||n.workState!==Rt.Done?await((p=this.localWork)==null?void 0:p.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,isSync:!0,textUpdateForWoker:i,emitEventType:f,scene:this.scene,callback:this.updateSelectorCallback})):n.workState===Rt.Done&&((c=this.localWork)==null||c.vNodes.deleteLastTarget()))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s,workShapeNode:l,res:o}=t,{willSyncService:i,isSync:f,updateSelectorOpt:p,textUpdateForWoker:c}=e,m=p.workState,y=n.render||[],O=n.sp||[];if(m===Rt.Start)return{sp:[],render:[]};const x=o==null?void 0:o.selectRect;if(i){m===Rt.Doing&&O.push({type:ct.Select,selectIds:l.selectIds,selectRect:x,willSyncService:!0,isSync:!0,points:l.getChildrenPoints(),textOpt:l.textOpt});for(const[v,T]of s.entries())c&&T.toolsType===ht.Text?O.push({...T,workId:v,type:ct.TextUpdate,dataType:Tt.Local,willSyncService:!0}):O.push({...T,workId:v,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:f})}return{render:y,sp:O}}}class l0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.DeleteNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.RemoveNode){if(n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0;if(n===Tt.Service&&s===this.emitEventType)return this.consumeForServiceWorker(t),!0}}consumeForLocalWorker(t){if(!this.localWork)return;const{removeIds:e,willRefresh:n,willSyncService:s,viewId:l}=t;if(!(e!=null&&e.length))return;let o;const i=[],f=[],p=[];for(const c of e){if(c===wt.selectorId){const y=this.localWork.workShapes.get(wt.selectorId);if(!y)return;const O=y.selectIds&&[...y.selectIds]||[];for(const v of O){if(this.localWork.vNodes.get(v)){const a=this.commandDeleteText(v);a&&i.push(a)}o=Ot(o,this.localWork.removeNode(v)),p.push(v)}const x=y==null?void 0:y.updateSelectIds([]);o=Ot(o,x.bgRect),this.localWork.clearWorkShapeNodeCache(wt.selectorId),this.localWork.workShapes.delete(wt.selectorId),i.push({type:ct.Select,selectIds:[],willSyncService:s});continue}const m=this.commandDeleteText(c);m&&i.push(m),o=Ot(o,this.localWork.removeNode(c)),p.push(c)}s&&i.push({type:ct.RemoveNode,removeIds:p}),o&&n&&f.push({rect:Wt(o),clearCanvas:Mt.Bg,isClear:!0,viewId:l},{rect:Wt(o),drawCanvas:Mt.Bg,viewId:l}),(f.length||i.length)&&this.localWork._post({render:f,sp:i})}consumeForServiceWorker(t){this.serviceWork&&this.serviceWork.removeSelectWork(t)}commandDeleteText(t){var n;const e=(n=this.localWork)==null?void 0:n.vNodes.get(t);if(e&&e.toolsType===ht.Text)return{type:ct.TextUpdate,toolsType:ht.Text,workId:t,dataType:Tt.Local}}}class c0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.ScaleNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var o;const{workId:e,updateNodeOpt:n,willSyncService:s,willSerializeData:l}=t;e===wt.selectorId&&n&&await((o=this.localWork)==null?void 0:o.updateSelector({updateSelectorOpt:n,willSyncService:s,willSerializeData:l,isSync:!0,scene:this.scene,callback:this.updateSelectorCallback.bind(this)}))}updateSelectorCallback(t){const{param:e,postData:n,workShapeNode:s,res:l,newServiceStore:o}=t,{updateSelectorOpt:i,willSyncService:f,willSerializeData:p}=e,c=i.workState,m=n.render||[],y=n.sp||[],O=l==null?void 0:l.selectRect;if(c===Rt.Start)return{sp:[],render:[]};if(f){c===Rt.Doing&&y.push({type:ct.Select,selectIds:s.selectIds,selectRect:O,willSyncService:!0,isSync:!0,points:s.getChildrenPoints(),textOpt:s.textOpt}),p&&c===Rt.Done&&y.push({type:ct.Select,selectIds:s.selectIds,selectRect:O,willSyncService:!1,isSync:!0,points:s.getChildrenPoints(),textOpt:s.textOpt});for(const[x,v]of o.entries())v.toolsType===ht.Text?y.push({...v,workId:x,type:ct.TextUpdate,dataType:Tt.Local,willSyncService:!0}):y.push({...v,workId:x,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:!0})}return{render:m,sp:y}}}class f0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.RotateNode)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,emitEventType:i}=t;e===wt.selectorId&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,emitEventType:i,isSync:!0,scene:this.scene,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,workShapeNode:s,res:l,newServiceStore:o}=t,{updateSelectorOpt:i,willSyncService:f,willSerializeData:p,isSync:c}=e,m=i.workState,y=n.render||[],O=n.sp||[],x=l==null?void 0:l.selectRect;if(f){p&&m===Rt.Done&&O.push({type:ct.Select,selectIds:s.selectIds,selectRect:x,willSyncService:!0,isSync:c,points:s.getChildrenPoints()});for(const[v,T]of o.entries())O.push({...T,workId:v,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:c})}return{render:y,sp:O}}}class u0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.SetFontStyle)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i}=t;e===wt.selectorId&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s,workShapeNode:l,res:o}=t,{willSyncService:i,isSync:f,updateSelectorOpt:p,textUpdateForWoker:c}=e,m=n.render||[],y=n.sp||[],O=o==null?void 0:o.selectRect;if(i&&y){p.fontSize&&y.push({type:ct.Select,selectIds:l.selectIds,selectRect:O,willSyncService:i,isSync:f,points:l.getChildrenPoints()});for(const[x,v]of s.entries())c&&v.toolsType===ht.Text?y.push({...v,workId:x,type:ct.TextUpdate,dataType:Tt.Local,willSyncService:!0}):y.push({...v,workId:x,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:f})}return{render:m,sp:y}}}class h0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.SetPoint)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,textUpdateForWoker:i}=t;e===wt.selectorId&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,emitEventType:this.emitEventType,willSerializeData:o,isSync:!0,textUpdateForWoker:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s,workShapeNode:l,res:o}=t,{willSyncService:i,isSync:f}=e,p=n.render||[],c=n.sp||[],m=o==null?void 0:o.selectRect;if(i&&c){for(const[y,O]of s.entries())c.push({...O,workId:y,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:f});c.push({type:ct.Select,selectIds:l.selectIds,selectRect:m,willSyncService:i,isSync:f,points:l.getChildrenPoints()})}return{render:p,sp:c}}}class d0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.SetLock)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var i;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o}=t;e===wt.selectorId&&n&&await((i=this.localWork)==null?void 0:i.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s,workShapeNode:l,res:o}=t,{willSyncService:i,isSync:f,updateSelectorOpt:p}=e,c=n.render||[],m=n.sp||[],y=o==null?void 0:o.selectRect;if(i&&m){for(const[O,x]of s.entries())m.push({...x,workId:O,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:f});m.push({isLocked:p.isLocked,selectorColor:l.selectorColor,scaleType:l.scaleType,canRotate:l.canRotate,type:ct.Select,selectIds:l.selectIds,selectRect:y,willSyncService:i,isSync:f})}return{render:c,sp:m}}}class g0 extends Zt{constructor(){super(...arguments);nt(this,"emitEventType",Lt.SetShapeOpt)}consume(t){const{msgType:e,dataType:n,emitEventType:s}=t;if(e===ct.UpdateNode&&n===Tt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var i;const{workId:e,updateNodeOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o}=t;e===wt.selectorId&&n&&await((i=this.localWork)==null?void 0:i.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:l,willSerializeData:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:s}=t,{willSyncService:l,isSync:o}=e,i=n.render||[],f=n.sp||[];if(l&&f)for(const[p,c]of s.entries())f.push({...c,workId:p,type:ct.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:o});return{render:i,sp:f}}}class p0{constructor(r){nt(this,"builders",new Map);this.builders=new Map(r.map(t=>[t,this.build(t)]))}build(r){switch(r){case Lt.TranslateNode:return new a0;case Lt.ZIndexNode:return new o0;case Lt.CopyNode:return new Ch;case Lt.SetColorNode:return new s0;case Lt.DeleteNode:return new l0;case Lt.ScaleNode:return new c0;case Lt.RotateNode:return new f0;case Lt.SetFontStyle:return new u0;case Lt.SetPoint:return new h0;case Lt.SetLock:return new d0;case Lt.SetShapeOpt:return new g0}}registerForWorker(r,t,e){return this.builders.forEach(n=>{n&&n.registerForWorker(r,t,e)}),this}consumeForWorker(r){for(const t of this.builders.values())if(t!=null&&t.consume(r))return!0;return!1}}const yr="cursorhover";class m0{constructor(r,t){nt(this,"viewId");nt(this,"scene");nt(this,"scenePath");nt(this,"fullLayer");nt(this,"curNodeMap",new Map);nt(this,"targetNodeMap",[]);this.viewId=r,this.scene=t}init(r){this.fullLayer=r}get(r){return this.curNodeMap.get(r)}hasRenderNodes(){let r=!1;for(const t of this.curNodeMap.values())Nh(t.toolsType)&&(r=!0);return r}has(r){this.curNodeMap.has(r)}setInfo(r,t){const e=this.curNodeMap.get(r)||{name:r,rect:t.rect};t.rect&&(e.rect=Jt(t.rect)),t.op&&(e.op=Jt(t.op)),t.canRotate&&(e.canRotate=t.canRotate),t.scaleType&&(e.scaleType=t.scaleType),t.opt&&(e.opt=Jt(t.opt)),t.toolsType&&(e.toolsType=t.toolsType),t.centerPos&&(e.centerPos=Jt(t.centerPos)),ce(t.isSelected)&&(e.isSelected=t.isSelected),e.rect?this.curNodeMap.set(r,e):this.curNodeMap.delete(r)}selected(r){this.setInfo(r,{isSelected:!0})}unSelected(r){this.setInfo(r,{isSelected:!1})}delete(r){this.curNodeMap.delete(r)}clear(){this.curNodeMap.clear(),this.targetNodeMap.length=0}hasRectIntersectRange(r,t=!0){for(const e of this.curNodeMap.values())if(Ce(r,e.rect)){if(t&&e.toolsType===ht.Image&&e.opt.locked||t&&e.toolsType===ht.Text&&(e.opt.workState===Rt.Doing||e.opt.workState===Rt.Start))continue;return!0}return!1}getRectIntersectRange(r,t=!0){let e;const n=new Map;for(const[s,l]of this.curNodeMap.entries())if(Ce(r,l.rect)){if(t&&l.toolsType===ht.Image&&l.opt.locked||t&&l.toolsType===ht.Text&&(l.opt.workState===Rt.Doing||l.opt.workState===Rt.Start))continue;e=Ot(e,l.rect),n.set(s,l)}return{rectRange:e,nodeRange:n}}getNodeRectFormShape(r,t){const e=Vn(t.toolsType);return this.fullLayer&&(e==null?void 0:e.getRectFromLayer(this.fullLayer,r))}updateNodesRect(){this.curNodeMap.forEach((r,t)=>{const e=this.getNodeRectFormShape(t,r);e?(r.rect=e,this.curNodeMap.set(t,r)):this.curNodeMap.delete(t)})}combineIntersectRect(r){let t=r;return this.curNodeMap.forEach(e=>{Ce(t,e.rect)&&(t=Ot(t,e.rect))}),t}setTarget(){return this.targetNodeMap.push(Jt(this.curNodeMap)),this.targetNodeMap.length-1}getLastTarget(){return this.targetNodeMap[this.targetNodeMap.length-1]}deleteLastTarget(){this.targetNodeMap.length=this.targetNodeMap.length-1}getTarget(r){return this.targetNodeMap[r]}deleteTarget(r){this.targetNodeMap.length=r}}class Xn{constructor(r,t){nt(this,"viewId");nt(this,"fullLayer");nt(this,"vNodes");nt(this,"dpr");nt(this,"opt");nt(this,"cameraOpt");nt(this,"scene");nt(this,"isSafari",!1);nt(this,"combinePostMsg",new Set);nt(this,"workerTaskId");this.viewId=r,this.opt=t,this.dpr=t.dpr,this.scene=this.createScene(t.offscreenCanvasOpt),this.fullLayer=this.createLayer("fullLayer",this.scene,{...t.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.vNodes=new m0(r,this.scene)}setIsSafari(r){this.isSafari=r}async on(r,t){const{msgType:e,toolsType:n,opt:s,workId:l,workState:o,dataType:i}=r;switch(kt(t)&&this.post({workerTasksqueueCount:t}),e){case ct.Destroy:this.destroy();break;case ct.Clear:this.clearAll();break;case ct.UpdateTools:if(n&&s){const f={toolsType:n,toolsOpt:s};this.localWork.setToolsOpt(f)}break;case ct.CreateWork:l&&s&&(!this.localWork.getTmpWorkShapeNode()&&n&&this.setToolsOpt({toolsType:n,toolsOpt:s}),this.setWorkOpt({workId:l,toolsOpt:s}));break;case ct.DrawWork:o===Rt.Done&&i===Tt.Local?this.consumeDrawAll(i,r):this.consumeDraw(i,r);break}}updateScene(r){this.scene.attr({...r});const{width:t,height:e}=r;this.scene.container.width=t,this.scene.container.height=e,this.scene.width=t,this.scene.height=e,this.updateLayer({width:t,height:e})}updateLayer(r){const{width:t,height:e}=r;this.fullLayer&&(this.fullLayer.parent.setAttribute("width",t),this.fullLayer.parent.setAttribute("height",e),this.fullLayer.setAttribute("size",[t,e]),this.fullLayer.setAttribute("pos",[t*.5,e*.5]))}createScene(r){const{width:t,height:e}=r,n=new OffscreenCanvas(t,e);return new zh({container:n,displayRatio:this.dpr,depth:!1,desynchronized:!0,...r})}createLayer(r,t,e){const{width:n,height:s}=e,l=`offscreen-${r}`,o=t.layer(l,e),i=new ne({anchor:[.5,.5],pos:[n*.5,s*.5],size:[n,s],name:"viewport",id:r});return o.append(i),i}clearAll(){var r;this.fullLayer&&(this.fullLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.fullLayer.removeAllChildren()),this.localWork.destroy(),(r=this.serviceWork)==null||r.destroy()}setToolsOpt(r){this.localWork.setToolsOpt(r)}setWorkOpt(r){const{workId:t,toolsOpt:e}=r;t&&e&&this.localWork.setWorkOptions(t,e)}destroy(){var r;this.vNodes.clear(),this.fullLayer.remove(),this.scene.remove(),this.localWork.destroy(),(r=this.serviceWork)==null||r.destroy()}post(r){this.combinePostMsg.add(r),this.runBatchPostData()}runBatchPostData(){this.workerTaskId||(this.workerTaskId=requestAnimationFrame(this.combinePost.bind(this)))}combinePostData(){var s,l;this.workerTaskId=void 0;const r=[],t=[];let e,n;for(const o of this.combinePostMsg.values()){if((s=o.render)!=null&&s.length)for(const i of o.render){let f=!1;if(i.isClearAll&&(i.rect=this.getSceneRect(),i.isClear=!0,delete i.isClearAll),i.drawCanvas){const p=this.getLayer(i.drawCanvas);if(!p)continue;if(p.parent.render(),i.isDrawAll){const c=this.getSceneRect(),{rectRange:m}=this.vNodes.getRectIntersectRange(c,!1);i.rect=m,delete i.isDrawAll}}for(const p of r)if(i.viewId===p.viewId){i.isClear&&p.clearCanvas&&p.isClear&&p.clearCanvas===i.clearCanvas&&(p.rect=Ot(p.rect,i.rect),f=!0),p.drawCanvas&&p.drawCanvas===i.drawCanvas&&(p.rect=Ot(p.rect,i.rect),f=!0);continue}if(!f)if(i.isClear&&!i.drawCanvas){const p=r.find(c=>c.drawCanvas===i.clearCanvas&&le(c.rect,i.rect));p!=null&&p.rect&&(p.rect=Wt(p.rect,2)),r.unshift(i)}else i.drawCanvas&&!i.clearCanvas&&i.rect&&r.find(p=>p.isClear&&p.clearCanvas===i.drawCanvas&&le(p.rect,i.rect))&&(i.rect=Wt(i.rect,2)),r.push(i)}if((l=o.sp)!=null&&l.length)for(const i of o.sp){let f=!1;for(const p of t)if(le(i,p)){f=!0;break}f||t.push(i)}kt(o.drawCount)&&(e=o.drawCount),kt(o.workerTasksqueueCount)&&(n=o.workerTasksqueueCount)}return this.combinePostMsg.clear(),{render:r,sp:t,drawCount:e,workerTasksqueueCount:n}}safariFixRect(r){if(r.w+r.x<=0||r.h+r.y<=0||r.w<=0||r.h<=0)return;const t=this.scene.width,e=this.scene.height,n={x:Math.floor(Math.max(0,r.x)),y:Math.floor(Math.max(0,r.y)),w:Math.floor(Math.min(t,r.w)),h:Math.floor(Math.min(e,r.h))};return n.x+n.w>t&&(n.w=Math.floor(t-n.x)),n.y+n.h>e&&(n.h=Math.floor(e-n.y)),n}getSceneRect(){const{width:r,height:t}=this.scene;return{x:0,y:0,w:Math.floor(r),h:Math.floor(t)}}}class Jn{constructor(r){nt(this,"viewId");nt(this,"vNodes");nt(this,"thread");nt(this,"fullLayer");nt(this,"drawLayer");nt(this,"_post");nt(this,"tmpWorkShapeNode");nt(this,"tmpOpt");nt(this,"workShapes",new Map);nt(this,"workShapeState",new Map);nt(this,"effectWorkId");nt(this,"drawCount",0);this.thread=r.thread,this.viewId=r.viewId,this.vNodes=r.vNodes,this.fullLayer=r.fullLayer,this.drawLayer=r.drawLayer,this._post=this.thread.post.bind(r.thread)}destroy(){this.workShapeState.clear(),this.workShapes.clear()}getWorkShape(r){return this.workShapes.get(r)}getTmpWorkShapeNode(){return this.tmpWorkShapeNode}setTmpWorkId(r){if(r&&this.tmpWorkShapeNode){this.tmpWorkShapeNode.setWorkId(r),this.workShapes.set(r,this.tmpWorkShapeNode),this.tmpOpt&&this.setToolsOpt(this.tmpOpt);return}}setWorkOptions(r,t){var n;this.workShapes.get(r)||this.setTmpWorkId(r),(n=this.workShapes.get(r))==null||n.setWorkOptions(t)}createWorkShapeNode(r){var t;return vr({...r,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},(t=this.thread)==null?void 0:t.serviceWork)}setToolsOpt(r){var t,e;((t=this.tmpOpt)==null?void 0:t.toolsType)!==r.toolsType&&(e=this.tmpOpt)!=null&&e.toolsType&&this.clearAllWorkShapesCache(),this.tmpOpt=r,this.tmpWorkShapeNode=this.createWorkShapeNode(r)}clearWorkShapeNodeCache(r){var t;(t=this.getWorkShape(r))==null||t.clearTmpPoints(),this.workShapes.delete(r),this.workShapeState.delete(r)}clearAllWorkShapesCache(){this.workShapes.forEach(r=>r.clearTmpPoints()),this.workShapes.clear(),this.workShapeState.clear()}setFullWork(r){const{workId:t,opt:e,toolsType:n}=r;if(t&&e&&n){const s=t&&this.workShapes.get(t)||this.createWorkShapeNode({toolsOpt:e,toolsType:n,workId:t});return s?(s.setWorkId(t),this.workShapes.set(t,s),s):void 0}}}var v0=Qt,y0=function(){return v0.Date.now()},S0=y0,x0=/\s/;function T0(d){for(var r=d.length;r--&&x0.test(d.charAt(r)););return r}var M0=T0,O0=M0,E0=/^\s+/;function P0(d){return d&&d.slice(0,O0(d)+1).replace(E0,"")}var A0=P0,C0=ue,R0=se,I0="[object Symbol]";function L0(d){return typeof d=="symbol"||R0(d)&&C0(d)==I0}var b0=L0,D0=A0,Qn=oe,w0=b0,Zn=NaN,N0=/^[-+]0x[0-9a-f]+$/i,B0=/^0b[01]+$/i,W0=/^0o[0-7]+$/i,F0=parseInt;function j0(d){if(typeof d=="number")return d;if(w0(d))return Zn;if(Qn(d)){var r=typeof d.valueOf=="function"?d.valueOf():d;d=Qn(r)?r+"":r}if(typeof d!="string")return d===0?d:+d;d=D0(d);var t=B0.test(d);return t||W0.test(d)?F0(d.slice(2),t?2:8):N0.test(d)?Zn:+d}var U0=j0,$0=oe,Sr=S0,kn=U0,z0="Expected a function",G0=Math.max,H0=Math.min;function K0(d,r,t){var e,n,s,l,o,i,f=0,p=!1,c=!1,m=!0;if(typeof d!="function")throw new TypeError(z0);r=kn(r)||0,$0(t)&&(p=!!t.leading,c="maxWait"in t,s=c?G0(kn(t.maxWait)||0,r):s,m="trailing"in t?!!t.trailing:m);function y(M){var A=e,I=n;return e=n=void 0,f=M,l=d.apply(I,A),l}function O(M){return f=M,o=setTimeout(T,r),p?y(M):l}function x(M){var A=M-i,I=M-f,b=r-A;return c?H0(b,s-I):b}function v(M){var A=M-i,I=M-f;return i===void 0||A>=r||A<0||c&&I>=s}function T(){var M=Sr();if(v(M))return a(M);o=setTimeout(T,x(M))}function a(M){return o=void 0,m&&e?y(M):(e=n=void 0,l)}function h(){o!==void 0&&clearTimeout(o),f=0,e=i=n=o=void 0}function u(){return o===void 0?l:a(Sr())}function g(){var M=Sr(),A=v(M);if(e=arguments,n=this,i=M,A){if(o===void 0)return O(i);if(c)return clearTimeout(o),o=setTimeout(T,r),y(i)}return o===void 0&&(o=setTimeout(T,r)),l}return g.cancel=h,g.flush=u,g}var V0=K0,Y0=V0,X0=oe,J0="Expected a function";function Q0(d,r,t){var e=!0,n=!0;if(typeof d!="function")throw new TypeError(J0);return X0(t)&&(e="leading"in t?!!t.leading:e,n="trailing"in t?!!t.trailing:n),Y0(d,r,{leading:e,maxWait:r,trailing:n})}var Z0=Q0,k0=Xt(Z0);class q0 extends Jn{constructor(t){super(t);nt(this,"combineUnitTime",600);nt(this,"combineTimerId");nt(this,"effectSelectNodeData",new Set);nt(this,"batchEraserWorks",new Set);nt(this,"batchEraserRemoveNodes",new Set);nt(this,"batchEraserCombine",k0(()=>{const t=this.updateBatchEraserCombineNode(this.batchEraserWorks,this.batchEraserRemoveNodes);this.batchEraserWorks.clear(),this.batchEraserRemoveNodes.clear(),t.length&&this._post({render:t})},100,{leading:!1}))}consumeDraw(t,e){const{op:n,workId:s}=t;if(n!=null&&n.length&&s){const l=this.workShapes.get(s);if(!l)return;const o=l.toolsType;if(o===ht.LaserPen)return;const i=l.consume({data:t,isFullWork:!0});switch(o){case ht.Selector:i.type===ct.Select&&(i.selectIds&&e.runReverseSelectWork(i.selectIds),this.drawSelector(i));break;case ht.Eraser:i!=null&&i.rect&&this.drawEraser(i);break;case ht.Arrow:case ht.Straight:case ht.Ellipse:case ht.Rectangle:case ht.Star:case ht.Polygon:case ht.SpeechBalloon:i&&(this.drawCount++,this.drawPencil(i));break;case ht.Pencil:this.combineTimerId||(this.combineTimerId=setTimeout(()=>{this.combineTimerId=void 0,this.drawPencilCombine(s)},Math.floor(l.getWorkOptions().syncUnitTime||this.combineUnitTime/2))),i&&(this.drawCount++,this.drawPencil(i));break}}}consumeDrawAll(t,e){var l,o,i;this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0);const{workId:n,scenePath:s}=t;if(n){const f=this.workShapes.get(n);if(!f)return;const p=f.toolsType;if(p===ht.LaserPen)return;const c=this.workShapes.get(yr),m=(l=c==null?void 0:c.selectIds)==null?void 0:l[0],y=f.consumeAll({data:t}),O=this.workShapeState.get(n);switch(p){case ht.Selector:y.selectIds&&m&&((o=y.selectIds)!=null&&o.includes(m))&&c.cursorBlur(),y.selectIds&&e.runReverseSelectWork(y.selectIds),this.drawSelector({...y,scenePath:s}),(i=f.selectIds)!=null&&i.length?f.clearTmpPoints():this.clearWorkShapeNodeCache(n);break;case ht.Eraser:y!=null&&y.rect&&this.drawEraser({...y,scenePath:s}),f.clearTmpPoints();break;case ht.Arrow:case ht.Straight:case ht.Ellipse:case ht.Rectangle:case ht.Star:case ht.Polygon:case ht.SpeechBalloon:this.drawPencilFull({...y,scenePath:s},f.getWorkOptions(),O),this.drawCount=0,this.clearWorkShapeNodeCache(n);break;case ht.Pencil:y!=null&&y.rect&&(this.drawPencilFull({...y,scenePath:s},f.getWorkOptions(),O),this.drawCount=0),this.clearWorkShapeNodeCache(n);break}}}async consumeFull(t,e){var o,i;const n=this.setFullWork(t),s=t.ops&&Ie(t.ops),l=(o=t.workId)==null?void 0:o.toString();if(l&&n){const f=(i=this.vNodes.get(l))==null?void 0:i.rect;let p;n.toolsType===ht.Image&&e?p=await n.consumeServiceAsync({scene:e,isFullWork:!0,replaceId:l}):p=n.consumeService({op:s,isFullWork:!0,replaceId:l});const c=(t==null?void 0:t.updateNodeOpt)&&n.updataOptService(t.updateNodeOpt);p=Ot(p,c);const m=[],y=[];if(t.workId&&this.workShapes.delete(t.workId),p&&t.willRefresh&&(f&&m.push({rect:p,isClear:!0,clearCanvas:Mt.Bg,viewId:this.viewId}),m.push({rect:p,drawCanvas:Mt.Bg,viewId:this.viewId})),t.willSyncService&&y.push({opt:t.opt,toolsType:t.toolsType,type:ct.FullWork,workId:t.workId,ops:t.ops,updateNodeOpt:t.updateNodeOpt,viewId:this.viewId}),m.length||y.length){const O={render:m,sp:y};this._post(O)}}}removeWork(t){const{workId:e}=t,n=e==null?void 0:e.toString();if(n){const s=this.removeNode(n);s&&this._post({render:[{rect:Wt(s),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(s),drawCanvas:Mt.Bg,viewId:this.viewId}]})}}removeNode(t){var s;this.workShapes.has(t)&&this.clearWorkShapeNodeCache(t);let e;const n=this.vNodes.get(t);return n&&(this.fullLayer.getElementsByName(t).concat(((s=this.drawLayer)==null?void 0:s.getElementsByName(t))||[]).forEach(l=>{l.remove()}),e=Ot(e,n.rect),this.vNodes.delete(t)),e}async checkTextActive(t){const{op:e,viewId:n,dataType:s}=t;if(e!=null&&e.length){let l;for(const o of this.vNodes.curNodeMap.values()){const{rect:i,name:f,toolsType:p,opt:c}=o,m=e[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y=e[1]*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1];if(p===ht.Text&&Dh([m,y],i)&&c.workState===Rt.Done){l=f;break}}l&&(await this.blurSelector({viewId:n,msgType:ct.Select,dataType:s,isSync:!0}),this._post({sp:[{type:ct.GetTextActive,toolsType:ht.Text,workId:l}]}))}}async colloctEffectSelectWork(t){const e=this.workShapes.get(wt.selectorId),{workId:n,msgType:s}=t;if(e&&n&&e.selectIds&&e.selectIds.includes(n.toString())){s===ct.RemoveNode?e.selectIds=e.selectIds.filter(l=>l!==n.toString()):this.effectSelectNodeData.add(t),await new Promise(l=>{setTimeout(()=>{l(!0)},0)}),await this.runEffectSelectWork(!0).then(()=>{var l;(l=this.effectSelectNodeData)==null||l.clear()});return}return t}async updateSelector(t){var O;const e=this.workShapes.get(wt.selectorId);if(!((O=e==null?void 0:e.selectIds)!=null&&O.length))return;const{callback:n,...s}=t,{updateSelectorOpt:l,willSerializeData:o,scene:i}=s,f=await(e==null?void 0:e.updateSelector({updateSelectorOpt:l,selectIds:e.selectIds,vNodes:this.vNodes,willSerializeData:o,worker:this,scene:i})),p=new Map;e.selectIds.forEach(x=>{const v=this.vNodes.get(x);if(v){const{toolsType:T,op:a,opt:h}=v;p.set(x,{opt:h,toolsType:T,ops:(a==null?void 0:a.length)&&qt(a)||void 0})}});const c=[],m=[];f!=null&&f.rect&&c.push({rect:Wt(f.rect),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(f.rect),drawCanvas:Mt.Bg,viewId:this.viewId});const y=n&&n({res:f,workShapeNode:e,param:s,postData:{render:c,sp:m},newServiceStore:p})||{render:c,sp:m};(y.render.length||y.sp.length)&&this._post(y)}async blurSelector(t){var s;const e=this.workShapes.get(wt.selectorId),n=e==null?void 0:e.blurSelector();if(this.clearWorkShapeNodeCache(wt.selectorId),((s=this.fullLayer)==null?void 0:s.parent).children.forEach(l=>{l.name===wt.selectorId&&l.remove()}),n){const l=[];l.push({...n,isSync:t==null?void 0:t.isSync}),this._post({render:(n==null?void 0:n.rect)&&[{rect:Wt(n.rect),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(n.rect),drawCanvas:Mt.Bg,viewId:this.viewId}],sp:l})}}reRenderSelector(t=!1){var l;const e=this.workShapes.get(wt.selectorId);if(!e)return;if(e&&!((l=e.selectIds)!=null&&l.length))return this.blurSelector();const n=e.oldSelectRect,s=e.reRenderSelector();if(s){const o=Ot(n,s)||s;this._post({render:[{rect:Wt(o),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(o),drawCanvas:Mt.Bg,viewId:this.viewId}],sp:[{type:ct.Select,selectIds:e.selectIds,selectRect:s,willSyncService:t,viewId:this.viewId,points:e.getChildrenPoints(),textOpt:e.textOpt,selectorColor:e.selectorColor,strokeColor:e.strokeColor,fillColor:e.fillColor,canTextEdit:e.canTextEdit,canRotate:e.canRotate,scaleType:e.scaleType,opt:e.getWorkOptions()||void 0,canLock:e.canLock,isLocked:e.isLocked,toolsTypes:e.toolsTypes,shapeOpt:e.shapeOpt}]})}}updateFullSelectWork(t){var s,l,o,i,f,p,c;const e=this.workShapes.get(wt.selectorId),{selectIds:n}=t;if(!(n!=null&&n.length)){this.blurSelector(t);return}if(!e){!this.setFullWork(t)&&t.workId&&((s=this.tmpWorkShapeNode)==null?void 0:s.toolsType)===ht.Selector&&this.setTmpWorkId(t.workId),this.updateFullSelectWork(t);return}if(e&&(n!=null&&n.length)){const{bgRect:m,selectRect:y}=e.updateSelectIds(n),O={render:[],sp:[]};m&&((l=O.render)==null||l.push({rect:Wt(m),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(m),drawCanvas:Mt.Bg,viewId:this.viewId})),(c=O.sp)==null||c.push({...t,selectorColor:((o=t.opt)==null?void 0:o.strokeColor)||e.selectorColor,strokeColor:((i=t.opt)==null?void 0:i.strokeColor)||e.strokeColor,fillColor:((f=t.opt)==null?void 0:f.fillColor)||e.fillColor,textOpt:((p=t.opt)==null?void 0:p.textOpt)||e.textOpt,canTextEdit:e.canTextEdit,canRotate:e.canRotate,scaleType:e.scaleType,type:ct.Select,selectRect:y,points:e.getChildrenPoints(),willSyncService:(t==null?void 0:t.willSyncService)||!1,opt:(t==null?void 0:t.willSyncService)&&e.getWorkOptions()||void 0,canLock:e.canLock,isLocked:e.isLocked,toolsTypes:e.toolsTypes,shapeOpt:e.shapeOpt}),this._post(O)}}destroy(){super.destroy(),this.effectSelectNodeData.clear(),this.batchEraserWorks.clear(),this.batchEraserRemoveNodes.clear()}drawPencilCombine(t){var n,s,l;const e=(n=this.workShapes.get(t))==null?void 0:n.combineConsume();if(e){const o={render:[],drawCount:this.drawCount};if(e!=null&&e.rect){const i=Wt(e.rect);(s=o.render)==null||s.push({rect:i,isClear:!0,clearCanvas:Mt.Float,viewId:this.viewId}),(l=o.render)==null||l.push({rect:i,drawCanvas:Mt.Float,viewId:this.viewId})}this._post(o)}}drawSelector(t){var n;const e={render:[],sp:[t]};t.rect&&((n=e.render)==null||n.push({rect:Wt(t.rect),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(t.rect),drawCanvas:Mt.Bg,viewId:this.viewId})),this._post(e)}async drawEraser(t){var n,s;const e=[];if((n=t.newWorkDatas)!=null&&n.size){for(const l of t.newWorkDatas.values()){const o=l.workId.toString();this.batchEraserWorks.add(o),e.push({type:ct.FullWork,workId:o,ops:qt(l.op),opt:l.opt,toolsType:l.toolsType,updateNodeOpt:{useAnimation:!1}})}delete t.newWorkDatas}(s=t.removeIds)==null||s.forEach(l=>{this.batchEraserRemoveNodes.add(l)}),e.push(t),this._post({sp:e}),this.batchEraserCombine()}drawPencil(t){this._post({drawCount:this.drawCount,sp:(t==null?void 0:t.op)&&[t]})}drawPencilFull(t,e,n){var o;let s=(n==null?void 0:n.willClear)||(e==null?void 0:e.isOpacity)||!1;!s&&t.rect&&(s=this.vNodes.hasRectIntersectRange(t.rect));const l={drawCount:1/0,render:[],sp:[t]};(o=l.render)==null||o.push({isClearAll:!0,clearCanvas:Mt.Float,viewId:this.viewId},{rect:t.rect,isClear:s,clearCanvas:Mt.Bg,viewId:this.viewId},{rect:t.rect,drawCanvas:Mt.Bg,viewId:this.viewId}),this._post(l)}updateBatchEraserCombineNode(t,e){const n=[];let s;for(const l of e.keys())this.fullLayer.getElementsByName(l).forEach(o=>{const i=o.getBoundingClientRect();s=Ot(s,{x:i.x-ae.SafeBorderPadding,y:i.y-ae.SafeBorderPadding,w:i.width+ae.SafeBorderPadding*2,h:i.height+ae.SafeBorderPadding*2}),o.remove()});return t.forEach(l=>{const o=this.vNodes.get(l);if(o)if(this.fullLayer.getElementsByName(l)[0])s=Ot(s,o.rect);else{const f=this.setFullWork({...o,workId:l}),p=f&&f.consumeService({op:o.op,isFullWork:!0});p&&(o.rect=p,s=Ot(s,p))}}),s&&n.push({rect:s,isClear:!0,clearCanvas:Mt.Bg,viewId:this.viewId},{rect:s,drawCanvas:Mt.Bg,viewId:this.viewId}),n}async runEffectSelectWork(t){var e,n,s,l;for(const o of this.effectSelectNodeData.values()){const i=this.setFullWork(o);if(i){if(i.toolsType===ht.Image)await i.consumeServiceAsync({scene:(n=(e=this.drawLayer)==null?void 0:e.parent)==null?void 0:n.parent,isFullWork:!0,replaceId:(s=i.getWorkId())==null?void 0:s.toString()});else{const f=o.ops&&Ie(o.ops);i.consumeService({op:f,isFullWork:!0,replaceId:(l=i.getWorkId())==null?void 0:l.toString()})}o!=null&&o.updateNodeOpt&&i.updataOptService(o.updateNodeOpt),o.workId&&this.workShapes.delete(o.workId)}}this.reRenderSelector(t)}cursorHover(t){var o;const{opt:e,toolsType:n,point:s}=t,l=this.setFullWork({workId:yr,toolsType:n,opt:e});if(l&&s){const i=l.cursorHover(s),f={render:[]};i&&i.type===ct.CursorHover&&i.rect&&((o=f.render)==null||o.push({rect:Wt(i.rect),clearCanvas:Mt.Bg,isClear:!0,viewId:this.viewId},{rect:Wt(i.rect),drawCanvas:Mt.Bg,viewId:this.viewId}),this._post(f))}}}class _0{constructor(r){nt(this,"viewId");nt(this,"vNodes");nt(this,"fullLayer");nt(this,"drawLayer");nt(this,"workShapes",new Map);nt(this,"selectorWorkShapes",new Map);nt(this,"animationId");nt(this,"willRunEffectSelectorIds",new Set);nt(this,"runEffectId");nt(this,"noAnimationRect");nt(this,"post");this.viewId=r.viewId,this.vNodes=r.vNodes,this.fullLayer=r.fullLayer,this.drawLayer=r.drawLayer,this.post=r.thread.post.bind(r.thread)}destroy(){this.workShapes.clear(),this.selectorWorkShapes.clear(),this.willRunEffectSelectorIds.clear()}consumeDraw(r){this.activeWorkShape(r),this.runAnimation()}consumeFull(r){this.activeWorkShape(r),this.runAnimation()}clearAllWorkShapesCache(){this.workShapes.forEach((r,t)=>{r.toolsType===ht.LaserPen?setTimeout(()=>{this.workShapes.delete(t)},2e3):this.workShapes.delete(t)})}runSelectWork(r){this.activeSelectorShape(r);const{workId:t}=r,e=t==null?void 0:t.toString();e&&this.willRunEffectSelectorIds.add(e),this.runEffect()}setNodeKey(r,t,e){return r.toolsType=t,r.node=vr({toolsType:t,toolsOpt:e,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},this),r}runReverseSelectWork(r){r.forEach(t=>{this.selectorWorkShapes.forEach((e,n)=>{var s;if((s=e.selectIds)!=null&&s.length){const l=e.selectIds.indexOf(t);l>-1&&(e.selectIds.splice(l,1),this.willRunEffectSelectorIds.add(n))}})}),this.willRunEffectSelectorIds.size&&this.runEffect()}removeWork(r){const{workId:t}=r,e=t==null?void 0:t.toString();if(e){const n=this.workShapes.get(e);if(n){this.workShapes.delete(e),this.removeNode(e,r,n==null?void 0:n.totalRect,!1);return}this.removeNode(e,r)}}removeSelectWork(r){const{workId:t}=r,e=t==null?void 0:t.toString();e&&(this.activeSelectorShape(r),this.willRunEffectSelectorIds.add(e)),this.runEffect()}removeNode(r,t,e,n=!0){var o;r.indexOf(wt.selectorId)>-1&&this.removeSelectWork(t);let s=e;const l=(o=this.vNodes.get(r))==null?void 0:o.rect;l&&(s=Ot(l,s)),this.fullLayer.getElementsByName(r).forEach(i=>{i.remove()}),this.drawLayer.getElementsByName(r).forEach(i=>{i.remove()}),this.vNodes.delete(r),s&&this.post({render:[{rect:Wt(s),isClear:!0,clearCanvas:n?Mt.Bg:Mt.ServiceFloat,workerType:n?void 0:Tt.Service,viewId:this.viewId},{rect:Wt(s),drawCanvas:n?Mt.Bg:Mt.ServiceFloat,workerType:n?void 0:Tt.Service,viewId:this.viewId}]})}activeWorkShape(r){var y,O,x,v;const{workId:t,opt:e,toolsType:n,type:s,updateNodeOpt:l,ops:o,op:i,useAnimation:f}=r;if(!t)return;const p=t.toString(),c=(y=this.vNodes.get(p))==null?void 0:y.rect;if(!((O=this.workShapes)!=null&&O.has(p))){let T={toolsType:n,animationWorkData:i||[],animationIndex:0,type:s,updateNodeOpt:l,ops:o,useAnimation:typeof f<"u"?f:typeof(l==null?void 0:l.useAnimation)<"u"?l==null?void 0:l.useAnimation:!0,oldRect:c,isDiff:!1};n&&e&&(T=this.setNodeKey(T,n,e)),(x=this.workShapes)==null||x.set(p,T)}const m=(v=this.workShapes)==null?void 0:v.get(p);s&&(m.type=s),o&&(m.animationWorkData=Ie(o),m.ops=o),l&&(m.updateNodeOpt=l),i&&(m.isDiff=this.hasDiffData(m.animationWorkData||[],i,m.toolsType),m.animationWorkData=i),m.node&&m.node.getWorkId()!==p&&m.node.setWorkId(p),c&&(m.oldRect=c),n&&e&&(m.toolsType!==n&&n&&e&&this.setNodeKey(m,n,e),m.node&&m.node.setWorkOptions(e))}hasDiffData(r,t,e){const n=r.length;if(t.length<n)return!0;switch(e){case ht.Pencil:{for(let s=0;s<n;s+=3)if(t[s]!==r[s]||t[s+1]!==r[s+1])return!0;break}case ht.LaserPen:{for(let s=0;s<n;s+=2)if(t[s]!==r[s]||t[s+1]!==r[s+1])return!0;break}}return!1}async animationDraw(){var n,s,l,o,i,f,p,c,m,y,O,x,v,T,a,h,u,g,M,A,I,b,E,L,D,R,C,B;this.animationId=void 0;let r=!1;const t={render:[]},e=new Map;for(const[z,H]of this.workShapes.entries())switch(H.toolsType){case ht.Image:{const X=H.oldRect;X&&((n=t.render)==null||n.push({rect:X,isClear:!0,clearCanvas:Mt.Bg,viewId:this.viewId}));const Z=await((l=H.node)==null?void 0:l.consumeServiceAsync({isFullWork:!0,scene:(s=this.fullLayer.parent)==null?void 0:s.parent}));this.selectorWorkShapes.forEach((j,G)=>{var Q;(Q=j.selectIds)!=null&&Q.includes(z)&&(this.willRunEffectSelectorIds.add(G),this.noAnimationRect=Ot(this.noAnimationRect,X),this.noAnimationRect=Ot(this.noAnimationRect,Z),this.runEffect())}),this.workShapes.delete(z),(o=t.render)==null||o.push({rect:Z,drawCanvas:Mt.Bg,viewId:this.viewId});break}case ht.Text:{if(H.node){const X=H.oldRect,Z=(i=H.node)==null?void 0:i.consumeService({op:H.animationWorkData||[],isFullWork:!0});this.selectorWorkShapes.forEach((j,G)=>{var Q;(Q=j.selectIds)!=null&&Q.includes(z)&&(this.willRunEffectSelectorIds.add(G),this.noAnimationRect=Ot(this.noAnimationRect,X),this.noAnimationRect=Ot(this.noAnimationRect,Z),this.runEffect())}),(f=H.node)==null||f.clearTmpPoints(),this.workShapes.delete(z)}break}case ht.Arrow:case ht.Straight:case ht.Rectangle:case ht.Ellipse:case ht.Star:case ht.Polygon:case ht.SpeechBalloon:{const X=!!H.ops;if((p=H.animationWorkData)!=null&&p.length){const Z=H.oldRect,j=H.node.oldRect;Z&&((c=t.render)==null||c.push({rect:Z,isClear:!0,clearCanvas:Mt.Bg,viewId:this.viewId}),(m=t.render)==null||m.push({rect:Z,drawCanvas:Mt.Bg,viewId:this.viewId})),j&&((y=t.render)==null||y.push({rect:j,isClear:!0,clearCanvas:Mt.ServiceFloat,viewId:this.viewId}));const G=(O=H.node)==null?void 0:O.consumeService({op:H.animationWorkData,isFullWork:X});e.set(z,{workState:Z?H.ops?Rt.Done:Rt.Doing:Rt.Start,op:H.animationWorkData.filter((Q,tt)=>{if(tt%3!==2)return!0}).slice(-2)}),X?(this.selectorWorkShapes.forEach((Q,tt)=>{var et;(et=Q.selectIds)!=null&&et.includes(z)&&(this.willRunEffectSelectorIds.add(tt),this.noAnimationRect=Ot(this.noAnimationRect,Z),this.noAnimationRect=Ot(this.noAnimationRect,j),this.noAnimationRect=Ot(this.noAnimationRect,G),this.runEffect())}),(x=H.node)==null||x.clearTmpPoints(),this.workShapes.delete(z),(v=t.render)==null||v.push({rect:G,drawCanvas:Mt.Bg,viewId:this.viewId})):(T=t.render)==null||T.push({rect:G,drawCanvas:Mt.ServiceFloat,workerType:X?void 0:Tt.Service,viewId:this.viewId}),H.animationWorkData.length=0}break}case ht.Pencil:{if(!H.useAnimation&&H.ops){let X=(a=H.node)==null?void 0:a.consumeService({op:H.animationWorkData||[],isFullWork:!0,replaceId:z});const Z=(h=H.node)==null?void 0:h.updataOptService(H.updateNodeOpt);X=Ot(X,Z),(u=t.render)==null||u.push({isClear:!0,rect:Ot(H.oldRect,X),clearCanvas:Mt.Bg,viewId:this.viewId}),(g=t.render)==null||g.push({rect:Ot(H.oldRect,X),drawCanvas:Mt.Bg,viewId:this.viewId}),this.selectorWorkShapes.forEach((j,G)=>{var Q;(Q=j.selectIds)!=null&&Q.includes(z)&&(this.willRunEffectSelectorIds.add(G),this.noAnimationRect=Ot(this.noAnimationRect,X),this.runEffect())}),(M=H.node)==null||M.clearTmpPoints(),this.workShapes.delete(z)}else if(H.useAnimation){if(H.isDel){(A=H.node)==null||A.clearTmpPoints(),this.workShapes.delete(z);break}const X=3,Z=this.computNextAnimationIndex(H,X),j=H.isDiff?0:Math.max(0,(H.animationIndex||0)-X),G=(H.animationWorkData||[]).slice(j,Z),Q=(b=(I=H.node)==null?void 0:I.getWorkId())==null?void 0:b.toString();if((H.animationIndex||0)<Z||H.isDiff){const tt=(E=H.node)==null?void 0:E.consumeService({op:G,isFullWork:!1});if((L=t.render)==null||L.push({rect:tt,drawCanvas:Mt.ServiceFloat,viewId:this.viewId}),H.animationIndex=Z,H.isDiff&&(H.isDiff=!1),G.length){const et=G.filter((at,q)=>{if(q%X!==X-1)return!0}).slice(-2);e.set(z,{workState:j===0?Rt.Start:Z===((D=H.animationWorkData)==null?void 0:D.length)?Rt.Done:Rt.Doing,op:et})}}else if(H.ops){const tt=(R=H.node)==null?void 0:R.consumeService({op:H.animationWorkData||[],isFullWork:!0,replaceId:Q});H.isDel=!0,(C=t.render)==null||C.push({isClear:!0,rect:tt,clearCanvas:Mt.ServiceFloat,viewId:this.viewId},{rect:tt,drawCanvas:Mt.ServiceFloat,viewId:this.viewId},{isClear:!0,rect:tt,clearCanvas:Mt.Bg,viewId:this.viewId},{rect:tt,drawCanvas:Mt.Bg,viewId:this.viewId}),e.set(z,{workState:Rt.Done,op:G.filter((et,at)=>{if(at%X!==X-1)return!0}).slice(-2)})}r=!0;break}break}}r&&this.runAnimation(),e.size&&(t.sp=[],e.forEach((z,H)=>{var X;(X=t.sp)==null||X.push({type:ct.Cursor,uid:H.split(gr)[0],op:z.op,workState:z.workState,viewId:this.viewId})})),(B=t.render)!=null&&B.length&&this.post(t)}runAnimation(){this.animationId||(this.animationId=requestAnimationFrame(this.animationDraw.bind(this)))}computNextAnimationIndex(r,t){var n;const e=Math.floor((r.animationWorkData||[]).slice(r.animationIndex).length*32/t/(((n=r.node)==null?void 0:n.syncUnitTime)||1e3))*t;return Math.min((r.animationIndex||0)+(e||t),(r.animationWorkData||[]).length)}runEffect(){this.runEffectId||(this.runEffectId=setTimeout(this.effectRunSelector.bind(this),0))}effectRunSelector(){this.runEffectId=void 0;let r=this.noAnimationRect;this.willRunEffectSelectorIds.forEach(t=>{var s,l;const e=this.selectorWorkShapes.get(t),n=e&&e.selectIds&&((s=e.node)==null?void 0:s.selectServiceNode(t,e,!0));r=Ot(r,n),(l=e==null?void 0:e.selectIds)!=null&&l.length||this.selectorWorkShapes.delete(t)}),r&&this.post({render:[{rect:Wt(r),isClear:!0,clearCanvas:Mt.Bg,viewId:this.viewId},{rect:Wt(r),drawCanvas:Mt.Bg,viewId:this.viewId}]}),this.willRunEffectSelectorIds.clear(),this.noAnimationRect=void 0}activeSelectorShape(r){var f,p,c;const{workId:t,opt:e,toolsType:n,type:s,selectIds:l}=r;if(!t)return;const o=t.toString();if(!((f=this.selectorWorkShapes)!=null&&f.has(o))){let m={toolsType:n,selectIds:l,type:s,opt:e};n&&e&&(m=this.setNodeKey(m,n,e)),(p=this.selectorWorkShapes)==null||p.set(o,m)}const i=(c=this.selectorWorkShapes)==null?void 0:c.get(o);s&&(i.type=s),i.node&&i.node.getWorkId()!==o&&i.node.setWorkId(o),i.selectIds=l||[]}}class tg extends Jn{constructor(t){super(t);nt(this,"combineDrawTimer")}async runFullWork(t,e){var l,o;const n=this.setFullWork(t),s=t.ops&&Ie(t.ops);if(n){let i;n.toolsType===ht.Image?i=await n.consumeServiceAsync({isFullWork:!0,scene:(l=this.fullLayer.parent)==null?void 0:l.parent}):i=n.consumeService({op:s,isFullWork:!0,replaceId:(o=n.getWorkId())==null?void 0:o.toString(),isDrawLabel:e});const f=(t==null?void 0:t.updateNodeOpt)&&n.updataOptService(t.updateNodeOpt);return t.workId&&this.workShapes.delete(t.workId),f||i}}runSelectWork(t){var n;const e=this.setFullWork(t);e&&((n=t.selectIds)!=null&&n.length)&&t.workId&&e.selectServiceNode(t.workId.toString(),{selectIds:t.selectIds},!1)}consumeDraw(t){const{workId:e}=t,n=this.workShapes.get(e);if(!n)return;const s=n.toolsType,l=n.consume({data:t,isFullWork:!1,isClearAll:!0,isSubWorker:!0});switch(s){case ht.Arrow:case ht.Straight:case ht.Ellipse:case ht.Rectangle:case ht.Star:case ht.Polygon:case ht.SpeechBalloon:l&&(this.drawCount++,this.drawArrow(l));break;case ht.Pencil:l&&(this.drawCount++,this.drawPencil(l));break}}consumeDrawAll(t){const{workId:e}=t;if(e){const n=this.workShapes.get(e);if(!n)return;switch(n.toolsType){case ht.Arrow:case ht.Straight:case ht.Ellipse:case ht.Pencil:case ht.Rectangle:case ht.Star:case ht.Polygon:case ht.SpeechBalloon:this.drawCount=0,this.fullLayer.removeAllChildren(),this.clearWorkShapeNodeCache(e);break}}}updateLabels(t,e){t.children.forEach(n=>{if(n.tagName==="LABEL"){const s=n.name,{width:l}=n.getBoundingClientRect(),[o]=t.worldScaling,{underline:i,lineThrough:f}=e.opt;i&&t.getElementsByName(`${s}_underline`)[0].attr({points:[0,0,l/o,0]}),f&&t.getElementsByName(`${s}_lineThrough`)[0].attr({points:[0,0,l/o,0]})}})}drawPencil(t){this._post({drawCount:this.drawCount,render:[{rect:t==null?void 0:t.rect,drawCanvas:Mt.Float,isClear:!1,viewId:this.viewId}],sp:(t==null?void 0:t.op)&&[t]})}drawArrow(t){this._post({drawCount:this.drawCount,render:[{rect:(t==null?void 0:t.rect)&&Wt(t.rect),isClear:!0,clearCanvas:Mt.Float,viewId:this.viewId},{rect:(t==null?void 0:t.rect)&&Wt(t.rect),drawCanvas:Mt.Float,viewId:this.viewId}]})}}class eg{constructor(r){nt(this,"viewId");nt(this,"vNodes");nt(this,"topLayer");nt(this,"post");nt(this,"serviceWorkShapes",new Map);nt(this,"localWorkShapes",new Map);nt(this,"tmpOpt");nt(this,"tmpWorkShapeNode");nt(this,"animationId");this.viewId=r.viewId,this.vNodes=r.vNodes,this.topLayer=r.topLayer,this.post=r.thread.post.bind(r.thread)}getWorkShape(r){return this.localWorkShapes.get(r)}getTmpWorkShapeNode(){return this.tmpWorkShapeNode}setTmpWorkId(r){if(r&&this.tmpWorkShapeNode){this.tmpWorkShapeNode.setWorkId(r),this.localWorkShapes.set(r,{node:this.tmpWorkShapeNode,toolsType:this.tmpWorkShapeNode.toolsType,workState:Rt.Start}),this.tmpOpt&&this.setToolsOpt(this.tmpOpt);return}}setWorkOptions(r,t){var n,s,l;((n=this.localWorkShapes.get(r))==null?void 0:n.node)||this.setTmpWorkId(r),(l=(s=this.localWorkShapes.get(r))==null?void 0:s.node)==null||l.setWorkOptions(t)}createWorkShapeNode(r){const{toolsType:t}=r;if(t===ht.LaserPen)return vr({...r,vNodes:this.vNodes,fullLayer:this.topLayer,drawLayer:this.topLayer})}clearAllWorkShapesCache(){this.localWorkShapes.forEach(r=>{var t;return(t=r.node)==null?void 0:t.clearTmpPoints()}),this.localWorkShapes.clear()}setToolsOpt(r){this.tmpOpt=r,this.tmpWorkShapeNode=this.createWorkShapeNode(r)}consumeDraw(r){const{workId:t,dataType:e}=r;if(e===Tt.Service)this.activeServiceWorkShape(r);else{const n=this.localWorkShapes.get(t);if(!n)return;const s=n.node.consume({data:r,isFullWork:!1,isClearAll:!0,isSubWorker:!0});s.rect&&(n.totalRect=Ot(s.rect,n.totalRect),n.result=s,n.workState=Rt.Doing,t&&this.localWorkShapes.set(t,n))}this.runAnimation()}consumeDrawAll(r){const{workId:t,dataType:e}=r;if(e===Tt.Service)this.activeServiceWorkShape(r);else{const n=this.localWorkShapes.get(t);if(!n)return;const s=n.node.consumeAll({data:r});n.totalRect=Ot(s.rect,n.totalRect),n.result=s,n.workState=Rt.Done,t&&this.localWorkShapes.set(t,n)}this.runAnimation()}destroy(){this.serviceWorkShapes.clear(),this.localWorkShapes.clear()}setNodeKey(r,t,e){return r.toolsType=t,r.node=this.createWorkShapeNode({toolsType:t,toolsOpt:e}),r}activeServiceWorkShape(r){var m,y;const{workId:t,opt:e,toolsType:n,type:s,updateNodeOpt:l,ops:o,op:i}=r;if(!t)return;const f=t.toString(),p=(m=this.vNodes.get(f))==null?void 0:m.rect;if(!((y=this.serviceWorkShapes)!=null&&y.has(f))){let O={toolsType:n,animationWorkData:i||[],animationIndex:0,type:s,updateNodeOpt:l,ops:o,oldRect:p};n&&e&&(O=this.setNodeKey(O,n,e)),this.serviceWorkShapes.set(f,O)}const c=this.serviceWorkShapes.get(f);s&&(c.type=s),o&&(c.animationWorkData=Ie(o),c.ops=o),l&&(c.updateNodeOpt=l),i&&(c.animationWorkData=i),c.node&&c.node.getWorkId()!==f&&c.node.setWorkId(f),p&&(c.oldRect=p),n&&e&&(c.toolsType!==n&&n&&e&&this.setNodeKey(c,n,e),c.node&&c.node.setWorkOptions(e))}computNextAnimationIndex(r,t){var n;const e=Math.floor((r.animationWorkData||[]).slice(r.animationIndex).length*32/t/(((n=r.node)==null?void 0:n.syncUnitTime)||1e3))*t;return Math.min((r.animationIndex||0)+(e||t),(r.animationWorkData||[]).length)}async animationDraw(){var l,o,i,f;this.animationId=void 0;let r=!1;const t=new Map,e=[],n=[],s=[];for(const[p,c]of this.serviceWorkShapes.entries())switch(c.toolsType){case ht.LaserPen:{const y=this.computNextAnimationIndex(c,8),O=Math.max(0,c.animationIndex||0),x=(c.animationWorkData||[]).slice(O,y);if((c.animationIndex||0)<y){const v=(l=c.node)==null?void 0:l.consumeService({op:x,isFullWork:!1});c.totalRect=Ot(c.totalRect,v),c.animationIndex=y,x.length&&t.set(p,{workState:O===0?Rt.Start:y===((o=c.animationWorkData)==null?void 0:o.length)?Rt.Done:Rt.Doing,op:x.slice(-2)})}if(n.push({isClear:!0,rect:c.totalRect,clearCanvas:Mt.TopFloat,viewId:this.viewId}),e.push({rect:c.totalRect,drawCanvas:Mt.TopFloat,viewId:this.viewId}),c.isDel){(i=c.node)==null||i.clearTmpPoints(),this.serviceWorkShapes.delete(p);break}c.ops&&c.animationIndex===((f=c.animationWorkData)==null?void 0:f.length)&&!c.isDel&&(this.topLayer.getElementsByName(p.toString())[0]||(c.isDel=!0,this.serviceWorkShapes.set(p,c))),r=!0;break}}for(const[p,c]of this.localWorkShapes.entries()){const{result:m,toolsType:y,totalRect:O,isDel:x,workState:v}=c;switch(y){case ht.LaserPen:{if(O&&(n.push({isClear:!0,rect:O,clearCanvas:Mt.TopFloat,viewId:this.viewId}),e.push({rect:O,drawCanvas:Mt.TopFloat,viewId:this.viewId})),x){c.node.clearTmpPoints(),this.localWorkShapes.delete(p),s.push({removeIds:[p.toString()],viewId:this.viewId,type:ct.RemoveNode});break}m&&((m.op||m.ops)&&s.push(m),c.result=void 0),!this.topLayer.getElementsByName(p.toString())[0]&&v===Rt.Done&&(c.isDel=!0,this.localWorkShapes.set(p,c)),r=!0;break}}}r&&this.runAnimation(),t.size&&t.forEach((p,c)=>{s.push({type:ct.Cursor,uid:c.split(gr)[0],op:p.op,workState:p.workState,viewId:this.viewId})}),(e.length||n.length||s.length)&&this.post({render:[...n,...e],sp:s})}runAnimation(){this.animationId||(this.animationId=requestAnimationFrame(this.animationDraw.bind(this)))}}var qn=(d=>(d.Full="full",d.Sub="sub",d))(qn||{});class rg{constructor(r,t){nt(this,"_self");nt(this,"type");nt(this,"workThreadMap",new Map);this._self=r,this.type=t,this.register()}init(r){const{viewId:t,dpr:e,offscreenCanvasOpt:n,layerOpt:s,isSafari:l}=r;if(!e||!n||!s)return;let o;this.type==="full"&&(o=new ng(t,{dpr:e,offscreenCanvasOpt:n,layerOpt:s},this.post.bind(this))),this.type==="sub"&&(o=new ig(t,{dpr:e,offscreenCanvasOpt:n,layerOpt:s},this.post.bind(this))),o&&l&&o.setIsSafari(l),o&&r.cameraOpt&&o.setCameraOpt(r.cameraOpt),o&&this.workThreadMap.set(t,o)}register(){onmessage=r=>{const t=r.data;if(t)for(const e of t.values()){const{msgType:n,viewId:s,tasksqueue:l,mainTasksqueueCount:o}=e;if(n===ct.Init){this.init(e);continue}if(n===ct.TasksQueue&&(l!=null&&l.size)&&o){for(const[f,p]of this.workThreadMap.entries()){const c=l.get(f);c&&p.on(c,o)}continue}if(s===Xh){for(const f of this.workThreadMap.values())f.on(e),n===ct.Destroy&&this.workThreadMap.delete(s);continue}const i=this.workThreadMap.get(s);i&&(i.on(e),n===ct.Destroy&&this.workThreadMap.delete(s))}}}post(r,t){t?this._self.postMessage(r,t):this._self.postMessage(r)}}class ng extends Xn{constructor(t,e,n){super(t,e);nt(this,"serviceDrawLayer");nt(this,"localDrawLayer");nt(this,"snapshotFullLayer");nt(this,"methodBuilder");nt(this,"localWork");nt(this,"serviceWork");nt(this,"_post");this._post=n,this.serviceDrawLayer=this.createLayer("serviceDrawLayer",this.scene,{...e.layerOpt,bufferSize:1e3}),this.localDrawLayer=this.createLayer("localDrawLayer",this.scene,{...e.layerOpt,bufferSize:1e3});const s={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer};this.localWork=new q0({...s,drawLayer:this.localDrawLayer}),this.serviceWork=new _0({...s,drawLayer:this.serviceDrawLayer}),this.methodBuilder=new p0([Lt.CopyNode,Lt.SetColorNode,Lt.DeleteNode,Lt.RotateNode,Lt.ScaleNode,Lt.TranslateNode,Lt.ZIndexNode,Lt.SetFontStyle,Lt.SetPoint,Lt.SetLock,Lt.SetShapeOpt]).registerForWorker(this.localWork,this.serviceWork,this.scene),this.vNodes.init(this.fullLayer)}async combinePost(){var l,o,i,f;const{render:t,...e}=this.combinePostData();let n;if(t!=null&&t.length){const p=[];for(const c of t)if(c.rect){if(c.drawCanvas&&(c.rect=this.safariFixRect(Jt(c.rect))),!c.rect)continue;if(c.drawCanvas&&c.rect){const m=await this.getRectImageBitmap(c);c.imageBitmap=m,n||(n=[]),n.push(m)}p.push(c)}e.render=p}const s=(l=e.sp)==null?void 0:l.filter(p=>p.type!==ct.None||Object.keys(p).filter(c=>c==="type").length);s!=null&&s.length&&(e.sp=s.map(p=>({...p,viewId:this.viewId}))),((o=e.sp)==null?void 0:o.length)===0&&delete e.sp,e.drawCount===void 0&&delete e.drawCount,e.workerTasksqueueCount===void 0&&delete e.workerTasksqueueCount,(e!=null&&e.drawCount||e!=null&&e.workerTasksqueueCount||(i=e.sp)!=null&&i.length||(f=e.render)!=null&&f.length)&&this._post(e,n)}async on(t,e){if(this.methodBuilder.consumeForWorker(t))return;const{msgType:n,dataType:s,workId:l}=t;switch(n){case ct.UpdateCamera:await this.updateCamera(t),e&&this.post({workerTasksqueueCount:e});return;case ct.Select:s===Tt.Service&&(l===wt.selectorId?this.localWork.updateFullSelectWork(t):this.serviceWork.runSelectWork(t));return;case ct.UpdateNode:case ct.FullWork:await this.consumeFull(s,t);return;case ct.RemoveNode:await this.removeNode(t);return;case ct.GetTextActive:this.checkTextActive(t);return;case ct.CursorHover:this.cursorHover(t);return}await super.on(t)}async removeNode(t){const{dataType:e,workId:n}=t;if(n===wt.selectorId){this.localWork.blurSelector(t);return}e===Tt.Local&&(this.localWork.removeWork(t),await this.localWork.colloctEffectSelectWork(t)),e===Tt.Service&&(this.serviceWork.removeWork(t),await this.localWork.colloctEffectSelectWork(t))}checkTextActive(t){const{dataType:e}=t;e===Tt.Local&&this.localWork.checkTextActive(t)}clearAll(){this.vNodes.clear(),super.clearAll(),this.localDrawLayer&&(this.localDrawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.localDrawLayer.removeAllChildren()),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.serviceDrawLayer.removeAllChildren()),this.post({render:[{isClearAll:!0,clearCanvas:Mt.Bg,viewId:this.viewId},{isClearAll:!0,clearCanvas:Mt.ServiceFloat,viewId:this.viewId},{isClearAll:!0,clearCanvas:Mt.Float,viewId:this.viewId}],sp:[{type:ct.Clear}]})}updateLayer(t){const{width:e,height:n}=t;super.updateLayer(t),this.localDrawLayer&&(this.localDrawLayer.parent.setAttribute("width",e),this.localDrawLayer.parent.setAttribute("height",n),this.localDrawLayer.setAttribute("size",[e,n]),this.localDrawLayer.setAttribute("pos",[e*.5,n*.5])),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.setAttribute("width",e),this.serviceDrawLayer.parent.setAttribute("height",n),this.serviceDrawLayer.setAttribute("size",[e,n]),this.serviceDrawLayer.setAttribute("pos",[e*.5,n*.5]))}setCameraOpt(t){this.cameraOpt=t;const{scale:e,centerX:n,centerY:s,width:l,height:o}=t;(l!==this.scene.width||o!==this.scene.height)&&this.updateScene({width:l,height:o}),this.fullLayer&&(this.fullLayer.setAttribute("scale",[e,e]),this.fullLayer.setAttribute("translate",[-n,-s])),this.localDrawLayer&&(this.localDrawLayer.setAttribute("scale",[e,e]),this.localDrawLayer.setAttribute("translate",[-n,-s])),this.serviceDrawLayer&&(this.serviceDrawLayer.setAttribute("scale",[e,e]),this.serviceDrawLayer.setAttribute("translate",[-n,-s]))}getLayer(t){switch(t){case Mt.Bg:return this.fullLayer;case Mt.ServiceFloat:return this.serviceDrawLayer;case Mt.Float:return this.localDrawLayer}}getOffscreen(t){return this.getLayer(t).parent.canvas}async consumeFull(t,e){const n=await this.localWork.colloctEffectSelectWork(e);n&&t===Tt.Local&&await this.localWork.consumeFull(n,this.scene),n&&t===Tt.Service&&this.serviceWork.consumeFull(n)}consumeDraw(t,e){t===Tt.Local&&this.localWork.consumeDraw(e,this.serviceWork),t===Tt.Service&&this.serviceWork.consumeDraw(e)}consumeDrawAll(t,e){t===Tt.Local&&this.localWork.consumeDrawAll(e,this.serviceWork)}async updateCamera(t){var s;const e=[],{cameraOpt:n}=t;if(n&&!le(this.cameraOpt,n)){const l=this.localWork.getWorkShape(yr);l&&((s=l.selectIds)!=null&&s.length)&&l.cursorBlur();const o=!!this.localDrawLayer.children.length,i=!!this.serviceDrawLayer.children.length;if(this.setCameraOpt(n),this.localWork.workShapes.forEach((f,p)=>{(f.toolsType===ht.Pencil||f.toolsType===ht.Arrow||f.toolsType===ht.Straight||f.toolsType===ht.Ellipse||f.toolsType===ht.Rectangle||f.toolsType===ht.Star||f.toolsType===ht.Polygon||f.toolsType===ht.SpeechBalloon||f.toolsType===ht.Text)&&this.localWork.workShapeState.set(p,{willClear:!0})}),this.vNodes.curNodeMap.size&&(this.vNodes.updateNodesRect(),this.localWork.reRenderSelector(),this.serviceWork.selectorWorkShapes.size))for(const[f,p]of this.serviceWork.selectorWorkShapes.entries())this.serviceWork.runSelectWork({workId:f,selectIds:p.selectIds,msgType:ct.Select,dataType:Tt.Service,viewId:this.viewId});this.vNodes.hasRenderNodes()&&(o&&e.push({isClearAll:!0,clearCanvas:Mt.Float,viewId:this.viewId}),i&&e.push({isClearAll:!0,clearCanvas:Mt.ServiceFloat,viewId:this.viewId}),e.push({isClearAll:!0,clearCanvas:Mt.Bg,viewId:this.viewId},{isDrawAll:!0,drawCanvas:Mt.Bg,viewId:this.viewId})),e.length&&this.post({render:e})}}getRectImageBitmap(t){const{rect:e,drawCanvas:n}=t,s=e.x*this.dpr,l=e.y*this.dpr,o=e.w*this.dpr,i=e.h*this.dpr;return createImageBitmap(this.getOffscreen(n),s,l,o,i,{resizeQuality:"low"})}cursorHover(t){this.localWork.cursorHover(t)}}class ig extends Xn{constructor(t,e,n){super(t,e);nt(this,"_post");nt(this,"topLayer");nt(this,"snapshotFullLayer");nt(this,"serviceWork");nt(this,"localWork");nt(this,"topLayerWork");this._post=n,this.topLayer=this.createLayer("topLayer",this.scene,{...e.layerOpt,bufferSize:1500});const s={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer,topLayer:this.topLayer};this.localWork=new tg(s),this.topLayerWork=new eg(s),this.vNodes.init(this.fullLayer)}async combinePost(){var l,o,i,f;const{render:t,...e}=this.combinePostData();let n;if(t!=null&&t.length){const p=[];for(const c of t)if(c.rect){if(c.drawCanvas&&(c.rect=this.safariFixRect(Jt(c.rect))),!c.rect)continue;if(c.drawCanvas&&c.rect){const m=await this.getRectImageBitmap(c);c.imageBitmap=m,n||(n=[]),n.push(m)}p.push(c)}e.render=p}const s=(l=e.sp)==null?void 0:l.filter(p=>p.type!==ct.None||Object.keys(p).filter(c=>c==="type").length);s!=null&&s.length&&(e.sp=s.map(p=>({...p,viewId:this.viewId}))),((o=e.sp)==null?void 0:o.length)===0&&delete e.sp,e.drawCount===void 0&&delete e.drawCount,e.workerTasksqueueCount===void 0&&delete e.workerTasksqueueCount,((i=e.sp)!=null&&i.length||e.drawCount||(f=e==null?void 0:e.render)!=null&&f.length)&&this._post(e,n)}getLayer(t,e){if(e&&this.snapshotFullLayer)return this.snapshotFullLayer;switch(t){case Mt.TopFloat:return this.topLayer;default:return this.fullLayer}}async on(t){const{msgType:e,toolsType:n,opt:s,workId:l,dataType:o}=t;switch(e){case ct.UpdateCamera:await this.updateCamera(t);break;case ct.UpdateTools:if(n===ht.LaserPen&&s){const i={toolsType:n,toolsOpt:s};this.topLayerWork.setToolsOpt(i);return}break;case ct.CreateWork:if(n===ht.LaserPen&&l&&s){this.topLayerWork.getTmpWorkShapeNode()||this.topLayerWork.setToolsOpt({toolsType:n,toolsOpt:s}),this.topLayerWork.setWorkOptions(l,s);return}break;case ct.FullWork:if(n===ht.LaserPen){this.consumeDrawAll(o,t);return}break;case ct.Snapshot:this.snapshotFullLayer=this.createLayer("snapshotFullLayer",this.scene,{...this.opt.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.snapshotFullLayer&&(await this.getSnapshot(t),this.snapshotFullLayer=void 0);return;case ct.BoundingBox:this.snapshotFullLayer=this.createLayer("snapshotFullLayer",this.scene,{...this.opt.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.snapshotFullLayer&&(await this.getBoundingRect(t),this.snapshotFullLayer=void 0);return}await super.on(t)}getOffscreen(t,e){return this.getLayer(t,e).parent.canvas}consumeDraw(t,e){const{op:n,workId:s}=e;if(n!=null&&n.length&&s){if(this.localWork.workShapes.get(s)){this.localWork.consumeDraw(e);return}if(this.topLayerWork.localWorkShapes.get(s)){this.topLayerWork.consumeDraw(e);return}}}consumeDrawAll(t,e){const{ops:n,op:s,workId:l}=e;if((n||s!=null&&s.length)&&l){if(this.localWork.workShapes.get(l)){this.localWork.consumeDrawAll(e);return}if(this.topLayerWork.localWorkShapes.get(l)){this.topLayerWork.consumeDrawAll(e);return}}}clearAll(){this.vNodes.clear(),super.clearAll(),this.topLayer&&(this.topLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.topLayer.removeAllChildren()),this.post({render:[{isClearAll:!0,clearCanvas:Mt.TopFloat,viewId:this.viewId}],sp:[{type:ct.Clear}]})}getRectImageBitmap(t,e=!1,n){const{rect:s,drawCanvas:l}=t,o=s.x*this.dpr,i=s.y*this.dpr,f=s.w*this.dpr,p=s.h*this.dpr;return createImageBitmap(this.getOffscreen(l,e),o,i,f,p,n)}updateLayer(t){const{width:e,height:n}=t;super.updateLayer(t),this.topLayer&&(this.topLayer.parent.setAttribute("width",e),this.topLayer.parent.setAttribute("height",n),this.topLayer.setAttribute("size",[e,n]),this.topLayer.setAttribute("pos",[e*.5,n*.5])),this.snapshotFullLayer&&(this.snapshotFullLayer.parent.setAttribute("width",e),this.snapshotFullLayer.parent.setAttribute("height",n),this.snapshotFullLayer.setAttribute("size",[e,n]),this.snapshotFullLayer.setAttribute("pos",[e*.5,n*.5]))}async updateCamera(t){const e=[],{cameraOpt:n}=t;if(n&&!le(this.cameraOpt,n)){const s=!!this.topLayerWork.localWorkShapes.size;if(this.setCameraOpt(n),s){e.push({isClearAll:!0,clearCanvas:Mt.TopFloat,viewId:this.viewId});for(const[l,o]of this.topLayerWork.localWorkShapes.entries())if(o.totalRect){let i;this.topLayer.getElementsByName(l.toString()).forEach(f=>{const p=f.getBoundingClientRect(),c=Wt({x:p.x,y:p.y,w:p.width,h:p.height});i=Ot(i,c)}),o.totalRect=i,this.topLayerWork.localWorkShapes.set(l,o)}}e.length&&this.post({render:e})}}setCameraOpt(t,e){this.cameraOpt=t;const{scale:n,centerX:s,centerY:l,width:o,height:i}=t;(o!==this.scene.width||i!==this.scene.height)&&this.updateScene({width:o,height:i}),e?(e.setAttribute("scale",[n,n]),e.setAttribute("translate",[-s,-l])):(this.fullLayer.setAttribute("scale",[n,n]),this.fullLayer.setAttribute("translate",[-s,-l]),this.topLayer.setAttribute("scale",[n,n]),this.topLayer.setAttribute("translate",[-s,-l]))}async getSnapshot(t){const{scenePath:e,scenes:n,cameraOpt:s,w:l,h:o,maxZIndex:i}=t;if(e&&n&&s&&this.snapshotFullLayer){const f=Jt(this.cameraOpt);this.setCameraOpt(s,this.snapshotFullLayer),this.localWork.fullLayer=this.snapshotFullLayer,this.localWork.drawLayer=this.snapshotFullLayer;let p;const c=new Map;for(const[y,O]of Object.entries(n))if(O!=null&&O.type)switch(O==null?void 0:O.type){case ct.UpdateNode:case ct.FullWork:{const{toolsType:x,opt:v}=O;x===ht.Text&&v&&(v.zIndex=v.zIndex+(i||0),(v.lineThrough||v.underline)&&c.set(y,O));const T=await this.localWork.runFullWork({...O,opt:v,workId:y,msgType:ct.FullWork,dataType:Tt.Service,viewId:this.viewId},x===ht.Text);p=Ot(p,T);break}}this.localWork.fullLayer=this.fullLayer,this.localWork.drawLayer=void 0;let m;l&&o&&(m={resizeWidth:l,resizeHeight:o}),c.size&&(await new Promise(y=>{setTimeout(y,500)}),this.willRenderSpecialLabel(c)),await this.getSnapshotRender({scenePath:e,curCameraOpt:f,options:m})}}willRenderSpecialLabel(t){var e;for(const[n,s]of t.entries()){const l=(e=this.snapshotFullLayer)==null?void 0:e.getElementsByName(n)[0];l&&s.opt&&this.localWork.updateLabels(l,s)}}async getSnapshotRender(t){var o,i;const{scenePath:e,curCameraOpt:n,options:s}=t;((o=this.snapshotFullLayer)==null?void 0:o.parent).render();const l=await this.getRectImageBitmap({rect:this.getSceneRect(),drawCanvas:Mt.None},!0,s);l&&(this._post({sp:[{type:ct.Snapshot,scenePath:e,imageBitmap:l,viewId:this.viewId}]},[l]),l.close(),(i=this.snapshotFullLayer)==null||i.removeAllChildren(),this.setCameraOpt(n,this.fullLayer))}async getBoundingRect(t){const{scenePath:e,scenes:n,cameraOpt:s}=t;if(e&&n&&s&&this.snapshotFullLayer){const l=Jt(this.cameraOpt);this.setCameraOpt(s,this.snapshotFullLayer),this.localWork.fullLayer=this.snapshotFullLayer,this.localWork.drawLayer=this.snapshotFullLayer;let o;for(const[i,f]of Object.entries(n))if(f!=null&&f.type)switch(f==null?void 0:f.type){case ct.UpdateNode:case ct.FullWork:{const p=await this.localWork.runFullWork({...f,workId:i,msgType:ct.FullWork,dataType:Tt.Service,viewId:this.viewId});o=Ot(o,p);break}}o&&this.post({sp:[{type:ct.BoundingBox,scenePath:e,rect:o}]}),this.localWork.fullLayer=this.fullLayer,this.localWork.drawLayer=void 0,this.snapshotFullLayer.removeAllChildren(),this.setCameraOpt(l,this.fullLayer)}}}const sg=self;new rg(sg,qn.Full)})();