@netless/appliance-plugin 1.1.35-beta.0 → 1.1.35

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.
Files changed (30) hide show
  1. package/cdn/cdn.js +1 -1
  2. package/cdn/{fullWorker-BShzOf.js → fullWorker-BBlLKX.js} +1 -1
  3. package/cdn/{subWorker-DofGU2.js → subWorker-CoPwom.js} +1 -1
  4. package/dist/appliance-plugin.js +1 -1
  5. package/dist/appliance-plugin.mjs +1 -1
  6. package/dist/assets/{fullWorker-BLBp1QlT.js → fullWorker-Cud7fwjG.js} +1 -1
  7. package/dist/assets/{subWorker-CA5sK8hX.js → subWorker-BL9l8peV.js} +1 -1
  8. package/dist/bridge-28U3vx4e.js +1 -0
  9. package/dist/{bridge-D6IerdOk.mjs → bridge-DUU4aNx2.mjs} +5 -5
  10. package/dist/bridge.js +1 -1
  11. package/dist/bridge.mjs +1 -1
  12. package/dist/component/textEditor/utils.d.ts +3 -0
  13. package/dist/fullWorker.js +1 -1
  14. package/dist/{index-DR2km5D4.mjs → index-0fHpKu9i.mjs} +1 -1
  15. package/dist/{index-D-IWIyEl.mjs → index-BXXQq9TJ.mjs} +1 -1
  16. package/dist/{index-DXx1-O0K.js → index-BXh3eQEk.js} +1 -1
  17. package/dist/index-BsHV7nh_.js +1 -0
  18. package/dist/{index-CPmHcL9u.mjs → index-CJN2Kuo1.mjs} +1 -1
  19. package/dist/{index-IQRiGPX7.mjs → index-CZRunvvh.mjs} +1 -1
  20. package/dist/{index-D1p6YXf0.mjs → index-Crnj0IHn.mjs} +2390 -2324
  21. package/dist/{index-CBE_U7Gn.js → index-DP9oeLip.js} +1 -1
  22. package/dist/{index-DDL0Hq_X.js → index-MFIjYwT5.js} +1 -1
  23. package/dist/{index-328yD4vj.js → index-pEXetfdb.js} +1 -1
  24. package/dist/index-vyNIKk26.js +1 -0
  25. package/dist/{index-4k563Sm-.mjs → index-zUtKU6c_.mjs} +2522 -2508
  26. package/dist/subWorker.js +1 -1
  27. package/package.json +2 -1
  28. package/dist/bridge-s6K3XU2g.js +0 -1
  29. package/dist/index-C89lvDjQ.js +0 -1
  30. package/dist/index-DbLWM-6h.js +0 -1
@@ -563,7 +563,7 @@ void main() {
563
563
  gl_FragColor = color;
564
564
  }`},function(i,e,t){t.r(e),(function(r,n){t.d(e,"requestAnimationFrame",function(){return c}),t.d(e,"cancelAnimationFrame",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);function s(){if(typeof performance<"u"&&performance.now)return performance.now();if(typeof r<"u"&&r.hrtime){const[f,u]=r.hrtime();return f*1e3+u*1e-6}return Date.now?Date.now():new Date().getTime()}let c,l;typeof n<"u"&&typeof n.requestAnimationFrame=="function"?(c=n.requestAnimationFrame,l=n.cancelAnimationFrame):(c=function(f){return setTimeout(()=>{f(s())},16)},l=function(f){return clearTimeout(f)})}).call(this,t(69),t(22))},function(i,e){var t=i.exports={},r,n;function s(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?r=setTimeout:r=s}catch{r=s}try{typeof clearTimeout=="function"?n=clearTimeout:n=c}catch{n=c}})();function l(w){if(r===setTimeout)return setTimeout(w,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(w,0);try{return r(w,0)}catch{try{return r.call(null,w,0)}catch{return r.call(this,w,0)}}}function f(w){if(n===clearTimeout)return clearTimeout(w);if((n===c||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(w);try{return n(w)}catch{try{return n.call(null,w)}catch{return n.call(this,w)}}}var u=[],v=!1,h,y=-1;function T(){!v||!h||(v=!1,h.length?u=h.concat(u):y=-1,u.length&&O())}function O(){if(!v){var w=l(T);v=!0;for(var d=u.length;d;){for(h=u,u=[];++y<d;)h&&h[y].run();y=-1,d=u.length}h=null,v=!1,f(w)}}t.nextTick=function(w){var d=new Array(arguments.length-1);if(arguments.length>1)for(var m=1;m<arguments.length;m++)d[m-1]=arguments[m];u.push(new I(w,d)),u.length===1&&!v&&l(O)};function I(w,d){this.fun=w,this.array=d}I.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={};function P(){}t.on=P,t.addListener=P,t.once=P,t.off=P,t.removeListener=P,t.removeAllListeners=P,t.emit=P,t.prependListener=P,t.prependOnceListener=P,t.listeners=function(w){return[]},t.binding=function(w){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(w){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},function(i,e,t){t.r(e),t.d(e,"default",function(){return D});var r=t(1),n=t(71),s=t(73),c=t(213),l=t(214),f=t(215),u=t(216);t(1).glMatrix.setMatrixArrayType(Array);function v(U,M){var W=Object.keys(U);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(U);M&&($=$.filter(function(B){return Object.getOwnPropertyDescriptor(U,B).enumerable})),W.push.apply(W,$)}return W}function h(U){for(var M=1;M<arguments.length;M++){var W=arguments[M]!=null?arguments[M]:{};M%2?v(Object(W),!0).forEach(function($){y(U,$,W[$])}):Object.getOwnPropertyDescriptors?Object.defineProperties(U,Object.getOwnPropertyDescriptors(W)):v(Object(W)).forEach(function($){Object.defineProperty(U,$,Object.getOwnPropertyDescriptor(W,$))})}return U}function y(U,M,W){return M in U?Object.defineProperty(U,M,{value:W,enumerable:!0,configurable:!0,writable:!0}):U[M]=W,U}const T=Symbol.for("spritejs_changedAttrs"),O=Symbol.for("spritejs_attributes"),I=Symbol("resolution"),P=Symbol("animations"),w=Symbol("eventListeners"),d=Symbol("captureEventListeners"),m=Symbol("filters"),p=Symbol("display"),S=Symbol("program"),E=Symbol("shaderAttrs"),R=Symbol("uniforms");class D{constructor(M={}){this.attributes=new this.constructor.Attr(this),this[I]={width:300,height:150},Object.assign(this.attributes,M),this[P]=new Set,this[w]={},this[d]={}}get ancestors(){let M=this.parent;const W=[];for(;M;)W.push(M),M=M.parent;return W}get animations(){return this[P]}get filters(){return this[m]||this.parent&&this.parent.filters}get isVisible(){return!1}get layer(){return this.parent?this.parent.layer:null}get localMatrix(){const M=this.transformMatrix,{x:W,y:$}=this.attributes;return M[4]+=W,M[5]+=$,M}get opacity(){let M=this.attributes.opacity;return this.parent&&this.parent.opacity!=null&&(M*=this.parent.opacity),M}get parentNode(){return this.parent}get nextSibling(){return this.getNodeNearBy(1)}get previousSibling(){return this.getNodeNearBy(-1)}get program(){return this[S]}get renderer(){return this.parent?this.parent.renderer:null}get renderMatrix(){if(this.__cacheRenderMatrix)return this.__cacheRenderMatrix;let M=this.localMatrix;const W=this.parent;if(W){const $=W.__cacheRenderMatrix||W.renderMatrix;$&&(M=r.mat2d.multiply(Array.of(0,0,0,0,0,0),$,M))}return M}get worldScaling(){const M=this.renderMatrix;return[Math.hypot(M[0],M[1]),Math.hypot(M[2],M[3])]}get worldRotation(){const M=this.renderMatrix;return Math.atan2(M[1],M[3])}get worldPosition(){const M=this.renderMatrix;return[M[4],M[5]]}get uniforms(){return this[R]}get className(){return this.attributes.className}set className(M){this.attributes.className=M}get id(){return this.attributes.id}set id(M){this.attributes.id=M}get name(){return this.attributes.name}set name(M){this.attributes.name=M}get zIndex(){return this.attributes.zIndex}set zIndex(M){this.attributes.zIndex=M}get mesh(){return null}get shaderAttrs(){return this[E]||{}}activateAnimations(){const M=this.layer;if(M){const W=this[P];W.forEach(B=>{B.baseTimeline=M.timeline,B.play(),B.finished.then(()=>{W.delete(B)})});const $=this.children;$&&$.forEach(B=>{B.activateAnimations&&B.activateAnimations()})}}addEventListener(M,W,$={}){M==="mousewheel"&&(M="wheel"),typeof $=="boolean"&&($={capture:$});const{capture:B,once:N}=$,z=B?d:w;return this[z][M]=this[z][M]||[],this[z][M].push({listener:W,once:N}),this}animate(M,W){const $=new s.default(this,M,W);return this.effects&&$.applyEffects(this.effects),this.layer&&($.baseTimeline=this.layer.timeline,$.play(),$.finished.then(()=>{this[P].delete($)})),this[P].add($),$}attr(...M){if(M.length===0)return this.attributes[O];if(M.length>1){let[W,$]=M;return typeof $=="function"&&($=$(this.attr(W))),this.setAttribute(W,$),this}return typeof M[0]=="string"?this.getAttribute(M[0]):(Object.assign(this.attributes,M[0]),this)}cloneNode(){const M=new this.constructor,W=this.attributes[T];return M.attr(W),M}connect(M,W){Object.defineProperty(this,"parent",{value:M,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:W,writable:!1,configurable:!0}),M.timeline&&this.activateAnimations(),this.setResolution(M.getResolution()),this.forceUpdate(),this.dispatchEvent({type:"append",detail:{parent:M,zOrder:W}})}contains(M){for(;M&&this!==M;)M=M.parent;return!!M}deactivateAnimations(){this[P].forEach(W=>W.cancel());const M=this.children;M&&M.forEach(W=>{W.deactivateAnimations&&W.deactivateAnimations()})}disconnect(){const{parent:M,zOrder:W}=this;delete this.parent,delete this.zOrder,this.deactivateAnimations(),this.dispatchEvent({type:"remove",detail:{parent:M,zOrder:W}}),M&&M.forceUpdate()}dispatchEvent(M){M instanceof l.default||(M=new l.default(M)),M.target=this;let W=M.type;W==="mousewheel"&&(W="wheel");const $=[this];let B=this.parent;for(;M.bubbles&&B;)$.push(B),B=B.parent;for(let N=$.length-1;N>=0;N--){const z=$[N],J=z[d]&&z[d][W];if(J&&J.length&&(M.currentTarget=z,J.forEach(({listener:et,once:at})=>{et.call(this,M),at&&$.removeEventListener(et)}),delete M.currentTarget),!M.bubbles&&M.cancelBubble)break}if(!M.cancelBubble)for(let N=0;N<$.length;N++){const z=$[N],J=z[w]&&z[w][W];if(J&&J.length&&(M.currentTarget=z,J.forEach(({listener:et,once:at})=>{et.call(this,M),at&&$.removeEventListener(et)}),delete M.currentTarget),!M.bubbles||M.cancelBubble)break}}dispatchPointerEvent(M){const{layerX:W,layerY:$}=M;return this.isPointCollision(W,$)?(this.dispatchEvent(M),!0):!1}draw(M=[]){const W=this.mesh;if(W){if(Object(f.applyFilters)(W,this.filters),M.push(W),this[S]){W.setProgram(this[S]);const $=this[E];$&&Object.entries($).forEach(([N,z])=>{W.setAttribute(N,z)});const B=this[R];if(this[R]){const N={};Object.entries(B).forEach(([z,J])=>{typeof J=="function"&&(J=J(this,z)),N[z]=J}),W.setUniforms(N)}}Object(u.default)(this,W)}return M}forceUpdate(){this.parent&&this.parent.forceUpdate()}getAttribute(M){return this.attributes[M]}getListeners(M,{capture:W=!1}={}){return[...this[W?d:w][M]||[]]}getNodeNearBy(M=1){if(!this.parent)return null;if(M===0)return this;const W=this.parent.children,$=W.indexOf(this);return W[$+M]}getWorldPosition(M,W){const $=this.renderMatrix,B=M*$[0]+W*$[2]+$[4],N=M*$[1]+W*$[3]+$[5];return[B,N]}getOffsetPosition(M,W){const $=r.mat2d.invert(Array.of(0,0,0,0,0,0),this.renderMatrix),B=M*$[0]+W*$[2]+$[4],N=M*$[1]+W*$[3]+$[5];return[B,N]}getResolution(){return h({},this[I])}isPointCollision(M,W){if(!this.mesh)return!1;const $=this.attributes.pointerEvents;if($==="none"||$!=="all"&&!this.isVisible)return!1;let B="both";return $==="visibleFill"&&(B="fill"),$==="visibleStroke"&&(B="stroke"),this.mesh.isPointCollision(M,W,B)}onPropertyChange(M,W,$){M!=="id"&&M!=="name"&&M!=="className"&&M!=="pointerEvents"&&M!=="passEvents"&&this.forceUpdate(),M==="filter"&&(this[m]=Object(f.parseFilterString)(W)),M==="zIndex"&&this.parent&&this.parent.reorder()}setAttribute(M,W){M==="attrs"&&this.attr(W),this.attributes[M]=W}setMouseCapture(){this.layer&&(this.layer.__mouseCapturedTarget=this)}setProgram(M){this[S]=M,this.forceUpdate()}setShaderAttribute(M,W){this[E]=this[E]||{},this[E][M]=W,this.forceUpdate()}setUniforms(M){this[R]=this[R]||{},Object.assign(this[R],M),this.forceUpdate()}setResolution({width:M,height:W}){const{width:$,height:B}=this[I];($!==M||B!==W)&&(this[I]={width:M,height:W},this.forceUpdate(),this.dispatchEvent({type:"resolutionchange",detail:{width:M,height:W}}))}show(){this.attributes.display==="none"&&(this.attributes.display=this[p]||"")}hide(){this.attributes.display!=="none"&&(this[p]=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(M,W={}){typeof W=="boolean"&&(W={capture:W});const B=W.capture?d:w;return this[B][M]&&(this[B][M]=[]),this}removeAttribute(M){this.setAttribute(M,null)}removeEventListener(M,W,$={}){typeof $=="boolean"&&($={capture:$});const N=$.capture?d:w;if(this[N][M]){const z=this[N][M];if(z)for(let J=0;J<z.length;J++){const{listener:et}=z[J];if(et===W){this[N][M].splice(J,1);break}}}return this}transition(M,W="linear"){const $=this,B=Symbol("animation");W=W||"linear";let N=0;return typeof M=="object"&&(N=M.delay||0,M=M.duration),{[B]:null,cancel(z=!1){const J=this[B];J&&J.cancel(z)},end(){const z=this[B];z&&(z.playState==="running"||z.playState==="pending")&&z.finish()},reverse(){const z=this[B];if(z)if(z.playState==="running"||z.playState==="pending")z.playbackRate=-z.playbackRate;else{const J=z.timing.direction;z.timing.direction=J==="reverse"?"normal":"reverse",z.play()}return z.finished},attr(z,J){return this.end(),typeof z=="string"&&(z={[z]:J}),Object.entries(z).forEach(([et,at])=>{typeof at=="function"&&(z[et]=at($.attr(et)))}),this[B]=$.animate([z],{duration:M*1e3,delay:N*1e3,fill:"forwards",easing:W}),this[B].finished}}}updateContours(){}}y(D,"Attr",n.default),c.default.registerNode(D,"node")},function(i,e,t){t.r(e),t.d(e,"default",function(){return D});var r=t(1),n=t(12),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_declareAlias"),f=Symbol.for("spritejs_setAttribute"),u=Symbol.for("spritejs_getAttribute"),v=Symbol.for("spritejs_attributes"),h=Symbol.for("spritejs_changedAttrs"),y=Symbol("subject"),T=Symbol("attr"),O=Symbol("default"),I=Symbol("alias");function P(U,[M,W]){let $=r.mat2d.fromValues(1,0,0,1,0,0);return[...U].forEach(([B,N])=>{if((M||W)&&($=r.mat2d.translate(Array.of(0,0,0,0,0,0),$,[M,W])),B==="matrix")$=r.mat2d.multiply($,$,N);else if(B==="offsetTranslate")$[4]+=N[0],$[5]+=N[1];else if(B==="offsetRotate")$=r.mat2d.rotate(Array.of(0,0,0,0,0,0),$,N);else if(B==="skew"){const[z,J]=N;$=r.mat2d.multiply($,$,r.mat2d.fromValues(1,Math.tan(J),Math.tan(z),1,0,0))}else r.mat2d[B]($,$,N);(M||W)&&($=r.mat2d.translate(Array.of(0,0,0,0,0,0),$,[-M,-W]))}),$}const w=Symbol("transformMatrix"),d=Symbol("transforms"),m=Symbol("changedAttrs"),p=Symbol("lastChangedAttr"),S=Symbol("offsetFigure");function E(U,M,W){const $=U[T][M];if(U[f](M,W,!1)||U[p]!==M){const N=U[d];N.has(M)&&N.delete(M),W&&(M==="rotate"&&(W=Math.PI*W/180),M==="scale"&&(W=W.map(z=>Math.abs(z)>1e-5?z:1/z>0?1e-5:-1e-5)),N.set(M,W)),U[w]=null,U[y].onPropertyChange(M,W,$,U)}}function R(U){const M=U[S],W=U.offsetDistance*M.getTotalLength(),$=M.getPointAtLength(W);if($){const B=U[d];let N=U.offsetRotate;N==="auto"?N=$.angle:N==="reverse"?N=Math.PI+$.angle:N=Math.PI*N/180,B.set("offsetRotate",N),B.set("offsetTranslate",[$.x,$.y]),U[w]=null}}class D{static setDefault(M,...W){return M[c](...W)}static declareAlias(M,...W){return M[l](...W)}static setAttribute(M,...W){return M[f](...W)}static getAttribute(M,...W){return M[u](...W)}static getAttributes(M){return M[v]}static getChangedAttributes(M){return M[h]}constructor(M){this[y]=M,this[T]={},this[w]=r.mat2d.fromValues(1,0,0,1,0,0),this[d]=new Map,this[O]={},this[I]=[],Object.defineProperty(M,"transformMatrix",{get:()=>(this[w]||(this[w]=P(this[d],this.transformOrigin)),[...this[w]])}),this[c]({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[l]("class","pos"),this[m]=new Set,this[S]=new n.Figure2D({scale:5,simplify:0})}get[h](){const M={};return[...this[m]].forEach(W=>{M[W]=this[T][W]}),M}get[v](){const M=Object.assign({},this[T]);for(let W=0;W<this[I].length;W++){const $=this[I][W];M[$]=this[$]}return M}[c](M){Object.assign(this[O],M),Object.assign(this[T],M)}[l](...M){this[I].push(...M)}[f](M,W,$=!0){const B=this[T][M],N=this[y];return W==null&&(W=this[O][M]),Object(s.compareValue)(B,W)?!1:(this[T][M]=W,this[m].has(M)&&this[m].delete(M),this[m].add(M),this[p]=M,$&&N.onPropertyChange(M,W,B,this),!0)}[u](M){return this[T][M]}set id(M){this[f]("id",M)}get id(){return this[u]("id")}set name(M){this[f]("name",M)}get name(){return this[u]("name")}set className(M){this[f]("className",M)}get className(){return this[u]("className")}set class(M){this.className=M}get class(){return this.className}get x(){return this[u]("x")}set x(M){this[f]("x",Object(s.toNumber)(M))}get y(){return this[u]("y")}set y(M){this[f]("y",Object(s.toNumber)(M))}get pos(){return[this.x,this.y]}set pos(M){M=Object(s.toArray)(M),Array.isArray(M)||(M=[M,M]),this.x=M[0],this.y=M[1]}get transform(){return this[u]("transform")}set transform(M){let W=null;if(Array.isArray(M)&&(W=M,M=`matrix(${M.map(s.toNumber).join()})`),typeof M=="string")M=M.replace(/\s*,\s*/g,",");else if(M!=null)throw new TypeError("Invalid transform value.");const $=this[T].transform;if(this[f]("transform",M,!1)){const B=this[d];if(B.has("matrix")&&B.delete("matrix"),W)B.set("matrix",W);else if(M){const N=M.match(/(matrix|translate|rotate|scale|skew)\([^()]+\)/g);if(N){let z=r.mat2d.fromValues(1,0,0,1,0,0);for(let J=0;J<N.length;J++){const at=N[J].match(/^(matrix|translate|rotate|scale|skew)\(([^()]+)\)/);if(at){let[,ct,V]=at;ct==="rotate"?V=Math.PI*parseFloat(V)/180:V=V.trim().split(/[\s,]+/).map(Q=>Object(s.toNumber)(Q)),ct==="matrix"?z=r.mat2d.multiply(z,z,V):ct==="skew"?z=r.mat2d.multiply(z,z,r.mat2d.fromValues(1,Math.tan(V[1]),Math.tan(V[0]),1,0,0)):r.mat2d[ct](z,z,V),B.set("matrix",z)}}}else throw new TypeError("Invalid transform value.")}this[w]=null,this[y].onPropertyChange("transform",M,$,this)}}get transformOrigin(){return this[u]("transformOrigin")}set transformOrigin(M){M=Object(s.toArray)(M,!0),M!=null&&!Array.isArray(M)&&(M=[M,M]),this[f]("transformOrigin",M)&&(this[w]=null)}get rotate(){return this[u]("rotate")}set rotate(M){E(this,"rotate",M)}get translate(){return this[u]("translate")}set translate(M){M=Object(s.toArray)(M,!0),M!=null&&!Array.isArray(M)&&(M=[M,M]),E(this,"translate",M)}get scale(){return this[u]("scale")}set scale(M){M=Object(s.toArray)(M,!0),M!=null&&!Array.isArray(M)&&(M=[M,M]),E(this,"scale",M)}get skew(){return this[u]("skew")}set skew(M){M=Object(s.toArray)(M,!0),M!=null&&!Array.isArray(M)&&(M=[M,M]),E(this,"skew",M)}get opacity(){return this[u]("opacity")}set opacity(M){M!=null&&(M=Number(M)),this[f]("opacity",M)}get zIndex(){return this[u]("zIndex")}set zIndex(M){M!=null&&(M=Number(M)),this[f]("zIndex",M)}get offsetPath(){return this[u]("offsetPath")}set offsetPath(M){this[f]("offsetPath",M)&&(this[S].beginPath(),M!=null&&this[S].addPath(M),R(this))}get offsetDistance(){return this[u]("offsetDistance")}set offsetDistance(M){this[f]("offsetDistance",Object(s.toNumber)(M))&&R(this)}get offsetRotate(){return this[u]("offsetRotate")}set offsetRotate(M){this[f]("offsetRotate",M),R(this)}get pointerEvents(){return this[u]("pointerEvents")}set pointerEvents(M){if(M!=null&&M!=="none"&&M!=="visible"&&M!=="visibleFill"&&M!=="visibleStroke"&&M!=="all")throw new TypeError("Invalid pointerEvents type.");this[f]("pointerEvents",M)}get filter(){return this[u]("filter")}set filter(M){this[f]("filter",M)}get display(){return this[u]("display")}set display(M){this[f]("display",M)}set offset(M){}}},function(i,e,t){t.r(e),t.d(e,"sizeToPixel",function(){return r}),t.d(e,"toString",function(){return n}),t.d(e,"toNumber",function(){return s}),t.d(e,"toArray",function(){return c}),t.d(e,"compareValue",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);function r(f,u){const v=f.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/);v?f={size:parseFloat(v[1]),unit:v[2]}:f={size:parseFloat(f),unit:"px"};let{size:h,unit:y}=f;if(y==="pt")h/=.75;else if(y==="pc")h*=16;else if(y==="in")h*=96;else if(y==="cm")h*=37.79527559055118;else if(y==="mm")h*=3.7795275590551185;else if(y==="em"||y==="rem"||y==="ex"){if(!u&&typeof getComputedStyle=="function"&&typeof document<"u"){const T=getComputedStyle(document.documentElement).fontSize;T?u=r(T,16):u=16}h*=u,y==="ex"&&(h/=2)}else if(y==="q")h*=.9448818897637796;else if(y==="vw"||y==="vh"){if(typeof document<"u"){const T=y==="vw"?window.innerWidth||document.documentElement.clientWidth:window.innerHeight||document.documentElement.clientHeight;h*=T/100}}else if((y==="vmax"||y==="vmin")&&typeof document<"u"){const T=window.innerWidth||document.documentElement.clientWidth,O=window.innerHeight||document.documentElement.clientHeight;y==="vmax"?h*=Math.max(T,O)/100:h*=Math.min(T,O)/100}return h}function n(f){return f==null?f:String(f)}function s(f){if(f==null)return f;if(typeof f=="string"&&(f=r(f)),!Number.isFinite(f))throw new TypeError("Invalid value");return f}function c(f,u=!1){return f===""?null:(typeof f=="string"&&(f=f.split(/[\s,]+/g)),Array.isArray(f)&&(u&&(f=f.map(s)),f.length===1)?f[0]:f)}function l(f,u){if(Array.isArray(f)&&Array.isArray(u)){if(f.length!==u.length)return!1;for(let v=0;v<f.length;v++)if(f[v]!==u[v])return!1;return!0}return f==null&&u==null||f===u}},function(i,e,t){t.r(e),t.d(e,"default",function(){return y});var r=t(74),n=t(32),s=t.n(n),c=t(68),l=t(72);t(1).glMatrix.setMatrixArrayType(Array);function f(){return f=Object.assign||function(T){for(var O=1;O<arguments.length;O++){var I=arguments[O];for(var P in I)Object.prototype.hasOwnProperty.call(I,P)&&(T[P]=I[P])}return T},f.apply(this,arguments)}function u(T){if(typeof T=="string"){if(T=T.trim(),/^[0-9.]+%$/.test(T))return parseFloat(T)/100;if(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/.test(T))return Object(l.sizeToPixel)(T)}return T}function v(T,O,I,P,w){return typeof T=="string"&&(T=s()(T)),typeof O=="string"&&(O=s()(O)),r.Effects.default(T,O,I,P,w)}function h(T,O,I,P,w){return r.Effects.default(T,O,I,P,w)}r.Effects.default=function(T,O,I,P,w){return Array.isArray(T)&&Array.isArray(O)?T.map((d,m)=>d+(I-P)/(w-P)*(O[m]-d)):typeof T=="number"&&typeof O=="number"?T+(I-P)/(w-P)*(O-T):I-P>w-I?O:T},r.Effects.fillColor=v,r.Effects.strokeColor=v,r.Effects.bgcolor=v,r.Effects.borderColor=v,r.Effects.text=h;class y extends r.Animator{constructor(O,I,P){const w=O.attr();Object.entries(w).forEach(([d,m])=>{w[d]=r.Effects[d]?m:u(m)}),I=I.map(d=>{let m=f({},d);const p={};return Object.entries(m).forEach(([S,E])=>{p[S]=r.Effects[S]?E:u(E)}),p}),super(w,I,P),this.target=O,this.setter=function(d,m){m.attr(d)}}get playState(){return this.target.parent?super.playState:"idle"}get finished(){return super.finished.then(()=>{const O=this;return new Promise(I=>{function P(){O.setter(O.frame,O.target);const w=O.playState;w==="finished"||w==="idle"?(Object(c.cancelAnimationFrame)(O.requestId),I()):Object(c.requestAnimationFrame)(P)}P()})})}finish(){super.finish(),Object(c.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(c.requestAnimationFrame)(function I(){const P=O.target;if(typeof document<"u"&&document.documentElement&&document.documentElement.contains&&P.layer&&P.layer.canvas&&!document.documentElement.contains(P.layer.canvas)){O.cancel();return}const w=O.playState;O.setter(O.frame,O.target),w!=="idle"&&(w==="running"?O.requestId=Object(c.requestAnimationFrame)(I):(w==="paused"||w==="pending"&&O.timeline.currentTime<0)&&O.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(c.requestAnimationFrame)(I)}))})})}cancel(O=!1){Object(c.cancelAnimationFrame)(this.requestId),O?(this.setter(this.frame,this.target),super.cancel()):(super.cancel(),this.setter(this.frame,this.target))}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.Timeline=e.Effects=e.Easings=e.Animator=void 0;var r=t(75),n=v(r),s=t(187),c=v(s),l=t(188),f=t(190),u=v(f);function v(h){return h&&h.__esModule?h:{default:h}}e.Animator=u.default,e.Easings=l.Easings,e.Effects=c.default,e.Timeline=n.default},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(76),n=d(r),s=t(133),c=d(s),l=t(141),f=d(l),u=t(164),v=d(u),h=t(170),y=d(h),T=t(171),O=d(T),I=t(175),P=d(I),w=t(186);function d($){return $&&$.__esModule?$:{default:$}}var m=(0,w.createNowTime)(),p={originTime:0,playbackRate:1},S=(0,P.default)("timeMark"),E=(0,P.default)("playbackRate"),R=(0,P.default)("timers"),D=(0,P.default)("originTime"),U=(0,P.default)("setTimer"),M=(0,P.default)("parent"),W=function(){function $(B,N){(0,y.default)(this,$),B instanceof $&&(N=B,B={}),B=(0,v.default)({},p,B),N&&(this[M]=N);var z=B.nowtime||m;if(N)Object.defineProperty(this,"globalTime",{get:function(){return N.currentTime}});else{var J=z();Object.defineProperty(this,"globalTime",{get:function(){return z()-J}})}this[S]=[{globalTime:this.globalTime,localTime:-B.originTime,entropy:-B.originTime,playbackRate:B.playbackRate,globalEntropy:0}],this[M]&&(this[S][0].globalEntropy=this[M].entropy),this[D]=B.originTime,this[E]=B.playbackRate,this[R]=new f.default}return(0,O.default)($,[{key:"markTime",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},z=N.time,J=z===void 0?this.currentTime:z,et=N.entropy,at=et===void 0?this.entropy:et,ct=N.playbackRate,V=ct===void 0?this.playbackRate:ct,Q={globalTime:this.globalTime,localTime:J,entropy:at,playbackRate:V,globalEntropy:this.globalEntropy};this[S].push(Q)}},{key:"fork",value:function(N){return new $(N,this)}},{key:"seekGlobalTime",value:function(N){var z=this.seekTimeMark(N),J=this[S][z],et=J.entropy,at=J.playbackRate,ct=J.globalTime;return ct+(N-et)/Math.abs(at)}},{key:"seekLocalTime",value:function(N){var z=this.seekTimeMark(N),J=this[S][z],et=J.localTime,at=J.entropy,ct=J.playbackRate;return ct>0?et+(N-at):et-(N-at)}},{key:"seekTimeMark",value:function(N){var z=this[S],J=0,et=z.length-1;if(N<=z[J].entropy)return J;if(N>=z[et].entropy)return et;for(var at=Math.floor((J+et)/2);at>J&&at<et;){if(N===z[at].entropy)return at;N<z[at].entropy?et=at:N>z[at].entropy&&(J=at),at=Math.floor((J+et)/2)}return J}},{key:"updateTimers",value:function(){var N=this,z=[].concat((0,c.default)(this[R]));z.forEach(function(J){var et=(0,n.default)(J,2),at=et[0],ct=et[1];N[U](ct.handler,ct.time,at)})}},{key:"clearTimeout",value:function(B){function N(z){return B.apply(this,arguments)}return N.toString=function(){return B.toString()},N}(function(B){var N=this[R].get(B);N&&N.timerID!=null&&(this[M]?this[M].clearTimeout(N.timerID):clearTimeout(N.timerID)),this[R].delete(B)})},{key:"clearInterval",value:function(N){return this.clearTimeout(N)}},{key:"clear",value:function(){var N=this,z=this[R];[].concat((0,c.default)(z.keys())).forEach(function(J){N.clearTimeout(J)})}},{key:"setTimeout",value:function(N){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0};return this[U](N,z)}},{key:"setInterval",value:function(N){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0},J=this,et=this[U](function at(){J[U](at,z,et),N()},z);return et}},{key:U,value:function(N,z){var J=this,et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(0,P.default)("timerID");z=(0,w.formatDelay)(z);var at=this[R].get(et),ct=void 0,V=null,Q=void 0,ft=void 0;at?(this.clearTimeout(et),z.isEntropy?ct=(z.delay-(this.entropy-at.startEntropy))/Math.abs(this.playbackRate):ct=(z.delay-(this.currentTime-at.startTime))/this.playbackRate,Q=at.startTime,ft=at.startEntropy):(ct=z.delay/(z.isEntropy?Math.abs(this.playbackRate):this.playbackRate),Q=this.currentTime,ft=this.entropy);var mt=this[M],yt=mt?mt.setTimeout.bind(mt):setTimeout,At=z.heading;return!mt&&At===!1&&ct<0&&(ct=1/0),(isFinite(ct)||mt)&&(ct=Math.ceil(ct),yt!==setTimeout&&(ct={delay:ct,heading:At}),V=yt(function(){J[R].delete(et),N()},ct)),this[R].set(et,{timerID:V,handler:N,time:z,startTime:Q,startEntropy:ft}),et}},{key:"parent",get:function(){return this[M]}},{key:"lastTimeMark",get:function(){return this[S][this[S].length-1]}},{key:"currentTime",get:function(){var N=this.lastTimeMark,z=N.localTime,J=N.globalTime;return z+(this.globalTime-J)*this.playbackRate},set:function(N){var z=this,J=this.currentTime,et=N,at=this[R];this.markTime({time:N}),[].concat((0,c.default)(at)).forEach(function(ct){var V=(0,n.default)(ct,2),Q=V[0],ft=V[1];if(at.has(Q)){var mt=ft.time,yt=mt.isEntropy,At=mt.delay,ht=mt.heading,Nt=ft.handler,Bt=ft.startTime;if(yt)At===0&&(Nt(),z.clearTimeout(Q));else{var G=Bt+At;(At===0||ht!==!1&&(et-J)*At<=0||J<=G&&G<=et||J>=G&&G>=et)&&(Nt(),z.clearTimeout(Q))}}}),this.updateTimers()}},{key:"entropy",get:function(){var N=this.lastTimeMark,z=N.entropy,J=N.globalEntropy;return z+Math.abs((this.globalEntropy-J)*this.playbackRate)},set:function(N){if(this.entropy>N){var z=this.seekTimeMark(N);this[S].length=z+1}this.markTime({entropy:N}),this.updateTimers()}},{key:"globalEntropy",get:function(){return this[M]?this[M].entropy:this.globalTime}},{key:"playbackRate",get:function(){return this[E]},set:function(N){N!==this.playbackRate&&(this.markTime({playbackRate:N}),this[E]=N,this.updateTimers())}},{key:"paused",get:function(){if(this.playbackRate===0)return!0;for(var N=this.parent;N;){if(N.playbackRate===0)return!0;N=N.parent}return!1}}]),$}();e.default=W},function(i,e,t){e.__esModule=!0;var r=t(77),n=l(r),s=t(129),c=l(s);function l(f){return f&&f.__esModule?f:{default:f}}e.default=function(){function f(u,v){var h=[],y=!0,T=!1,O=void 0;try{for(var I=(0,c.default)(u),P;!(y=(P=I.next()).done)&&(h.push(P.value),!(v&&h.length===v));y=!0);}catch(w){T=!0,O=w}finally{try{!y&&I.return&&I.return()}finally{if(T)throw O}}return h}return function(u,v){if(Array.isArray(u))return u;if((0,n.default)(Object(u)))return f(u,v);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(i,e,t){i.exports={default:t(78),__esModule:!0}},function(i,e,t){t(79),t(125),i.exports=t(127)},function(i,e,t){t(80);for(var r=t(91),n=t(95),s=t(83),c=t(122)("toStringTag"),l="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(","),f=0;f<l.length;f++){var u=l[f],v=r[u],h=v&&v.prototype;h&&!h[c]&&n(h,c,u),s[u]=s.Array}},function(i,e,t){var r=t(81),n=t(82),s=t(83),c=t(84);i.exports=t(88)(Array,"Array",function(l,f){this._t=c(l),this._i=0,this._k=f},function(){var l=this._t,f=this._k,u=this._i++;return!l||u>=l.length?(this._t=void 0,n(1)):f=="keys"?n(0,u):f=="values"?n(0,l[u]):n(0,[u,l[u]])},"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},function(i,e){i.exports=function(){}},function(i,e){i.exports=function(t,r){return{value:r,done:!!t}}},function(i,e){i.exports={}},function(i,e,t){var r=t(85),n=t(87);i.exports=function(s){return r(n(s))}},function(i,e,t){var r=t(86);i.exports=Object("z").propertyIsEnumerable(0)?Object:function(n){return r(n)=="String"?n.split(""):Object(n)}},function(i,e){var t={}.toString;i.exports=function(r){return t.call(r).slice(8,-1)}},function(i,e){i.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(i,e,t){var r=t(89),n=t(90),s=t(106),c=t(95),l=t(83),f=t(107),u=t(121),v=t(123),h=t(122)("iterator"),y=!([].keys&&"next"in[].keys()),T="@@iterator",O="keys",I="values",P=function(){return this};i.exports=function(w,d,m,p,S,E,R){f(m,d,p);var D=function(V){if(!y&&V in $)return $[V];switch(V){case O:return function(){return new m(this,V)};case I:return function(){return new m(this,V)}}return function(){return new m(this,V)}},U=d+" Iterator",M=S==I,W=!1,$=w.prototype,B=$[h]||$[T]||S&&$[S],N=B||D(S),z=S?M?D("entries"):N:void 0,J=d=="Array"&&$.entries||B,et,at,ct;if(J&&(ct=v(J.call(new w)),ct!==Object.prototype&&ct.next&&(u(ct,U,!0),!r&&typeof ct[h]!="function"&&c(ct,h,P))),M&&B&&B.name!==I&&(W=!0,N=function(){return B.call(this)}),(!r||R)&&(y||W||!$[h])&&c($,h,N),l[d]=N,l[U]=P,S)if(et={values:M?N:D(I),keys:E?N:D(O),entries:z},R)for(at in et)at in $||s($,at,et[at]);else n(n.P+n.F*(y||W),d,et);return et}},function(i,e){i.exports=!0},function(i,e,t){var r=t(91),n=t(92),s=t(93),c=t(95),l=t(105),f="prototype",u=function(v,h,y){var T=v&u.F,O=v&u.G,I=v&u.S,P=v&u.P,w=v&u.B,d=v&u.W,m=O?n:n[h]||(n[h]={}),p=m[f],S=O?r:I?r[h]:(r[h]||{})[f],E,R,D;O&&(y=h);for(E in y)R=!T&&S&&S[E]!==void 0,!(R&&l(m,E))&&(D=R?S[E]:y[E],m[E]=O&&typeof S[E]!="function"?y[E]:w&&R?s(D,r):d&&S[E]==D?function(U){var M=function(W,$,B){if(this instanceof U){switch(arguments.length){case 0:return new U;case 1:return new U(W);case 2:return new U(W,$)}return new U(W,$,B)}return U.apply(this,arguments)};return M[f]=U[f],M}(D):P&&typeof D=="function"?s(Function.call,D):D,P&&((m.virtual||(m.virtual={}))[E]=D,v&u.R&&p&&!p[E]&&c(p,E,D)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,i.exports=u},function(i,e){var t=i.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(i,e){var t=i.exports={version:"2.6.11"};typeof __e=="number"&&(__e=t)},function(i,e,t){var r=t(94);i.exports=function(n,s,c){if(r(n),s===void 0)return n;switch(c){case 1:return function(l){return n.call(s,l)};case 2:return function(l,f){return n.call(s,l,f)};case 3:return function(l,f,u){return n.call(s,l,f,u)}}return function(){return n.apply(s,arguments)}}},function(i,e){i.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(i,e,t){var r=t(96),n=t(104);i.exports=t(100)?function(s,c,l){return r.f(s,c,n(1,l))}:function(s,c,l){return s[c]=l,s}},function(i,e,t){var r=t(97),n=t(99),s=t(103),c=Object.defineProperty;e.f=t(100)?Object.defineProperty:function(f,u,v){if(r(f),u=s(u,!0),r(v),n)try{return c(f,u,v)}catch{}if("get"in v||"set"in v)throw TypeError("Accessors not supported!");return"value"in v&&(f[u]=v.value),f}},function(i,e,t){var r=t(98);i.exports=function(n){if(!r(n))throw TypeError(n+" is not an object!");return n}},function(i,e){i.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(i,e,t){i.exports=!t(100)&&!t(101)(function(){return Object.defineProperty(t(102)("div"),"a",{get:function(){return 7}}).a!=7})},function(i,e,t){i.exports=!t(101)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(i,e){i.exports=function(t){try{return!!t()}catch{return!0}}},function(i,e,t){var r=t(98),n=t(91).document,s=r(n)&&r(n.createElement);i.exports=function(c){return s?n.createElement(c):{}}},function(i,e,t){var r=t(98);i.exports=function(n,s){if(!r(n))return n;var c,l;if(s&&typeof(c=n.toString)=="function"&&!r(l=c.call(n))||typeof(c=n.valueOf)=="function"&&!r(l=c.call(n))||!s&&typeof(c=n.toString)=="function"&&!r(l=c.call(n)))return l;throw TypeError("Can't convert object to primitive value")}},function(i,e){i.exports=function(t,r){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:r}}},function(i,e){var t={}.hasOwnProperty;i.exports=function(r,n){return t.call(r,n)}},function(i,e,t){i.exports=t(95)},function(i,e,t){var r=t(108),n=t(104),s=t(121),c={};t(95)(c,t(122)("iterator"),function(){return this}),i.exports=function(l,f,u){l.prototype=r(c,{next:n(1,u)}),s(l,f+" Iterator")}},function(i,e,t){var r=t(97),n=t(109),s=t(119),c=t(116)("IE_PROTO"),l=function(){},f="prototype",u=function(){var v=t(102)("iframe"),h=s.length,y="<",T=">",O;for(v.style.display="none",t(120).appendChild(v),v.src="javascript:",O=v.contentWindow.document,O.open(),O.write(y+"script"+T+"document.F=Object"+y+"/script"+T),O.close(),u=O.F;h--;)delete u[f][s[h]];return u()};i.exports=Object.create||function(h,y){var T;return h!==null?(l[f]=r(h),T=new l,l[f]=null,T[c]=h):T=u(),y===void 0?T:n(T,y)}},function(i,e,t){var r=t(96),n=t(97),s=t(110);i.exports=t(100)?Object.defineProperties:function(l,f){n(l);for(var u=s(f),v=u.length,h=0,y;v>h;)r.f(l,y=u[h++],f[y]);return l}},function(i,e,t){var r=t(111),n=t(119);i.exports=Object.keys||function(c){return r(c,n)}},function(i,e,t){var r=t(105),n=t(84),s=t(112)(!1),c=t(116)("IE_PROTO");i.exports=function(l,f){var u=n(l),v=0,h=[],y;for(y in u)y!=c&&r(u,y)&&h.push(y);for(;f.length>v;)r(u,y=f[v++])&&(~s(h,y)||h.push(y));return h}},function(i,e,t){var r=t(84),n=t(113),s=t(115);i.exports=function(c){return function(l,f,u){var v=r(l),h=n(v.length),y=s(u,h),T;if(c&&f!=f){for(;h>y;)if(T=v[y++],T!=T)return!0}else for(;h>y;y++)if((c||y in v)&&v[y]===f)return c||y||0;return!c&&-1}}},function(i,e,t){var r=t(114),n=Math.min;i.exports=function(s){return s>0?n(r(s),9007199254740991):0}},function(i,e){var t=Math.ceil,r=Math.floor;i.exports=function(n){return isNaN(n=+n)?0:(n>0?r:t)(n)}},function(i,e,t){var r=t(114),n=Math.max,s=Math.min;i.exports=function(c,l){return c=r(c),c<0?n(c+l,0):s(c,l)}},function(i,e,t){var r=t(117)("keys"),n=t(118);i.exports=function(s){return r[s]||(r[s]=n(s))}},function(i,e,t){var r=t(92),n=t(91),s="__core-js_shared__",c=n[s]||(n[s]={});(i.exports=function(l,f){return c[l]||(c[l]=f!==void 0?f:{})})("versions",[]).push({version:r.version,mode:t(89)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(i,e){var t=0,r=Math.random();i.exports=function(n){return"Symbol(".concat(n===void 0?"":n,")_",(++t+r).toString(36))}},function(i,e){i.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(i,e,t){var r=t(91).document;i.exports=r&&r.documentElement},function(i,e,t){var r=t(96).f,n=t(105),s=t(122)("toStringTag");i.exports=function(c,l,f){c&&!n(c=f?c:c.prototype,s)&&r(c,s,{configurable:!0,value:l})}},function(i,e,t){var r=t(117)("wks"),n=t(118),s=t(91).Symbol,c=typeof s=="function",l=i.exports=function(f){return r[f]||(r[f]=c&&s[f]||(c?s:n)("Symbol."+f))};l.store=r},function(i,e,t){var r=t(105),n=t(124),s=t(116)("IE_PROTO"),c=Object.prototype;i.exports=Object.getPrototypeOf||function(l){return l=n(l),r(l,s)?l[s]:typeof l.constructor=="function"&&l instanceof l.constructor?l.constructor.prototype:l instanceof Object?c:null}},function(i,e,t){var r=t(87);i.exports=function(n){return Object(r(n))}},function(i,e,t){var r=t(126)(!0);t(88)(String,"String",function(n){this._t=String(n),this._i=0},function(){var n=this._t,s=this._i,c;return s>=n.length?{value:void 0,done:!0}:(c=r(n,s),this._i+=c.length,{value:c,done:!1})})},function(i,e,t){var r=t(114),n=t(87);i.exports=function(s){return function(c,l){var f=String(n(c)),u=r(l),v=f.length,h,y;return u<0||u>=v?s?"":void 0:(h=f.charCodeAt(u),h<55296||h>56319||u+1===v||(y=f.charCodeAt(u+1))<56320||y>57343?s?f.charAt(u):h:s?f.slice(u,u+2):(h-55296<<10)+(y-56320)+65536)}}},function(i,e,t){var r=t(128),n=t(122)("iterator"),s=t(83);i.exports=t(92).isIterable=function(c){var l=Object(c);return l[n]!==void 0||"@@iterator"in l||s.hasOwnProperty(r(l))}},function(i,e,t){var r=t(86),n=t(122)("toStringTag"),s=r(function(){return arguments}())=="Arguments",c=function(l,f){try{return l[f]}catch{}};i.exports=function(l){var f,u,v;return l===void 0?"Undefined":l===null?"Null":typeof(u=c(f=Object(l),n))=="string"?u:s?r(f):(v=r(f))=="Object"&&typeof f.callee=="function"?"Arguments":v}},function(i,e,t){i.exports={default:t(130),__esModule:!0}},function(i,e,t){t(79),t(125),i.exports=t(131)},function(i,e,t){var r=t(97),n=t(132);i.exports=t(92).getIterator=function(s){var c=n(s);if(typeof c!="function")throw TypeError(s+" is not iterable!");return r(c.call(s))}},function(i,e,t){var r=t(128),n=t(122)("iterator"),s=t(83);i.exports=t(92).getIteratorMethod=function(c){if(c!=null)return c[n]||c["@@iterator"]||s[r(c)]}},function(i,e,t){e.__esModule=!0;var r=t(134),n=s(r);function s(c){return c&&c.__esModule?c:{default:c}}e.default=function(c){if(Array.isArray(c)){for(var l=0,f=Array(c.length);l<c.length;l++)f[l]=c[l];return f}else return(0,n.default)(c)}},function(i,e,t){i.exports={default:t(135),__esModule:!0}},function(i,e,t){t(125),t(136),i.exports=t(92).Array.from},function(i,e,t){var r=t(93),n=t(90),s=t(124),c=t(137),l=t(138),f=t(113),u=t(139),v=t(132);n(n.S+n.F*!t(140)(function(h){Array.from(h)}),"Array",{from:function(y){var T=s(y),O=typeof this=="function"?this:Array,I=arguments.length,P=I>1?arguments[1]:void 0,w=P!==void 0,d=0,m=v(T),p,S,E,R;if(w&&(P=r(P,I>2?arguments[2]:void 0,2)),m!=null&&!(O==Array&&l(m)))for(R=m.call(T),S=new O;!(E=R.next()).done;d++)u(S,d,w?c(R,P,[E.value,d],!0):E.value);else for(p=f(T.length),S=new O(p);p>d;d++)u(S,d,w?P(T[d],d):T[d]);return S.length=d,S}})},function(i,e,t){var r=t(97);i.exports=function(n,s,c,l){try{return l?s(r(c)[0],c[1]):s(c)}catch(u){var f=n.return;throw f!==void 0&&r(f.call(n)),u}}},function(i,e,t){var r=t(83),n=t(122)("iterator"),s=Array.prototype;i.exports=function(c){return c!==void 0&&(r.Array===c||s[n]===c)}},function(i,e,t){var r=t(96),n=t(104);i.exports=function(s,c,l){c in s?r.f(s,c,n(0,l)):s[c]=l}},function(i,e,t){var r=t(122)("iterator"),n=!1;try{var s=[7][r]();s.return=function(){n=!0},Array.from(s,function(){throw 2})}catch{}i.exports=function(c,l){if(!l&&!n)return!1;var f=!1;try{var u=[7],v=u[r]();v.next=function(){return{done:f=!0}},u[r]=function(){return v},c(u)}catch{}return f}},function(i,e,t){i.exports={default:t(142),__esModule:!0}},function(i,e,t){t(143),t(125),t(79),t(144),t(157),t(160),t(162),i.exports=t(92).Map},function(i,e){},function(i,e,t){var r=t(145),n=t(151),s="Map";i.exports=t(152)(s,function(c){return function(){return c(this,arguments.length>0?arguments[0]:void 0)}},{get:function(l){var f=r.getEntry(n(this,s),l);return f&&f.v},set:function(l,f){return r.def(n(this,s),l===0?0:l,f)}},r,!0)},function(i,e,t){var r=t(96).f,n=t(108),s=t(146),c=t(93),l=t(147),f=t(148),u=t(88),v=t(82),h=t(149),y=t(100),T=t(150).fastKey,O=t(151),I=y?"_s":"size",P=function(w,d){var m=T(d),p;if(m!=="F")return w._i[m];for(p=w._f;p;p=p.n)if(p.k==d)return p};i.exports={getConstructor:function(w,d,m,p){var S=w(function(E,R){l(E,S,d,"_i"),E._t=d,E._i=n(null),E._f=void 0,E._l=void 0,E[I]=0,R!=null&&f(R,m,E[p],E)});return s(S.prototype,{clear:function(){for(var R=O(this,d),D=R._i,U=R._f;U;U=U.n)U.r=!0,U.p&&(U.p=U.p.n=void 0),delete D[U.i];R._f=R._l=void 0,R[I]=0},delete:function(E){var R=O(this,d),D=P(R,E);if(D){var U=D.n,M=D.p;delete R._i[D.i],D.r=!0,M&&(M.n=U),U&&(U.p=M),R._f==D&&(R._f=U),R._l==D&&(R._l=M),R[I]--}return!!D},forEach:function(R){O(this,d);for(var D=c(R,arguments.length>1?arguments[1]:void 0,3),U;U=U?U.n:this._f;)for(D(U.v,U.k,this);U&&U.r;)U=U.p},has:function(R){return!!P(O(this,d),R)}}),y&&r(S.prototype,"size",{get:function(){return O(this,d)[I]}}),S},def:function(w,d,m){var p=P(w,d),S,E;return p?p.v=m:(w._l=p={i:E=T(d,!0),k:d,v:m,p:S=w._l,n:void 0,r:!1},w._f||(w._f=p),S&&(S.n=p),w[I]++,E!=="F"&&(w._i[E]=p)),w},getEntry:P,setStrong:function(w,d,m){u(w,d,function(p,S){this._t=O(p,d),this._k=S,this._l=void 0},function(){for(var p=this,S=p._k,E=p._l;E&&E.r;)E=E.p;return!p._t||!(p._l=E=E?E.n:p._t._f)?(p._t=void 0,v(1)):S=="keys"?v(0,E.k):S=="values"?v(0,E.v):v(0,[E.k,E.v])},m?"entries":"values",!m,!0),h(d)}}},function(i,e,t){var r=t(95);i.exports=function(n,s,c){for(var l in s)c&&n[l]?n[l]=s[l]:r(n,l,s[l]);return n}},function(i,e){i.exports=function(t,r,n,s){if(!(t instanceof r)||s!==void 0&&s in t)throw TypeError(n+": incorrect invocation!");return t}},function(i,h,t){var r=t(93),n=t(137),s=t(138),c=t(97),l=t(113),f=t(132),u={},v={},h=i.exports=function(y,T,O,I,P){var w=P?function(){return y}:f(y),d=r(O,I,T?2:1),m=0,p,S,E,R;if(typeof w!="function")throw TypeError(y+" is not iterable!");if(s(w)){for(p=l(y.length);p>m;m++)if(R=T?d(c(S=y[m])[0],S[1]):d(y[m]),R===u||R===v)return R}else for(E=w.call(y);!(S=E.next()).done;)if(R=n(E,d,S.value,T),R===u||R===v)return R};h.BREAK=u,h.RETURN=v},function(i,e,t){var r=t(91),n=t(92),s=t(96),c=t(100),l=t(122)("species");i.exports=function(f){var u=typeof n[f]=="function"?n[f]:r[f];c&&u&&!u[l]&&s.f(u,l,{configurable:!0,get:function(){return this}})}},function(i,e,t){var r=t(118)("meta"),n=t(98),s=t(105),c=t(96).f,l=0,f=Object.isExtensible||function(){return!0},u=!t(101)(function(){return f(Object.preventExtensions({}))}),v=function(I){c(I,r,{value:{i:"O"+ ++l,w:{}}})},h=function(I,P){if(!n(I))return typeof I=="symbol"?I:(typeof I=="string"?"S":"P")+I;if(!s(I,r)){if(!f(I))return"F";if(!P)return"E";v(I)}return I[r].i},y=function(I,P){if(!s(I,r)){if(!f(I))return!0;if(!P)return!1;v(I)}return I[r].w},T=function(I){return u&&O.NEED&&f(I)&&!s(I,r)&&v(I),I},O=i.exports={KEY:r,NEED:!1,fastKey:h,getWeak:y,onFreeze:T}},function(i,e,t){var r=t(98);i.exports=function(n,s){if(!r(n)||n._t!==s)throw TypeError("Incompatible receiver, "+s+" required!");return n}},function(i,e,t){var r=t(91),n=t(90),s=t(150),c=t(101),l=t(95),f=t(146),u=t(148),v=t(147),h=t(98),y=t(121),T=t(96).f,O=t(153)(0),I=t(100);i.exports=function(P,w,d,m,p,S){var E=r[P],R=E,D=p?"set":"add",U=R&&R.prototype,M={};return!I||typeof R!="function"||!(S||U.forEach&&!c(function(){new R().entries().next()}))?(R=m.getConstructor(w,P,p,D),f(R.prototype,d),s.NEED=!0):(R=w(function(W,$){v(W,R,P,"_c"),W._c=new E,$!=null&&u($,p,W[D],W)}),O("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(W){var $=W=="add"||W=="set";W in U&&!(S&&W=="clear")&&l(R.prototype,W,function(B,N){if(v(this,R,W),!$&&S&&!h(B))return W=="get"?void 0:!1;var z=this._c[W](B===0?0:B,N);return $?this:z})}),S||T(R.prototype,"size",{get:function(){return this._c.size}})),y(R,P),M[P]=R,n(n.G+n.W+n.F,M),S||m.setStrong(R,P,p),R}},function(i,e,t){var r=t(93),n=t(85),s=t(124),c=t(113),l=t(154);i.exports=function(f,u){var v=f==1,h=f==2,y=f==3,T=f==4,O=f==6,I=f==5||O,P=u||l;return function(w,d,m){for(var p=s(w),S=n(p),E=r(d,m,3),R=c(S.length),D=0,U=v?P(w,R):h?P(w,0):void 0,M,W;R>D;D++)if((I||D in S)&&(M=S[D],W=E(M,D,p),f)){if(v)U[D]=W;else if(W)switch(f){case 3:return!0;case 5:return M;case 6:return D;case 2:U.push(M)}else if(T)return!1}return O?-1:y||T?T:U}}},function(i,e,t){var r=t(155);i.exports=function(n,s){return new(r(n))(s)}},function(i,e,t){var r=t(98),n=t(156),s=t(122)("species");i.exports=function(c){var l;return n(c)&&(l=c.constructor,typeof l=="function"&&(l===Array||n(l.prototype))&&(l=void 0),r(l)&&(l=l[s],l===null&&(l=void 0))),l===void 0?Array:l}},function(i,e,t){var r=t(86);i.exports=Array.isArray||function(s){return r(s)=="Array"}},function(i,e,t){var r=t(90);r(r.P+r.R,"Map",{toJSON:t(158)("Map")})},function(i,e,t){var r=t(128),n=t(159);i.exports=function(s){return function(){if(r(this)!=s)throw TypeError(s+"#toJSON isn't generic");return n(this)}}},function(i,e,t){var r=t(148);i.exports=function(n,s){var c=[];return r(n,!1,c.push,c,s),c}},function(i,e,t){t(161)("Map")},function(i,e,t){var r=t(90);i.exports=function(n){r(r.S,n,{of:function(){for(var c=arguments.length,l=new Array(c);c--;)l[c]=arguments[c];return new this(l)}})}},function(i,e,t){t(163)("Map")},function(i,e,t){var r=t(90),n=t(94),s=t(93),c=t(148);i.exports=function(l){r(r.S,l,{from:function(u){var v=arguments[1],h,y,T,O;return n(this),h=v!==void 0,h&&n(v),u==null?new this:(y=[],h?(T=0,O=s(v,arguments[2],2),c(u,!1,function(I){y.push(O(I,T++))})):c(u,!1,y.push,y),new this(y))}})}},function(i,e,t){i.exports={default:t(165),__esModule:!0}},function(i,e,t){t(166),i.exports=t(92).Object.assign},function(i,e,t){var r=t(90);r(r.S+r.F,"Object",{assign:t(167)})},function(i,e,t){var r=t(100),n=t(110),s=t(168),c=t(169),l=t(124),f=t(85),u=Object.assign;i.exports=!u||t(101)(function(){var v={},h={},y=Symbol(),T="abcdefghijklmnopqrst";return v[y]=7,T.split("").forEach(function(O){h[O]=O}),u({},v)[y]!=7||Object.keys(u({},h)).join("")!=T})?function(h,y){for(var T=l(h),O=arguments.length,I=1,P=s.f,w=c.f;O>I;)for(var d=f(arguments[I++]),m=P?n(d).concat(P(d)):n(d),p=m.length,S=0,E;p>S;)E=m[S++],(!r||w.call(d,E))&&(T[E]=d[E]);return T}:u},function(i,e){e.f=Object.getOwnPropertySymbols},function(i,e){e.f={}.propertyIsEnumerable},function(i,e,t){e.__esModule=!0,e.default=function(r,n){if(!(r instanceof n))throw new TypeError("Cannot call a class as a function")}},function(i,e,t){e.__esModule=!0;var r=t(172),n=s(r);function s(c){return c&&c.__esModule?c:{default:c}}e.default=function(){function c(l,f){for(var u=0;u<f.length;u++){var v=f[u];v.enumerable=v.enumerable||!1,v.configurable=!0,"value"in v&&(v.writable=!0),(0,n.default)(l,v.key,v)}}return function(l,f,u){return f&&c(l.prototype,f),u&&c(l,u),l}}()},function(i,e,t){i.exports={default:t(173),__esModule:!0}},function(i,e,t){t(174);var r=t(92).Object;i.exports=function(s,c,l){return r.defineProperty(s,c,l)}},function(i,e,t){var r=t(90);r(r.S+r.F*!t(100),"Object",{defineProperty:t(96).f})},function(i,e,t){i.exports={default:t(176),__esModule:!0}},function(i,e,t){t(177),t(143),t(184),t(185),i.exports=t(92).Symbol},function(i,e,t){var r=t(91),n=t(105),s=t(100),c=t(90),l=t(106),f=t(150).KEY,u=t(101),v=t(117),h=t(121),y=t(118),T=t(122),O=t(178),I=t(179),P=t(180),w=t(156),d=t(97),m=t(98),p=t(124),S=t(84),E=t(103),R=t(104),D=t(108),U=t(181),M=t(183),W=t(168),$=t(96),B=t(110),N=M.f,z=$.f,J=U.f,et=r.Symbol,at=r.JSON,ct=at&&at.stringify,V="prototype",Q=T("_hidden"),ft=T("toPrimitive"),mt={}.propertyIsEnumerable,yt=v("symbol-registry"),At=v("symbols"),ht=v("op-symbols"),Nt=Object[V],Bt=typeof et=="function"&&!!W.f,G=r.QObject,k=!G||!G[V]||!G[V].findChild,rt=s&&u(function(){return D(z({},"a",{get:function(){return z(this,"a",{value:7}).a}})).a!=7})?function(wt,Ot,Lt){var Yt=N(Nt,Ot);Yt&&delete Nt[Ot],z(wt,Ot,Lt),Yt&&wt!==Nt&&z(Nt,Ot,Yt)}:z,nt=function(wt){var Ot=At[wt]=D(et[V]);return Ot._k=wt,Ot},Y=Bt&&typeof et.iterator=="symbol"?function(wt){return typeof wt=="symbol"}:function(wt){return wt instanceof et},Z=function(Ot,Lt,Yt){return Ot===Nt&&Z(ht,Lt,Yt),d(Ot),Lt=E(Lt,!0),d(Yt),n(At,Lt)?(Yt.enumerable?(n(Ot,Q)&&Ot[Q][Lt]&&(Ot[Q][Lt]=!1),Yt=D(Yt,{enumerable:R(0,!1)})):(n(Ot,Q)||z(Ot,Q,R(1,{})),Ot[Q][Lt]=!0),rt(Ot,Lt,Yt)):z(Ot,Lt,Yt)},C=function(Ot,Lt){d(Ot);for(var Yt=P(Lt=S(Lt)),zt=0,Wt=Yt.length,Qt;Wt>zt;)Z(Ot,Qt=Yt[zt++],Lt[Qt]);return Ot},L=function(Ot,Lt){return Lt===void 0?D(Ot):C(D(Ot),Lt)},X=function(Ot){var Lt=mt.call(this,Ot=E(Ot,!0));return this===Nt&&n(At,Ot)&&!n(ht,Ot)?!1:Lt||!n(this,Ot)||!n(At,Ot)||n(this,Q)&&this[Q][Ot]?Lt:!0},K=function(Ot,Lt){if(Ot=S(Ot),Lt=E(Lt,!0),!(Ot===Nt&&n(At,Lt)&&!n(ht,Lt))){var Yt=N(Ot,Lt);return Yt&&n(At,Lt)&&!(n(Ot,Q)&&Ot[Q][Lt])&&(Yt.enumerable=!0),Yt}},q=function(Ot){for(var Lt=J(S(Ot)),Yt=[],zt=0,Wt;Lt.length>zt;)!n(At,Wt=Lt[zt++])&&Wt!=Q&&Wt!=f&&Yt.push(Wt);return Yt},it=function(Ot){for(var Lt=Ot===Nt,Yt=J(Lt?ht:S(Ot)),zt=[],Wt=0,Qt;Yt.length>Wt;)n(At,Qt=Yt[Wt++])&&(!Lt||n(Nt,Qt))&&zt.push(At[Qt]);return zt};Bt||(et=function(){if(this instanceof et)throw TypeError("Symbol is not a constructor!");var Ot=y(arguments.length>0?arguments[0]:void 0),Lt=function(Yt){this===Nt&&Lt.call(ht,Yt),n(this,Q)&&n(this[Q],Ot)&&(this[Q][Ot]=!1),rt(this,Ot,R(1,Yt))};return s&&k&&rt(Nt,Ot,{configurable:!0,set:Lt}),nt(Ot)},l(et[V],"toString",function(){return this._k}),M.f=K,$.f=Z,t(182).f=U.f=q,t(169).f=X,W.f=it,s&&!t(89)&&l(Nt,"propertyIsEnumerable",X,!0),O.f=function(wt){return nt(T(wt))}),c(c.G+c.W+c.F*!Bt,{Symbol:et});for(var ut="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),St=0;ut.length>St;)T(ut[St++]);for(var Ct=B(T.store),Et=0;Ct.length>Et;)I(Ct[Et++]);c(c.S+c.F*!Bt,"Symbol",{for:function(wt){return n(yt,wt+="")?yt[wt]:yt[wt]=et(wt)},keyFor:function(Ot){if(!Y(Ot))throw TypeError(Ot+" is not a symbol!");for(var Lt in yt)if(yt[Lt]===Ot)return Lt},useSetter:function(){k=!0},useSimple:function(){k=!1}}),c(c.S+c.F*!Bt,"Object",{create:L,defineProperty:Z,defineProperties:C,getOwnPropertyDescriptor:K,getOwnPropertyNames:q,getOwnPropertySymbols:it});var bt=u(function(){W.f(1)});c(c.S+c.F*bt,"Object",{getOwnPropertySymbols:function(Ot){return W.f(p(Ot))}}),at&&c(c.S+c.F*(!Bt||u(function(){var wt=et();return ct([wt])!="[null]"||ct({a:wt})!="{}"||ct(Object(wt))!="{}"})),"JSON",{stringify:function(Ot){for(var Lt=[Ot],Yt=1,zt,Wt;arguments.length>Yt;)Lt.push(arguments[Yt++]);if(Wt=zt=Lt[1],!(!m(zt)&&Ot===void 0||Y(Ot)))return w(zt)||(zt=function(Qt,ue){if(typeof Wt=="function"&&(ue=Wt.call(this,Qt,ue)),!Y(ue))return ue}),Lt[1]=zt,ct.apply(at,Lt)}}),et[V][ft]||t(95)(et[V],ft,et[V].valueOf),h(et,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},function(i,e,t){e.f=t(122)},function(i,e,t){var r=t(91),n=t(92),s=t(89),c=t(178),l=t(96).f;i.exports=function(f){var u=n.Symbol||(n.Symbol=s?{}:r.Symbol||{});f.charAt(0)!="_"&&!(f in u)&&l(u,f,{value:c.f(f)})}},function(i,e,t){var r=t(110),n=t(168),s=t(169);i.exports=function(c){var l=r(c),f=n.f;if(f)for(var u=f(c),v=s.f,h=0,y;u.length>h;)v.call(c,y=u[h++])&&l.push(y);return l}},function(i,e,t){var r=t(84),n=t(182).f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(f){try{return n(f)}catch{return c.slice()}};i.exports.f=function(u){return c&&s.call(u)=="[object Window]"?l(u):n(r(u))}},function(i,e,t){var r=t(111),n=t(119).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(c){return r(c,n)}},function(i,e,t){var r=t(169),n=t(104),s=t(84),c=t(103),l=t(105),f=t(99),u=Object.getOwnPropertyDescriptor;e.f=t(100)?u:function(h,y){if(h=s(h),y=c(y,!0),f)try{return u(h,y)}catch{}if(l(h,y))return n(!r.f.call(h,y),h[y])}},function(i,e,t){t(179)("asyncIterator")},function(i,e,t){t(179)("observable")},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.createNowTime=r,e.formatDelay=n;function r(){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(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={default:function(n,s,c,l,f){return typeof n=="number"&&typeof s=="number"?n+(c-l)/(f-l)*(s-n):c-l>f-c?s:n}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.parseEasing=e.Easings=void 0;var r=t(76),n=u(r),s=t(133),c=u(s),l=t(141),f=u(l);function u(w){return w&&w.__esModule?w:{default:w}}var v=t(189),h=new f.default;function y(){for(var w=arguments.length,d=Array(w),m=0;m<w;m++)d[m]=arguments[m];var p=h.get(d);return p||(p=v.apply(void 0,d),h.set(d,p),p)}function T(w){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"end";return function(m,p){for(var S=1;S<p.length;S++){var E=p[S].offset;if(m<=E){var R=p[S-1].offset,D=E,U=(m-R)/(D-R),M=1/w,W=U/M;return d==="end"?W=Math.floor(W):W=Math.ceil(W),M*W*(D-R)+R}}return 0}}function O(w){var d=/^cubic-bezier\((.*)\)/,m=w.match(d);if(m){var p=m[1].trim();return p=p.split(",").map(function(M){return parseFloat(M.trim())}),y.apply(void 0,(0,c.default)(p))}if(d=/^steps\((.*)\)/,m=w.match(d),m){var S=m[1].trim();S=S.split(",").map(function(M){return M.trim()});var E=S,R=(0,n.default)(E,2),D=R[0],U=R[1];return T(parseInt(D,10),U)}return w}var I={linear:function(d){return d},ease:y(.25,.1,.25,1),"ease-in":y(.42,0,1,1),"ease-out":y(0,0,.58,1),"ease-in-out":y(.42,0,.58,1),"step-start":T(1,"start"),"step-end":T(1,"end")};function P(w){return typeof w=="string"?I[w]?w=I[w]:w=O(w):w.type==="cubic-bezier"?w=y.apply(void 0,(0,c.default)(w.value)):w.type==="steps"&&(w=T(w.step,w.pos)),w}e.Easings=I,e.parseEasing=P},function(i,e){var t=4,r=.001,n=1e-7,s=10,c=11,l=1/(c-1),f=typeof Float32Array=="function";function u(w,d){return 1-3*d+3*w}function v(w,d){return 3*d-6*w}function h(w){return 3*w}function y(w,d,m){return((u(d,m)*w+v(d,m))*w+h(d))*w}function T(w,d,m){return 3*u(d,m)*w*w+2*v(d,m)*w+h(d)}function O(w,d,m,p,S){var E,R,D=0;do R=d+(m-d)/2,E=y(R,p,S)-w,E>0?m=R:d=R;while(Math.abs(E)>n&&++D<s);return R}function I(w,d,m,p){for(var S=0;S<t;++S){var E=T(d,m,p);if(E===0)return d;var R=y(d,m,p)-w;d-=R/E}return d}function P(w){return w}i.exports=function(d,m,p,S){if(!(0<=d&&d<=1&&0<=p&&p<=1))throw new Error("bezier x values must be in [0, 1] range");if(d===m&&p===S)return P;for(var E=f?new Float32Array(c):new Array(c),R=0;R<c;++R)E[R]=y(R*l,d,p);function D(U){for(var M=0,W=1,$=c-1;W!==$&&E[W]<=U;++W)M+=l;--W;var B=(U-E[W])/(E[W+1]-E[W]),N=M+B*l,z=T(N,d,p);return z>=r?I(U,N,d,p):z===0?N:O(U,M,M+l,d,p)}return function(M){return M===0?0:M===1?1:y(D(M),m,S)}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(191),n=m(r),s=t(204),c=m(s),l=t(164),f=m(l),u=t(170),v=m(u),h=t(171),y=m(h),T=t(175),O=m(T),I=t(75),P=m(I),w=t(208),d=t(188);function m(z){return z&&z.__esModule?z:{default:z}}var p=(0,O.default)("timing"),S=(0,O.default)("keyframes"),E=(0,O.default)("initState"),R=(0,O.default)("readyDefer"),D=(0,O.default)("finishedDefer"),U=(0,O.default)("effects"),M=(0,O.default)("activeReadyTimer"),W=(0,O.default)("activeFinishTimer"),$=(0,O.default)("removeDefer"),B={delay:0,endDelay:0,fill:"auto",iterations:1,playbackRate:1,direction:"normal",easing:"linear",effect:null},N=function(){function z(J,et,at){var ct=this;if((0,v.default)(this,z),Array.isArray(J)){var V=[J[0],J,et];J=V[0],et=V[1],at=V[2]}typeof at=="number"&&(at={duration:at}),this[p]=(0,f.default)({},B,at),this[p].easing=(0,d.parseEasing)(this[p].easing),this[S]=(0,w.calculateFramesOffset)(et);var Q=this[S][this[S].length-1];this[E]={},(0,c.default)(Q).forEach(function(ft){Object.prototype.hasOwnProperty.call(J,ft)&&ft!=="easing"&&ft!=="offset"&&(ct[E][ft]=J[ft])}),this[S]=this[S].map(function(ft){return(0,f.default)({},ct[E],ft)}),this[S][0].offset!==0&&this[S].unshift((0,f.default)({},this[E],{offset:0})),Q.offset<1&&this[S].push((0,f.default)({},Q,{offset:1})),this[U]={},this.timeline=null}return(0,y.default)(z,[{key:"pause",value:function(){this.timeline.playbackRate=0}},{key:M,value:function(){var et=this;this[R]&&!this[R].timerID&&(this.timeline.currentTime<0?this[R].timerID=this.timeline.setTimeout(function(){et[R].resolve(),delete et[R]},{delay:-this.timeline.currentTime,heading:!1}):this[R].timerID=this.timeline.setTimeout(function(){et[R].resolve(),delete et[R]},{delay:0,isEntropy:!0}))}},{key:W,value:function(){var et=this,at=this[p],ct=at.duration,V=at.iterations,Q=at.endDelay,ft=Math.ceil(ct*V+Q-this.timeline.currentTime)+1;this[D]&&!this[D].timerID&&(this[D].timerID=this.timeline.setTimeout(function(){et[D].resolve(),et[$](R),et[$](D)},{delay:ft,heading:!1}),this[D].reverseTimerID=this.timeline.setTimeout(function(){et[D].resolve(),et[$](R),et[$](D),et.timeline=null},{delay:-this[p].delay-1,heading:!1}))}},{key:"play",value:function(){if(this.playState==="finished"&&this.cancel(),this.playState==="idle"){if(this.playbackRate<=0)return;var et=this[p],at=et.delay,ct=et.playbackRate,V=et.timeline;this.timeline=new P.default({originTime:at,playbackRate:ct},V),this[M](),this[W]()}else this.playState==="paused"&&(this.timeline.playbackRate=this.playbackRate,this[M]())}},{key:$,value:function(et){var at=this[et],ct=this.timeline;at&&ct&&(ct.clearTimeout(at.timerID),at.reverseTimerID&&ct.clearTimeout(at.reverseTimerID)),delete this[et]}},{key:"cancel",value:function(){this[$](R),this[$](D),this.timeline=null}},{key:"finish",value:function(){this.timeline&&(this.timeline.currentTime=1/0/this.playbackRate),this[$](R),this[$](D)}},{key:"applyEffects",value:function(et){return(0,f.default)(this[U],et)}},{key:"playbackRate",get:function(){return this[p].playbackRate},set:function(et){this.timeline&&(this.timeline.playbackRate=et),this[p].playbackRate=et}},{key:"playState",get:function(){var et=this.timeline,at=this[p],ct=at.iterations,V=at.duration,Q=at.endDelay,ft="running";if(et==null)ft="idle";else if(et.paused)ft="paused";else if(et.currentTime<0)ft="pending";else{var mt=et.currentTime-ct*V;mt>0&&mt<Q?ft="pending":mt>=Q&&(ft="finished")}return ft}},{key:"progress",get:function(){if(!this.timeline)return 0;var et=this[p],at=et.duration,ct=et.iterations,V=this.timeline,Q=this.playState,ft=void 0;if(Q==="idle")ft=0;else if(Q==="paused"&&V.currentTime<0)ft=0;else if(Q==="pending")if(V.currentTime<0)ft=0;else{var mt=V.seekLocalTime(ct*at);ft=(0,w.periodicity)(mt,at)[1]/at}else(Q==="running"||Q==="paused")&&(ft=(0,w.periodicity)(V.currentTime,at)[1]/at);return Q==="finished"&&(ft=(0,w.periodicity)(ct,1)[1]),ft}},{key:"frame",get:function(){var et=this.playState,at=this[E],ct=this[p].fill;if(et==="idle")return at;var V=this.timeline.currentTime,Q=this[S].slice(0),ft=(0,w.getProgress)(this.timeline,this[p],this.progress),mt=ft.p,yt=ft.inverted,At=at;return V<0&&et==="pending"?(ct==="backwards"||ct==="both")&&(At=yt?Q[Q.length-1]:Q[0]):(et!=="pending"&&et!=="finished"||ct==="forwards"||ct==="both")&&(At=(0,w.getCurrentFrame)(this[p],Q,this[U],mt)),At}},{key:"timing",get:function(){return this[p]}},{key:"effects",get:function(){return this[U]}},{key:"baseTimeline",set:function(et){this[p].timeline=et},get:function(){return this[p].timeline}},{key:"ready",get:function(){return this[R]?this[R].promise:this.timeline&&this.timeline.currentTime>=0&&this.playState!=="paused"?n.default.resolve():(this[R]=(0,w.defer)(),this.timeline&&this[M](),this[R]?this[R].promise:n.default.resolve())}},{key:"finished",get:function(){return this.playState==="finished"?n.default.resolve():(this[D]||(this[D]=(0,w.defer)(),this.timeline&&this[W]()),this[D].promise)}}]),z}();e.default=N},function(i,e,t){i.exports={default:t(192),__esModule:!0}},function(i,e,t){t(143),t(125),t(79),t(193),t(202),t(203),i.exports=t(92).Promise},function(i,e,t){var r=t(89),n=t(91),s=t(93),c=t(128),l=t(90),f=t(98),u=t(94),v=t(147),h=t(148),y=t(194),T=t(195).set,O=t(197)(),I=t(198),P=t(199),w=t(200),d=t(201),m="Promise",p=n.TypeError,S=n.process,E=S&&S.versions,R=E&&E.v8||"",D=n[m],U=c(S)=="process",M=function(){},W,$,B,N,z=$=I.f,J=!!function(){try{var yt=D.resolve(1),At=(yt.constructor={})[t(122)("species")]=function(ht){ht(M,M)};return(U||typeof PromiseRejectionEvent=="function")&&yt.then(M)instanceof At&&R.indexOf("6.6")!==0&&w.indexOf("Chrome/66")===-1}catch{}}(),et=function(yt){var At;return f(yt)&&typeof(At=yt.then)=="function"?At:!1},at=function(yt,At){if(!yt._n){yt._n=!0;var ht=yt._c;O(function(){for(var Nt=yt._v,Bt=yt._s==1,G=0,k=function(rt){var nt=Bt?rt.ok:rt.fail,Y=rt.resolve,Z=rt.reject,C=rt.domain,L,X,K;try{nt?(Bt||(yt._h==2&&Q(yt),yt._h=1),nt===!0?L=Nt:(C&&C.enter(),L=nt(Nt),C&&(C.exit(),K=!0)),L===rt.promise?Z(p("Promise-chain cycle")):(X=et(L))?X.call(L,Y,Z):Y(L)):Z(Nt)}catch(q){C&&!K&&C.exit(),Z(q)}};ht.length>G;)k(ht[G++]);yt._c=[],yt._n=!1,At&&!yt._h&&ct(yt)})}},ct=function(yt){T.call(n,function(){var At=yt._v,ht=V(yt),Nt,Bt,G;if(ht&&(Nt=P(function(){U?S.emit("unhandledRejection",At,yt):(Bt=n.onunhandledrejection)?Bt({promise:yt,reason:At}):(G=n.console)&&G.error&&G.error("Unhandled promise rejection",At)}),yt._h=U||V(yt)?2:1),yt._a=void 0,ht&&Nt.e)throw Nt.v})},V=function(yt){return yt._h!==1&&(yt._a||yt._c).length===0},Q=function(yt){T.call(n,function(){var At;U?S.emit("rejectionHandled",yt):(At=n.onrejectionhandled)&&At({promise:yt,reason:yt._v})})},ft=function(yt){var At=this;At._d||(At._d=!0,At=At._w||At,At._v=yt,At._s=2,At._a||(At._a=At._c.slice()),at(At,!0))},mt=function(yt){var At=this,ht;if(!At._d){At._d=!0,At=At._w||At;try{if(At===yt)throw p("Promise can't be resolved itself");(ht=et(yt))?O(function(){var Nt={_w:At,_d:!1};try{ht.call(yt,s(mt,Nt,1),s(ft,Nt,1))}catch(Bt){ft.call(Nt,Bt)}}):(At._v=yt,At._s=1,at(At,!1))}catch(Nt){ft.call({_w:At,_d:!1},Nt)}}};J||(D=function(At){v(this,D,m,"_h"),u(At),W.call(this);try{At(s(mt,this,1),s(ft,this,1))}catch(ht){ft.call(this,ht)}},W=function(At){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},W.prototype=t(146)(D.prototype,{then:function(At,ht){var Nt=z(y(this,D));return Nt.ok=typeof At=="function"?At:!0,Nt.fail=typeof ht=="function"&&ht,Nt.domain=U?S.domain:void 0,this._c.push(Nt),this._a&&this._a.push(Nt),this._s&&at(this,!1),Nt.promise},catch:function(yt){return this.then(void 0,yt)}}),B=function(){var yt=new W;this.promise=yt,this.resolve=s(mt,yt,1),this.reject=s(ft,yt,1)},I.f=z=function(yt){return yt===D||yt===N?new B(yt):$(yt)}),l(l.G+l.W+l.F*!J,{Promise:D}),t(121)(D,m),t(149)(m),N=t(92)[m],l(l.S+l.F*!J,m,{reject:function(At){var ht=z(this),Nt=ht.reject;return Nt(At),ht.promise}}),l(l.S+l.F*(r||!J),m,{resolve:function(At){return d(r&&this===N?D:this,At)}}),l(l.S+l.F*!(J&&t(140)(function(yt){D.all(yt).catch(M)})),m,{all:function(At){var ht=this,Nt=z(ht),Bt=Nt.resolve,G=Nt.reject,k=P(function(){var rt=[],nt=0,Y=1;h(At,!1,function(Z){var C=nt++,L=!1;rt.push(void 0),Y++,ht.resolve(Z).then(function(X){L||(L=!0,rt[C]=X,--Y||Bt(rt))},G)}),--Y||Bt(rt)});return k.e&&G(k.v),Nt.promise},race:function(At){var ht=this,Nt=z(ht),Bt=Nt.reject,G=P(function(){h(At,!1,function(k){ht.resolve(k).then(Nt.resolve,Bt)})});return G.e&&Bt(G.v),Nt.promise}})},function(i,e,t){var r=t(97),n=t(94),s=t(122)("species");i.exports=function(c,l){var f=r(c).constructor,u;return f===void 0||(u=r(f)[s])==null?l:n(u)}},function(i,e,t){var r=t(93),n=t(196),s=t(120),c=t(102),l=t(91),f=l.process,u=l.setImmediate,v=l.clearImmediate,h=l.MessageChannel,y=l.Dispatch,T=0,O={},I="onreadystatechange",P,w,d,m=function(){var S=+this;if(O.hasOwnProperty(S)){var E=O[S];delete O[S],E()}},p=function(S){m.call(S.data)};(!u||!v)&&(u=function(E){for(var R=[],D=1;arguments.length>D;)R.push(arguments[D++]);return O[++T]=function(){n(typeof E=="function"?E:Function(E),R)},P(T),T},v=function(E){delete O[E]},t(86)(f)=="process"?P=function(S){f.nextTick(r(m,S,1))}:y&&y.now?P=function(S){y.now(r(m,S,1))}:h?(w=new h,d=w.port2,w.port1.onmessage=p,P=r(d.postMessage,d,1)):l.addEventListener&&typeof postMessage=="function"&&!l.importScripts?(P=function(S){l.postMessage(S+"","*")},l.addEventListener("message",p,!1)):I in c("script")?P=function(S){s.appendChild(c("script"))[I]=function(){s.removeChild(this),m.call(S)}}:P=function(S){setTimeout(r(m,S,1),0)}),i.exports={set:u,clear:v}},function(i,e){i.exports=function(t,r,n){var s=n===void 0;switch(r.length){case 0:return s?t():t.call(n);case 1:return s?t(r[0]):t.call(n,r[0]);case 2:return s?t(r[0],r[1]):t.call(n,r[0],r[1]);case 3:return s?t(r[0],r[1],r[2]):t.call(n,r[0],r[1],r[2]);case 4:return s?t(r[0],r[1],r[2],r[3]):t.call(n,r[0],r[1],r[2],r[3])}return t.apply(n,r)}},function(i,e,t){var r=t(91),n=t(195).set,s=r.MutationObserver||r.WebKitMutationObserver,c=r.process,l=r.Promise,f=t(86)(c)=="process";i.exports=function(){var u,v,h,y=function(){var P,w;for(f&&(P=c.domain)&&P.exit();u;){w=u.fn,u=u.next;try{w()}catch(d){throw u?h():v=void 0,d}}v=void 0,P&&P.enter()};if(f)h=function(){c.nextTick(y)};else if(s&&!(r.navigator&&r.navigator.standalone)){var T=!0,O=document.createTextNode("");new s(y).observe(O,{characterData:!0}),h=function(){O.data=T=!T}}else if(l&&l.resolve){var I=l.resolve(void 0);h=function(){I.then(y)}}else h=function(){n.call(r,y)};return function(P){var w={fn:P,next:void 0};v&&(v.next=w),u||(u=w,h()),v=w}}},function(i,e,t){var r=t(94);function n(s){var c,l;this.promise=new s(function(f,u){if(c!==void 0||l!==void 0)throw TypeError("Bad Promise constructor");c=f,l=u}),this.resolve=r(c),this.reject=r(l)}i.exports.f=function(s){return new n(s)}},function(i,e){i.exports=function(t){try{return{e:!1,v:t()}}catch(r){return{e:!0,v:r}}}},function(i,e,t){var r=t(91),n=r.navigator;i.exports=n&&n.userAgent||""},function(i,e,t){var r=t(97),n=t(98),s=t(198);i.exports=function(c,l){if(r(c),n(l)&&l.constructor===c)return l;var f=s.f(c),u=f.resolve;return u(l),f.promise}},function(i,e,t){var r=t(90),n=t(92),s=t(91),c=t(194),l=t(201);r(r.P+r.R,"Promise",{finally:function(f){var u=c(this,n.Promise||s.Promise),v=typeof f=="function";return this.then(v?function(h){return l(u,f()).then(function(){return h})}:f,v?function(h){return l(u,f()).then(function(){throw h})}:f)}})},function(i,e,t){var r=t(90),n=t(198),s=t(199);r(r.S,"Promise",{try:function(c){var l=n.f(this),f=s(c);return(f.e?l.reject:l.resolve)(f.v),l.promise}})},function(i,e,t){i.exports={default:t(205),__esModule:!0}},function(i,e,t){t(206),i.exports=t(92).Object.keys},function(i,e,t){var r=t(124),n=t(110);t(207)("keys",function(){return function(c){return n(r(c))}})},function(i,e,t){var r=t(90),n=t(92),s=t(101);i.exports=function(c,l){var f=(n.Object||{})[c]||Object[c],u={};u[c]=l(f),r(r.S+r.F*s(function(){f(1)}),"Object",u)}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(76),n=O(r),s=t(209),c=O(s),l=t(164),f=O(l),u=t(191),v=O(u);e.defer=I,e.periodicity=P,e.calculateFramesOffset=w,e.getProgress=d,e.getCurrentFrame=p;var h=t(188),y=t(187),T=O(y);function O(S){return S&&S.__esModule?S:{default:S}}function I(){var S={};return S.promise=new v.default(function(E,R){S.resolve=E,S.reject=R}),S}function P(S,E){var R=Math.floor(S/E),D=S-R*E;return D===0&&R>0&&(D=E,R--),[R,D]}function w(S){S=S.slice(0);var E=S[0],R=S[S.length-1];R.offset=R.offset||1,E.offset=E.offset||0;for(var D=0,U=-1,M=0;M<S.length;M++){var W=S[M];if(W.offset!=null){var $=M-U;if($>1)for(var B=(W.offset-D)/$,N=0;N<$-1;N++)S[U+N+1].offset=D+B*(N+1);D=W.offset,U=M}if(W.easing!=null&&(W.easing=(0,h.parseEasing)(W.easing)),M>0){var z=S[M].easing!=null;S[M]=(0,f.default)({},S[M-1],S[M]),z||delete S[M].easing}}return S}function d(S,E,R){var D=S.currentTime,U=E.direction,M=E.duration,W=!1;if(U==="reverse")R=1-R,W=!0;else if(U==="alternate"||U==="alternate-reverse"){var $=Math.floor(D/M);R===1&&$--,$%2^U==="alternate-reverse"&&(R=1-R,W=!0)}return{p:R,inverted:W}}function m(S,E,R,D){var U={};return(0,c.default)(E).forEach(function(M){var W=(0,n.default)(M,2),$=W[0],B=W[1];if($!=="offset"&&$!=="easing"){var N=R[$]||R.default,z=N(S[$],B,D,S.offset,E.offset);z!=null&&(U[$]=z)}}),U}function p(S,E,R,D){var U=S.easing,M=S.effect;M||(R=(0,f.default)({},T.default,R));var W={};D=U(D,E);for(var $=1;$<E.length;$++){var B=E[$],N=B.offset;if(N>=D||$===E.length-1){var z=E[$-1],J=z.offset,et=z.easing,at=D;if(et){var ct=N-J;at=et((D-J)/ct)*ct+J}M?W=M(z,B,at,J,N):W=m(z,B,R,at);break}}return W}},function(i,e,t){i.exports={default:t(210),__esModule:!0}},function(i,e,t){t(211),i.exports=t(92).Object.entries},function(i,e,t){var r=t(90),n=t(212)(!0);r(r.S,"Object",{entries:function(c){return n(c)}})},function(i,e,t){var r=t(100),n=t(110),s=t(84),c=t(169).f;i.exports=function(l){return function(f){for(var u=s(f),v=n(u),h=v.length,y=0,T=[],O;h>y;)O=v[y++],(!r||c.call(u,O))&&T.push(l?[O,u[O]]:u[O]);return T}}},function(i,e,t){t.r(e),t(1).glMatrix.setMatrixArrayType(Array);const r=new Map;function n(c,l={},f=[]){c=c.toLowerCase();const u=r.get(c);if(!u)throw new TypeError(`Invalid node: ${c}`);const v=new u(l);return f.forEach(h=>{v.appendChild(h)}),v}const s={registerNode(c,l,f=100){if(l=l.toLowerCase(),r.has(l))throw new TypeError(`Cannot registerNode, ${l} has been taken.`);r.set(l,c),Object.defineProperties(c.prototype,{nodeType:{value:f},tagName:{value:l.toUpperCase()},nodeName:{value:l},ownerDocument:{value:s},namespaceURI:{value:`http://spritejs.com/${l}`}})},createElement:n,createElementNS(c,l){return n(l)},isSpriteNode(c){return r.has(c.toLowerCase())}};e.default=s},function(i,e,t){t.r(e),t.d(e,"default",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);const r=Symbol("type"),n=Symbol("bubbles"),s=Symbol("originalEvent"),c=Symbol("detail");class l{constructor(u,{bubbles:v=null}={}){if(typeof u=="string"?(this[r]=u,this[n]=!!v):(this[r]=u.type,this[s]=u,this[n]=v!=null?!!v:!!u.bubbles,u.detail&&(this[c]=u.detail)),!this[r])throw new TypeError("Invalid event type.");this.cancelBubble=!1}setOriginalEvent(u){this[s]=u}get originalEvent(){return this[s]}get type(){return this[r]}get bubbles(){return this[n]}get detail(){return this[c]}stopPropagation(){this.cancelBubble=!0}}},function(i,e,t){t.r(e),t.d(e,"parseFilterString",function(){return n}),t.d(e,"applyFilters",function(){return s});var r=t(72);t(1).glMatrix.setMatrixArrayType(Array);function n(c){if(c=c.trim(),!c||c==="none")return null;const l=/^(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+$/i,f=c.match(/(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+?/ig),u=[];return f&&f.forEach(v=>{const h=v.match(l);if(!h)throw new TypeError("Invalid fitler string.");let[,y,T]=h;y=y.toLowerCase(),T=T.trim().match(/([^( )]+|([^( )]+\(.*\)))(?=\s|$)/g).map((O,I)=>{let P;return y==="url"||y==="drop-shadow"&&I===3?P=O:P=Object(r.toNumber)(O),/%$/.test(O)&&(P/=100),P}),u.push({type:y,args:T})}),u}function s(c,l){c.clearFilter(),l&&l.forEach(({type:f,args:u})=>{let v=f;v==="drop-shadow"?v="dropShadow":v==="hue-rotate"&&(v="hueRotate"),c[v](...u)})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n,s){if(!s)return;const c=n.getListeners("beforerender"),l=n.getListeners("afterrender");c.length&&!s.beforeRender?s.beforeRender=f=>{n.dispatchEvent({type:"beforerender",detail:{context:f}})}:c.length||(s.beforeRender=null),l.length&&!s.afterRender?s.afterRender=f=>{n.dispatchEvent({type:"afterrender",detail:{context:f}})}:l.length||(s.afterRender=null)}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(12),n=t(218),s=t(70),c=t(213);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol("amount"),f=Symbol("meshCloud");class u extends s.default{constructor(h,y=1){super(),this.meshNode=h,h.connect(this),this[l]=y,this[f]=null}get meshCloud(){const h=this.meshNode,y=this[l];return!this[f]&&h.mesh&&(this[f]=new r.MeshCloud(h.mesh,y)),this[f]}get isVisible(){return!!this.meshNode&&this.meshNode.isVisible}get amount(){return this[l]}set amount(h){this[l]=h,this[f]&&(this[f].amount=h)}brightness(h,y){this.meshCloud&&(this.meshCloud.brightness(h,y),this.forceUpdate())}contrast(h,y){this.meshCloud&&(this.meshCloud.contrast(h,y),this.forceUpdate())}delete(h){this.meshCloud&&(this.meshCloud.delete(h),this[l]--,this.forceUpdate())}draw(h=[]){if(super.draw(h),this.meshCloud){if(this.program){this.meshCloud.setProgram(this.program);const y=this.shaderAttrs;y&&Object.entries(y).forEach(([O,I])=>{this.meshCloud.mesh.setAttribute(O,I)});const T=this.uniforms;if(this.uniforms){const O={};Object.entries(T).forEach(([I,P])=>{typeof P=="function"&&(P=P(this,I)),O[I]=P}),this.meshCloud.mesh.setUniforms(O)}}this.meshNode.textureImage&&Object(n.drawTexture)(this.meshNode,this.meshNode.mesh),h.push(this.meshCloud)}return h}getTransform(h){if(this.meshCloud)return this.meshCloud.getTransform(h)}grayscale(h,y){this.meshCloud&&(this.meshCloud.grayscale(h,y),this.forceUpdate())}hueRotate(h,y){this.meshCloud&&(this.meshCloud.hueRotate(h,y),this.forceUpdate())}invert(h,y){this.meshCloud&&(this.meshCloud.invert(h,y),this.forceUpdate())}isPointCollision(h,y){if(!this.meshCloud)return!1;const T=this.attributes.pointerEvents;if(T==="none"||T!=="all"&&!this.isVisible)return!1;let O="both";T==="visibleFill"&&(O="fill"),T==="visibleStroke"&&(O="stroke");for(let I=0;I<this[l];I++)if(!this.meshCloud.isPointCollision(I,[h,y],O))return!1;return!0}setOpacity(h,y){this.meshCloud&&(this.meshCloud.opacity(h,y),this.forceUpdate())}rotate(h,y,[T,O]=[0,0]){const I=Math.PI*y/180;if(this.meshCloud){const{x:P,y:w}=this.meshNode.attributes;this.meshCloud.rotate(h,I,[T+P,O+w]),this.forceUpdate()}}saturate(h,y){this.meshCloud&&(this.meshCloud.saturate(h,y),this.forceUpdate())}scale(h,[y,T=y],[O,I]=[0,0]){if(this.meshCloud){const{x:P,y:w}=this.meshNode.attributes,d=1e-5;Math.abs(y)<d&&(y=1/y>0?d:-d),Math.abs(T)<d&&(T=1/T>0?d:-d),this.meshCloud.scale(h,[y,T],[O+P,I+w]),this.forceUpdate()}}setColorTransform(h,y){this.meshCloud&&(this.meshCloud.setColorTransform(h,y),this.forceUpdate())}setFillColor(h,y){this.meshCloud&&(Array.isArray(y)&&(y=[...y],y[0]/=255,y[1]/=255,y[2]/=255),this.meshCloud.setFillColor(h,y),this.forceUpdate())}sepia(h,y){this.meshCloud&&(this.meshCloud.sepia(h,y),this.forceUpdate())}setResolution({width:h,height:y}){super.setResolution({width:h,height:y}),this.meshNode.setResolution({width:h,height:y})}setStrokeColor(h,y){this.meshCloud&&(Array.isArray(y)&&(y=[...y],y[0]/=255,y[1]/=255,y[2]/=255),this.meshCloud.setStrokeColor(h,y),this.forceUpdate())}setTransform(h,y){this.meshCloud&&(this.meshCloud.setTransform(h,y),this.forceUpdate())}skew(h,[y,T=y],[O,I]=[0,0]){if(this.meshCloud){const{x:P,y:w}=this.meshNode.attributes;this.meshCloud.skew(h,[y,T],[O+P,I+w]),this.forceUpdate()}}transform(h,y){this.meshCloud&&(this.meshCloud.transform(h,y),this.forceUpdate())}transformColor(h,y){this.meshCloud&&(this.meshCloud.transformColor(h,y),this.forceUpdate())}translate(h,[y,T]){this.meshCloud&&(this.meshCloud.translate(h,[y,T]),this.forceUpdate())}updateMesh(){this[f]&&(this[f].mesh=this.meshNode.mesh,this.forceUpdate())}}c.default.registerNode(u,"cloud")},function(i,e,t){t.r(e),t.d(e,"loadTexture",function(){return c}),t.d(e,"applyTexture",function(){return l}),t.d(e,"createTexture",function(){return u}),t.d(e,"deleteTexture",function(){return v}),t.d(e,"drawTexture",function(){return y}),t.d(e,"loadFrames",function(){return T});var r=t(12),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s={};function c(O,I){if(s[O])return s[O];const P=r.ENV.loadImage(O,{alias:I,useImageBitmap:!1});return P??O}async function l(O,I,P){let w=I;if(typeof I=="string"&&(w=c(I)),w&&typeof w.then=="function"&&(w=await w),I===O.attributes.texture){w&&w.image&&(w.sourceRect&&(O.attributes.sourceRect=w.sourceRect),O.textureImageRotated=!!w.rotated,w=w.image);const{width:d,height:m,textureRect:p}=O.attributes,S=O.textureImage;O.textureImage=w,P&&S!==w&&!p&&(d==null||m==null)&&O.updateContours(),O.forceUpdate()}return w}const f=Symbol("textureMap");function u(O,I){if(I[f]=I[f]||new Map,I[f].has(O))return I[f].get(O);const P=I.createTexture(O);return!/^blob:/.test(O.src)&&typeof O.getContext!="function"&&I[f].set(O,P),P}function v(O,I){if(I[f]&&I[f].has(O)){const P=I[f].get(O);return I.deleteTexture(P),I[f].delete(O),!0}return!1}const h=Symbol("textureContext");function y(O,I){const P=O.textureImage instanceof String?String(O.textureImage):O.textureImage,w=O.textureImageRotated,d=I.texture,m=O.renderer;if(P){const p=O.originalContentRect;let S=O.attributes.textureRect;const E=O.attributes.textureRepeat,R=O.attributes.sourceRect;if(!d||O[h]&&O[h]!==m||d.image!==P||d.options.repeat!==E||!Object(n.compareValue)(d.options.rect,S)||!Object(n.compareValue)(d.options.srcRect,R)){const D=u(P,m);S?(S[0]+=p[0],S[1]+=p[1]):S=p;let U=null;d&&!m[f].has(d.image)&&(!d.options||!d.options.hidden)&&(U=I.uniforms.u_texSampler),I.setTexture(D,{rect:S,repeat:E,srcRect:R,rotated:w}),U&&U.delete&&U.delete(),O[h]=m}}else if(d){let p=null;!m[f].has(d.image)&&(!d.options||!d.options.hidden)&&(p=I.uniforms.u_texSampler),I.setTexture(null),p&&p.delete&&p.delete()}}async function T(O,I){typeof I=="string"&&(I=await(await fetch(I,{method:"GET",mode:"cors",cache:"default"})).json());const P=await c(O),w=I.frames;return Object.entries(w).forEach(([d,m])=>{const{x:p,y:S,w:E,h:R}=m.frame;let D=[p,S,E,R];const U=m.rotated;U&&(D=[D[0],D[1],D[3],D[2]]),s[d]={image:P,sourceRect:D,rotated:U}}),P}},function(i,e,t){t.r(e),t.d(e,"default",function(){return T});var r=t(1),n=t(12),s=t(70),c=t(220),l=t(221),f=t(222),u=t(213),v=t(223);t(1).glMatrix.setMatrixArrayType(Array);function h(O,I,P){return I in O?Object.defineProperty(O,I,{value:P,enumerable:!0,configurable:!0,writable:!0}):O[I]=P,O}const y=Symbol("mesh");class T extends s.default{constructor(I={}){super(I)}get borderSize(){const{paddingTop:I,paddingRight:P,paddingBottom:w,paddingLeft:d,borderWidth:m}=this.attributes,[p,S]=this.contentSize;return[d+p+P+m,I+S+w+m]}get clientSize(){const{paddingTop:I,paddingRight:P,paddingBottom:w,paddingLeft:d}=this.attributes,[m,p]=this.contentSize;return[d+m+P,I+p+w]}get contentSize(){let{width:I,height:P,boxSizing:w,paddingTop:d,paddingRight:m,paddingBottom:p,paddingLeft:S}=this.attributes;if(I=I||0,P=P||0,w==="border-box"){const E=2*this.attributes.borderWidth;I-=E+m+S,P-=E+d+p,I=Math.max(0,I),P=Math.max(0,P)}return[I,P]}get hasBorder(){return this.attributes.borderWidth>0}get isVisible(){const[I,P]=this.borderSize;return I>0&&P>0}get mesh(){if(this.attributes.display==="none")return null;const I=this.clientBox;if(I){let P=this[y];if(P)P.box!==I&&(P.contours=I.contours,P.box=I);else{P=new n.Mesh2D(I),P.box=I;const d=this.attributes.bgcolor;if(Object(l.setFillColor)(P,{color:d}),this.hasBorder){const{borderColor:p,borderWidth:S,borderDash:E,borderDashOffset:R}=this.attributes;Object(l.setStrokeColor)(P,{color:p,lineWidth:S,lineDash:E,lineDashOffset:R})}this[y]=P;const m=this.attributes.clipPath;m&&this[y].setClipPath(m)}const w=this.opacity;return P.getOpacity()!==w&&P.setOpacity(w),P.setTransform(...this.renderMatrix),P}return null}get offsetSize(){const{paddingTop:I,paddingRight:P,paddingBottom:w,paddingLeft:d,borderWidth:m}=this.attributes,[p,S]=this.contentSize,E=2*m;return[d+p+P+E,I+S+w+E]}get originalClientRect(){if(this.mesh){const I=this.mesh.boundingBox;return[I[0][0],I[0][1],I[1][0]-I[0][0],I[1][1]-I[0][1]]}return[0,0,0,0]}get originalContentRect(){const[I,P,w,d]=this.originalClientRect,m=this.attributes.padding;return[I+m[0],P+m[1],w-m[0]-m[2],d-m[1]-m[3]]}getBoundingClientRect(){let I=this.renderMatrix;this.layer&&this.layer.layerTransformInvert&&(I=r.mat2d.multiply(Array.of(0,0,0,0,0,0),this.layer.transformMatrix,I));let P=null;if(this.mesh){P=[...this.mesh.boundingBox];const w=this.attributes.borderWidth;w&&(P[0]=[P[0][0]-w,P[0][1]-w],P[1]=[P[1][0]+w,P[1][1]+w])}return Object(v.default)(P,I)}onPropertyChange(I,P,w){if(super.onPropertyChange(I,P,w),(I==="anchorX"||I==="anchorY"||I==="boxSizing"||I==="width"||I==="height"||I==="borderWidth"||I==="paddingLeft"||I==="paddingRight"||I==="paddingTop"||I==="paddingBottom"||/^border(TopLeft|TopRight|BottomRight|BottomLeft)Radius$/.test(I))&&this.updateContours(),this[y]&&I==="clipPath"&&this[y].setClipPath(P),this[y]&&I==="bgcolor"&&Object(l.setFillColor)(this[y],{color:P}),this[y]&&(I==="borderColor"||I==="borderWidth"||I==="borderDash"||I==="borderDashOffset")){const{borderColor:d,borderWidth:m,borderDash:p,borderDashOffset:S}=this.attributes;Object(l.setStrokeColor)(this[y],{color:d,lineWidth:m,lineDash:m?p:0,lineDashOffset:S})}}updateContours(){const{anchorX:I,anchorY:P,borderWidth:w,borderRadius:d}=this.attributes,[m,p]=this.borderSize,S=this.offsetSize,E=.5*w,R=-I*S[0]+E,D=-P*S[1]+E;this.clientBox=new n.Figure2D,Object(f.createRadiusBox)(this.clientBox,[R,D,m,p],d)}}h(T,"Attr",c.default),u.default.registerNode(T,"block")},function(i,e,t){t.r(e),t.d(e,"default",function(){return v});var r=t(71),n=t(72),s=t(221);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_setAttributeDefault"),u=Symbol.for("spritejs_declareAlias");class v extends r.default{constructor(y){super(y),this[f]({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[u]("anchor","size","border","borderRadius","padding")}get anchorX(){return this[l]("anchorX")}set anchorX(y){this[c]("anchorX",Object(n.toNumber)(y))}get anchorY(){return this[l]("anchorY")}set anchorY(y){this[c]("anchorY",Object(n.toNumber)(y))}get anchor(){return[this.anchorX,this.anchorY]}set anchor(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.anchorX=y[0],this.anchorY=y[1]}get width(){return this[l]("width")}set width(y){this[c]("width",Object(n.toNumber)(y))}get height(){return this[l]("height")}set height(y){this[c]("height",Object(n.toNumber)(y))}get size(){return[this.width,this.height]}set size(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.width=y[0],this.height=y[1]}get borderWidth(){return this[l]("borderWidth")}set borderWidth(y){this[c]("borderWidth",Object(n.toNumber)(y))}get borderColor(){return this[l]("borderColor")}set borderColor(y){this[c]("borderColor",Object(s.parseColor)(y))}get border(){return[this.borderWidth,this.borderColor]}set border(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y]),this.borderWidth=y[0],y[1]!=null&&(this.borderColor=y[1])}get borderDash(){return this[l]("borderDash")}set borderDash(y){y=Object(n.toArray)(y,!0),y!=null&&!Array.isArray(y)&&(y=[y]),this[c]("borderDash",y?y.map(n.toNumber):null)}get borderDashOffset(){return this[l]("borderDashOffset")}set borderDashOffset(y){this[c]("borderDashOffset",Object(n.toNumber)(y))}get borderTopLeftRadius(){return this[l]("borderTopLeftRadius")}set borderTopLeftRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderTopLeftRadius",y.map(n.toNumber))}get borderTopRightRadius(){return this[l]("borderTopRightRadius")}set borderTopRightRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderTopRightRadius",y.map(n.toNumber))}get borderBottomRightRadius(){return this[l]("borderBottomRightRadius")}set borderBottomRightRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderBottomRightRadius",y.map(n.toNumber))}get borderBottomLeftRadius(){return this[l]("borderBottomLeftRadius")}set borderBottomLeftRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderBottomLeftRadius",y.map(n.toNumber))}get borderRadius(){return[...this.borderTopLeftRadius,...this.borderTopRightRadius,...this.borderBottomRightRadius,...this.borderBottomLeftRadius]}set borderRadius(y){if(y=Object(n.toArray)(y),!Array.isArray(y))y=Array(8).fill(y);else if(y.length===2)y=[y[0],y[1],y[0],y[1],y[0],y[1],y[0],y[1]];else if(y.length===4)y=[y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3]];else if(y.length===6)y=[y[0],y[1],y[2],y[3],y[4],y[5],y[2],y[3]];else if(y.length!==8)throw new TypeError("Invalid borderRadius value.");this.borderTopLeftRadius=[y[0],y[1]],this.borderTopRightRadius=[y[2],y[3]],this.borderBottomRightRadius=[y[4],y[5]],this.borderBottomLeftRadius=[y[6],y[7]]}get bgcolor(){return this[l]("bgcolor")}set bgcolor(y){this[c]("bgcolor",Object(s.parseColor)(y))}get paddingTop(){return this[l]("paddingTop")}set paddingTop(y){this[c]("paddingTop",Object(n.toNumber)(y))}get paddingRight(){return this[l]("paddingRight")}set paddingRight(y){this[c]("paddingRight",Object(n.toNumber)(y))}get paddingBottom(){return this[l]("paddingBottom")}set paddingBottom(y){this[c]("paddingBottom",Object(n.toNumber)(y))}get paddingLeft(){return this[l]("paddingLeft")}set paddingLeft(y){this[c]("paddingLeft",Object(n.toNumber)(y))}get padding(){return[this.paddingTop,this.paddingRight,this.paddingBottom,this.paddingLeft]}set padding(y){y=Object(n.toArray)(y),Array.isArray(y)?y.length===2?y=[y[0],y[1],y[0],y[1]]:y.length===3&&(y=[y[0],y[1],y[2],y[1]]):y=[y,y,y,y],this.paddingTop=y[0],this.paddingRight=y[1],this.paddingBottom=y[2],this.paddingLeft=y[3]}get clipPath(){return this[l]("clipPath")}set clipPath(y){this[c]("clipPath",y)}get boxSizing(){return this[l]("boxSizing")}set boxSizing(y){if(y!=null&&y!=="border-box"&&y!=="content-box")throw new TypeError("Invalid boxSizing type.");this[c]("boxSizing",y)}}},function(i,e,t){t.r(e),t.d(e,"Gradient",function(){return s}),t.d(e,"isTransparent",function(){return c}),t.d(e,"parseColor",function(){return l}),t.d(e,"setFillColor",function(){return u}),t.d(e,"setStrokeColor",function(){return v}),t.d(e,"Color",function(){return h});var r=t(32),n=t.n(r);t(1).glMatrix.setMatrixArrayType(Array);class s{constructor({vector:T,colors:O}){if(!Array.isArray(T)||T.length!==4&&T.length!==6&&T.length!==3)throw new TypeError("Invalid gradient");this.vector=T,this.colors=O.map(({offset:I,color:P})=>({offset:I,color:l(P)}))}toString(){return JSON.stringify({vector:this.vector,colors:this.colors})}}function c(y){return y instanceof s?!1:y==null?!0:n()(y)[3]===0}function l(y){if(y==null||(y||(y="transparent"),y instanceof s))return y;const T=n()(y);if(!T||!T.length)throw new TypeError("Invalid color value.");return`rgba(${T.join()})`}function f(y,T,O){const I=y.boundingBox[0];if(O.vector){let{vector:P,colors:w}=O;P.length===4?(P=[P[0]+I[0],P[1]+I[1],P[2]+I[0],P[3]+I[1]],y.setLinearGradient({vector:P,colors:w,type:T})):P.length===3?(P=[P[0]+I[0],P[1]+I[1],P[2]],y.setCircularGradient({vector:P,colors:w,type:T})):(P=[P[0]+I[0],P[1]+I[1],P[2],P[3]+I[0],P[4]+I[1],P[5]],y.setRadialGradient({vector:P,colors:w,type:T}))}else y.gradient&&y.gradient[T]&&(delete y.gradient[T],delete y.uniforms.u_radialGradientVector)}function u(y,{color:T,rule:O="nonzero"}){return f(y,"fill",T),T.vector||y.setFill({color:T,rule:O}),y}function v(y,{color:T,lineWidth:O,lineCap:I,lineJoin:P,lineDash:w,lineDashOffset:d,miterLimit:m,roundSegments:p}){f(y,"stroke",T),T.vector&&(T=[0,0,0,1]),y.setStroke({color:T,thickness:O,cap:I,join:P,miterLimit:m,lineDash:w,lineDashOffset:d,roundSegments:p})}class h extends Array{constructor(T=0,O=0,I=0,P=0){return Array.isArray(T)&&([T,O,I,P]=T),typeof T=="string"&&([T,O,I,P]=n()(T),T/=255,O/=255,I/=255),super(T,O,I,P),this}get r(){return Math.round(this[0]*255)}set r(T){this[0]=T/255}get g(){return Math.round(this[1]*255)}set g(T){this[1]=T/255}get b(){return Math.round(this[2]*255)}set b(T){this[2]=T/255}get a(){return this[3]}set a(T){this[3]=T}get hex(){const T=`0${this.r.toString(16)}`.slice(-2),O=`0${this.g.toString(16)}`.slice(-2),I=`0${this.b.toString(16)}`.slice(-2);let P;return this.a<1&&(P=Math.round(this[3]*255),P=`0${P.toString(16)}`.slice(-2)),`#${T}${O}${I}${P||""}`}get rgba(){return`rgba(${this.r},${this.g},${this.b},${this.a})`}fromColor(T){return typeof T=="string"&&(T=n()(T),T[0]/=255,T[1]/=255,T[2]/=255),this[0]=T[0],this[1]=T[1],this[2]=T[2],this[3]=T[3],this}}},function(i,e,t){t.r(e),t.d(e,"createRadiusBox",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function r(s,c,l,f,u,v="leftTop"){const h=.5522848,y=f/2*h,T=u/2*h,O=c+f,I=l+u,P=c+f/2,w=l+u/2;v==="leftTop"?(s.moveTo(c,w),s.bezierCurveTo(c,w-T,P-y,l,P,l)):v==="rightTop"?s.bezierCurveTo(P+y,l,O,w-T,O,w):v==="rightBottom"?s.bezierCurveTo(O,w+T,P+y,I,P,I):v==="leftBottom"&&s.bezierCurveTo(P-y,I,c,w+T,c,w)}function n(s,[c,l,f,u],v){if(!v||Array.isArray(v)&&v.every(h=>h===0))s.beginPath(),s.rect(c,l,f,u);else{typeof v=="number"&&(v=Array(8).fill(v));const[h,y,T,O,I,P,w,d]=v.map((m,p)=>p%2?Math.min(m,u/2):Math.min(m,f/2));s.beginPath(),s.moveTo(c,l+y),r(s,c,l,h*2,y*2,"leftTop"),s.lineTo(c+f-T,l),r(s,c+f-T*2,l,T*2,O*2,"rightTop"),s.lineTo(c+f,l+u-P),r(s,c+f-I*2,l+u-P*2,I*2,P*2,"rightBottom"),s.lineTo(c+w,l+u),r(s,c,l+u-d*2,w*2,d*2,"leftBottom"),s.closePath()}return s}},function(i,e,t){t.r(e),t(1).glMatrix.setMatrixArrayType(Array),e.default=function(r,n){if(!r)return{x:0,y:0,width:0,height:0,left:0,top:0,right:0,bottom:0};const[[s,c],[l,f]]=r,u=s*n[0]+c*n[2]+n[4],v=s*n[1]+c*n[3]+n[5],h=l*n[0]+c*n[2]+n[4],y=l*n[1]+c*n[3]+n[5],T=l*n[0]+f*n[2]+n[4],O=l*n[1]+f*n[3]+n[5],I=s*n[0]+f*n[2]+n[4],P=s*n[1]+f*n[3]+n[5],w=Math.min(u,h,T,I),d=Math.min(v,y,O,P),m=Math.max(u,h,T,I),p=Math.max(v,y,O,P);return{x:w,y:d,width:m-w,height:p-d,left:w,top:d,right:m,bottom:p}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(218),n=t(219),s=t(225),c=t(213);t(1).glMatrix.setMatrixArrayType(Array);function l(v,h,y){return h in v?Object.defineProperty(v,h,{value:y,enumerable:!0,configurable:!0,writable:!0}):v[h]=y,v}const f=Symbol("textureTask");class u extends n.default{constructor(h={}){typeof h=="string"&&(h={texture:h}),super(h)}get contentSize(){let[h,y]=super.contentSize;const{width:T,height:O}=this.attributes;if(T==null||O==null){const I=this.textureImage,P=this.attributes.textureRect,w=this.attributes.sourceRect;if(P)T==null&&(h=P[0]+P[2]),O==null&&(y=P[1]+P[3]);else if(w){const d=this.layer?this.layer.displayRatio:1;T==null&&(h=w[2]/d),O==null&&(y=w[3]/d)}else if(I){const d=this.layer?this.layer.displayRatio:1;T==null&&(h=I.width/d),O==null&&(y=I.height/d)}}return[h,y]}get textureImageReady(){return this[f]||Promise.resolve()}draw(h=[]){super.draw(h);const y=this.mesh;return y&&Object(r.drawTexture)(this,y),h}onPropertyChange(h,y,T){if(super.onPropertyChange(h,y,T),h==="texture"&&(this[f]=Object(r.applyTexture)(this,y,!0)),h==="textureRect"){const{width:O,height:I}=this.attributes;(O==null||I==null)&&this.updateContours()}}}l(u,"Attr",s.default),c.default.registerNode(u,"sprite")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(220);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_getAttribute");class l extends r.default{constructor(u){super(u),this[n]({texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0})}get texture(){return this[c]("texture")}set texture(u){this[s]("texture",u)}get textureRect(){return this[c]("textureRect")}set textureRect(u){this[s]("textureRect",u)}get sourceRect(){return this[c]("sourceRect")}set sourceRect(u){this[s]("sourceRect",u)}get textureRepeat(){return this[c]("textureRepeat")}set textureRepeat(u){this[s]("textureRepeat",!!u)}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return O});var r=t(12),n=t(227),s=t.n(n),c=t(70),l=t(228),f=t(221),u=t(218),v=t(213),h=t(223);t(1).glMatrix.setMatrixArrayType(Array);function y(I,P,w){return P in I?Object.defineProperty(I,P,{value:w,enumerable:!0,configurable:!0,writable:!0}):I[P]=w,I}const T=Symbol("mesh");class O extends c.default{constructor(P={}){typeof P=="string"&&(P={d:P}),super(P),this.effects={d(w,d,m,p,S){const E=(m-p)/(S-p);if(E<=0)return w;if(E>=1)return d;const R=s.a._preprocessing(s.a.path2shapes(w),s.a.path2shapes(d)),D=s.a._lerp(...R,E)[0];return D.reduce((M,W)=>`${M}${W.slice(2).join(" ")} `,`M${D[0][0]} ${D[0][1]}C`).trim()}}}get isVisible(){return!!this.d}get mesh(){if(this.attributes.display==="none")return null;const P=this.path;if(P){let w=this[T];if(w)w.path!==P&&(w.contours=P.contours,w.path=P);else{w=new r.Mesh2D(this.path),w.path=P;const m=this.attributes.fillColor,p=this.attributes.fillRule;m&&Object(f.setFillColor)(w,{color:m,rule:p});const S=this.attributes.lineWidth,E=this.attributes.strokeColor;if(E&&S>0){const{lineCap:D,lineJoin:U,miterLimit:M,lineDash:W,lineDashOffset:$,roundSegments:B}=this.attributes;Object(f.setStrokeColor)(w,{color:E,lineWidth:S,lineCap:D,lineJoin:U,miterLimit:M,lineDash:W,lineDashOffset:$,roundSegments:B})}this[T]=w;const R=this.attributes.clipPath;R&&this[T].setClipPath(R)}const d=this.opacity;return w.getOpacity()!==d&&w.setOpacity(d),w.setTransform(...this.renderMatrix),w}return null}get originalContentRect(){if(this.path){const P=this.path.boundingBox;return[P[0][0],P[0][1],P[1][0]-P[0][0],P[1][1]-P[0][1]]}return[0,0,0,0]}get originalClientRect(){if(this.mesh){const P=this.mesh.boundingBox;return[P[0][0],P[0][1],P[1][0]-P[0][0],P[1][1]-P[0][1]]}return[0,0,0,0]}get originalClientCenter(){return this.mesh?this.mesh.boundingCenter:[0,0]}set d(P){this.attributes.d=P}get d(){return this.attributes.d}draw(P=[]){super.draw(P);const w=this.mesh;return w&&Object(u.drawTexture)(this,w),P}getBoundingClientRect(){let P=null;return this.mesh&&(P=this.mesh.boundingBox),Object(h.default)(P,this.renderMatrix)}getPathLength(){return this.mesh?this.mesh.getTotalLength():0}getPointAtLength(P){if(this.mesh){const w=this.mesh.getPointAtLength(P);if(w)return[w.x,w.y]}return[0,0]}onPropertyChange(P,w,d){if(super.onPropertyChange(P,w,d),(P==="d"||P==="normalize")&&this.updateContours(),this[T]&&(P==="fillColor"||P==="fillRule")){const{fillColor:m,fillRule:p}=this.attributes;Object(f.setFillColor)(this[T],{color:m,rule:p})}if(this[T]&&(P==="strokeColor"||P==="lineWidth"||P==="lineCap"||P==="lineJoin"||P==="lineDash"||P==="lineDashOffset"||P==="roundSegments")){const{strokeColor:m,lineWidth:p}=this.attributes;if(m&&p>0){const{lineCap:S,lineJoin:E,lineDash:R,lineDashOffset:D,miterLimit:U,roundSegments:M}=this.attributes;Object(f.setStrokeColor)(this[T],{color:m,lineCap:S,lineJoin:E,lineWidth:p,lineDash:R,lineDashOffset:D,miterLimit:U,roundSegments:M})}}this[T]&&P==="clipPath"&&this[T].setClipPath(w),P==="texture"&&Object(u.applyTexture)(this,w)}updateContours(){this.path=new r.Figure2D,this.path.addPath(this.attributes.d),this.attributes.normalize&&this.path.normalize(...this.path.boundingCenter)}}y(O,"Attr",l.default),v.default.registerNode(O,"path")},function(i,e,t){(function(r,n){i.exports=n()})(this,function(){var r=function(){function W($,B){var N=[],z=!0,J=!1,et=void 0;try{for(var at=$[Symbol.iterator](),ct;!(z=(ct=at.next()).done)&&(N.push(ct.value),!(B&&N.length===B));z=!0);}catch(V){J=!0,et=V}finally{try{!z&&at.return&&at.return()}finally{if(J)throw et}}return N}return function($,B){if(Array.isArray($))return $;if(Symbol.iterator in Object($))return W($,B);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=Math.PI*2,s=function($,B,N,z,J,et,at){var ct=$.x,V=$.y;ct*=B,V*=N;var Q=z*ct-J*V,ft=J*ct+z*V;return{x:Q+et,y:ft+at}},c=function($,B){var N=1.3333333333333333*Math.tan(B/4),z=Math.cos($),J=Math.sin($),et=Math.cos($+B),at=Math.sin($+B);return[{x:z-J*N,y:J+z*N},{x:et+at*N,y:at-et*N},{x:et,y:at}]},l=function($,B,N,z){var J=$*z-B*N<0?-1:1,et=Math.sqrt($*$+B*B),at=Math.sqrt($*$+B*B),ct=$*N+B*z,V=ct/(et*at);return V>1&&(V=1),V<-1&&(V=-1),J*Math.acos(V)},f=function($,B,N,z,J,et,at,ct,V,Q,ft,mt){var yt=Math.pow(J,2),At=Math.pow(et,2),ht=Math.pow(ft,2),Nt=Math.pow(mt,2),Bt=yt*At-yt*Nt-At*ht;Bt<0&&(Bt=0),Bt/=yt*Nt+At*ht,Bt=Math.sqrt(Bt)*(at===ct?-1:1);var G=Bt*J/et*mt,k=Bt*-et/J*ft,rt=Q*G-V*k+($+N)/2,nt=V*G+Q*k+(B+z)/2,Y=(ft-G)/J,Z=(mt-k)/et,C=(-ft-G)/J,L=(-mt-k)/et,X=l(1,0,Y,Z),K=l(Y,Z,C,L);return ct===0&&K>0&&(K-=n),ct===1&&K<0&&(K+=n),[rt,nt,X,K]},u=function($){var B=$.px,N=$.py,z=$.cx,J=$.cy,et=$.rx,at=$.ry,ct=$.xAxisRotation,V=ct===void 0?0:ct,Q=$.largeArcFlag,ft=Q===void 0?0:Q,mt=$.sweepFlag,yt=mt===void 0?0:mt,At=[];if(et===0||at===0)return[];var ht=Math.sin(V*n/360),Nt=Math.cos(V*n/360),Bt=Nt*(B-z)/2+ht*(N-J)/2,G=-ht*(B-z)/2+Nt*(N-J)/2;if(Bt===0&&G===0)return[];et=Math.abs(et),at=Math.abs(at);var k=Math.pow(Bt,2)/Math.pow(et,2)+Math.pow(G,2)/Math.pow(at,2);k>1&&(et*=Math.sqrt(k),at*=Math.sqrt(k));var rt=f(B,N,z,J,et,at,ft,yt,ht,Nt,Bt,G),nt=r(rt,4),Y=nt[0],Z=nt[1],C=nt[2],L=nt[3],X=Math.max(Math.ceil(Math.abs(L)/(n/4)),1);L/=X;for(var K=0;K<X;K++)At.push(c(C,L)),C+=L;return At.map(function(q){var it=s(q[0],et,at,Nt,ht,Y,Z),ut=it.x,St=it.y,Ct=s(q[1],et,at,Nt,ht,Y,Z),Et=Ct.x,bt=Ct.y,wt=s(q[2],et,at,Nt,ht,Y,Z),Ot=wt.x,Lt=wt.y;return{x1:ut,y1:St,x2:Et,y2:bt,x:Ot,y:Lt}})},v={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},h=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function y(W){var $=[];return W.replace(h,function(B,N,z){var J=N.toLowerCase();for(z=O(z),J=="m"&&z.length>2&&($.push([N].concat(z.splice(0,2))),J="l",N=N=="m"?"l":"L");;){if(z.length==v[J])return z.unshift(N),$.push(z);if(z.length<v[J])throw new Error("malformed path data");$.push([N].concat(z.splice(0,v[J])))}}),$}var T=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function O(W){var $=W.match(T);return $?$.map(Number):[]}function I(W){var $=W[0][0],B=W[0][1],N=$,z=B;return W.forEach(function(J){var et=J[0],at=J[2],ct=J[4],V=J[6],Q=J[1],ft=J[3],mt=J[5],yt=J[7];$=Math.min($,et,at,ct,V),B=Math.min(B,Q,ft,mt,yt),N=Math.max(N,et,at,ct,V),z=Math.max(z,Q,ft,mt,yt)}),[$,B,N,z]}function P(W,$){return Math.sqrt(Math.pow(W[0]-$[0],2)+Math.pow(W[1]-$[1],2))+Math.sqrt(Math.pow(W[2]-$[2],2)+Math.pow(W[3]-$[3],2))}function w(W,$){var B=W[0],N=W[2],z=W[4],J=W[6],et=W[1],at=W[3],ct=W[5],V=W[7],Q=$[0],ft=$[2],mt=$[4],yt=$[6],At=$[1],ht=$[3],Nt=$[5],Bt=$[7];return Math.sqrt(Math.pow(Q-B,2)+Math.pow(At-et,2))+Math.sqrt(Math.pow(ft-N,2)+Math.pow(ht-at,2))+Math.sqrt(Math.pow(mt-z,2)+Math.pow(Nt-ct,2))+Math.sqrt(Math.pow(yt-J,2)+Math.pow(Bt-V,2))}function d(W,$){var B=p(W.length),N=[];B.forEach(function(J){var et=0,at=0;J.forEach(function(ct){et+=w(W[ct],$[at++])}),N.push({index:J,distance:et})}),N.sort(function(J,et){return J.distance-et.distance});var z=[];return N[0].index.forEach(function(J){z.push(W[J])}),z}function m(W,$){var B=S(W.length),N=[];B.forEach(function(J){var et=0;J.forEach(function(at){et+=P(I(W[at]),I($[at]))}),N.push({index:J,distance:et})}),N.sort(function(J,et){return J.distance-et.distance});var z=[];return N[0].index.forEach(function(J){z.push(W[J])}),z}function p(W){for(var $=[],B=0;B<W;B++){for(var N=[],z=0;z<W;z++){var J=z+B;J>W-1&&(J-=W),N[J]=z}$.push(N)}return $}function S(W){for(var $=[],B=0;B<W;B++)$.push(B);return E($)}function E(W){var $=[],B=[];function N(z){var J,et;for(J=0;J<z.length;J++)et=z.splice(J,1)[0],B.push(et),z.length==0&&$.push(B.slice()),N(z),z.splice(J,0,et),B.pop();return $}return N(W)}var R={};R.parser=y,R.lerpCurve=function(W,$,B){return R.lerpPoints(W[0],W[1],$[0],$[1],B).concat(R.lerpPoints(W[2],W[3],$[2],$[3],B)).concat(R.lerpPoints(W[4],W[5],$[4],$[5],B)).concat(R.lerpPoints(W[6],W[7],$[6],$[7],B))},R.lerpPoints=function(W,$,B,N,z){return[W+(B-W)*z,$+(N-$)*z]},R.q2b=function(W,$,B,N,z,J){return[W,$,(W+2*B)/3,($+2*N)/3,(z+2*B)/3,(J+2*N)/3,z,J]},R.path2shapes=function(W){for(var $=R.parser(W),B=0,N=0,z=0,J=$.length,et=[],at=null,ct=void 0,V=void 0,Q=void 0,ft=void 0,mt=void 0,yt=void 0,At=void 0;z<J;z++){var ht=$[z],Nt=ht[0],Bt=$[z-1];switch(Nt){case"m":mt=et.length,et[mt]=[],at=et[mt],B=B+ht[1],N=N+ht[2];break;case"M":mt=et.length,et[mt]=[],at=et[mt],B=ht[1],N=ht[2];break;case"l":at.push([B,N,B,N,B,N,B+ht[1],N+ht[2]]),B+=ht[1],N+=ht[2];break;case"L":at.push([B,N,ht[1],ht[2],ht[1],ht[2],ht[1],ht[2]]),B=ht[1],N=ht[2];break;case"h":at.push([B,N,B,N,B,N,B+ht[1],N]),B+=ht[1];break;case"H":at.push([B,N,ht[1],N,ht[1],N,ht[1],N]),B=ht[1];break;case"v":at.push([B,N,B,N,B,N,B,N+ht[1]]),N+=ht[1];break;case"V":at.push([B,N,B,ht[1],B,ht[1],B,ht[1]]),N=ht[1];break;case"C":at.push([B,N,ht[1],ht[2],ht[3],ht[4],ht[5],ht[6]]),B=ht[5],N=ht[6];break;case"S":Bt[0]==="C"||Bt[0]==="c"?at.push([B,N,B+Bt[5]-Bt[3],N+Bt[6]-Bt[4],ht[1],ht[2],ht[3],ht[4]]):(Bt[0]==="S"||Bt[0]==="s")&&at.push([B,N,B+Bt[3]-Bt[1],N+Bt[4]-Bt[2],ht[1],ht[2],ht[3],ht[4]]),B=ht[3],N=ht[4];break;case"c":at.push([B,N,B+ht[1],N+ht[2],B+ht[3],N+ht[4],B+ht[5],N+ht[6]]),B=B+ht[5],N=N+ht[6];break;case"s":Bt[0]==="C"||Bt[0]==="c"?at.push([B,N,B+Bt[5]-Bt[3],N+Bt[6]-Bt[4],B+ht[1],N+ht[2],B+ht[3],N+ht[4]]):(Bt[0]==="S"||Bt[0]==="s")&&at.push([B,N,B+Bt[3]-Bt[1],N+Bt[4]-Bt[2],B+ht[1],N+ht[2],B+ht[3],N+ht[4]]),B=B+ht[3],N=N+ht[4];break;case"a":yt=u({rx:ht[1],ry:ht[2],px:B,py:N,xAxisRotation:ht[3],largeArcFlag:ht[4],sweepFlag:ht[5],cx:B+ht[6],cy:N+ht[7]}),At=yt[yt.length-1],yt.forEach(function(G,k){k===0?at.push([B,N,G.x1,G.y1,G.x2,G.y2,G.x,G.y]):at.push([yt[k-1].x,yt[k-1].y,G.x1,G.y1,G.x2,G.y2,G.x,G.y])}),B=At.x,N=At.y;break;case"A":yt=u({rx:ht[1],ry:ht[2],px:B,py:N,xAxisRotation:ht[3],largeArcFlag:ht[4],sweepFlag:ht[5],cx:ht[6],cy:ht[7]}),At=yt[yt.length-1],yt.forEach(function(G,k){k===0?at.push([B,N,G.x1,G.y1,G.x2,G.y2,G.x,G.y]):at.push([yt[k-1].x,yt[k-1].y,G.x1,G.y1,G.x2,G.y2,G.x,G.y])}),B=At.x,N=At.y;break;case"Q":at.push(R.q2b(B,N,ht[1],ht[2],ht[3],ht[4])),B=ht[3],N=ht[4];break;case"q":at.push(R.q2b(B,N,B+ht[1],N+ht[2],ht[3]+B,ht[4]+N)),B+=ht[3],N+=ht[4];break;case"T":Bt[0]==="Q"||Bt[0]==="q"?(Q=B+Bt[3]-Bt[1],ft=N+Bt[4]-Bt[2],at.push(R.q2b(B,N,Q,ft,ht[1],ht[2]))):(Bt[0]==="T"||Bt[0]==="t")&&(at.push(R.q2b(B,N,B+B-Q,N+N-ft,ht[1],ht[2])),Q=B+B-Q,ft=N+N-ft),B=ht[1],N=ht[2];break;case"t":Bt[0]==="Q"||Bt[0]==="q"?(Q=B+Bt[3]-Bt[1],ft=N+Bt[4]-Bt[2],at.push(R.q2b(B,N,Q,ft,B+ht[1],N+ht[2]))):(Bt[0]==="T"||Bt[0]==="t")&&(at.push(R.q2b(B,N,B+B-Q,N+N-ft,B+ht[1],N+ht[2])),Q=B+B-Q,ft=N+N-ft),B+=ht[1],N+=ht[2];break;case"Z":ct=at[0][0],V=at[0][1],at.push([B,N,ct,V,ct,V,ct,V]);break;case"z":ct=at[0][0],V=at[0][1],at.push([B,N,ct,V,ct,V,ct,V]);break}}return et},R._upCurves=function(W,$){for(var B=0,N=0,z=W.length;B<$;B++)W.push(W[N].slice(0)),N++,N>z-1&&(N-=z)};function D(W,$,B,N,z,J,et,at,ct){return{left:U(W,$,B,N,z,J,et,at,ct),right:U(et,at,z,J,B,N,W,$,1-ct,!0)}}function U(W,$,B,N,z,J,et,at,ct,V){var Q=(B-W)*ct+W,ft=(N-$)*ct+$,mt=(z-B)*ct+B,yt=(J-N)*ct+N,At=(et-z)*ct+z,ht=(at-J)*ct+J,Nt=(mt-Q)*ct+Q,Bt=(yt-ft)*ct+ft,G=(At-mt)*ct+mt,k=(ht-yt)*ct+yt,rt=(G-Nt)*ct+Nt,nt=(k-Bt)*ct+Bt;return V?[rt,nt,Nt,Bt,Q,ft,W,$]:[W,$,Q,ft,Nt,Bt,rt,nt]}R._splitCurves=function(W,$){for(var B=0,N=0;B<$;B++){var z=W[N],J=D(z[0],z[1],z[2],z[3],z[4],z[5],z[6],z[7],.5);W.splice(N,1),W.splice(N,0,J.left,J.right),N+=2,N>=W.length-1&&(N=0)}};function M(W,$){for(var B=function(J){var et=W[W.length-1],at=[];et.forEach(function(ct){at.push(ct.slice(0))}),W.push(at)},N=0;N<$;N++)B()}return R.lerp=function(W,$,B){return R._lerp(R.path2shapes(W),R.path2shapes($),B)},R.MIM_CURVES_COUNT=100,R._preprocessing=function(W,$){var B=W.length,N=$.length,z=JSON.parse(JSON.stringify(W)),J=JSON.parse(JSON.stringify($));return B>N?M(J,B-N):B<N&&M(z,N-B),z=m(z,J),z.forEach(function(et,at){var ct=et.length,V=J[at].length;ct>V?ct<R.MIM_CURVES_COUNT?(R._splitCurves(et,R.MIM_CURVES_COUNT-ct),R._splitCurves(J[at],R.MIM_CURVES_COUNT-V)):R._splitCurves(J[at],ct-V):ct<V&&(V<R.MIM_CURVES_COUNT?(R._splitCurves(et,R.MIM_CURVES_COUNT-ct),R._splitCurves(J[at],R.MIM_CURVES_COUNT-V)):R._splitCurves(et,V-ct))}),z.forEach(function(et,at){z[at]=d(et,J[at])}),[z,J]},R._lerp=function(W,$,B){var N=[];return W.forEach(function(z,J){var et=[];z.forEach(function(at,ct){et.push(R.lerpCurve(at,$[J][ct],B))}),N.push(et)}),N},R.animate=function(W){var $=R.path2shapes(W.from),B=R.path2shapes(W.to),N=R._preprocessing($,B),z=new Date,J=W.end||function(){},et=W.progress||function(){},at=W.begin||function(){},ct=W.easing||function(yt){return yt},V=null,Q=null,ft=W.time;at($);var mt=function yt(){var At=new Date-z;if(At>=ft){Q=B,et(Q,1),J(Q),cancelAnimationFrame(V);return}var ht=ct(At/ft);Q=R._lerp(N[0],N[1],ht),et(Q,ht),V=requestAnimationFrame(yt)};mt()},R})},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(71),n=t(221),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute");class u extends r.default{constructor(h){super(h),this[c]({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[f]("d")}set d(h){this[l]("d",h)}get normalize(){return this[f]("normalize")}set normalize(h){this[l]("normalize",!!h)}get fillColor(){return this[f]("fillColor")}set fillColor(h){this[l]("fillColor",Object(n.parseColor)(h))}get fillRule(){return this[f]("fillRule")}set fillRule(h){if(h!=null&&h!=="nonzero"&&h!=="evenodd")throw new TypeError("Invalid fill rule.");this[l]("fillRule",h)}get strokeColor(){return this[f]("strokeColor")}set strokeColor(h){this[l]("strokeColor",Object(n.parseColor)(h))}get lineWidth(){return this[f]("lineWidth")}set lineWidth(h){this[l]("lineWidth",Object(s.toNumber)(h))}get lineJoin(){return this[f]("lineJoin")}set lineJoin(h){if(h!=null&&h!=="miter"&&h!=="bevel"&&h!=="round")throw new TypeError("Invalid lineJoin type.");this[l]("lineJoin",h)}get lineCap(){return this[f]("lineCap")}set lineCap(h){if(h!=null&&h!=="butt"&&h!=="square"&&h!=="round")throw new TypeError("Invalid lineCap type.");this[l]("lineCap",h)}get lineDash(){return this[f]("lineDash")}set lineDash(h){h=Object(s.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h]),this[l]("lineDash",h?h.map(s.toNumber):null)}get lineDashOffset(){return this[f]("lineDashOffset")}set lineDashOffset(h){this[l]("lineDashOffset",Object(s.toNumber)(h))}get miterLimit(){return this[f]("miterLimit")}set miterLimit(h){this[l]("miterLimit",Object(s.toNumber)(h))}get roundSegments(){return this[f]("roundSegments")}set roundSegments(h){this[l]("roundSegments",h)}get texture(){return this[f]("texture")}set texture(h){this[l]("texture",h)}get textureRect(){return this[f]("textureRect")}set textureRect(h){this[l]("textureRect",h)}get sourceRect(){return this[f]("sourceRect")}set sourceRect(h){this[l]("sourceRect",h)}get textureRepeat(){return this[f]("textureRepeat")}set textureRepeat(h){this[l]("textureRepeat",!!h)}get clipPath(){return this[f]("clipPath")}set clipPath(h){this[l]("clipPath",h)}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(230);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{width:u,height:v}=this.attributes;return u>0&&v>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"rect")},function(i,e,t){t.r(e),t.d(e,"default",function(){return v});var r=t(228),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_declareAlias");function u(h){const{width:y,height:T}=h;return`M0 0L${y} 0L${y} ${T}L0 ${T}Z`}class v extends r.default{constructor(y){super(y),this[s]({width:0,height:0}),this[f]("size")}get d(){return this[l]("d")}set d(y){}get width(){return this[l]("width")}set width(y){if(y=Object(n.toNumber)(y),this[c]("width",y)){const T=u(this);this[c]("d",T)}}get height(){return this[l]("height")}set height(y){if(y=Object(n.toNumber)(y),this[c]("height",y)){const T=u(this);this[c]("d",T)}}get size(){return[this.width,this.height]}set size(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.width=y[0],this.height=y[1]}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(235);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{sides:u}=this.attributes;return u[0]>0&&u[1]>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"triangle")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(233);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{points:u}=this.attributes;return u.length>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"polyline")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(228),n=t(72),s=t(234);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){const{points:T,smooth:O,smoothRange:I,close:P}=y,w=[];for(let m=0;m<T.length;m+=2)w.push([T[m],T[m+1]]);let d="";return O?d=Object(s.makeSmoothCurveLine)(w,I):w.length&&(d=`M${w.map(m=>m.join(" ")).join("L")}`),d&&P&&(d+="Z"),d}class h extends r.default{constructor(T){super(T),this[c]({points:[],smooth:!1,smoothRange:[0],closeType:"none"}),this[u]("close")}get d(){return this[f]("d")}set d(T){}get close(){return this.closeType!=="none"}set close(T){T=T?"normal":"none",this.closeType=T}get closeType(){return this[f]("closeType")}set closeType(T){if(T!=null&&T!=="none"&&T!=="normal")throw new TypeError("Invalid closeType type.");if(this[l]("closeType",T)){const O=v(this);this[l]("d",O)}}get smooth(){return this[f]("smooth")}set smooth(T){if(this[l]("smooth",T)){const O=v(this);this[l]("d",O)}}get smoothRange(){return this[f]("smoothRange")}set smoothRange(T){if(T&&!Array.isArray(T)&&(T=[T]),this[l]("smoothRange",T)&&this.smooth){const O=v(this);this[l]("d",O)}}get points(){return this[f]("points")}set points(T){if(T=Object(n.toArray)(T),Array.isArray(T)&&(T=T.reduce((O,I)=>Array.isArray(I)?[...O,...I.map(P=>Object(n.toNumber)(P))]:[...O,Object(n.toNumber)(I)],[])),this[l]("points",T)){const O=v(this);this[l]("d",O)}}}},function(i,e,t){t.r(e),t.d(e,"makeSmoothCurveLine",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n,s=[0]){function c(u,v=.168,h=.168){let y,T,O,I;if((n[u].x===n[u+1].x||n[u].y===n[u+1].y)&&(v=0,h=0),u<1?(y=n[0].x+(n[1].x-n[0].x)*v,T=n[0].y+(n[1].y-n[0].y)*v):(y=n[u].x+(n[u+1].x-n[u-1].x)*v,T=n[u].y+(n[u+1].y-n[u-1].y)*v),u>n.length-3){const P=n.length-1;O=n[P].x-(n[P].x-n[P-1].x)*h,I=n[P].y-(n[P].y-n[P-1].y)*h}else O=n[u+1].x-(n[u+2].x-n[u].x)*h,I=n[u+1].y-(n[u+2].y-n[u].y)*h;return[{x:y,y:T},{x:O,y:I}]}n=n.map(([u,v])=>({x:u,y:v}));let l="",f=0;return n.forEach((u,v)=>{if(v===0)l+=`M${u.x} ${u.y}`;else{for(;v>s[f];)f++;if(f%2){const[h,y]=c(v-1);l+=`C${[h.x,h.y,y.x,y.y,u.x,u.y].join(" ")}`}else l+=`L${u.x} ${u.y}`}}),l}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const[h,y]=v.sides;let T=v.angle%360;return T<0&&(T+=360),T=Math.PI*T/180,[0,0,h,0,y*Math.cos(T),y*Math.sin(T)]}class u extends r.default{constructor(h){super(h),this[s]({sides:[0,0],angle:60,closeType:"normal"})}get points(){return super.points}set points(h){}get sides(){return this[l]("sides")}set sides(h){if(h=Object(n.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h,h]),this[c]("sides",h)){const y=f(this);super.points=y}}get angle(){return this[l]("angle")}set angle(h){if(h=Object(n.toNumber)(h),this[c]("angle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(237);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{sides:u}=this.attributes;return u[0]>0&&u[1]>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"parallel")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const[h,y]=v.sides;let T=v.angle%360;T<0&&(T+=360),T=Math.PI*T/180;const O=y*Math.cos(T),I=y*Math.sin(T);return[0,0,h,0,O+h,I,O,I]}class u extends r.default{constructor(h){super(h),this[s]({sides:[0,0],angle:90,closeType:"normal"})}get points(){return super.points}set points(h){}get sides(){return this[l]("sides")}set sides(h){if(h=Object(n.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h,h]),this[c]("sides",h)){const y=f(this);super.points=y}}get angle(){return this[l]("angle")}set angle(h){if(h=Object(n.toNumber)(h),this[c]("angle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(239);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"regular")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const{edges:h,radius:y,offsetAngle:T}=v,O=Math.PI*T/180-.5*Math.PI;if(h<3||y<=0)return[];const I=[];for(let P=0;P<h;P++){const w=P*2*Math.PI/h+O,d=y*Math.cos(w),m=y*Math.sin(w);I.push(d,m)}return I}class u extends r.default{constructor(h){super(h),this[s]({edges:3,radius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(h){}get edges(){return this[l]("edges")}set edges(h){if(h=Object(n.toNumber)(h),this[c]("edges",h)){const y=f(this);super.points=y}}get radius(){return this[l]("radius")}set radius(h){if(h=Object(n.toNumber)(h),this[c]("radius",h)){const y=f(this);super.points=y}}get offsetAngle(){return this[l]("offsetAngle")}set offsetAngle(h){if(h=Object(n.toNumber)(h),this[c]("offsetAngle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(241);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"star")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const{angles:h,innerRadius:y,outerRadius:T,offsetAngle:O}=v,I=Math.PI*O/180-.5*Math.PI;if(h<3||y<=0||T<=0)return[];const P=[];for(let w=0;w<h*2;w++){const d=w*Math.PI/h+I,m=w%2?y:T,p=m*Math.cos(d),S=m*Math.sin(d);P.push(p,S)}return P}class u extends r.default{constructor(h){super(h),this[s]({angles:5,innerRadius:0,outerRadius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(h){}get angles(){return this[l]("angles")}set angles(h){if(h=Object(n.toNumber)(h),this[c]("angles",h)){const y=f(this);super.points=y}}get innerRadius(){return this[l]("innerRadius")}set innerRadius(h){if(h=Object(n.toNumber)(h),this[c]("innerRadius",h)){const y=f(this);super.points=y}}get outerRadius(){return this[l]("outerRadius")}set outerRadius(h){if(h=Object(n.toNumber)(h),this[c]("outerRadius",h)){const y=f(this);super.points=y}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(h){h=Object(n.toArray)(h,!0),Array.isArray(h)||(h=[h,h]),this.innerRadius=h[0],this.outerRadius=h[1]}get offsetAngle(){return this[l]("offsetAngle")}set offsetAngle(h){if(h=Object(n.toNumber)(h),this[c]("offsetAngle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(243);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{radiusX:u,radiusY:v,startAngle:h,endAngle:y}=this.attributes;return u>0&&v>0&&h!==y&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"ellipse")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){const{radiusX:T,radiusY:O,startAngle:I,endAngle:P,direction:w,closeType:d}=y,m=w==="anitclockwise",p=new r.Figure2D;return d==="sector"&&p.moveTo(0,0),p.ellipse(0,0,T,O,0,Math.PI*I/180,Math.PI*P/180,m),d!=="none"&&p.closePath(),p.path.reduce((R,D)=>R+D.join(" "),"")}class h extends n.default{constructor(T){super(T),this[c]({radiusX:0,radiusY:0,startAngle:0,endAngle:360,direction:"clockwise",closeType:"none"}),this[u]("radius","angle")}get d(){return this[f]("d")}set d(T){}get radiusX(){return this[f]("radiusX")}set radiusX(T){if(T=Object(s.toNumber)(T),this[l]("radiusX",T)){const O=v(this);this[l]("d",O)}}get radiusY(){return this[f]("radiusY")}set radiusY(T){if(T=Object(s.toNumber)(T),this[l]("radiusY",T)){const O=v(this);this[l]("d",O)}}get radius(){return[this.radiusX,this.radiusY]}set radius(T){T=Object(s.toArray)(T,!0),Array.isArray(T)||(T=[T,T]),this.radiusX=T[0],this.radiusY=T[1]}get angle(){return[this.startAngle,this.endAngle]}set angle(T){T=Object(s.toArray)(T),Array.isArray(T)||(T=[T,T]),this.startAngle=T[0],this.endAngle=T[1]}get direction(){return this[f]("direction")}set direction(T){if(T!=null&&T!=="clockwise"&&T!=="anticlockwise")throw new TypeError("Invalid direction type.");this[l]("direction",T)}get startAngle(){return this[f]("startAngle")}set startAngle(T){if(T=Object(s.toNumber)(T),this[l]("startAngle",T)){const O=v(this);this[l]("d",O)}}get endAngle(){return this[f]("endAngle")}set endAngle(T){if(T=Object(s.toNumber)(T),this[l]("endAngle",T)){const O=v(this);this[l]("d",O)}}get closeType(){return this[f]("closeType")}set closeType(T){if(T!=null&&T!=="none"&&T!=="sector"&&T!=="normal")throw new TypeError("Invalid closeType type.");if(this[l]("closeType",T)){const O=v(this);this[l]("d",O)}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(242),n=t(213),s=t(245);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"arc")},function(i,e,t){t.r(e),t.d(e,"default",function(){return s});var r=t(243),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);class s extends r.default{get radius(){return super.radiusX}set radius(l){l=Object(n.toNumber)(l),super.radiusX=l,super.radiusY=l}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(247);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{innerRadius:u,outerRadius:v,startAngle:h,endAngle:y}=this.attributes;return(u>0||v>0)&&h!==y&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"ring")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){let{innerRadius:T,outerRadius:O,startAngle:I,endAngle:P}=y;const w=new r.Figure2D;if(I=Math.PI*I/180,P=Math.PI*P/180,T>O&&([T,O]=[O,T]),T<=0&&w.moveTo(0,0),w.arc(0,0,O,I,P,!1),T>0){const p=Math.PI*2;P<I&&(P=I+p+(P-I)%p),P-I>=p&&(P=I+p-1e-6),w.arc(0,0,T,P,I,!0)}return w.closePath(),w.path.reduce((p,S)=>p+S.join(" "),"")}class h extends n.default{constructor(T){super(T),this[c]({innerRadius:0,outerRadius:0,startAngle:0,endAngle:360}),this[u]("radius","angle")}get d(){return this[f]("d")}set d(T){}get innerRadius(){return this[f]("innerRadius")}set innerRadius(T){if(T=Object(s.toNumber)(T),this[l]("innerRadius",T)){const O=v(this);this[l]("d",O)}}get outerRadius(){return this[f]("outerRadius")}set outerRadius(T){if(T=Object(s.toNumber)(T),this[l]("outerRadius",T)){const O=v(this);this[l]("d",O)}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(T){T=Object(s.toArray)(T,!0),Array.isArray(T)||(T=[T,T]),this.innerRadius=T[0],this.outerRadius=T[1]}get startAngle(){return this[f]("startAngle")}set startAngle(T){if(T=Object(s.toNumber)(T),this[l]("startAngle",T)){const O=v(this);this[l]("d",O)}}get endAngle(){return this[f]("endAngle")}set endAngle(T){if(T=Object(s.toNumber)(T),this[l]("endAngle",T)){const O=v(this);this[l]("d",O)}}get angle(){return[this.startAngle,this.endAngle]}set angle(T){T=Object(s.toArray)(T),Array.isArray(T)||(T=[T,T]),this.startAngle=T[0],this.endAngle=T[1]}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return O});var r=t(12),n=t(218),s=t(219),c=t(249),l=t(213);t(1).glMatrix.setMatrixArrayType(Array);function f(I,P,w){return P in I?Object.defineProperty(I,P,{value:w,enumerable:!0,configurable:!0,writable:!0}):I[P]=w,I}const u=Symbol("textImage"),v=Symbol("textImageTask"),h=Symbol("textureContext"),y=Symbol("updateTextureRect"),T=Symbol("textCanvas");class O extends s.default{constructor(P={}){typeof P=="string"&&(P={text:P}),super(P)}get contentSize(){let[P,w]=super.contentSize;const{width:d,height:m}=this.attributes;if(d==null||m==null){const p=this[u];p&&(d==null&&(P=p.rect[2]),m==null&&(w=p.rect[3]))}return[P,w]}get text(){return this.attributes.text}set text(P){this.attributes.text=P}get textContent(){return this.attributes.text}set textContent(P){this.attributes.text=P}get textImage(){return this[u]||{}}get textImageReady(){return this[v]||Promise.resolve()}draw(P){super.draw(P);const w=this.mesh;if(w){const d=this[u];if(d){let m=w.texture;if(!m||this[h]&&this[h]!==this.renderer||d.needsUpdate?(d.needsUpdate=!1,Object(n.deleteTexture)(d.image,this.renderer),m=Object(n.createTexture)(d.image,this.renderer),this[y]=!0):m=w.uniforms.u_texSampler,this[y]){const[p,S]=d.rect.slice(2),[E,R]=this.contentSize,D=this.attributes.textAlign,U=this.attributes.verticalAlign;let M=0;D==="center"?M=(E-p)/2:(D==="right"||D==="end")&&(M=E-p);const W=this.attributes.fontSize,$=this.attributes.lineHeight;let B=0;U==="top"?B=(W-$)/2:U==="bottom"&&(B=($-W)/2);const{paddingLeft:N,paddingTop:z}=this.attributes,{borderWidth:J}=this.attributes;M+=N+J,B+=z+J;const{anchorX:et,anchorY:at}=this.attributes;M-=this.offsetSize[0]*et,B-=this.offsetSize[1]*at,w.setTexture(m,{rect:[M,B,p,S]}),this[y]=!1,this[h]=this.renderer}}}return P}onPropertyChange(P,w,d){P==="text"||P==="fontSize"||P==="fontFamily"||P==="fontStyle"||P==="fontVariant"||P==="fontWeight"||P==="fontStretch"||P==="lineHeight"||P==="strokeColor"||P==="fillColor"||P==="strokeWidth"?this.updateText():((P==="textAlign"||P==="verticalAlign")&&(this[y]=!0),super.onPropertyChange(P,w,d))}updateContours(){super.updateContours(),this[y]=!0}updateText(){this[v]||(this[v]=Promise.resolve().then(()=>{this[v]=null;const{text:P,font:w,fillColor:d,strokeColor:m,strokeWidth:p}=this.attributes,S=this.layer?this.layer.displayRatio:1;return this[T]=this[T]||r.ENV.createCanvas(1,1),this[u]=r.ENV.createText(P,{font:w,fillColor:d,strokeColor:m,strokeWidth:p,parseFont:r.parseFont,ratio:S,textCanvas:this[T]}),this[u].needsUpdate=!0,this.updateContours(),this.forceUpdate(),this[u]}))}}f(O,"Attr",c.default),l.default.registerNode(O,"label")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(72),s=t(221),c=t(220);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),f=Symbol.for("spritejs_setAttribute"),u=Symbol.for("spritejs_getAttribute"),v=Symbol.for("spritejs_declareAlias");class h extends c.default{constructor(T){super(T),this[l]({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[v]("font")}get text(){return this[u]("text")||" "}set text(T){this[f]("text",T)}get fontSize(){return this[u]("fontSize")}set fontSize(T){this[f]("fontSize",Object(n.toNumber)(T))}get fontFamily(){return this[u]("fontFamily")}set fontFamily(T){this[f]("fontFamily",T)}get fontStyle(){return this[u]("fontStyle")}set fontStyle(T){this[f]("fontStyle",T)}get fontVariant(){return this[u]("fontVariant")}set fontVariant(T){this[f]("fontVariant",T)}get fontWeight(){return this[u]("fontWeight")}set fontWeight(T){this[f]("fontWeight",T)}get fontStretch(){return this[u]("fontStretch")}set fontStretch(T){this[f]("fontStretch",T)}get lineHeight(){return this[u]("lineHeight")||this.fontSize}set lineHeight(T){this[f]("lineHeight",Object(n.toNumber)(T))}get textAlign(){return this[u]("textAlign")}set textAlign(T){this[f]("textAlign",T)}get strokeColor(){return this[u]("strokeColor")}set strokeColor(T){this[f]("strokeColor",Object(s.parseColor)(T))}get strokeWidth(){return this[u]("strokeWidth")}set strokeWidth(T){this[f]("strokeWidth",Object(n.toNumber)(T))}get verticalAlign(){return this[u]("verticalAlign")}set verticalAlign(T){this[f]("verticalAlign",T)}get fillColor(){return this[u]("fillColor")}set fillColor(T){this[f]("fillColor",Object(s.parseColor)(T))}get font(){const{fontStyle:T,fontVariant:O,fontWeight:I,fontStretch:P,fontSize:w,lineHeight:d,fontFamily:m}=this;return`${T} ${O} ${I} ${P} ${w}px/${d}px ${m}`}set font(T){if(T==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(r.parseFont)(T);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(i,e,t){t.r(e),t.d(e,"default",function(){return T});var r=t(12),n=t(219),s=t(251),c=t(213),l=t(252);t(1).glMatrix.setMatrixArrayType(Array);function f(O,I,P){return I in O?Object.defineProperty(O,I,{value:P,enumerable:!0,configurable:!0,writable:!0}):O[I]=P,O}const u=Symbol("zOrder"),v=Symbol("ordered"),h=Symbol("children"),y=Symbol("sealed");class T extends n.default{constructor(I={}){super(I),this[h]=[],this[v]=null,this[u]=0}get childNodes(){return this[h]}get children(){return this[h]}get orderedChildren(){return this[v]||(this[v]=[...this[h]],this[v].sort((I,P)=>I.zIndex-P.zIndex||I.zOrder-P.zOrder)),this[v]}append(...I){return I.map(P=>this.appendChild(P))}appendChild(I){return I.remove(),this[h].push(I),I.connect(this,this[u]++),this[v]&&(this[v].length&&I.zIndex<this[v][this[v].length-1].zIndex?this.reorder():this[v].push(I)),I}cloneNode(I=!1){const P=super.cloneNode();return I&&this[h].forEach(w=>{const d=w.cloneNode(I);P.appendChild(d)}),P}dispatchPointerEvent(I){const P=this.orderedChildren;for(let w=P.length-1;w>=0;w--)if(P[w].dispatchPointerEvent(I))return!0;return super.dispatchPointerEvent(I)}draw(I=[]){if(this.__cacheRenderMatrix=this.renderMatrix,super.draw(I),!this[y]&&this.attributes.display!=="none"){const P=this.orderedChildren;for(let w=0;w<P.length;w++)P[w].draw(I)}return this.__cacheRenderMatrix=null,I}getElementById(I){return Object(l.querySelector)(`#${I}`,this)}getElementsByClassName(I){return Object(l.querySelectorAll)(`.${I}`,this)}getElementsByName(I){return Object(l.querySelectorAll)(`[name="${I}"]`,this)}getElementsByTagName(I){return Object(l.querySelectorAll)(I,this)}insertBefore(I,P){if(P==null)return this.appendChild(I);I.remove();const w=this[h].indexOf(P);if(w<0)throw new Error("Invalid reference node.");const d=P.zOrder;for(let m=w;m<this[h].length;m++){const p=this[h][m].zOrder,S=this[h][m];delete S.zOrder,Object.defineProperty(S,"zOrder",{value:p+1,writable:!1,configurable:!0})}if(this[h].splice(w,0,I),I.connect(this,d),this[v])if(I.zIndex!==P.zIndex)this.reorder();else{const m=this[v].indexOf(P);this[v].splice(m,0,I)}return I}querySelector(I){return Object(l.querySelector)(I,this)}querySelectorAll(I){return Object(l.querySelectorAll)(I,this)}replaceChild(I,P){I.remove();const w=this[h].indexOf(P);if(w<0)throw new Error("Invalid reference node.");if(this[h][w]=I,I.connect(this,P.zOrder),this[v])if(I.zIndex!==P.zIndex)this.reorder();else{const d=this[v].indexOf(P);this[v][d]=I}return P.disconnect(this),I}removeAllChildren(){const I=this[h];for(let P=I.length-1;P>=0;P--)I[P].remove()}removeChild(I){const P=this[h].indexOf(I);if(P>=0){if(this[h].splice(P,1),this[v]){const w=this[v].indexOf(I);this[v].splice(w,1)}return I.disconnect(this),I}return null}reorder(){this[v]=null}seal(){function I(m,p){const S=[];for(let E=0;E<m.length;E++){const R=[...m[E]];for(let D=1;D<R.length;D+=2){const U=R[D],M=R[D+1];R[D]=U*p[0]+M*p[2]+p[4],R[D+1]=U*p[1]+M*p[3]+p[5]}S.push(R)}return S}const P=this.orderedChildren,w=new r.Figure2D,d=this.localMatrix;for(let m=0;m<P.length;m++){let p=P[m];if(p instanceof T&&(p=p.seal()),p.clientBox){let S=p.clientBox.contours.path;S=I(S,p.localMatrix),w.addPath(S)}if(p.path){let S=p.path.contours.path;S=I(S,p.localMatrix),w.addPath(S)}}return this[y]=!0,this.clientBox=w,{clientBox:w,localMatrix:d}}setResolution({width:I,height:P}){super.setResolution({width:I,height:P}),this[h].forEach(w=>{w.setResolution({width:I,height:P})})}updateContours(){this[y]||super.updateContours()}}f(T,"Attr",s.default),c.default.registerNode(T,"group")},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(220);t(1).glMatrix.setMatrixArrayType(Array);class n extends r.default{}},function(i,e,t){t.r(e),t.d(e,"querySelectorAll",function(){return y}),t.d(e,"querySelector",function(){return T}),t.d(e,"isMatched",function(){return O}),t.d(e,"compile",function(){return I});var r=t(221),n=t(213);t(1).glMatrix.setMatrixArrayType(Array);const s=t(253);function c(P){return P.nodeType===1||n.default.isSpriteNode(P.nodeName)}function l(P){return Array.from(P.childNodes||[])}function f(P){return n.default.isSpriteNode(P.nodeName)?P.parent||P.canvas||P.container:P.parentElement}function u(P){let w=P.length,d,m,p;for(;--w>-1;){for(d=m=P[w],P[w]=null,p=!0;m;){if(P.indexOf(m)>-1){p=!1,P.splice(w,1);break}m=f(m)}p&&(P[w]=d)}return P}const v={isTag:c,existsOne(P,w){return w.some(d=>c(d)?P(d)||v.existsOne(P,l(d)):!1)},getSiblings(P){const w=f(P);return w&&l(w)},getChildren:l,getParent:f,getAttributeValue(P,w){if(P.nodeType===1&&w==="class"||w==="id")return P[w];if(this.hasAttrib(P,w)){let d=P.attributes[w];return Array.isArray(d)&&(d=`[${d.join()}]`),String(d)}},hasAttrib(P,w){return P.attributes[w]!=null},removeSubsets:u,getName(P){return P.tagName?P.tagName.toLowerCase():null},findOne:function P(w,d){let m=null;for(let p=0,S=d.length;p<S&&!m;p++)if(w(d[p]))m=d[p];else{const E=l(d[p]);E&&E.length>0&&(m=P(w,E))}return m},findAll:function P(w,d){let m=[];for(let p=0,S=d.length;p<S;p++){if(!c(d[p]))continue;w(d[p])&&m.push(d[p]);const E=l(d[p]);E&&(m=m.concat(P(w,E)))}return m},getText:function P(w){return Array.isArray(w)?w.map(P).join(""):c(w)?P(l(w)):w.nodeType===3?w.nodeValue:n.default.isSpriteNode(w.nodeName)?w.text:""}};function h(P){if(typeof P!="string")return P;let w=P.match(/\[(bgcolor|fillColor|strokeColor|color)\s*=\s*['"]?\w+['"]?\]/g);return w&&(w=w.map(d=>{const m=d.slice(1,-1).split("="),p=Object(r.parseColor)(m[1].replace(/['"]/g,""));return[d,`[${m[0]}="${p}"]`]}),w.forEach(([d,m])=>{P=P.replace(d,m)})),w=P.match(/\[\w+\s*=\s*['"]\[.+?\]['"]\]/g),w&&(w=w.map(d=>{const m=d.slice(1,-1).split("="),p=m[1].slice(2,-2).split(/,/g).map(S=>S.trim());return[d,`[${m[0]}="[${p}]"]`]}),w.forEach(([d,m])=>{P=P.replace(d,m)})),P}function y(P,w){return s.selectAll(h(P),w,{adapter:v})}function T(P,w){return s.selectOne(h(P),w,{adapter:v})}function O(P,w){return s.is(P,h(w),{adapter:v})}function I(P){return s.compile(h(P),{adapter:v})}},function(i,e,t){i.exports=I;var r=t(254),n=t(273).falseFunc,s=t(274);function c(P){return function(d,m,p){return m=m||{},m.adapter=m.adapter||r,P(d,m,p)}}var l=c(s),f=c(s.compileUnsafe);function u(P){return function(d,m,p){return p=p||{},p.adapter=p.adapter||r,typeof d!="function"&&(d=f(d,p,m)),d.shouldTestNextSiblings&&(m=h(p&&p.context||m,p.adapter)),Array.isArray(m)?m=p.adapter.removeSubsets(m):m=p.adapter.getChildren(m),P(d,m,p)}}function v(P,w){var d=w.getSiblings(P);if(!Array.isArray(d))return[];for(d=d.slice(0);d.shift()!==P;);return d}function h(P,w){Array.isArray(P)||(P=[P]);for(var d=P.slice(0),m=0,p=P.length;m<p;m++){var S=v(d[m],w);d.push.apply(d,S)}return d}var y=u(function(w,d,m){return w===n||!d||d.length===0?[]:m.adapter.findAll(w,d)}),T=u(function(w,d,m){return w===n||!d||d.length===0?null:m.adapter.findOne(w,d)});function O(P,w,d){return d=d||{},d.adapter=d.adapter||r,(typeof w=="function"?w:l(w,d))(P)}function I(P,w,d){return y(P,w,d)}I.compile=l,I.filters=s.Pseudos.filters,I.pseudos=s.Pseudos.pseudos,I.selectAll=y,I.selectOne=T,I.is=O,I.parse=l,I.iterate=y,I._compileUnsafe=f,I._compileToken=s.compileToken},function(i,e,t){var r=i.exports;[t(255),t(268),t(269),t(270),t(271),t(272)].forEach(function(n){Object.keys(n).forEach(function(s){r[s]=n[s].bind(r)})})},function(i,e,t){var r=t(256),n=t(257),s=r.isTag;i.exports={getInnerHTML:c,getOuterHTML:n,getText:l};function c(f,u){return f.children?f.children.map(function(v){return n(v,u)}).join(""):""}function l(f){return Array.isArray(f)?f.map(l).join(""):s(f)?f.name==="br"?`
565
565
  `:l(f.children):f.type===r.CDATA?l(f.children):f.type===r.Text?f.data:""}},function(i,e){i.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(i,e,t){var r=t(258),n=t(259),s=t(267);s.elementNames.__proto__=null,s.attributeNames.__proto__=null;var c={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0};function l(P,w){if(P){var d="",m;for(var p in P)m=P[p],d&&(d+=" "),w.xmlMode==="foreign"&&(p=s.attributeNames[p]||p),d+=p,(m!==null&&m!==""||w.xmlMode)&&(d+='="'+(w.decodeEntities?n.encodeXML(m):m.replace(/\"/g,"&quot;"))+'"');return d}}var f={__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},u=i.exports=function(P,w){!Array.isArray(P)&&!P.cheerio&&(P=[P]),w=w||{};for(var d="",m=0;m<P.length;m++){var p=P[m];p.type==="root"?d+=u(p.children,w):r.isTag(p)?d+=h(p,w):p.type===r.Directive?d+=y(p):p.type===r.Comment?d+=I(p):p.type===r.CDATA?d+=O(p):d+=T(p,w)}return d},v=["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"];function h(P,w){w.xmlMode==="foreign"&&(P.name=s.elementNames[P.name]||P.name,P.parent&&v.indexOf(P.parent.name)>=0&&(w=Object.assign({},w,{xmlMode:!1}))),!w.xmlMode&&["svg","math"].indexOf(P.name)>=0&&(w=Object.assign({},w,{xmlMode:"foreign"}));var d="<"+P.name,m=l(P.attribs,w);return m&&(d+=" "+m),w.xmlMode&&(!P.children||P.children.length===0)?d+="/>":(d+=">",P.children&&(d+=u(P.children,w)),(!f[P.name]||w.xmlMode)&&(d+="</"+P.name+">")),d}function y(P){return"<"+P.data+">"}function T(P,w){var d=P.data||"";return w.decodeEntities&&!(P.parent&&P.parent.name in c)&&(d=n.encodeXML(d)),d}function O(P){return"<![CDATA["+P.children[0].data+"]]>"}function I(P){return"<!--"+P.data+"-->"}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});function r(n){return n.type==="tag"||n.type==="script"||n.type==="style"}e.isTag=r,e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.encode=e.decodeStrict=e.decode=void 0;var r=t(260),n=t(266);function s(v,h){return(!h||h<=0?r.decodeXML:r.decodeHTML)(v)}e.decode=s;function c(v,h){return(!h||h<=0?r.decodeXML:r.decodeHTMLStrict)(v)}e.decodeStrict=c;function l(v,h){return(!h||h<=0?n.encodeXML:n.encodeHTML)(v)}e.encode=l;var f=t(266);Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return f.encodeXML}}),Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return f.encodeHTML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return f.escape}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return f.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return f.encodeHTML}});var u=t(260);Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return u.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return u.decodeXML}})},function(i,e,t){var r=this&&this.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeHTML=e.decodeHTMLStrict=e.decodeXML=void 0;var n=r(t(261)),s=r(t(262)),c=r(t(263)),l=r(t(264));e.decodeXML=f(c.default),e.decodeHTMLStrict=f(n.default);function f(h){var y=Object.keys(h).join("|"),T=v(h);y+="|#[xX][\\da-fA-F]+|#\\d+";var O=new RegExp("&(?:"+y+");","g");return function(I){return String(I).replace(O,T)}}var u=function(h,y){return h<y?1:-1};e.decodeHTML=function(){for(var h=Object.keys(s.default).sort(u),y=Object.keys(n.default).sort(u),T=0,O=0;T<y.length;T++)h[O]===y[T]?(y[T]+=";?",O++):y[T]+=";";var I=new RegExp("&(?:"+y.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),P=v(n.default);function w(d){return d.substr(-1)!==";"&&(d+=";"),P(d)}return function(d){return String(d).replace(I,w)}}();function v(h){return function(T){if(T.charAt(1)==="#"){var O=T.charAt(2);return O==="X"||O==="x"?l.default(parseInt(T.substr(3),16)):l.default(parseInt(T.substr(2),10))}return h[T.slice(1,-1)]}}},function(i){i.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(i){i.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(i){i.exports=JSON.parse(`{"amp":"&","apos":"'","gt":">","lt":"<","quot":"\\""}`)},function(i,e,t){var r=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(e,"__esModule",{value:!0});var n=r(t(265));function s(c){if(c>=55296&&c<=57343||c>1114111)return"�";c in n.default&&(c=n.default[c]);var l="";return c>65535&&(c-=65536,l+=String.fromCharCode(c>>>10&1023|55296),c=56320|c&1023),l+=String.fromCharCode(c),l}e.default=s},function(i){i.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(i,e,t){var r=this&&this.__importDefault||function(w){return w&&w.__esModule?w:{default:w}};Object.defineProperty(e,"__esModule",{value:!0}),e.escape=e.encodeHTML=e.encodeXML=void 0;var n=r(t(263)),s=v(n.default),c=h(s);e.encodeXML=O(s,c);var l=r(t(261)),f=v(l.default),u=h(f);e.encodeHTML=O(f,u);function v(w){return Object.keys(w).sort().reduce(function(d,m){return d[w[m]]="&"+m+";",d},{})}function h(w){for(var d=[],m=[],p=0,S=Object.keys(w);p<S.length;p++){var E=S[p];E.length===1?d.push("\\"+E):m.push(E)}d.sort();for(var R=0;R<d.length-1;R++){for(var D=R;D<d.length-1&&d[D].charCodeAt(1)+1===d[D+1].charCodeAt(1);)D+=1;var U=1+D-R;U<3||d.splice(R,U,d[R]+"-"+d[D])}return m.unshift("["+d.join("")+"]"),new RegExp(m.join("|"),"g")}var y=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;function T(w){return"&#x"+w.codePointAt(0).toString(16).toUpperCase()+";"}function O(w,d){return function(m){return m.replace(d,function(p){return w[p]}).replace(y,T)}}var I=h(s);function P(w){return w.replace(I,T).replace(y,T)}e.escape=P},function(i){i.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(i,e){var t=e.getChildren=function(n){return n.children},r=e.getParent=function(n){return n.parent};e.getSiblings=function(n){var s=r(n);return s?t(s):[n]},e.getAttributeValue=function(n,s){return n.attribs&&n.attribs[s]},e.hasAttrib=function(n,s){return!!n.attribs&&hasOwnProperty.call(n.attribs,s)},e.getName=function(n){return n.name}},function(i,e){e.removeElement=function(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){var r=t.parent.children;r.splice(r.lastIndexOf(t),1)}},e.replaceElement=function(t,r){var n=r.prev=t.prev;n&&(n.next=r);var s=r.next=t.next;s&&(s.prev=r);var c=r.parent=t.parent;if(c){var l=c.children;l[l.lastIndexOf(t)]=r}},e.appendChild=function(t,r){if(r.parent=t,t.children.push(r)!==1){var n=t.children[t.children.length-2];n.next=r,r.prev=n,r.next=null}},e.append=function(t,r){var n=t.parent,s=t.next;if(r.next=s,r.prev=t,t.next=r,r.parent=n,s){if(s.prev=r,n){var c=n.children;c.splice(c.lastIndexOf(s),0,r)}}else n&&n.children.push(r)},e.prepend=function(t,r){var n=t.parent;if(n){var s=n.children;s.splice(s.lastIndexOf(t),0,r)}t.prev&&(t.prev.next=r),r.parent=n,r.prev=t.prev,r.next=t,t.prev=r}},function(i,e,t){var r=t(256).isTag;i.exports={filter:n,find:s,findOneChild:c,findOne:l,existsOne:f,findAll:u};function n(v,h,y,T){return Array.isArray(h)||(h=[h]),(typeof T!="number"||!isFinite(T))&&(T=1/0),s(v,h,y!==!1,T)}function s(v,h,y,T){for(var O=[],I,P=0,w=h.length;P<w&&!(v(h[P])&&(O.push(h[P]),--T<=0)||(I=h[P].children,y&&I&&I.length>0&&(I=s(v,I,y,T),O=O.concat(I),T-=I.length,T<=0)));P++);return O}function c(v,h){for(var y=0,T=h.length;y<T;y++)if(v(h[y]))return h[y];return null}function l(v,h){for(var y=null,T=0,O=h.length;T<O&&!y;T++)if(r(h[T]))v(h[T])?y=h[T]:h[T].children.length>0&&(y=l(v,h[T].children));else continue;return y}function f(v,h){for(var y=0,T=h.length;y<T;y++)if(r(h[y])&&(v(h[y])||h[y].children.length>0&&f(v,h[y].children)))return!0;return!1}function u(v,h){for(var y=[],T=h.slice();T.length;){var O=T.shift();r(O)&&(O.children&&O.children.length>0&&T.unshift.apply(T,O.children),v(O)&&y.push(O))}return y}},function(i,e,t){var r=t(256),n=e.isTag=r.isTag;e.testElement=function(f,u){for(var v in f)if(f.hasOwnProperty(v)){if(v==="tag_name"){if(!n(u)||!f.tag_name(u.name))return!1}else if(v==="tag_type"){if(!f.tag_type(u.type))return!1}else if(v==="tag_contains"){if(n(u)||!f.tag_contains(u.data))return!1}else if(!u.attribs||!f[v](u.attribs[v]))return!1}return!0};var s={tag_name:function(f){return typeof f=="function"?function(u){return n(u)&&f(u.name)}:f==="*"?n:function(u){return n(u)&&u.name===f}},tag_type:function(f){return typeof f=="function"?function(u){return f(u.type)}:function(u){return u.type===f}},tag_contains:function(f){return typeof f=="function"?function(u){return!n(u)&&f(u.data)}:function(u){return!n(u)&&u.data===f}}};function c(f,u){return typeof u=="function"?function(v){return v.attribs&&u(v.attribs[f])}:function(v){return v.attribs&&v.attribs[f]===u}}function l(f,u){return function(v){return f(v)||u(v)}}e.getElements=function(f,u,v,h){var y=Object.keys(f).map(function(T){var O=f[T];return T in s?s[T](O):c(T,O)});return y.length===0?[]:this.filter(y.reduce(l),u,v,h)},e.getElementById=function(f,u,v){return Array.isArray(u)||(u=[u]),this.findOne(c("id",f),u,v!==!1)},e.getElementsByTagName=function(f,u,v,h){return this.filter(s.tag_name(f),u,v,h)},e.getElementsByTagType=function(f,u,v,h){return this.filter(s.tag_type(f),u,v,h)}},function(i,e){e.removeSubsets=function(n){for(var s=n.length,c,l,f;--s>-1;){for(c=l=n[s],n[s]=null,f=!0;l;){if(n.indexOf(l)>-1){f=!1,n.splice(s,1);break}l=l.parent}f&&(n[s]=c)}return n};var t={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},r=e.compareDocumentPosition=function(n,s){var c=[],l=[],f,u,v,h,y,T;if(n===s)return 0;for(f=n;f;)c.unshift(f),f=f.parent;for(f=s;f;)l.unshift(f),f=f.parent;for(T=0;c[T]===l[T];)T++;return T===0?t.DISCONNECTED:(u=c[T-1],v=u.children,h=c[T],y=l[T],v.indexOf(h)>v.indexOf(y)?u===s?t.FOLLOWING|t.CONTAINED_BY:t.FOLLOWING:u===n?t.PRECEDING|t.CONTAINS:t.PRECEDING)};e.uniqueSort=function(n){var s=n.length,c,l;for(n=n.slice();--s>-1;)c=n[s],l=n.indexOf(c),l>-1&&l<s&&n.splice(s,1);return n.sort(function(f,u){var v=r(f,u);return v&t.PRECEDING?-1:v&t.FOLLOWING?1:0}),n}},function(i,e){i.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},function(i,e,t){i.exports=y;var r=t(275).parse,n=t(273),s=t(278),c=t(279),l=t(280),f=t(282),u=n.trueFunc,v=n.falseFunc,h=f.filters;function y(M,W,$){var B=O(M,W,$);return T(B,W)}function T(M,W){var $=W.adapter;return function(N){return $.isTag(N)&&M(N)}}function O(M,W,$){var B=r(M,W);return S(B,W,$)}function I(M){return M.type==="pseudo"&&(M.name==="scope"||Array.isArray(M.data)&&M.data.some(function(W){return W.some(I)}))}var P={type:"descendant"},w={type:"_flexibleDescendant"},d={type:"pseudo",name:"scope"},m={};function p(M,W,$){var B=W.adapter,N=!!$&&!!$.length&&$.every(function(z){return z===m||!!B.getParent(z)});M.forEach(function(z){if(!(z.length>0&&E(z[0])&&z[0].type!=="descendant"))if(N&&!(Array.isArray(z)?z.some(I):I(z)))z.unshift(P);else return;z.unshift(d)})}function S(M,W,$){M=M.filter(function(J){return J.length>0}),M.forEach(s);var B=Array.isArray($);$=W&&W.context||$,$&&!B&&($=[$]),p(M,W,$);var N=!1,z=M.map(function(J){if(J[0]&&J[1]&&J[0].name==="scope"){var et=J[1].type;B&&et==="descendant"?J[1]=w:(et==="adjacent"||et==="sibling")&&(N=!0)}return R(J,W,$)}).reduce(D,v);return z.shouldTestNextSiblings=N,z}function E(M){return c[M.type]<0}function R(M,W,$){return M.reduce(function(B,N){if(B===v)return B;if(!(N.type in l))throw new Error("Rule type "+N.type+" is not supported by css-select");return l[N.type](B,N,W,$)},W&&W.rootFunc||u)}function D(M,W){return W===v||M===u?M:M===v||W===u?W:function(B){return M(B)||W(B)}}function U(M){return M.some(E)}h.not=function(M,W,$,B){var N={xmlMode:!!($&&$.xmlMode),strict:!!($&&$.strict),adapter:$.adapter};if(N.strict&&(W.length>1||W.some(U)))throw new Error("complex selectors in :not aren't allowed in strict mode");var z=S(W,N,B);return z===v?M:z===u?v:function(et){return!z(et)&&M(et)}},h.has=function(M,W,$){var B=$.adapter,N={xmlMode:!!($&&$.xmlMode),strict:!!($&&$.strict),adapter:B},z=W.some(U)?[m]:null,J=S(W,N,z);return J===v?v:J===u?function(at){return B.getChildren(at).some(B.isTag)&&M(at)}:(J=T(J,$),z?function(at){return M(at)&&(z[0]=at,B.existsOne(J,B.getChildren(at)))}:function(at){return M(at)&&B.existsOne(J,B.getChildren(at))})},h.matches=function(M,W,$,B){var N={xmlMode:!!($&&$.xmlMode),strict:!!($&&$.strict),rootFunc:M,adapter:$.adapter};return S(W,N,B)},y.compileToken=S,y.compileUnsafe=O,y.Pseudos=f},function(i,e,t){var r=this&&this.__createBinding||(Object.create?function(l,f,u,v){v===void 0&&(v=u),Object.defineProperty(l,v,{enumerable:!0,get:function(){return f[u]}})}:function(l,f,u,v){v===void 0&&(v=u),l[v]=f[u]}),n=this&&this.__exportStar||function(l,f){for(var u in l)u!=="default"&&!f.hasOwnProperty(u)&&r(f,l,u)};Object.defineProperty(e,"__esModule",{value:!0}),n(t(276),e);var s=t(276);Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return s.default}});var c=t(277);Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return c.default}})},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=I;var r=/^[^\\]?(?:\\(?:[\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)?\]/,c={undefined:"exists","":"equals","~":"element","^":"start",$:"end","*":"any","!":"not","|":"hyphen"},l={">":"child","<":"parent","~":"sibling","+":"adjacent"},f={"#":["id","equals"],".":["class","element"]},u=new Set(["has","not","matches"]),v=new Set(["contains","icontains"]),h=new Set(['"',"'"]);function y(d,m,p){var S=parseInt(m,16)-65536;return S!==S||p?m:S<0?String.fromCharCode(S+65536):String.fromCharCode(S>>10|55296,S&1023|56320)}function T(d){return d.replace(n,y)}function O(d){return d===" "||d===`
566
- `||d===" "||d==="\f"||d==="\r"}function I(d,m){var p=[];if(d=P(p,""+d,m),d!=="")throw new Error("Unmatched selector: "+d);return p}function P(d,m,p){var S=[],E=!1;function R(){var ft=m.match(r);if(!ft)throw new Error("Expected name, found "+m);var mt=ft[0];return m=m.substr(mt.length),T(mt)}function D(ft){for(;O(m.charAt(ft));)ft++;m=m.substr(ft)}function U(ft){for(var mt=0;m.charAt(--ft)==="\\";)mt++;return(mt&1)===1}for(D(0);m!=="";){var M=m.charAt(0);if(O(M))E=!0,D(1);else if(M in l)S.push({type:l[M]}),E=!1,D(1);else if(M===","){if(S.length===0)throw new Error("Empty sub-selector");d.push(S),S=[],E=!1,D(1)}else if(E&&(S.length>0&&S.push({type:"descendant"}),E=!1),M==="*")m=m.substr(1),S.push({type:"universal"});else if(M in f){var W=f[M],$=W[0],B=W[1];m=m.substr(1),S.push({type:"attribute",name:$,action:B,value:R(),ignoreCase:!1})}else if(M==="["){m=m.substr(1);var N=m.match(s);if(!N)throw new Error("Malformed attribute selector: "+m);m=m.substr(N[0].length);var z=T(N[1]);(!p||("lowerCaseAttributeNames"in p?p.lowerCaseAttributeNames:!p.xmlMode))&&(z=z.toLowerCase()),S.push({type:"attribute",name:z,action:c[N[2]],value:T(N[4]||N[5]||""),ignoreCase:!!N[6]})}else if(M===":"){if(m.charAt(1)===":"){m=m.substr(2),S.push({type:"pseudo-element",name:R().toLowerCase()});continue}m=m.substr(1);var J=R().toLowerCase(),N=null;if(m.charAt(0)==="(")if(u.has(J)){var et=m.charAt(1),at=h.has(et);if(m=m.substr(at?2:1),N=[],m=P(N,m,p),at){if(m.charAt(0)!==et)throw new Error("Unmatched quotes in :"+J);m=m.substr(1)}if(m.charAt(0)!==")")throw new Error("Missing closing parenthesis in :"+J+" ("+m+")");m=m.substr(1)}else{for(var ct=1,V=1;V>0&&ct<m.length;ct++)m.charAt(ct)==="("&&!U(ct)?V++:m.charAt(ct)===")"&&!U(ct)&&V--;if(V)throw new Error("Parenthesis not matched");if(N=m.substr(1,ct-2),m=m.substr(ct),v.has(J)){var et=N.charAt(0);et===N.slice(-1)&&h.has(et)&&(N=N.slice(1,-1)),N=T(N)}}S.push({type:"pseudo",name:J,data:N})}else if(r.test(m)){var Q=R();(!p||("lowerCaseTags"in p?p.lowerCaseTags:!p.xmlMode))&&(Q=Q.toLowerCase()),S.push({type:"tag",name:Q})}else return S.length&&S[S.length-1].type==="descendant"&&S.pop(),w(d,S),m}return w(d,S),m}function w(d,m){if(d.length>0&&m.length===0)throw new Error("Empty sub-selector");d.push(m)}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r={equals:"",element:"~",start:"^",end:"$",any:"*",not:"!",hyphen:"|"};function n(f){return f.map(s).join(", ")}e.default=n;function s(f){return f.map(c).join("")}function c(f){switch(f.type){case"child":return" > ";case"parent":return" < ";case"sibling":return" ~ ";case"adjacent":return" + ";case"descendant":return" ";case"universal":return"*";case"tag":return f.name;case"pseudo-element":return"::"+f.name;case"pseudo":return f.data===null?":"+f.name:typeof f.data=="string"?":"+f.name+"("+f.data+")":":"+f.name+"("+n(f.data)+")";case"attribute":return f.action==="exists"?"["+f.name+"]":f.name==="id"&&f.action==="equals"&&!f.ignoreCase?"#"+f.value:f.name==="class"&&f.action==="element"&&!f.ignoreCase?"."+f.value:"["+f.name+r[f.action]+"='"+f.value+"'"+(f.ignoreCase?"i":"")+"]";default:throw new Error("Unknown type")}}function l(f){return f}},function(i,e,t){i.exports=s;var r=t(279),n={__proto__:null,exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function s(l){for(var f=l.map(c),u=1;u<l.length;u++){var v=f[u];if(!(v<0))for(var h=u-1;h>=0&&v<f[h];h--){var y=l[h+1];l[h+1]=l[h],l[h]=y,f[h+1]=f[h],f[h]=v}}}function c(l){var f=r[l.type];if(f===r.attribute)f=n[l.action],f===n.equals&&l.name==="id"&&(f=9),l.ignoreCase&&(f>>=1);else if(f===r.pseudo)if(!l.data)f=3;else if(l.name==="has"||l.name==="contains")f=0;else if(l.name==="matches"||l.name==="not"){f=0;for(var u=0;u<l.data.length;u++)if(l.data[u].length===1){var v=c(l.data[u][0]);if(v===0){f=0;break}v>f&&(f=v)}l.data.length>1&&f>0&&(f-=1)}else f=1;return f}},function(i){i.exports=JSON.parse('{"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1}')},function(i,e,t){var r=t(281),n=t(282);i.exports={__proto__:null,attribute:r.compile,pseudo:n.compile,tag:function(s,c,l){var f=c.name,u=l.adapter;return function(h){return u.getName(h)===f&&s(h)}},descendant:function(s,c,l){var f=typeof WeakSet<"u"?new WeakSet:null,u=l.adapter;return function(h){for(var y=!1;!y&&(h=u.getParent(h));)(!f||!f.has(h))&&(y=s(h),!y&&f&&f.add(h));return y}},_flexibleDescendant:function(s,c,l){var f=l.adapter;return function(v){for(var h=s(v);!h&&(v=f.getParent(v));)h=s(v);return h}},parent:function(s,c,l){if(l&&l.strict)throw new Error("Parent selector isn't part of CSS3");var f=l.adapter;return function(h){return f.getChildren(h).some(u)};function u(v){return f.isTag(v)&&s(v)}},child:function(s,c,l){var f=l.adapter;return function(v){var h=f.getParent(v);return!!h&&s(h)}},sibling:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y=0;y<h.length;y++)if(f.isTag(h[y])){if(h[y]===v)break;if(s(h[y]))return!0}return!1}},adjacent:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y,T=0;T<h.length;T++)if(f.isTag(h[T])){if(h[T]===v)break;y=h[T]}return!!y&&s(y)}},universal:function(s){return s}}},function(i,e,t){var r=t(273).falseFunc,n=/[-[\]{}()*+?.,\\^$|#\s]/g,s={__proto__:null,equals:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()===v&&c(T)}):function(T){return h.getAttributeValue(T,u)===v&&c(T)}},hyphen:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&(I.length===h||I.charAt(h)==="-")&&I.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h)===v&&(I.length===h||I.charAt(h)==="-")&&c(O)}},element:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(/\s/.test(v))return r;v=v.replace(n,"\\$&");var y="(?:^|\\s)"+v+"(?:$|\\s)",T=l.ignoreCase?"i":"",O=new RegExp(y,T);return function(P){var w=h.getAttributeValue(P,u);return w!=null&&O.test(w)&&c(P)}},exists:function(c,l,f){var u=l.name,v=f.adapter;return function(y){return v.hasAttrib(y,u)&&c(y)}},start:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h)===v&&c(O)}},end:function(c,l,f){var u=l.name,v=l.value,h=-v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(h)===v&&c(O)}},any:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(v==="")return r;if(l.ignoreCase){var y=new RegExp(v.replace(n,"\\$&"),"i");return function(O){var I=h.getAttributeValue(O,u);return I!=null&&y.test(I)&&c(O)}}return function(O){var I=h.getAttributeValue(O,u);return I!=null&&I.indexOf(v)>=0&&c(O)}},not:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return v===""?function(T){return!!h.getAttributeValue(T,u)&&c(T)}:l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()!==v&&c(T)}):function(T){return h.getAttributeValue(T,u)!==v&&c(T)}}};i.exports={compile:function(c,l,f){if(f&&f.strict&&(l.ignoreCase||l.action==="not"))throw new Error("Unsupported attribute selector");return s[l.action](c,l,f)},rules:s}},function(i,e,t){var r=t(283),n=t(273),s=t(281),c=n.trueFunc,l=n.falseFunc,f=s.rules.equals;function u(w,d){var m={name:w,value:d};return function(S,E,R){return f(S,m,R)}}function v(w,d){return function(m){return!!d.getParent(m)&&w(m)}}var h={contains:function(w,d,m){var p=m.adapter;return function(E){return w(E)&&p.getText(E).indexOf(d)>=0}},icontains:function(w,d,m){var p=d.toLowerCase(),S=m.adapter;return function(R){return w(R)&&S.getText(R).toLowerCase().indexOf(p)>=0}},"nth-child":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=0;U<D.length;U++)if(S.isTag(D[U])){if(D[U]===R)break;M++}return p(M)&&w(R)}},"nth-last-child":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=D.length-1;M>=0;M--)if(S.isTag(D[M])){if(D[M]===R)break;U++}return p(U)&&w(R)}},"nth-of-type":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=0;M<D.length;M++)if(S.isTag(D[M])){if(D[M]===R)break;S.getName(D[M])===S.getName(R)&&U++}return p(U)&&w(R)}},"nth-last-of-type":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=D.length-1;M>=0;M--)if(S.isTag(D[M])){if(D[M]===R)break;S.getName(D[M])===S.getName(R)&&U++}return p(U)&&w(R)}},root:function(w,d,m){var p=m.adapter;return function(S){return!p.getParent(S)&&w(S)}},scope:function(w,d,m,p){var S=m.adapter;if(!p||p.length===0)return h.root(w,d,m);function E(R,D){return typeof S.equals=="function"?S.equals(R,D):R===D}return p.length===1?function(R){return E(p[0],R)&&w(R)}:function(R){return p.indexOf(R)>=0&&w(R)}},checkbox:u("type","checkbox"),file:u("type","file"),password:u("type","password"),radio:u("type","radio"),reset:u("type","reset"),image:u("type","image"),submit:u("type","submit"),hover:function(w,d,m){var p=m.adapter;return typeof p.isHovered=="function"?function(E){return w(E)&&p.isHovered(E)}:l},visited:function(w,d,m){var p=m.adapter;return typeof p.isVisited=="function"?function(E){return w(E)&&p.isVisited(E)}:l},active:function(w,d,m){var p=m.adapter;return typeof p.isActive=="function"?function(E){return w(E)&&p.isActive(E)}:l}};function y(w,d){for(var m=0;w&&m<w.length;m++)if(d.isTag(w[m]))return w[m]}var T={empty:function(w,d){return!d.getChildren(w).some(function(m){return d.isTag(m)||m.type==="text"})},"first-child":function(w,d){return y(d.getSiblings(w),d)===w},"last-child":function(w,d){for(var m=d.getSiblings(w),p=m.length-1;p>=0;p--){if(m[p]===w)return!0;if(d.isTag(m[p]))break}return!1},"first-of-type":function(w,d){for(var m=d.getSiblings(w),p=0;p<m.length;p++)if(d.isTag(m[p])){if(m[p]===w)return!0;if(d.getName(m[p])===d.getName(w))break}return!1},"last-of-type":function(w,d){for(var m=d.getSiblings(w),p=m.length-1;p>=0;p--)if(d.isTag(m[p])){if(m[p]===w)return!0;if(d.getName(m[p])===d.getName(w))break}return!1},"only-of-type":function(w,d){for(var m=d.getSiblings(w),p=0,S=m.length;p<S;p++)if(d.isTag(m[p])){if(m[p]===w)continue;if(d.getName(m[p])===d.getName(w))return!1}return!0},"only-child":function(w,d){for(var m=d.getSiblings(w),p=0;p<m.length;p++)if(d.isTag(m[p])&&m[p]!==w)return!1;return!0},link:function(w,d){return d.hasAttrib(w,"href")},selected:function(w,d){if(d.hasAttrib(w,"selected"))return!0;if(d.getName(w)!=="option")return!1;var m=d.getParent(w);if(!m||d.getName(m)!=="select"||d.hasAttrib(m,"multiple"))return!1;for(var p=d.getChildren(m),S=!1,E=0;E<p.length;E++)if(d.isTag(p[E]))if(p[E]===w)S=!0;else if(S){if(d.hasAttrib(p[E],"selected"))return!1}else return!1;return S},disabled:function(w,d){return d.hasAttrib(w,"disabled")},enabled:function(w,d){return!d.hasAttrib(w,"disabled")},checked:function(w,d){return d.hasAttrib(w,"checked")||T.selected(w,d)},required:function(w,d){return d.hasAttrib(w,"required")},optional:function(w,d){return!d.hasAttrib(w,"required")},parent:function(w,d){return!T.empty(w,d)},header:O(["h1","h2","h3","h4","h5","h6"]),button:function(w,d){var m=d.getName(w);return m==="button"||m==="input"&&d.getAttributeValue(w,"type")==="button"},input:O(["input","textarea","select","button"]),text:function(w,d){var m;return d.getName(w)==="input"&&(!(m=d.getAttributeValue(w,"type"))||m.toLowerCase()==="text")}};function O(w){if(typeof Set<"u"){var d=new Set(w);return function(m,p){return d.has(p.getName(m))}}return function(m,p){return w.indexOf(p.getName(m))>=0}}function I(w,d,m){if(m===null){if(w.length>2&&d!=="scope")throw new Error("pseudo-selector :"+d+" requires an argument")}else if(w.length===2)throw new Error("pseudo-selector :"+d+" doesn't have any arguments")}var P=/^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;i.exports={compile:function(w,d,m,p){var S=d.name,E=d.data,R=m.adapter;if(m&&m.strict&&!P.test(S))throw new Error(":"+S+" isn't part of CSS3");if(typeof h[S]=="function")return h[S](w,E,m,p);if(typeof T[S]=="function"){var D=T[S];return I(D,S,E),D===l?D:w===c?function(M){return D(M,R,E)}:function(M){return D(M,R,E)&&w(M)}}else throw new Error("unmatched pseudo-class :"+S)},filters:h,pseudos:T}},function(i,e,t){var r=t(284),n=t(285);i.exports=function(c){return n(r(c))},i.exports.parse=r,i.exports.compile=n},function(i,e){i.exports=r;var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;function r(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 c;return s[1]?(c=parseInt(s[1],10),isNaN(c)&&(s[1].charAt(0)==="-"?c=-1:c=1)):c=0,[c,s[3]?parseInt((s[2]||"")+s[3],10):0]}},function(i,e,t){i.exports=c;var r=t(273),n=r.trueFunc,s=r.falseFunc;function c(l){var f=l[0],u=l[1]-1;if(u<0&&f<=0)return s;if(f===-1)return function(h){return h<=u};if(f===0)return function(h){return h===u};if(f===1)return u<0?n:function(h){return h>=u};var v=u%f;return v<0&&(v+=f),f>1?function(h){return h>=u&&h%f===v}:(f*=-1,function(h){return h<=u&&h%f===v})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return E});var r=t(12),n=t(74),s=t(1),c=t(68),l=t(250),f=t(213),u=t(218);t(1).glMatrix.setMatrixArrayType(Array);function v(R,D){if(R==null)return{};var U=h(R,D),M,W;if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(R);for(W=0;W<$.length;W++)M=$[W],!(D.indexOf(M)>=0)&&Object.prototype.propertyIsEnumerable.call(R,M)&&(U[M]=R[M])}return U}function h(R,D){if(R==null)return{};var U={},M=Object.keys(R),W,$;for($=0;$<M.length;$++)W=M[$],!(D.indexOf(W)>=0)&&(U[W]=R[W]);return U}const y={antialias:!0,autoRender:!0,alpha:!0},T=Symbol("autoRender"),O=Symbol("renderer"),I=Symbol("timeline"),P=Symbol("prepareRender"),w=Symbol("tickRender"),d=Symbol("pass"),m=Symbol("fbo"),p=Symbol("tickers"),S=Symbol("layerTransformInvert");class E extends l.default{constructor(D={}){if(super(),!D.canvas){const{width:$,height:B}=this.getResolution(),N=r.ENV.createCanvas($,B,{offscreen:!!D.offscreen,id:D.id,extra:D.extra});N.style&&(N.style.position="absolute"),N.dataset&&(N.dataset.layerId=D.id),N.contextType&&(D.contextType=N.contextType),D.canvas=N}const U=D.canvas,M=Object.assign({},y,D);this[T]=M.autoRender,delete D.autoRender;const W=M.Renderer||r.Renderer;this[O]=new W(U,M),this.options=D,this.id=D.id,this[d]=[],this.setResolution(U),this.canvas=U,this[I]=new n.Timeline,this.__mouseCapturedTarget=null,this[S]=null}get autoRender(){return this[T]}get displayRatio(){return this.parent&&this.parent.options?this.parent.options.displayRatio:1}get height(){const{height:D}=this.getResolution();return D/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[d]}get prepareRender(){return this[P]?this[P]:Promise.resolve()}get renderer(){return this[O]}get renderOffset(){if(this.parent&&this.parent.options){const{left:D,top:U}=this.parent.options;return[D,U]}return[this.options.left|0,this.options.top|0]}get timeline(){return this[I]}get width(){const{width:D}=this.getResolution();return D/this.displayRatio}get localMatrix(){const{x:D,y:U}=this.attributes;return[1,0,0,1,D,U]}get layerTransformInvert(){if(this[S])return this[S];const D=this.transformMatrix;return D[0]===1&&D[1]===0&&D[2]===0&&D[3]===1&&D[4]===0&&D[5]===0?null:(this[S]=s.mat2d.invert(Array.of(0,0,0,0,0,0),D),this[S])}forceContextLoss(){const D=this.renderer.glRenderer;if(D){const U=D.getExtension("WEBGL_lose_context");if(U)return U.loseContext(),!0}return!1}addPass({vertex:D,fragment:U,options:M,uniforms:W}={}){if(this.renderer.glRenderer){const{width:$,height:B}=this.getResolution(),N=this.renderer.createPassProgram({vertex:D,fragment:U,options:M}),z=new r.Figure2D;z.rect(0,0,$/this.displayRatio,B/this.displayRatio);const J=new r.Mesh2D(z);return J.setUniforms(W),J.setProgram(N),this[d].push(J),this.forceUpdate(),J}return null}deleteTexture(D){return Object(u.deleteTexture)(D,this.renderer)}dispatchPointerEvent(D){const U=D.type;if(U==="mousedown"||U==="mouseup"||U==="mousemove"){const N=this.__mouseCapturedTarget;if(N){if(N.layer===this)return N.dispatchEvent(D),!0;this.__mouseCapturedTarget=null}}let M,W;const $=this.layerTransformInvert;if($){M=D.x,W=D.y;const N=$,z=N[0]*M+N[2]*W+N[4],J=N[1]*M+N[3]*W+N[5];delete D.x,delete D.y,delete D.layerX,delete D.layerY,Object.defineProperties(D,{layerX:{value:z,configurable:!0},layerY:{value:J,configurable:!0},x:{value:z,configurable:!0},y:{value:J,configurable:!0}})}const B=super.dispatchPointerEvent(D);return $&&Object.defineProperties(D,{layerX:{value:M,configurable:!0},layerY:{value:W,configurable:!0},x:{value:M,configurable:!0},y:{value:W,configurable:!0}}),B}forceUpdate(){if(!this[P])if(this.parent&&this.parent.hasOffscreenCanvas){this.parent.forceUpdate();let D=null;const U=new Promise(M=>{D=M});U._resolve=D,this[P]=U}else{let D=null,U=null;const M=new Promise(W=>{D=W,this[T]&&(U=Object(c.requestAnimationFrame)(()=>{delete M._requestID,this.render()}))});M._resolve=D,M._requestID=U,this[P]=M}}getFBO(){const D=this.renderer.glRenderer,{width:U,height:M}=this.getResolution();return D&&(!this[m]||this[m].width!==U||this[m].height!==M)?(this[m]={width:U,height:M,target:D.createFBO(),buffer:D.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}},this[m]):this[m]?this[m]:null}updateGlobalTransform(){if(this.layerTransformInvert){const D=this.renderer,U=D.__globalTransformMatrix||D.globalTransformMatrix;D.__globalTransformMatrix=U;const M=s.mat2d.fromValues(1,0,0,1,0,0);D.setGlobalTransform(...s.mat2d.multiply(M,U,this.transformMatrix))}}onPropertyChange(D,U,M){if(super.onPropertyChange(D,U,M),D==="zIndex"&&(this.canvas.style.zIndex=U),D==="transform"||D==="translate"||D==="rotate"||D==="scale"||D==="skew"){const W=this[S];if(this[S]=null,this.updateGlobalTransform(),W&&!this.layerTransformInvert){const $=this.renderer,B=$.__globalTransformMatrix||$.globalTransformMatrix;$.setGlobalTransform(...B)}}}_prepareRenderFinished(){this[P]&&(this[P]._requestID&&Object(c.cancelAnimationFrame)(this[P]._requestID),this[P]._resolve(),delete this[P])}render({clear:D=!0}={}){const U=this[d].length?this.getFBO():null;U&&this.renderer.glRenderer.bindFBO(U.target),D&&this[O].clear();const M=this.draw();if(M&&M.length&&(this.renderer.drawMeshes(M),this.canvas.draw&&this.canvas.draw()),U){const W=this.renderer.glRenderer,$=this[d].length,{width:B,height:N}=this.getResolution(),z=[0,0,B/this.displayRatio,N/this.displayRatio];this[d].forEach((J,et)=>{J.blend=!0,J.setTexture(U.target.texture,{rect:z}),et===$-1?W.bindFBO(null):(U.swap(),W.bindFBO(U.target)),this[O].clear(),this.renderer.drawMeshes([J])})}this._prepareRenderFinished()}setResolution({width:D,height:U}){const M=this.renderer,W=M.__globalTransformMatrix||M.globalTransformMatrix,$=W[4],B=W[5],N=W[0],{width:z,height:J}=this.getResolution();(z!==D||J!==U)&&(super.setResolution({width:D,height:U}),this.canvas&&(this.canvas.width=D,this.canvas.height=U,M.updateResolution&&M.updateResolution()),this.attributes.size=[D,U],this[d].length&&this[d].forEach(V=>{const Q=new r.Figure2D;Q.rect(0,0,D/this.displayRatio,U/this.displayRatio),V.contours=Q.contours}));const[et,at]=this.renderOffset,ct=this.displayRatio;($!==et||B!==at||N!==ct)&&(M.setGlobalTransform(ct,0,0,ct,et,at),M.__globalTransformMatrix=null,this[S]=null,this.updateGlobalTransform(),this.forceUpdate())}tick(D=null,U={}){let{duration:M=1/0}=U,W=v(U,["duration"]);const $=this.timeline.fork(W),B=this;this[p]=this[p]||[],this[p].push({handler:D,duration:M});const N=()=>{let z=null,J=null;const et=()=>{const at=this[p].map(({handler:ct,duration:V})=>{const Q=Math.min(1,$.currentTime/V);return{value:ct?ct($.currentTime,Q):null,p:Q}});B[w]||(B[w]=Promise.resolve().then(()=>{B[T]&&B.render(),delete B[w];for(let ct=at.length-1;ct>=0;ct--){const{value:V,p:Q}=at[ct];(V===!1||Q>=1)&&this[p].splice(ct,1)}this[p].length>0&&N()}))};if(this[P]&&this[P]._type!=="ticker"&&(Object(c.cancelAnimationFrame)(this[P]._requestID),delete this[P]),!this[P]){const at=new Promise(ct=>{z=ct,J=Object(c.requestAnimationFrame)(et)});at._resolve=z,at._requestID=J,at._type="ticker",this[P]=at}};N()}toGlobalPos(D,U){if(this.layerTransformInvert){const z=this.transformMatrix;D=z[0]*D+z[2]*U+z[4],U=z[1]*D+z[3]*U+z[5]}const{width:M,height:W}=this.getResolution(),$=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*B[0]/M+$[0],U=U*B[1]/W+$[1];const N=this.displayRatio;return D*=N,U*=N,[D,U]}toLocalPos(D,U){const{width:M,height:W}=this.getResolution(),$=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*M/B[0]-$[0],U=U*W/B[1]-$[1];const N=this.displayRatio;D/=N,U/=N;const z=this.layerTransformInvert;return z&&(D=z[0]*D+z[2]*U+z[4],U=z[1]*D+z[3]*U+z[5]),[D,U]}}f.default.registerNode(E,"layer")},function(i,e,t){t.r(e),t.d(e,"default",function(){return P});var r=t(224),n=t(288),s=t(213),c=t(252),l=t(72);t(1).glMatrix.setMatrixArrayType(Array);function f(w,d){if(w==null)return{};var m=u(w,d),p,S;if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(w);for(S=0;S<E.length;S++)p=E[S],!(d.indexOf(p)>=0)&&Object.prototype.propertyIsEnumerable.call(w,p)&&(m[p]=w[p])}return m}function u(w,d){if(w==null)return{};var m={},p=Object.keys(w),S,E;for(E=0;E<p.length;E++)S=p[E],!(d.indexOf(S)>=0)&&(m[S]=w[S]);return m}function v(w,d,m){return d in w?Object.defineProperty(w,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):w[d]=m,w}const h="http://www.w3.org/2000/svg",y=Symbol.for("spritejs_setAttribute"),T=Symbol("root"),O=Symbol("task");function I(w,d=!0){const m=w[T];if(m&&m.children[0]){const p=w.svg,S=w.layer?w.layer.displayRatio:1;if(!p.hasAttribute("data-original-width")){let D=p.getAttribute("width");D=D?Object(l.sizeToPixel)(D):300;let U=p.getAttribute("height");U=U?Object(l.sizeToPixel)(U):150,p.hasAttribute("viewBox")||p.setAttribute("viewBox",`0 0 ${Math.round(D)} ${Math.round(U)}`),p.setAttribute("data-original-width",D),p.setAttribute("data-original-height",U)}let E=w.attributes.width||Number(p.getAttribute("data-original-width")),R=w.attributes.height||Number(p.getAttribute("data-original-height"));if(E*=S,R*=S,d&&w.attributes.flexible){const D=w.attributes.scale[0];if(E*=D,R*=D,p.setAttribute("width",E),p.setAttribute("height",R),E&&R&&w.textureImage){const U=w.textureImage.width,M=w.textureImage.height,W=w.clientSize;w.attributes.textureRect=[0,0,Math.round(W[0]*U/E),Math.round(W[1]*M/R)]}}else w[O]||(p.setAttribute("width",E),p.setAttribute("height",R),w[O]=Promise.resolve().then(()=>{delete w[O];const D=m.innerHTML,U=new Blob([D],{type:"image/svg+xml"}),M=URL.createObjectURL(U),W=new Image;W.onload=function(){W.width&&W.height?(w.attributes[y]("texture",W),w.attributes.flexible&&(w.attributes.textureRect=null)):w.attributes[y]("texture",null)},W.src=M}))}}class P extends r.default{constructor(d={}){typeof d=="string"&&(d={svgText:d});let{svgText:m}=d,p=f(d,["svgText"]);if(super(p),this[T]=document.createElement("div"),m){this[T].innerHTML=m;const S=this[T].children[0];S?S.setAttribute("xmlns",h):(fetch(m).then(E=>E.text()).then(E=>{this[T].innerHTML=E,(!this.observer||this.attributes.flexible)&&I(this)}),m=null)}if(!m){const S=document.createElementNS(h,"svg");S.setAttribute("xmlns",h),this[T].appendChild(S)}if(typeof MutationObserver=="function"){const S=new MutationObserver(E=>{I(this,!1)});S.observe(this[T],{attributes:!0,subtree:!0,characterData:!0,childList:!0}),this.observer=S}}get children(){return[this.svg]}get childNodes(){return[this.svg]}get svg(){return this[T]?this[T].children[0]:null}setResolution({width:d,height:m}){super.setResolution({width:d,height:m}),I(this)}dispatchPointerEvent(d){const m=super.dispatchPointerEvent(d);if(m&&this.attributes.passEvents&&typeof MouseEvent=="function"){const{x:p,y:S}=d;let[E,R]=this.getOffsetPosition(p,S);const D=d.originalEvent,U=this.attributes.anchor,M=this.clientSize;E=(E+U[0]*M[0])/2,R=(R+U[1]*M[1])/2;const W=d.type;if(W===D.type){let $=null;if(D instanceof MouseEvent)$=new MouseEvent(W,{screenX:E,screenY:R,clientX:E,clientY:R,bubbles:D.bubbles,button:D.button,buttons:D.buttons,cancelBubble:D.cancelBubble,cancelable:D.cancelable,currentTarget:D.currentTarget,fromElement:D.fromElement,relatedTarget:D.relatedTarget,returnValue:D.returnValue,srcElement:D.srcElement,target:D.target,toElement:D.toElement,which:D.witch});else if(D instanceof TouchEvent){let B=null;const N=D.changedTouches||[D];for(let z=0;z<N.length;z++){const J=N[z];if(d.identifier===J.identifier){B=J;break}}if(B){const z=new Touch({identifier:B.identifier,target:B.target,clientX:E,clientY:R,screenX:E,screenY:R,pageX:E,pageY:R,radiusX:B.radiusX,radiusY:B.radiusY,rotationAngle:B.rotationAngle,force:B.force});$=new TouchEvent(W,{cancelable:D.cancelable,bubbles:D.bubbles,composed:D.composed,touches:[z],targetTouches:[z],changedTouches:[z]})}}else $=D;$&&this.svg.dispatchEvent($)}}return m}getElementById(d){return Object(c.querySelector)(`#${d}`,this)}getElementsByClassName(d){return Object(c.querySelectorAll)(`.${d}`,this)}getElementsByName(d){return Object(c.querySelectorAll)(`[name="${d}"]`,this)}getElementsByTagName(d){return Object(c.querySelectorAll)(d,this)}querySelector(d){return Object(c.querySelector)(d,this)}querySelectorAll(d){return Object(c.querySelectorAll)(d,this)}onPropertyChange(d,m,p){super.onPropertyChange(d,m,p),d==="flexible"&&I(this),this.attributes.flexible&&(d==="width"||d==="height"||d==="scale"||d==="transform")&&I(this)}}v(P,"Attr",n.default),s.default.registerNode(P,"spritesvg")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(225);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_getAttribute"),s=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_setAttributeDefault");class l extends r.default{constructor(u){super(u),this[c]({passEvents:!1,flexible:!1})}get texture(){return this[n]("texture")}set texture(u){}get passEvents(){return this[n]("passEvents")}set passEvents(u){return this[s]("passEvents",u)}get flexible(){return this[n]("flexible")}set flexible(u){return this[s]("flexible",u)}}},function(i,e,t){t.r(e);var r=t(12);t(1).glMatrix.setMatrixArrayType(Array);function n(u,v){var h=Object.keys(u);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(u);v&&(y=y.filter(function(T){return Object.getOwnPropertyDescriptor(u,T).enumerable})),h.push.apply(h,y)}return h}function s(u){for(var v=1;v<arguments.length;v++){var h=arguments[v]!=null?arguments[v]:{};v%2?n(Object(h),!0).forEach(function(y){c(u,y,h[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(h)):n(Object(h)).forEach(function(y){Object.defineProperty(u,y,Object.getOwnPropertyDescriptor(h,y))})}return u}function c(u,v,h){return v in u?Object.defineProperty(u,v,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[v]=h,u}const l=Symbol("inited");let f=null;typeof Worker=="function"&&(f=class extends Worker{constructor(u){if(u.worker===!0&&(u.worker=`./${u.id}.worker.js`),super(u.worker),this.options=u,!u.canvas){const{width:v,height:h}=this.getResolution(),y=r.ENV.createCanvas(v,h,{offscreen:!1});y.style&&(y.style.position="absolute"),y.dataset&&(y.dataset.layerId=u.id),u.canvas=y}this.canvas=u.canvas}get id(){return this.options.id}setResolution({width:u,height:v}){if(this[l])this.postMessage({type:"resolution_change",width:u,height:v});else{this.canvas.width=u,this.canvas.height=v;const h=this.options,y=h.canvas.transferControlToOffscreen(),T=s({},h);delete T.container,T.canvas=y,this.postMessage({type:"create",options:T},[y]),this[l]=!0}}getResolution(){if(this.canvas){const{width:u,height:v}=this.canvas;return{width:u,height:v}}return{width:300,height:150}}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}connect(u,v){Object.defineProperty(this,"parent",{value:u,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:v,writable:!1,configurable:!0})}disconnect(){delete this.parent,delete this.zOrder}dispatchPointerEvent(u){this.postMessage({type:"event",event:{cancelBubble:u.cancelBubble,bubbles:u.bubbles,detail:u.detail,identifier:u.identifier,layerX:u.layerX,layerY:u.layerY,originalX:u.originalX,originalY:u.originalY,type:u.type,x:u.x,y:u.y}})}}),e.default=f},function(i,e,t){t.r(e),(function(r){t.d(e,"default",function(){return E});var n=t(12),s=t(68),c=t(70),l=t(286),f=t(289),u=t(250),v=t(291),h=t(214),y=t(218),T=t(213);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("enteredTargets");function I(R){return R.id=R.id||`_layer${Math.random().toString(36).slice(2,12)}`,R.dataset||(R.dataset={}),R.dataset.layerId=R.id,R.connect=(D,U)=>{R.parent=D,Object.defineProperty(R,"zOrder",{value:U,writable:!1,configurable:!0})},R.disconnect=D=>{delete R.zOrder},R.canvas=R,R.getResolution=()=>({width:0,height:0}),R.setResolution=()=>!1,R.options={handleEvent:!1},R}function P(R,D){const U=R.children;let M=null;for(let W=0;W<U.length;W++){const $=U[W];if((D===$||M!=null)&&(M=$),M&&M!==D&&!M.offscreen)return M.canvas}return null}function w(R,D){const[U,M]=R.renderOffset,{width:W,height:$}=R.getResolution(),B=R.displayRatio;R.renderer.drawImage(D.canvas,-U/B,-M/B,W/B,$/B)}const d={};function m(R){const D=["mousedown","mouseup","mousemove","mousewheel","wheel","touchstart","touchend","touchmove","touchcancel","click","dblclick","longpress","tap","contextmenu"],U=R.container;U.addEventListener("mouseleave",M=>{const W=R[O];if(W.size){const $=new h.default("mouseleave");$.setOriginalEvent(M),[...W].forEach(B=>{B.dispatchEvent($)}),R[O].clear()}},{passive:!0}),D.forEach(M=>{U.addEventListener(M,W=>{const{left:$,top:B,displayRatio:N}=R.options,z=R.orderedChildren;Object(v.default)(W,{offsetLeft:$,offsetTop:B,displayRatio:N}).forEach(et=>{const at=et.identifier;if(et.type==="touchmove"||et.type==="touchend"){const V=d[at];V&&V.dispatchEvent(et),et.type==="touchend"&&delete d[at]}else{for(let V=z.length-1;V>=0;V--){const Q=z[V];if(Q.options.handleEvent!==!1){if(Q.dispatchPointerEvent(et)&&et.target!==Q)break;et.cancelBubble=!1}}if(et.target===z[0])for(let V=z.length-1;V>=0;V--){const Q=z[V];if(Q.options.handleEvent!==!1){et.target=Q;break}}}const ct=et.target;if(et.type==="touchstart"&&(d[at]=et.target),et.type==="mousemove"){const V=R[O];let Q;if(ct){const yt=ct.ancestors||[];Q=new Set([ct,...yt])}else Q=new Set;const ft=Object.entries(W);if(!V.has(ct)&&ct){const yt=new h.default("mouseenter");yt.setOriginalEvent(W),ft.forEach(([ht,Nt])=>{yt[ht]=Nt}),V.add(ct),ct.dispatchEvent(yt);const At=ct.ancestors;At&&At.forEach(ht=>{ht instanceof c.default&&!V.has(ht)&&(V.add(ht),ht.dispatchEvent(yt))})}const mt=new h.default("mouseleave");mt.setOriginalEvent(W),ft.forEach(([yt,At])=>{mt[yt]=At}),[...V].forEach(yt=>{Q.has(yt)||(V.delete(yt),yt.dispatchEvent(mt))})}})},{passive:M!=="contextmenu"})})}function p(R,D){if(D&&D.style){let{width:U,height:M,mode:W,container:$}=R;const{clientWidth:B,clientHeight:N}=$;U=U||B,M=M||N,W==="static"?(D.style.width=`${U}px`,D.style.height=`${M}px`):(D.style.top="0",D.style.left="0",D.style.width=`${B}px`,D.style.height=`${N}px`,D.style.transform="",D.style.webkitTransform="")}}const S=Symbol("offscreenLayerCount");class E extends u.default{constructor(D={}){if(super(),!D.container)if(typeof n.ENV.Container=="function")D.container=new n.ENV.Container(D.width||300,D.height||150);else throw new Error("No container specified.");if(this.container=D.container,this.container.style&&(this.container.style.overflow||(this.container.style.overflow="hidden"),this.container.style.position||(this.container.style.position="relative")),this.options=D,D.displayRatio=D.displayRatio||1,D.mode=D.mode||"scale",D.left=0,D.top=0,D.autoResize=D.autoResize!==!1,D.autoResize){let U;if(typeof globalThis<"u"?U=globalThis:U=typeof window<"u"?window:r,U.addEventListener){const M=this;U.addEventListener("resize",function W(){typeof document<"u"&&document.contains(M.container)?M.resize():U.removeEventListener("resize",W)})}}this[O]=new Set,this.setResolution(D),m(this),this[S]=0}get hasOffscreenCanvas(){return this[S]>0}set displayRatio(D){this.options.displayRatio!==D&&(this.options.displayRatio=D,this.resize())}get displayRatio(){return this.options.displayRatio}set height(D){this.options.height!==D&&(this.options.height=D,this.resize())}get height(){return this.options.height}set mode(D){this.options.mode!==D&&(this.options.mode=D,this.resize())}get mode(){return this.options.mode}set width(D){this.options.width!==D&&(this.options.width=D,this.resize())}get width(){return this.options.width}appendChild(D){!(D instanceof l.default)&&!(D instanceof f.default)&&I(D);const U=super.appendChild(D),M=D.canvas;return D.offscreen?this[S]++:this.container.appendChild(M),p(this.options,M),D.setResolution(this.getResolution()),U}forceUpdate(){this.hasOffscreenCanvas&&!this._requestID&&(this._requestID=Object(s.requestAnimationFrame)(()=>{delete this._requestID,this.render()}))}insertBefore(D,U){!(D instanceof l.default)&&!(D instanceof f.default)&&I(D);const M=super.insertBefore(D,U),W=D.canvas;if(!D.offscreen){const $=P(this,D);this.container.insertBefore(W,$)}return p(this.options,W),D.setResolution(this.getResolution()),M}layer(D="default",U={}){U=Object.assign({},this.options,U),U.id=D;const M=this.orderedChildren;for(let B=0;B<M.length;B++)if(M[B].id===D)return M[B];const W=U.worker;let $;return W?$=new f.default(U):$=new l.default(U),this.appendChild($),$}async preload(...D){const U=[],M=[],W=[];for(let $=0;$<D.length;$++){const B=D[$];let N;if(typeof B=="string")N=Object(y.loadTexture)(B);else if(Array.isArray(B))N=Object(y.loadFrames)(...B);else{const{id:z,src:J}=B;N=Object(y.loadTexture)(J,z)}N instanceof Promise||(N=Promise.resolve(N)),M.push(N.then(z=>{U.push(z),W[$]=z;const J=new h.default({type:"preload",detail:{current:z,loaded:U,resources:D}});this.dispatchEvent(J)}))}return await Promise.all(M),W}removeChild(D){const U=super.removeChild(D);if(U){D._prepareRenderFinished&&D._prepareRenderFinished();const M=D.canvas;M&&M.remove&&M.remove(),D.offscreen&&this[S]--}return U}render(){const D=this.orderedChildren;let U=null;const M=[];for(let W=0;W<D.length;W++){const $=D[W],B=M.length>0;if($ instanceof l.default&&!$.offscreen)if(!$.autoRender)B&&(console.warn("Some offscreen canvas will not be rendered."),M.length=0);else if(U=$,B){$.renderer.clear();for(let N=0;N<M.length;N++){const z=M[N];z.render(),w($,z)}M.length=0,$.render({clear:!1})}else $.prepareRender&&$.render();else $.offscreen?U?($.prepareRender&&$.render(),w(U,$)):M.push($):$ instanceof f.default&&B&&(console.warn("Some offscreen canvas will not be rendered."),M.length=0)}}replaceChild(D,U){const M=super.replaceChild(D,U);U.canvas.remove&&U.canvas.remove(),U.offscreen&&this[S]--;const W=D.canvas;if(!D.offscreen){const $=P(this,D);this.container.insertBefore(W,$)}return p(this.options,W),D.setResolution(this.getResolution()),M}resize(){const D=this.options;this.children.forEach(U=>{p(D,U.canvas)}),this.setResolution(D),this.dispatchEvent({type:"resize"})}setResolution({width:D,height:U}={}){const M=this.container,{clientWidth:W,clientHeight:$}=M;(D==null||U==null)&&(D=D??W,U=U??$);const{mode:B,displayRatio:N}=this.options;if(D*=N,U*=N,this.options.left=0,this.options.top=0,B==="stickyHeight"||B==="stickyLeft"||B==="stickyRight"){const z=D;D=W*U/$,B==="stickyHeight"&&(this.options.left=.5*(D-z)),B==="stickyRight"&&(this.options.left=D-z)}else if(B==="stickyWidth"||B==="stickyTop"||B==="stickyBottom"){const z=U;U=$*D/W,B==="stickyWidth"&&(this.options.top=.5*(U-z)),B==="stickyBottom"&&(this.options.top=U-z)}super.setResolution({width:D,height:U})}snapshot({offscreen:D=!1,layers:U}={}){const M=D?"snapshotOffScreenCanvas":"snapshotCanvas",{width:W,height:$}=this.getResolution();this[M]=this[M]||n.ENV.createCanvas(W,$,{offscreen:D});const B=this[M].getContext("2d");U=U||this.orderedChildren,this[M].width=W,this[M].height=$;for(let N=0;N<U.length;N++){const z=U[N];if(!z.options.ignoreSnapshot){z.render&&z.render();const J=z.canvas;J&&J!==z&&B.drawImage(J,0,0,W,$)}}return this[M]}}typeof document<"u"&&(E.prototype.layer3d=function(R,D={}){const U=D.url||"https://unpkg.com/sprite-extend-3d/dist/sprite-extend-3d.min.js";return new Promise((M,W)=>{const $=document.createElement("script");$.async=!1,$.src=U,$.onload=()=>{try{M(this.layer3d(R,D))}catch(B){W(B)}},document.documentElement.appendChild($)})}),T.default.registerNode(E,"scene")}).call(this,t(22))},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(214);t(1).glMatrix.setMatrixArrayType(Array);function n(s,{offsetTop:c=0,offsetLeft:l=0,displayRatio:f=1}={}){let u,v;const h=[],{left:y,top:T,width:O,height:I}=s.target.getBoundingClientRect(),P=s.target.width,w=s.target.height,d=s.changedTouches||[s];for(let p=0;p<d.length;p++){const S=d[p],E=S.identifier,{clientX:R,clientY:D}=S;R!=null&&D!=null&&h.push({x:Math.round((R|0)-y),y:Math.round((D|0)-T),identifier:E})}h.length<=0&&h.push({x:u,y:v});const m=[];return h.forEach(p=>{p.x!=null&&p.y!=null&&(u=(p.x*P/O-l)/f,v=(p.y*w/I-c)/f);const S=new r.default(s);Object.defineProperties(S,{layerX:{value:u,configurable:!0},layerY:{value:v,configurable:!0},originalX:{value:p.x},originalY:{value:p.y},x:{value:u,configurable:!0},y:{value:v,configurable:!0},identifier:{value:p.identifier}}),m.push(S)}),m}}]);Ie.version,Ie.Arc,Ie.Block,Ie.Cloud,Ie.Color;const rn=Ie.Ellipse;Ie.Gradient;const Je=Ie.Group,cd=Ie.Label,wo=Ie.Layer;Ie.LayerWorker,Ie.Node,Ie.Parallel;const gn=Ie.Path,nn=Ie.Polyline,Oo=Ie.Rect;Ie.Regular,Ie.Ring;const Wl=Ie.Scene,Fl=Ie.Sprite;Ie.SpriteSvg,Ie.Star,Ie.Triangle,Ie.helpers,Ie.createElement,Ie.isSpriteNode,Ie.registerNode,Ie.requestAnimationFrame,Ie.cancelAnimationFrame,Ie.ENV;var Ee=(i=>(i.Normal="Normal",i.Stroke="Stroke",i.Dotted="Dotted",i.LongDotted="LongDotted",i))(Ee||{}),de=(i=>(i.None="None",i.ShowFloatBar="ShowFloatBar",i.ZIndexFloatBar="ZIndexFloatBar",i.DeleteNode="DeleteNode",i.CopyNode="CopyNode",i.ZIndexNode="ZIndexNode",i.ZIndexBackgroundSVG="ZIndexBackgroundSVG",i.RotateNode="RotateNode",i.SetColorNode="SetColorNode",i.TranslateNode="TranslateNode",i.ScaleNode="ScaleNode",i.OriginalEvent="OriginalEvent",i.CreateScene="CreateScene",i.ActiveCursor="ActiveCursor",i.MoveCursor="MoveCursor",i.CommandEditor="CommandEditor",i.SetEditorData="SetEditorData",i.SetFontStyle="SetFontStyle",i.SetPoint="SetPoint",i.SetLock="SetLock",i.SetShapeOpt="SetShapeOpt",i.CameraChange="CameraChange",i.ActiveMethod="ActiveMethod",i.HidFloatBarBtn="HidFloatBarBtn",i))(de||{}),Tt=(i=>(i[i.Pencil=1]="Pencil",i[i.Eraser=2]="Eraser",i[i.PencilEraser=3]="PencilEraser",i[i.BitMapEraser=4]="BitMapEraser",i[i.Selector=5]="Selector",i[i.Clicker=6]="Clicker",i[i.Arrow=7]="Arrow",i[i.Hand=8]="Hand",i[i.LaserPen=9]="LaserPen",i[i.Text=10]="Text",i[i.Straight=11]="Straight",i[i.Rectangle=12]="Rectangle",i[i.Ellipse=13]="Ellipse",i[i.Star=14]="Star",i[i.Triangle=15]="Triangle",i[i.Rhombus=16]="Rhombus",i[i.Polygon=17]="Polygon",i[i.SpeechBalloon=18]="SpeechBalloon",i[i.Image=19]="Image",i[i.BackgroundSVG=20]="BackgroundSVG",i))(Tt||{}),Kt=(i=>(i[i.Local=1]="Local",i[i.Service=2]="Service",i[i.Worker=3]="Worker",i))(Kt||{}),te=(i=>(i[i.Pending=0]="Pending",i[i.Start=1]="Start",i[i.Doing=2]="Doing",i[i.Done=3]="Done",i[i.Unwritable=4]="Unwritable",i))(te||{}),vt=(i=>(i[i.None=0]="None",i[i.Init=1]="Init",i[i.UpdateCamera=2]="UpdateCamera",i[i.UpdateTools=3]="UpdateTools",i[i.CreateWork=4]="CreateWork",i[i.DrawWork=5]="DrawWork",i[i.FullWork=6]="FullWork",i[i.UpdateNode=7]="UpdateNode",i[i.RemoveNode=8]="RemoveNode",i[i.Clear=9]="Clear",i[i.Select=10]="Select",i[i.Destroy=11]="Destroy",i[i.Snapshot=12]="Snapshot",i[i.BoundingBox=13]="BoundingBox",i[i.Cursor=14]="Cursor",i[i.TextUpdate=15]="TextUpdate",i[i.GetTextActive=16]="GetTextActive",i[i.TasksQueue=17]="TasksQueue",i[i.CursorHover=18]="CursorHover",i[i.CursorBlur=19]="CursorBlur",i[i.Console=20]="Console",i[i.GetImageBitMap=23]="GetImageBitMap",i[i.AuthWriter=24]="AuthWriter",i[i.AuthReader=25]="AuthReader",i[i.AuthClear=26]="AuthClear",i[i.AuthPage=27]="AuthPage",i[i.GetVNodeInfo=28]="GetVNodeInfo",i[i.UpdateDpr=29]="UpdateDpr",i[i.SetFontFace=30]="SetFontFace",i[i.ReportError=31]="ReportError",i[i.ReportLog=32]="ReportLog",i[i.BackgroundSVGUpdate=33]="BackgroundSVGUpdate",i[i.BackgroundSVGDelete=34]="BackgroundSVGDelete",i))(vt||{}),Ut=(i=>(i[i.None=0]="None",i[i.Bg=1]="Bg",i[i.ServiceFloat=2]="ServiceFloat",i[i.Float=3]="Float",i[i.TopFloat=4]="TopFloat",i))(Ut||{}),Te=(i=>(i[i.none=1]="none",i[i.all=2]="all",i[i.both=3]="both",i[i.proportional=4]="proportional",i))(Te||{}),yr=(i=>(i[i.inside=0]="inside",i[i.outside=1]="outside",i[i.intersect=2]="intersect",i))(yr||{}),es=(i=>(i.Image="image",i.Iconify="iconify",i))(es||{});class Kr{constructor(){dt(this,"localWork");dt(this,"serviceWork");dt(this,"threadEngine")}registerForWorker(e){return this.threadEngine=e,this.localWork=e.localWork,this.serviceWork=e.serviceWork,this}}class ud extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.CopyNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.FullWork&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var n;const{workId:r}=t;r&&await((n=this.localWork)==null?void 0:n.consumeFull(t))}}const Vn="++",Me="selector",hd="all";class dd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetColorNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,textUpdateForWoker:f,needUndoTicker:u}=r,v=n.render||[],h=n.sp||[];if(c)for(const[y,T]of s.entries())f&&T.toolsType===Tt.Text?h.push({...T,workId:y,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0}):h.push({...T,workId:y,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return u&&h.push({type:vt.None,needUndoTicker:u}),{render:v,sp:h}}}class pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.ZIndexNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l}=t;r===Me&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l}=r,f=n.render||[],u=n.sp||[];if(c&&u)for(const[v,h]of s.entries())h.toolsType===Tt.BackgroundSVG&&u.push({...h,workId:v,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,updateNodeOpt:{useAnimation:!1}}),u.push({...h,workId:v,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return{render:f,sp:u}}}class vd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.TranslateNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var y,T;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,emitEventType:u,smoothSync:v,needUndoTicker:h}=t;r===Me&&n&&(n.workState===te.Done&&(n!=null&&n.translate)&&(n.translate[0]||n.translate[1])||n.workState!==te.Done?await((y=this.localWork)==null?void 0:y.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,isSync:!0,textUpdateForWoker:f,emitEventType:u,callback:this.updateSelectorCallback,smoothSync:v,needUndoTicker:h})):n.workState===te.Done&&((T=this.localWork)==null||T.vNodes.deleteLastTarget()))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l,smoothSync:f}=t,{willSyncService:u,isSync:v,updateSelectorOpt:h,textUpdateForWoker:y,needUndoTicker:T}=r,O=h.workState,I=n.render||[],P=n.sp||[];if(O===te.Start)return{sp:[],render:[]};const w=l==null?void 0:l.selectRect;if(u){P.push({type:vt.Select,selectIds:c.selectIds,selectRect:w,willSyncService:O===te.Done?!0:f,isSync:!0,points:O===te.Done&&c.getChildrenPoints()||void 0,textOpt:c.textOpt});const d={useAnimation:h.useAnimation||!1};h.uid&&(d.uid=h.uid);for(const[m,p]of s.entries())p.toolsType===Tt.BackgroundSVG&&P.push({...p,workId:m,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:O===te.Done?!0:f,updateNodeOpt:d}),y&&p.toolsType===Tt.Text?P.push({...p,workId:m,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:O===te.Done?!0:f,updateNodeOpt:d}):(f||O===te.Done)&&P.push({...p,workId:m,type:vt.UpdateNode,updateNodeOpt:d,isSync:v})}return T&&P.push({type:vt.None,needUndoTicker:T}),{render:I,sp:P}}}class gd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.ScaleNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willSyncService:s,willSerializeData:c,smoothSync:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willSyncService:s,willSerializeData:c,isSync:!0,callback:this.updateSelectorCallback.bind(this),smoothSync:l,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,needUndoTicker:h}=r,y=u.workState,T=n.render||[],O=n.sp||[],I=c==null?void 0:c.selectRect;if(y===te.Start)return{sp:[],render:[]};if(v){O.push({type:vt.Select,selectIds:s.selectIds,selectRect:I,willSyncService:y===te.Done?!0:f,isSync:!0,points:y===te.Done&&s.getChildrenPoints()||void 0,textOpt:s.textOpt});const P={useAnimation:u.useAnimation||!1};u.uid&&(P.uid=u.uid);for(const[w,d]of l.entries())d.toolsType===Tt.BackgroundSVG&&O.push({...d,workId:w,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:y===te.Done?!0:f,updateNodeOpt:P}),d.toolsType===Tt.Text?O.push({...d,workId:w,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:y===te.Done?!0:f,updateNodeOpt:P}):(f||y===te.Done)&&O.push({...d,workId:w,type:vt.UpdateNode,updateNodeOpt:P,isSync:!0})}return h&&O.push({type:vt.None,needUndoTicker:h}),{render:T,sp:O}}}class md extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.RotateNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var h;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,smoothSync:u,needUndoTicker:v}=t;r===Me&&n&&await((h=this.localWork)==null?void 0:h.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,isSync:!0,callback:this.updateSelectorCallback,smoothSync:u,needUndoTicker:v}))}updateSelectorCallback(t){const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,willSerializeData:h,isSync:y,needUndoTicker:T}=r,O=u.workState,I=n.render||[],P=n.sp||[],w=c==null?void 0:c.selectRect;if(v){h&&O===te.Done&&P.push({type:vt.Select,selectIds:s.selectIds,selectRect:w,willSyncService:!0,isSync:y,points:s.getChildrenPoints(),textOpt:s.textOpt,selectorColor:s.selectorColor,strokeColor:s.strokeColor,fillColor:s.fillColor,canTextEdit:s.canTextEdit,canRotate:s.canRotate,scaleType:s.scaleType,opt:s.getWorkOptions()||void 0,canLock:s.canLock,isLocked:s.isLocked,toolsTypes:s.toolsTypes,shapeOpt:s.shapeOpt,thickness:s.thickness,useStroke:s.useStroke,strokeType:s.strokeType});const d={useAnimation:u.useAnimation||!1};if(u.uid&&(d.uid=u.uid),f||O===te.Done)for(const[m,p]of l.entries())P.push({...p,workId:m,type:vt.UpdateNode,updateNodeOpt:d,isSync:y})}return T&&P.push({type:vt.None,needUndoTicker:T}),{render:I,sp:P}}}class yd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetFontStyle)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,textUpdateForWoker:h}=r,y=n.render||[],T=n.sp||[],O=l==null?void 0:l.selectRect;if(f&&T){v.fontSize&&T.push({type:vt.Select,selectIds:c.selectIds,selectRect:O,willSyncService:f,isSync:u,points:c.getChildrenPoints()});for(const[I,P]of s.entries())h&&P.toolsType===Tt.Text?T.push({...P,workId:I,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0}):T.push({...P,workId:I,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u})}return{render:y,sp:T}}}class Pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetPoint)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,emitEventType:this.emitEventType,willSerializeData:l,isSync:!0,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,needUndoTicker:v}=r,h=n.render||[],y=n.sp||[],T=l==null?void 0:l.selectRect;if(f&&y){for(const[O,I]of s.entries())y.push({...I,workId:O,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u});y.push({type:vt.Select,selectIds:c.selectIds,selectRect:T,willSyncService:f,isSync:u,points:c.getChildrenPoints()})}return v&&y.push({type:vt.None,needUndoTicker:v}),{render:h,sp:y}}}class Sd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetLock)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,needUndoTicker:h}=r,y=n.render||[],T=n.sp||[],O=l==null?void 0:l.selectRect;if(f&&T){for(const[I,P]of s.entries())T.push({...P,workId:I,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u});T.push({isLocked:v.isLocked,selectorColor:c.selectorColor,scaleType:c.scaleType,canRotate:c.canRotate,type:vt.Select,selectIds:c.selectIds,selectRect:O,willSyncService:f,isSync:u})}return h&&T.push({type:vt.None,needUndoTicker:h}),{render:y,sp:T}}}class xd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetShapeOpt)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,needUndoTicker:f}=r,u=n.render||[],v=n.sp||[];if(c&&v)for(const[h,y]of s.entries())v.push({...y,workId:h,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return f&&v.push({type:vt.None,needUndoTicker:f}),{render:u,sp:v}}}class Ul{constructor(e){dt(this,"builders",new Map);this.builders=new Map(e.map(t=>[t,this.build(t)]))}build(e){switch(e){case de.TranslateNode:return new vd;case de.ZIndexNode:return new pd;case de.CopyNode:return new ud;case de.SetColorNode:return new dd;case de.ScaleNode:return new gd;case de.RotateNode:return new md;case de.SetFontStyle:return new yd;case de.SetPoint:return new Pd;case de.SetLock:return new Sd;case de.SetShapeOpt:return new xd}}registerForWorker(e){return this.builders.forEach(t=>{t&&t.registerForWorker(e)}),this}consumeForWorker(e){for(const t of this.builders.values())if(t!=null&&t.consume(e))return!0;return!1}}const Td={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>i*(2-i),easeInOutQuad:i=>i<.5?2*i*i:-1+(4-2*i)*i,easeInCubic:i=>i*i*i,easeOutCubic:i=>--i*i*i+1,easeInOutCubic:i=>i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1,easeInQuart:i=>i*i*i*i,easeOutQuart:i=>1- --i*i*i*i,easeInOutQuart:i=>i<.5?8*i*i*i*i:1-8*--i*i*i*i,easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>1+--i*i*i*i*i,easeInOutQuint:i=>i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i,easeInSine:i=>1-Math.cos(i*Math.PI/2),easeOutSine:i=>Math.sin(i*Math.PI/2),easeInOutSine:i=>-(Math.cos(Math.PI*i)-1)/2,easeInExpo:i=>i<=0?0:Math.pow(2,10*i-10),easeOutExpo:i=>i>=1?1:1-Math.pow(2,-10*i),easeInOutExpo:i=>i<=0?0:i>=1?1:i<.5?Math.pow(2,20*i-10)/2:(2-Math.pow(2,-20*i+10))/2};class pt{constructor(e=0,t=0,r=1){this.x=e,this.y=t,this.z=r}get XY(){return[this.x,this.y]}setz(e){return this.z=e,this}setXY(e=this.x,t=this.y){return this.x=e,this.y=t,this}set(e=this.x,t=this.y,r=this.z){return this.x=e,this.y=t,this.z=r,this}setTo({x:e=0,y:t=0,z:r=1}){return this.x=e,this.y=t,this.z=r,this}rot(e){if(e===0)return this;const{x:t,y:r}=this,n=Math.sin(e),s=Math.cos(e);return this.x=t*s-r*n,this.y=t*n+r*s,this}rotWith(e,t){if(t===0)return this;const r=this.x-e.x,n=this.y-e.y,s=Math.sin(t),c=Math.cos(t);return this.x=e.x+(r*c-n*s),this.y=e.y+(r*s+n*c),this}clone(){const{x:e,y:t,z:r}=this;return new pt(e,t,r)}sub(e){return this.x-=e.x,this.y-=e.y,this}subXY(e,t){return this.x-=e,this.y-=t,this}subScalar(e){return this.x-=e,this.y-=e,this}add(e){return this.x+=e.x,this.y+=e.y,this}addXY(e,t){return this.x+=e,this.y+=t,this}addScalar(e){return this.x+=e,this.y+=e,this}clamp(e,t){return this.x=Math.max(this.x,e),this.y=Math.max(this.y,e),t!==void 0&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(e){return this.x/=e,this.y/=e,this}divV(e){return this.x/=e.x,this.y/=e.y,this}mul(e){return this.x*=e,this.y*=e,this}mulV(e){return this.x*=e.x,this.y*=e.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(e,t){const r=pt.Tan(e,this);return this.add(r.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(e){return this.x=this.y*e.z-this.z*e.y,this.y=this.z*e.x-this.x*e.z,this}dpr(e){return pt.Dpr(this,e)}cpr(e){return pt.Cpr(this,e)}len2(){return pt.Len2(this)}len(){return pt.Len(this)}pry(e){return pt.Pry(this,e)}per(){const{x:e,y:t}=this;return this.x=t,this.y=-e,this}uni(){return pt.Uni(this)}tan(e){return pt.Tan(this,e)}dist(e){return pt.Dist(this,e)}distanceToLineSegment(e,t){return pt.DistanceToLineSegment(e,t,this)}slope(e){return pt.Slope(this,e)}snapToGrid(e){return this.x=Math.round(this.x/e)*e,this.y=Math.round(this.y/e)*e,this}angle(e){return pt.Angle(this,e)}toAngle(){return pt.ToAngle(this)}lrp(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this}equals(e,t){return pt.Equals(this,e,t)}equalsXY(e,t){return pt.EqualsXY(this,e,t)}norm(){const e=this.len();return this.x=e===0?0:this.x/e,this.y=e===0?0:this.y/e,this}toFixed(){return pt.ToFixed(this)}toString(){return pt.ToString(pt.ToFixed(this))}toJson(){return pt.ToJson(this)}toArray(){return pt.ToArray(this)}static Add(e,t){return new pt(e.x+t.x,e.y+t.y)}static AddXY(e,t,r){return new pt(e.x+t,e.y+r)}static Sub(e,t){return new pt(e.x-t.x,e.y-t.y)}static SubXY(e,t,r){return new pt(e.x-t,e.y-r)}static AddScalar(e,t){return new pt(e.x+t,e.y+t)}static SubScalar(e,t){return new pt(e.x-t,e.y-t)}static Div(e,t){return new pt(e.x/t,e.y/t)}static Mul(e,t){return new pt(e.x*t,e.y*t)}static DivV(e,t){return new pt(e.x/t.x,e.y/t.y)}static MulV(e,t){return new pt(e.x*t.x,e.y*t.y)}static Neg(e){return new pt(-e.x,-e.y)}static Per(e){return new pt(e.y,-e.x)}static Dist2(e,t){return pt.Sub(e,t).len2()}static Abs(e){return new pt(Math.abs(e.x),Math.abs(e.y))}static Dist(e,t){return Math.hypot(e.y-t.y,e.x-t.x)}static Dpr(e,t){return e.x*t.x+e.y*t.y}static Cross(e,t){return new pt(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z)}static Cpr(e,t){return e.x*t.y-t.x*e.y}static Len2(e){return e.x*e.x+e.y*e.y}static Len(e){return Math.hypot(e.x,e.y)}static Pry(e,t){return pt.Dpr(e,t)/pt.Len(t)}static Uni(e){return pt.Div(e,pt.Len(e))}static Tan(e,t){return pt.Uni(pt.Sub(e,t))}static Min(e,t){return new pt(Math.min(e.x,t.x),Math.min(e.y,t.y))}static Max(e,t){return new pt(Math.max(e.x,t.x),Math.max(e.y,t.y))}static From(e){return new pt().add(e)}static FromArray(e){return new pt(e[0],e[1])}static Rot(e,t=0){const r=Math.sin(t),n=Math.cos(t);return new pt(e.x*n-e.y*r,e.x*r+e.y*n)}static RotWith(e,t,r){const n=e.x-t.x,s=e.y-t.y,c=Math.sin(r),l=Math.cos(r);return new pt(t.x+(n*l-s*c),t.y+(n*c+s*l))}static NearestPointOnLineThroughPoint(e,t,r){return pt.Mul(t,pt.Sub(r,e).pry(t)).add(e)}static NearestPointOnLineSegment(e,t,r,n=!0){const s=pt.Tan(t,e),c=pt.Add(e,pt.Mul(s,pt.Sub(r,e).pry(s)));if(n){if(c.x<Math.min(e.x,t.x))return pt.Cast(e.x<t.x?e:t);if(c.x>Math.max(e.x,t.x))return pt.Cast(e.x>t.x?e:t);if(c.y<Math.min(e.y,t.y))return pt.Cast(e.y<t.y?e:t);if(c.y>Math.max(e.y,t.y))return pt.Cast(e.y>t.y?e:t)}return c}static DistanceToLineThroughPoint(e,t,r){return pt.Dist(r,pt.NearestPointOnLineThroughPoint(e,t,r))}static DistanceToLineSegment(e,t,r,n=!0){return pt.Dist(r,pt.NearestPointOnLineSegment(e,t,r,n))}static Snap(e,t=1){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}static Cast(e){return e instanceof pt?e:pt.From(e)}static Slope(e,t){return e.x===t.y?NaN:(e.y-t.y)/(e.x-t.x)}static Angle(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}static Lrp(e,t,r){return pt.Sub(t,e).mul(r).add(e)}static Med(e,t){return new pt((e.x+t.x)/2,(e.y+t.y)/2)}static Equals(e,t,r=1e-4){return Math.abs(e.x-t.x)<r&&Math.abs(e.y-t.y)<r}static EqualsXY(e,t,r){return e.x===t&&e.y===r}static EqualsXYZ(e,t,r=1e-4){return pt.Equals(e,t,r)&&Math.abs((e.z||0)-(t.z||0))<r}static Clockwise(e,t,r){return(r.x-e.x)*(t.y-e.y)-(t.x-e.x)*(r.y-e.y)<0}static Rescale(e,t){const r=pt.Len(e);return new pt(t*e.x/r,t*e.y/r)}static ScaleWithOrigin(e,t,r){return pt.Sub(e,r).mul(t).add(r)}static ScaleWOrigin(e,t,r){return pt.Sub(e,r).mulV(t).add(r)}static ToFixed(e,t=2){return new pt(+e.x.toFixed(t),+e.y.toFixed(t),+e.z.toFixed(t))}static Nudge(e,t,r){return pt.Add(e,pt.Tan(t,e).mul(r))}static ToString(e){return`${e.x}, ${e.y}`}static ToAngle(e){let t=Math.atan2(e.y,e.x);return t<0&&(t+=Math.PI*2),t}static FromAngle(e,t=1){return new pt(Math.cos(e)*t,Math.sin(e)*t)}static ToArray(e){return[e.x,e.y,e.z]}static ToJson(e){const{x:t,y:r,z:n}=e;return{x:t,y:r,z:n}}static Average(e){const t=e.length,r=new pt(0,0);for(let n=0;n<t;n++)r.add(e[n]);return r.div(t)}static Clamp(e,t,r){return r===void 0?new pt(Math.min(Math.max(e.x,t)),Math.min(Math.max(e.y,t))):new pt(Math.min(Math.max(e.x,t),r),Math.min(Math.max(e.y,t),r))}static PointsBetween(e,t,r=6){const n=[];for(let s=0;s<r;s++){const c=Td.easeInQuad(s/(r-1)),l=pt.Lrp(e,t,c);l.z=Math.min(1,.5+Math.abs(.5-Cd(c))*.65),n.push(l)}return n}static SnapToGrid(e,t=8){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}}const Cd=i=>i<.5?2*i*i:-1+(4-2*i)*i;class Jt extends pt{constructor(e=0,t=0,r=0,n={x:0,y:0},s=0,c=0){super(e,t,r),this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(e){this.a=e}setT(e){this.t=e}setv(e){return this.v={x:e.x,y:e.y},this}set(e=this.x,t=this.y,r=this.z,n=this.v,s=this.t,c=this.a){return this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c,this}clone(){const{x:e,y:t,z:r,v:n,t:s,a:c}=this,l={x:n.x,y:n.y};return new Jt(e,t,r,l,s,c)}distance(e){return Jt.GetDistance(this,e)}isNear(e,t){return Jt.IsNear(this,e,t)}getAngleByPoints(e,t){return Jt.GetAngleByPoints(e,this,t)}static Sub(e,t){return new Jt(e.x-t.x,e.y-t.y)}static Add(e,t){return new Jt(e.x+t.x,e.y+t.y)}static GetDistance(e,t){return Jt.Len(e.clone().sub(t))}static GetAngleByPoints(e,t,r){const n=t.x-e.x,s=r.x-t.x,c=t.y-e.y,l=r.y-t.y;let f=0;const u=Math.sqrt(n*n+c*c),v=Math.sqrt(s*s+l*l);if(u&&v){const h=n*s+c*l;f=Math.acos(h/(u*v)),f=f/Math.PI*180;let y=n*l-c*s;y=y>0?1:-1,f=180+y*f}return f}static IsNear(e,t,r){return Jt.Len(e.clone().sub(t))<r}static RotWith(e,t,r,n=2){const s=e.x-t.x,c=e.y-t.y,l=Math.sin(r),f=Math.cos(r),u=Math.pow(10,n),v=Math.floor((t.x+(s*f-c*l))*u)/u,h=Math.floor((t.y+(s*l+c*f))*u)/u;return new Jt(v,h)}static GetDotStroke(e,t,r=16){const n=new pt(1,1),s=Math.PI+.001,c=Jt.Add(e,Jt.Sub(e,n).uni().per().mul(-t)),l=[];for(let f=1/r,u=f;u<=1;u+=f)l.push(Jt.RotWith(c,e,s*2*u));return l}static GetSemicircleStroke(e,t,r=-1,n=8){const s=r*(Math.PI+.001),c=[];for(let l=1/n,f=l;f<=1;f+=l)c.push(Jt.RotWith(t,e,s*f));return c}}var sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function mn(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Id=typeof sn=="object"&&sn&&sn.Object===Object&&sn,Yl=Id,wd=Yl,Od=typeof self=="object"&&self&&self.Object===Object&&self,Ad=wd||Od||Function("return this")(),Zr=Ad,Ed=Zr,Md=Ed.Symbol,wi=Md,$l=wi,Xl=Object.prototype,Ld=Xl.hasOwnProperty,Rd=Xl.toString,Oi=$l?$l.toStringTag:void 0;function bd(i){var e=Ld.call(i,Oi),t=i[Oi];try{i[Oi]=void 0;var r=!0}catch{}var n=Rd.call(i);return r&&(e?i[Oi]=t:delete i[Oi]),n}var Dd=bd,Nd=Object.prototype,Bd=Nd.toString;function Wd(i){return Bd.call(i)}var Fd=Wd,zl=wi,Ud=Dd,Yd=Fd,$d="[object Null]",Xd="[object Undefined]",jl=zl?zl.toStringTag:void 0;function zd(i){return i==null?i===void 0?Xd:$d:jl&&jl in Object(i)?Ud(i):Yd(i)}var Kn=zd;function jd(i){return i!=null&&typeof i=="object"}var on=jd,Gd=Kn,kd=on,Hd="[object Number]";function Vd(i){return typeof i=="number"||kd(i)&&Gd(i)==Hd}var Kd=Vd,Qe=mn(Kd);function Zd(){this.__data__=[],this.size=0}var Jd=Zd;function Qd(i,e){return i===e||i!==i&&e!==e}var Ao=Qd,qd=Ao;function _d(i,e){for(var t=i.length;t--;)if(qd(i[t][0],e))return t;return-1}var rs=_d,tp=rs,ep=Array.prototype,rp=ep.splice;function np(i){var e=this.__data__,t=tp(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():rp.call(e,t,1),--this.size,!0}var ip=np,sp=rs;function op(i){var e=this.__data__,t=sp(e,i);return t<0?void 0:e[t][1]}var ap=op,lp=rs;function fp(i){return lp(this.__data__,i)>-1}var cp=fp,up=rs;function hp(i,e){var t=this.__data__,r=up(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var dp=hp,pp=Jd,vp=ip,gp=ap,mp=cp,yp=dp;function Zn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Zn.prototype.clear=pp,Zn.prototype.delete=vp,Zn.prototype.get=gp,Zn.prototype.has=mp,Zn.prototype.set=yp;var ns=Zn,Pp=ns;function Sp(){this.__data__=new Pp,this.size=0}var xp=Sp;function Tp(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Cp=Tp;function Ip(i){return this.__data__.get(i)}var wp=Ip;function Op(i){return this.__data__.has(i)}var Ap=Op;function Ep(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var Ai=Ep,Mp=Kn,Lp=Ai,Rp="[object AsyncFunction]",bp="[object Function]",Dp="[object GeneratorFunction]",Np="[object Proxy]";function Bp(i){if(!Lp(i))return!1;var e=Mp(i);return e==bp||e==Dp||e==Rp||e==Np}var Gl=Bp,Wp=Zr,Fp=Wp["__core-js_shared__"],Up=Fp,Eo=Up,kl=function(){var i=/[^.]+$/.exec(Eo&&Eo.keys&&Eo.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function Yp(i){return!!kl&&kl in i}var $p=Yp,Xp=Function.prototype,zp=Xp.toString;function jp(i){if(i!=null){try{return zp.call(i)}catch{}try{return i+""}catch{}}return""}var Hl=jp,Gp=Gl,kp=$p,Hp=Ai,Vp=Hl,Kp=/[\\^$.*+?()[\]{}|]/g,Zp=/^\[object .+?Constructor\]$/,Jp=Function.prototype,Qp=Object.prototype,qp=Jp.toString,_p=Qp.hasOwnProperty,t0=RegExp("^"+qp.call(_p).replace(Kp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function e0(i){if(!Hp(i)||kp(i))return!1;var e=Gp(i)?t0:Zp;return e.test(Vp(i))}var r0=e0;function n0(i,e){return i==null?void 0:i[e]}var i0=n0,s0=r0,o0=i0;function a0(i,e){var t=o0(i,e);return s0(t)?t:void 0}var Dn=a0,l0=Dn,f0=Zr,c0=l0(f0,"Map"),Mo=c0,u0=Dn,h0=u0(Object,"create"),is=h0,Vl=is;function d0(){this.__data__=Vl?Vl(null):{},this.size=0}var p0=d0;function v0(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var g0=v0,m0=is,y0="__lodash_hash_undefined__",P0=Object.prototype,S0=P0.hasOwnProperty;function x0(i){var e=this.__data__;if(m0){var t=e[i];return t===y0?void 0:t}return S0.call(e,i)?e[i]:void 0}var T0=x0,C0=is,I0=Object.prototype,w0=I0.hasOwnProperty;function O0(i){var e=this.__data__;return C0?e[i]!==void 0:w0.call(e,i)}var A0=O0,E0=is,M0="__lodash_hash_undefined__";function L0(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=E0&&e===void 0?M0:e,this}var R0=L0,b0=p0,D0=g0,N0=T0,B0=A0,W0=R0;function Jn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Jn.prototype.clear=b0,Jn.prototype.delete=D0,Jn.prototype.get=N0,Jn.prototype.has=B0,Jn.prototype.set=W0;var F0=Jn,Kl=F0,U0=ns,Y0=Mo;function $0(){this.size=0,this.__data__={hash:new Kl,map:new(Y0||U0),string:new Kl}}var X0=$0;function z0(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var j0=z0,G0=j0;function k0(i,e){var t=i.__data__;return G0(e)?t[typeof e=="string"?"string":"hash"]:t.map}var ss=k0,H0=ss;function V0(i){var e=H0(this,i).delete(i);return this.size-=e?1:0,e}var K0=V0,Z0=ss;function J0(i){return Z0(this,i).get(i)}var Q0=J0,q0=ss;function _0(i){return q0(this,i).has(i)}var tv=_0,ev=ss;function rv(i,e){var t=ev(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var nv=rv,iv=X0,sv=K0,ov=Q0,av=tv,lv=nv;function Qn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Qn.prototype.clear=iv,Qn.prototype.delete=sv,Qn.prototype.get=ov,Qn.prototype.has=av,Qn.prototype.set=lv;var Zl=Qn,fv=ns,cv=Mo,uv=Zl,hv=200;function dv(i,e){var t=this.__data__;if(t instanceof fv){var r=t.__data__;if(!cv||r.length<hv-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new uv(r)}return t.set(i,e),this.size=t.size,this}var pv=dv,vv=ns,gv=xp,mv=Cp,yv=wp,Pv=Ap,Sv=pv;function qn(i){var e=this.__data__=new vv(i);this.size=e.size}qn.prototype.clear=gv,qn.prototype.delete=mv,qn.prototype.get=yv,qn.prototype.has=Pv,qn.prototype.set=Sv;var Jl=qn;function xv(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var Tv=xv,Cv=Dn,Iv=function(){try{var i=Cv(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Ql=Iv,ql=Ql;function wv(i,e,t){e=="__proto__"&&ql?ql(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var _l=wv,Ov=_l,Av=Ao,Ev=Object.prototype,Mv=Ev.hasOwnProperty;function Lv(i,e,t){var r=i[e];(!(Mv.call(i,e)&&Av(r,t))||t===void 0&&!(e in i))&&Ov(i,e,t)}var tf=Lv,Rv=tf,bv=_l;function Dv(i,e,t,r){var n=!t;t||(t={});for(var s=-1,c=e.length;++s<c;){var l=e[s],f=r?r(t[l],i[l],l,t,i):void 0;f===void 0&&(f=i[l]),n?bv(t,l,f):Rv(t,l,f)}return t}var os=Dv;function Nv(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Bv=Nv,Wv=Kn,Fv=on,Uv="[object Arguments]";function Yv(i){return Fv(i)&&Wv(i)==Uv}var $v=Yv,ef=$v,Xv=on,rf=Object.prototype,zv=rf.hasOwnProperty,jv=rf.propertyIsEnumerable,Gv=ef(function(){return arguments}())?ef:function(i){return Xv(i)&&zv.call(i,"callee")&&!jv.call(i,"callee")},nf=Gv,kv=Array.isArray,Ei=kv,as={exports:{}};function Hv(){return!1}var Vv=Hv;as.exports,function(i,e){var t=Zr,r=Vv,n=e&&!e.nodeType&&e,s=n&&!0&&i&&!i.nodeType&&i,c=s&&s.exports===n,l=c?t.Buffer:void 0,f=l?l.isBuffer:void 0,u=f||r;i.exports=u}(as,as.exports);var Lo=as.exports,Kv=9007199254740991,Zv=/^(?:0|[1-9]\d*)$/;function Jv(i,e){var t=typeof i;return e=e??Kv,!!e&&(t=="number"||t!="symbol"&&Zv.test(i))&&i>-1&&i%1==0&&i<e}var Qv=Jv,qv=9007199254740991;function _v(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=qv}var sf=_v,tg=Kn,eg=sf,rg=on,ng="[object Arguments]",ig="[object Array]",sg="[object Boolean]",og="[object Date]",ag="[object Error]",lg="[object Function]",fg="[object Map]",cg="[object Number]",ug="[object Object]",hg="[object RegExp]",dg="[object Set]",pg="[object String]",vg="[object WeakMap]",gg="[object ArrayBuffer]",mg="[object DataView]",yg="[object Float32Array]",Pg="[object Float64Array]",Sg="[object Int8Array]",xg="[object Int16Array]",Tg="[object Int32Array]",Cg="[object Uint8Array]",Ig="[object Uint8ClampedArray]",wg="[object Uint16Array]",Og="[object Uint32Array]",$e={};$e[yg]=$e[Pg]=$e[Sg]=$e[xg]=$e[Tg]=$e[Cg]=$e[Ig]=$e[wg]=$e[Og]=!0,$e[ng]=$e[ig]=$e[gg]=$e[sg]=$e[mg]=$e[og]=$e[ag]=$e[lg]=$e[fg]=$e[cg]=$e[ug]=$e[hg]=$e[dg]=$e[pg]=$e[vg]=!1;function Ag(i){return rg(i)&&eg(i.length)&&!!$e[tg(i)]}var Eg=Ag;function Mg(i){return function(e){return i(e)}}var ls=Mg,fs={exports:{}};fs.exports,function(i,e){var t=Yl,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s&&t.process,l=function(){try{var f=n&&n.require&&n.require("util").types;return f||c&&c.binding&&c.binding("util")}catch{}}();i.exports=l}(fs,fs.exports);var Ro=fs.exports,Lg=Eg,Rg=ls,of=Ro,af=of&&of.isTypedArray,bg=af?Rg(af):Lg,lf=bg,Dg=Bv,Ng=nf,Bg=Ei,Wg=Lo,Fg=Qv,Ug=lf,Yg=Object.prototype,$g=Yg.hasOwnProperty;function Xg(i,e){var t=Bg(i),r=!t&&Ng(i),n=!t&&!r&&Wg(i),s=!t&&!r&&!n&&Ug(i),c=t||r||n||s,l=c?Dg(i.length,String):[],f=l.length;for(var u in i)(e||$g.call(i,u))&&!(c&&(u=="length"||n&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Fg(u,f)))&&l.push(u);return l}var ff=Xg,zg=Object.prototype;function jg(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||zg;return i===t}var bo=jg;function Gg(i,e){return function(t){return i(e(t))}}var cf=Gg,kg=cf,Hg=kg(Object.keys,Object),Vg=Hg,Kg=bo,Zg=Vg,Jg=Object.prototype,Qg=Jg.hasOwnProperty;function qg(i){if(!Kg(i))return Zg(i);var e=[];for(var t in Object(i))Qg.call(i,t)&&t!="constructor"&&e.push(t);return e}var _g=qg,tm=Gl,em=sf;function rm(i){return i!=null&&em(i.length)&&!tm(i)}var Do=rm,nm=ff,im=_g,sm=Do;function om(i){return sm(i)?nm(i):im(i)}var No=om,am=os,lm=No;function fm(i,e){return i&&am(e,lm(e),i)}var cm=fm;function um(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var hm=um,dm=Ai,pm=bo,vm=hm,gm=Object.prototype,mm=gm.hasOwnProperty;function ym(i){if(!dm(i))return vm(i);var e=pm(i),t=[];for(var r in i)r=="constructor"&&(e||!mm.call(i,r))||t.push(r);return t}var Pm=ym,Sm=ff,xm=Pm,Tm=Do;function Cm(i){return Tm(i)?Sm(i,!0):xm(i)}var Bo=Cm,Im=os,wm=Bo;function Om(i,e){return i&&Im(e,wm(e),i)}var Am=Om,cs={exports:{}};cs.exports,function(i,e){var t=Zr,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s?t.Buffer:void 0,l=c?c.allocUnsafe:void 0;function f(u,v){if(v)return u.slice();var h=u.length,y=l?l(h):new u.constructor(h);return u.copy(y),y}i.exports=f}(cs,cs.exports);var Em=cs.exports;function Mm(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var Lm=Mm;function Rm(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var c=i[t];e(c,t,i)&&(s[n++]=c)}return s}var uf=Rm;function bm(){return[]}var hf=bm,Dm=uf,Nm=hf,Bm=Object.prototype,Wm=Bm.propertyIsEnumerable,df=Object.getOwnPropertySymbols,Fm=df?function(i){return i==null?[]:(i=Object(i),Dm(df(i),function(e){return Wm.call(i,e)}))}:Nm,Wo=Fm,Um=os,Ym=Wo;function $m(i,e){return Um(i,Ym(i),e)}var Xm=$m;function zm(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var Fo=zm,jm=cf,Gm=jm(Object.getPrototypeOf,Object),pf=Gm,km=Fo,Hm=pf,Vm=Wo,Km=hf,Zm=Object.getOwnPropertySymbols,Jm=Zm?function(i){for(var e=[];i;)km(e,Vm(i)),i=Hm(i);return e}:Km,vf=Jm,Qm=os,qm=vf;function _m(i,e){return Qm(i,qm(i),e)}var ty=_m,ey=Fo,ry=Ei;function ny(i,e,t){var r=e(i);return ry(i)?r:ey(r,t(i))}var gf=ny,iy=gf,sy=Wo,oy=No;function ay(i){return iy(i,oy,sy)}var mf=ay,ly=gf,fy=vf,cy=Bo;function uy(i){return ly(i,cy,fy)}var hy=uy,dy=Dn,py=Zr,vy=dy(py,"DataView"),gy=vy,my=Dn,yy=Zr,Py=my(yy,"Promise"),Sy=Py,xy=Dn,Ty=Zr,Cy=xy(Ty,"Set"),yf=Cy,Iy=Dn,wy=Zr,Oy=Iy(wy,"WeakMap"),Ay=Oy,Uo=gy,Yo=Mo,$o=Sy,Xo=yf,zo=Ay,Pf=Kn,_n=Hl,Sf="[object Map]",Ey="[object Object]",xf="[object Promise]",Tf="[object Set]",Cf="[object WeakMap]",If="[object DataView]",My=_n(Uo),Ly=_n(Yo),Ry=_n($o),by=_n(Xo),Dy=_n(zo),Nn=Pf;(Uo&&Nn(new Uo(new ArrayBuffer(1)))!=If||Yo&&Nn(new Yo)!=Sf||$o&&Nn($o.resolve())!=xf||Xo&&Nn(new Xo)!=Tf||zo&&Nn(new zo)!=Cf)&&(Nn=function(i){var e=Pf(i),t=e==Ey?i.constructor:void 0,r=t?_n(t):"";if(r)switch(r){case My:return If;case Ly:return Sf;case Ry:return xf;case by:return Tf;case Dy:return Cf}return e});var us=Nn,Ny=Object.prototype,By=Ny.hasOwnProperty;function Wy(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&By.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Fy=Wy,Uy=Zr,Yy=Uy.Uint8Array,wf=Yy,Of=wf;function $y(i){var e=new i.constructor(i.byteLength);return new Of(e).set(new Of(i)),e}var jo=$y,Xy=jo;function zy(i,e){var t=e?Xy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var jy=zy,Gy=/\w*$/;function ky(i){var e=new i.constructor(i.source,Gy.exec(i));return e.lastIndex=i.lastIndex,e}var Hy=ky,Af=wi,Ef=Af?Af.prototype:void 0,Mf=Ef?Ef.valueOf:void 0;function Vy(i){return Mf?Object(Mf.call(i)):{}}var Ky=Vy,Zy=jo;function Jy(i,e){var t=e?Zy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var Qy=Jy,qy=jo,_y=jy,t1=Hy,e1=Ky,r1=Qy,n1="[object Boolean]",i1="[object Date]",s1="[object Map]",o1="[object Number]",a1="[object RegExp]",l1="[object Set]",f1="[object String]",c1="[object Symbol]",u1="[object ArrayBuffer]",h1="[object DataView]",d1="[object Float32Array]",p1="[object Float64Array]",v1="[object Int8Array]",g1="[object Int16Array]",m1="[object Int32Array]",y1="[object Uint8Array]",P1="[object Uint8ClampedArray]",S1="[object Uint16Array]",x1="[object Uint32Array]";function T1(i,e,t){var r=i.constructor;switch(e){case u1:return qy(i);case n1:case i1:return new r(+i);case h1:return _y(i,t);case d1:case p1:case v1:case g1:case m1:case y1:case P1:case S1:case x1:return r1(i,t);case s1:return new r;case o1:case f1:return new r(i);case a1:return t1(i);case l1:return new r;case c1:return e1(i)}}var C1=T1,I1=Ai,Lf=Object.create,w1=function(){function i(){}return function(e){if(!I1(e))return{};if(Lf)return Lf(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),O1=w1,A1=O1,E1=pf,M1=bo;function L1(i){return typeof i.constructor=="function"&&!M1(i)?A1(E1(i)):{}}var R1=L1,b1=us,D1=on,N1="[object Map]";function B1(i){return D1(i)&&b1(i)==N1}var W1=B1,F1=W1,U1=ls,Rf=Ro,bf=Rf&&Rf.isMap,Y1=bf?U1(bf):F1,$1=Y1,X1=us,z1=on,j1="[object Set]";function G1(i){return z1(i)&&X1(i)==j1}var k1=G1,H1=k1,V1=ls,Df=Ro,Nf=Df&&Df.isSet,K1=Nf?V1(Nf):H1,Bf=K1,Z1=mn(Bf),J1=Jl,Q1=Tv,q1=tf,_1=cm,tP=Am,eP=Em,rP=Lm,nP=Xm,iP=ty,sP=mf,oP=hy,aP=us,lP=Fy,fP=C1,cP=R1,uP=Ei,hP=Lo,dP=$1,pP=Ai,vP=Bf,gP=No,mP=Bo,yP=1,PP=2,SP=4,Wf="[object Arguments]",xP="[object Array]",TP="[object Boolean]",CP="[object Date]",IP="[object Error]",Ff="[object Function]",wP="[object GeneratorFunction]",OP="[object Map]",AP="[object Number]",Uf="[object Object]",EP="[object RegExp]",MP="[object Set]",LP="[object String]",RP="[object Symbol]",bP="[object WeakMap]",DP="[object ArrayBuffer]",NP="[object DataView]",BP="[object Float32Array]",WP="[object Float64Array]",FP="[object Int8Array]",UP="[object Int16Array]",YP="[object Int32Array]",$P="[object Uint8Array]",XP="[object Uint8ClampedArray]",zP="[object Uint16Array]",jP="[object Uint32Array]",We={};We[Wf]=We[xP]=We[DP]=We[NP]=We[TP]=We[CP]=We[BP]=We[WP]=We[FP]=We[UP]=We[YP]=We[OP]=We[AP]=We[Uf]=We[EP]=We[MP]=We[LP]=We[RP]=We[$P]=We[XP]=We[zP]=We[jP]=!0,We[IP]=We[Ff]=We[bP]=!1;function hs(i,e,t,r,n,s){var c,l=e&yP,f=e&PP,u=e&SP;if(t&&(c=n?t(i,r,n,s):t(i)),c!==void 0)return c;if(!pP(i))return i;var v=uP(i);if(v){if(c=lP(i),!l)return rP(i,c)}else{var h=aP(i),y=h==Ff||h==wP;if(hP(i))return eP(i,l);if(h==Uf||h==Wf||y&&!n){if(c=f||y?{}:cP(i),!l)return f?iP(i,tP(c,i)):nP(i,_1(c,i))}else{if(!We[h])return n?i:{};c=fP(i,h,l)}}s||(s=new J1);var T=s.get(i);if(T)return T;s.set(i,c),vP(i)?i.forEach(function(P){c.add(hs(P,e,t,P,i,s))}):dP(i)&&i.forEach(function(P,w){c.set(w,hs(P,e,t,w,i,s))});var O=u?f?oP:sP:f?mP:gP,I=v?void 0:O(i);return Q1(I||i,function(P,w){I&&(w=P,P=i[w]),q1(c,w,hs(P,e,t,w,i,s))}),c}var GP=hs,kP=GP,HP=1,VP=4;function KP(i){return kP(i,HP|VP)}var ZP=KP,ar=mn(ZP);const Yf="1.1.35-beta.0",JP="@netless/appliance-plugin";if(typeof window<"u"){let i=window.__netlessUA||"";i+=` ${JP}@${Yf}`,window.__netlessUA=i}const ur={syncOpt:{interval:300},bufferSize:{full:2e4,sub:600},bezier:{combineUnitTime:300},pencilEraser:{maxImageWidth:1920,maxImageHeight:1920,maxCombineTime:500}};function yn(i,e=!0){const t=i.length;if(t<2)return"";let r=i[0],n=i[1];if(t===2)return`M${ni(r)}L${ni(n)}`;let s="";for(let c=2,l=t-1;c<l;c++)r=i[c],n=i[c+1],s+=ii(r,n);return e?`M${ii(i[0],i[1])}Q${ni(i[1])}${ii(i[1],i[2])}T${s}${ii(i[t-1],i[0])}${ii(i[0],i[1])}Z`:`M${ni(i[0])}Q${ni(i[1])}${ii(i[1],i[2])}${i.length>3?"T":""}${s}L${ni(i[t-1])}`}const Ir=class Ir{constructor(e){dt(this,"maxImageWidth",ur.pencilEraser.maxImageWidth);dt(this,"maxImageHeight",ur.pencilEraser.maxImageHeight);dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"vNodes");dt(this,"drawLayer");dt(this,"fullLayer");dt(this,"workId");dt(this,"isDelete",!1);const{vNodes:t,fullLayer:r,drawLayer:n,workId:s,toolsOpt:c}=e;this.vNodes=t,this.fullLayer=r,this.drawLayer=n,this.workId=s,this.syncUnitTime=c.syncUnitTime||this.syncUnitTime}get baseConsumeResult(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions}}filterSamePoints(e,t=.01){return e.reduce((r,n)=>{const s=r[r.length-1];return(n&&!s||n&&s&&!n.isNear(s,t))&&r.push(n),r},[])}setWorkId(e){this.workId=e}getWorkId(){return this.workId}getWorkOptions(){return this.workOptions}setWorkOptions(e){var n,s,c;this.workOptions=e,this.syncUnitTime=e.syncUnitTime||this.syncUnitTime;const t=(n=this.workId)==null?void 0:n.toString(),r=t&&((s=this.vNodes)==null?void 0:s.get(t))||void 0;t&&r&&(r.opt=e,(c=this.vNodes)==null||c.setInfo(t,r))}updataOptService(e){var n,s;let t;const r=(n=this.workId)==null?void 0:n.toString();if(r&&e){const c=this.fullLayer.getElementsByName(r)||this.drawLayer&&this.drawLayer.getElementsByName(r)||[];if(c.length!==1)return;const l=c[0],{pos:f,zIndex:u,scale:v,angle:h,translate:y}=e,T={};Qe(u)&&(T.zIndex=u),f&&(T.pos=[f[0],f[1]]),v&&(T.scale=v),h&&(T.rotate=h),y&&(T.translate=y),l.attr(T);const O=l==null?void 0:l.getBoundingClientRect();return O&&(t=Zt(t,{x:Math.floor(O.x-Ir.SafeBorderPadding),y:Math.floor(O.y-Ir.SafeBorderPadding),w:Math.floor(O.width+Ir.SafeBorderPadding*2),h:Math.floor(O.height+Ir.SafeBorderPadding*2)})),(s=this.vNodes)==null||s.setInfo(r,{rect:t,centerPos:f}),t}}drawEraserlines(e,t){const{group:r,eraserlines:n,pos:s,layer:c}=e,l=c.parent;if(t)try{const u=(c.renderer.glRenderer||c.renderer.canvasRenderer).options.displayRatio,v=r.getBoundingClientRect(),h=v.width*u*c.worldScaling[0],y=v.height*u*c.worldScaling[1];let T=1;(h>this.maxImageWidth||y>this.maxImageHeight)&&(T=Math.min(this.maxImageWidth/h,this.maxImageHeight/y));let O=c.getAttribute("scale");O=[O[0]*T,O[1]*T];const I=c.parent.parent,P=c.getAttribute("translate"),w=this.createVmRenderNode(`${this.workId}_bitMapLayer`,I,{offscreen:l.offscreen,width:l.width,height:l.height,contextType:"2d",autoRender:!1,bufferSize:500},O,P),d=r.cloneNode(!0);if(!n||!n.length)return;this.addEraserlines(d,n,s,!1),w.appendChild(d);const m=w.parent;m.render();const p=w.renderer.canvasRenderer,S=p.context;if(!S)return;const E=p.options.displayRatio,R=d.getBoundingClientRect(),D={x:R.x,y:R.y,w:R.width,h:R.height},U={x:0,y:0,w:I.width,h:I.height};if(Bi(D,U)===yr.outside){Cr(d,m),I.removeChild(m),this.isDelete=!0;return}const W=ar(D);W.x=Math.floor(Math.max(D.x,0)),W.y=Math.floor(Math.max(D.y,0)),W.w=Math.min(D.x+D.w,I.width)-W.x,W.h=Math.min(D.y+D.h,I.height)-W.y;const $=this.getGroupRect(W,E),B=$.x,N=$.y,z=$.w,J=$.h;let et=S.getImageData(B,N,z,J);if(this.isTransparentRectByCanvas(et)){Cr(d,m),I.removeChild(m),this.isDelete=!0,et=null;return}Cr(r,l);const ct=this.createSpriteNode({imageData:et,safariRect:W,originRect:D,worldScaling:w.worldScaling});ct&&r.append(ct),Cr(d,m),I.removeChild(m),l.deleteTexture(et),et=null}catch(f){console.error("[BaseShapeTool] drawEraserlines error:",f);return}}createVmRenderNode(e,t,r,n,s){const{width:c,height:l}=r,f=`bitMap-${e}`,u=t.layer(f,r),v=new Je({anchor:[.5,.5],pos:[c*.5,l*.5],size:[c,l],name:"viewport",id:e});return v.setAttribute("scale",n),v.setAttribute("translate",s),u.append(v),v}getGroupRect(e,t){const r=Math.floor(e.x*t),n=Math.floor(e.y*t),s=Math.floor(e.w*t),c=Math.floor(e.h*t);return{x:r,y:n,w:s,h:c}}addEraserlines(e,t,r,n=!0){for(const s of t){const{thickness:c,op:l}=s;for(const f of l){const u=f.map((O,I)=>I%2?O-r[1]:O-r[0]),v=this.computEraserPoints(u,c),h=yn(v,!0),y={pos:[0,0],d:h,fillColor:"rgba(0,0,0,1)"},T=new gn(y);T.addEventListener("beforerender",({detail:O})=>{const I=O.context;n?I.blendFuncSeparate(I.ZERO,I.ZERO,I.ZERO,I.ZERO):I.globalCompositeOperation="destination-out"}),T.addEventListener("afterrender",({detail:O})=>{const I=O.context;n?I.blendFuncSeparate(I.SRC_ALPHA,I.ONE_MINUS_SRC_ALPHA,I.ONE,I.ONE_MINUS_SRC_ALPHA):I.globalCompositeOperation="source-over"}),e.append(T)}}}isTransparentRectByCanvas(e){let t=!0;for(let r=0;r<e.data.length;r+=4)if(e.data[r+3]!==0){t=!1;break}return t}createSpriteNode(e){const{imageData:t,worldScaling:r,safariRect:n,originRect:s}=e;let c;if(typeof OffscreenCanvas=="function"){c=new OffscreenCanvas(t.width,t.height);const v=c.getContext("2d");v&&v.putImageData(t,0,0)}else if(typeof document<"u"){c=document.createElement("canvas"),c.width=t.width,c.height=t.height;const v=c.getContext("2d");v&&v.putImageData(t,0,0)}if(!c)return console.warn("Failed to create imageEraserBitmap Sprite"),null;const l=[Math.floor(s.w/r[0]),Math.floor(s.h/r[1])],f=[Math.floor((n.x-s.x)/r[0]),Math.floor((n.y-s.y)/r[1]),Math.floor(n.w/r[0]),Math.floor(n.h/r[1])],u={name:"eraserTexture",anchor:[.5,.5],pos:[0,0],size:l,texture:c,textureRect:f};return new Fl(u)}computEraserPoints(e,t){const r=Math.ceil(t/2);return e.length===2?this.computDot(e,r):this.computLine(e,r)}computDot(e,t){const r=new Jt(e[0],e[1]);return Jt.GetDotStroke(r,t,8)}computLine(e,t){const r=[],n=[];let s,c;for(let l=0;l<e.length;l+=2){const f=new Jt(e[l],e[l+1]);let u;if(l==e.length-2){const v=new Jt(e[l-2],e[l-1]);u=pt.Sub(f,v).uni(),s=f}else{l===0&&(c=f);const v=new Jt(e[l+2],e[l+3]);u=pt.Sub(v,f).uni()}if(u){const v=pt.Per(u).mul(t);r.push(Jt.Sub(f,v)),n.push(Jt.Add(f,v))}}if(s&&c){const l=Jt.GetSemicircleStroke(s,r[r.length-1],-1,8),f=Jt.GetSemicircleStroke(c,n[0],-1,8);return r.concat(l,n.reverse(),f)}return[]}replace(e,t,r){var s;if(!t){r&&e.append(r);return}const n=e.getElementsByName(t);if(n.length)for(const c of n)r?pT(r,c,e):(c.remove(),dr(c,e.parent));else r&&e.append(r);this.fullLayer!==this.drawLayer&&(this.fullLayer===e?(s=this.drawLayer)==null||s.getElementsByName(t).forEach(l=>{var f;l.remove(),dr(l,(f=this.drawLayer)==null?void 0:f.parent)}):this.fullLayer.getElementsByName(t).forEach(l=>{l.remove(),dr(l,this.fullLayer.parent)}))}removeDrawCountNodes(e,t){const r=[];e.getElementsByName(this.workId).forEach(n=>{n.id&&t&&Number(n.id)<t&&r.push(n)});for(const n of r)n.remove(),dr(n,e.parent)}static updateNodeOpt(e){var d;const{node:t,opt:r,vNodes:n,willSerializeData:s,targetNode:c}=e,{zIndex:l,translate:f,angle:u,originPoint:v,scenePoint:h,scale:y,pointMap:T,thickness:O}=r;let I;const P=c&&ar(c)||n.get(t.name);if(!P)return;Qe(l)&&(t.setAttribute("zIndex",l),P.opt.zIndex=l);const w=t.parent;if(w){if(v&&y&&c){const m=[P.op[0],P.op[1]];Es(P.op,h,y,f);const p=[P.op[0],P.op[1]],S=[p[0]-m[0],p[1]-m[1]];if(P.centerPos=[P.centerPos[0]+S[0],P.centerPos[1]+S[1]],P.opt.translate=void 0,P.opt.scale=void 0,P.opt.eraserlines)for(let E=0;E<P.opt.eraserlines.length;E++){const{op:R,thickness:D}=P.opt.eraserlines[E];P.opt.eraserlines[E].thickness=Math.round(D*Math.max(y[0],y[1]));for(let U=0;U<R.length;U++)na(R[U],h,y,f)}}else if(f)if(t.setAttribute("translate",f),P.opt.translate=f,c){const m=[f[0]*w.worldScaling[0],f[1]*w.worldScaling[1]];I=Ni(P.rect,m),P.rect=I}else{const m=Ir.getRectFromLayer(w,t.name);P.rect=m||P.rect}else if(Qe(u))if(t.setAttribute("rotate",u),P.opt.rotate=u,c)I=ra(P.rect,u),P.rect=I;else{const m=Ir.getRectFromLayer(w,t.name);P.rect=m||P.rect}if(T){const m=T.get(t.name);if(m)for(let p=0,S=0;p<P.op.length;p+=3,S++)P.op[p]=m[S][0],P.op[p+1]=m[S][1]}if(O&&((d=P==null?void 0:P.opt)!=null&&d.thickness)&&(P.opt.thickness=O),s&&!(v&&y&&c)){if(f){const m=P.op.map((p,S)=>{const E=S%3;return E===0?p+f[0]:E===1?p+f[1]:p});if(P.op=m,P.centerPos=[P.centerPos[0]+f[0],P.centerPos[1]+f[1]],P!=null&&P.opt&&(P.opt.translate=void 0),P.opt.eraserlines)for(let p=0;p<P.opt.eraserlines.length;p++){const{op:S}=P.opt.eraserlines[p];for(let E=0;E<S.length;E++){const R=S[E].map((D,U)=>U%2?D+f[1]:D+f[0]);P.opt.eraserlines[p].op[E]=R}}}else if(Qe(u)){const m=P.op;if(oT(m,P.centerPos,u),P.op=m,P!=null&&P.opt&&(P.opt.rotate=void 0),P.opt.eraserlines)for(let p=0;p<P.opt.eraserlines.length;p++){const{op:S}=P.opt.eraserlines[p];for(let E=0;E<S.length;E++)aT(S[E],P.centerPos,u)}}}P&&n.setInfo(t.name,P)}}static getCenterPos(e,t){const{worldPosition:r,worldScaling:n}=t;return[(e.x+e.w/2-r[0])/n[0],(e.y+e.h/2-r[1])/n[1]]}static getRectFromLayer(e,t){const r=e.getElementsByName(t)[0];if(r){const n=r.getBoundingClientRect();return{x:Math.floor(n.x-Ir.SafeBorderPadding),y:Math.floor(n.y-Ir.SafeBorderPadding),w:Math.floor(n.width+Ir.SafeBorderPadding*2),h:Math.floor(n.height+Ir.SafeBorderPadding*2)}}}static isWillRefresh(e){const{toolsType:t,opt:r,node:n,updateOpt:s,willSerializeData:c}=e;return!!(c&&(s.angle||s.translate)||s.thickness&&r.thickness&&r.thickness!==s.thickness||s.strokeType&&r.strokeType&&r.strokeType!==s.strokeType||s.originPoint&&s.scenePoint&&s.scale||s.pointMap&&s.pointMap.has(n.name)||t===Tt.Text&&(s.fontSize||s.translate||s.textInfos&&s.textInfos.get(n.name))||t===Tt.BackgroundSVG&&(s.translate||s.scale)||t===Tt.Image&&(s.angle||s.translate||s.scale||s.strokeColor&&r.type===es.Iconify)||t===s.toolsType&&s.willRefresh||r.eraserlines&&r.eraserlines.length&&(s.strokeColor||s.fillColor))}};dt(Ir,"SafeBorderPadding",10);let $t=Ir;const Go=Object.freeze([Object.freeze({width:18,height:26}),Object.freeze({width:26,height:34}),Object.freeze({width:34,height:50}),Object.freeze({width:48,height:74})]);var $f={exports:{}};(function(i){var e=function(){var t=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function c(f,u){if(!s[f]){s[f]={};for(var v=0;v<f.length;v++)s[f][f.charAt(v)]=v}return s[f][u]}var l={compressToBase64:function(f){if(f==null)return"";var u=l._compress(f,6,function(v){return r.charAt(v)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(f){return f==null?"":f==""?null:l._decompress(f.length,32,function(u){return c(r,f.charAt(u))})},compressToUTF16:function(f){return f==null?"":l._compress(f,15,function(u){return t(u+32)})+" "},decompressFromUTF16:function(f){return f==null?"":f==""?null:l._decompress(f.length,16384,function(u){return f.charCodeAt(u)-32})},compressToUint8Array:function(f){for(var u=l.compress(f),v=new Uint8Array(u.length*2),h=0,y=u.length;h<y;h++){var T=u.charCodeAt(h);v[h*2]=T>>>8,v[h*2+1]=T%256}return v},decompressFromUint8Array:function(f){if(f==null)return l.decompress(f);for(var u=new Array(f.length/2),v=0,h=u.length;v<h;v++)u[v]=f[v*2]*256+f[v*2+1];var y=[];return u.forEach(function(T){y.push(t(T))}),l.decompress(y.join(""))},compressToEncodedURIComponent:function(f){return f==null?"":l._compress(f,6,function(u){return n.charAt(u)})},decompressFromEncodedURIComponent:function(f){return f==null?"":f==""?null:(f=f.replace(/ /g,"+"),l._decompress(f.length,32,function(u){return c(n,f.charAt(u))}))},compress:function(f){return l._compress(f,16,function(u){return t(u)})},_compress:function(f,u,v){if(f==null)return"";var h,y,T={},O={},I="",P="",w="",d=2,m=3,p=2,S=[],E=0,R=0,D;for(D=0;D<f.length;D+=1)if(I=f.charAt(D),Object.prototype.hasOwnProperty.call(T,I)||(T[I]=m++,O[I]=!0),P=w+I,Object.prototype.hasOwnProperty.call(T,P))w=P;else{if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)E=E<<1,R==u-1?(R=0,S.push(v(E)),E=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)E=E<<1|y,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++),T[P]=m++,w=String(I)}if(w!==""){if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)E=E<<1,R==u-1?(R=0,S.push(v(E)),E=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)E=E<<1|y,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++)}for(y=2,h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;for(;;)if(E=E<<1,R==u-1){S.push(v(E));break}else R++;return S.join("")},decompress:function(f){return f==null?"":f==""?null:l._decompress(f.length,32768,function(u){return f.charCodeAt(u)})},_decompress:function(f,u,v){var h=[],y=4,T=4,O=3,I="",P=[],w,d,m,p,S,E,R,D={val:v(0),position:u,index:1};for(w=0;w<3;w+=1)h[w]=w;for(m=0,S=Math.pow(2,2),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;switch(m){case 0:for(m=0,S=Math.pow(2,8),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;R=t(m);break;case 1:for(m=0,S=Math.pow(2,16),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;R=t(m);break;case 2:return""}for(h[3]=R,d=R,P.push(R);;){if(D.index>f)return"";for(m=0,S=Math.pow(2,O),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;switch(R=m){case 0:for(m=0,S=Math.pow(2,8),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;h[T++]=t(m),R=T-1,y--;break;case 1:for(m=0,S=Math.pow(2,16),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;h[T++]=t(m),R=T-1,y--;break;case 2:return P.join("")}if(y==0&&(y=Math.pow(2,O),O++),h[R])I=h[R];else if(R===T)I=d+d.charAt(0);else return null;P.push(I),h[T++]=d+I.charAt(0),y--,d=I,y==0&&(y=Math.pow(2,O),O++)}}};return l}();i!=null?i.exports=e:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return e})})($f);var Xf=$f.exports;function ti(i){return JSON.parse(Xf.decompress(i))}function hr(i){return Xf.compress(JSON.stringify(i))}var zf={exports:{}};(function(i){(function(){var e={};e.version="6.4.2.2",e.use_lines=!0,e.use_xyz=!1;var t=!1;i.exports?(i.exports=e,t=!0):typeof document<"u"?window.ClipperLib=e:self.ClipperLib=e;var r;if(t){var n="chrome";r="Netscape"}else{var n=navigator.userAgent.toString().toLowerCase();r=navigator.appName}var s={};n.indexOf("chrome")!=-1&&n.indexOf("chromium")==-1?s.chrome=1:s.chrome=0,n.indexOf("chromium")!=-1?s.chromium=1:s.chromium=0,n.indexOf("safari")!=-1&&n.indexOf("chrome")==-1&&n.indexOf("chromium")==-1?s.safari=1:s.safari=0,n.indexOf("firefox")!=-1?s.firefox=1:s.firefox=0,n.indexOf("firefox/17")!=-1?s.firefox17=1:s.firefox17=0,n.indexOf("firefox/15")!=-1?s.firefox15=1:s.firefox15=0,n.indexOf("firefox/3")!=-1?s.firefox3=1:s.firefox3=0,n.indexOf("opera")!=-1?s.opera=1:s.opera=0,n.indexOf("msie 10")!=-1?s.msie10=1:s.msie10=0,n.indexOf("msie 9")!=-1?s.msie9=1:s.msie9=0,n.indexOf("msie 8")!=-1?s.msie8=1:s.msie8=0,n.indexOf("msie 7")!=-1?s.msie7=1:s.msie7=0,n.indexOf("msie ")!=-1?s.msie=1:s.msie=0,e.biginteger_used=null;var c;function l(a,x,A){e.biginteger_used=1,a!=null&&(typeof a=="number"&&typeof x>"u"?this.fromInt(a):typeof a=="number"?this.fromNumber(a,x,A):x==null&&typeof a!="string"?this.fromString(a,256):this.fromString(a,x))}function f(){return new l(null,void 0,void 0)}function u(a,x,A,F,j,_){for(;--_>=0;){var st=x*this[a++]+A[F]+j;j=Math.floor(st/67108864),A[F++]=st&67108863}return j}function v(a,x,A,F,j,_){for(var st=x&32767,Pt=x>>15;--_>=0;){var xt=this[a]&32767,Dt=this[a++]>>15,Ht=Pt*xt+Dt*st;xt=st*xt+((Ht&32767)<<15)+A[F]+(j&1073741823),j=(xt>>>30)+(Ht>>>15)+Pt*Dt+(j>>>30),A[F++]=xt&1073741823}return j}function h(a,x,A,F,j,_){for(var st=x&16383,Pt=x>>14;--_>=0;){var xt=this[a]&16383,Dt=this[a++]>>14,Ht=Pt*xt+Dt*st;xt=st*xt+((Ht&16383)<<14)+A[F]+j,j=(xt>>28)+(Ht>>14)+Pt*Dt,A[F++]=xt&268435455}return j}r=="Microsoft Internet Explorer"?(l.prototype.am=v,c=30):r!="Netscape"?(l.prototype.am=u,c=26):(l.prototype.am=h,c=28),l.prototype.DB=c,l.prototype.DM=(1<<c)-1,l.prototype.DV=1<<c;var y=52;l.prototype.FV=Math.pow(2,y),l.prototype.F1=y-c,l.prototype.F2=2*c-y;var T="0123456789abcdefghijklmnopqrstuvwxyz",O=new Array,I,P;for(I=48,P=0;P<=9;++P)O[I++]=P;for(I=97,P=10;P<36;++P)O[I++]=P;for(I=65,P=10;P<36;++P)O[I++]=P;function w(a){return T.charAt(a)}function d(a,x){var A=O[a.charCodeAt(x)];return A??-1}function m(a){for(var x=this.t-1;x>=0;--x)a[x]=this[x];a.t=this.t,a.s=this.s}function p(a){this.t=1,this.s=a<0?-1:0,a>0?this[0]=a:a<-1?this[0]=a+this.DV:this.t=0}function S(a){var x=f();return x.fromInt(a),x}function E(a,x){var A;if(x==16)A=4;else if(x==8)A=3;else if(x==256)A=8;else if(x==2)A=1;else if(x==32)A=5;else if(x==4)A=2;else{this.fromRadix(a,x);return}this.t=0,this.s=0;for(var F=a.length,j=!1,_=0;--F>=0;){var st=A==8?a[F]&255:d(a,F);if(st<0){a.charAt(F)=="-"&&(j=!0);continue}j=!1,_==0?this[this.t++]=st:_+A>this.DB?(this[this.t-1]|=(st&(1<<this.DB-_)-1)<<_,this[this.t++]=st>>this.DB-_):this[this.t-1]|=st<<_,_+=A,_>=this.DB&&(_-=this.DB)}A==8&&a[0]&128&&(this.s=-1,_>0&&(this[this.t-1]|=(1<<this.DB-_)-1<<_)),this.clamp(),j&&l.ZERO.subTo(this,this)}function R(){for(var a=this.s&this.DM;this.t>0&&this[this.t-1]==a;)--this.t}function D(a){if(this.s<0)return"-"+this.negate().toString(a);var x;if(a==16)x=4;else if(a==8)x=3;else if(a==2)x=1;else if(a==32)x=5;else if(a==4)x=2;else return this.toRadix(a);var A=(1<<x)-1,F,j=!1,_="",st=this.t,Pt=this.DB-st*this.DB%x;if(st-- >0)for(Pt<this.DB&&(F=this[st]>>Pt)>0&&(j=!0,_=w(F));st>=0;)Pt<x?(F=(this[st]&(1<<Pt)-1)<<x-Pt,F|=this[--st]>>(Pt+=this.DB-x)):(F=this[st]>>(Pt-=x)&A,Pt<=0&&(Pt+=this.DB,--st)),F>0&&(j=!0),j&&(_+=w(F));return j?_:"0"}function U(){var a=f();return l.ZERO.subTo(this,a),a}function M(){return this.s<0?this.negate():this}function W(a){var x=this.s-a.s;if(x!=0)return x;var A=this.t;if(x=A-a.t,x!=0)return this.s<0?-x:x;for(;--A>=0;)if((x=this[A]-a[A])!=0)return x;return 0}function $(a){var x=1,A;return(A=a>>>16)!=0&&(a=A,x+=16),(A=a>>8)!=0&&(a=A,x+=8),(A=a>>4)!=0&&(a=A,x+=4),(A=a>>2)!=0&&(a=A,x+=2),(A=a>>1)!=0&&(a=A,x+=1),x}function B(){return this.t<=0?0:this.DB*(this.t-1)+$(this[this.t-1]^this.s&this.DM)}function N(a,x){var A;for(A=this.t-1;A>=0;--A)x[A+a]=this[A];for(A=a-1;A>=0;--A)x[A]=0;x.t=this.t+a,x.s=this.s}function z(a,x){for(var A=a;A<this.t;++A)x[A-a]=this[A];x.t=Math.max(this.t-a,0),x.s=this.s}function J(a,x){var A=a%this.DB,F=this.DB-A,j=(1<<F)-1,_=Math.floor(a/this.DB),st=this.s<<A&this.DM,Pt;for(Pt=this.t-1;Pt>=0;--Pt)x[Pt+_+1]=this[Pt]>>F|st,st=(this[Pt]&j)<<A;for(Pt=_-1;Pt>=0;--Pt)x[Pt]=0;x[_]=st,x.t=this.t+_+1,x.s=this.s,x.clamp()}function et(a,x){x.s=this.s;var A=Math.floor(a/this.DB);if(A>=this.t){x.t=0;return}var F=a%this.DB,j=this.DB-F,_=(1<<F)-1;x[0]=this[A]>>F;for(var st=A+1;st<this.t;++st)x[st-A-1]|=(this[st]&_)<<j,x[st-A]=this[st]>>F;F>0&&(x[this.t-A-1]|=(this.s&_)<<j),x.t=this.t-A,x.clamp()}function at(a,x){for(var A=0,F=0,j=Math.min(a.t,this.t);A<j;)F+=this[A]-a[A],x[A++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F-=a.s;A<this.t;)F+=this[A],x[A++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;A<a.t;)F-=a[A],x[A++]=F&this.DM,F>>=this.DB;F-=a.s}x.s=F<0?-1:0,F<-1?x[A++]=this.DV+F:F>0&&(x[A++]=F),x.t=A,x.clamp()}function ct(a,x){var A=this.abs(),F=a.abs(),j=A.t;for(x.t=j+F.t;--j>=0;)x[j]=0;for(j=0;j<F.t;++j)x[j+A.t]=A.am(0,F[j],x,j,0,A.t);x.s=0,x.clamp(),this.s!=a.s&&l.ZERO.subTo(x,x)}function V(a){for(var x=this.abs(),A=a.t=2*x.t;--A>=0;)a[A]=0;for(A=0;A<x.t-1;++A){var F=x.am(A,x[A],a,2*A,0,1);(a[A+x.t]+=x.am(A+1,2*x[A],a,2*A+1,F,x.t-A-1))>=x.DV&&(a[A+x.t]-=x.DV,a[A+x.t+1]=1)}a.t>0&&(a[a.t-1]+=x.am(A,x[A],a,2*A,0,1)),a.s=0,a.clamp()}function Q(a,x,A){var F=a.abs();if(!(F.t<=0)){var j=this.abs();if(j.t<F.t){x!=null&&x.fromInt(0),A!=null&&this.copyTo(A);return}A==null&&(A=f());var _=f(),st=this.s,Pt=a.s,xt=this.DB-$(F[F.t-1]);xt>0?(F.lShiftTo(xt,_),j.lShiftTo(xt,A)):(F.copyTo(_),j.copyTo(A));var Dt=_.t,Ht=_[Dt-1];if(Ht!=0){var jt=Ht*(1<<this.F1)+(Dt>1?_[Dt-2]>>this.F2:0),qt=this.FV/jt,oe=(1<<this.F1)/jt,me=1<<this.F2,Pe=A.t,be=Pe-Dt,lr=x??f();for(_.dlShiftTo(be,lr),A.compareTo(lr)>=0&&(A[A.t++]=1,A.subTo(lr,A)),l.ONE.dlShiftTo(Dt,lr),lr.subTo(_,_);_.t<Dt;)_[_.t++]=0;for(;--be>=0;){var Dr=A[--Pe]==Ht?this.DM:Math.floor(A[Pe]*qt+(A[Pe-1]+me)*oe);if((A[Pe]+=_.am(0,Dr,A,be,0,Dt))<Dr)for(_.dlShiftTo(be,lr),A.subTo(lr,A);A[Pe]<--Dr;)A.subTo(lr,A)}x!=null&&(A.drShiftTo(Dt,x),st!=Pt&&l.ZERO.subTo(x,x)),A.t=Dt,A.clamp(),xt>0&&A.rShiftTo(xt,A),st<0&&l.ZERO.subTo(A,A)}}}function ft(a){var x=f();return this.abs().divRemTo(a,null,x),this.s<0&&x.compareTo(l.ZERO)>0&&a.subTo(x,x),x}function mt(a){this.m=a}function yt(a){return a.s<0||a.compareTo(this.m)>=0?a.mod(this.m):a}function At(a){return a}function ht(a){a.divRemTo(this.m,null,a)}function Nt(a,x,A){a.multiplyTo(x,A),this.reduce(A)}function Bt(a,x){a.squareTo(x),this.reduce(x)}mt.prototype.convert=yt,mt.prototype.revert=At,mt.prototype.reduce=ht,mt.prototype.mulTo=Nt,mt.prototype.sqrTo=Bt;function G(){if(this.t<1)return 0;var a=this[0];if(!(a&1))return 0;var x=a&3;return x=x*(2-(a&15)*x)&15,x=x*(2-(a&255)*x)&255,x=x*(2-((a&65535)*x&65535))&65535,x=x*(2-a*x%this.DV)%this.DV,x>0?this.DV-x:-x}function k(a){this.m=a,this.mp=a.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<a.DB-15)-1,this.mt2=2*a.t}function rt(a){var x=f();return a.abs().dlShiftTo(this.m.t,x),x.divRemTo(this.m,null,x),a.s<0&&x.compareTo(l.ZERO)>0&&this.m.subTo(x,x),x}function nt(a){var x=f();return a.copyTo(x),this.reduce(x),x}function Y(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var x=0;x<this.m.t;++x){var A=a[x]&32767,F=A*this.mpl+((A*this.mph+(a[x]>>15)*this.mpl&this.um)<<15)&a.DM;for(A=x+this.m.t,a[A]+=this.m.am(0,F,a,x,0,this.m.t);a[A]>=a.DV;)a[A]-=a.DV,a[++A]++}a.clamp(),a.drShiftTo(this.m.t,a),a.compareTo(this.m)>=0&&a.subTo(this.m,a)}function Z(a,x){a.squareTo(x),this.reduce(x)}function C(a,x,A){a.multiplyTo(x,A),this.reduce(A)}k.prototype.convert=rt,k.prototype.revert=nt,k.prototype.reduce=Y,k.prototype.mulTo=C,k.prototype.sqrTo=Z;function L(){return(this.t>0?this[0]&1:this.s)==0}function X(a,x){if(a>4294967295||a<1)return l.ONE;var A=f(),F=f(),j=x.convert(this),_=$(a)-1;for(j.copyTo(A);--_>=0;)if(x.sqrTo(A,F),(a&1<<_)>0)x.mulTo(F,j,A);else{var st=A;A=F,F=st}return x.revert(A)}function K(a,x){var A;return a<256||x.isEven()?A=new mt(x):A=new k(x),this.exp(a,A)}l.prototype.copyTo=m,l.prototype.fromInt=p,l.prototype.fromString=E,l.prototype.clamp=R,l.prototype.dlShiftTo=N,l.prototype.drShiftTo=z,l.prototype.lShiftTo=J,l.prototype.rShiftTo=et,l.prototype.subTo=at,l.prototype.multiplyTo=ct,l.prototype.squareTo=V,l.prototype.divRemTo=Q,l.prototype.invDigit=G,l.prototype.isEven=L,l.prototype.exp=X,l.prototype.toString=D,l.prototype.negate=U,l.prototype.abs=M,l.prototype.compareTo=W,l.prototype.bitLength=B,l.prototype.mod=ft,l.prototype.modPowInt=K,l.ZERO=S(0),l.ONE=S(1);function q(){var a=f();return this.copyTo(a),a}function it(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function ut(){return this.t==0?this.s:this[0]<<24>>24}function St(){return this.t==0?this.s:this[0]<<16>>16}function Ct(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function Et(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function bt(a){if(a==null&&(a=10),this.signum()==0||a<2||a>36)return"0";var x=this.chunkSize(a),A=Math.pow(a,x),F=S(A),j=f(),_=f(),st="";for(this.divRemTo(F,j,_);j.signum()>0;)st=(A+_.intValue()).toString(a).substr(1)+st,j.divRemTo(F,j,_);return _.intValue().toString(a)+st}function wt(a,x){this.fromInt(0),x==null&&(x=10);for(var A=this.chunkSize(x),F=Math.pow(x,A),j=!1,_=0,st=0,Pt=0;Pt<a.length;++Pt){var xt=d(a,Pt);if(xt<0){a.charAt(Pt)=="-"&&this.signum()==0&&(j=!0);continue}st=x*st+xt,++_>=A&&(this.dMultiply(F),this.dAddOffset(st,0),_=0,st=0)}_>0&&(this.dMultiply(Math.pow(x,_)),this.dAddOffset(st,0)),j&&l.ZERO.subTo(this,this)}function Ot(a,x,A){if(typeof x=="number")if(a<2)this.fromInt(1);else for(this.fromNumber(a,A),this.testBit(a-1)||this.bitwiseTo(l.ONE.shiftLeft(a-1),ne,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(x);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(l.ONE.shiftLeft(a-1),this);else{var F=new Array,j=a&7;F.length=(a>>3)+1,x.nextBytes(F),j>0?F[0]&=(1<<j)-1:F[0]=0,this.fromString(F,256)}}function Lt(){var a=this.t,x=new Array;x[0]=this.s;var A=this.DB-a*this.DB%8,F,j=0;if(a-- >0)for(A<this.DB&&(F=this[a]>>A)!=(this.s&this.DM)>>A&&(x[j++]=F|this.s<<this.DB-A);a>=0;)A<8?(F=(this[a]&(1<<A)-1)<<8-A,F|=this[--a]>>(A+=this.DB-8)):(F=this[a]>>(A-=8)&255,A<=0&&(A+=this.DB,--a)),F&128&&(F|=-256),j==0&&(this.s&128)!=(F&128)&&++j,(j>0||F!=this.s)&&(x[j++]=F);return x}function Yt(a){return this.compareTo(a)==0}function zt(a){return this.compareTo(a)<0?this:a}function Wt(a){return this.compareTo(a)>0?this:a}function Qt(a,x,A){var F,j,_=Math.min(a.t,this.t);for(F=0;F<_;++F)A[F]=x(this[F],a[F]);if(a.t<this.t){for(j=a.s&this.DM,F=_;F<this.t;++F)A[F]=x(this[F],j);A.t=this.t}else{for(j=this.s&this.DM,F=_;F<a.t;++F)A[F]=x(j,a[F]);A.t=a.t}A.s=x(this.s,a.s),A.clamp()}function ue(a,x){return a&x}function ie(a){var x=f();return this.bitwiseTo(a,ue,x),x}function ne(a,x){return a|x}function ae(a){var x=f();return this.bitwiseTo(a,ne,x),x}function se(a,x){return a^x}function Fe(a){var x=f();return this.bitwiseTo(a,se,x),x}function Ue(a,x){return a&~x}function Xe(a){var x=f();return this.bitwiseTo(a,Ue,x),x}function ze(){for(var a=f(),x=0;x<this.t;++x)a[x]=this.DM&~this[x];return a.t=this.t,a.s=~this.s,a}function ke(a){var x=f();return a<0?this.rShiftTo(-a,x):this.lShiftTo(a,x),x}function He(a){var x=f();return a<0?this.lShiftTo(-a,x):this.rShiftTo(a,x),x}function qe(a){if(a==0)return-1;var x=0;return a&65535||(a>>=16,x+=16),a&255||(a>>=8,x+=8),a&15||(a>>=4,x+=4),a&3||(a>>=2,x+=2),a&1||++x,x}function Oe(){for(var a=0;a<this.t;++a)if(this[a]!=0)return a*this.DB+qe(this[a]);return this.s<0?this.t*this.DB:-1}function pr(a){for(var x=0;a!=0;)a&=a-1,++x;return x}function an(){for(var a=0,x=this.s&this.DM,A=0;A<this.t;++A)a+=pr(this[A]^x);return a}function qr(a){var x=Math.floor(a/this.DB);return x>=this.t?this.s!=0:(this[x]&1<<a%this.DB)!=0}function li(a,x){var A=l.ONE.shiftLeft(a);return this.bitwiseTo(A,x,A),A}function fi(a){return this.changeBit(a,ne)}function oa(a){return this.changeBit(a,Ue)}function Wi(a){return this.changeBit(a,se)}function aa(a,x){for(var A=0,F=0,j=Math.min(a.t,this.t);A<j;)F+=this[A]+a[A],x[A++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F+=a.s;A<this.t;)F+=this[A],x[A++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;A<a.t;)F+=a[A],x[A++]=F&this.DM,F>>=this.DB;F+=a.s}x.s=F<0?-1:0,F>0?x[A++]=F:F<-1&&(x[A++]=this.DV+F),x.t=A,x.clamp()}function Fi(a){var x=f();return this.addTo(a,x),x}function la(a){var x=f();return this.subTo(a,x),x}function fa(a){var x=f();return this.multiplyTo(a,x),x}function ca(){var a=f();return this.squareTo(a),a}function ua(a){var x=f();return this.divRemTo(a,x,null),x}function ha(a){var x=f();return this.divRemTo(a,null,x),x}function bs(a){var x=f(),A=f();return this.divRemTo(a,x,A),new Array(x,A)}function da(a){this[this.t]=this.am(0,a-1,this,0,0,this.t),++this.t,this.clamp()}function pa(a,x){if(a!=0){for(;this.t<=x;)this[this.t++]=0;for(this[x]+=a;this[x]>=this.DV;)this[x]-=this.DV,++x>=this.t&&(this[this.t++]=0),++this[x]}}function xn(){}function Ds(a){return a}function va(a,x,A){a.multiplyTo(x,A)}function ga(a,x){a.squareTo(x)}xn.prototype.convert=Ds,xn.prototype.revert=Ds,xn.prototype.mulTo=va,xn.prototype.sqrTo=ga;function ma(a){return this.exp(a,new xn)}function ya(a,x,A){var F=Math.min(this.t+a.t,x);for(A.s=0,A.t=F;F>0;)A[--F]=0;var j;for(j=A.t-this.t;F<j;++F)A[F+this.t]=this.am(0,a[F],A,F,0,this.t);for(j=Math.min(a.t,x);F<j;++F)this.am(0,a[F],A,F,0,x-F);A.clamp()}function Pa(a,x,A){--x;var F=A.t=this.t+a.t-x;for(A.s=0;--F>=0;)A[F]=0;for(F=Math.max(x-this.t,0);F<a.t;++F)A[this.t+F-x]=this.am(x-F,a[F],A,0,0,this.t+F-x);A.clamp(),A.drShiftTo(1,A)}function zr(a){this.r2=f(),this.q3=f(),l.ONE.dlShiftTo(2*a.t,this.r2),this.mu=this.r2.divide(a),this.m=a}function Sa(a){if(a.s<0||a.t>2*this.m.t)return a.mod(this.m);if(a.compareTo(this.m)<0)return a;var x=f();return a.copyTo(x),this.reduce(x),x}function ci(a){return a}function xa(a){for(a.drShiftTo(this.m.t-1,this.r2),a.t>this.m.t+1&&(a.t=this.m.t+1,a.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);a.compareTo(this.r2)<0;)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);a.compareTo(this.m)>=0;)a.subTo(this.m,a)}function Ta(a,x){a.squareTo(x),this.reduce(x)}function Ca(a,x,A){a.multiplyTo(x,A),this.reduce(A)}zr.prototype.convert=Sa,zr.prototype.revert=ci,zr.prototype.reduce=xa,zr.prototype.mulTo=Ca,zr.prototype.sqrTo=Ta;function Ns(a,x){var A=a.bitLength(),F,j=S(1),_;if(A<=0)return j;A<18?F=1:A<48?F=3:A<144?F=4:A<768?F=5:F=6,A<8?_=new mt(x):x.isEven()?_=new zr(x):_=new k(x);var st=new Array,Pt=3,xt=F-1,Dt=(1<<F)-1;if(st[1]=_.convert(this),F>1){var Ht=f();for(_.sqrTo(st[1],Ht);Pt<=Dt;)st[Pt]=f(),_.mulTo(Ht,st[Pt-2],st[Pt]),Pt+=2}var jt=a.t-1,qt,oe=!0,me=f(),Pe;for(A=$(a[jt])-1;jt>=0;){for(A>=xt?qt=a[jt]>>A-xt&Dt:(qt=(a[jt]&(1<<A+1)-1)<<xt-A,jt>0&&(qt|=a[jt-1]>>this.DB+A-xt)),Pt=F;!(qt&1);)qt>>=1,--Pt;if((A-=Pt)<0&&(A+=this.DB,--jt),oe)st[qt].copyTo(j),oe=!1;else{for(;Pt>1;)_.sqrTo(j,me),_.sqrTo(me,j),Pt-=2;Pt>0?_.sqrTo(j,me):(Pe=j,j=me,me=Pe),_.mulTo(me,st[qt],j)}for(;jt>=0&&!(a[jt]&1<<A);)_.sqrTo(j,me),Pe=j,j=me,me=Pe,--A<0&&(A=this.DB-1,--jt)}return _.revert(j)}function Bs(a){var x=this.s<0?this.negate():this.clone(),A=a.s<0?a.negate():a.clone();if(x.compareTo(A)<0){var F=x;x=A,A=F}var j=x.getLowestSetBit(),_=A.getLowestSetBit();if(_<0)return x;for(j<_&&(_=j),_>0&&(x.rShiftTo(_,x),A.rShiftTo(_,A));x.signum()>0;)(j=x.getLowestSetBit())>0&&x.rShiftTo(j,x),(j=A.getLowestSetBit())>0&&A.rShiftTo(j,A),x.compareTo(A)>=0?(x.subTo(A,x),x.rShiftTo(1,x)):(A.subTo(x,A),A.rShiftTo(1,A));return _>0&&A.lShiftTo(_,A),A}function Ws(a){if(a<=0)return 0;var x=this.DV%a,A=this.s<0?a-1:0;if(this.t>0)if(x==0)A=this[0]%a;else for(var F=this.t-1;F>=0;--F)A=(x*A+this[F])%a;return A}function Ia(a){var x=a.isEven();if(this.isEven()&&x||a.signum()==0)return l.ZERO;for(var A=a.clone(),F=this.clone(),j=S(1),_=S(0),st=S(0),Pt=S(1);A.signum()!=0;){for(;A.isEven();)A.rShiftTo(1,A),x?((!j.isEven()||!_.isEven())&&(j.addTo(this,j),_.subTo(a,_)),j.rShiftTo(1,j)):_.isEven()||_.subTo(a,_),_.rShiftTo(1,_);for(;F.isEven();)F.rShiftTo(1,F),x?((!st.isEven()||!Pt.isEven())&&(st.addTo(this,st),Pt.subTo(a,Pt)),st.rShiftTo(1,st)):Pt.isEven()||Pt.subTo(a,Pt),Pt.rShiftTo(1,Pt);A.compareTo(F)>=0?(A.subTo(F,A),x&&j.subTo(st,j),_.subTo(Pt,_)):(F.subTo(A,F),x&&st.subTo(j,st),Pt.subTo(_,Pt))}if(F.compareTo(l.ONE)!=0)return l.ZERO;if(Pt.compareTo(a)>=0)return Pt.subtract(a);if(Pt.signum()<0)Pt.addTo(a,Pt);else return Pt;return Pt.signum()<0?Pt.add(a):Pt}var ir=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],wa=(1<<26)/ir[ir.length-1];function Oa(a){var x,A=this.abs();if(A.t==1&&A[0]<=ir[ir.length-1]){for(x=0;x<ir.length;++x)if(A[0]==ir[x])return!0;return!1}if(A.isEven())return!1;for(x=1;x<ir.length;){for(var F=ir[x],j=x+1;j<ir.length&&F<wa;)F*=ir[j++];for(F=A.modInt(F);x<j;)if(F%ir[x++]==0)return!1}return A.millerRabin(a)}function Fs(a){var x=this.subtract(l.ONE),A=x.getLowestSetBit();if(A<=0)return!1;var F=x.shiftRight(A);a=a+1>>1,a>ir.length&&(a=ir.length);for(var j=f(),_=0;_<a;++_){j.fromInt(ir[Math.floor(Math.random()*ir.length)]);var st=j.modPow(F,this);if(st.compareTo(l.ONE)!=0&&st.compareTo(x)!=0){for(var Pt=1;Pt++<A&&st.compareTo(x)!=0;)if(st=st.modPowInt(2,this),st.compareTo(l.ONE)==0)return!1;if(st.compareTo(x)!=0)return!1}}return!0}l.prototype.chunkSize=Ct,l.prototype.toRadix=bt,l.prototype.fromRadix=wt,l.prototype.fromNumber=Ot,l.prototype.bitwiseTo=Qt,l.prototype.changeBit=li,l.prototype.addTo=aa,l.prototype.dMultiply=da,l.prototype.dAddOffset=pa,l.prototype.multiplyLowerTo=ya,l.prototype.multiplyUpperTo=Pa,l.prototype.modInt=Ws,l.prototype.millerRabin=Fs,l.prototype.clone=q,l.prototype.intValue=it,l.prototype.byteValue=ut,l.prototype.shortValue=St,l.prototype.signum=Et,l.prototype.toByteArray=Lt,l.prototype.equals=Yt,l.prototype.min=zt,l.prototype.max=Wt,l.prototype.and=ie,l.prototype.or=ae,l.prototype.xor=Fe,l.prototype.andNot=Xe,l.prototype.not=ze,l.prototype.shiftLeft=ke,l.prototype.shiftRight=He,l.prototype.getLowestSetBit=Oe,l.prototype.bitCount=an,l.prototype.testBit=qr,l.prototype.setBit=fi,l.prototype.clearBit=oa,l.prototype.flipBit=Wi,l.prototype.add=Fi,l.prototype.subtract=la,l.prototype.multiply=fa,l.prototype.divide=ua,l.prototype.remainder=ha,l.prototype.divideAndRemainder=bs,l.prototype.modPow=Ns,l.prototype.modInverse=Ia,l.prototype.pow=ma,l.prototype.gcd=Bs,l.prototype.isProbablePrime=Oa,l.prototype.square=ca;var ge=l;ge.prototype.IsNegative=function(){return this.compareTo(ge.ZERO)==-1},ge.op_Equality=function(a,x){return a.compareTo(x)==0},ge.op_Inequality=function(a,x){return a.compareTo(x)!=0},ge.op_GreaterThan=function(a,x){return a.compareTo(x)>0},ge.op_LessThan=function(a,x){return a.compareTo(x)<0},ge.op_Addition=function(a,x){return new ge(a,void 0,void 0).add(new ge(x,void 0,void 0))},ge.op_Subtraction=function(a,x){return new ge(a,void 0,void 0).subtract(new ge(x,void 0,void 0))},ge.Int128Mul=function(a,x){return new ge(a,void 0,void 0).multiply(new ge(x,void 0,void 0))},ge.op_Division=function(a,x){return a.divide(x)},ge.prototype.ToDouble=function(){return parseFloat(this.toString())};var Ui=function(a,x){var A;if(typeof Object.getOwnPropertyNames>"u"){for(A in x.prototype)(typeof a.prototype[A]>"u"||a.prototype[A]===Object.prototype[A])&&(a.prototype[A]=x.prototype[A]);for(A in x)typeof a[A]>"u"&&(a[A]=x[A]);a.$baseCtor=x}else{for(var F=Object.getOwnPropertyNames(x.prototype),j=0;j<F.length;j++)typeof Object.getOwnPropertyDescriptor(a.prototype,F[j])>"u"&&Object.defineProperty(a.prototype,F[j],Object.getOwnPropertyDescriptor(x.prototype,F[j]));for(A in x)typeof a[A]>"u"&&(a[A]=x[A]);a.$baseCtor=x}};e.Path=function(){return[]},e.Path.prototype.push=Array.prototype.push,e.Paths=function(){return[]},e.Paths.prototype.push=Array.prototype.push,e.DoublePoint=function(){var a=arguments;this.X=0,this.Y=0,a.length===1?(this.X=a[0].X,this.Y=a[0].Y):a.length===2&&(this.X=a[0],this.Y=a[1])},e.DoublePoint0=function(){this.X=0,this.Y=0},e.DoublePoint0.prototype=e.DoublePoint.prototype,e.DoublePoint1=function(a){this.X=a.X,this.Y=a.Y},e.DoublePoint1.prototype=e.DoublePoint.prototype,e.DoublePoint2=function(a,x){this.X=a,this.Y=x},e.DoublePoint2.prototype=e.DoublePoint.prototype,e.PolyNode=function(){this.m_Parent=null,this.m_polygon=new e.Path,this.m_Index=0,this.m_jointype=0,this.m_endtype=0,this.m_Childs=[],this.IsOpen=!1},e.PolyNode.prototype.IsHoleNode=function(){for(var a=!0,x=this.m_Parent;x!==null;)a=!a,x=x.m_Parent;return a},e.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length},e.PolyNode.prototype.Contour=function(){return this.m_polygon},e.PolyNode.prototype.AddChild=function(a){var x=this.m_Childs.length;this.m_Childs.push(a),a.m_Parent=this,a.m_Index=x},e.PolyNode.prototype.GetNext=function(){return this.m_Childs.length>0?this.m_Childs[0]:this.GetNextSiblingUp()},e.PolyNode.prototype.GetNextSiblingUp=function(){return this.m_Parent===null?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},e.PolyNode.prototype.Childs=function(){return this.m_Childs},e.PolyNode.prototype.Parent=function(){return this.m_Parent},e.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},e.PolyTree=function(){this.m_AllPolys=[],e.PolyNode.call(this)},e.PolyTree.prototype.Clear=function(){for(var a=0,x=this.m_AllPolys.length;a<x;a++)this.m_AllPolys[a]=null;this.m_AllPolys.length=0,this.m_Childs.length=0},e.PolyTree.prototype.GetFirst=function(){return this.m_Childs.length>0?this.m_Childs[0]:null},e.PolyTree.prototype.Total=function(){var a=this.m_AllPolys.length;return a>0&&this.m_Childs[0]!==this.m_AllPolys[0]&&a--,a},Ui(e.PolyTree,e.PolyNode),e.Math_Abs_Int64=e.Math_Abs_Int32=e.Math_Abs_Double=function(a){return Math.abs(a)},e.Math_Max_Int32_Int32=function(a,x){return Math.max(a,x)},s.msie||s.opera||s.safari?e.Cast_Int32=function(a){return a|0}:e.Cast_Int32=function(a){return~~a},typeof Number.toInteger>"u"&&(Number.toInteger=null),s.chrome?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):~~a}:s.firefox&&typeof Number.toInteger=="function"?e.Cast_Int64=function(a){return Number.toInteger(a)}:s.msie7||s.msie8?e.Cast_Int64=function(a){return parseInt(a,10)}:s.msie?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):a|0}:e.Cast_Int64=function(a){return a<0?Math.ceil(a):Math.floor(a)},e.Clear=function(a){a.length=0},e.PI=3.141592653589793,e.PI2=2*3.141592653589793,e.IntPoint=function(){var a=arguments,x=a.length;if(this.X=0,this.Y=0,e.use_xyz)if(this.Z=0,x===3)this.X=a[0],this.Y=a[1],this.Z=a[2];else if(x===2)this.X=a[0],this.Y=a[1],this.Z=0;else if(x===1)if(a[0]instanceof e.DoublePoint){var A=a[0];this.X=e.Clipper.Round(A.X),this.Y=e.Clipper.Round(A.Y),this.Z=0}else{var F=a[0];typeof F.Z>"u"&&(F.Z=0),this.X=F.X,this.Y=F.Y,this.Z=F.Z}else this.X=0,this.Y=0,this.Z=0;else if(x===2)this.X=a[0],this.Y=a[1];else if(x===1)if(a[0]instanceof e.DoublePoint){var A=a[0];this.X=e.Clipper.Round(A.X),this.Y=e.Clipper.Round(A.Y)}else{var F=a[0];this.X=F.X,this.Y=F.Y}else this.X=0,this.Y=0},e.IntPoint.op_Equality=function(a,x){return a.X===x.X&&a.Y===x.Y},e.IntPoint.op_Inequality=function(a,x){return a.X!==x.X||a.Y!==x.Y},e.IntPoint0=function(){this.X=0,this.Y=0,e.use_xyz&&(this.Z=0)},e.IntPoint0.prototype=e.IntPoint.prototype,e.IntPoint1=function(a){this.X=a.X,this.Y=a.Y,e.use_xyz&&(typeof a.Z>"u"?this.Z=0:this.Z=a.Z)},e.IntPoint1.prototype=e.IntPoint.prototype,e.IntPoint1dp=function(a){this.X=e.Clipper.Round(a.X),this.Y=e.Clipper.Round(a.Y),e.use_xyz&&(this.Z=0)},e.IntPoint1dp.prototype=e.IntPoint.prototype,e.IntPoint2=function(a,x,A){this.X=a,this.Y=x,e.use_xyz&&(typeof A>"u"?this.Z=0:this.Z=A)},e.IntPoint2.prototype=e.IntPoint.prototype,e.IntRect=function(){var a=arguments,x=a.length;if(x===4)this.left=a[0],this.top=a[1],this.right=a[2],this.bottom=a[3];else if(x===1){var A=a[0];this.left=A.left,this.top=A.top,this.right=A.right,this.bottom=A.bottom}else this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0.prototype=e.IntRect.prototype,e.IntRect1=function(a){this.left=a.left,this.top=a.top,this.right=a.right,this.bottom=a.bottom},e.IntRect1.prototype=e.IntRect.prototype,e.IntRect4=function(a,x,A,F){this.left=a,this.top=x,this.right=A,this.bottom=F},e.IntRect4.prototype=e.IntRect.prototype,e.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},e.PolyType={ptSubject:0,ptClip:1},e.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},e.JoinType={jtSquare:0,jtRound:1,jtMiter:2},e.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},e.EdgeSide={esLeft:0,esRight:1},e.Direction={dRightToLeft:0,dLeftToRight:1},e.TEdge=function(){this.Bot=new e.IntPoint0,this.Curr=new e.IntPoint0,this.Top=new e.IntPoint0,this.Delta=new e.IntPoint0,this.Dx=0,this.PolyTyp=e.PolyType.ptSubject,this.Side=e.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},e.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new e.IntPoint0},e.MyIntersectNodeSort=function(){},e.MyIntersectNodeSort.Compare=function(a,x){var A=x.Pt.Y-a.Pt.Y;return A>0?1:A<0?-1:0},e.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},e.Scanbeam=function(){this.Y=0,this.Next=null},e.Maxima=function(){this.X=0,this.Next=null,this.Prev=null},e.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},e.OutPt=function(){this.Idx=0,this.Pt=new e.IntPoint0,this.Next=null,this.Prev=null},e.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new e.IntPoint0},e.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_Scanbeam=null,this.m_PolyOuts=null,this.m_ActiveEdges=null},e.ClipperBase.horizontal=-9007199254740992,e.ClipperBase.Skip=-2,e.ClipperBase.Unassigned=-1,e.ClipperBase.tolerance=1e-20,e.ClipperBase.loRange=47453132,e.ClipperBase.hiRange=0xfffffffffffff,e.ClipperBase.near_zero=function(a){return a>-e.ClipperBase.tolerance&&a<e.ClipperBase.tolerance},e.ClipperBase.IsHorizontal=function(a){return a.Delta.Y===0},e.ClipperBase.prototype.PointIsVertex=function(a,x){var A=x;do{if(e.IntPoint.op_Equality(A.Pt,a))return!0;A=A.Next}while(A!==x);return!1},e.ClipperBase.prototype.PointOnLineSegment=function(a,x,A,F){return F?a.X===x.X&&a.Y===x.Y||a.X===A.X&&a.Y===A.Y||a.X>x.X==a.X<A.X&&a.Y>x.Y==a.Y<A.Y&&ge.op_Equality(ge.Int128Mul(a.X-x.X,A.Y-x.Y),ge.Int128Mul(A.X-x.X,a.Y-x.Y)):a.X===x.X&&a.Y===x.Y||a.X===A.X&&a.Y===A.Y||a.X>x.X==a.X<A.X&&a.Y>x.Y==a.Y<A.Y&&(a.X-x.X)*(A.Y-x.Y)===(A.X-x.X)*(a.Y-x.Y)},e.ClipperBase.prototype.PointOnPolygon=function(a,x,A){for(var F=x;;){if(this.PointOnLineSegment(a,F.Pt,F.Next.Pt,A))return!0;if(F=F.Next,F===x)break}return!1},e.ClipperBase.prototype.SlopesEqual=e.ClipperBase.SlopesEqual=function(){var a=arguments,x=a.length,A,F,j,_,st,Pt,xt;return x===3?(A=a[0],F=a[1],xt=a[2],xt?ge.op_Equality(ge.Int128Mul(A.Delta.Y,F.Delta.X),ge.Int128Mul(A.Delta.X,F.Delta.Y)):e.Cast_Int64(A.Delta.Y*F.Delta.X)===e.Cast_Int64(A.Delta.X*F.Delta.Y)):x===4?(j=a[0],_=a[1],st=a[2],xt=a[3],xt?ge.op_Equality(ge.Int128Mul(j.Y-_.Y,_.X-st.X),ge.Int128Mul(j.X-_.X,_.Y-st.Y)):e.Cast_Int64((j.Y-_.Y)*(_.X-st.X))-e.Cast_Int64((j.X-_.X)*(_.Y-st.Y))===0):(j=a[0],_=a[1],st=a[2],Pt=a[3],xt=a[4],xt?ge.op_Equality(ge.Int128Mul(j.Y-_.Y,st.X-Pt.X),ge.Int128Mul(j.X-_.X,st.Y-Pt.Y)):e.Cast_Int64((j.Y-_.Y)*(st.X-Pt.X))-e.Cast_Int64((j.X-_.X)*(st.Y-Pt.Y))===0)},e.ClipperBase.SlopesEqual3=function(a,x,A){return A?ge.op_Equality(ge.Int128Mul(a.Delta.Y,x.Delta.X),ge.Int128Mul(a.Delta.X,x.Delta.Y)):e.Cast_Int64(a.Delta.Y*x.Delta.X)===e.Cast_Int64(a.Delta.X*x.Delta.Y)},e.ClipperBase.SlopesEqual4=function(a,x,A,F){return F?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,x.X-A.X),ge.Int128Mul(a.X-x.X,x.Y-A.Y)):e.Cast_Int64((a.Y-x.Y)*(x.X-A.X))-e.Cast_Int64((a.X-x.X)*(x.Y-A.Y))===0},e.ClipperBase.SlopesEqual5=function(a,x,A,F,j){return j?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,A.X-F.X),ge.Int128Mul(a.X-x.X,A.Y-F.Y)):e.Cast_Int64((a.Y-x.Y)*(A.X-F.X))-e.Cast_Int64((a.X-x.X)*(A.Y-F.Y))===0},e.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var a=0,x=this.m_edges.length;a<x;++a){for(var A=0,F=this.m_edges[a].length;A<F;++A)this.m_edges[a][A]=null;e.Clear(this.m_edges[a])}e.Clear(this.m_edges),this.m_UseFullRange=!1,this.m_HasOpenPaths=!1},e.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;this.m_MinimaList!==null;){var a=this.m_MinimaList.Next;this.m_MinimaList=null,this.m_MinimaList=a}this.m_CurrentLM=null},e.ClipperBase.prototype.RangeTest=function(a,x){x.Value?(a.X>e.ClipperBase.hiRange||a.Y>e.ClipperBase.hiRange||-a.X>e.ClipperBase.hiRange||-a.Y>e.ClipperBase.hiRange)&&e.Error("Coordinate outside allowed range in RangeTest()."):(a.X>e.ClipperBase.loRange||a.Y>e.ClipperBase.loRange||-a.X>e.ClipperBase.loRange||-a.Y>e.ClipperBase.loRange)&&(x.Value=!0,this.RangeTest(a,x))},e.ClipperBase.prototype.InitEdge=function(a,x,A,F){a.Next=x,a.Prev=A,a.Curr.X=F.X,a.Curr.Y=F.Y,e.use_xyz&&(a.Curr.Z=F.Z),a.OutIdx=-1},e.ClipperBase.prototype.InitEdge2=function(a,x){a.Curr.Y>=a.Next.Curr.Y?(a.Bot.X=a.Curr.X,a.Bot.Y=a.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Curr.Z),a.Top.X=a.Next.Curr.X,a.Top.Y=a.Next.Curr.Y,e.use_xyz&&(a.Top.Z=a.Next.Curr.Z)):(a.Top.X=a.Curr.X,a.Top.Y=a.Curr.Y,e.use_xyz&&(a.Top.Z=a.Curr.Z),a.Bot.X=a.Next.Curr.X,a.Bot.Y=a.Next.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Next.Curr.Z)),this.SetDx(a),a.PolyTyp=x},e.ClipperBase.prototype.FindNextLocMin=function(a){for(var x;;){for(;e.IntPoint.op_Inequality(a.Bot,a.Prev.Bot)||e.IntPoint.op_Equality(a.Curr,a.Top);)a=a.Next;if(a.Dx!==e.ClipperBase.horizontal&&a.Prev.Dx!==e.ClipperBase.horizontal)break;for(;a.Prev.Dx===e.ClipperBase.horizontal;)a=a.Prev;for(x=a;a.Dx===e.ClipperBase.horizontal;)a=a.Next;if(a.Top.Y!==a.Prev.Bot.Y){x.Prev.Bot.X<a.Bot.X&&(a=x);break}}return a},e.ClipperBase.prototype.ProcessBound=function(a,x){var A,F=a,j;if(F.OutIdx===e.ClipperBase.Skip){if(a=F,x){for(;a.Top.Y===a.Next.Bot.Y;)a=a.Next;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Prev}else{for(;a.Top.Y===a.Prev.Bot.Y;)a=a.Prev;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Next}if(a===F)x?F=a.Next:F=a.Prev;else{x?a=F.Next:a=F.Prev;var _=new e.LocalMinima;_.Next=null,_.Y=a.Bot.Y,_.LeftBound=null,_.RightBound=a,a.WindDelta=0,F=this.ProcessBound(a,x),this.InsertLocalMinima(_)}return F}if(a.Dx===e.ClipperBase.horizontal&&(x?A=a.Prev:A=a.Next,A.Dx===e.ClipperBase.horizontal?A.Bot.X!==a.Bot.X&&A.Top.X!==a.Bot.X&&this.ReverseHorizontal(a):A.Bot.X!==a.Bot.X&&this.ReverseHorizontal(a)),A=a,x){for(;F.Top.Y===F.Next.Bot.Y&&F.Next.OutIdx!==e.ClipperBase.Skip;)F=F.Next;if(F.Dx===e.ClipperBase.horizontal&&F.Next.OutIdx!==e.ClipperBase.Skip){for(j=F;j.Prev.Dx===e.ClipperBase.horizontal;)j=j.Prev;j.Prev.Top.X>F.Next.Top.X&&(F=j.Prev)}for(;a!==F;)a.NextInLML=a.Next,a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),a=a.Next;a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),F=F.Next}else{for(;F.Top.Y===F.Prev.Bot.Y&&F.Prev.OutIdx!==e.ClipperBase.Skip;)F=F.Prev;if(F.Dx===e.ClipperBase.horizontal&&F.Prev.OutIdx!==e.ClipperBase.Skip){for(j=F;j.Next.Dx===e.ClipperBase.horizontal;)j=j.Next;(j.Next.Top.X===F.Prev.Top.X||j.Next.Top.X>F.Prev.Top.X)&&(F=j.Next)}for(;a!==F;)a.NextInLML=a.Prev,a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),a=a.Prev;a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),F=F.Prev}return F},e.ClipperBase.prototype.AddPath=function(a,x,A){e.use_lines?!A&&x===e.PolyType.ptClip&&e.Error("AddPath: Open paths must be subject."):A||e.Error("AddPath: Open paths have been disabled.");var F=a.length-1;if(A)for(;F>0&&e.IntPoint.op_Equality(a[F],a[0]);)--F;for(;F>0&&e.IntPoint.op_Equality(a[F],a[F-1]);)--F;if(A&&F<2||!A&&F<1)return!1;for(var j=new Array,_=0;_<=F;_++)j.push(new e.TEdge);var st=!0;j[1].Curr.X=a[1].X,j[1].Curr.Y=a[1].Y,e.use_xyz&&(j[1].Curr.Z=a[1].Z);var Pt={Value:this.m_UseFullRange};this.RangeTest(a[0],Pt),this.m_UseFullRange=Pt.Value,Pt.Value=this.m_UseFullRange,this.RangeTest(a[F],Pt),this.m_UseFullRange=Pt.Value,this.InitEdge(j[0],j[1],j[F],a[0]),this.InitEdge(j[F],j[0],j[F-1],a[F]);for(var _=F-1;_>=1;--_)Pt.Value=this.m_UseFullRange,this.RangeTest(a[_],Pt),this.m_UseFullRange=Pt.Value,this.InitEdge(j[_],j[_+1],j[_-1],a[_]);for(var xt=j[0],Dt=xt,Ht=xt;;){if(Dt.Curr===Dt.Next.Curr&&(A||Dt.Next!==xt)){if(Dt===Dt.Next)break;Dt===xt&&(xt=Dt.Next),Dt=this.RemoveEdge(Dt),Ht=Dt;continue}if(Dt.Prev===Dt.Next)break;if(A&&e.ClipperBase.SlopesEqual4(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr))){Dt===xt&&(xt=Dt.Next),Dt=this.RemoveEdge(Dt),Dt=Dt.Prev,Ht=Dt;continue}if(Dt=Dt.Next,Dt===Ht||!A&&Dt.Next===xt)break}if(!A&&Dt===Dt.Next||A&&Dt.Prev===Dt.Next)return!1;A||(this.m_HasOpenPaths=!0,xt.Prev.OutIdx=e.ClipperBase.Skip),Dt=xt;do this.InitEdge2(Dt,x),Dt=Dt.Next,st&&Dt.Curr.Y!==xt.Curr.Y&&(st=!1);while(Dt!==xt);if(st){if(A)return!1;Dt.Prev.OutIdx=e.ClipperBase.Skip;var jt=new e.LocalMinima;for(jt.Next=null,jt.Y=Dt.Bot.Y,jt.LeftBound=null,jt.RightBound=Dt,jt.RightBound.Side=e.EdgeSide.esRight,jt.RightBound.WindDelta=0;Dt.Bot.X!==Dt.Prev.Top.X&&this.ReverseHorizontal(Dt),Dt.Next.OutIdx!==e.ClipperBase.Skip;)Dt.NextInLML=Dt.Next,Dt=Dt.Next;return this.InsertLocalMinima(jt),this.m_edges.push(j),!0}this.m_edges.push(j);var qt,oe=null;for(e.IntPoint.op_Equality(Dt.Prev.Bot,Dt.Prev.Top)&&(Dt=Dt.Next);Dt=this.FindNextLocMin(Dt),Dt!==oe;){oe===null&&(oe=Dt);var jt=new e.LocalMinima;jt.Next=null,jt.Y=Dt.Bot.Y,Dt.Dx<Dt.Prev.Dx?(jt.LeftBound=Dt.Prev,jt.RightBound=Dt,qt=!1):(jt.LeftBound=Dt,jt.RightBound=Dt.Prev,qt=!0),jt.LeftBound.Side=e.EdgeSide.esLeft,jt.RightBound.Side=e.EdgeSide.esRight,A?jt.LeftBound.Next===jt.RightBound?jt.LeftBound.WindDelta=-1:jt.LeftBound.WindDelta=1:jt.LeftBound.WindDelta=0,jt.RightBound.WindDelta=-jt.LeftBound.WindDelta,Dt=this.ProcessBound(jt.LeftBound,qt),Dt.OutIdx===e.ClipperBase.Skip&&(Dt=this.ProcessBound(Dt,qt));var me=this.ProcessBound(jt.RightBound,!qt);me.OutIdx===e.ClipperBase.Skip&&(me=this.ProcessBound(me,!qt)),jt.LeftBound.OutIdx===e.ClipperBase.Skip?jt.LeftBound=null:jt.RightBound.OutIdx===e.ClipperBase.Skip&&(jt.RightBound=null),this.InsertLocalMinima(jt),qt||(Dt=me)}return!0},e.ClipperBase.prototype.AddPaths=function(a,x,A){for(var F=!1,j=0,_=a.length;j<_;++j)this.AddPath(a[j],x,A)&&(F=!0);return F},e.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(a,x,A){return e.IntPoint.op_Equality(a,A)||e.IntPoint.op_Equality(a,x)||e.IntPoint.op_Equality(A,x)?!1:a.X!==A.X?x.X>a.X==x.X<A.X:x.Y>a.Y==x.Y<A.Y},e.ClipperBase.prototype.RemoveEdge=function(a){a.Prev.Next=a.Next,a.Next.Prev=a.Prev;var x=a.Next;return a.Prev=null,x},e.ClipperBase.prototype.SetDx=function(a){a.Delta.X=a.Top.X-a.Bot.X,a.Delta.Y=a.Top.Y-a.Bot.Y,a.Delta.Y===0?a.Dx=e.ClipperBase.horizontal:a.Dx=a.Delta.X/a.Delta.Y},e.ClipperBase.prototype.InsertLocalMinima=function(a){if(this.m_MinimaList===null)this.m_MinimaList=a;else if(a.Y>=this.m_MinimaList.Y)a.Next=this.m_MinimaList,this.m_MinimaList=a;else{for(var x=this.m_MinimaList;x.Next!==null&&a.Y<x.Next.Y;)x=x.Next;a.Next=x.Next,x.Next=a}},e.ClipperBase.prototype.PopLocalMinima=function(a,x){return x.v=this.m_CurrentLM,this.m_CurrentLM!==null&&this.m_CurrentLM.Y===a?(this.m_CurrentLM=this.m_CurrentLM.Next,!0):!1},e.ClipperBase.prototype.ReverseHorizontal=function(a){var x=a.Top.X;a.Top.X=a.Bot.X,a.Bot.X=x,e.use_xyz&&(x=a.Top.Z,a.Top.Z=a.Bot.Z,a.Bot.Z=x)},e.ClipperBase.prototype.Reset=function(){if(this.m_CurrentLM=this.m_MinimaList,this.m_CurrentLM!==null){this.m_Scanbeam=null;for(var a=this.m_MinimaList;a!==null;){this.InsertScanbeam(a.Y);var x=a.LeftBound;x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),x=a.RightBound,x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),a=a.Next}this.m_ActiveEdges=null}},e.ClipperBase.prototype.InsertScanbeam=function(a){if(this.m_Scanbeam===null)this.m_Scanbeam=new e.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=a;else if(a>this.m_Scanbeam.Y){var x=new e.Scanbeam;x.Y=a,x.Next=this.m_Scanbeam,this.m_Scanbeam=x}else{for(var A=this.m_Scanbeam;A.Next!==null&&a<=A.Next.Y;)A=A.Next;if(a===A.Y)return;var F=new e.Scanbeam;F.Y=a,F.Next=A.Next,A.Next=F}},e.ClipperBase.prototype.PopScanbeam=function(a){return this.m_Scanbeam===null?(a.v=0,!1):(a.v=this.m_Scanbeam.Y,this.m_Scanbeam=this.m_Scanbeam.Next,!0)},e.ClipperBase.prototype.LocalMinimaPending=function(){return this.m_CurrentLM!==null},e.ClipperBase.prototype.CreateOutRec=function(){var a=new e.OutRec;return a.Idx=e.ClipperBase.Unassigned,a.IsHole=!1,a.IsOpen=!1,a.FirstLeft=null,a.Pts=null,a.BottomPt=null,a.PolyNode=null,this.m_PolyOuts.push(a),a.Idx=this.m_PolyOuts.length-1,a},e.ClipperBase.prototype.DisposeOutRec=function(a){var x=this.m_PolyOuts[a];x.Pts=null,x=null,this.m_PolyOuts[a]=null},e.ClipperBase.prototype.UpdateEdgeIntoAEL=function(a){a.NextInLML===null&&e.Error("UpdateEdgeIntoAEL: invalid call");var x=a.PrevInAEL,A=a.NextInAEL;return a.NextInLML.OutIdx=a.OutIdx,x!==null?x.NextInAEL=a.NextInLML:this.m_ActiveEdges=a.NextInLML,A!==null&&(A.PrevInAEL=a.NextInLML),a.NextInLML.Side=a.Side,a.NextInLML.WindDelta=a.WindDelta,a.NextInLML.WindCnt=a.WindCnt,a.NextInLML.WindCnt2=a.WindCnt2,a=a.NextInLML,a.Curr.X=a.Bot.X,a.Curr.Y=a.Bot.Y,a.PrevInAEL=x,a.NextInAEL=A,e.ClipperBase.IsHorizontal(a)||this.InsertScanbeam(a.Top.Y),a},e.ClipperBase.prototype.SwapPositionsInAEL=function(a,x){if(!(a.NextInAEL===a.PrevInAEL||x.NextInAEL===x.PrevInAEL)){if(a.NextInAEL===x){var A=x.NextInAEL;A!==null&&(A.PrevInAEL=a);var F=a.PrevInAEL;F!==null&&(F.NextInAEL=x),x.PrevInAEL=F,x.NextInAEL=a,a.PrevInAEL=x,a.NextInAEL=A}else if(x.NextInAEL===a){var j=a.NextInAEL;j!==null&&(j.PrevInAEL=x);var _=x.PrevInAEL;_!==null&&(_.NextInAEL=a),a.PrevInAEL=_,a.NextInAEL=x,x.PrevInAEL=a,x.NextInAEL=j}else{var st=a.NextInAEL,Pt=a.PrevInAEL;a.NextInAEL=x.NextInAEL,a.NextInAEL!==null&&(a.NextInAEL.PrevInAEL=a),a.PrevInAEL=x.PrevInAEL,a.PrevInAEL!==null&&(a.PrevInAEL.NextInAEL=a),x.NextInAEL=st,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=x),x.PrevInAEL=Pt,x.PrevInAEL!==null&&(x.PrevInAEL.NextInAEL=x)}a.PrevInAEL===null?this.m_ActiveEdges=a:x.PrevInAEL===null&&(this.m_ActiveEdges=x)}},e.ClipperBase.prototype.DeleteFromAEL=function(a){var x=a.PrevInAEL,A=a.NextInAEL;x===null&&A===null&&a!==this.m_ActiveEdges||(x!==null?x.NextInAEL=A:this.m_ActiveEdges=A,A!==null&&(A.PrevInAEL=x),a.NextInAEL=null,a.PrevInAEL=null)},e.Clipper=function(a){typeof a>"u"&&(a=0),this.m_PolyOuts=null,this.m_ClipType=e.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=e.PolyFillType.pftEvenOdd,this.m_SubjFillType=e.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,e.ClipperBase.call(this),this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=e.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=(1&a)!==0,this.StrictlySimple=(2&a)!==0,this.PreserveCollinear=(4&a)!==0,e.use_xyz&&(this.ZFillFunction=null)},e.Clipper.ioReverseSolution=1,e.Clipper.ioStrictlySimple=2,e.Clipper.ioPreserveCollinear=4,e.Clipper.prototype.Clear=function(){this.m_edges.length!==0&&(this.DisposeAllPolyPts(),e.ClipperBase.prototype.Clear.call(this))},e.Clipper.prototype.InsertMaxima=function(a){var x=new e.Maxima;if(x.X=a,this.m_Maxima===null)this.m_Maxima=x,this.m_Maxima.Next=null,this.m_Maxima.Prev=null;else if(a<this.m_Maxima.X)x.Next=this.m_Maxima,x.Prev=null,this.m_Maxima=x;else{for(var A=this.m_Maxima;A.Next!==null&&a>=A.Next.X;)A=A.Next;if(a===A.X)return;x.Next=A.Next,x.Prev=A,A.Next!==null&&(A.Next.Prev=x),A.Next=x}},e.Clipper.prototype.Execute=function(){var a=arguments,x=a.length,A=a[1]instanceof e.PolyTree;if(x===4&&!A){var F=a[0],j=a[1],_=a[2],st=a[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&e.Error("Error: PolyTree struct is needed for open path clipping."),this.m_ExecuteLocked=!0,e.Clear(j),this.m_SubjFillType=_,this.m_ClipFillType=st,this.m_ClipType=F,this.m_UsingPolyTree=!1;try{var Pt=this.ExecuteInternal();Pt&&this.BuildResult(j)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return Pt}else if(x===4&&A){var F=a[0],xt=a[1],_=a[2],st=a[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=_,this.m_ClipFillType=st,this.m_ClipType=F,this.m_UsingPolyTree=!0;try{var Pt=this.ExecuteInternal();Pt&&this.BuildResult2(xt)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return Pt}else if(x===2&&!A){var F=a[0],j=a[1];return this.Execute(F,j,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}else if(x===2&&A){var F=a[0],xt=a[1];return this.Execute(F,xt,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}},e.Clipper.prototype.FixHoleLinkage=function(a){if(!(a.FirstLeft===null||a.IsHole!==a.FirstLeft.IsHole&&a.FirstLeft.Pts!==null)){for(var x=a.FirstLeft;x!==null&&(x.IsHole===a.IsHole||x.Pts===null);)x=x.FirstLeft;a.FirstLeft=x}},e.Clipper.prototype.ExecuteInternal=function(){try{this.Reset(),this.m_SortedEdges=null,this.m_Maxima=null;var a={},x={};if(!this.PopScanbeam(a))return!1;for(this.InsertLocalMinimaIntoAEL(a.v);this.PopScanbeam(x)||this.LocalMinimaPending();){if(this.ProcessHorizontals(),this.m_GhostJoins.length=0,!this.ProcessIntersections(x.v))return!1;this.ProcessEdgesAtTopOfScanbeam(x.v),a.v=x.v,this.InsertLocalMinimaIntoAEL(a.v)}var A,F,j;for(F=0,j=this.m_PolyOuts.length;F<j;F++)A=this.m_PolyOuts[F],!(A.Pts===null||A.IsOpen)&&(A.IsHole^this.ReverseSolution)==this.Area$1(A)>0&&this.ReversePolyPtLinks(A.Pts);for(this.JoinCommonEdges(),F=0,j=this.m_PolyOuts.length;F<j;F++)A=this.m_PolyOuts[F],A.Pts!==null&&(A.IsOpen?this.FixupOutPolyline(A):this.FixupOutPolygon(A));return this.StrictlySimple&&this.DoSimplePolygons(),!0}finally{this.m_Joins.length=0,this.m_GhostJoins.length=0}},e.Clipper.prototype.DisposeAllPolyPts=function(){for(var a=0,x=this.m_PolyOuts.length;a<x;++a)this.DisposeOutRec(a);e.Clear(this.m_PolyOuts)},e.Clipper.prototype.AddJoin=function(a,x,A){var F=new e.Join;F.OutPt1=a,F.OutPt2=x,F.OffPt.X=A.X,F.OffPt.Y=A.Y,e.use_xyz&&(F.OffPt.Z=A.Z),this.m_Joins.push(F)},e.Clipper.prototype.AddGhostJoin=function(a,x){var A=new e.Join;A.OutPt1=a,A.OffPt.X=x.X,A.OffPt.Y=x.Y,e.use_xyz&&(A.OffPt.Z=x.Z),this.m_GhostJoins.push(A)},e.Clipper.prototype.SetZ=function(a,x,A){if(this.ZFillFunction!==null){if(a.Z!==0||this.ZFillFunction===null)return;e.IntPoint.op_Equality(a,x.Bot)?a.Z=x.Bot.Z:e.IntPoint.op_Equality(a,x.Top)?a.Z=x.Top.Z:e.IntPoint.op_Equality(a,A.Bot)?a.Z=A.Bot.Z:e.IntPoint.op_Equality(a,A.Top)?a.Z=A.Top.Z:this.ZFillFunction(x.Bot,x.Top,A.Bot,A.Top,a)}},e.Clipper.prototype.InsertLocalMinimaIntoAEL=function(a){for(var x={},A,F;this.PopLocalMinima(a,x);){A=x.v.LeftBound,F=x.v.RightBound;var j=null;if(A===null?(this.InsertEdgeIntoAEL(F,null),this.SetWindingCount(F),this.IsContributing(F)&&(j=this.AddOutPt(F,F.Bot))):F===null?(this.InsertEdgeIntoAEL(A,null),this.SetWindingCount(A),this.IsContributing(A)&&(j=this.AddOutPt(A,A.Bot)),this.InsertScanbeam(A.Top.Y)):(this.InsertEdgeIntoAEL(A,null),this.InsertEdgeIntoAEL(F,A),this.SetWindingCount(A),F.WindCnt=A.WindCnt,F.WindCnt2=A.WindCnt2,this.IsContributing(A)&&(j=this.AddLocalMinPoly(A,F,A.Bot)),this.InsertScanbeam(A.Top.Y)),F!==null&&(e.ClipperBase.IsHorizontal(F)?(F.NextInLML!==null&&this.InsertScanbeam(F.NextInLML.Top.Y),this.AddEdgeToSEL(F)):this.InsertScanbeam(F.Top.Y)),!(A===null||F===null)){if(j!==null&&e.ClipperBase.IsHorizontal(F)&&this.m_GhostJoins.length>0&&F.WindDelta!==0)for(var _=0,st=this.m_GhostJoins.length;_<st;_++){var Pt=this.m_GhostJoins[_];this.HorzSegmentsOverlap(Pt.OutPt1.Pt.X,Pt.OffPt.X,F.Bot.X,F.Top.X)&&this.AddJoin(Pt.OutPt1,j,Pt.OffPt)}if(A.OutIdx>=0&&A.PrevInAEL!==null&&A.PrevInAEL.Curr.X===A.Bot.X&&A.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(A.PrevInAEL.Curr,A.PrevInAEL.Top,A.Curr,A.Top,this.m_UseFullRange)&&A.WindDelta!==0&&A.PrevInAEL.WindDelta!==0){var xt=this.AddOutPt(A.PrevInAEL,A.Bot);this.AddJoin(j,xt,A.Top)}if(A.NextInAEL!==F){if(F.OutIdx>=0&&F.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(F.PrevInAEL.Curr,F.PrevInAEL.Top,F.Curr,F.Top,this.m_UseFullRange)&&F.WindDelta!==0&&F.PrevInAEL.WindDelta!==0){var xt=this.AddOutPt(F.PrevInAEL,F.Bot);this.AddJoin(j,xt,F.Top)}var Dt=A.NextInAEL;if(Dt!==null)for(;Dt!==F;)this.IntersectEdges(F,Dt,A.Curr),Dt=Dt.NextInAEL}}}},e.Clipper.prototype.InsertEdgeIntoAEL=function(a,x){if(this.m_ActiveEdges===null)a.PrevInAEL=null,a.NextInAEL=null,this.m_ActiveEdges=a;else if(x===null&&this.E2InsertsBeforeE1(this.m_ActiveEdges,a))a.PrevInAEL=null,a.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=a,this.m_ActiveEdges=a;else{for(x===null&&(x=this.m_ActiveEdges);x.NextInAEL!==null&&!this.E2InsertsBeforeE1(x.NextInAEL,a);)x=x.NextInAEL;a.NextInAEL=x.NextInAEL,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=a),a.PrevInAEL=x,x.NextInAEL=a}},e.Clipper.prototype.E2InsertsBeforeE1=function(a,x){return x.Curr.X===a.Curr.X?x.Top.Y>a.Top.Y?x.Top.X<e.Clipper.TopX(a,x.Top.Y):a.Top.X>e.Clipper.TopX(x,a.Top.Y):x.Curr.X<a.Curr.X},e.Clipper.prototype.IsEvenOddFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType===e.PolyFillType.pftEvenOdd:this.m_ClipFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsEvenOddAltFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_ClipFillType===e.PolyFillType.pftEvenOdd:this.m_SubjFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsContributing=function(a){var x,A;switch(a.PolyTyp===e.PolyType.ptSubject?(x=this.m_SubjFillType,A=this.m_ClipFillType):(x=this.m_ClipFillType,A=this.m_SubjFillType),x){case e.PolyFillType.pftEvenOdd:if(a.WindDelta===0&&a.WindCnt!==1)return!1;break;case e.PolyFillType.pftNonZero:if(Math.abs(a.WindCnt)!==1)return!1;break;case e.PolyFillType.pftPositive:if(a.WindCnt!==1)return!1;break;default:if(a.WindCnt!==-1)return!1;break}switch(this.m_ClipType){case e.ClipType.ctIntersection:switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctUnion:switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}case e.ClipType.ctDifference:if(a.PolyTyp===e.PolyType.ptSubject)switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctXor:if(a.WindDelta===0)switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else return!0}return!0},e.Clipper.prototype.SetWindingCount=function(a){for(var x=a.PrevInAEL;x!==null&&(x.PolyTyp!==a.PolyTyp||x.WindDelta===0);)x=x.PrevInAEL;if(x===null){var A=a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType;a.WindDelta===0?a.WindCnt=A===e.PolyFillType.pftNegative?-1:1:a.WindCnt=a.WindDelta,a.WindCnt2=0,x=this.m_ActiveEdges}else if(a.WindDelta===0&&this.m_ClipType!==e.ClipType.ctUnion)a.WindCnt=1,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;else if(this.IsEvenOddFillType(a)){if(a.WindDelta===0){for(var F=!0,j=x.PrevInAEL;j!==null;)j.PolyTyp===x.PolyTyp&&j.WindDelta!==0&&(F=!F),j=j.PrevInAEL;a.WindCnt=F?0:1}else a.WindCnt=a.WindDelta;a.WindCnt2=x.WindCnt2,x=x.NextInAEL}else x.WindCnt*x.WindDelta<0?Math.abs(x.WindCnt)>1?x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta:a.WindCnt=a.WindDelta===0?1:a.WindDelta:a.WindDelta===0?a.WindCnt=x.WindCnt<0?x.WindCnt-1:x.WindCnt+1:x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;if(this.IsEvenOddAltFillType(a))for(;x!==a;)x.WindDelta!==0&&(a.WindCnt2=a.WindCnt2===0?1:0),x=x.NextInAEL;else for(;x!==a;)a.WindCnt2+=x.WindDelta,x=x.NextInAEL},e.Clipper.prototype.AddEdgeToSEL=function(a){this.m_SortedEdges===null?(this.m_SortedEdges=a,a.PrevInSEL=null,a.NextInSEL=null):(a.NextInSEL=this.m_SortedEdges,a.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=a,this.m_SortedEdges=a)},e.Clipper.prototype.PopEdgeFromSEL=function(a){if(a.v=this.m_SortedEdges,a.v===null)return!1;var x=a.v;return this.m_SortedEdges=a.v.NextInSEL,this.m_SortedEdges!==null&&(this.m_SortedEdges.PrevInSEL=null),x.NextInSEL=null,x.PrevInSEL=null,!0},e.Clipper.prototype.CopyAELToSEL=function(){var a=this.m_ActiveEdges;for(this.m_SortedEdges=a;a!==null;)a.PrevInSEL=a.PrevInAEL,a.NextInSEL=a.NextInAEL,a=a.NextInAEL},e.Clipper.prototype.SwapPositionsInSEL=function(a,x){if(!(a.NextInSEL===null&&a.PrevInSEL===null)&&!(x.NextInSEL===null&&x.PrevInSEL===null)){if(a.NextInSEL===x){var A=x.NextInSEL;A!==null&&(A.PrevInSEL=a);var F=a.PrevInSEL;F!==null&&(F.NextInSEL=x),x.PrevInSEL=F,x.NextInSEL=a,a.PrevInSEL=x,a.NextInSEL=A}else if(x.NextInSEL===a){var A=a.NextInSEL;A!==null&&(A.PrevInSEL=x);var F=x.PrevInSEL;F!==null&&(F.NextInSEL=a),a.PrevInSEL=F,a.NextInSEL=x,x.PrevInSEL=a,x.NextInSEL=A}else{var A=a.NextInSEL,F=a.PrevInSEL;a.NextInSEL=x.NextInSEL,a.NextInSEL!==null&&(a.NextInSEL.PrevInSEL=a),a.PrevInSEL=x.PrevInSEL,a.PrevInSEL!==null&&(a.PrevInSEL.NextInSEL=a),x.NextInSEL=A,x.NextInSEL!==null&&(x.NextInSEL.PrevInSEL=x),x.PrevInSEL=F,x.PrevInSEL!==null&&(x.PrevInSEL.NextInSEL=x)}a.PrevInSEL===null?this.m_SortedEdges=a:x.PrevInSEL===null&&(this.m_SortedEdges=x)}},e.Clipper.prototype.AddLocalMaxPoly=function(a,x,A){this.AddOutPt(a,A),x.WindDelta===0&&this.AddOutPt(x,A),a.OutIdx===x.OutIdx?(a.OutIdx=-1,x.OutIdx=-1):a.OutIdx<x.OutIdx?this.AppendPolygon(a,x):this.AppendPolygon(x,a)},e.Clipper.prototype.AddLocalMinPoly=function(a,x,A){var F,j,_;if(e.ClipperBase.IsHorizontal(x)||a.Dx>x.Dx?(F=this.AddOutPt(a,A),x.OutIdx=a.OutIdx,a.Side=e.EdgeSide.esLeft,x.Side=e.EdgeSide.esRight,j=a,j.PrevInAEL===x?_=x.PrevInAEL:_=j.PrevInAEL):(F=this.AddOutPt(x,A),a.OutIdx=x.OutIdx,a.Side=e.EdgeSide.esRight,x.Side=e.EdgeSide.esLeft,j=x,j.PrevInAEL===a?_=a.PrevInAEL:_=j.PrevInAEL),_!==null&&_.OutIdx>=0&&_.Top.Y<A.Y&&j.Top.Y<A.Y){var st=e.Clipper.TopX(_,A.Y),Pt=e.Clipper.TopX(j,A.Y);if(st===Pt&&j.WindDelta!==0&&_.WindDelta!==0&&e.ClipperBase.SlopesEqual5(new e.IntPoint2(st,A.Y),_.Top,new e.IntPoint2(Pt,A.Y),j.Top,this.m_UseFullRange)){var xt=this.AddOutPt(_,A);this.AddJoin(F,xt,j.Top)}}return F},e.Clipper.prototype.AddOutPt=function(a,x){if(a.OutIdx<0){var A=this.CreateOutRec();A.IsOpen=a.WindDelta===0;var F=new e.OutPt;return A.Pts=F,F.Idx=A.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=F,F.Prev=F,A.IsOpen||this.SetHoleState(a,A),a.OutIdx=A.Idx,F}else{var A=this.m_PolyOuts[a.OutIdx],j=A.Pts,_=a.Side===e.EdgeSide.esLeft;if(_&&e.IntPoint.op_Equality(x,j.Pt))return j;if(!_&&e.IntPoint.op_Equality(x,j.Prev.Pt))return j.Prev;var F=new e.OutPt;return F.Idx=A.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=j,F.Prev=j.Prev,F.Prev.Next=F,j.Prev=F,_&&(A.Pts=F),F}},e.Clipper.prototype.GetLastOutPt=function(a){var x=this.m_PolyOuts[a.OutIdx];return a.Side===e.EdgeSide.esLeft?x.Pts:x.Pts.Prev},e.Clipper.prototype.SwapPoints=function(a,x){var A=new e.IntPoint1(a.Value);a.Value.X=x.Value.X,a.Value.Y=x.Value.Y,e.use_xyz&&(a.Value.Z=x.Value.Z),x.Value.X=A.X,x.Value.Y=A.Y,e.use_xyz&&(x.Value.Z=A.Z)},e.Clipper.prototype.HorzSegmentsOverlap=function(a,x,A,F){var j;return a>x&&(j=a,a=x,x=j),A>F&&(j=A,A=F,F=j),a<F&&A<x},e.Clipper.prototype.SetHoleState=function(a,x){for(var A=a.PrevInAEL,F=null;A!==null;)A.OutIdx>=0&&A.WindDelta!==0&&(F===null?F=A:F.OutIdx===A.OutIdx&&(F=null)),A=A.PrevInAEL;F===null?(x.FirstLeft=null,x.IsHole=!1):(x.FirstLeft=this.m_PolyOuts[F.OutIdx],x.IsHole=!x.FirstLeft.IsHole)},e.Clipper.prototype.GetDx=function(a,x){return a.Y===x.Y?e.ClipperBase.horizontal:(x.X-a.X)/(x.Y-a.Y)},e.Clipper.prototype.FirstIsBottomPt=function(a,x){for(var A=a.Prev;e.IntPoint.op_Equality(A.Pt,a.Pt)&&A!==a;)A=A.Prev;var F=Math.abs(this.GetDx(a.Pt,A.Pt));for(A=a.Next;e.IntPoint.op_Equality(A.Pt,a.Pt)&&A!==a;)A=A.Next;var j=Math.abs(this.GetDx(a.Pt,A.Pt));for(A=x.Prev;e.IntPoint.op_Equality(A.Pt,x.Pt)&&A!==x;)A=A.Prev;var _=Math.abs(this.GetDx(x.Pt,A.Pt));for(A=x.Next;e.IntPoint.op_Equality(A.Pt,x.Pt)&&A!==x;)A=A.Next;var st=Math.abs(this.GetDx(x.Pt,A.Pt));return Math.max(F,j)===Math.max(_,st)&&Math.min(F,j)===Math.min(_,st)?this.Area(a)>0:F>=_&&F>=st||j>=_&&j>=st},e.Clipper.prototype.GetBottomPt=function(a){for(var x=null,A=a.Next;A!==a;)A.Pt.Y>a.Pt.Y?(a=A,x=null):A.Pt.Y===a.Pt.Y&&A.Pt.X<=a.Pt.X&&(A.Pt.X<a.Pt.X?(x=null,a=A):A.Next!==a&&A.Prev!==a&&(x=A)),A=A.Next;if(x!==null)for(;x!==A;)for(this.FirstIsBottomPt(A,x)||(a=x),x=x.Next;e.IntPoint.op_Inequality(x.Pt,a.Pt);)x=x.Next;return a},e.Clipper.prototype.GetLowermostRec=function(a,x){a.BottomPt===null&&(a.BottomPt=this.GetBottomPt(a.Pts)),x.BottomPt===null&&(x.BottomPt=this.GetBottomPt(x.Pts));var A=a.BottomPt,F=x.BottomPt;return A.Pt.Y>F.Pt.Y?a:A.Pt.Y<F.Pt.Y?x:A.Pt.X<F.Pt.X?a:A.Pt.X>F.Pt.X||A.Next===A?x:F.Next===F||this.FirstIsBottomPt(A,F)?a:x},e.Clipper.prototype.OutRec1RightOfOutRec2=function(a,x){do if(a=a.FirstLeft,a===x)return!0;while(a!==null);return!1},e.Clipper.prototype.GetOutRec=function(a){for(var x=this.m_PolyOuts[a];x!==this.m_PolyOuts[x.Idx];)x=this.m_PolyOuts[x.Idx];return x},e.Clipper.prototype.AppendPolygon=function(a,x){var A=this.m_PolyOuts[a.OutIdx],F=this.m_PolyOuts[x.OutIdx],j;this.OutRec1RightOfOutRec2(A,F)?j=F:this.OutRec1RightOfOutRec2(F,A)?j=A:j=this.GetLowermostRec(A,F);var _=A.Pts,st=_.Prev,Pt=F.Pts,xt=Pt.Prev;a.Side===e.EdgeSide.esLeft?x.Side===e.EdgeSide.esLeft?(this.ReversePolyPtLinks(Pt),Pt.Next=_,_.Prev=Pt,st.Next=xt,xt.Prev=st,A.Pts=xt):(xt.Next=_,_.Prev=xt,Pt.Prev=st,st.Next=Pt,A.Pts=Pt):x.Side===e.EdgeSide.esRight?(this.ReversePolyPtLinks(Pt),st.Next=xt,xt.Prev=st,Pt.Next=_,_.Prev=Pt):(st.Next=Pt,Pt.Prev=st,_.Prev=xt,xt.Next=_),A.BottomPt=null,j===F&&(F.FirstLeft!==A&&(A.FirstLeft=F.FirstLeft),A.IsHole=F.IsHole),F.Pts=null,F.BottomPt=null,F.FirstLeft=A;var Dt=a.OutIdx,Ht=x.OutIdx;a.OutIdx=-1,x.OutIdx=-1;for(var jt=this.m_ActiveEdges;jt!==null;){if(jt.OutIdx===Ht){jt.OutIdx=Dt,jt.Side=a.Side;break}jt=jt.NextInAEL}F.Idx=A.Idx},e.Clipper.prototype.ReversePolyPtLinks=function(a){if(a!==null){var x,A;x=a;do A=x.Next,x.Next=x.Prev,x.Prev=A,x=A;while(x!==a)}},e.Clipper.SwapSides=function(a,x){var A=a.Side;a.Side=x.Side,x.Side=A},e.Clipper.SwapPolyIndexes=function(a,x){var A=a.OutIdx;a.OutIdx=x.OutIdx,x.OutIdx=A},e.Clipper.prototype.IntersectEdges=function(a,x,A){var F=a.OutIdx>=0,j=x.OutIdx>=0;if(e.use_xyz&&this.SetZ(A,a,x),e.use_lines&&(a.WindDelta===0||x.WindDelta===0)){if(a.WindDelta===0&&x.WindDelta===0)return;a.PolyTyp===x.PolyTyp&&a.WindDelta!==x.WindDelta&&this.m_ClipType===e.ClipType.ctUnion?a.WindDelta===0?j&&(this.AddOutPt(a,A),F&&(a.OutIdx=-1)):F&&(this.AddOutPt(x,A),j&&(x.OutIdx=-1)):a.PolyTyp!==x.PolyTyp&&(a.WindDelta===0&&Math.abs(x.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||x.WindCnt2===0)?(this.AddOutPt(a,A),F&&(a.OutIdx=-1)):x.WindDelta===0&&Math.abs(a.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||a.WindCnt2===0)&&(this.AddOutPt(x,A),j&&(x.OutIdx=-1)));return}if(a.PolyTyp===x.PolyTyp)if(this.IsEvenOddFillType(a)){var _=a.WindCnt;a.WindCnt=x.WindCnt,x.WindCnt=_}else a.WindCnt+x.WindDelta===0?a.WindCnt=-a.WindCnt:a.WindCnt+=x.WindDelta,x.WindCnt-a.WindDelta===0?x.WindCnt=-x.WindCnt:x.WindCnt-=a.WindDelta;else this.IsEvenOddFillType(x)?a.WindCnt2=a.WindCnt2===0?1:0:a.WindCnt2+=x.WindDelta,this.IsEvenOddFillType(a)?x.WindCnt2=x.WindCnt2===0?1:0:x.WindCnt2-=a.WindDelta;var st,Pt,xt,Dt;a.PolyTyp===e.PolyType.ptSubject?(st=this.m_SubjFillType,xt=this.m_ClipFillType):(st=this.m_ClipFillType,xt=this.m_SubjFillType),x.PolyTyp===e.PolyType.ptSubject?(Pt=this.m_SubjFillType,Dt=this.m_ClipFillType):(Pt=this.m_ClipFillType,Dt=this.m_SubjFillType);var Ht,jt;switch(st){case e.PolyFillType.pftPositive:Ht=a.WindCnt;break;case e.PolyFillType.pftNegative:Ht=-a.WindCnt;break;default:Ht=Math.abs(a.WindCnt);break}switch(Pt){case e.PolyFillType.pftPositive:jt=x.WindCnt;break;case e.PolyFillType.pftNegative:jt=-x.WindCnt;break;default:jt=Math.abs(x.WindCnt);break}if(F&&j)Ht!==0&&Ht!==1||jt!==0&&jt!==1||a.PolyTyp!==x.PolyTyp&&this.m_ClipType!==e.ClipType.ctXor?this.AddLocalMaxPoly(a,x,A):(this.AddOutPt(a,A),this.AddOutPt(x,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(F)(jt===0||jt===1)&&(this.AddOutPt(a,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(j)(Ht===0||Ht===1)&&(this.AddOutPt(x,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if((Ht===0||Ht===1)&&(jt===0||jt===1)){var qt,oe;switch(xt){case e.PolyFillType.pftPositive:qt=a.WindCnt2;break;case e.PolyFillType.pftNegative:qt=-a.WindCnt2;break;default:qt=Math.abs(a.WindCnt2);break}switch(Dt){case e.PolyFillType.pftPositive:oe=x.WindCnt2;break;case e.PolyFillType.pftNegative:oe=-x.WindCnt2;break;default:oe=Math.abs(x.WindCnt2);break}if(a.PolyTyp!==x.PolyTyp)this.AddLocalMinPoly(a,x,A);else if(Ht===1&&jt===1)switch(this.m_ClipType){case e.ClipType.ctIntersection:qt>0&&oe>0&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctUnion:qt<=0&&oe<=0&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctDifference:(a.PolyTyp===e.PolyType.ptClip&&qt>0&&oe>0||a.PolyTyp===e.PolyType.ptSubject&&qt<=0&&oe<=0)&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctXor:this.AddLocalMinPoly(a,x,A);break}else e.Clipper.SwapSides(a,x)}},e.Clipper.prototype.DeleteFromSEL=function(a){var x=a.PrevInSEL,A=a.NextInSEL;x===null&&A===null&&a!==this.m_SortedEdges||(x!==null?x.NextInSEL=A:this.m_SortedEdges=A,A!==null&&(A.PrevInSEL=x),a.NextInSEL=null,a.PrevInSEL=null)},e.Clipper.prototype.ProcessHorizontals=function(){for(var a={};this.PopEdgeFromSEL(a);)this.ProcessHorizontal(a.v)},e.Clipper.prototype.GetHorzDirection=function(a,x){a.Bot.X<a.Top.X?(x.Left=a.Bot.X,x.Right=a.Top.X,x.Dir=e.Direction.dLeftToRight):(x.Left=a.Top.X,x.Right=a.Bot.X,x.Dir=e.Direction.dRightToLeft)},e.Clipper.prototype.ProcessHorizontal=function(a){var x={Dir:null,Left:null,Right:null};this.GetHorzDirection(a,x);for(var A=x.Dir,F=x.Left,j=x.Right,_=a.WindDelta===0,st=a,Pt=null;st.NextInLML!==null&&e.ClipperBase.IsHorizontal(st.NextInLML);)st=st.NextInLML;st.NextInLML===null&&(Pt=this.GetMaximaPair(st));var xt=this.m_Maxima;if(xt!==null)if(A===e.Direction.dLeftToRight){for(;xt!==null&&xt.X<=a.Bot.X;)xt=xt.Next;xt!==null&&xt.X>=st.Top.X&&(xt=null)}else{for(;xt.Next!==null&&xt.Next.X<a.Bot.X;)xt=xt.Next;xt.X<=st.Top.X&&(xt=null)}for(var Dt=null;;){for(var Ht=a===st,jt=this.GetNextInAEL(a,A);jt!==null;){if(xt!==null)if(A===e.Direction.dLeftToRight)for(;xt!==null&&xt.X<jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(xt.X,a.Bot.Y)),xt=xt.Next;else for(;xt!==null&&xt.X>jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(xt.X,a.Bot.Y)),xt=xt.Prev;if(A===e.Direction.dLeftToRight&&jt.Curr.X>j||A===e.Direction.dRightToLeft&&jt.Curr.X<F||jt.Curr.X===a.Top.X&&a.NextInLML!==null&&jt.Dx<a.NextInLML.Dx)break;if(a.OutIdx>=0&&!_){e.use_xyz&&(A===e.Direction.dLeftToRight?this.SetZ(jt.Curr,a,jt):this.SetZ(jt.Curr,jt,a)),Dt=this.AddOutPt(a,jt.Curr);for(var qt=this.m_SortedEdges;qt!==null;){if(qt.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,qt.Bot.X,qt.Top.X)){var oe=this.GetLastOutPt(qt);this.AddJoin(oe,Dt,qt.Top)}qt=qt.NextInSEL}this.AddGhostJoin(Dt,a.Bot)}if(jt===Pt&&Ht){a.OutIdx>=0&&this.AddLocalMaxPoly(a,Pt,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(Pt);return}if(A===e.Direction.dLeftToRight){var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(a,jt,me)}else{var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(jt,a,me)}var Pe=this.GetNextInAEL(jt,A);this.SwapPositionsInAEL(a,jt),jt=Pe}if(a.NextInLML===null||!e.ClipperBase.IsHorizontal(a.NextInLML))break;a=this.UpdateEdgeIntoAEL(a),a.OutIdx>=0&&this.AddOutPt(a,a.Bot),x={Dir:A,Left:F,Right:j},this.GetHorzDirection(a,x),A=x.Dir,F=x.Left,j=x.Right}if(a.OutIdx>=0&&Dt===null){Dt=this.GetLastOutPt(a);for(var qt=this.m_SortedEdges;qt!==null;){if(qt.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,qt.Bot.X,qt.Top.X)){var oe=this.GetLastOutPt(qt);this.AddJoin(oe,Dt,qt.Top)}qt=qt.NextInSEL}this.AddGhostJoin(Dt,a.Top)}if(a.NextInLML!==null)if(a.OutIdx>=0){if(Dt=this.AddOutPt(a,a.Top),a=this.UpdateEdgeIntoAEL(a),a.WindDelta===0)return;var be=a.PrevInAEL,Pe=a.NextInAEL;if(be!==null&&be.Curr.X===a.Bot.X&&be.Curr.Y===a.Bot.Y&&be.WindDelta===0&&be.OutIdx>=0&&be.Curr.Y>be.Top.Y&&e.ClipperBase.SlopesEqual3(a,be,this.m_UseFullRange)){var oe=this.AddOutPt(be,a.Bot);this.AddJoin(Dt,oe,a.Top)}else if(Pe!==null&&Pe.Curr.X===a.Bot.X&&Pe.Curr.Y===a.Bot.Y&&Pe.WindDelta!==0&&Pe.OutIdx>=0&&Pe.Curr.Y>Pe.Top.Y&&e.ClipperBase.SlopesEqual3(a,Pe,this.m_UseFullRange)){var oe=this.AddOutPt(Pe,a.Bot);this.AddJoin(Dt,oe,a.Top)}}else a=this.UpdateEdgeIntoAEL(a);else a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a)},e.Clipper.prototype.GetNextInAEL=function(a,x){return x===e.Direction.dLeftToRight?a.NextInAEL:a.PrevInAEL},e.Clipper.prototype.IsMinima=function(a){return a!==null&&a.Prev.NextInLML!==a&&a.Next.NextInLML!==a},e.Clipper.prototype.IsMaxima=function(a,x){return a!==null&&a.Top.Y===x&&a.NextInLML===null},e.Clipper.prototype.IsIntermediate=function(a,x){return a.Top.Y===x&&a.NextInLML!==null},e.Clipper.prototype.GetMaximaPair=function(a){return e.IntPoint.op_Equality(a.Next.Top,a.Top)&&a.Next.NextInLML===null?a.Next:e.IntPoint.op_Equality(a.Prev.Top,a.Top)&&a.Prev.NextInLML===null?a.Prev:null},e.Clipper.prototype.GetMaximaPairEx=function(a){var x=this.GetMaximaPair(a);return x===null||x.OutIdx===e.ClipperBase.Skip||x.NextInAEL===x.PrevInAEL&&!e.ClipperBase.IsHorizontal(x)?null:x},e.Clipper.prototype.ProcessIntersections=function(a){if(this.m_ActiveEdges===null)return!0;try{if(this.BuildIntersectList(a),this.m_IntersectList.length===0)return!0;if(this.m_IntersectList.length===1||this.FixupIntersectionOrder())this.ProcessIntersectList();else return!1}catch{this.m_SortedEdges=null,this.m_IntersectList.length=0,e.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},e.Clipper.prototype.BuildIntersectList=function(a){if(this.m_ActiveEdges!==null){var x=this.m_ActiveEdges;for(this.m_SortedEdges=x;x!==null;)x.PrevInSEL=x.PrevInAEL,x.NextInSEL=x.NextInAEL,x.Curr.X=e.Clipper.TopX(x,a),x=x.NextInAEL;for(var A=!0;A&&this.m_SortedEdges!==null;){for(A=!1,x=this.m_SortedEdges;x.NextInSEL!==null;){var F=x.NextInSEL,j=new e.IntPoint0;if(x.Curr.X>F.Curr.X){this.IntersectPoint(x,F,j),j.Y<a&&(j=new e.IntPoint2(e.Clipper.TopX(x,a),a));var _=new e.IntersectNode;_.Edge1=x,_.Edge2=F,_.Pt.X=j.X,_.Pt.Y=j.Y,e.use_xyz&&(_.Pt.Z=j.Z),this.m_IntersectList.push(_),this.SwapPositionsInSEL(x,F),A=!0}else x=F}if(x.PrevInSEL!==null)x.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}},e.Clipper.prototype.EdgesAdjacent=function(a){return a.Edge1.NextInSEL===a.Edge2||a.Edge1.PrevInSEL===a.Edge2},e.Clipper.IntersectNodeSort=function(a,x){return x.Pt.Y-a.Pt.Y},e.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer),this.CopyAELToSEL();for(var a=this.m_IntersectList.length,x=0;x<a;x++){if(!this.EdgesAdjacent(this.m_IntersectList[x])){for(var A=x+1;A<a&&!this.EdgesAdjacent(this.m_IntersectList[A]);)A++;if(A===a)return!1;var F=this.m_IntersectList[x];this.m_IntersectList[x]=this.m_IntersectList[A],this.m_IntersectList[A]=F}this.SwapPositionsInSEL(this.m_IntersectList[x].Edge1,this.m_IntersectList[x].Edge2)}return!0},e.Clipper.prototype.ProcessIntersectList=function(){for(var a=0,x=this.m_IntersectList.length;a<x;a++){var A=this.m_IntersectList[a];this.IntersectEdges(A.Edge1,A.Edge2,A.Pt),this.SwapPositionsInAEL(A.Edge1,A.Edge2)}this.m_IntersectList.length=0};var Yi=function(a){return a<0?Math.ceil(a-.5):Math.round(a)},Aa=function(a){return a<0?Math.ceil(a-.5):Math.floor(a+.5)},Us=function(a){return a<0?-Math.round(Math.abs(a)):Math.round(a)},ui=function(a){return a<0?(a-=.5,a<-2147483648?Math.ceil(a):a|0):(a+=.5,a>2147483647?Math.floor(a):a|0)};s.msie?e.Clipper.Round=Yi:s.chromium?e.Clipper.Round=Us:s.safari?e.Clipper.Round=ui:e.Clipper.Round=Aa,e.Clipper.TopX=function(a,x){return x===a.Top.Y?a.Top.X:a.Bot.X+e.Clipper.Round(a.Dx*(x-a.Bot.Y))},e.Clipper.prototype.IntersectPoint=function(a,x,A){A.X=0,A.Y=0;var F,j;if(a.Dx===x.Dx){A.Y=a.Curr.Y,A.X=e.Clipper.TopX(a,A.Y);return}if(a.Delta.X===0)A.X=a.Bot.X,e.ClipperBase.IsHorizontal(x)?A.Y=x.Bot.Y:(j=x.Bot.Y-x.Bot.X/x.Dx,A.Y=e.Clipper.Round(A.X/x.Dx+j));else if(x.Delta.X===0)A.X=x.Bot.X,e.ClipperBase.IsHorizontal(a)?A.Y=a.Bot.Y:(F=a.Bot.Y-a.Bot.X/a.Dx,A.Y=e.Clipper.Round(A.X/a.Dx+F));else{F=a.Bot.X-a.Bot.Y*a.Dx,j=x.Bot.X-x.Bot.Y*x.Dx;var _=(j-F)/(a.Dx-x.Dx);A.Y=e.Clipper.Round(_),Math.abs(a.Dx)<Math.abs(x.Dx)?A.X=e.Clipper.Round(a.Dx*_+F):A.X=e.Clipper.Round(x.Dx*_+j)}if(A.Y<a.Top.Y||A.Y<x.Top.Y){if(a.Top.Y>x.Top.Y)return A.Y=a.Top.Y,A.X=e.Clipper.TopX(x,a.Top.Y),A.X<a.Top.X;A.Y=x.Top.Y,Math.abs(a.Dx)<Math.abs(x.Dx)?A.X=e.Clipper.TopX(a,A.Y):A.X=e.Clipper.TopX(x,A.Y)}A.Y>a.Curr.Y&&(A.Y=a.Curr.Y,Math.abs(a.Dx)>Math.abs(x.Dx)?A.X=e.Clipper.TopX(x,A.Y):A.X=e.Clipper.TopX(a,A.Y))},e.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(a){for(var x=this.m_ActiveEdges;x!==null;){var A=this.IsMaxima(x,a);if(A){var F=this.GetMaximaPairEx(x);A=F===null||!e.ClipperBase.IsHorizontal(F)}if(A){this.StrictlySimple&&this.InsertMaxima(x.Top.X);var j=x.PrevInAEL;this.DoMaxima(x),j===null?x=this.m_ActiveEdges:x=j.NextInAEL}else{if(this.IsIntermediate(x,a)&&e.ClipperBase.IsHorizontal(x.NextInLML)?(x=this.UpdateEdgeIntoAEL(x),x.OutIdx>=0&&this.AddOutPt(x,x.Bot),this.AddEdgeToSEL(x)):(x.Curr.X=e.Clipper.TopX(x,a),x.Curr.Y=a),e.use_xyz&&(x.Top.Y===a?x.Curr.Z=x.Top.Z:x.Bot.Y===a?x.Curr.Z=x.Bot.Z:x.Curr.Z=0),this.StrictlySimple){var j=x.PrevInAEL;if(x.OutIdx>=0&&x.WindDelta!==0&&j!==null&&j.OutIdx>=0&&j.Curr.X===x.Curr.X&&j.WindDelta!==0){var _=new e.IntPoint1(x.Curr);e.use_xyz&&this.SetZ(_,j,x);var st=this.AddOutPt(j,_),Pt=this.AddOutPt(x,_);this.AddJoin(st,Pt,_)}}x=x.NextInAEL}}for(this.ProcessHorizontals(),this.m_Maxima=null,x=this.m_ActiveEdges;x!==null;){if(this.IsIntermediate(x,a)){var st=null;x.OutIdx>=0&&(st=this.AddOutPt(x,x.Top)),x=this.UpdateEdgeIntoAEL(x);var j=x.PrevInAEL,xt=x.NextInAEL;if(j!==null&&j.Curr.X===x.Bot.X&&j.Curr.Y===x.Bot.Y&&st!==null&&j.OutIdx>=0&&j.Curr.Y===j.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,j.Curr,j.Top,this.m_UseFullRange)&&x.WindDelta!==0&&j.WindDelta!==0){var Pt=this.AddOutPt(ePrev2,x.Bot);this.AddJoin(st,Pt,x.Top)}else if(xt!==null&&xt.Curr.X===x.Bot.X&&xt.Curr.Y===x.Bot.Y&&st!==null&&xt.OutIdx>=0&&xt.Curr.Y===xt.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,xt.Curr,xt.Top,this.m_UseFullRange)&&x.WindDelta!==0&&xt.WindDelta!==0){var Pt=this.AddOutPt(xt,x.Bot);this.AddJoin(st,Pt,x.Top)}}x=x.NextInAEL}},e.Clipper.prototype.DoMaxima=function(a){var x=this.GetMaximaPairEx(a);if(x===null){a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a);return}for(var A=a.NextInAEL;A!==null&&A!==x;)this.IntersectEdges(a,A,a.Top),this.SwapPositionsInAEL(a,A),A=a.NextInAEL;a.OutIdx===-1&&x.OutIdx===-1?(this.DeleteFromAEL(a),this.DeleteFromAEL(x)):a.OutIdx>=0&&x.OutIdx>=0?(a.OutIdx>=0&&this.AddLocalMaxPoly(a,x,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(x)):e.use_lines&&a.WindDelta===0?(a.OutIdx>=0&&(this.AddOutPt(a,a.Top),a.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(a),x.OutIdx>=0&&(this.AddOutPt(x,a.Top),x.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(x)):e.Error("DoMaxima error")},e.Clipper.ReversePaths=function(a){for(var x=0,A=a.length;x<A;x++)a[x].reverse()},e.Clipper.Orientation=function(a){return e.Clipper.Area(a)>=0},e.Clipper.prototype.PointCount=function(a){if(a===null)return 0;var x=0,A=a;do x++,A=A.Next;while(A!==a);return x},e.Clipper.prototype.BuildResult=function(a){e.Clear(a);for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x];if(F.Pts!==null){var j=F.Pts.Prev,_=this.PointCount(j);if(!(_<2)){for(var st=new Array(_),Pt=0;Pt<_;Pt++)st[Pt]=j.Pt,j=j.Prev;a.push(st)}}}},e.Clipper.prototype.BuildResult2=function(a){a.Clear();for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x],j=this.PointCount(F.Pts);if(!(F.IsOpen&&j<2||!F.IsOpen&&j<3)){this.FixHoleLinkage(F);var _=new e.PolyNode;a.m_AllPolys.push(_),F.PolyNode=_,_.m_polygon.length=j;for(var st=F.Pts.Prev,Pt=0;Pt<j;Pt++)_.m_polygon[Pt]=st.Pt,st=st.Prev}}for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x];F.PolyNode!==null&&(F.IsOpen?(F.PolyNode.IsOpen=!0,a.AddChild(F.PolyNode)):F.FirstLeft!==null&&F.FirstLeft.PolyNode!==null?F.FirstLeft.PolyNode.AddChild(F.PolyNode):a.AddChild(F.PolyNode))}},e.Clipper.prototype.FixupOutPolyline=function(a){for(var x=a.Pts,A=x.Prev;x!==A;)if(x=x.Next,e.IntPoint.op_Equality(x.Pt,x.Prev.Pt)){x===A&&(A=x.Prev);var F=x.Prev;F.Next=x.Next,x.Next.Prev=F,x=F}x===x.Prev&&(a.Pts=null)},e.Clipper.prototype.FixupOutPolygon=function(a){var x=null;a.BottomPt=null;for(var A=a.Pts,F=this.PreserveCollinear||this.StrictlySimple;;){if(A.Prev===A||A.Prev===A.Next){a.Pts=null;return}if(e.IntPoint.op_Equality(A.Pt,A.Next.Pt)||e.IntPoint.op_Equality(A.Pt,A.Prev.Pt)||e.ClipperBase.SlopesEqual4(A.Prev.Pt,A.Pt,A.Next.Pt,this.m_UseFullRange)&&(!F||!this.Pt2IsBetweenPt1AndPt3(A.Prev.Pt,A.Pt,A.Next.Pt)))x=null,A.Prev.Next=A.Next,A.Next.Prev=A.Prev,A=A.Prev;else{if(A===x)break;x===null&&(x=A),A=A.Next}}a.Pts=A},e.Clipper.prototype.DupOutPt=function(a,x){var A=new e.OutPt;return A.Pt.X=a.Pt.X,A.Pt.Y=a.Pt.Y,e.use_xyz&&(A.Pt.Z=a.Pt.Z),A.Idx=a.Idx,x?(A.Next=a.Next,A.Prev=a,a.Next.Prev=A,a.Next=A):(A.Prev=a.Prev,A.Next=a,a.Prev.Next=A,a.Prev=A),A},e.Clipper.prototype.GetOverlap=function(a,x,A,F,j){return a<x?A<F?(j.Left=Math.max(a,A),j.Right=Math.min(x,F)):(j.Left=Math.max(a,F),j.Right=Math.min(x,A)):A<F?(j.Left=Math.max(x,A),j.Right=Math.min(a,F)):(j.Left=Math.max(x,F),j.Right=Math.min(a,A)),j.Left<j.Right},e.Clipper.prototype.JoinHorz=function(a,x,A,F,j,_){var st=a.Pt.X>x.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight,Pt=A.Pt.X>F.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight;if(st===Pt)return!1;if(st===e.Direction.dLeftToRight){for(;a.Next.Pt.X<=j.X&&a.Next.Pt.X>=a.Pt.X&&a.Next.Pt.Y===j.Y;)a=a.Next;_&&a.Pt.X!==j.X&&(a=a.Next),x=this.DupOutPt(a,!_),e.IntPoint.op_Inequality(x.Pt,j)&&(a=x,a.Pt.X=j.X,a.Pt.Y=j.Y,e.use_xyz&&(a.Pt.Z=j.Z),x=this.DupOutPt(a,!_))}else{for(;a.Next.Pt.X>=j.X&&a.Next.Pt.X<=a.Pt.X&&a.Next.Pt.Y===j.Y;)a=a.Next;!_&&a.Pt.X!==j.X&&(a=a.Next),x=this.DupOutPt(a,_),e.IntPoint.op_Inequality(x.Pt,j)&&(a=x,a.Pt.X=j.X,a.Pt.Y=j.Y,e.use_xyz&&(a.Pt.Z=j.Z),x=this.DupOutPt(a,_))}if(Pt===e.Direction.dLeftToRight){for(;A.Next.Pt.X<=j.X&&A.Next.Pt.X>=A.Pt.X&&A.Next.Pt.Y===j.Y;)A=A.Next;_&&A.Pt.X!==j.X&&(A=A.Next),F=this.DupOutPt(A,!_),e.IntPoint.op_Inequality(F.Pt,j)&&(A=F,A.Pt.X=j.X,A.Pt.Y=j.Y,e.use_xyz&&(A.Pt.Z=j.Z),F=this.DupOutPt(A,!_))}else{for(;A.Next.Pt.X>=j.X&&A.Next.Pt.X<=A.Pt.X&&A.Next.Pt.Y===j.Y;)A=A.Next;!_&&A.Pt.X!==j.X&&(A=A.Next),F=this.DupOutPt(A,_),e.IntPoint.op_Inequality(F.Pt,j)&&(A=F,A.Pt.X=j.X,A.Pt.Y=j.Y,e.use_xyz&&(A.Pt.Z=j.Z),F=this.DupOutPt(A,_))}return st===e.Direction.dLeftToRight===_?(a.Prev=A,A.Next=a,x.Next=F,F.Prev=x):(a.Next=A,A.Prev=a,x.Prev=F,F.Next=x),!0},e.Clipper.prototype.JoinPoints=function(a,x,A){var F=a.OutPt1,j=new e.OutPt,_=a.OutPt2,st=new e.OutPt,Pt=a.OutPt1.Pt.Y===a.OffPt.Y;if(Pt&&e.IntPoint.op_Equality(a.OffPt,a.OutPt1.Pt)&&e.IntPoint.op_Equality(a.OffPt,a.OutPt2.Pt)){if(x!==A)return!1;for(j=a.OutPt1.Next;j!==F&&e.IntPoint.op_Equality(j.Pt,a.OffPt);)j=j.Next;var xt=j.Pt.Y>a.OffPt.Y;for(st=a.OutPt2.Next;st!==_&&e.IntPoint.op_Equality(st.Pt,a.OffPt);)st=st.Next;var Dt=st.Pt.Y>a.OffPt.Y;return xt===Dt?!1:xt?(j=this.DupOutPt(F,!1),st=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,j.Next=st,st.Prev=j,a.OutPt1=F,a.OutPt2=j,!0):(j=this.DupOutPt(F,!0),st=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,j.Prev=st,st.Next=j,a.OutPt1=F,a.OutPt2=j,!0)}else if(Pt){for(j=F;F.Prev.Pt.Y===F.Pt.Y&&F.Prev!==j&&F.Prev!==_;)F=F.Prev;for(;j.Next.Pt.Y===j.Pt.Y&&j.Next!==F&&j.Next!==_;)j=j.Next;if(j.Next===F||j.Next===_)return!1;for(st=_;_.Prev.Pt.Y===_.Pt.Y&&_.Prev!==st&&_.Prev!==j;)_=_.Prev;for(;st.Next.Pt.Y===st.Pt.Y&&st.Next!==_&&st.Next!==F;)st=st.Next;if(st.Next===_||st.Next===F)return!1;var Ht={Left:null,Right:null};if(!this.GetOverlap(F.Pt.X,j.Pt.X,_.Pt.X,st.Pt.X,Ht))return!1;var jt=Ht.Left,qt=Ht.Right,oe=new e.IntPoint0,me;return F.Pt.X>=jt&&F.Pt.X<=qt?(oe.X=F.Pt.X,oe.Y=F.Pt.Y,e.use_xyz&&(oe.Z=F.Pt.Z),me=F.Pt.X>j.Pt.X):_.Pt.X>=jt&&_.Pt.X<=qt?(oe.X=_.Pt.X,oe.Y=_.Pt.Y,e.use_xyz&&(oe.Z=_.Pt.Z),me=_.Pt.X>st.Pt.X):j.Pt.X>=jt&&j.Pt.X<=qt?(oe.X=j.Pt.X,oe.Y=j.Pt.Y,e.use_xyz&&(oe.Z=j.Pt.Z),me=j.Pt.X>F.Pt.X):(oe.X=st.Pt.X,oe.Y=st.Pt.Y,e.use_xyz&&(oe.Z=st.Pt.Z),me=st.Pt.X>_.Pt.X),a.OutPt1=F,a.OutPt2=_,this.JoinHorz(F,j,_,st,oe,me)}else{for(j=F.Next;e.IntPoint.op_Equality(j.Pt,F.Pt)&&j!==F;)j=j.Next;var Pe=j.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,j.Pt,a.OffPt,this.m_UseFullRange);if(Pe){for(j=F.Prev;e.IntPoint.op_Equality(j.Pt,F.Pt)&&j!==F;)j=j.Prev;if(j.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,j.Pt,a.OffPt,this.m_UseFullRange))return!1}for(st=_.Next;e.IntPoint.op_Equality(st.Pt,_.Pt)&&st!==_;)st=st.Next;var be=st.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,st.Pt,a.OffPt,this.m_UseFullRange);if(be){for(st=_.Prev;e.IntPoint.op_Equality(st.Pt,_.Pt)&&st!==_;)st=st.Prev;if(st.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,st.Pt,a.OffPt,this.m_UseFullRange))return!1}return j===F||st===_||j===st||x===A&&Pe===be?!1:Pe?(j=this.DupOutPt(F,!1),st=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,j.Next=st,st.Prev=j,a.OutPt1=F,a.OutPt2=j,!0):(j=this.DupOutPt(F,!0),st=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,j.Prev=st,st.Next=j,a.OutPt1=F,a.OutPt2=j,!0)}},e.Clipper.GetBounds=function(a){for(var x=0,A=a.length;x<A&&a[x].length===0;)x++;if(x===A)return new e.IntRect(0,0,0,0);var F=new e.IntRect;for(F.left=a[x][0].X,F.right=F.left,F.top=a[x][0].Y,F.bottom=F.top;x<A;x++)for(var j=0,_=a[x].length;j<_;j++)a[x][j].X<F.left?F.left=a[x][j].X:a[x][j].X>F.right&&(F.right=a[x][j].X),a[x][j].Y<F.top?F.top=a[x][j].Y:a[x][j].Y>F.bottom&&(F.bottom=a[x][j].Y);return F},e.Clipper.prototype.GetBounds2=function(a){var x=a,A=new e.IntRect;for(A.left=a.Pt.X,A.right=a.Pt.X,A.top=a.Pt.Y,A.bottom=a.Pt.Y,a=a.Next;a!==x;)a.Pt.X<A.left&&(A.left=a.Pt.X),a.Pt.X>A.right&&(A.right=a.Pt.X),a.Pt.Y<A.top&&(A.top=a.Pt.Y),a.Pt.Y>A.bottom&&(A.bottom=a.Pt.Y),a=a.Next;return A},e.Clipper.PointInPolygon=function(a,x){var A=0,F=x.length;if(F<3)return 0;for(var j=x[0],_=1;_<=F;++_){var st=_===F?x[0]:x[_];if(st.Y===a.Y&&(st.X===a.X||j.Y===a.Y&&st.X>a.X==j.X<a.X))return-1;if(j.Y<a.Y!=st.Y<a.Y){if(j.X>=a.X)if(st.X>a.X)A=1-A;else{var Pt=(j.X-a.X)*(st.Y-a.Y)-(st.X-a.X)*(j.Y-a.Y);if(Pt===0)return-1;Pt>0==st.Y>j.Y&&(A=1-A)}else if(st.X>a.X){var Pt=(j.X-a.X)*(st.Y-a.Y)-(st.X-a.X)*(j.Y-a.Y);if(Pt===0)return-1;Pt>0==st.Y>j.Y&&(A=1-A)}}j=st}return A},e.Clipper.prototype.PointInPolygon=function(a,x){var A=0,F=x,j=a.X,_=a.Y,st=x.Pt.X,Pt=x.Pt.Y;do{x=x.Next;var xt=x.Pt.X,Dt=x.Pt.Y;if(Dt===_&&(xt===j||Pt===_&&xt>j==st<j))return-1;if(Pt<_!=Dt<_){if(st>=j)if(xt>j)A=1-A;else{var Ht=(st-j)*(Dt-_)-(xt-j)*(Pt-_);if(Ht===0)return-1;Ht>0==Dt>Pt&&(A=1-A)}else if(xt>j){var Ht=(st-j)*(Dt-_)-(xt-j)*(Pt-_);if(Ht===0)return-1;Ht>0==Dt>Pt&&(A=1-A)}}st=xt,Pt=Dt}while(F!==x);return A},e.Clipper.prototype.Poly2ContainsPoly1=function(a,x){var A=a;do{var F=this.PointInPolygon(A.Pt,x);if(F>=0)return F>0;A=A.Next}while(A!==a);return!0},e.Clipper.prototype.FixupFirstLefts1=function(a,x){for(var A,F,j=0,_=this.m_PolyOuts.length;j<_;j++)A=this.m_PolyOuts[j],F=e.Clipper.ParseFirstLeft(A.FirstLeft),A.Pts!==null&&F===a&&this.Poly2ContainsPoly1(A.Pts,x.Pts)&&(A.FirstLeft=x)},e.Clipper.prototype.FixupFirstLefts2=function(a,x){for(var A=x.FirstLeft,F,j,_=0,st=this.m_PolyOuts.length;_<st;_++)F=this.m_PolyOuts[_],!(F.Pts===null||F===x||F===a)&&(j=e.Clipper.ParseFirstLeft(F.FirstLeft),!(j!==A&&j!==a&&j!==x)&&(this.Poly2ContainsPoly1(F.Pts,a.Pts)?F.FirstLeft=a:this.Poly2ContainsPoly1(F.Pts,x.Pts)?F.FirstLeft=x:(F.FirstLeft===a||F.FirstLeft===x)&&(F.FirstLeft=A)))},e.Clipper.prototype.FixupFirstLefts3=function(a,x){for(var A,F,j=0,_=this.m_PolyOuts.length;j<_;j++)A=this.m_PolyOuts[j],F=e.Clipper.ParseFirstLeft(A.FirstLeft),A.Pts!==null&&F===a&&(A.FirstLeft=x)},e.Clipper.ParseFirstLeft=function(a){for(;a!==null&&a.Pts===null;)a=a.FirstLeft;return a},e.Clipper.prototype.JoinCommonEdges=function(){for(var a=0,x=this.m_Joins.length;a<x;a++){var A=this.m_Joins[a],F=this.GetOutRec(A.OutPt1.Idx),j=this.GetOutRec(A.OutPt2.Idx);if(!(F.Pts===null||j.Pts===null)&&!(F.IsOpen||j.IsOpen)){var _;F===j?_=F:this.OutRec1RightOfOutRec2(F,j)?_=j:this.OutRec1RightOfOutRec2(j,F)?_=F:_=this.GetLowermostRec(F,j),this.JoinPoints(A,F,j)&&(F===j?(F.Pts=A.OutPt1,F.BottomPt=null,j=this.CreateOutRec(),j.Pts=A.OutPt2,this.UpdateOutPtIdxs(j),this.Poly2ContainsPoly1(j.Pts,F.Pts)?(j.IsHole=!F.IsHole,j.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts2(j,F),(j.IsHole^this.ReverseSolution)==this.Area$1(j)>0&&this.ReversePolyPtLinks(j.Pts)):this.Poly2ContainsPoly1(F.Pts,j.Pts)?(j.IsHole=F.IsHole,F.IsHole=!j.IsHole,j.FirstLeft=F.FirstLeft,F.FirstLeft=j,this.m_UsingPolyTree&&this.FixupFirstLefts2(F,j),(F.IsHole^this.ReverseSolution)==this.Area$1(F)>0&&this.ReversePolyPtLinks(F.Pts)):(j.IsHole=F.IsHole,j.FirstLeft=F.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(F,j))):(j.Pts=null,j.BottomPt=null,j.Idx=F.Idx,F.IsHole=_.IsHole,_===j&&(F.FirstLeft=j.FirstLeft),j.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts3(j,F)))}}},e.Clipper.prototype.UpdateOutPtIdxs=function(a){var x=a.Pts;do x.Idx=a.Idx,x=x.Prev;while(x!==a.Pts)},e.Clipper.prototype.DoSimplePolygons=function(){for(var a=0;a<this.m_PolyOuts.length;){var x=this.m_PolyOuts[a++],A=x.Pts;if(!(A===null||x.IsOpen))do{for(var F=A.Next;F!==x.Pts;){if(e.IntPoint.op_Equality(A.Pt,F.Pt)&&F.Next!==A&&F.Prev!==A){var j=A.Prev,_=F.Prev;A.Prev=_,_.Next=A,F.Prev=j,j.Next=F,x.Pts=A;var st=this.CreateOutRec();st.Pts=F,this.UpdateOutPtIdxs(st),this.Poly2ContainsPoly1(st.Pts,x.Pts)?(st.IsHole=!x.IsHole,st.FirstLeft=x,this.m_UsingPolyTree&&this.FixupFirstLefts2(st,x)):this.Poly2ContainsPoly1(x.Pts,st.Pts)?(st.IsHole=x.IsHole,x.IsHole=!st.IsHole,st.FirstLeft=x.FirstLeft,x.FirstLeft=st,this.m_UsingPolyTree&&this.FixupFirstLefts2(x,st)):(st.IsHole=x.IsHole,st.FirstLeft=x.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(x,st)),F=A}F=F.Next}A=A.Next}while(A!==x.Pts)}},e.Clipper.Area=function(a){if(!Array.isArray(a))return 0;var x=a.length;if(x<3)return 0;for(var A=0,F=0,j=x-1;F<x;++F)A+=(a[j].X+a[F].X)*(a[j].Y-a[F].Y),j=F;return-A*.5},e.Clipper.prototype.Area=function(a){var x=a;if(a===null)return 0;var A=0;do A=A+(a.Prev.Pt.X+a.Pt.X)*(a.Prev.Pt.Y-a.Pt.Y),a=a.Next;while(a!==x);return A*.5},e.Clipper.prototype.Area$1=function(a){return this.Area(a.Pts)},e.Clipper.SimplifyPolygon=function(a,x){var A=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPath(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,x,x),A},e.Clipper.SimplifyPolygons=function(a,x){typeof x>"u"&&(x=e.PolyFillType.pftEvenOdd);var A=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPaths(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,x,x),A},e.Clipper.DistanceSqrd=function(a,x){var A=a.X-x.X,F=a.Y-x.Y;return A*A+F*F},e.Clipper.DistanceFromLineSqrd=function(a,x,A){var F=x.Y-A.Y,j=A.X-x.X,_=F*x.X+j*x.Y;return _=F*a.X+j*a.Y-_,_*_/(F*F+j*j)},e.Clipper.SlopesNearCollinear=function(a,x,A,F){return Math.abs(a.X-x.X)>Math.abs(a.Y-x.Y)?a.X>x.X==a.X<A.X?e.Clipper.DistanceFromLineSqrd(a,x,A)<F:x.X>a.X==x.X<A.X?e.Clipper.DistanceFromLineSqrd(x,a,A)<F:e.Clipper.DistanceFromLineSqrd(A,a,x)<F:a.Y>x.Y==a.Y<A.Y?e.Clipper.DistanceFromLineSqrd(a,x,A)<F:x.Y>a.Y==x.Y<A.Y?e.Clipper.DistanceFromLineSqrd(x,a,A)<F:e.Clipper.DistanceFromLineSqrd(A,a,x)<F},e.Clipper.PointsAreClose=function(a,x,A){var F=a.X-x.X,j=a.Y-x.Y;return F*F+j*j<=A},e.Clipper.ExcludeOp=function(a){var x=a.Prev;return x.Next=a.Next,a.Next.Prev=x,x.Idx=0,x},e.Clipper.CleanPolygon=function(a,x){typeof x>"u"&&(x=1.415);var A=a.length;if(A===0)return new Array;for(var F=new Array(A),j=0;j<A;++j)F[j]=new e.OutPt;for(var j=0;j<A;++j)F[j].Pt=a[j],F[j].Next=F[(j+1)%A],F[j].Next.Prev=F[j],F[j].Idx=0;for(var _=x*x,st=F[0];st.Idx===0&&st.Next!==st.Prev;)e.Clipper.PointsAreClose(st.Pt,st.Prev.Pt,_)?(st=e.Clipper.ExcludeOp(st),A--):e.Clipper.PointsAreClose(st.Prev.Pt,st.Next.Pt,_)?(e.Clipper.ExcludeOp(st.Next),st=e.Clipper.ExcludeOp(st),A-=2):e.Clipper.SlopesNearCollinear(st.Prev.Pt,st.Pt,st.Next.Pt,_)?(st=e.Clipper.ExcludeOp(st),A--):(st.Idx=1,st=st.Next);A<3&&(A=0);for(var Pt=new Array(A),j=0;j<A;++j)Pt[j]=new e.IntPoint1(st.Pt),st=st.Next;return F=null,Pt},e.Clipper.CleanPolygons=function(a,x){for(var A=new Array(a.length),F=0,j=a.length;F<j;F++)A[F]=e.Clipper.CleanPolygon(a[F],x);return A},e.Clipper.Minkowski=function(a,x,A,F){var j=F?1:0,_=a.length,st=x.length,Pt=new Array;if(A)for(var xt=0;xt<st;xt++){for(var Dt=new Array(_),Ht=0,jt=a.length,qt=a[Ht];Ht<jt;Ht++,qt=a[Ht])Dt[Ht]=new e.IntPoint2(x[xt].X+qt.X,x[xt].Y+qt.Y);Pt.push(Dt)}else for(var xt=0;xt<st;xt++){for(var Dt=new Array(_),Ht=0,jt=a.length,qt=a[Ht];Ht<jt;Ht++,qt=a[Ht])Dt[Ht]=new e.IntPoint2(x[xt].X-qt.X,x[xt].Y-qt.Y);Pt.push(Dt)}for(var oe=new Array,xt=0;xt<st-1+j;xt++)for(var Ht=0;Ht<_;Ht++){var me=new Array;me.push(Pt[xt%st][Ht%_]),me.push(Pt[(xt+1)%st][Ht%_]),me.push(Pt[(xt+1)%st][(Ht+1)%_]),me.push(Pt[xt%st][(Ht+1)%_]),e.Clipper.Orientation(me)||me.reverse(),oe.push(me)}return oe},e.Clipper.MinkowskiSum=function(a,x,A){if(x[0]instanceof Array){for(var j=x,st=new e.Paths,_=new e.Clipper,Pt=0;Pt<j.length;++Pt){var xt=e.Clipper.Minkowski(a,j[Pt],!0,A);if(_.AddPaths(xt,e.PolyType.ptSubject,!0),A){var F=e.Clipper.TranslatePath(j[Pt],a[0]);_.AddPath(F,e.PolyType.ptClip,!0)}}return _.Execute(e.ClipType.ctUnion,st,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),st}else{var F=x,j=e.Clipper.Minkowski(a,F,!0,A),_=new e.Clipper;return _.AddPaths(j,e.PolyType.ptSubject,!0),_.Execute(e.ClipType.ctUnion,j,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),j}},e.Clipper.TranslatePath=function(a,x){for(var A=new e.Path,F=0;F<a.length;F++)A.push(new e.IntPoint2(a[F].X+x.X,a[F].Y+x.Y));return A},e.Clipper.MinkowskiDiff=function(a,x){var A=e.Clipper.Minkowski(a,x,!1,!0),F=new e.Clipper;return F.AddPaths(A,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),A},e.Clipper.PolyTreeToPaths=function(a){var x=new Array;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntAny,x),x},e.Clipper.AddPolyNodeToPaths=function(a,x,A){var F=!0;switch(x){case e.Clipper.NodeType.ntOpen:return;case e.Clipper.NodeType.ntClosed:F=!a.IsOpen;break}a.m_polygon.length>0&&F&&A.push(a.m_polygon);for(var j=0,_=a.Childs(),st=_.length,Pt=_[j];j<st;j++,Pt=_[j])e.Clipper.AddPolyNodeToPaths(Pt,x,A)},e.Clipper.OpenPathsFromPolyTree=function(a){for(var x=new e.Paths,A=0,F=a.ChildCount();A<F;A++)a.Childs()[A].IsOpen&&x.push(a.Childs()[A].m_polygon);return x},e.Clipper.ClosedPathsFromPolyTree=function(a){var x=new e.Paths;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntClosed,x),x},Ui(e.Clipper,e.ClipperBase),e.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2},e.ClipperOffset=function(a,x){typeof a>"u"&&(a=2),typeof x>"u"&&(x=e.ClipperOffset.def_arc_tolerance),this.m_destPolys=new e.Paths,this.m_srcPoly=new e.Path,this.m_destPoly=new e.Path,this.m_normals=new Array,this.m_delta=0,this.m_sinA=0,this.m_sin=0,this.m_cos=0,this.m_miterLim=0,this.m_StepsPerRad=0,this.m_lowest=new e.IntPoint0,this.m_polyNodes=new e.PolyNode,this.MiterLimit=a,this.ArcTolerance=x,this.m_lowest.X=-1},e.ClipperOffset.two_pi=6.28318530717959,e.ClipperOffset.def_arc_tolerance=.25,e.ClipperOffset.prototype.Clear=function(){e.Clear(this.m_polyNodes.Childs()),this.m_lowest.X=-1},e.ClipperOffset.Round=e.Clipper.Round,e.ClipperOffset.prototype.AddPath=function(a,x,A){var F=a.length-1;if(!(F<0)){var j=new e.PolyNode;if(j.m_jointype=x,j.m_endtype=A,A===e.EndType.etClosedLine||A===e.EndType.etClosedPolygon)for(;F>0&&e.IntPoint.op_Equality(a[0],a[F]);)F--;j.m_polygon.push(a[0]);for(var _=0,st=0,Pt=1;Pt<=F;Pt++)e.IntPoint.op_Inequality(j.m_polygon[_],a[Pt])&&(_++,j.m_polygon.push(a[Pt]),(a[Pt].Y>j.m_polygon[st].Y||a[Pt].Y===j.m_polygon[st].Y&&a[Pt].X<j.m_polygon[st].X)&&(st=_));if(!(A===e.EndType.etClosedPolygon&&_<2)&&(this.m_polyNodes.AddChild(j),A===e.EndType.etClosedPolygon))if(this.m_lowest.X<0)this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,st);else{var xt=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y];(j.m_polygon[st].Y>xt.Y||j.m_polygon[st].Y===xt.Y&&j.m_polygon[st].X<xt.X)&&(this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,st))}}},e.ClipperOffset.prototype.AddPaths=function(a,x,A){for(var F=0,j=a.length;F<j;F++)this.AddPath(a[F],x,A)},e.ClipperOffset.prototype.FixOrientations=function(){if(this.m_lowest.X>=0&&!e.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];(x.m_endtype===e.EndType.etClosedPolygon||x.m_endtype===e.EndType.etClosedLine&&e.Clipper.Orientation(x.m_polygon))&&x.m_polygon.reverse()}else for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];x.m_endtype===e.EndType.etClosedLine&&!e.Clipper.Orientation(x.m_polygon)&&x.m_polygon.reverse()}},e.ClipperOffset.GetUnitNormal=function(a,x){var A=x.X-a.X,F=x.Y-a.Y;if(A===0&&F===0)return new e.DoublePoint2(0,0);var j=1/Math.sqrt(A*A+F*F);return A*=j,F*=j,new e.DoublePoint2(F,-A)},e.ClipperOffset.prototype.DoOffset=function(a){if(this.m_destPolys=new Array,this.m_delta=a,e.ClipperBase.near_zero(a)){for(var x=0;x<this.m_polyNodes.ChildCount();x++){var A=this.m_polyNodes.Childs()[x];A.m_endtype===e.EndType.etClosedPolygon&&this.m_destPolys.push(A.m_polygon)}return}this.MiterLimit>2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5;var F;this.ArcTolerance<=0?F=e.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(a)*e.ClipperOffset.def_arc_tolerance?F=Math.abs(a)*e.ClipperOffset.def_arc_tolerance:F=this.ArcTolerance;var j=3.14159265358979/Math.acos(1-F/Math.abs(a));this.m_sin=Math.sin(e.ClipperOffset.two_pi/j),this.m_cos=Math.cos(e.ClipperOffset.two_pi/j),this.m_StepsPerRad=j/e.ClipperOffset.two_pi,a<0&&(this.m_sin=-this.m_sin);for(var x=0;x<this.m_polyNodes.ChildCount();x++){var A=this.m_polyNodes.Childs()[x];this.m_srcPoly=A.m_polygon;var _=this.m_srcPoly.length;if(!(_===0||a<=0&&(_<3||A.m_endtype!==e.EndType.etClosedPolygon))){if(this.m_destPoly=new Array,_===1){if(A.m_jointype===e.JoinType.jtRound)for(var st=1,Pt=0,xt=1;xt<=j;xt++){this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+st*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+Pt*a)));var Dt=st;st=st*this.m_cos-this.m_sin*Pt,Pt=Dt*this.m_sin+Pt*this.m_cos}else for(var st=-1,Pt=-1,xt=0;xt<4;++xt)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+st*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+Pt*a))),st<0?st=1:Pt<0?Pt=1:st=-1;this.m_destPolys.push(this.m_destPoly);continue}this.m_normals.length=0;for(var xt=0;xt<_-1;xt++)this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[xt],this.m_srcPoly[xt+1]));if(A.m_endtype===e.EndType.etClosedLine||A.m_endtype===e.EndType.etClosedPolygon?this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[_-1],this.m_srcPoly[0])):this.m_normals.push(new e.DoublePoint1(this.m_normals[_-2])),A.m_endtype===e.EndType.etClosedPolygon){for(var Ht=_-1,xt=0;xt<_;xt++)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly)}else if(A.m_endtype===e.EndType.etClosedLine){for(var Ht=_-1,xt=0;xt<_;xt++)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly),this.m_destPoly=new Array;for(var jt=this.m_normals[_-1],xt=_-1;xt>0;xt--)this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt-1].X,-this.m_normals[xt-1].Y);this.m_normals[0]=new e.DoublePoint2(-jt.X,-jt.Y),Ht=0;for(var xt=_-1;xt>=0;xt--)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(var Ht=0,xt=1;xt<_-1;++xt)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);var qt;if(A.m_endtype===e.EndType.etOpenButt){var xt=_-1;qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[xt].X+this.m_normals[xt].X*a),e.ClipperOffset.Round(this.m_srcPoly[xt].Y+this.m_normals[xt].Y*a)),this.m_destPoly.push(qt),qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[xt].X-this.m_normals[xt].X*a),e.ClipperOffset.Round(this.m_srcPoly[xt].Y-this.m_normals[xt].Y*a)),this.m_destPoly.push(qt)}else{var xt=_-1;Ht=_-2,this.m_sinA=0,this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt].X,-this.m_normals[xt].Y),A.m_endtype===e.EndType.etOpenSquare?this.DoSquare(xt,Ht):this.DoRound(xt,Ht)}for(var xt=_-1;xt>0;xt--)this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt-1].X,-this.m_normals[xt-1].Y);this.m_normals[0]=new e.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y),Ht=_-1;for(var xt=Ht-1;xt>0;--xt)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);A.m_endtype===e.EndType.etOpenButt?(qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*a)),this.m_destPoly.push(qt),qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*a)),this.m_destPoly.push(qt)):(Ht=1,this.m_sinA=0,A.m_endtype===e.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}},e.ClipperOffset.prototype.Execute=function(){var a=arguments,x=a[0]instanceof e.PolyTree;if(x){var A=a[0],F=a[1];A.Clear(),this.FixOrientations(),this.DoOffset(F);var j=new e.Clipper(0);if(j.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),st=new e.Path;if(st.push(new e.IntPoint2(_.left-10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.top-10)),st.push(new e.IntPoint2(_.left-10,_.top-10)),j.AddPath(st,e.PolyType.ptSubject,!0),j.ReverseSolution=!0,j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),A.ChildCount()===1&&A.Childs()[0].ChildCount()>0){var Pt=A.Childs()[0];A.Childs()[0]=Pt.Childs()[0],A.Childs()[0].m_Parent=A;for(var xt=1;xt<Pt.ChildCount();xt++)A.AddChild(Pt.Childs()[xt])}else A.Clear()}}else{var A=a[0],F=a[1];e.Clear(A),this.FixOrientations(),this.DoOffset(F);var j=new e.Clipper(0);if(j.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),st=new e.Path;st.push(new e.IntPoint2(_.left-10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.top-10)),st.push(new e.IntPoint2(_.left-10,_.top-10)),j.AddPath(st,e.PolyType.ptSubject,!0),j.ReverseSolution=!0,j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),A.length>0&&A.splice(0,1)}}},e.ClipperOffset.prototype.OffsetPoint=function(a,x,A){if(this.m_sinA=this.m_normals[x].X*this.m_normals[a].Y-this.m_normals[a].X*this.m_normals[x].Y,Math.abs(this.m_sinA*this.m_delta)<1){var F=this.m_normals[x].X*this.m_normals[a].X+this.m_normals[a].Y*this.m_normals[x].Y;if(F>0)return this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),x}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),this.m_destPoly.push(new e.IntPoint1(this.m_srcPoly[a])),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)));else switch(A){case e.JoinType.jtMiter:{var j=1+(this.m_normals[a].X*this.m_normals[x].X+this.m_normals[a].Y*this.m_normals[x].Y);j>=this.m_miterLim?this.DoMiter(a,x,j):this.DoSquare(a,x);break}case e.JoinType.jtSquare:this.DoSquare(a,x);break;case e.JoinType.jtRound:this.DoRound(a,x);break}return x=a,x},e.ClipperOffset.prototype.DoSquare=function(a,x){var A=Math.tan(Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y)/4);this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[x].X-this.m_normals[x].Y*A)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[x].Y+this.m_normals[x].X*A)))),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[a].X+this.m_normals[a].Y*A)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[a].Y-this.m_normals[a].X*A))))},e.ClipperOffset.prototype.DoMiter=function(a,x,A){var F=this.m_delta/A;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+(this.m_normals[x].X+this.m_normals[a].X)*F),e.ClipperOffset.Round(this.m_srcPoly[a].Y+(this.m_normals[x].Y+this.m_normals[a].Y)*F)))},e.ClipperOffset.prototype.DoRound=function(a,x){for(var A=Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y),F=Math.max(e.Cast_Int32(e.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(A))),1),j=this.m_normals[x].X,_=this.m_normals[x].Y,st,Pt=0;Pt<F;++Pt)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+j*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+_*this.m_delta))),st=j,j=j*this.m_cos-this.m_sin*_,_=st*this.m_sin+_*this.m_cos;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)))},e.Error=function(a){try{throw new Error(a)}catch(x){alert(x.message)}},e.JS={},e.JS.AreaOfPolygon=function(a,x){return x||(x=1),e.Clipper.Area(a)/(x*x)},e.JS.AreaOfPolygons=function(a,x){x||(x=1);for(var A=0,F=0;F<a.length;F++)A+=e.Clipper.Area(a[F]);return A/(x*x)},e.JS.BoundsOfPath=function(a,x){return e.JS.BoundsOfPaths([a],x)},e.JS.BoundsOfPaths=function(a,x){x||(x=1);var A=e.Clipper.GetBounds(a);return A.left/=x,A.bottom/=x,A.right/=x,A.top/=x,A},e.JS.Clean=function(F,x){if(!(F instanceof Array))return[];var A=F[0]instanceof Array,F=e.JS.Clone(F);if(typeof x!="number"||x===null)return e.Error("Delta is not a number in Clean()."),F;if(F.length===0||F.length===1&&F[0].length===0||x<0)return F;A||(F=[F]);for(var j=F.length,_,st,Pt,xt,Dt,Ht,jt,qt=[],oe=0;oe<j;oe++)if(st=F[oe],_=st.length,_!==0){if(_<3){Pt=st,qt.push(Pt);continue}for(Pt=st,xt=x*x,Dt=st[0],Ht=1,jt=1;jt<_;jt++)(st[jt].X-Dt.X)*(st[jt].X-Dt.X)+(st[jt].Y-Dt.Y)*(st[jt].Y-Dt.Y)<=xt||(Pt[Ht]=st[jt],Dt=st[jt],Ht++);Dt=st[Ht-1],(st[0].X-Dt.X)*(st[0].X-Dt.X)+(st[0].Y-Dt.Y)*(st[0].Y-Dt.Y)<=xt&&Ht--,Ht<_&&Pt.splice(Ht,_-Ht),Pt.length&&qt.push(Pt)}return!A&&qt.length?qt=qt[0]:!A&&qt.length===0?qt=[]:A&&qt.length===0&&(qt=[[]]),qt},e.JS.Clone=function(a){if(!(a instanceof Array))return[];if(a.length===0)return[];if(a.length===1&&a[0].length===0)return[[]];var x=a[0]instanceof Array;x||(a=[a]);var A=a.length,F,j,_,st,Pt=new Array(A);for(j=0;j<A;j++){for(F=a[j].length,st=new Array(F),_=0;_<F;_++)st[_]={X:a[j][_].X,Y:a[j][_].Y};Pt[j]=st}return x||(Pt=Pt[0]),Pt},e.JS.Lighten=function(a,x){if(!(a instanceof Array))return[];if(typeof x!="number"||x===null)return e.Error("Tolerance is not a number in Lighten()."),e.JS.Clone(a);if(a.length===0||a.length===1&&a[0].length===0||x<0)return e.JS.Clone(a);var A=a[0]instanceof Array;A||(a=[a]);var F,j,_,st,Pt,xt,Dt,Ht,jt,qt,oe,me,Pe,be,lr,Dr,Tn,Ys=a.length,Ea=x*x,Cn=[];for(F=0;F<Ys;F++)if(_=a[F],xt=_.length,xt!==0){for(st=0;st<1e6;st++){for(Pt=[],xt=_.length,_[xt-1].X!==_[0].X||_[xt-1].Y!==_[0].Y?(me=1,_.push({X:_[0].X,Y:_[0].Y}),xt=_.length):me=0,oe=[],j=0;j<xt-2;j++)Dt=_[j],jt=_[j+1],Ht=_[j+2],Dr=Dt.X,Tn=Dt.Y,Pe=Ht.X-Dr,be=Ht.Y-Tn,(Pe!==0||be!==0)&&(lr=((jt.X-Dr)*Pe+(jt.Y-Tn)*be)/(Pe*Pe+be*be),lr>1?(Dr=Ht.X,Tn=Ht.Y):lr>0&&(Dr+=Pe*lr,Tn+=be*lr)),Pe=jt.X-Dr,be=jt.Y-Tn,qt=Pe*Pe+be*be,qt<=Ea&&(oe[j+1]=1,j++);for(Pt.push({X:_[0].X,Y:_[0].Y}),j=1;j<xt-1;j++)oe[j]||Pt.push({X:_[j].X,Y:_[j].Y});if(Pt.push({X:_[xt-1].X,Y:_[xt-1].Y}),me&&_.pop(),oe.length)_=Pt;else break}xt=Pt.length,Pt[xt-1].X===Pt[0].X&&Pt[xt-1].Y===Pt[0].Y&&Pt.pop(),Pt.length>2&&Cn.push(Pt)}return A||(Cn=Cn[0]),typeof Cn>"u"&&(Cn=[]),Cn},e.JS.PerimeterOfPath=function(a,x,A){if(typeof a>"u")return 0;var F=Math.sqrt,j=0,_,st,Pt=0,xt=0,Dt=0,Ht=0,jt=a.length;if(jt<2)return 0;for(x&&(a[jt]=a[0],jt++);--jt;)_=a[jt],Pt=_.X,xt=_.Y,st=a[jt-1],Dt=st.X,Ht=st.Y,j+=F((Pt-Dt)*(Pt-Dt)+(xt-Ht)*(xt-Ht));return x&&a.pop(),j/A},e.JS.PerimeterOfPaths=function(a,x,A){A||(A=1);for(var F=0,j=0;j<a.length;j++)F+=e.JS.PerimeterOfPath(a[j],x,A);return F},e.JS.ScaleDownPath=function(a,x){var A,F;for(x||(x=1),A=a.length;A--;)F=a[A],F.X=F.X/x,F.Y=F.Y/x},e.JS.ScaleDownPaths=function(a,x){var A,F,j;for(x||(x=1),A=a.length;A--;)for(F=a[A].length;F--;)j=a[A][F],j.X=j.X/x,j.Y=j.Y/x},e.JS.ScaleUpPath=function(a,x){var A,F,j=Math.round;for(x||(x=1),A=a.length;A--;)F=a[A],F.X=j(F.X*x),F.Y=j(F.Y*x)},e.JS.ScaleUpPaths=function(a,x){var A,F,j,_=Math.round;for(x||(x=1),A=a.length;A--;)for(F=a[A].length;F--;)j=a[A][F],j.X=_(j.X*x),j.Y=_(j.Y*x)},e.ExPolygons=function(){return[]},e.ExPolygon=function(){this.outer=null,this.holes=null},e.JS.AddOuterPolyNodeToExPolygons=function(a,x){var A=new e.ExPolygon;A.outer=a.Contour();var F=a.Childs(),j=F.length;A.holes=new Array(j);var _,st,Pt,xt,Dt,Ht;for(Pt=0;Pt<j;Pt++)for(_=F[Pt],A.holes[Pt]=_.Contour(),xt=0,Dt=_.Childs(),Ht=Dt.length;xt<Ht;xt++)st=Dt[xt],e.JS.AddOuterPolyNodeToExPolygons(st,x);x.push(A)},e.JS.ExPolygonsToPaths=function(a){var x,A,F,j,_=new e.Paths;for(x=0,F=a.length;x<F;x++)for(_.push(a[x].outer),A=0,j=a[x].holes.length;A<j;A++)_.push(a[x].holes[A]);return _},e.JS.PolyTreeToExPolygons=function(a){var x=new e.ExPolygons,A,F,j,_;for(F=0,j=a.Childs(),_=j.length;F<_;F++)A=j[F],e.JS.AddOuterPolyNodeToExPolygons(A,x);return x}})()})(zf);var QP=zf.exports,Jr=mn(QP);function jf(i,e,t=.01){return Math.abs(i[0]-e[0])<t&&Math.abs(i[1]-e[1])<t}function qP(i,e=.01){if(i.length===0)return[];const t=[[i[0][0],i[0][1]]];for(let r=1;r<i.length;r++)jf([i[r][0],i[r][1]],t[t.length-1],e)||t.push([i[r][0],i[r][1]]);return t}function _P(i,e=.01){if(i.length<=2)return i;const t=i[0],r=i[i.length-1];return jf(t,r,e)?i.slice(0,-1):i}function tS(i){const e=i.reduce((r,n)=>r+n[0],0)/i.length,t=i.reduce((r,n)=>r+n[1],0)/i.length;return[e,t]}function Gf(i,e){return Math.atan2(e[1]-i[1],e[0]-i[0])}function eS(i,e=.01){if(i.length<=2)return i;const t=[];for(const n of i)t.some(c=>Math.abs(c[0]-n[0])<e&&Math.abs(c[1]-n[1])<e)||t.push([n[0],n[1]]);const r=tS(t);return t.sort((n,s)=>{const c=Gf(r,n),l=Gf(r,s);return c-l})}function rS(i,e){const t=e[0].x<e[e.length-1].x;return i.map(n=>{const c=n.map(l=>{let f=-1,u=1/0,v=0;for(let h=0;h<e.length;h++){const y=e[h],T=Math.sqrt(Math.pow(y.x-l[0],2)+Math.pow(y.y-l[1],2));T<u&&(u=T,f=h,v=y.z)}return{point:l,index:f,bestZ:v}}).sort((l,f)=>l.index-f.index).map(l=>[...l.point,l.bestZ]);return t&&c[0][0]>c[c.length-1][0]||!t&&c[0][0]<c[c.length-1][0]?c.reverse():c}).sort((n,s)=>{const c=n[0][0],l=s[0][0];return t?c-l:l-c})}function nS(i,e,t=.01){const n=i.map(h=>[h.x,h.y]),s=(h,y)=>h.map(([T,O])=>({X:Math.round(T*y),Y:Math.round(O*y)})),c=new Jr.ClipperOffset;c.AddPath(s(n,1e3),Jr.JoinType.jtRound,Jr.EndType.etOpenButt);const l=[];c.Execute(l,1);const f=new Jr.Clipper;f.AddPaths(l,Jr.PolyType.ptSubject,!0),e.forEach(h=>{f.AddPath(s(h,1e3),Jr.PolyType.ptClip,!0)});const u=new Jr.Paths;f.Execute(Jr.ClipType.ctDifference,u,Jr.PolyFillType.pftNonZero,Jr.PolyFillType.pftNonZero);const v=u.map(h=>_P(eS(qP(h.map(y=>[y.X/1e3,y.Y/1e3]),t),t),t)).filter(h=>h.length>=2);return rS(v,i)}class kf extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Pencil);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"MAX_REPEAR",10);dt(this,"uniThickness");dt(this,"workOptions");dt(this,"centerPos",[0,0]);this.workOptions=t.toolsOpt,this.uniThickness=this.MAX_REPEAR/this.workOptions.thickness/10,this.syncTimestamp=0}combineConsume(){var l;const t=(l=this.workId)==null?void 0:l.toString();if(this.tmpPoints.length<2)return{type:vt.None};const r=this.transformDataAll(!0),n={name:t};let s;const c=this.drawLayer||this.fullLayer;return r.length&&(s=this.draw({attrs:n,tasks:r,replaceId:t,layer:c})),{rect:s,type:vt.DrawWork,dataType:Kt.Local}}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,drawCount:l,removeDrawCount:f,isSimpleWorker:u}=t,{workId:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const{tasks:y,effects:T,consumeIndex:O}=this.transformData(r,!1);this.syncIndex=Math.min(this.syncIndex,O,Math.max(0,this.tmpPoints.length-2));const I={name:v,id:Qe(l)&&l.toString()||void 0};let P,w=!1;const d=this.syncIndex;if(this.syncTimestamp===0&&(this.syncTimestamp=Date.now()),y.length&&(y[0].taskId-this.syncTimestamp>this.syncUnitTime&&(w=!0,this.syncTimestamp=y[0].taskId,this.syncIndex=this.tmpPoints.length),s||c||u)){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;P=this.draw({attrs:I,tasks:y,effects:T,layer:S,removeDrawCount:f})}if(u){const S=[];this.tmpPoints.slice(d).forEach(R=>{S.push(R.x,R.y,this.computRadius(R.z,this.workOptions.thickness))});const E=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:E?S:void 0,index:E?d*3:void 0,rect:P,updateNodeOpt:{useAnimation:!0}}}if(s)return O>10&&this.tmpPoints.splice(0,O-10),{rect:P,type:vt.DrawWork,dataType:Kt.Local};const m=[];this.tmpPoints.slice(d).forEach(S=>{m.push(S.x,S.y,this.computRadius(S.z,this.workOptions.thickness))});const p=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,rect:P,op:p?m:void 0,index:p?d*3:void 0,updateNodeOpt:{useAnimation:!0}}}consumeAll(t){var v;const r=this.workId;if(t.data){const{op:h,workState:y}=t.data;h!=null&&h.length&&y===te.Done&&this.workOptions.strokeType===Ee.Stroke&&this.updateTempPointsWithPressureWhenDone(h)}const n=this.transformDataAll(!0),s={name:r};let c;const l=this.fullLayer;if(n.length&&(c=this.draw({attrs:s,tasks:n,replaceId:r,layer:l})),this.tmpPoints.length<2)return this.replace(l,r),{type:vt.RemoveNode,removeIds:[r],rect:c};const f=[];this.tmpPoints.map(h=>{f.push(h.x,h.y,h.z)}),this.syncTimestamp=0,delete this.workOptions.syncUnitTime;const u=hr(f);return(v=this.vNodes)==null||v.setInfo(r,{rect:c,op:f,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:c&&$t.getCenterPos(c,l)}),{...this.baseConsumeResult,rect:c,type:vt.FullWork,dataType:Kt.Local,ops:u,updateNodeOpt:{pos:this.centerPos,useAnimation:!0}}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=te.Done}=t;this.tmpPoints.length=0;for(let T=0;T<r.length;T+=3){const O=new Jt(r[T],r[T+1],r[T+2]);if(this.tmpPoints.length>0){const I=this.tmpPoints[this.tmpPoints.length-1],P=pt.Sub(O,I).uni();O.setv(P)}this.tmpPoints.push(O)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0),f=(h=this.workId)==null?void 0:h.toString(),u={name:f};let v;if(f&&l.length){const T=n?this.fullLayer:this.drawLayer||this.fullLayer;v=this.draw({attrs:u,tasks:l,replaceId:s,layer:T,isDrawEraserlines:c===te.Done}),(y=this.vNodes)==null||y.setInfo(f,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&$t.getCenterPos(v,T)})}return v}computPencilPoints(t){const r=[],{op:n,eraserPolylines:s,eraserThickness:c}=t;this.tmpPoints.length=0;for(let f=0;f<n.length;f+=3){const u=new Jt(n[f],n[f+1],n[f+2]);if(this.tmpPoints.length>0){const v=this.tmpPoints[this.tmpPoints.length-1],h=pt.Sub(u,v).uni();u.setv(h)}this.tmpPoints.push(u)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0);if(l.length)for(let f=0;f<l.length;f++){const{pos:u,points:v}=l[f],h=v.map(O=>O.point.addXY(u[0],u[1])),y=[];for(const O of s){const I=[];for(let w=0;w<O.length;w+=2){const d=new Jt(O[w],O[w+1]);if(I.length>0){const m=I[I.length-1].point,p=pt.Sub(d,m).uni();d.setv(p)}I.push({point:d,radius:c})}const{ps:P}=this.computStroke(I,!1);y.push(P.map(w=>w.XY))}nS(h,y,.01).forEach(O=>{r.push(O.map(I=>[I[0],I[1],I[2]]).flat(1))})}return r}transformDataAll(t=!0){return this.getTaskPoints(this.tmpPoints,t&&this.workOptions.thickness||void 0)}draw(t){const{attrs:r,tasks:n,replaceId:s,effects:c,layer:l,removeDrawCount:f,isDrawEraserlines:u=!0}=t,{strokeColor:v,strokeType:h,thickness:y,zIndex:T,scale:O,rotate:I,translate:P,eraserlines:w,lineCap:d,lineDash:m}=this.workOptions;c!=null&&c.size&&(c.forEach(U=>{var M;(M=l.getElementById(U+""))==null||M.remove()}),c.clear()),f&&this.removeDrawCountNodes(l,f);let p;const S=[],E=l.worldPosition,R=l.worldScaling;for(let U=0;U<n.length;U++){const{pos:M,points:W}=n[U],{ps:$,rect:B}=this.computDrawPoints(W);let N;const z=W.length===1;h===Ee.Stroke||z?N=yn($,!0):N=yn($,!1);const J={pos:M,d:N,fillColor:h===Ee.Stroke||z?v:void 0,lineDash:z?void 0:h===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*y]:h===Ee.LongDotted?[(m&&m[0]||1)*y,(m&&m[1]||2)*y]:void 0,strokeColor:v,lineCap:z?void 0:d,lineWidth:h===Ee.Stroke||z?0:y};p=Zt(p,{x:Math.floor((B.x+M[0])*R[0]+E[0]-$t.SafeBorderPadding),y:Math.floor((B.y+M[1])*R[1]+E[1]-$t.SafeBorderPadding),w:Math.floor(B.w*R[0]+2*$t.SafeBorderPadding),h:Math.floor(B.h*R[1]+2*$t.SafeBorderPadding)}),S.push(J)}O&&(r.scale=O),I&&(r.rotate=I),P&&(r.translate=P);const D=new Je;if(p){this.centerPos=$t.getCenterPos(p,l);const U=h===Ee.Stroke&&!w;D.attr({...r,normalize:!0,anchor:[.5,.5],bgcolor:U?v:void 0,pos:this.centerPos,size:[(p.w-2*$t.SafeBorderPadding)/R[0],(p.h-2*$t.SafeBorderPadding)/R[1]],zIndex:T});const M=S.map(W=>(W.pos=[W.pos[0]-this.centerPos[0],W.pos[1]-this.centerPos[1]],new gn(W)));D.append(...M),U&&D.seal(),w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:w,pos:this.centerPos,layer:l},u)),this.replace(l,s,D)}if(O||I||P){const U=D==null?void 0:D.getBoundingClientRect();U&&(p={x:Math.floor(U.x-$t.SafeBorderPadding),y:Math.floor(U.y-$t.SafeBorderPadding),w:Math.floor(U.width+$t.SafeBorderPadding*2),h:Math.floor(U.height+$t.SafeBorderPadding*2)})}return this.isDelete&&D.setAttribute("opacity",0),p}computDrawPoints(t){return this.workOptions.strokeType===Ee.Stroke||t.length===1?this.computStroke(t):this.computNomal(t)}computNomal(t){let r=this.workOptions.thickness;const n=t.map(s=>(r=Math.max(r,s.radius),s.point));return{ps:n,rect:Re(n,r)}}computStroke(t,r=!0){return t.length===1?this.computDotStroke(t[0]):this.computLineStroke(t,r)}computLineStroke(t,r=!0){const n=[],s=[];for(let f=0;f<t.length;f++){const{point:u,radius:v}=t[f];let h=u.v;f===0&&t.length>1&&(h=t[f+1].point.v);const y=pt.Per(h).mul(v);n.push(Jt.Sub(u,y)),s.push(Jt.Add(u,y))}const c=t[t.length-1];if(r){const f=Jt.GetSemicircleStroke(c.point,n[n.length-1],-1,8),u=Jt.GetSemicircleStroke(t[0].point,s[0],-1,8),v=n.concat(f,s.reverse(),u);return{ps:v,rect:Re(v)}}const l=n.concat(s.reverse());return{ps:l,rect:Re(l)}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}transformData(t,r){const{op:n,workState:s}=t;let c=this.tmpPoints.length-1,l=[];if(n!=null&&n.length&&s){const{strokeType:f,thickness:u}=this.workOptions,v=new Set;c=f===Ee.Stroke?this.updateTempPointsWithPressure(n,u,v):this.updateTempPoints(n,u,v);const h=r?this.tmpPoints:this.tmpPoints.slice(c);return l=this.getTaskPoints(h,u),{tasks:l,effects:v,consumeIndex:c}}return{tasks:l,consumeIndex:c}}computRadius(t,r){return t*.03*r+r*.5}getMinZ(t,r){return((r||Math.max(1,Math.floor(t*.3)))-t*.5)*100/t/3}getTaskPoints(t,r){var h;const n=[];if(t.length===0)return[];let s=0,c=t[0].x,l=t[0].y,f=[c,l],u=[],v=t[0].t;for(;s<t.length;){const y=t[s],T=y.x-c,O=y.y-l,I=y.z,P=r?this.computRadius(I,r):I;if(u.push({point:new Jt(T,O,I,t[s].v),radius:P}),s>0&&s<t.length-1){const w=t[s].getAngleByPoints(t[s-1],t[s+1]);if(w<60||w>300){const d=(h=u.pop())==null?void 0:h.point.clone();d&&n.push({taskId:v,pos:f,points:[...u,{point:d,radius:P}]}),c=t[s].x,l=t[s].y,f=[c,l];const m=y.x-c,p=y.y-l;u=[{point:new Jt(m,p,I),radius:P}],v=Date.now()}}s++}return n.push({taskId:v,pos:f,points:u}),n}updateTempPointsWithPressure(t,r,n){const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let u=0;u<t.length;u+=2){l=Math.min(l,c);const v=this.tmpPoints.length,h=new Jt(t[u],t[u+1]);if(v===0){this.tmpPoints.push(h);continue}const y=v-1,T=this.tmpPoints[y],O=pt.Sub(h,T).uni();if(h.isNear(T,r)){if(T.z<this.MAX_REPEAR){if(T.setz(Math.min(T.z+1,this.MAX_REPEAR)),l=Math.min(l,y),v>1){let w=v-1;for(;w>0;){const d=this.tmpPoints[w].distance(this.tmpPoints[w-1]),m=Math.max(this.tmpPoints[w].z-this.uniThickness*d,0);if(this.tmpPoints[w-1].z>=m)break;this.tmpPoints[w-1].setz(m),l=Math.min(l,w-1),w--}}}else l=1/0;continue}h.setv(O);const I=h.distance(T),P=Math.max(T.z-this.uniThickness*I,0);v>1&&pt.Equals(O,T.v,.02)&&(P>0||T.z<=0)&&(n&&T.t&&n.add(T.t),this.tmpPoints.pop(),l=Math.min(y,l)),h.setz(P),this.tmpPoints.push(h)}if(l===1/0)return this.tmpPoints.length;let f=c;if(l===c){f=Math.max(f-1,0);const u=this.tmpPoints[f].t;u&&(n==null||n.add(u))}else{let u=c-1;for(f=l;u>=0;){const v=this.tmpPoints[u].t;if(v&&(n==null||n.add(v),u<=l)){f=u,u=-1;break}u--}}return this.tmpPoints[f].setT(s),f}updateTempPoints(t,r,n){var u;const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let v=0;v<t.length;v+=2){const h=this.tmpPoints.length,y=new Jt(t[v],t[v+1]);if(h===0){this.tmpPoints.push(y);continue}const T=h-1,O=this.tmpPoints[T],I=pt.Sub(y,O).uni();if(y.isNear(O,r/2)){l=Math.min(T,l);continue}pt.Equals(I,O.v,.02)&&(n&&O.t&&n.add(O.t),this.tmpPoints.pop(),l=Math.min(T,l)),y.setv(I),this.tmpPoints.push(y)}let f=c;if(l===c){f=Math.max(f-1,0);const v=this.tmpPoints[f].t;v&&(n==null||n.add(v))}else{let v=Math.min(c-1,l);for(f=l;v>=0;){const h=(u=this.tmpPoints[v])==null?void 0:u.t;if(h&&(n==null||n.add(h),v<=l)){f=v,v=-1;break}v--}}return this.tmpPoints[f].setT(s),f}updateTempPointsWithPressureWhenDone(t){const{thickness:r}=this.workOptions,n=t.length,s=this.getMinZ(r);for(let c=0;c<n;c+=2){const l=this.tmpPoints.length,f=new Jt(t[c],t[c+1]);if(l===0){this.tmpPoints.push(f);continue}const u=l-1,v=this.tmpPoints[u],h=pt.Sub(f,v).uni(),y=f.distance(v);if(l>1&&v.z===s)break;if(f.isNear(v,r/2)){if(n<3&&v.z<this.MAX_REPEAR&&(v.setz(Math.min(v.z+1,this.MAX_REPEAR)),l>1)){let O=l-1;for(;O>0;){const I=this.tmpPoints[O].distance(this.tmpPoints[O-1]),P=Math.max(this.tmpPoints[O].z-this.uniThickness*I,-r/4);if(this.tmpPoints[O-1].z>=P)break;this.tmpPoints[O-1].setz(P),O--}}continue}f.setv(h);const T=Math.max(v.z-this.uniThickness*y,s);l>1&&pt.Equals(h,v.v,.02)&&v.z<=0&&this.tmpPoints.pop(),f.setz(T),this.tmpPoints.push(f)}}static updateNodeOpt(t){var h,y;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l,lineCap:f,lineDash:u}=n,v=s.get(r.name);return c&&(r.tagName==="GROUP"?dT(r)?r.setAttribute("bgcolor",c):r.children.forEach(T=>{T.setAttribute("strokeColor",c),T.getAttribute("fillColor")&&T.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(h=v==null?void 0:v.opt)!=null&&h.strokeColor&&(v.opt.strokeColor=c)),l&&(v!=null&&v.opt)&&((y=v.opt)!=null&&y.strokeType)&&(v.opt.strokeType=l),f&&(v!=null&&v.opt)&&(v.opt.lineCap=f),u&&(v!=null&&v.opt)&&(v.opt.lineDash=u),v&&s.setInfo(r.name,v),$t.updateNodeOpt(t)}}class Hf extends $t{constructor(t){super(t);dt(this,"toolsType",Tt.LaserPen);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"consumeIndex",0);this.workOptions=t.toolsOpt,this.syncTimestamp=0}combineConsume(){}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isSubWorker:n}=t,{workId:s,op:c,syncUnitTime:l}=r;if((c==null?void 0:c.length)===0)return{type:vt.None};if(l&&(this.syncUnitTime=l),this.updateTempPoints(c||[]),this.consumeIndex>this.tmpPoints.length-4)return{type:vt.None};const{strokeColor:f,thickness:u,strokeType:v,lineDash:h,lineCap:y}=this.workOptions,T=Re(this.tmpPoints,u);let O=!1;const I=this.syncIndex,P=this.tmpPoints.slice(this.consumeIndex);this.consumeIndex=this.tmpPoints.length-1,this.syncTimestamp===0&&(this.syncTimestamp=Date.now());const w={name:s==null?void 0:s.toString(),opacity:1,lineDash:v===Ee.Dotted?[h&&h[0]||1,(h&&h[1]||2)*u]:v===Ee.LongDotted?[(h&&h[0]||1)*u,(h&&h[1]||2)*u]:void 0,strokeColor:f,lineCap:y,lineWidth:u,anchor:[.5,.5]},d=this.getTaskPoints(P);if(d.length){const p=Date.now();p-this.syncTimestamp>this.syncUnitTime&&(O=!0,this.syncTimestamp=p,this.syncIndex=this.tmpPoints.length),n&&this.draw({attrs:w,tasks:d,isDot:!1,layer:this.drawLayer||this.fullLayer})}const m=[];return this.tmpPoints.slice(I).forEach(p=>{m.push(p.x,p.y)}),{rect:{x:T.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:T.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:T.w*this.fullLayer.worldScaling[0],h:T.h*this.fullLayer.worldScaling[1]},type:vt.DrawWork,dataType:Kt.Local,op:O?m:void 0,index:O?I*2:void 0,...this.baseConsumeResult}}consumeAll(){var c;const t=(c=this.workId)==null?void 0:c.toString();let r;if(this.tmpPoints.length-1>this.consumeIndex){let l=this.tmpPoints.slice(this.consumeIndex);const f=l.length===1,{strokeColor:u,thickness:v,strokeType:h}=this.workOptions;if(f){const O=this.computDotStroke({point:l[0],radius:v/2});l=O.ps,r=O.rect}else r=Re(this.tmpPoints,v);const y={name:t==null?void 0:t.toString(),fillColor:f?u:void 0,opacity:1,lineDash:h===Ee.Dotted&&!f?[1,v*2]:h===Ee.LongDotted&&!f?[v,v*2]:void 0,strokeColor:u,lineCap:f?void 0:"round",lineWidth:f?0:v,anchor:[.5,.5]},T=this.getTaskPoints(l);T.length&&this.draw({attrs:y,tasks:T,isDot:f,layer:this.drawLayer||this.fullLayer})}const n=[];this.tmpPoints.forEach(l=>{n.push(l.x,l.y)});const s=hr(n);return{rect:r&&{x:r.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:r.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:r.w*this.fullLayer.worldScaling[0],h:r.h*this.fullLayer.worldScaling[1]},type:vt.FullWork,dataType:Kt.Local,ops:s,index:this.syncIndex*2,...this.baseConsumeResult}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var I;const{op:r,replaceId:n,isFullWork:s}=t,{strokeColor:c,thickness:l,strokeType:f}=this.workOptions;if(!r.length){const P=Re(this.tmpPoints,l);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]}}const u=Math.max(0,this.tmpPoints.length-1);this.updateTempPoints(r||[]);let v,h=this.tmpPoints.slice(u);const y=h.length===1;if(y){const P=this.computDotStroke({point:h[0],radius:l/2});h=P.ps,v=P.rect}else v=Re(this.tmpPoints,l);const T={name:(I=this.workId)==null?void 0:I.toString(),fillColor:y?c:void 0,opacity:1,lineDash:f===Ee.Dotted&&!y?[1,l*2]:f===Ee.LongDotted&&!y?[l,l*2]:void 0,strokeColor:c,lineCap:y?void 0:"round",lineWidth:y?0:l,anchor:[.5,.5]},O=this.getTaskPoints(h);if(O.length){const P=s?this.fullLayer:this.drawLayer||this.fullLayer;this.draw({attrs:T,tasks:O,isDot:y,replaceId:n,layer:P})}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]}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}updateTempPoints(t){const r=this.tmpPoints.length;for(let n=0;n<t.length;n+=2){if(r){const s=this.tmpPoints.slice(-1)[0];s&&s.x===t[n]&&s.y===t[n+1]&&this.tmpPoints.pop()}this.tmpPoints.push(new Jt(t[n],t[n+1]))}}async draw(t){const{attrs:r,tasks:n,isDot:s,layer:c}=t,{duration:l}=this.workOptions;for(const f of n){const u=new gn,{pos:v,points:h}=f;let y;s?y=yn(h,!0):y=yn(h,!1),u.attr({...r,pos:v,d:y}),c.appendChild(u),u.transition(l).attr({scale:s?[.1,.1]:[1,1],lineWidth:s?0:1}).then(()=>{u.remove()})}}getTaskPoints(t){var u;const r=[];if(t.length===0)return[];let n=0,s=t[0].x,c=t[0].y,l=[s,c],f=[];for(;n<t.length;){const v=t[n],h=v.x-s,y=v.y-c;if(f.push(new Jt(h,y)),n>0&&n<t.length-1){const T=t[n].getAngleByPoints(t[n-1],t[n+1]);if(T<60||T>300){const O=(u=f.pop())==null?void 0:u.clone();O&&r.push({pos:l,points:[...f,O]}),s=t[n].x,c=t[n].y,l=[s,c];const I=v.x-s,P=v.y-c;f=[new Jt(I,P)]}}n++}return r.push({pos:l,points:f}),r}removeLocal(){}removeService(t){let r;const n=[];return this.fullLayer.getElementsByName(t).forEach(s=>{if(s.name===t){const c=s.getBoundingClientRect();r=Zt(r,{x:c.x,y:c.y,w:c.width,h:c.height}),n.push(s)}}),n.length&&n.forEach(s=>s.remove()),r}}var iS=ds;ds.polyline=ds,ds.polygon=sS;function ds(i,e,t){var r=i.length,n=ei(i[0],e),s=[],c,l,f,u,v;for(t||(t=[]),c=1;c<r;c++){for(l=i[c-1],f=i[c],u=v=ei(f,e);;)if(n|u){if(n&u)break;n?(l=ko(l,f,n,e),n=ei(l,e)):(f=ko(l,f,u,e),u=ei(f,e))}else{s.push(l),u!==v?(s.push(f),c<r-1&&(t.push(s),s=[])):c===r-1&&s.push(f);break}n=v}return s.length&&t.push(s),t}function sS(i,e){var t,r,n,s,c,l,f;for(r=1;r<=8;r*=2){for(t=[],n=i[i.length-1],s=!(ei(n,e)&r),c=0;c<i.length;c++)l=i[c],f=!(ei(l,e)&r),f!==s&&t.push(ko(n,l,r,e)),f&&t.push(l),n=l,s=f;if(i=t,!i.length)break}return t}function ko(i,e,t,r){return t&8?[i[0]+(e[0]-i[0])*(r[3]-i[1])/(e[1]-i[1]),r[3]]:t&4?[i[0]+(e[0]-i[0])*(r[1]-i[1])/(e[1]-i[1]),r[1]]:t&2?[r[2],i[1]+(e[1]-i[1])*(r[2]-i[0])/(e[0]-i[0])]:t&1?[r[0],i[1]+(e[1]-i[1])*(r[0]-i[0])/(e[0]-i[0])]:null}function ei(i,e){var t=0;return i[0]<e[0]?t|=1:i[0]>e[2]&&(t|=2),i[1]<e[1]?t|=4:i[1]>e[3]&&(t|=8),t}var Ho=mn(iS);const si=class si extends $t{constructor(t,r){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"toolsType",Tt.Eraser);dt(this,"serviceWork");dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"worldPosition");dt(this,"worldScaling");dt(this,"eraserRect");dt(this,"eraserPolyline");this.serviceWork=r,this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(){}consumeService(){}setWorkOptions(t){super.setWorkOptions(t)}createEraserRect(t){const r=t[0]*this.worldScaling[0]+this.worldPosition[0],n=t[1]*this.worldScaling[1]+this.worldPosition[1],{width:s,height:c}=si.eraserSizes[this.workOptions.thickness];this.eraserRect={x:r-s*.5,y:n-c*.5,w:s,h:c},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 r=new pt(this.tmpPoints[0],this.tmpPoints[1]),n=new pt(this.tmpPoints[2],this.tmpPoints[3]),s=pt.Sub(n,r).uni(),c=pt.Dist(r,n),{width:l,height:f}=si.eraserSizes[this.workOptions.thickness],u=Math.min(l,f),v=Math.round(c/u);if(v>1){const h=[];for(let y=0;y<v;y++){const T=pt.Mul(s,y*u);h.push(this.tmpPoints[0]+T.x,this.tmpPoints[1]+T.y)}return h.concat(t)}}return t}isNear(t,r){const n=new pt(t[0],t[1]),s=new pt(r[0],r[1]),{width:c,height:l}=si.eraserSizes[this.workOptions.thickness];return pt.Dist(n,s)<Math.hypot(c,l)*.5}remove(t){const{curNodeMap:r,removeIds:n}=t;let s;for(const c of r.values())if(c.rect&&this.eraserRect&&this.eraserPolyline&&ea(this.eraserRect,c.rect)){const{op:l}=c,f=[],u=[];for(let h=0;h<l.length;h+=3){const y=new pt(l[h]*this.worldScaling[0]+this.worldPosition[0],l[h+1]*this.worldScaling[1]+this.worldPosition[1],l[h+2]);u.push(y),f.push(new Jt(y.x,y.y))}const v=f.length&&Re(f)||c.rect;ea(v,this.eraserRect)&&(u.length>1?Ho.polyline(u.map(y=>y.XY),this.eraserPolyline).length&&n.add(c.name):n.add(c.name),s=Zt(s,c.rect||v))}return n.forEach(c=>{var f;const l=this.fullLayer.getElementsByName(c);l[0]&&(l[0].remove(),dr(l[0],this.fullLayer.parent),(f=this.vNodes)==null||f.delete(c))}),s&&(s.x-=$t.SafeBorderPadding,s.y-=$t.SafeBorderPadding,s.w+=$t.SafeBorderPadding*2,s.h+=$t.SafeBorderPadding*2),s}consume(t){const{op:r,disableEraseImage:n,disableEraseText:s}=t.data;if(!r||r.length===0)return{type:vt.None,...this.baseConsumeResult};const c=this.tmpPoints.length;if(c>1&&this.isNear([r[0],r[1]],[this.tmpPoints[c-2],this.tmpPoints[c-1]]))return{type:vt.None,...this.baseConsumeResult};c<3?this.tmpPoints.push(r[0],r[1]):this.tmpPoints.splice(2,2,r[0],r[1]);const l=this.computRectCenterPoints();let f;const u=new Set;if(!this.vNodes)return{type:vt.None,...this.baseConsumeResult};const v=this.getCanEraserNodeMap(this.vNodes.getCanEraserNodes(this.vNodes.curNodeMap,{disableEraseImage:n,disableEraseText:s}));for(let h=0;h<l.length-1;h+=2){this.createEraserRect(l.slice(h,h+2));const y=this.remove({curNodeMap:v,removeIds:u});f=Zt(f,y)}return f&&u.size?{type:vt.RemoveNode,rect:f,removeIds:[...u]}:{type:vt.None,...this.baseConsumeResult}}consumeAll(t){return this.consume(t)}clearTmpPoints(){this.tmpPoints.length=0}getCanEraserNodeMap(t){var r;if(this.serviceWork){const n=new Map(t),s=this.serviceWork.selectorWorkShapes,c=this.serviceWork.workShapes;for(const l of s.values())if((r=l.selectIds)!=null&&r.length)for(const f of l.selectIds)n.delete(f);for(const l of c.keys())n.delete(l);return n}return t}};dt(si,"eraserSizes",Go);let ps=si;var oS="__lodash_hash_undefined__";function aS(i){return this.__data__.set(i,oS),this}var lS=aS;function fS(i){return this.__data__.has(i)}var cS=fS,uS=Zl,hS=lS,dS=cS;function vs(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new uS;++e<t;)this.add(i[e])}vs.prototype.add=vs.prototype.push=hS,vs.prototype.has=dS;var Vo=vs;function pS(i,e){for(var t=-1,r=i==null?0:i.length;++t<r;)if(e(i[t],t,i))return!0;return!1}var vS=pS;function gS(i,e){return i.has(e)}var Ko=gS,mS=Vo,yS=vS,PS=Ko,SS=1,xS=2;function TS(i,e,t,r,n,s){var c=t&SS,l=i.length,f=e.length;if(l!=f&&!(c&&f>l))return!1;var u=s.get(i),v=s.get(e);if(u&&v)return u==e&&v==i;var h=-1,y=!0,T=t&xS?new mS:void 0;for(s.set(i,e),s.set(e,i);++h<l;){var O=i[h],I=e[h];if(r)var P=c?r(I,O,h,e,i,s):r(O,I,h,i,e,s);if(P!==void 0){if(P)continue;y=!1;break}if(T){if(!yS(e,function(w,d){if(!PS(T,d)&&(O===w||n(O,w,t,r,s)))return T.push(d)})){y=!1;break}}else if(!(O===I||n(O,I,t,r,s))){y=!1;break}}return s.delete(i),s.delete(e),y}var Vf=TS;function CS(i){var e=-1,t=Array(i.size);return i.forEach(function(r,n){t[++e]=[n,r]}),t}var IS=CS;function wS(i){var e=-1,t=Array(i.size);return i.forEach(function(r){t[++e]=r}),t}var Zo=wS,Kf=wi,Zf=wf,OS=Ao,AS=Vf,ES=IS,MS=Zo,LS=1,RS=2,bS="[object Boolean]",DS="[object Date]",NS="[object Error]",BS="[object Map]",WS="[object Number]",FS="[object RegExp]",US="[object Set]",YS="[object String]",$S="[object Symbol]",XS="[object ArrayBuffer]",zS="[object DataView]",Jf=Kf?Kf.prototype:void 0,Jo=Jf?Jf.valueOf:void 0;function jS(i,e,t,r,n,s,c){switch(t){case zS:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case XS:return!(i.byteLength!=e.byteLength||!s(new Zf(i),new Zf(e)));case bS:case DS:case WS:return OS(+i,+e);case NS:return i.name==e.name&&i.message==e.message;case FS:case YS:return i==e+"";case BS:var l=ES;case US:var f=r&LS;if(l||(l=MS),i.size!=e.size&&!f)return!1;var u=c.get(i);if(u)return u==e;r|=RS,c.set(i,e);var v=AS(l(i),l(e),r,n,s,c);return c.delete(i),v;case $S:if(Jo)return Jo.call(i)==Jo.call(e)}return!1}var GS=jS,Qf=mf,kS=1,HS=Object.prototype,VS=HS.hasOwnProperty;function KS(i,e,t,r,n,s){var c=t&kS,l=Qf(i),f=l.length,u=Qf(e),v=u.length;if(f!=v&&!c)return!1;for(var h=f;h--;){var y=l[h];if(!(c?y in e:VS.call(e,y)))return!1}var T=s.get(i),O=s.get(e);if(T&&O)return T==e&&O==i;var I=!0;s.set(i,e),s.set(e,i);for(var P=c;++h<f;){y=l[h];var w=i[y],d=e[y];if(r)var m=c?r(d,w,y,e,i,s):r(w,d,y,i,e,s);if(!(m===void 0?w===d||n(w,d,t,r,s):m)){I=!1;break}P||(P=y=="constructor")}if(I&&!P){var p=i.constructor,S=e.constructor;p!=S&&"constructor"in i&&"constructor"in e&&!(typeof p=="function"&&p instanceof p&&typeof S=="function"&&S instanceof S)&&(I=!1)}return s.delete(i),s.delete(e),I}var ZS=KS,Qo=Jl,JS=Vf,QS=GS,qS=ZS,qf=us,_f=Ei,tc=Lo,_S=lf,tx=1,ec="[object Arguments]",rc="[object Array]",gs="[object Object]",ex=Object.prototype,nc=ex.hasOwnProperty;function rx(i,e,t,r,n,s){var c=_f(i),l=_f(e),f=c?rc:qf(i),u=l?rc:qf(e);f=f==ec?gs:f,u=u==ec?gs:u;var v=f==gs,h=u==gs,y=f==u;if(y&&tc(i)){if(!tc(e))return!1;c=!0,v=!1}if(y&&!v)return s||(s=new Qo),c||_S(i)?JS(i,e,t,r,n,s):QS(i,e,f,t,r,n,s);if(!(t&tx)){var T=v&&nc.call(i,"__wrapped__"),O=h&&nc.call(e,"__wrapped__");if(T||O){var I=T?i.value():i,P=O?e.value():e;return s||(s=new Qo),n(I,P,t,r,s)}}return y?(s||(s=new Qo),qS(i,e,t,r,n,s)):!1}var nx=rx,ix=nx,ic=on;function sc(i,e,t,r,n){return i===e?!0:i==null||e==null||!ic(i)&&!ic(e)?i!==i&&e!==e:ix(i,e,t,r,sc,n)}var sx=sc,ox=sx;function ax(i,e){return ox(i,e)}var lx=ax,Qr=mn(lx);function oc(i,e,t,r=1){return`rgba(${i},${e},${t},${r})`}function fx(i){const e=i.split(","),t=parseInt(e[0].split("(")[1]),r=parseInt(e[1]),n=parseInt(e[2]),s=Number(e[3].split(")")[0]);return[t,r,n,s]}const Rs=class Rs extends $t{constructor(t){super(t);dt(this,"toolsType",Tt.Selector);dt(this,"tmpPoints",[]);dt(this,"subTmpPoints",[]);dt(this,"workOptions");dt(this,"vNodes");dt(this,"selectIds");dt(this,"selectorColor");dt(this,"strokeColor");dt(this,"fillColor");dt(this,"oldSelectRect");dt(this,"oldSubSelectRect");dt(this,"canRotate",!1);dt(this,"canTextEdit",!1);dt(this,"canLock",!1);dt(this,"scaleType",Te.all);dt(this,"toolsTypes");dt(this,"shapeOpt");dt(this,"textOpt");dt(this,"isLocked");dt(this,"thickness");dt(this,"strokeType");dt(this,"useStroke");this.workOptions=t.toolsOpt,this.vNodes=t.vNodes}computSelector(t=!0){const r=Re(this.tmpPoints);if(r.w===0||r.h===0)return{selectIds:[],intersectRect:void 0,subNodeMap:new Map};const{rectRange:n,nodeRange:s}=this.vNodes.getRectIntersectRange(r,t);return{selectIds:[...s.keys()],intersectRect:n,subNodeMap:s}}updateTempPoints(t){const r=this.tmpPoints.length,n=t.length;if(n>1){const s=new Jt(t[n-2]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[n-1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]);r===2?this.tmpPoints.splice(1,1,s):this.tmpPoints.push(s)}}drawSelector(t){const{drawRect:r,subNodeMap:n,selectorId:s,layer:c,isService:l}=t,f=new Je({pos:[r.x,r.y],anchor:[0,0],size:[r.w,r.h],id:s,name:s,zIndex:9999}),u=[];if(l){const v=new Oo({normalize:!0,pos:[r.w/2,r.h/2],lineWidth:1,strokeColor:this.selectorColor||this.workOptions.strokeColor,width:r.w,height:r.h,name:Rs.selectorBorderId});u.push(v)}n.forEach((v,h)=>{const y=[v.rect.x+v.rect.w/2-r.x,v.rect.y+v.rect.h/2-r.y],T=new Oo({normalize:!0,pos:y,lineWidth:1,strokeColor:n.size>1?this.selectorColor||this.workOptions.strokeColor:void 0,width:v.rect.w,height:v.rect.h,id:`selector-${h}`,name:`selector-${h}`});u.push(T)}),u&&f.append(...u),(c==null?void 0:c.parent).appendChild(f)}draw(t,r,n,s=!1){var f,u;const{intersectRect:c,subNodeMap:l}=n;(u=(f=r.parent)==null?void 0:f.getElementById(t))==null||u.remove(),c&&this.drawSelector({drawRect:c,subNodeMap:l,selectorId:t,layer:r,isService:s})}getSelecteorInfo(t){this.scaleType=Te.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,this.thickness=void 0,this.strokeType=void 0,this.useStroke=!1;const r=new Set;let n,s=!0;for(const c of t.values()){const{opt:l,canRotate:f,scaleType:u,toolsType:v}=c;this.selectorColor=this.workOptions.strokeColor,l.strokeColor&&(this.strokeColor=l.strokeColor),l.fillColor&&(this.fillColor=l.fillColor),l.textOpt&&(this.textOpt=l.textOpt),l.thickness&&(this.thickness=l.thickness),v!==Tt.Pencil&&(s=!1),l.strokeType&&(this.strokeType=l.strokeType),v===Tt.SpeechBalloon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.placement=l.placement),v===Tt.Polygon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices),v===Tt.Star&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices,this.shapeOpt.innerRatio=l.innerRatio,this.shapeOpt.innerVerticeStep=l.innerVerticeStep),v===Tt.Text&&(this.textOpt=l),t.size===1&&(this.textOpt&&(this.canTextEdit=!0),this.canRotate=f,this.scaleType=u),(v===Tt.Image||v===Tt.BackgroundSVG)&&(n=c),(u===Te.proportional&&this.scaleType!==Te.none||u===Te.none)&&(this.scaleType=u)}s&&(this.useStroke=!0),r.size&&(this.toolsTypes=[...r]),n&&(t.size===1?(this.canLock=!0,n.opt.locked&&(this.isLocked=!0,this.scaleType=Te.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,this.thickness=void 0,this.strokeType=void 0,this.useStroke=void 0)):t.size>1&&!n.opt.locked&&(this.canLock=!1,this.canRotate=!1))}getChildrenPoints(){var t,r;if(this.scaleType===Te.both&&((t=this.selectIds)==null?void 0:t.length)===1){const n=this.selectIds[0],s=(r=this.vNodes.get(n))==null?void 0:r.op;if(s){const c=[];for(let l=0;l<s.length;l+=3)c.push([s[l],s[l+1]]);return c}}}consume(t){if(t.isSubWorker)return this.subWorkerConsume(t);let r={type:vt.Select,dataType:Kt.Local,...this.baseConsumeResult};if(t.isSimpleWorker){const v=this.subWorkerConsume(t);r.subRect=v.rect}const{op:n,workState:s}=t.data;let c=this.oldSelectRect;if(s===te.Start&&(c=this.unSelectedAllIds()),!(n!=null&&n.length)||!this.vNodes.curNodeMap.size)return t.isSimpleWorker?r:{type:vt.None};this.updateTempPoints(n);const l=this.computSelector();if(this.selectIds&&Qr(this.selectIds,l.selectIds))return t.isSimpleWorker?r:{type:vt.None};this.selectIds=l.selectIds;const f=l.intersectRect;this.getSelecteorInfo(l.subNodeMap),this.draw(Me,this.fullLayer,l),this.oldSelectRect=f;const u=this.getChildrenPoints();return r={...r,rect:Zt(f,c),selectIds:l.selectIds,selectRect:f,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:u,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType},r}consumeAll(){var r,n;let t=this.oldSelectRect;if(!((r=this.selectIds)!=null&&r.length)&&this.tmpPoints[0]&&this.selectSingleTool(this.tmpPoints[0].XY,Me,!1),(n=this.selectIds)!=null&&n.length&&(t=this.selectedByIds(this.selectIds)),t){const s=this.getChildrenPoints();return{type:vt.Select,dataType:Kt.Local,rect:this.oldSelectRect,selectIds:this.selectIds,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,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType,...this.baseConsumeResult}}return{type:vt.None}}consumeService(){}updateTempPointsForSubWorker(t){const r=t.slice(-2),n=new Jt(r[0],r[1]);if(this.subTmpPoints[0].isNear(n,1))return!1;if(this.subTmpPoints.length===2){if(n.isNear(this.subTmpPoints[1],1))return!1;this.subTmpPoints[1]=n}else this.subTmpPoints.push(n);return!0}computDrawPoints(t){const{thickness:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}drawForSubWorker(t){const{workId:r,layer:n,ps:s}=t,{strokeColor:c,scale:l,rotate:f,translate:u}=this.workOptions,v=n.worldPosition,h=n.worldScaling,{points:y,rect:T,pos:O}=this.computDrawPoints(s),I=1/n.worldScaling[0],P=c&&fx(c)||[0,0,0,0],w={close:!0,normalize:!0,points:y,lineWidth:I,fillColor:oc(P[0],P[1],P[2],.1),strokeColor:oc(P[0],P[1],P[2],1),lineJoin:"round",lineCap:"round"};let d={x:Math.floor(T.x*h[0]+v[0]-$t.SafeBorderPadding),y:Math.floor(T.y*h[1]+v[1]-$t.SafeBorderPadding),w:Math.floor(T.w*h[0]+2*$t.SafeBorderPadding),h:Math.floor(T.h*h[0]+2*$t.SafeBorderPadding)};const m=new Je({name:r,id:r,pos:O,anchor:[.5,.5],size:[T.w,T.h],scale:l,rotate:f,translate:u}),p=new nn({...w,pos:[0,0]});if(m.appendChild(p),this.replace(n,r,m),l||f||u){const S=m.getBoundingClientRect();d={x:Math.floor(S.x-$t.SafeBorderPadding),y:Math.floor(S.y-$t.SafeBorderPadding),w:Math.floor(S.width+2*$t.SafeBorderPadding),h:Math.floor(S.height+2*$t.SafeBorderPadding)}}return d}transformData(t){const r=Re(t);return[[r.x,r.y,0],[r.x+r.w,r.y,0],[r.x+r.w,r.y+r.h,0],[r.x,r.y+r.h,0]]}subWorkerConsume(t){const{data:r,isFullWork:n}=t,{op:s,syncUnitTime:c}=r;c&&(this.syncUnitTime=c);const l=s==null?void 0:s.length;if(!l||l<2)return{type:vt.None,rect:void 0};let f;if(this.subTmpPoints.length===0?(this.subTmpPoints=[new Jt(s[0],s[1])],f=!1):f=this.updateTempPointsForSubWorker(s),!f)return{type:vt.None,rect:void 0};const u=this.transformData(this.subTmpPoints),v=n?this.fullLayer:this.drawLayer||this.fullLayer,h=this.drawForSubWorker({ps:u,workId:this.workId,layer:v}),y=Zt(h,this.oldSubSelectRect);return this.oldSubSelectRect=h,{rect:y,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}subWorkerConsumeAll(t){const{isFullWork:r}=t,n=r?this.fullLayer:this.drawLayer||this.fullLayer;return this.replace(n,this.workId),{rect:this.oldSelectRect,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult}}clearSubTmpPoints(){this.subTmpPoints.length=0}clearTmpPoints(){this.tmpPoints.length=0,this.clearSubTmpPoints()}clearSubSelectData(){this.oldSubSelectRect=void 0}clearSelectData(){this.selectIds=void 0,this.oldSelectRect=void 0,this.clearSubSelectData()}selectSingleTool(t,r=Me,n=!1){if(t.length===2){const s=t[0],c=t[1];let l;const{nodeRange:f}=this.vNodes.getRectIntersectRange({x:s,y:c,w:0,h:0},!1),u=[...f.values()].sort((v,h)=>(h.opt.zIndex||0)-(v.opt.zIndex||0));for(const v of u){const h=this.fullLayer.getElementsByName(v.name);if(Bc(h).find(T=>T.isPointCollision(s,c))){l=v;break}}if(l){const v=l.name;if(!Qr(this.oldSelectRect,l.rect)){const h=new Map([[v,l]]);this.getSelecteorInfo(h),this.draw(r,this.fullLayer,{intersectRect:l.rect,subNodeMap:h,selectIds:this.selectIds||[]},n)}this.selectIds=[v],this.oldSelectRect=l.rect}}}unSelectedAllIds(){let t;for(const[r,n]of this.vNodes.curNodeMap.entries())n.isSelected&&(t=Zt(t,n.rect),this.vNodes.unSelected(r));return t}unSelectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&s.isSelected&&(r=Zt(r,s.rect),this.vNodes.unSelected(n))}return r}selectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&(r=Zt(r,s.rect),this.vNodes.selected(n))}return r}getSelectorRect(t,r){var l;let n;const s=(l=t.parent)==null?void 0:l.getElementById(r),c=s==null?void 0:s.getBoundingClientRect();return c&&(n=Zt(n,{x:Math.floor(c.x),y:Math.floor(c.y),w:Math.floor(c.width+1),h:Math.floor(c.height+1)})),n}isCanFillColor(t){return t===Tt.Ellipse||t===Tt.Triangle||t===Tt.Rectangle||t===Tt.Polygon||t===Tt.Star||t===Tt.SpeechBalloon}async updateSelector(t){const{updateSelectorOpt:r,selectIds:n,vNodes:s,willSerializeData:c,worker:l,offset:f}=t,u=this.fullLayer;if(!u)return;let v;const h=new Map,{originPoint:y,workState:T,angle:O,translate:I,dir:P,scale:w}=r;f&&(I?r.translate=[I[0]+f[0],I[1]+f[1]]:r.translate=f);let d;if(y||I||Qe(O)){if(T===te.Start&&n)return s.setTargetAssignKeys(n),{type:vt.Select,dataType:Kt.Local,selectRect:this.oldSelectRect,rect:this.oldSelectRect};if(d=s.getLastTarget(),!d)return}if(n)for(const S of n){const E=s.get(S);if(E){const{toolsType:R,opt:D}=E,U=(u==null?void 0:u.getElementsByName(S))[0];if(U){const M={...r};let W;const $=$t.isWillRefresh({toolsType:R,opt:D,updateOpt:M,vNodes:s,node:U,willSerializeData:c});if(R){W=d==null?void 0:d.get(S);const B=Nc(R);if(B==null||B.updateNodeOpt({node:U,opt:M,vNodes:s,willSerializeData:c,targetNode:W}),E&&l&&$){const N=l.createWorkShapeNode({workId:S,toolsType:R,toolsOpt:E.opt});N==null||N.setWorkId(S);let z;if(R===Tt.BackgroundSVG)z=N.consumeService({isFullWork:!0,replaceId:S});else if(R===Tt.Image)z=await N.consumeServiceAsync({isFullWork:!0,replaceId:S,worker:l});else if(R===Tt.Text)z=await N.consumeServiceAsync({isFullWork:!0,replaceId:S,isDrawLabel:!0});else try{z=N==null?void 0:N.consumeService({op:E.op,isFullWork:!0,replaceId:S,workState:T})}catch(J){console.error("consumeService error",J);continue}z&&(E.rect=z)}E&&(h.set(S,E),v=Zt(v,E.rect))}}}}d&&T===te.Done&&(s.deleteLastTarget(),d=void 0);const m=v;if(y&&I&&w&&P&&m&&!f){const S=[[m.x,m.y],[m.x+m.w,m.y],[m.x+m.w,m.y+m.h],[m.x,m.y+m.h]];let E;switch(P){case"top":case"topLeft":case"left":I[0]>0&&I[1]>0?E=S[0]:I[0]>0?E=S[3]:I[1]>0?E=S[1]:E=S[2];break;case"topRight":I[0]<0&&I[1]>0?E=S[1]:I[0]<0?E=S[2]:I[1]>0?E=S[0]:E=S[3];break;case"right":case"bottomRight":case"bottom":I[0]<0&&I[1]<0?E=S[2]:I[0]<0?E=S[1]:I[1]<0?E=S[3]:E=S[0];break;case"bottomLeft":I[0]>0&&I[1]<0?E=S[3]:I[0]>0?E=S[0]:I[1]<0?E=S[2]:E=S[1];break}const R=E&&[y[0]-E[0],y[1]-E[1]]||[0,0];if(!Qr(R,[0,0]))return await this.updateSelector({...t,updateSelectorOpt:{workState:T},offset:R})}this.getSelecteorInfo(h),this.draw(Me,u,{selectIds:n||[],subNodeMap:h,intersectRect:m});const p=Zt(this.oldSelectRect,m);return this.oldSelectRect=m,{type:vt.Select,dataType:Kt.Local,selectRect:m,renderRect:v,rect:Zt(p,m),selectIds:n}}blurSelector(){const t=this.unSelectedAllIds();return{type:vt.Select,dataType:Kt.Local,rect:t,selectIds:[],willSyncService:!0}}getRightServiceId(t){return t.replace(Vn,"-")}selectServiceNode(t,r,n){const{selectIds:s}=r,c=this.getRightServiceId(t),l=this.getSelectorRect(this.fullLayer,c);let f;const u=new Map;return s==null||s.forEach(v=>{const h=this.vNodes.get(v);h&&(f=Zt(f,h.rect),u.set(v,h))}),this.getSelecteorInfo(u),this.draw(c,this.fullLayer,{intersectRect:f,selectIds:s||[],subNodeMap:u},n),Zt(f,l)}reRenderSelector(){var n;let t;const r=new Map;return(n=this.selectIds)==null||n.forEach(s=>{const c=this.vNodes.get(s);c&&(t=Zt(t,c.rect),r.set(s,c))},this),this.getSelecteorInfo(r),this.draw(Me,this.fullLayer,{intersectRect:t,subNodeMap:r,selectIds:this.selectIds||[]}),this.oldSelectRect=t,t}updateSelectIds(t){var c;let r;const n=(c=this.selectIds)==null?void 0:c.filter(l=>!t.includes(l));if(n!=null&&n.length&&(r=this.unSelectedByIds(n)),t.length){const l=this.selectedByIds(t);r=Zt(r,l)}this.selectIds=t;const s=this.reRenderSelector();return{bgRect:r,selectRect:s}}cursorHover(t){var c,l;const r=this.oldSelectRect;this.selectIds=[];const n=(c=this.workId)==null?void 0:c.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&&!Qr(r,this.oldSelectRect))return{type:vt.CursorHover,dataType:Kt.Local,rect:Zt(r,this.oldSelectRect),selectorColor:this.selectorColor,willSyncService:!1};if((l=this.selectIds)!=null&&l.length||(this.oldSelectRect=void 0),r&&!this.oldSelectRect)return this.cursorBlur(),{type:vt.CursorHover,dataType:Kt.Local,rect:r,selectorColor:this.selectorColor,willSyncService:!1}}cursorBlur(){var r,n;this.selectIds=[];const t=(r=this.workId)==null?void 0:r.toString();((n=this.fullLayer)==null?void 0:n.parent).children.forEach(s=>{s.name===t&&s.remove()})}};dt(Rs,"selectorBorderId","selector-border");let Mi=Rs;class ac extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",Tt.Arrow);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"arrowTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.arrowTipWidth=this.workOptions.thickness*4,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(n,r)}),{rect:n,...this.baseConsumeResult,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineDash:O,lineCap:I}=this.workOptions,P=n.worldPosition,w=n.worldScaling,{points:d,pos:m,rect:p,isTriangle:S,trianglePoints:E,trianglePos:R}=this.computDrawPoints(l),D=[p.x+p.w/2,p.y+p.h/2],U={pos:D,name:r,id:r,zIndex:f,anchor:[.5,.5],size:[p.w,p.h]};u&&(U.scale=u),v&&(U.rotate=v),h&&(U.translate=h);const M=new Je(U),W={points:E,pos:[R[0]-D[0],R[1]-D[1]],fillColor:c,strokeColor:c,lineWidth:0,normalize:!1},$=new nn(W);if(M.append($),!S&&d&&m){const N={points:d,pos:[m[0]-D[0],m[1]-D[1]],fillColor:c,strokeColor:c,lineDash:y===Ee.Dotted?[O&&O[0]||1,(O&&O[1]||2)*l]:y===Ee.LongDotted?[(O&&O[0]||1)*l,(O&&O[1]||2)*l]:void 0,lineCap:y===Ee.Normal?void 0:I,lineWidth:l,normalize:!1},z=new nn(N);M.append(z)}T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:M,eraserlines:T,pos:D,layer:n},s)),this.replace(n,r,M);let B={x:Math.floor(p.x*w[0]+P[0]-$t.SafeBorderPadding),y:Math.floor(p.y*w[1]+P[1]-$t.SafeBorderPadding),w:Math.floor(p.w*w[0]+2*$t.SafeBorderPadding),h:Math.floor(p.h*w[1]+2*$t.SafeBorderPadding)};if(u||v||h){const N=M.getBoundingClientRect();B={x:Math.floor(N.x-$t.SafeBorderPadding),y:Math.floor(N.y-$t.SafeBorderPadding),w:Math.floor(N.width+$t.SafeBorderPadding*2),h:Math.floor(N.height+$t.SafeBorderPadding*2)}}return this.isDelete&&M.setAttribute("opacity",0),B}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.arrowTipWidth?this.computFullArrowPoints(t):this.computTrianglePoints()}computFullArrowPoints(t){const r=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=pt.Per(r).mul(t/2),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=pt.Mul(r,this.arrowTipWidth),f=pt.Sub(this.tmpPoints[1],l),u=Jt.Sub(f,n),v=Jt.Add(f,n),h=pt.Per(r).mul(t*1.5),y=Jt.Sub(f,h),T=Jt.Add(f,h),O=[this.tmpPoints[0],f],I=[y,this.tmpPoints[1],T],P=[s,c,...I,u,v];return{trianglePoints:I.map(w=>Jt.Sub(w,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,points:O.map(w=>Jt.Sub(w,this.tmpPoints[0]).XY).flat(1),rect:Re(P),isTriangle:!1,pos:this.tmpPoints[0].XY}}computTrianglePoints(){const t=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),r=this.tmpPoints[1].distance(this.tmpPoints[0]),n=pt.Per(t).mul(Math.floor(r*3/8)),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=[s,this.tmpPoints[1],c];return{trianglePoints:l.map(f=>Jt.Sub(f,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,rect:Re(l),isTriangle:!0}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),$t.updateNodeOpt(t)}}class lc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Ellipse);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const I=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:I,isDrawing:!0});const P=I.parent.parent,w={x:0,y:0,w:Math.floor(P.width),h:Math.floor(P.height)},d={type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(Bi(O,w)!==yr.outside){const p=Zt(O,this.oldRect);if(this.oldRect=O,d.rect=p,!f)return d}if(f){const p=Date.now();return p-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=p,d.op=this.tmpPoints.map(S=>[...S.XY,0]).flat(1),d.index=0,d.isSync=!0),d}return{type:vt.None}}if(!s&&!c&&!f&&l){const I=Date.now();return I-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=I,{type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult,op:this.tmpPoints.map(P=>[...P.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}return{type:vt.None}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:I,lineDash:P,lineCap:w}=this.workOptions,d=n.worldScaling,{radius:m,rect:p,pos:S}=this.computDrawPoints(u),E={closeType:"normal",radius:m,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:O===Ee.Dotted?[P&&P[0]||1,(P&&P[1]||2)*u]:O===Ee.LongDotted?[(P&&P[0]||1)*u,(P&&P[1]||2)*u]:void 0},R={name:r,id:r,zIndex:v,pos:S,anchor:[.5,.5],size:[p.w,p.h]};h&&(R.scale=h),y&&(R.rotate=y),T&&(R.translate=T);const D=new Je(R);if(s){const W=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/d[0],1/d[1]]});D.append(W)}const U=new rn({...E,pos:[0,0]});D.append(U),I&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:I,pos:S,layer:n},c)),this.replace(n,r,D);const M=D.getBoundingClientRect();return this.isDelete&&D.setAttribute("opacity",0),{x:Math.floor(M.x-$t.SafeBorderPadding),y:Math.floor(M.y-$t.SafeBorderPadding),w:Math.floor(M.width+$t.SafeBorderPadding*2),h:Math.floor(M.height+$t.SafeBorderPadding*2)}}computDrawPoints(t){const r=Re(this.tmpPoints),n=Re(this.tmpPoints,t),s=[Math.floor(r.x+r.w/2),Math.floor(r.y+r.h/2)];return{rect:n,pos:s,radius:[Math.floor(r.w/2),Math.floor(r.h/2)]}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),$t.updateNodeOpt(t)}}class fc extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Rectangle);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}transformData(){const t=Re(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:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};const T=this.transformData();let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({ps:T,workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=T.flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:T.flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var f;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.transformData(),n=this.fullLayer,s=this.draw({ps:r,workId:t,layer:n,isDrawing:!1});this.oldRect=s;const c=r.flat(1),l=hr(c);return(f=this.vNodes)==null||f.setInfo(t,{rect:s,op:c,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&$t.getCenterPos(s,n)}),{rect:s,type:vt.FullWork,dataType:Kt.Local,ops:l,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,ps:c,replaceId:l,isDrawEraserlines:f=!0}=t,{strokeColor:u,fillColor:v,thickness:h,zIndex:y,scale:T,rotate:O,translate:I,strokeType:P,eraserlines:w,lineCap:d,lineDash:m}=this.workOptions,p=n.worldPosition,S=n.worldScaling,{points:E,rect:R,pos:D}=this.computDrawPoints(c),U={close:!0,normalize:!0,points:E,lineWidth:h,fillColor:v!=="transparent"&&v||void 0,strokeColor:u,lineCap:d,lineDash:P===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*h]:P===Ee.LongDotted?[(m&&m[0]||1)*h,(m&&m[1]||2)*h]:void 0};let M={x:Math.floor(R.x*S[0]+p[0]-$t.SafeBorderPadding),y:Math.floor(R.y*S[1]+p[1]-$t.SafeBorderPadding),w:Math.floor(R.w*S[0]+2*$t.SafeBorderPadding),h:Math.floor(R.h*S[0]+2*$t.SafeBorderPadding)};const W=new Je({name:r,id:r,zIndex:y,pos:D,anchor:[.5,.5],size:[R.w,R.h],scale:T,rotate:O,translate:I}),$=new nn({...U,pos:[0,0]});if(W.appendChild($),s){const B=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:u,lineWidth:1,scale:[1/S[0],1/S[1]]});W.appendChild(B)}if(w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:w,pos:D,layer:n},f)),this.replace(n,l||r,W),T||O||I){const B=W.getBoundingClientRect();M={x:Math.floor(B.x-$t.SafeBorderPadding),y:Math.floor(B.y-$t.SafeBorderPadding),w:Math.floor(B.width+2*$t.SafeBorderPadding),h:Math.floor(B.height+2*$t.SafeBorderPadding)}}return this.isDelete&&W.setAttribute("opacity",0),M}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=te.Done}=t,l=(h=this.workId)==null?void 0:h.toString();if(!l)return;const f=[];for(let T=0;T<r.length;T+=3)f.push([r[T],r[T+1],r[T+2]]);const u=n?this.fullLayer:this.drawLayer||this.fullLayer,v=this.draw({ps:f,workId:l,layer:u,isDrawing:!1,replaceId:s,isDrawEraserlines:c===te.Done});return this.oldRect=v,(y=this.vNodes)==null||y.setInfo(l,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&$t.getCenterPos(v,u)}),v}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),$t.updateNodeOpt(t)}}class cc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Star);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,innerVerticeStep:y,innerRatio:T,scale:O,rotate:I,translate:P,strokeType:w,eraserlines:d,lineDash:m,lineCap:p}=this.workOptions,S=n.worldScaling,{rect:E,pos:R,points:D}=this.computDrawPoints(u,h,y,T),U={close:!0,points:D,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:p,lineDash:w===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*u]:w===Ee.LongDotted?[(m&&m[0]||1)*u,(m&&m[1]||2)*u]:void 0},M={name:r,id:r,zIndex:v,pos:R,anchor:[.5,.5],size:[E.w,E.h]};O&&(M.scale=O),I&&(M.rotate=I),P&&(M.translate=P);const W=new Je(M);if(s){const N=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/S[0],1/S[1]]});W.append(N)}const $=new nn({...U,pos:[0,0]});W.append($),d&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:d,pos:R,layer:n},c)),this.replace(n,r,W);const B=W.getBoundingClientRect();return this.isDelete&&W.setAttribute("opacity",0),{x:Math.floor(B.x-$t.SafeBorderPadding),y:Math.floor(B.y-$t.SafeBorderPadding),w:Math.floor(B.width+$t.SafeBorderPadding*2),h:Math.floor(B.height+$t.SafeBorderPadding*2)}}computDrawPoints(t,r,n,s){const c=Re(this.tmpPoints),l=[Math.floor(c.x+c.w/2),Math.floor(c.y+c.h/2)],f=Fc(c.w,c.h),u=Math.floor(Math.min(c.w,c.h)/2),v=s*u,h=[],y=2*Math.PI/r;for(let O=0;O<r;O++){const I=O*y-.5*Math.PI;let P,w;O%n===1?(P=v*f[0]*Math.cos(I),w=v*f[1]*Math.sin(I)):(P=u*f[0]*Math.cos(I),w=u*f[1]*Math.sin(I),h.push(P,w)),h.push(P,w)}return{rect:Re(this.tmpPoints,t),pos:l,points:h}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var P;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,innerVerticeStep:v,innerRatio:h,strokeType:y}=n,T=s.get(r.name),O=T==null?void 0:T.opt;let I=r;return r.tagName==="GROUP"&&(I=r.children[0]),c&&(I.setAttribute("strokeColor",c),O!=null&&O.strokeColor&&(O.strokeColor=c)),l&&(l==="transparent"?I.setAttribute("fillColor","rgba(0,0,0,0)"):I.setAttribute("fillColor",l),O!=null&&O.fillColor&&(O.fillColor=l)),f===Tt.Star&&(u&&(O.vertices=u),v&&(O.innerVerticeStep=v),h&&(O.innerRatio=h)),y&&(T!=null&&T.opt)&&((P=T.opt)!=null&&P.strokeType)&&(T.opt.strokeType=y),T&&s.setInfo(r.name,{...T,opt:O}),$t.updateNodeOpt(t)}}class uc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Polygon);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,{op:u,syncUnitTime:v}=r;v&&(this.syncUnitTime=v);const h=this.workId,y=u==null?void 0:u.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(u[0],u[1])],T=!1):T=this.updateTempPoints(u),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:h,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={type:vt.DrawWork,rect:P,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,scale:y,rotate:T,translate:O,strokeType:I,eraserlines:P,lineCap:w,lineDash:d}=this.workOptions,m=n.worldScaling,{rect:p,pos:S,points:E}=this.computDrawPoints(u,h),R={close:!0,points:E,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:I===Ee.Dotted?[d&&d[0]||1,(d&&d[1]||2)*u]:I===Ee.LongDotted?[(d&&d[0]||1)*u,(d&&d[1]||2)*u]:void 0},D={name:r,id:r,zIndex:v,pos:S,anchor:[.5,.5],size:[p.w,p.h]};y&&(D.scale=y),T&&(D.rotate=T),O&&(D.translate=O);const U=new Je(D);if(s){const $=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/m[0],1/m[1]]});U.append($)}const M=new nn({...R,pos:[0,0]});U.append(M),P&&(this.scaleType=Te.proportional,this.drawEraserlines({group:U,eraserlines:P,pos:S,layer:n},c)),this.replace(n,r,U);const W=U.getBoundingClientRect();return this.isDelete&&U.setAttribute("opacity",0),{x:Math.floor(W.x-$t.SafeBorderPadding),y:Math.floor(W.y-$t.SafeBorderPadding),w:Math.floor(W.width+$t.SafeBorderPadding*2),h:Math.floor(W.height+$t.SafeBorderPadding*2)}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=[Math.floor(n.x+n.w/2),Math.floor(n.y+n.h/2)],c=Fc(n.w,n.h),l=Math.floor(Math.min(n.w,n.h)/2),f=[],u=2*Math.PI/r;for(let h=0;h<r;h++){const y=h*u-.5*Math.PI,T=l*c[0]*Math.cos(y),O=l*c[1]*Math.sin(y);f.push(T,O)}return{rect:Re(this.tmpPoints,t),pos:s,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===Tt.Polygon&&u&&(y.vertices=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),$t.updateNodeOpt(t)}}class Xr{static bezier(e,t){const r=[];for(let n=0;n<t.length;n+=4){const s=t[n],c=t[n+1],l=t[n+2],f=t[n+3];s&&c&&l&&f?r.push(...Xr.getBezierPoints(e,s,c,l,f)):s&&c&&l?r.push(...Xr.getBezierPoints(e,s,c,l)):s&&c?r.push(...Xr.getBezierPoints(e,s,c)):s&&r.push(s)}return r}static getBezierPoints(e=10,t,r,n,s){let c=null;const l=[];!n&&!s?c=Xr.oneBezier:n&&!s?c=Xr.twoBezier:n&&s&&(c=Xr.threeBezier);for(let f=0;f<e;f++)c&&l.push(c(f/e,t,r,n,s));return s?l.push(s):n&&l.push(n),l}static oneBezier(e,t,r){const n=t.x+(r.x-t.x)*e,s=t.y+(r.y-t.y)*e;return new pt(n,s)}static twoBezier(e,t,r,n){const s=(1-e)*(1-e)*t.x+2*e*(1-e)*r.x+e*e*n.x,c=(1-e)*(1-e)*t.y+2*e*(1-e)*r.y+e*e*n.y;return new pt(s,c)}static threeBezier(e,t,r,n,s){const c=t.x*(1-e)*(1-e)*(1-e)+3*r.x*e*(1-e)*(1-e)+3*n.x*e*e*(1-e)+s.x*e*e*e,l=t.y*(1-e)*(1-e)*(1-e)+3*r.y*e*(1-e)*(1-e)+3*n.y*e*e*(1-e)+s.y*e*e*e;return new pt(c,l)}}class hc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.SpeechBalloon);dt(this,"ratio",.8);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var I;const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=(I=r==null?void 0:r.workId)==null?void 0:I.toString();if(!u)return{type:vt.None};const{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};let T;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;T=this.draw({workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(T,this.oldRect);this.oldRect=T;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const O=Zt(T,this.oldRect);return this.oldRect=T,{rect:O,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,fillColor:l,thickness:f,zIndex:u,placement:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:I,lineDash:P,lineCap:w}=this.workOptions,{rect:d,pos:m,points:p}=this.computDrawPoints(f,v),S={points:p.map(M=>M.XY),lineWidth:f,fillColor:l!=="transparent"&&l||void 0,strokeColor:c,normalize:!0,className:`${m[0]},${m[1]}`,close:!0,lineCap:w,lineDash:O===Ee.Dotted?[P&&P[0]||1,(P&&P[1]||2)*f]:O===Ee.LongDotted?[(P&&P[0]||1)*f,(P&&P[1]||2)*f]:void 0},E={name:r,id:r,zIndex:u,pos:m,anchor:[.5,.5],size:[d.w,d.h]};h&&(E.scale=h),y&&(E.rotate=y),T&&(E.translate=T);const R=new Je(E),D=new nn({...S,pos:[0,0]});R.append(D),I&&(this.scaleType=Te.proportional,this.drawEraserlines({group:R,eraserlines:I,pos:m,layer:n},s)),this.replace(n,r,R);const U=R.getBoundingClientRect();return this.isDelete&&R.setAttribute("opacity",0),{x:Math.floor(U.x-$t.SafeBorderPadding),y:Math.floor(U.y-$t.SafeBorderPadding),w:Math.floor(U.width+$t.SafeBorderPadding*2),h:Math.floor(U.height+$t.SafeBorderPadding*2)}}transformControlPoints(t){const r=Re(this.tmpPoints);switch(t){case"bottom":case"bottomLeft":case"bottomRight":{const n=r.y+r.h*this.ratio;return[new pt(r.x,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,n,0),new pt(r.x,n,0)]}case"top":case"topLeft":case"topRight":{const n=r.y+r.h*(1-this.ratio);return[new pt(r.x,n,0),new pt(r.x+r.w,n,0),new pt(r.x+r.w,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}case"left":case"leftBottom":case"leftTop":{const n=r.x+r.w*(1-this.ratio);return[new pt(n,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,r.y+r.h,0),new pt(n,r.y+r.h,0)]}case"right":case"rightBottom":case"rightTop":{const n=r.x+r.w*this.ratio;return[new pt(r.x,r.y,0),new pt(n,r.y,0),new pt(n,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=this.transformControlPoints(r),c=Math.floor(n.w*.1),l=Math.floor(n.h*.1),f=[],u=pt.Add(s[0],new pt(0,l,0)),v=pt.Add(s[0],new pt(c,0,0)),h=Xr.getBezierPoints(10,u,s[0],v),y=pt.Sub(s[1],new pt(c,0,0)),T=pt.Add(s[1],new pt(0,l,0)),O=Xr.getBezierPoints(10,y,s[1],T),I=pt.Sub(s[2],new pt(0,l,0)),P=pt.Sub(s[2],new pt(c,0,0)),w=Xr.getBezierPoints(10,I,s[2],P),d=pt.Add(s[3],new pt(c,0,0)),m=pt.Sub(s[3],new pt(0,l,0)),p=Xr.getBezierPoints(10,d,s[3],m),S=c*(1-this.ratio)*10,E=l*(1-this.ratio)*10;switch(r){case"bottom":{const U=pt.Sub(s[2],new pt(c*5-S/2,0,0)),M=pt.Sub(s[2],new pt(c*5,-E,0)),W=pt.Sub(s[2],new pt(c*5+S/2,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"bottomRight":{const U=pt.Sub(s[2],new pt(c*1.1,0,0)),M=pt.Sub(s[2],new pt(c*1.1+S/2,-E,0)),W=pt.Sub(s[2],new pt(c*1.1+S,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"bottomLeft":{const U=pt.Add(s[3],new pt(c*1.1+S,0,0)),M=pt.Add(s[3],new pt(c*1.1+S/2,E,0)),W=pt.Add(s[3],new pt(c*1.1,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"top":{const U=pt.Sub(s[1],new pt(c*5-S/2,0,0)),M=pt.Sub(s[1],new pt(c*5,E,0)),W=pt.Sub(s[1],new pt(c*5+S/2,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"topRight":{const U=pt.Sub(s[1],new pt(c*1.1,0,0)),M=pt.Sub(s[1],new pt(c*1.1+S/2,E,0)),W=pt.Sub(s[1],new pt(c*1.1+S,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"topLeft":{const U=pt.Add(s[0],new pt(c*1.1+S,0,0)),M=pt.Add(s[0],new pt(c*1.1+S/2,-E,0)),W=pt.Add(s[0],new pt(c*1.1,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"left":{const U=pt.Add(s[0],new pt(0,l*5-E/2,0)),M=pt.Add(s[0],new pt(-S,l*5,0)),W=pt.Add(s[0],new pt(0,l*5+E/2,0));f.push(M,U,...h,...O,...w,...p,W);break}case"leftTop":{const U=pt.Add(s[0],new pt(0,l*1.1,0)),M=pt.Add(s[0],new pt(-S,l*1.1+E/2,0)),W=pt.Add(s[0],new pt(0,l*1.1+E,0));f.push(M,U,...h,...O,...w,...p,W);break}case"leftBottom":{const U=pt.Sub(s[3],new pt(0,l*1.1+E,0)),M=pt.Sub(s[3],new pt(S,l*1.1+E/2,0)),W=pt.Sub(s[3],new pt(0,l*1.1,0));f.push(M,U,...h,...O,...w,...p,W);break}case"right":{const U=pt.Add(s[1],new pt(0,l*5-E/2,0)),M=pt.Add(s[1],new pt(S,l*5,0)),W=pt.Add(s[1],new pt(0,l*5+E/2,0));f.push(M,W,...w,...p,...h,...O,U);break}case"rightTop":{const U=pt.Add(s[1],new pt(0,l*1.1,0)),M=pt.Add(s[1],new pt(S,l*1.1+E/2,0)),W=pt.Add(s[1],new pt(0,l*1.1+E,0));f.push(M,W,...w,...p,...h,...O,U);break}case"rightBottom":{const U=pt.Sub(s[2],new pt(0,l*1.1+E,0)),M=pt.Sub(s[2],new pt(-S,l*1.1+E/2,0)),W=pt.Sub(s[2],new pt(0,l*1.1,0));f.push(M,W,...w,...p,...h,...O,U);break}}const R=Re(this.tmpPoints,t),D=[Math.floor(R.x+R.w/2),Math.floor(R.y+R.h/2)];return{rect:R,pos:D,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,placement:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===Tt.SpeechBalloon&&u&&(y.placement=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),$t.updateNodeOpt(t)}}var cx=Kn,ux=on,hx="[object Boolean]";function dx(i){return i===!0||i===!1||ux(i)&&cx(i)==hx}var px=dx,Bn=mn(px);class Li extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Image);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=Li.getScaleType(this.workOptions)}consume(){return{type:vt.None}}consumeAll(){return{type:vt.None}}draw(t){const{layer:r,workId:n,replaceId:s,imageBitmap:c}=t,{centerX:l,centerY:f,width:u,height:v,rotate:h,zIndex:y,eraserlines:T}=this.workOptions,O=new Je({anchor:[.5,.5],pos:[l,f],name:n,size:[u,v],zIndex:y,rotate:h}),I={anchor:[.5,.5],pos:[0,0],size:[u,v],texture:c};c||(I.bgcolor="rgba(0,0,0,0.3)");const P=new Fl(I);O.append(P),T&&this.drawEraserlines({group:O,eraserlines:T,pos:[l,f],layer:r}),this.replace(r,s||n,O);const w=O.getBoundingClientRect();if(w)return{x:Math.floor(w.x-$t.SafeBorderPadding),y:Math.floor(w.y-$t.SafeBorderPadding),w:Math.floor(w.width+$t.SafeBorderPadding*2),h:Math.floor(w.height+$t.SafeBorderPadding*2)}}consumeService(){}async consumeServiceAsync(t){var v,h,y,T;const{isFullWork:r,replaceId:n,worker:s}=t,{src:c,uuid:l}=this.workOptions,f=((v=this.workId)==null?void 0:v.toString())||l,u=r?this.fullLayer:this.drawLayer||this.fullLayer;if(c){const O=await s.loadImageBitMap({toolsType:this.toolsType,opt:this.workOptions,workId:f,isSubWorker:s instanceof _c});if(O){const I=this.draw({workId:f,layer:u,replaceId:n,imageBitmap:O});return this.oldRect=f&&((y=(h=this.vNodes)==null?void 0:h.get(f))==null?void 0:y.rect)||void 0,(T=this.vNodes)==null||T.setInfo(f,{rect:I,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:I&&$t.getCenterPos(I,u)}),I}}}clearTmpPoints(){this.tmpPoints.length=0}static getScaleType(t){const{uniformScale:r,rotate:n}=t;return r!==!1||n&&Math.abs(n)%90>0?Te.proportional:Te.all}static updateNodeOpt(t){const{node:r,opt:n,vNodes:s,targetNode:c}=t,{translate:l,originPoint:f,scenePoint:u,scale:v,angle:h,isLocked:y,zIndex:T,strokeColor:O}=n,I=c&&ar(c)||s.get(r.name);if(!I)return;const P=r.parent;if(P){if(O&&(I.opt.strokeColor=O),Qe(T)&&(r.setAttribute("zIndex",T),I.opt.zIndex=T),Bn(y)&&(I.opt.locked=y),f&&u&&v&&l){const{centerX:w,centerY:d,width:m,height:p,uniformScale:S}=I.opt,E=S!==!1?[v[0],v[0]]:v,R=[w,d],D=[w,d];Es(D,u,E,l);const U=[D[0]-R[0],D[1]-R[1]];if(I.centerPos=[I.centerPos[0]+U[0],I.centerPos[1]+U[1]],I.opt.width=Math.round(m*E[0]),I.opt.height=Math.round(p*E[1]),I.opt.centerX=D[0],I.opt.centerY=D[1],I.opt.eraserlines)for(const M of I.opt.eraserlines){const{op:W,thickness:$}=M;M.thickness=Math.round($*Math.max(v[0],v[1]));for(let B=0;B<W.length;B++)na(W[B],u,v,l)}}else if(l){if(I.opt.centerX=I.opt.centerX+l[0],I.opt.centerY=I.opt.centerY+l[1],I.centerPos=[I.centerPos[0]+l[0],I.centerPos[1]+l[1]],I.opt.eraserlines)for(const w of I.opt.eraserlines){const{op:d}=w;for(let m=0;m<d.length;m++){const p=d[m].map((S,E)=>E%2?S+l[1]:S+l[0]);w.op[m]=p}}}else if(Qe(h))if(I.opt.rotate=h,I.scaleType=Li.getScaleType(I.opt),c){const w=ra(I.rect,h);I.rect=w}else{const w=$t.getRectFromLayer(P,r.name);I.rect=w||I.rect}return I&&s.setInfo(r.name,I),I==null?void 0:I.rect}}}class dc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",Tt.Straight);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"straightTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.straightTipWidth=this.workOptions.thickness/2,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineCap:O,lineDash:I}=this.workOptions,P=n.worldPosition,w=n.worldScaling,{d,rect:m,isDot:p}=this.computDrawPoints(l,y),S=[m.x+m.w/2,m.y+m.h/2],E=new Je({pos:S,anchor:[.5,.5],size:[m.w,m.h],name:r,id:r,normalize:!0,zIndex:f}),R={pos:[0,0],normalize:!0,d,fillColor:c,strokeColor:c,lineDash:p?void 0:y===Ee.Dotted?[I&&I[0]||1,(I&&I[1]||2)*l]:y===Ee.LongDotted?[(I&&I[0]||1)*l,(I&&I[1]||2)*l]:void 0,lineCap:p?void 0:O,lineWidth:y===Ee.Normal||p?0:l};u&&(R.scale=u),v&&(R.rotate=v),h&&(R.translate=h);const D=new gn(R);E.append(D),T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:E,eraserlines:T,pos:S,layer:n},s)),this.replace(n,r,E);let U={x:Math.floor(m.x*w[0]+P[0]-$t.SafeBorderPadding),y:Math.floor(m.y*w[1]+P[1]-$t.SafeBorderPadding),w:Math.floor(m.w*w[0]+2*$t.SafeBorderPadding),h:Math.floor(m.h*w[1]+2*$t.SafeBorderPadding)};if(v||u||h){const M=D.getBoundingClientRect();U={x:Math.floor(M.x-$t.SafeBorderPadding),y:Math.floor(M.y-$t.SafeBorderPadding),w:Math.floor(M.width+$t.SafeBorderPadding*2),h:Math.floor(M.height+$t.SafeBorderPadding*2)}}return this.isDelete&&E.setAttribute("opacity",0),U}computDrawPoints(t,r){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.straightTipWidth?this.computFullPoints(t,r):this.computDotPoints(t)}computFullPoints(t,r){const n=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),s=pt.Per(n).mul(t/2),c=Jt.Sub(this.tmpPoints[0],s),l=Jt.Add(this.tmpPoints[0],s),f=Jt.Sub(this.tmpPoints[1],s),u=Jt.Add(this.tmpPoints[1],s),v=Jt.GetSemicircleStroke(this.tmpPoints[1],f,-1,8),h=Jt.GetSemicircleStroke(this.tmpPoints[0],l,-1,8),y=[c,f,...v,u,l,...h];let T;return r!==Ee.Normal?T=yn(this.tmpPoints,!1):T=yn(y,!0),{d:T,rect:Re(y),isDot:!1,pos:this.tmpPoints[0].XY}}computDotPoints(t){const r=Jt.GetDotStroke(this.tmpPoints[0],t/2,8);return{d:yn(r,!0),rect:Re(r),isDot:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),$t.updateNodeOpt(t)}}const ri="cursorhover",pc=20,Wn="mainView";var vc={exports:{}},Ge={},qo={exports:{}},Fn={};function gc(){var i={};return i["align-content"]=!1,i["align-items"]=!1,i["align-self"]=!1,i["alignment-adjust"]=!1,i["alignment-baseline"]=!1,i.all=!1,i["anchor-point"]=!1,i.animation=!1,i["animation-delay"]=!1,i["animation-direction"]=!1,i["animation-duration"]=!1,i["animation-fill-mode"]=!1,i["animation-iteration-count"]=!1,i["animation-name"]=!1,i["animation-play-state"]=!1,i["animation-timing-function"]=!1,i.azimuth=!1,i["backface-visibility"]=!1,i.background=!0,i["background-attachment"]=!0,i["background-clip"]=!0,i["background-color"]=!0,i["background-image"]=!0,i["background-origin"]=!0,i["background-position"]=!0,i["background-repeat"]=!0,i["background-size"]=!0,i["baseline-shift"]=!1,i.binding=!1,i.bleed=!1,i["bookmark-label"]=!1,i["bookmark-level"]=!1,i["bookmark-state"]=!1,i.border=!0,i["border-bottom"]=!0,i["border-bottom-color"]=!0,i["border-bottom-left-radius"]=!0,i["border-bottom-right-radius"]=!0,i["border-bottom-style"]=!0,i["border-bottom-width"]=!0,i["border-collapse"]=!0,i["border-color"]=!0,i["border-image"]=!0,i["border-image-outset"]=!0,i["border-image-repeat"]=!0,i["border-image-slice"]=!0,i["border-image-source"]=!0,i["border-image-width"]=!0,i["border-left"]=!0,i["border-left-color"]=!0,i["border-left-style"]=!0,i["border-left-width"]=!0,i["border-radius"]=!0,i["border-right"]=!0,i["border-right-color"]=!0,i["border-right-style"]=!0,i["border-right-width"]=!0,i["border-spacing"]=!0,i["border-style"]=!0,i["border-top"]=!0,i["border-top-color"]=!0,i["border-top-left-radius"]=!0,i["border-top-right-radius"]=!0,i["border-top-style"]=!0,i["border-top-width"]=!0,i["border-width"]=!0,i.bottom=!1,i["box-decoration-break"]=!0,i["box-shadow"]=!0,i["box-sizing"]=!0,i["box-snap"]=!0,i["box-suppress"]=!0,i["break-after"]=!0,i["break-before"]=!0,i["break-inside"]=!0,i["caption-side"]=!1,i.chains=!1,i.clear=!0,i.clip=!1,i["clip-path"]=!1,i["clip-rule"]=!1,i.color=!0,i["color-interpolation-filters"]=!0,i["column-count"]=!1,i["column-fill"]=!1,i["column-gap"]=!1,i["column-rule"]=!1,i["column-rule-color"]=!1,i["column-rule-style"]=!1,i["column-rule-width"]=!1,i["column-span"]=!1,i["column-width"]=!1,i.columns=!1,i.contain=!1,i.content=!1,i["counter-increment"]=!1,i["counter-reset"]=!1,i["counter-set"]=!1,i.crop=!1,i.cue=!1,i["cue-after"]=!1,i["cue-before"]=!1,i.cursor=!1,i.direction=!1,i.display=!0,i["display-inside"]=!0,i["display-list"]=!0,i["display-outside"]=!0,i["dominant-baseline"]=!1,i.elevation=!1,i["empty-cells"]=!1,i.filter=!1,i.flex=!1,i["flex-basis"]=!1,i["flex-direction"]=!1,i["flex-flow"]=!1,i["flex-grow"]=!1,i["flex-shrink"]=!1,i["flex-wrap"]=!1,i.float=!1,i["float-offset"]=!1,i["flood-color"]=!1,i["flood-opacity"]=!1,i["flow-from"]=!1,i["flow-into"]=!1,i.font=!0,i["font-family"]=!0,i["font-feature-settings"]=!0,i["font-kerning"]=!0,i["font-language-override"]=!0,i["font-size"]=!0,i["font-size-adjust"]=!0,i["font-stretch"]=!0,i["font-style"]=!0,i["font-synthesis"]=!0,i["font-variant"]=!0,i["font-variant-alternates"]=!0,i["font-variant-caps"]=!0,i["font-variant-east-asian"]=!0,i["font-variant-ligatures"]=!0,i["font-variant-numeric"]=!0,i["font-variant-position"]=!0,i["font-weight"]=!0,i.grid=!1,i["grid-area"]=!1,i["grid-auto-columns"]=!1,i["grid-auto-flow"]=!1,i["grid-auto-rows"]=!1,i["grid-column"]=!1,i["grid-column-end"]=!1,i["grid-column-start"]=!1,i["grid-row"]=!1,i["grid-row-end"]=!1,i["grid-row-start"]=!1,i["grid-template"]=!1,i["grid-template-areas"]=!1,i["grid-template-columns"]=!1,i["grid-template-rows"]=!1,i["hanging-punctuation"]=!1,i.height=!0,i.hyphens=!1,i.icon=!1,i["image-orientation"]=!1,i["image-resolution"]=!1,i["ime-mode"]=!1,i["initial-letters"]=!1,i["inline-box-align"]=!1,i["justify-content"]=!1,i["justify-items"]=!1,i["justify-self"]=!1,i.left=!1,i["letter-spacing"]=!0,i["lighting-color"]=!0,i["line-box-contain"]=!1,i["line-break"]=!1,i["line-grid"]=!1,i["line-height"]=!1,i["line-snap"]=!1,i["line-stacking"]=!1,i["line-stacking-ruby"]=!1,i["line-stacking-shift"]=!1,i["line-stacking-strategy"]=!1,i["list-style"]=!0,i["list-style-image"]=!0,i["list-style-position"]=!0,i["list-style-type"]=!0,i.margin=!0,i["margin-bottom"]=!0,i["margin-left"]=!0,i["margin-right"]=!0,i["margin-top"]=!0,i["marker-offset"]=!1,i["marker-side"]=!1,i.marks=!1,i.mask=!1,i["mask-box"]=!1,i["mask-box-outset"]=!1,i["mask-box-repeat"]=!1,i["mask-box-slice"]=!1,i["mask-box-source"]=!1,i["mask-box-width"]=!1,i["mask-clip"]=!1,i["mask-image"]=!1,i["mask-origin"]=!1,i["mask-position"]=!1,i["mask-repeat"]=!1,i["mask-size"]=!1,i["mask-source-type"]=!1,i["mask-type"]=!1,i["max-height"]=!0,i["max-lines"]=!1,i["max-width"]=!0,i["min-height"]=!0,i["min-width"]=!0,i["move-to"]=!1,i["nav-down"]=!1,i["nav-index"]=!1,i["nav-left"]=!1,i["nav-right"]=!1,i["nav-up"]=!1,i["object-fit"]=!1,i["object-position"]=!1,i.opacity=!1,i.order=!1,i.orphans=!1,i.outline=!1,i["outline-color"]=!1,i["outline-offset"]=!1,i["outline-style"]=!1,i["outline-width"]=!1,i.overflow=!1,i["overflow-wrap"]=!1,i["overflow-x"]=!1,i["overflow-y"]=!1,i.padding=!0,i["padding-bottom"]=!0,i["padding-left"]=!0,i["padding-right"]=!0,i["padding-top"]=!0,i.page=!1,i["page-break-after"]=!1,i["page-break-before"]=!1,i["page-break-inside"]=!1,i["page-policy"]=!1,i.pause=!1,i["pause-after"]=!1,i["pause-before"]=!1,i.perspective=!1,i["perspective-origin"]=!1,i.pitch=!1,i["pitch-range"]=!1,i["play-during"]=!1,i.position=!1,i["presentation-level"]=!1,i.quotes=!1,i["region-fragment"]=!1,i.resize=!1,i.rest=!1,i["rest-after"]=!1,i["rest-before"]=!1,i.richness=!1,i.right=!1,i.rotation=!1,i["rotation-point"]=!1,i["ruby-align"]=!1,i["ruby-merge"]=!1,i["ruby-position"]=!1,i["shape-image-threshold"]=!1,i["shape-outside"]=!1,i["shape-margin"]=!1,i.size=!1,i.speak=!1,i["speak-as"]=!1,i["speak-header"]=!1,i["speak-numeral"]=!1,i["speak-punctuation"]=!1,i["speech-rate"]=!1,i.stress=!1,i["string-set"]=!1,i["tab-size"]=!1,i["table-layout"]=!1,i["text-align"]=!0,i["text-align-last"]=!0,i["text-combine-upright"]=!0,i["text-decoration"]=!0,i["text-decoration-color"]=!0,i["text-decoration-line"]=!0,i["text-decoration-skip"]=!0,i["text-decoration-style"]=!0,i["text-emphasis"]=!0,i["text-emphasis-color"]=!0,i["text-emphasis-position"]=!0,i["text-emphasis-style"]=!0,i["text-height"]=!0,i["text-indent"]=!0,i["text-justify"]=!0,i["text-orientation"]=!0,i["text-overflow"]=!0,i["text-shadow"]=!0,i["text-space-collapse"]=!0,i["text-transform"]=!0,i["text-underline-position"]=!0,i["text-wrap"]=!0,i.top=!1,i.transform=!1,i["transform-origin"]=!1,i["transform-style"]=!1,i.transition=!1,i["transition-delay"]=!1,i["transition-duration"]=!1,i["transition-property"]=!1,i["transition-timing-function"]=!1,i["unicode-bidi"]=!1,i["vertical-align"]=!1,i.visibility=!1,i["voice-balance"]=!1,i["voice-duration"]=!1,i["voice-family"]=!1,i["voice-pitch"]=!1,i["voice-range"]=!1,i["voice-rate"]=!1,i["voice-stress"]=!1,i["voice-volume"]=!1,i.volume=!1,i["white-space"]=!1,i.widows=!1,i.width=!0,i["will-change"]=!1,i["word-break"]=!0,i["word-spacing"]=!0,i["word-wrap"]=!0,i["wrap-flow"]=!1,i["wrap-through"]=!1,i["writing-mode"]=!1,i["z-index"]=!1,i}function vx(i,e,t){}function gx(i,e,t){}var mx=/javascript\s*\:/img;function yx(i,e){return mx.test(e)?"":e}Fn.whiteList=gc(),Fn.getDefaultWhiteList=gc,Fn.onAttr=vx,Fn.onIgnoreAttr=gx,Fn.safeAttrValue=yx;var Px={indexOf:function(i,e){var t,r;if(Array.prototype.indexOf)return i.indexOf(e);for(t=0,r=i.length;t<r;t++)if(i[t]===e)return t;return-1},forEach:function(i,e,t){var r,n;if(Array.prototype.forEach)return i.forEach(e,t);for(r=0,n=i.length;r<n;r++)e.call(t,i[r],r,i)},trim:function(i){return String.prototype.trim?i.trim():i.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(i){return String.prototype.trimRight?i.trimRight():i.replace(/(\s*$)/g,"")}},Ri=Px;function Sx(i,e){i=Ri.trimRight(i),i[i.length-1]!==";"&&(i+=";");var t=i.length,r=!1,n=0,s=0,c="";function l(){if(!r){var v=Ri.trim(i.slice(n,s)),h=v.indexOf(":");if(h!==-1){var y=Ri.trim(v.slice(0,h)),T=Ri.trim(v.slice(h+1));if(y){var O=e(n,c.length,y,T,v);O&&(c+=O+"; ")}}}n=s+1}for(;s<t;s++){var f=i[s];if(f==="/"&&i[s+1]==="*"){var u=i.indexOf("*/",s+2);if(u===-1)break;s=u+1,n=s+1,r=!1}else f==="("?r=!0:f===")"?r=!1:f===";"?r||l():f===`
566
+ `||d===" "||d==="\f"||d==="\r"}function I(d,m){var p=[];if(d=P(p,""+d,m),d!=="")throw new Error("Unmatched selector: "+d);return p}function P(d,m,p){var S=[],E=!1;function R(){var ft=m.match(r);if(!ft)throw new Error("Expected name, found "+m);var mt=ft[0];return m=m.substr(mt.length),T(mt)}function D(ft){for(;O(m.charAt(ft));)ft++;m=m.substr(ft)}function U(ft){for(var mt=0;m.charAt(--ft)==="\\";)mt++;return(mt&1)===1}for(D(0);m!=="";){var M=m.charAt(0);if(O(M))E=!0,D(1);else if(M in l)S.push({type:l[M]}),E=!1,D(1);else if(M===","){if(S.length===0)throw new Error("Empty sub-selector");d.push(S),S=[],E=!1,D(1)}else if(E&&(S.length>0&&S.push({type:"descendant"}),E=!1),M==="*")m=m.substr(1),S.push({type:"universal"});else if(M in f){var W=f[M],$=W[0],B=W[1];m=m.substr(1),S.push({type:"attribute",name:$,action:B,value:R(),ignoreCase:!1})}else if(M==="["){m=m.substr(1);var N=m.match(s);if(!N)throw new Error("Malformed attribute selector: "+m);m=m.substr(N[0].length);var z=T(N[1]);(!p||("lowerCaseAttributeNames"in p?p.lowerCaseAttributeNames:!p.xmlMode))&&(z=z.toLowerCase()),S.push({type:"attribute",name:z,action:c[N[2]],value:T(N[4]||N[5]||""),ignoreCase:!!N[6]})}else if(M===":"){if(m.charAt(1)===":"){m=m.substr(2),S.push({type:"pseudo-element",name:R().toLowerCase()});continue}m=m.substr(1);var J=R().toLowerCase(),N=null;if(m.charAt(0)==="(")if(u.has(J)){var et=m.charAt(1),at=h.has(et);if(m=m.substr(at?2:1),N=[],m=P(N,m,p),at){if(m.charAt(0)!==et)throw new Error("Unmatched quotes in :"+J);m=m.substr(1)}if(m.charAt(0)!==")")throw new Error("Missing closing parenthesis in :"+J+" ("+m+")");m=m.substr(1)}else{for(var ct=1,V=1;V>0&&ct<m.length;ct++)m.charAt(ct)==="("&&!U(ct)?V++:m.charAt(ct)===")"&&!U(ct)&&V--;if(V)throw new Error("Parenthesis not matched");if(N=m.substr(1,ct-2),m=m.substr(ct),v.has(J)){var et=N.charAt(0);et===N.slice(-1)&&h.has(et)&&(N=N.slice(1,-1)),N=T(N)}}S.push({type:"pseudo",name:J,data:N})}else if(r.test(m)){var Q=R();(!p||("lowerCaseTags"in p?p.lowerCaseTags:!p.xmlMode))&&(Q=Q.toLowerCase()),S.push({type:"tag",name:Q})}else return S.length&&S[S.length-1].type==="descendant"&&S.pop(),w(d,S),m}return w(d,S),m}function w(d,m){if(d.length>0&&m.length===0)throw new Error("Empty sub-selector");d.push(m)}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r={equals:"",element:"~",start:"^",end:"$",any:"*",not:"!",hyphen:"|"};function n(f){return f.map(s).join(", ")}e.default=n;function s(f){return f.map(c).join("")}function c(f){switch(f.type){case"child":return" > ";case"parent":return" < ";case"sibling":return" ~ ";case"adjacent":return" + ";case"descendant":return" ";case"universal":return"*";case"tag":return f.name;case"pseudo-element":return"::"+f.name;case"pseudo":return f.data===null?":"+f.name:typeof f.data=="string"?":"+f.name+"("+f.data+")":":"+f.name+"("+n(f.data)+")";case"attribute":return f.action==="exists"?"["+f.name+"]":f.name==="id"&&f.action==="equals"&&!f.ignoreCase?"#"+f.value:f.name==="class"&&f.action==="element"&&!f.ignoreCase?"."+f.value:"["+f.name+r[f.action]+"='"+f.value+"'"+(f.ignoreCase?"i":"")+"]";default:throw new Error("Unknown type")}}function l(f){return f}},function(i,e,t){i.exports=s;var r=t(279),n={__proto__:null,exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function s(l){for(var f=l.map(c),u=1;u<l.length;u++){var v=f[u];if(!(v<0))for(var h=u-1;h>=0&&v<f[h];h--){var y=l[h+1];l[h+1]=l[h],l[h]=y,f[h+1]=f[h],f[h]=v}}}function c(l){var f=r[l.type];if(f===r.attribute)f=n[l.action],f===n.equals&&l.name==="id"&&(f=9),l.ignoreCase&&(f>>=1);else if(f===r.pseudo)if(!l.data)f=3;else if(l.name==="has"||l.name==="contains")f=0;else if(l.name==="matches"||l.name==="not"){f=0;for(var u=0;u<l.data.length;u++)if(l.data[u].length===1){var v=c(l.data[u][0]);if(v===0){f=0;break}v>f&&(f=v)}l.data.length>1&&f>0&&(f-=1)}else f=1;return f}},function(i){i.exports=JSON.parse('{"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1}')},function(i,e,t){var r=t(281),n=t(282);i.exports={__proto__:null,attribute:r.compile,pseudo:n.compile,tag:function(s,c,l){var f=c.name,u=l.adapter;return function(h){return u.getName(h)===f&&s(h)}},descendant:function(s,c,l){var f=typeof WeakSet<"u"?new WeakSet:null,u=l.adapter;return function(h){for(var y=!1;!y&&(h=u.getParent(h));)(!f||!f.has(h))&&(y=s(h),!y&&f&&f.add(h));return y}},_flexibleDescendant:function(s,c,l){var f=l.adapter;return function(v){for(var h=s(v);!h&&(v=f.getParent(v));)h=s(v);return h}},parent:function(s,c,l){if(l&&l.strict)throw new Error("Parent selector isn't part of CSS3");var f=l.adapter;return function(h){return f.getChildren(h).some(u)};function u(v){return f.isTag(v)&&s(v)}},child:function(s,c,l){var f=l.adapter;return function(v){var h=f.getParent(v);return!!h&&s(h)}},sibling:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y=0;y<h.length;y++)if(f.isTag(h[y])){if(h[y]===v)break;if(s(h[y]))return!0}return!1}},adjacent:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y,T=0;T<h.length;T++)if(f.isTag(h[T])){if(h[T]===v)break;y=h[T]}return!!y&&s(y)}},universal:function(s){return s}}},function(i,e,t){var r=t(273).falseFunc,n=/[-[\]{}()*+?.,\\^$|#\s]/g,s={__proto__:null,equals:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()===v&&c(T)}):function(T){return h.getAttributeValue(T,u)===v&&c(T)}},hyphen:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&(I.length===h||I.charAt(h)==="-")&&I.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h)===v&&(I.length===h||I.charAt(h)==="-")&&c(O)}},element:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(/\s/.test(v))return r;v=v.replace(n,"\\$&");var y="(?:^|\\s)"+v+"(?:$|\\s)",T=l.ignoreCase?"i":"",O=new RegExp(y,T);return function(P){var w=h.getAttributeValue(P,u);return w!=null&&O.test(w)&&c(P)}},exists:function(c,l,f){var u=l.name,v=f.adapter;return function(y){return v.hasAttrib(y,u)&&c(y)}},start:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(0,h)===v&&c(O)}},end:function(c,l,f){var u=l.name,v=l.value,h=-v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(h).toLowerCase()===v&&c(O)}):function(O){var I=y.getAttributeValue(O,u);return I!=null&&I.substr(h)===v&&c(O)}},any:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(v==="")return r;if(l.ignoreCase){var y=new RegExp(v.replace(n,"\\$&"),"i");return function(O){var I=h.getAttributeValue(O,u);return I!=null&&y.test(I)&&c(O)}}return function(O){var I=h.getAttributeValue(O,u);return I!=null&&I.indexOf(v)>=0&&c(O)}},not:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return v===""?function(T){return!!h.getAttributeValue(T,u)&&c(T)}:l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()!==v&&c(T)}):function(T){return h.getAttributeValue(T,u)!==v&&c(T)}}};i.exports={compile:function(c,l,f){if(f&&f.strict&&(l.ignoreCase||l.action==="not"))throw new Error("Unsupported attribute selector");return s[l.action](c,l,f)},rules:s}},function(i,e,t){var r=t(283),n=t(273),s=t(281),c=n.trueFunc,l=n.falseFunc,f=s.rules.equals;function u(w,d){var m={name:w,value:d};return function(S,E,R){return f(S,m,R)}}function v(w,d){return function(m){return!!d.getParent(m)&&w(m)}}var h={contains:function(w,d,m){var p=m.adapter;return function(E){return w(E)&&p.getText(E).indexOf(d)>=0}},icontains:function(w,d,m){var p=d.toLowerCase(),S=m.adapter;return function(R){return w(R)&&S.getText(R).toLowerCase().indexOf(p)>=0}},"nth-child":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=0;U<D.length;U++)if(S.isTag(D[U])){if(D[U]===R)break;M++}return p(M)&&w(R)}},"nth-last-child":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=D.length-1;M>=0;M--)if(S.isTag(D[M])){if(D[M]===R)break;U++}return p(U)&&w(R)}},"nth-of-type":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=0;M<D.length;M++)if(S.isTag(D[M])){if(D[M]===R)break;S.getName(D[M])===S.getName(R)&&U++}return p(U)&&w(R)}},"nth-last-of-type":function(w,d,m){var p=r(d),S=m.adapter;return p===l?p:p===c?v(w,S):function(R){for(var D=S.getSiblings(R),U=0,M=D.length-1;M>=0;M--)if(S.isTag(D[M])){if(D[M]===R)break;S.getName(D[M])===S.getName(R)&&U++}return p(U)&&w(R)}},root:function(w,d,m){var p=m.adapter;return function(S){return!p.getParent(S)&&w(S)}},scope:function(w,d,m,p){var S=m.adapter;if(!p||p.length===0)return h.root(w,d,m);function E(R,D){return typeof S.equals=="function"?S.equals(R,D):R===D}return p.length===1?function(R){return E(p[0],R)&&w(R)}:function(R){return p.indexOf(R)>=0&&w(R)}},checkbox:u("type","checkbox"),file:u("type","file"),password:u("type","password"),radio:u("type","radio"),reset:u("type","reset"),image:u("type","image"),submit:u("type","submit"),hover:function(w,d,m){var p=m.adapter;return typeof p.isHovered=="function"?function(E){return w(E)&&p.isHovered(E)}:l},visited:function(w,d,m){var p=m.adapter;return typeof p.isVisited=="function"?function(E){return w(E)&&p.isVisited(E)}:l},active:function(w,d,m){var p=m.adapter;return typeof p.isActive=="function"?function(E){return w(E)&&p.isActive(E)}:l}};function y(w,d){for(var m=0;w&&m<w.length;m++)if(d.isTag(w[m]))return w[m]}var T={empty:function(w,d){return!d.getChildren(w).some(function(m){return d.isTag(m)||m.type==="text"})},"first-child":function(w,d){return y(d.getSiblings(w),d)===w},"last-child":function(w,d){for(var m=d.getSiblings(w),p=m.length-1;p>=0;p--){if(m[p]===w)return!0;if(d.isTag(m[p]))break}return!1},"first-of-type":function(w,d){for(var m=d.getSiblings(w),p=0;p<m.length;p++)if(d.isTag(m[p])){if(m[p]===w)return!0;if(d.getName(m[p])===d.getName(w))break}return!1},"last-of-type":function(w,d){for(var m=d.getSiblings(w),p=m.length-1;p>=0;p--)if(d.isTag(m[p])){if(m[p]===w)return!0;if(d.getName(m[p])===d.getName(w))break}return!1},"only-of-type":function(w,d){for(var m=d.getSiblings(w),p=0,S=m.length;p<S;p++)if(d.isTag(m[p])){if(m[p]===w)continue;if(d.getName(m[p])===d.getName(w))return!1}return!0},"only-child":function(w,d){for(var m=d.getSiblings(w),p=0;p<m.length;p++)if(d.isTag(m[p])&&m[p]!==w)return!1;return!0},link:function(w,d){return d.hasAttrib(w,"href")},selected:function(w,d){if(d.hasAttrib(w,"selected"))return!0;if(d.getName(w)!=="option")return!1;var m=d.getParent(w);if(!m||d.getName(m)!=="select"||d.hasAttrib(m,"multiple"))return!1;for(var p=d.getChildren(m),S=!1,E=0;E<p.length;E++)if(d.isTag(p[E]))if(p[E]===w)S=!0;else if(S){if(d.hasAttrib(p[E],"selected"))return!1}else return!1;return S},disabled:function(w,d){return d.hasAttrib(w,"disabled")},enabled:function(w,d){return!d.hasAttrib(w,"disabled")},checked:function(w,d){return d.hasAttrib(w,"checked")||T.selected(w,d)},required:function(w,d){return d.hasAttrib(w,"required")},optional:function(w,d){return!d.hasAttrib(w,"required")},parent:function(w,d){return!T.empty(w,d)},header:O(["h1","h2","h3","h4","h5","h6"]),button:function(w,d){var m=d.getName(w);return m==="button"||m==="input"&&d.getAttributeValue(w,"type")==="button"},input:O(["input","textarea","select","button"]),text:function(w,d){var m;return d.getName(w)==="input"&&(!(m=d.getAttributeValue(w,"type"))||m.toLowerCase()==="text")}};function O(w){if(typeof Set<"u"){var d=new Set(w);return function(m,p){return d.has(p.getName(m))}}return function(m,p){return w.indexOf(p.getName(m))>=0}}function I(w,d,m){if(m===null){if(w.length>2&&d!=="scope")throw new Error("pseudo-selector :"+d+" requires an argument")}else if(w.length===2)throw new Error("pseudo-selector :"+d+" doesn't have any arguments")}var P=/^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;i.exports={compile:function(w,d,m,p){var S=d.name,E=d.data,R=m.adapter;if(m&&m.strict&&!P.test(S))throw new Error(":"+S+" isn't part of CSS3");if(typeof h[S]=="function")return h[S](w,E,m,p);if(typeof T[S]=="function"){var D=T[S];return I(D,S,E),D===l?D:w===c?function(M){return D(M,R,E)}:function(M){return D(M,R,E)&&w(M)}}else throw new Error("unmatched pseudo-class :"+S)},filters:h,pseudos:T}},function(i,e,t){var r=t(284),n=t(285);i.exports=function(c){return n(r(c))},i.exports.parse=r,i.exports.compile=n},function(i,e){i.exports=r;var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;function r(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 c;return s[1]?(c=parseInt(s[1],10),isNaN(c)&&(s[1].charAt(0)==="-"?c=-1:c=1)):c=0,[c,s[3]?parseInt((s[2]||"")+s[3],10):0]}},function(i,e,t){i.exports=c;var r=t(273),n=r.trueFunc,s=r.falseFunc;function c(l){var f=l[0],u=l[1]-1;if(u<0&&f<=0)return s;if(f===-1)return function(h){return h<=u};if(f===0)return function(h){return h===u};if(f===1)return u<0?n:function(h){return h>=u};var v=u%f;return v<0&&(v+=f),f>1?function(h){return h>=u&&h%f===v}:(f*=-1,function(h){return h<=u&&h%f===v})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return E});var r=t(12),n=t(74),s=t(1),c=t(68),l=t(250),f=t(213),u=t(218);t(1).glMatrix.setMatrixArrayType(Array);function v(R,D){if(R==null)return{};var U=h(R,D),M,W;if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(R);for(W=0;W<$.length;W++)M=$[W],!(D.indexOf(M)>=0)&&Object.prototype.propertyIsEnumerable.call(R,M)&&(U[M]=R[M])}return U}function h(R,D){if(R==null)return{};var U={},M=Object.keys(R),W,$;for($=0;$<M.length;$++)W=M[$],!(D.indexOf(W)>=0)&&(U[W]=R[W]);return U}const y={antialias:!0,autoRender:!0,alpha:!0},T=Symbol("autoRender"),O=Symbol("renderer"),I=Symbol("timeline"),P=Symbol("prepareRender"),w=Symbol("tickRender"),d=Symbol("pass"),m=Symbol("fbo"),p=Symbol("tickers"),S=Symbol("layerTransformInvert");class E extends l.default{constructor(D={}){if(super(),!D.canvas){const{width:$,height:B}=this.getResolution(),N=r.ENV.createCanvas($,B,{offscreen:!!D.offscreen,id:D.id,extra:D.extra});N.style&&(N.style.position="absolute"),N.dataset&&(N.dataset.layerId=D.id),N.contextType&&(D.contextType=N.contextType),D.canvas=N}const U=D.canvas,M=Object.assign({},y,D);this[T]=M.autoRender,delete D.autoRender;const W=M.Renderer||r.Renderer;this[O]=new W(U,M),this.options=D,this.id=D.id,this[d]=[],this.setResolution(U),this.canvas=U,this[I]=new n.Timeline,this.__mouseCapturedTarget=null,this[S]=null}get autoRender(){return this[T]}get displayRatio(){return this.parent&&this.parent.options?this.parent.options.displayRatio:1}get height(){const{height:D}=this.getResolution();return D/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[d]}get prepareRender(){return this[P]?this[P]:Promise.resolve()}get renderer(){return this[O]}get renderOffset(){if(this.parent&&this.parent.options){const{left:D,top:U}=this.parent.options;return[D,U]}return[this.options.left|0,this.options.top|0]}get timeline(){return this[I]}get width(){const{width:D}=this.getResolution();return D/this.displayRatio}get localMatrix(){const{x:D,y:U}=this.attributes;return[1,0,0,1,D,U]}get layerTransformInvert(){if(this[S])return this[S];const D=this.transformMatrix;return D[0]===1&&D[1]===0&&D[2]===0&&D[3]===1&&D[4]===0&&D[5]===0?null:(this[S]=s.mat2d.invert(Array.of(0,0,0,0,0,0),D),this[S])}forceContextLoss(){const D=this.renderer.glRenderer;if(D){const U=D.getExtension("WEBGL_lose_context");if(U)return U.loseContext(),!0}return!1}addPass({vertex:D,fragment:U,options:M,uniforms:W}={}){if(this.renderer.glRenderer){const{width:$,height:B}=this.getResolution(),N=this.renderer.createPassProgram({vertex:D,fragment:U,options:M}),z=new r.Figure2D;z.rect(0,0,$/this.displayRatio,B/this.displayRatio);const J=new r.Mesh2D(z);return J.setUniforms(W),J.setProgram(N),this[d].push(J),this.forceUpdate(),J}return null}deleteTexture(D){return Object(u.deleteTexture)(D,this.renderer)}dispatchPointerEvent(D){const U=D.type;if(U==="mousedown"||U==="mouseup"||U==="mousemove"){const N=this.__mouseCapturedTarget;if(N){if(N.layer===this)return N.dispatchEvent(D),!0;this.__mouseCapturedTarget=null}}let M,W;const $=this.layerTransformInvert;if($){M=D.x,W=D.y;const N=$,z=N[0]*M+N[2]*W+N[4],J=N[1]*M+N[3]*W+N[5];delete D.x,delete D.y,delete D.layerX,delete D.layerY,Object.defineProperties(D,{layerX:{value:z,configurable:!0},layerY:{value:J,configurable:!0},x:{value:z,configurable:!0},y:{value:J,configurable:!0}})}const B=super.dispatchPointerEvent(D);return $&&Object.defineProperties(D,{layerX:{value:M,configurable:!0},layerY:{value:W,configurable:!0},x:{value:M,configurable:!0},y:{value:W,configurable:!0}}),B}forceUpdate(){if(!this[P])if(this.parent&&this.parent.hasOffscreenCanvas){this.parent.forceUpdate();let D=null;const U=new Promise(M=>{D=M});U._resolve=D,this[P]=U}else{let D=null,U=null;const M=new Promise(W=>{D=W,this[T]&&(U=Object(c.requestAnimationFrame)(()=>{delete M._requestID,this.render()}))});M._resolve=D,M._requestID=U,this[P]=M}}getFBO(){const D=this.renderer.glRenderer,{width:U,height:M}=this.getResolution();return D&&(!this[m]||this[m].width!==U||this[m].height!==M)?(this[m]={width:U,height:M,target:D.createFBO(),buffer:D.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}},this[m]):this[m]?this[m]:null}updateGlobalTransform(){if(this.layerTransformInvert){const D=this.renderer,U=D.__globalTransformMatrix||D.globalTransformMatrix;D.__globalTransformMatrix=U;const M=s.mat2d.fromValues(1,0,0,1,0,0);D.setGlobalTransform(...s.mat2d.multiply(M,U,this.transformMatrix))}}onPropertyChange(D,U,M){if(super.onPropertyChange(D,U,M),D==="zIndex"&&(this.canvas.style.zIndex=U),D==="transform"||D==="translate"||D==="rotate"||D==="scale"||D==="skew"){const W=this[S];if(this[S]=null,this.updateGlobalTransform(),W&&!this.layerTransformInvert){const $=this.renderer,B=$.__globalTransformMatrix||$.globalTransformMatrix;$.setGlobalTransform(...B)}}}_prepareRenderFinished(){this[P]&&(this[P]._requestID&&Object(c.cancelAnimationFrame)(this[P]._requestID),this[P]._resolve(),delete this[P])}render({clear:D=!0}={}){const U=this[d].length?this.getFBO():null;U&&this.renderer.glRenderer.bindFBO(U.target),D&&this[O].clear();const M=this.draw();if(M&&M.length&&(this.renderer.drawMeshes(M),this.canvas.draw&&this.canvas.draw()),U){const W=this.renderer.glRenderer,$=this[d].length,{width:B,height:N}=this.getResolution(),z=[0,0,B/this.displayRatio,N/this.displayRatio];this[d].forEach((J,et)=>{J.blend=!0,J.setTexture(U.target.texture,{rect:z}),et===$-1?W.bindFBO(null):(U.swap(),W.bindFBO(U.target)),this[O].clear(),this.renderer.drawMeshes([J])})}this._prepareRenderFinished()}setResolution({width:D,height:U}){const M=this.renderer,W=M.__globalTransformMatrix||M.globalTransformMatrix,$=W[4],B=W[5],N=W[0],{width:z,height:J}=this.getResolution();(z!==D||J!==U)&&(super.setResolution({width:D,height:U}),this.canvas&&(this.canvas.width=D,this.canvas.height=U,M.updateResolution&&M.updateResolution()),this.attributes.size=[D,U],this[d].length&&this[d].forEach(V=>{const Q=new r.Figure2D;Q.rect(0,0,D/this.displayRatio,U/this.displayRatio),V.contours=Q.contours}));const[et,at]=this.renderOffset,ct=this.displayRatio;($!==et||B!==at||N!==ct)&&(M.setGlobalTransform(ct,0,0,ct,et,at),M.__globalTransformMatrix=null,this[S]=null,this.updateGlobalTransform(),this.forceUpdate())}tick(D=null,U={}){let{duration:M=1/0}=U,W=v(U,["duration"]);const $=this.timeline.fork(W),B=this;this[p]=this[p]||[],this[p].push({handler:D,duration:M});const N=()=>{let z=null,J=null;const et=()=>{const at=this[p].map(({handler:ct,duration:V})=>{const Q=Math.min(1,$.currentTime/V);return{value:ct?ct($.currentTime,Q):null,p:Q}});B[w]||(B[w]=Promise.resolve().then(()=>{B[T]&&B.render(),delete B[w];for(let ct=at.length-1;ct>=0;ct--){const{value:V,p:Q}=at[ct];(V===!1||Q>=1)&&this[p].splice(ct,1)}this[p].length>0&&N()}))};if(this[P]&&this[P]._type!=="ticker"&&(Object(c.cancelAnimationFrame)(this[P]._requestID),delete this[P]),!this[P]){const at=new Promise(ct=>{z=ct,J=Object(c.requestAnimationFrame)(et)});at._resolve=z,at._requestID=J,at._type="ticker",this[P]=at}};N()}toGlobalPos(D,U){if(this.layerTransformInvert){const z=this.transformMatrix;D=z[0]*D+z[2]*U+z[4],U=z[1]*D+z[3]*U+z[5]}const{width:M,height:W}=this.getResolution(),$=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*B[0]/M+$[0],U=U*B[1]/W+$[1];const N=this.displayRatio;return D*=N,U*=N,[D,U]}toLocalPos(D,U){const{width:M,height:W}=this.getResolution(),$=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*M/B[0]-$[0],U=U*W/B[1]-$[1];const N=this.displayRatio;D/=N,U/=N;const z=this.layerTransformInvert;return z&&(D=z[0]*D+z[2]*U+z[4],U=z[1]*D+z[3]*U+z[5]),[D,U]}}f.default.registerNode(E,"layer")},function(i,e,t){t.r(e),t.d(e,"default",function(){return P});var r=t(224),n=t(288),s=t(213),c=t(252),l=t(72);t(1).glMatrix.setMatrixArrayType(Array);function f(w,d){if(w==null)return{};var m=u(w,d),p,S;if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(w);for(S=0;S<E.length;S++)p=E[S],!(d.indexOf(p)>=0)&&Object.prototype.propertyIsEnumerable.call(w,p)&&(m[p]=w[p])}return m}function u(w,d){if(w==null)return{};var m={},p=Object.keys(w),S,E;for(E=0;E<p.length;E++)S=p[E],!(d.indexOf(S)>=0)&&(m[S]=w[S]);return m}function v(w,d,m){return d in w?Object.defineProperty(w,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):w[d]=m,w}const h="http://www.w3.org/2000/svg",y=Symbol.for("spritejs_setAttribute"),T=Symbol("root"),O=Symbol("task");function I(w,d=!0){const m=w[T];if(m&&m.children[0]){const p=w.svg,S=w.layer?w.layer.displayRatio:1;if(!p.hasAttribute("data-original-width")){let D=p.getAttribute("width");D=D?Object(l.sizeToPixel)(D):300;let U=p.getAttribute("height");U=U?Object(l.sizeToPixel)(U):150,p.hasAttribute("viewBox")||p.setAttribute("viewBox",`0 0 ${Math.round(D)} ${Math.round(U)}`),p.setAttribute("data-original-width",D),p.setAttribute("data-original-height",U)}let E=w.attributes.width||Number(p.getAttribute("data-original-width")),R=w.attributes.height||Number(p.getAttribute("data-original-height"));if(E*=S,R*=S,d&&w.attributes.flexible){const D=w.attributes.scale[0];if(E*=D,R*=D,p.setAttribute("width",E),p.setAttribute("height",R),E&&R&&w.textureImage){const U=w.textureImage.width,M=w.textureImage.height,W=w.clientSize;w.attributes.textureRect=[0,0,Math.round(W[0]*U/E),Math.round(W[1]*M/R)]}}else w[O]||(p.setAttribute("width",E),p.setAttribute("height",R),w[O]=Promise.resolve().then(()=>{delete w[O];const D=m.innerHTML,U=new Blob([D],{type:"image/svg+xml"}),M=URL.createObjectURL(U),W=new Image;W.onload=function(){W.width&&W.height?(w.attributes[y]("texture",W),w.attributes.flexible&&(w.attributes.textureRect=null)):w.attributes[y]("texture",null)},W.src=M}))}}class P extends r.default{constructor(d={}){typeof d=="string"&&(d={svgText:d});let{svgText:m}=d,p=f(d,["svgText"]);if(super(p),this[T]=document.createElement("div"),m){this[T].innerHTML=m;const S=this[T].children[0];S?S.setAttribute("xmlns",h):(fetch(m).then(E=>E.text()).then(E=>{this[T].innerHTML=E,(!this.observer||this.attributes.flexible)&&I(this)}),m=null)}if(!m){const S=document.createElementNS(h,"svg");S.setAttribute("xmlns",h),this[T].appendChild(S)}if(typeof MutationObserver=="function"){const S=new MutationObserver(E=>{I(this,!1)});S.observe(this[T],{attributes:!0,subtree:!0,characterData:!0,childList:!0}),this.observer=S}}get children(){return[this.svg]}get childNodes(){return[this.svg]}get svg(){return this[T]?this[T].children[0]:null}setResolution({width:d,height:m}){super.setResolution({width:d,height:m}),I(this)}dispatchPointerEvent(d){const m=super.dispatchPointerEvent(d);if(m&&this.attributes.passEvents&&typeof MouseEvent=="function"){const{x:p,y:S}=d;let[E,R]=this.getOffsetPosition(p,S);const D=d.originalEvent,U=this.attributes.anchor,M=this.clientSize;E=(E+U[0]*M[0])/2,R=(R+U[1]*M[1])/2;const W=d.type;if(W===D.type){let $=null;if(D instanceof MouseEvent)$=new MouseEvent(W,{screenX:E,screenY:R,clientX:E,clientY:R,bubbles:D.bubbles,button:D.button,buttons:D.buttons,cancelBubble:D.cancelBubble,cancelable:D.cancelable,currentTarget:D.currentTarget,fromElement:D.fromElement,relatedTarget:D.relatedTarget,returnValue:D.returnValue,srcElement:D.srcElement,target:D.target,toElement:D.toElement,which:D.witch});else if(D instanceof TouchEvent){let B=null;const N=D.changedTouches||[D];for(let z=0;z<N.length;z++){const J=N[z];if(d.identifier===J.identifier){B=J;break}}if(B){const z=new Touch({identifier:B.identifier,target:B.target,clientX:E,clientY:R,screenX:E,screenY:R,pageX:E,pageY:R,radiusX:B.radiusX,radiusY:B.radiusY,rotationAngle:B.rotationAngle,force:B.force});$=new TouchEvent(W,{cancelable:D.cancelable,bubbles:D.bubbles,composed:D.composed,touches:[z],targetTouches:[z],changedTouches:[z]})}}else $=D;$&&this.svg.dispatchEvent($)}}return m}getElementById(d){return Object(c.querySelector)(`#${d}`,this)}getElementsByClassName(d){return Object(c.querySelectorAll)(`.${d}`,this)}getElementsByName(d){return Object(c.querySelectorAll)(`[name="${d}"]`,this)}getElementsByTagName(d){return Object(c.querySelectorAll)(d,this)}querySelector(d){return Object(c.querySelector)(d,this)}querySelectorAll(d){return Object(c.querySelectorAll)(d,this)}onPropertyChange(d,m,p){super.onPropertyChange(d,m,p),d==="flexible"&&I(this),this.attributes.flexible&&(d==="width"||d==="height"||d==="scale"||d==="transform")&&I(this)}}v(P,"Attr",n.default),s.default.registerNode(P,"spritesvg")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(225);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_getAttribute"),s=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_setAttributeDefault");class l extends r.default{constructor(u){super(u),this[c]({passEvents:!1,flexible:!1})}get texture(){return this[n]("texture")}set texture(u){}get passEvents(){return this[n]("passEvents")}set passEvents(u){return this[s]("passEvents",u)}get flexible(){return this[n]("flexible")}set flexible(u){return this[s]("flexible",u)}}},function(i,e,t){t.r(e);var r=t(12);t(1).glMatrix.setMatrixArrayType(Array);function n(u,v){var h=Object.keys(u);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(u);v&&(y=y.filter(function(T){return Object.getOwnPropertyDescriptor(u,T).enumerable})),h.push.apply(h,y)}return h}function s(u){for(var v=1;v<arguments.length;v++){var h=arguments[v]!=null?arguments[v]:{};v%2?n(Object(h),!0).forEach(function(y){c(u,y,h[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(h)):n(Object(h)).forEach(function(y){Object.defineProperty(u,y,Object.getOwnPropertyDescriptor(h,y))})}return u}function c(u,v,h){return v in u?Object.defineProperty(u,v,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[v]=h,u}const l=Symbol("inited");let f=null;typeof Worker=="function"&&(f=class extends Worker{constructor(u){if(u.worker===!0&&(u.worker=`./${u.id}.worker.js`),super(u.worker),this.options=u,!u.canvas){const{width:v,height:h}=this.getResolution(),y=r.ENV.createCanvas(v,h,{offscreen:!1});y.style&&(y.style.position="absolute"),y.dataset&&(y.dataset.layerId=u.id),u.canvas=y}this.canvas=u.canvas}get id(){return this.options.id}setResolution({width:u,height:v}){if(this[l])this.postMessage({type:"resolution_change",width:u,height:v});else{this.canvas.width=u,this.canvas.height=v;const h=this.options,y=h.canvas.transferControlToOffscreen(),T=s({},h);delete T.container,T.canvas=y,this.postMessage({type:"create",options:T},[y]),this[l]=!0}}getResolution(){if(this.canvas){const{width:u,height:v}=this.canvas;return{width:u,height:v}}return{width:300,height:150}}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}connect(u,v){Object.defineProperty(this,"parent",{value:u,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:v,writable:!1,configurable:!0})}disconnect(){delete this.parent,delete this.zOrder}dispatchPointerEvent(u){this.postMessage({type:"event",event:{cancelBubble:u.cancelBubble,bubbles:u.bubbles,detail:u.detail,identifier:u.identifier,layerX:u.layerX,layerY:u.layerY,originalX:u.originalX,originalY:u.originalY,type:u.type,x:u.x,y:u.y}})}}),e.default=f},function(i,e,t){t.r(e),(function(r){t.d(e,"default",function(){return E});var n=t(12),s=t(68),c=t(70),l=t(286),f=t(289),u=t(250),v=t(291),h=t(214),y=t(218),T=t(213);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("enteredTargets");function I(R){return R.id=R.id||`_layer${Math.random().toString(36).slice(2,12)}`,R.dataset||(R.dataset={}),R.dataset.layerId=R.id,R.connect=(D,U)=>{R.parent=D,Object.defineProperty(R,"zOrder",{value:U,writable:!1,configurable:!0})},R.disconnect=D=>{delete R.zOrder},R.canvas=R,R.getResolution=()=>({width:0,height:0}),R.setResolution=()=>!1,R.options={handleEvent:!1},R}function P(R,D){const U=R.children;let M=null;for(let W=0;W<U.length;W++){const $=U[W];if((D===$||M!=null)&&(M=$),M&&M!==D&&!M.offscreen)return M.canvas}return null}function w(R,D){const[U,M]=R.renderOffset,{width:W,height:$}=R.getResolution(),B=R.displayRatio;R.renderer.drawImage(D.canvas,-U/B,-M/B,W/B,$/B)}const d={};function m(R){const D=["mousedown","mouseup","mousemove","mousewheel","wheel","touchstart","touchend","touchmove","touchcancel","click","dblclick","longpress","tap","contextmenu"],U=R.container;U.addEventListener("mouseleave",M=>{const W=R[O];if(W.size){const $=new h.default("mouseleave");$.setOriginalEvent(M),[...W].forEach(B=>{B.dispatchEvent($)}),R[O].clear()}},{passive:!0}),D.forEach(M=>{U.addEventListener(M,W=>{const{left:$,top:B,displayRatio:N}=R.options,z=R.orderedChildren;Object(v.default)(W,{offsetLeft:$,offsetTop:B,displayRatio:N}).forEach(et=>{const at=et.identifier;if(et.type==="touchmove"||et.type==="touchend"){const V=d[at];V&&V.dispatchEvent(et),et.type==="touchend"&&delete d[at]}else{for(let V=z.length-1;V>=0;V--){const Q=z[V];if(Q.options.handleEvent!==!1){if(Q.dispatchPointerEvent(et)&&et.target!==Q)break;et.cancelBubble=!1}}if(et.target===z[0])for(let V=z.length-1;V>=0;V--){const Q=z[V];if(Q.options.handleEvent!==!1){et.target=Q;break}}}const ct=et.target;if(et.type==="touchstart"&&(d[at]=et.target),et.type==="mousemove"){const V=R[O];let Q;if(ct){const yt=ct.ancestors||[];Q=new Set([ct,...yt])}else Q=new Set;const ft=Object.entries(W);if(!V.has(ct)&&ct){const yt=new h.default("mouseenter");yt.setOriginalEvent(W),ft.forEach(([ht,Nt])=>{yt[ht]=Nt}),V.add(ct),ct.dispatchEvent(yt);const At=ct.ancestors;At&&At.forEach(ht=>{ht instanceof c.default&&!V.has(ht)&&(V.add(ht),ht.dispatchEvent(yt))})}const mt=new h.default("mouseleave");mt.setOriginalEvent(W),ft.forEach(([yt,At])=>{mt[yt]=At}),[...V].forEach(yt=>{Q.has(yt)||(V.delete(yt),yt.dispatchEvent(mt))})}})},{passive:M!=="contextmenu"})})}function p(R,D){if(D&&D.style){let{width:U,height:M,mode:W,container:$}=R;const{clientWidth:B,clientHeight:N}=$;U=U||B,M=M||N,W==="static"?(D.style.width=`${U}px`,D.style.height=`${M}px`):(D.style.top="0",D.style.left="0",D.style.width=`${B}px`,D.style.height=`${N}px`,D.style.transform="",D.style.webkitTransform="")}}const S=Symbol("offscreenLayerCount");class E extends u.default{constructor(D={}){if(super(),!D.container)if(typeof n.ENV.Container=="function")D.container=new n.ENV.Container(D.width||300,D.height||150);else throw new Error("No container specified.");if(this.container=D.container,this.container.style&&(this.container.style.overflow||(this.container.style.overflow="hidden"),this.container.style.position||(this.container.style.position="relative")),this.options=D,D.displayRatio=D.displayRatio||1,D.mode=D.mode||"scale",D.left=0,D.top=0,D.autoResize=D.autoResize!==!1,D.autoResize){let U;if(typeof globalThis<"u"?U=globalThis:U=typeof window<"u"?window:r,U.addEventListener){const M=this;U.addEventListener("resize",function W(){typeof document<"u"&&document.contains(M.container)?M.resize():U.removeEventListener("resize",W)})}}this[O]=new Set,this.setResolution(D),m(this),this[S]=0}get hasOffscreenCanvas(){return this[S]>0}set displayRatio(D){this.options.displayRatio!==D&&(this.options.displayRatio=D,this.resize())}get displayRatio(){return this.options.displayRatio}set height(D){this.options.height!==D&&(this.options.height=D,this.resize())}get height(){return this.options.height}set mode(D){this.options.mode!==D&&(this.options.mode=D,this.resize())}get mode(){return this.options.mode}set width(D){this.options.width!==D&&(this.options.width=D,this.resize())}get width(){return this.options.width}appendChild(D){!(D instanceof l.default)&&!(D instanceof f.default)&&I(D);const U=super.appendChild(D),M=D.canvas;return D.offscreen?this[S]++:this.container.appendChild(M),p(this.options,M),D.setResolution(this.getResolution()),U}forceUpdate(){this.hasOffscreenCanvas&&!this._requestID&&(this._requestID=Object(s.requestAnimationFrame)(()=>{delete this._requestID,this.render()}))}insertBefore(D,U){!(D instanceof l.default)&&!(D instanceof f.default)&&I(D);const M=super.insertBefore(D,U),W=D.canvas;if(!D.offscreen){const $=P(this,D);this.container.insertBefore(W,$)}return p(this.options,W),D.setResolution(this.getResolution()),M}layer(D="default",U={}){U=Object.assign({},this.options,U),U.id=D;const M=this.orderedChildren;for(let B=0;B<M.length;B++)if(M[B].id===D)return M[B];const W=U.worker;let $;return W?$=new f.default(U):$=new l.default(U),this.appendChild($),$}async preload(...D){const U=[],M=[],W=[];for(let $=0;$<D.length;$++){const B=D[$];let N;if(typeof B=="string")N=Object(y.loadTexture)(B);else if(Array.isArray(B))N=Object(y.loadFrames)(...B);else{const{id:z,src:J}=B;N=Object(y.loadTexture)(J,z)}N instanceof Promise||(N=Promise.resolve(N)),M.push(N.then(z=>{U.push(z),W[$]=z;const J=new h.default({type:"preload",detail:{current:z,loaded:U,resources:D}});this.dispatchEvent(J)}))}return await Promise.all(M),W}removeChild(D){const U=super.removeChild(D);if(U){D._prepareRenderFinished&&D._prepareRenderFinished();const M=D.canvas;M&&M.remove&&M.remove(),D.offscreen&&this[S]--}return U}render(){const D=this.orderedChildren;let U=null;const M=[];for(let W=0;W<D.length;W++){const $=D[W],B=M.length>0;if($ instanceof l.default&&!$.offscreen)if(!$.autoRender)B&&(console.warn("Some offscreen canvas will not be rendered."),M.length=0);else if(U=$,B){$.renderer.clear();for(let N=0;N<M.length;N++){const z=M[N];z.render(),w($,z)}M.length=0,$.render({clear:!1})}else $.prepareRender&&$.render();else $.offscreen?U?($.prepareRender&&$.render(),w(U,$)):M.push($):$ instanceof f.default&&B&&(console.warn("Some offscreen canvas will not be rendered."),M.length=0)}}replaceChild(D,U){const M=super.replaceChild(D,U);U.canvas.remove&&U.canvas.remove(),U.offscreen&&this[S]--;const W=D.canvas;if(!D.offscreen){const $=P(this,D);this.container.insertBefore(W,$)}return p(this.options,W),D.setResolution(this.getResolution()),M}resize(){const D=this.options;this.children.forEach(U=>{p(D,U.canvas)}),this.setResolution(D),this.dispatchEvent({type:"resize"})}setResolution({width:D,height:U}={}){const M=this.container,{clientWidth:W,clientHeight:$}=M;(D==null||U==null)&&(D=D??W,U=U??$);const{mode:B,displayRatio:N}=this.options;if(D*=N,U*=N,this.options.left=0,this.options.top=0,B==="stickyHeight"||B==="stickyLeft"||B==="stickyRight"){const z=D;D=W*U/$,B==="stickyHeight"&&(this.options.left=.5*(D-z)),B==="stickyRight"&&(this.options.left=D-z)}else if(B==="stickyWidth"||B==="stickyTop"||B==="stickyBottom"){const z=U;U=$*D/W,B==="stickyWidth"&&(this.options.top=.5*(U-z)),B==="stickyBottom"&&(this.options.top=U-z)}super.setResolution({width:D,height:U})}snapshot({offscreen:D=!1,layers:U}={}){const M=D?"snapshotOffScreenCanvas":"snapshotCanvas",{width:W,height:$}=this.getResolution();this[M]=this[M]||n.ENV.createCanvas(W,$,{offscreen:D});const B=this[M].getContext("2d");U=U||this.orderedChildren,this[M].width=W,this[M].height=$;for(let N=0;N<U.length;N++){const z=U[N];if(!z.options.ignoreSnapshot){z.render&&z.render();const J=z.canvas;J&&J!==z&&B.drawImage(J,0,0,W,$)}}return this[M]}}typeof document<"u"&&(E.prototype.layer3d=function(R,D={}){const U=D.url||"https://unpkg.com/sprite-extend-3d/dist/sprite-extend-3d.min.js";return new Promise((M,W)=>{const $=document.createElement("script");$.async=!1,$.src=U,$.onload=()=>{try{M(this.layer3d(R,D))}catch(B){W(B)}},document.documentElement.appendChild($)})}),T.default.registerNode(E,"scene")}).call(this,t(22))},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(214);t(1).glMatrix.setMatrixArrayType(Array);function n(s,{offsetTop:c=0,offsetLeft:l=0,displayRatio:f=1}={}){let u,v;const h=[],{left:y,top:T,width:O,height:I}=s.target.getBoundingClientRect(),P=s.target.width,w=s.target.height,d=s.changedTouches||[s];for(let p=0;p<d.length;p++){const S=d[p],E=S.identifier,{clientX:R,clientY:D}=S;R!=null&&D!=null&&h.push({x:Math.round((R|0)-y),y:Math.round((D|0)-T),identifier:E})}h.length<=0&&h.push({x:u,y:v});const m=[];return h.forEach(p=>{p.x!=null&&p.y!=null&&(u=(p.x*P/O-l)/f,v=(p.y*w/I-c)/f);const S=new r.default(s);Object.defineProperties(S,{layerX:{value:u,configurable:!0},layerY:{value:v,configurable:!0},originalX:{value:p.x},originalY:{value:p.y},x:{value:u,configurable:!0},y:{value:v,configurable:!0},identifier:{value:p.identifier}}),m.push(S)}),m}}]);Ie.version,Ie.Arc,Ie.Block,Ie.Cloud,Ie.Color;const rn=Ie.Ellipse;Ie.Gradient;const Je=Ie.Group,cd=Ie.Label,wo=Ie.Layer;Ie.LayerWorker,Ie.Node,Ie.Parallel;const gn=Ie.Path,nn=Ie.Polyline,Oo=Ie.Rect;Ie.Regular,Ie.Ring;const Wl=Ie.Scene,Fl=Ie.Sprite;Ie.SpriteSvg,Ie.Star,Ie.Triangle,Ie.helpers,Ie.createElement,Ie.isSpriteNode,Ie.registerNode,Ie.requestAnimationFrame,Ie.cancelAnimationFrame,Ie.ENV;var Ee=(i=>(i.Normal="Normal",i.Stroke="Stroke",i.Dotted="Dotted",i.LongDotted="LongDotted",i))(Ee||{}),de=(i=>(i.None="None",i.ShowFloatBar="ShowFloatBar",i.ZIndexFloatBar="ZIndexFloatBar",i.DeleteNode="DeleteNode",i.CopyNode="CopyNode",i.ZIndexNode="ZIndexNode",i.ZIndexBackgroundSVG="ZIndexBackgroundSVG",i.RotateNode="RotateNode",i.SetColorNode="SetColorNode",i.TranslateNode="TranslateNode",i.ScaleNode="ScaleNode",i.OriginalEvent="OriginalEvent",i.CreateScene="CreateScene",i.ActiveCursor="ActiveCursor",i.MoveCursor="MoveCursor",i.CommandEditor="CommandEditor",i.SetEditorData="SetEditorData",i.SetFontStyle="SetFontStyle",i.SetPoint="SetPoint",i.SetLock="SetLock",i.SetShapeOpt="SetShapeOpt",i.CameraChange="CameraChange",i.ActiveMethod="ActiveMethod",i.HidFloatBarBtn="HidFloatBarBtn",i))(de||{}),Tt=(i=>(i[i.Pencil=1]="Pencil",i[i.Eraser=2]="Eraser",i[i.PencilEraser=3]="PencilEraser",i[i.BitMapEraser=4]="BitMapEraser",i[i.Selector=5]="Selector",i[i.Clicker=6]="Clicker",i[i.Arrow=7]="Arrow",i[i.Hand=8]="Hand",i[i.LaserPen=9]="LaserPen",i[i.Text=10]="Text",i[i.Straight=11]="Straight",i[i.Rectangle=12]="Rectangle",i[i.Ellipse=13]="Ellipse",i[i.Star=14]="Star",i[i.Triangle=15]="Triangle",i[i.Rhombus=16]="Rhombus",i[i.Polygon=17]="Polygon",i[i.SpeechBalloon=18]="SpeechBalloon",i[i.Image=19]="Image",i[i.BackgroundSVG=20]="BackgroundSVG",i))(Tt||{}),Kt=(i=>(i[i.Local=1]="Local",i[i.Service=2]="Service",i[i.Worker=3]="Worker",i))(Kt||{}),te=(i=>(i[i.Pending=0]="Pending",i[i.Start=1]="Start",i[i.Doing=2]="Doing",i[i.Done=3]="Done",i[i.Unwritable=4]="Unwritable",i))(te||{}),vt=(i=>(i[i.None=0]="None",i[i.Init=1]="Init",i[i.UpdateCamera=2]="UpdateCamera",i[i.UpdateTools=3]="UpdateTools",i[i.CreateWork=4]="CreateWork",i[i.DrawWork=5]="DrawWork",i[i.FullWork=6]="FullWork",i[i.UpdateNode=7]="UpdateNode",i[i.RemoveNode=8]="RemoveNode",i[i.Clear=9]="Clear",i[i.Select=10]="Select",i[i.Destroy=11]="Destroy",i[i.Snapshot=12]="Snapshot",i[i.BoundingBox=13]="BoundingBox",i[i.Cursor=14]="Cursor",i[i.TextUpdate=15]="TextUpdate",i[i.GetTextActive=16]="GetTextActive",i[i.TasksQueue=17]="TasksQueue",i[i.CursorHover=18]="CursorHover",i[i.CursorBlur=19]="CursorBlur",i[i.Console=20]="Console",i[i.GetImageBitMap=23]="GetImageBitMap",i[i.AuthWriter=24]="AuthWriter",i[i.AuthReader=25]="AuthReader",i[i.AuthClear=26]="AuthClear",i[i.AuthPage=27]="AuthPage",i[i.GetVNodeInfo=28]="GetVNodeInfo",i[i.UpdateDpr=29]="UpdateDpr",i[i.SetFontFace=30]="SetFontFace",i[i.ReportError=31]="ReportError",i[i.ReportLog=32]="ReportLog",i[i.BackgroundSVGUpdate=33]="BackgroundSVGUpdate",i[i.BackgroundSVGDelete=34]="BackgroundSVGDelete",i))(vt||{}),Ut=(i=>(i[i.None=0]="None",i[i.Bg=1]="Bg",i[i.ServiceFloat=2]="ServiceFloat",i[i.Float=3]="Float",i[i.TopFloat=4]="TopFloat",i))(Ut||{}),Te=(i=>(i[i.none=1]="none",i[i.all=2]="all",i[i.both=3]="both",i[i.proportional=4]="proportional",i))(Te||{}),yr=(i=>(i[i.inside=0]="inside",i[i.outside=1]="outside",i[i.intersect=2]="intersect",i))(yr||{}),es=(i=>(i.Image="image",i.Iconify="iconify",i))(es||{});class Kr{constructor(){dt(this,"localWork");dt(this,"serviceWork");dt(this,"threadEngine")}registerForWorker(e){return this.threadEngine=e,this.localWork=e.localWork,this.serviceWork=e.serviceWork,this}}class ud extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.CopyNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.FullWork&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var n;const{workId:r}=t;r&&await((n=this.localWork)==null?void 0:n.consumeFull(t))}}const Vn="++",Me="selector",hd="all";class dd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetColorNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,textUpdateForWoker:f,needUndoTicker:u}=r,v=n.render||[],h=n.sp||[];if(c)for(const[y,T]of s.entries())f&&T.toolsType===Tt.Text?h.push({...T,workId:y,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0}):h.push({...T,workId:y,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return u&&h.push({type:vt.None,needUndoTicker:u}),{render:v,sp:h}}}class pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.ZIndexNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var f;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l}=t;r===Me&&n&&await((f=this.localWork)==null?void 0:f.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l}=r,f=n.render||[],u=n.sp||[];if(c&&u)for(const[v,h]of s.entries())h.toolsType===Tt.BackgroundSVG&&u.push({...h,workId:v,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,updateNodeOpt:{useAnimation:!1}}),u.push({...h,workId:v,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return{render:f,sp:u}}}class vd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.TranslateNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var y,T;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,emitEventType:u,smoothSync:v,needUndoTicker:h}=t;r===Me&&n&&(n.workState===te.Done&&(n!=null&&n.translate)&&(n.translate[0]||n.translate[1])||n.workState!==te.Done?await((y=this.localWork)==null?void 0:y.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,isSync:!0,textUpdateForWoker:f,emitEventType:u,callback:this.updateSelectorCallback,smoothSync:v,needUndoTicker:h})):n.workState===te.Done&&((T=this.localWork)==null||T.vNodes.deleteLastTarget()))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l,smoothSync:f}=t,{willSyncService:u,isSync:v,updateSelectorOpt:h,textUpdateForWoker:y,needUndoTicker:T}=r,O=h.workState,I=n.render||[],P=n.sp||[];if(O===te.Start)return{sp:[],render:[]};const w=l==null?void 0:l.selectRect;if(u){P.push({type:vt.Select,selectIds:c.selectIds,selectRect:w,willSyncService:O===te.Done?!0:f,isSync:!0,points:O===te.Done&&c.getChildrenPoints()||void 0,textOpt:c.textOpt});const d={useAnimation:h.useAnimation||!1};h.uid&&(d.uid=h.uid);for(const[m,p]of s.entries())p.toolsType===Tt.BackgroundSVG&&P.push({...p,workId:m,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:O===te.Done?!0:f,updateNodeOpt:d}),y&&p.toolsType===Tt.Text?P.push({...p,workId:m,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:O===te.Done?!0:f,updateNodeOpt:d}):(f||O===te.Done)&&P.push({...p,workId:m,type:vt.UpdateNode,updateNodeOpt:d,isSync:v})}return T&&P.push({type:vt.None,needUndoTicker:T}),{render:I,sp:P}}}class gd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.ScaleNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willSyncService:s,willSerializeData:c,smoothSync:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willSyncService:s,willSerializeData:c,isSync:!0,callback:this.updateSelectorCallback.bind(this),smoothSync:l,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,needUndoTicker:h}=r,y=u.workState,T=n.render||[],O=n.sp||[],I=c==null?void 0:c.selectRect;if(y===te.Start)return{sp:[],render:[]};if(v){O.push({type:vt.Select,selectIds:s.selectIds,selectRect:I,willSyncService:y===te.Done?!0:f,isSync:!0,points:y===te.Done&&s.getChildrenPoints()||void 0,textOpt:s.textOpt});const P={useAnimation:u.useAnimation||!1};u.uid&&(P.uid=u.uid);for(const[w,d]of l.entries())d.toolsType===Tt.BackgroundSVG&&O.push({...d,workId:w,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:y===te.Done?!0:f,updateNodeOpt:P}),d.toolsType===Tt.Text?O.push({...d,workId:w,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:y===te.Done?!0:f,updateNodeOpt:P}):(f||y===te.Done)&&O.push({...d,workId:w,type:vt.UpdateNode,updateNodeOpt:P,isSync:!0})}return h&&O.push({type:vt.None,needUndoTicker:h}),{render:T,sp:O}}}class md extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.RotateNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var h;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,smoothSync:u,needUndoTicker:v}=t;r===Me&&n&&await((h=this.localWork)==null?void 0:h.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,isSync:!0,callback:this.updateSelectorCallback,smoothSync:u,needUndoTicker:v}))}updateSelectorCallback(t){const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,willSerializeData:h,isSync:y,needUndoTicker:T}=r,O=u.workState,I=n.render||[],P=n.sp||[],w=c==null?void 0:c.selectRect;if(v){h&&O===te.Done&&P.push({type:vt.Select,selectIds:s.selectIds,selectRect:w,willSyncService:!0,isSync:y,points:s.getChildrenPoints(),textOpt:s.textOpt,selectorColor:s.selectorColor,strokeColor:s.strokeColor,fillColor:s.fillColor,canTextEdit:s.canTextEdit,canRotate:s.canRotate,scaleType:s.scaleType,opt:s.getWorkOptions()||void 0,canLock:s.canLock,isLocked:s.isLocked,toolsTypes:s.toolsTypes,shapeOpt:s.shapeOpt,thickness:s.thickness,useStroke:s.useStroke,strokeType:s.strokeType});const d={useAnimation:u.useAnimation||!1};if(u.uid&&(d.uid=u.uid),f||O===te.Done)for(const[m,p]of l.entries())P.push({...p,workId:m,type:vt.UpdateNode,updateNodeOpt:d,isSync:y})}return T&&P.push({type:vt.None,needUndoTicker:T}),{render:I,sp:P}}}class yd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetFontStyle)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,textUpdateForWoker:h}=r,y=n.render||[],T=n.sp||[],O=l==null?void 0:l.selectRect;if(f&&T){v.fontSize&&T.push({type:vt.Select,selectIds:c.selectIds,selectRect:O,willSyncService:f,isSync:u,points:c.getChildrenPoints()});for(const[I,P]of s.entries())h&&P.toolsType===Tt.Text?T.push({...P,workId:I,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0}):T.push({...P,workId:I,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u})}return{render:y,sp:T}}}class Pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetPoint)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,emitEventType:this.emitEventType,willSerializeData:l,isSync:!0,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,needUndoTicker:v}=r,h=n.render||[],y=n.sp||[],T=l==null?void 0:l.selectRect;if(f&&y){for(const[O,I]of s.entries())y.push({...I,workId:O,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u});y.push({type:vt.Select,selectIds:c.selectIds,selectRect:T,willSyncService:f,isSync:u,points:c.getChildrenPoints()})}return v&&y.push({type:vt.None,needUndoTicker:v}),{render:h,sp:y}}}class Sd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetLock)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,needUndoTicker:h}=r,y=n.render||[],T=n.sp||[],O=l==null?void 0:l.selectRect;if(f&&T){for(const[I,P]of s.entries())T.push({...P,workId:I,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u});T.push({isLocked:v.isLocked,selectorColor:c.selectorColor,scaleType:c.scaleType,canRotate:c.canRotate,type:vt.Select,selectIds:c.selectIds,selectRect:O,willSyncService:f,isSync:u})}return h&&T.push({type:vt.None,needUndoTicker:h}),{render:y,sp:T}}}class xd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",de.SetShapeOpt)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,needUndoTicker:f}=r,u=n.render||[],v=n.sp||[];if(c&&v)for(const[h,y]of s.entries())v.push({...y,workId:h,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l});return f&&v.push({type:vt.None,needUndoTicker:f}),{render:u,sp:v}}}class Ul{constructor(e){dt(this,"builders",new Map);this.builders=new Map(e.map(t=>[t,this.build(t)]))}build(e){switch(e){case de.TranslateNode:return new vd;case de.ZIndexNode:return new pd;case de.CopyNode:return new ud;case de.SetColorNode:return new dd;case de.ScaleNode:return new gd;case de.RotateNode:return new md;case de.SetFontStyle:return new yd;case de.SetPoint:return new Pd;case de.SetLock:return new Sd;case de.SetShapeOpt:return new xd}}registerForWorker(e){return this.builders.forEach(t=>{t&&t.registerForWorker(e)}),this}consumeForWorker(e){for(const t of this.builders.values())if(t!=null&&t.consume(e))return!0;return!1}}const Td={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>i*(2-i),easeInOutQuad:i=>i<.5?2*i*i:-1+(4-2*i)*i,easeInCubic:i=>i*i*i,easeOutCubic:i=>--i*i*i+1,easeInOutCubic:i=>i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1,easeInQuart:i=>i*i*i*i,easeOutQuart:i=>1- --i*i*i*i,easeInOutQuart:i=>i<.5?8*i*i*i*i:1-8*--i*i*i*i,easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>1+--i*i*i*i*i,easeInOutQuint:i=>i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i,easeInSine:i=>1-Math.cos(i*Math.PI/2),easeOutSine:i=>Math.sin(i*Math.PI/2),easeInOutSine:i=>-(Math.cos(Math.PI*i)-1)/2,easeInExpo:i=>i<=0?0:Math.pow(2,10*i-10),easeOutExpo:i=>i>=1?1:1-Math.pow(2,-10*i),easeInOutExpo:i=>i<=0?0:i>=1?1:i<.5?Math.pow(2,20*i-10)/2:(2-Math.pow(2,-20*i+10))/2};class pt{constructor(e=0,t=0,r=1){this.x=e,this.y=t,this.z=r}get XY(){return[this.x,this.y]}setz(e){return this.z=e,this}setXY(e=this.x,t=this.y){return this.x=e,this.y=t,this}set(e=this.x,t=this.y,r=this.z){return this.x=e,this.y=t,this.z=r,this}setTo({x:e=0,y:t=0,z:r=1}){return this.x=e,this.y=t,this.z=r,this}rot(e){if(e===0)return this;const{x:t,y:r}=this,n=Math.sin(e),s=Math.cos(e);return this.x=t*s-r*n,this.y=t*n+r*s,this}rotWith(e,t){if(t===0)return this;const r=this.x-e.x,n=this.y-e.y,s=Math.sin(t),c=Math.cos(t);return this.x=e.x+(r*c-n*s),this.y=e.y+(r*s+n*c),this}clone(){const{x:e,y:t,z:r}=this;return new pt(e,t,r)}sub(e){return this.x-=e.x,this.y-=e.y,this}subXY(e,t){return this.x-=e,this.y-=t,this}subScalar(e){return this.x-=e,this.y-=e,this}add(e){return this.x+=e.x,this.y+=e.y,this}addXY(e,t){return this.x+=e,this.y+=t,this}addScalar(e){return this.x+=e,this.y+=e,this}clamp(e,t){return this.x=Math.max(this.x,e),this.y=Math.max(this.y,e),t!==void 0&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(e){return this.x/=e,this.y/=e,this}divV(e){return this.x/=e.x,this.y/=e.y,this}mul(e){return this.x*=e,this.y*=e,this}mulV(e){return this.x*=e.x,this.y*=e.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(e,t){const r=pt.Tan(e,this);return this.add(r.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(e){return this.x=this.y*e.z-this.z*e.y,this.y=this.z*e.x-this.x*e.z,this}dpr(e){return pt.Dpr(this,e)}cpr(e){return pt.Cpr(this,e)}len2(){return pt.Len2(this)}len(){return pt.Len(this)}pry(e){return pt.Pry(this,e)}per(){const{x:e,y:t}=this;return this.x=t,this.y=-e,this}uni(){return pt.Uni(this)}tan(e){return pt.Tan(this,e)}dist(e){return pt.Dist(this,e)}distanceToLineSegment(e,t){return pt.DistanceToLineSegment(e,t,this)}slope(e){return pt.Slope(this,e)}snapToGrid(e){return this.x=Math.round(this.x/e)*e,this.y=Math.round(this.y/e)*e,this}angle(e){return pt.Angle(this,e)}toAngle(){return pt.ToAngle(this)}lrp(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this}equals(e,t){return pt.Equals(this,e,t)}equalsXY(e,t){return pt.EqualsXY(this,e,t)}norm(){const e=this.len();return this.x=e===0?0:this.x/e,this.y=e===0?0:this.y/e,this}toFixed(){return pt.ToFixed(this)}toString(){return pt.ToString(pt.ToFixed(this))}toJson(){return pt.ToJson(this)}toArray(){return pt.ToArray(this)}static Add(e,t){return new pt(e.x+t.x,e.y+t.y)}static AddXY(e,t,r){return new pt(e.x+t,e.y+r)}static Sub(e,t){return new pt(e.x-t.x,e.y-t.y)}static SubXY(e,t,r){return new pt(e.x-t,e.y-r)}static AddScalar(e,t){return new pt(e.x+t,e.y+t)}static SubScalar(e,t){return new pt(e.x-t,e.y-t)}static Div(e,t){return new pt(e.x/t,e.y/t)}static Mul(e,t){return new pt(e.x*t,e.y*t)}static DivV(e,t){return new pt(e.x/t.x,e.y/t.y)}static MulV(e,t){return new pt(e.x*t.x,e.y*t.y)}static Neg(e){return new pt(-e.x,-e.y)}static Per(e){return new pt(e.y,-e.x)}static Dist2(e,t){return pt.Sub(e,t).len2()}static Abs(e){return new pt(Math.abs(e.x),Math.abs(e.y))}static Dist(e,t){return Math.hypot(e.y-t.y,e.x-t.x)}static Dpr(e,t){return e.x*t.x+e.y*t.y}static Cross(e,t){return new pt(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z)}static Cpr(e,t){return e.x*t.y-t.x*e.y}static Len2(e){return e.x*e.x+e.y*e.y}static Len(e){return Math.hypot(e.x,e.y)}static Pry(e,t){return pt.Dpr(e,t)/pt.Len(t)}static Uni(e){return pt.Div(e,pt.Len(e))}static Tan(e,t){return pt.Uni(pt.Sub(e,t))}static Min(e,t){return new pt(Math.min(e.x,t.x),Math.min(e.y,t.y))}static Max(e,t){return new pt(Math.max(e.x,t.x),Math.max(e.y,t.y))}static From(e){return new pt().add(e)}static FromArray(e){return new pt(e[0],e[1])}static Rot(e,t=0){const r=Math.sin(t),n=Math.cos(t);return new pt(e.x*n-e.y*r,e.x*r+e.y*n)}static RotWith(e,t,r){const n=e.x-t.x,s=e.y-t.y,c=Math.sin(r),l=Math.cos(r);return new pt(t.x+(n*l-s*c),t.y+(n*c+s*l))}static NearestPointOnLineThroughPoint(e,t,r){return pt.Mul(t,pt.Sub(r,e).pry(t)).add(e)}static NearestPointOnLineSegment(e,t,r,n=!0){const s=pt.Tan(t,e),c=pt.Add(e,pt.Mul(s,pt.Sub(r,e).pry(s)));if(n){if(c.x<Math.min(e.x,t.x))return pt.Cast(e.x<t.x?e:t);if(c.x>Math.max(e.x,t.x))return pt.Cast(e.x>t.x?e:t);if(c.y<Math.min(e.y,t.y))return pt.Cast(e.y<t.y?e:t);if(c.y>Math.max(e.y,t.y))return pt.Cast(e.y>t.y?e:t)}return c}static DistanceToLineThroughPoint(e,t,r){return pt.Dist(r,pt.NearestPointOnLineThroughPoint(e,t,r))}static DistanceToLineSegment(e,t,r,n=!0){return pt.Dist(r,pt.NearestPointOnLineSegment(e,t,r,n))}static Snap(e,t=1){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}static Cast(e){return e instanceof pt?e:pt.From(e)}static Slope(e,t){return e.x===t.y?NaN:(e.y-t.y)/(e.x-t.x)}static Angle(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}static Lrp(e,t,r){return pt.Sub(t,e).mul(r).add(e)}static Med(e,t){return new pt((e.x+t.x)/2,(e.y+t.y)/2)}static Equals(e,t,r=1e-4){return Math.abs(e.x-t.x)<r&&Math.abs(e.y-t.y)<r}static EqualsXY(e,t,r){return e.x===t&&e.y===r}static EqualsXYZ(e,t,r=1e-4){return pt.Equals(e,t,r)&&Math.abs((e.z||0)-(t.z||0))<r}static Clockwise(e,t,r){return(r.x-e.x)*(t.y-e.y)-(t.x-e.x)*(r.y-e.y)<0}static Rescale(e,t){const r=pt.Len(e);return new pt(t*e.x/r,t*e.y/r)}static ScaleWithOrigin(e,t,r){return pt.Sub(e,r).mul(t).add(r)}static ScaleWOrigin(e,t,r){return pt.Sub(e,r).mulV(t).add(r)}static ToFixed(e,t=2){return new pt(+e.x.toFixed(t),+e.y.toFixed(t),+e.z.toFixed(t))}static Nudge(e,t,r){return pt.Add(e,pt.Tan(t,e).mul(r))}static ToString(e){return`${e.x}, ${e.y}`}static ToAngle(e){let t=Math.atan2(e.y,e.x);return t<0&&(t+=Math.PI*2),t}static FromAngle(e,t=1){return new pt(Math.cos(e)*t,Math.sin(e)*t)}static ToArray(e){return[e.x,e.y,e.z]}static ToJson(e){const{x:t,y:r,z:n}=e;return{x:t,y:r,z:n}}static Average(e){const t=e.length,r=new pt(0,0);for(let n=0;n<t;n++)r.add(e[n]);return r.div(t)}static Clamp(e,t,r){return r===void 0?new pt(Math.min(Math.max(e.x,t)),Math.min(Math.max(e.y,t))):new pt(Math.min(Math.max(e.x,t),r),Math.min(Math.max(e.y,t),r))}static PointsBetween(e,t,r=6){const n=[];for(let s=0;s<r;s++){const c=Td.easeInQuad(s/(r-1)),l=pt.Lrp(e,t,c);l.z=Math.min(1,.5+Math.abs(.5-Cd(c))*.65),n.push(l)}return n}static SnapToGrid(e,t=8){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}}const Cd=i=>i<.5?2*i*i:-1+(4-2*i)*i;class Jt extends pt{constructor(e=0,t=0,r=0,n={x:0,y:0},s=0,c=0){super(e,t,r),this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(e){this.a=e}setT(e){this.t=e}setv(e){return this.v={x:e.x,y:e.y},this}set(e=this.x,t=this.y,r=this.z,n=this.v,s=this.t,c=this.a){return this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c,this}clone(){const{x:e,y:t,z:r,v:n,t:s,a:c}=this,l={x:n.x,y:n.y};return new Jt(e,t,r,l,s,c)}distance(e){return Jt.GetDistance(this,e)}isNear(e,t){return Jt.IsNear(this,e,t)}getAngleByPoints(e,t){return Jt.GetAngleByPoints(e,this,t)}static Sub(e,t){return new Jt(e.x-t.x,e.y-t.y)}static Add(e,t){return new Jt(e.x+t.x,e.y+t.y)}static GetDistance(e,t){return Jt.Len(e.clone().sub(t))}static GetAngleByPoints(e,t,r){const n=t.x-e.x,s=r.x-t.x,c=t.y-e.y,l=r.y-t.y;let f=0;const u=Math.sqrt(n*n+c*c),v=Math.sqrt(s*s+l*l);if(u&&v){const h=n*s+c*l;f=Math.acos(h/(u*v)),f=f/Math.PI*180;let y=n*l-c*s;y=y>0?1:-1,f=180+y*f}return f}static IsNear(e,t,r){return Jt.Len(e.clone().sub(t))<r}static RotWith(e,t,r,n=2){const s=e.x-t.x,c=e.y-t.y,l=Math.sin(r),f=Math.cos(r),u=Math.pow(10,n),v=Math.floor((t.x+(s*f-c*l))*u)/u,h=Math.floor((t.y+(s*l+c*f))*u)/u;return new Jt(v,h)}static GetDotStroke(e,t,r=16){const n=new pt(1,1),s=Math.PI+.001,c=Jt.Add(e,Jt.Sub(e,n).uni().per().mul(-t)),l=[];for(let f=1/r,u=f;u<=1;u+=f)l.push(Jt.RotWith(c,e,s*2*u));return l}static GetSemicircleStroke(e,t,r=-1,n=8){const s=r*(Math.PI+.001),c=[];for(let l=1/n,f=l;f<=1;f+=l)c.push(Jt.RotWith(t,e,s*f));return c}}var sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function mn(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Id=typeof sn=="object"&&sn&&sn.Object===Object&&sn,Yl=Id,wd=Yl,Od=typeof self=="object"&&self&&self.Object===Object&&self,Ad=wd||Od||Function("return this")(),Zr=Ad,Ed=Zr,Md=Ed.Symbol,wi=Md,$l=wi,Xl=Object.prototype,Ld=Xl.hasOwnProperty,Rd=Xl.toString,Oi=$l?$l.toStringTag:void 0;function bd(i){var e=Ld.call(i,Oi),t=i[Oi];try{i[Oi]=void 0;var r=!0}catch{}var n=Rd.call(i);return r&&(e?i[Oi]=t:delete i[Oi]),n}var Dd=bd,Nd=Object.prototype,Bd=Nd.toString;function Wd(i){return Bd.call(i)}var Fd=Wd,zl=wi,Ud=Dd,Yd=Fd,$d="[object Null]",Xd="[object Undefined]",jl=zl?zl.toStringTag:void 0;function zd(i){return i==null?i===void 0?Xd:$d:jl&&jl in Object(i)?Ud(i):Yd(i)}var Kn=zd;function jd(i){return i!=null&&typeof i=="object"}var on=jd,Gd=Kn,kd=on,Hd="[object Number]";function Vd(i){return typeof i=="number"||kd(i)&&Gd(i)==Hd}var Kd=Vd,Qe=mn(Kd);function Zd(){this.__data__=[],this.size=0}var Jd=Zd;function Qd(i,e){return i===e||i!==i&&e!==e}var Ao=Qd,qd=Ao;function _d(i,e){for(var t=i.length;t--;)if(qd(i[t][0],e))return t;return-1}var rs=_d,tp=rs,ep=Array.prototype,rp=ep.splice;function np(i){var e=this.__data__,t=tp(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():rp.call(e,t,1),--this.size,!0}var ip=np,sp=rs;function op(i){var e=this.__data__,t=sp(e,i);return t<0?void 0:e[t][1]}var ap=op,lp=rs;function fp(i){return lp(this.__data__,i)>-1}var cp=fp,up=rs;function hp(i,e){var t=this.__data__,r=up(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var dp=hp,pp=Jd,vp=ip,gp=ap,mp=cp,yp=dp;function Zn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Zn.prototype.clear=pp,Zn.prototype.delete=vp,Zn.prototype.get=gp,Zn.prototype.has=mp,Zn.prototype.set=yp;var ns=Zn,Pp=ns;function Sp(){this.__data__=new Pp,this.size=0}var xp=Sp;function Tp(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Cp=Tp;function Ip(i){return this.__data__.get(i)}var wp=Ip;function Op(i){return this.__data__.has(i)}var Ap=Op;function Ep(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var Ai=Ep,Mp=Kn,Lp=Ai,Rp="[object AsyncFunction]",bp="[object Function]",Dp="[object GeneratorFunction]",Np="[object Proxy]";function Bp(i){if(!Lp(i))return!1;var e=Mp(i);return e==bp||e==Dp||e==Rp||e==Np}var Gl=Bp,Wp=Zr,Fp=Wp["__core-js_shared__"],Up=Fp,Eo=Up,kl=function(){var i=/[^.]+$/.exec(Eo&&Eo.keys&&Eo.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function Yp(i){return!!kl&&kl in i}var $p=Yp,Xp=Function.prototype,zp=Xp.toString;function jp(i){if(i!=null){try{return zp.call(i)}catch{}try{return i+""}catch{}}return""}var Hl=jp,Gp=Gl,kp=$p,Hp=Ai,Vp=Hl,Kp=/[\\^$.*+?()[\]{}|]/g,Zp=/^\[object .+?Constructor\]$/,Jp=Function.prototype,Qp=Object.prototype,qp=Jp.toString,_p=Qp.hasOwnProperty,t0=RegExp("^"+qp.call(_p).replace(Kp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function e0(i){if(!Hp(i)||kp(i))return!1;var e=Gp(i)?t0:Zp;return e.test(Vp(i))}var r0=e0;function n0(i,e){return i==null?void 0:i[e]}var i0=n0,s0=r0,o0=i0;function a0(i,e){var t=o0(i,e);return s0(t)?t:void 0}var Dn=a0,l0=Dn,f0=Zr,c0=l0(f0,"Map"),Mo=c0,u0=Dn,h0=u0(Object,"create"),is=h0,Vl=is;function d0(){this.__data__=Vl?Vl(null):{},this.size=0}var p0=d0;function v0(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var g0=v0,m0=is,y0="__lodash_hash_undefined__",P0=Object.prototype,S0=P0.hasOwnProperty;function x0(i){var e=this.__data__;if(m0){var t=e[i];return t===y0?void 0:t}return S0.call(e,i)?e[i]:void 0}var T0=x0,C0=is,I0=Object.prototype,w0=I0.hasOwnProperty;function O0(i){var e=this.__data__;return C0?e[i]!==void 0:w0.call(e,i)}var A0=O0,E0=is,M0="__lodash_hash_undefined__";function L0(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=E0&&e===void 0?M0:e,this}var R0=L0,b0=p0,D0=g0,N0=T0,B0=A0,W0=R0;function Jn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Jn.prototype.clear=b0,Jn.prototype.delete=D0,Jn.prototype.get=N0,Jn.prototype.has=B0,Jn.prototype.set=W0;var F0=Jn,Kl=F0,U0=ns,Y0=Mo;function $0(){this.size=0,this.__data__={hash:new Kl,map:new(Y0||U0),string:new Kl}}var X0=$0;function z0(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var j0=z0,G0=j0;function k0(i,e){var t=i.__data__;return G0(e)?t[typeof e=="string"?"string":"hash"]:t.map}var ss=k0,H0=ss;function V0(i){var e=H0(this,i).delete(i);return this.size-=e?1:0,e}var K0=V0,Z0=ss;function J0(i){return Z0(this,i).get(i)}var Q0=J0,q0=ss;function _0(i){return q0(this,i).has(i)}var tv=_0,ev=ss;function rv(i,e){var t=ev(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var nv=rv,iv=X0,sv=K0,ov=Q0,av=tv,lv=nv;function Qn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Qn.prototype.clear=iv,Qn.prototype.delete=sv,Qn.prototype.get=ov,Qn.prototype.has=av,Qn.prototype.set=lv;var Zl=Qn,fv=ns,cv=Mo,uv=Zl,hv=200;function dv(i,e){var t=this.__data__;if(t instanceof fv){var r=t.__data__;if(!cv||r.length<hv-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new uv(r)}return t.set(i,e),this.size=t.size,this}var pv=dv,vv=ns,gv=xp,mv=Cp,yv=wp,Pv=Ap,Sv=pv;function qn(i){var e=this.__data__=new vv(i);this.size=e.size}qn.prototype.clear=gv,qn.prototype.delete=mv,qn.prototype.get=yv,qn.prototype.has=Pv,qn.prototype.set=Sv;var Jl=qn;function xv(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var Tv=xv,Cv=Dn,Iv=function(){try{var i=Cv(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Ql=Iv,ql=Ql;function wv(i,e,t){e=="__proto__"&&ql?ql(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var _l=wv,Ov=_l,Av=Ao,Ev=Object.prototype,Mv=Ev.hasOwnProperty;function Lv(i,e,t){var r=i[e];(!(Mv.call(i,e)&&Av(r,t))||t===void 0&&!(e in i))&&Ov(i,e,t)}var tf=Lv,Rv=tf,bv=_l;function Dv(i,e,t,r){var n=!t;t||(t={});for(var s=-1,c=e.length;++s<c;){var l=e[s],f=r?r(t[l],i[l],l,t,i):void 0;f===void 0&&(f=i[l]),n?bv(t,l,f):Rv(t,l,f)}return t}var os=Dv;function Nv(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Bv=Nv,Wv=Kn,Fv=on,Uv="[object Arguments]";function Yv(i){return Fv(i)&&Wv(i)==Uv}var $v=Yv,ef=$v,Xv=on,rf=Object.prototype,zv=rf.hasOwnProperty,jv=rf.propertyIsEnumerable,Gv=ef(function(){return arguments}())?ef:function(i){return Xv(i)&&zv.call(i,"callee")&&!jv.call(i,"callee")},nf=Gv,kv=Array.isArray,Ei=kv,as={exports:{}};function Hv(){return!1}var Vv=Hv;as.exports,function(i,e){var t=Zr,r=Vv,n=e&&!e.nodeType&&e,s=n&&!0&&i&&!i.nodeType&&i,c=s&&s.exports===n,l=c?t.Buffer:void 0,f=l?l.isBuffer:void 0,u=f||r;i.exports=u}(as,as.exports);var Lo=as.exports,Kv=9007199254740991,Zv=/^(?:0|[1-9]\d*)$/;function Jv(i,e){var t=typeof i;return e=e??Kv,!!e&&(t=="number"||t!="symbol"&&Zv.test(i))&&i>-1&&i%1==0&&i<e}var Qv=Jv,qv=9007199254740991;function _v(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=qv}var sf=_v,tg=Kn,eg=sf,rg=on,ng="[object Arguments]",ig="[object Array]",sg="[object Boolean]",og="[object Date]",ag="[object Error]",lg="[object Function]",fg="[object Map]",cg="[object Number]",ug="[object Object]",hg="[object RegExp]",dg="[object Set]",pg="[object String]",vg="[object WeakMap]",gg="[object ArrayBuffer]",mg="[object DataView]",yg="[object Float32Array]",Pg="[object Float64Array]",Sg="[object Int8Array]",xg="[object Int16Array]",Tg="[object Int32Array]",Cg="[object Uint8Array]",Ig="[object Uint8ClampedArray]",wg="[object Uint16Array]",Og="[object Uint32Array]",$e={};$e[yg]=$e[Pg]=$e[Sg]=$e[xg]=$e[Tg]=$e[Cg]=$e[Ig]=$e[wg]=$e[Og]=!0,$e[ng]=$e[ig]=$e[gg]=$e[sg]=$e[mg]=$e[og]=$e[ag]=$e[lg]=$e[fg]=$e[cg]=$e[ug]=$e[hg]=$e[dg]=$e[pg]=$e[vg]=!1;function Ag(i){return rg(i)&&eg(i.length)&&!!$e[tg(i)]}var Eg=Ag;function Mg(i){return function(e){return i(e)}}var ls=Mg,fs={exports:{}};fs.exports,function(i,e){var t=Yl,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s&&t.process,l=function(){try{var f=n&&n.require&&n.require("util").types;return f||c&&c.binding&&c.binding("util")}catch{}}();i.exports=l}(fs,fs.exports);var Ro=fs.exports,Lg=Eg,Rg=ls,of=Ro,af=of&&of.isTypedArray,bg=af?Rg(af):Lg,lf=bg,Dg=Bv,Ng=nf,Bg=Ei,Wg=Lo,Fg=Qv,Ug=lf,Yg=Object.prototype,$g=Yg.hasOwnProperty;function Xg(i,e){var t=Bg(i),r=!t&&Ng(i),n=!t&&!r&&Wg(i),s=!t&&!r&&!n&&Ug(i),c=t||r||n||s,l=c?Dg(i.length,String):[],f=l.length;for(var u in i)(e||$g.call(i,u))&&!(c&&(u=="length"||n&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Fg(u,f)))&&l.push(u);return l}var ff=Xg,zg=Object.prototype;function jg(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||zg;return i===t}var bo=jg;function Gg(i,e){return function(t){return i(e(t))}}var cf=Gg,kg=cf,Hg=kg(Object.keys,Object),Vg=Hg,Kg=bo,Zg=Vg,Jg=Object.prototype,Qg=Jg.hasOwnProperty;function qg(i){if(!Kg(i))return Zg(i);var e=[];for(var t in Object(i))Qg.call(i,t)&&t!="constructor"&&e.push(t);return e}var _g=qg,tm=Gl,em=sf;function rm(i){return i!=null&&em(i.length)&&!tm(i)}var Do=rm,nm=ff,im=_g,sm=Do;function om(i){return sm(i)?nm(i):im(i)}var No=om,am=os,lm=No;function fm(i,e){return i&&am(e,lm(e),i)}var cm=fm;function um(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var hm=um,dm=Ai,pm=bo,vm=hm,gm=Object.prototype,mm=gm.hasOwnProperty;function ym(i){if(!dm(i))return vm(i);var e=pm(i),t=[];for(var r in i)r=="constructor"&&(e||!mm.call(i,r))||t.push(r);return t}var Pm=ym,Sm=ff,xm=Pm,Tm=Do;function Cm(i){return Tm(i)?Sm(i,!0):xm(i)}var Bo=Cm,Im=os,wm=Bo;function Om(i,e){return i&&Im(e,wm(e),i)}var Am=Om,cs={exports:{}};cs.exports,function(i,e){var t=Zr,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s?t.Buffer:void 0,l=c?c.allocUnsafe:void 0;function f(u,v){if(v)return u.slice();var h=u.length,y=l?l(h):new u.constructor(h);return u.copy(y),y}i.exports=f}(cs,cs.exports);var Em=cs.exports;function Mm(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var Lm=Mm;function Rm(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var c=i[t];e(c,t,i)&&(s[n++]=c)}return s}var uf=Rm;function bm(){return[]}var hf=bm,Dm=uf,Nm=hf,Bm=Object.prototype,Wm=Bm.propertyIsEnumerable,df=Object.getOwnPropertySymbols,Fm=df?function(i){return i==null?[]:(i=Object(i),Dm(df(i),function(e){return Wm.call(i,e)}))}:Nm,Wo=Fm,Um=os,Ym=Wo;function $m(i,e){return Um(i,Ym(i),e)}var Xm=$m;function zm(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var Fo=zm,jm=cf,Gm=jm(Object.getPrototypeOf,Object),pf=Gm,km=Fo,Hm=pf,Vm=Wo,Km=hf,Zm=Object.getOwnPropertySymbols,Jm=Zm?function(i){for(var e=[];i;)km(e,Vm(i)),i=Hm(i);return e}:Km,vf=Jm,Qm=os,qm=vf;function _m(i,e){return Qm(i,qm(i),e)}var ty=_m,ey=Fo,ry=Ei;function ny(i,e,t){var r=e(i);return ry(i)?r:ey(r,t(i))}var gf=ny,iy=gf,sy=Wo,oy=No;function ay(i){return iy(i,oy,sy)}var mf=ay,ly=gf,fy=vf,cy=Bo;function uy(i){return ly(i,cy,fy)}var hy=uy,dy=Dn,py=Zr,vy=dy(py,"DataView"),gy=vy,my=Dn,yy=Zr,Py=my(yy,"Promise"),Sy=Py,xy=Dn,Ty=Zr,Cy=xy(Ty,"Set"),yf=Cy,Iy=Dn,wy=Zr,Oy=Iy(wy,"WeakMap"),Ay=Oy,Uo=gy,Yo=Mo,$o=Sy,Xo=yf,zo=Ay,Pf=Kn,_n=Hl,Sf="[object Map]",Ey="[object Object]",xf="[object Promise]",Tf="[object Set]",Cf="[object WeakMap]",If="[object DataView]",My=_n(Uo),Ly=_n(Yo),Ry=_n($o),by=_n(Xo),Dy=_n(zo),Nn=Pf;(Uo&&Nn(new Uo(new ArrayBuffer(1)))!=If||Yo&&Nn(new Yo)!=Sf||$o&&Nn($o.resolve())!=xf||Xo&&Nn(new Xo)!=Tf||zo&&Nn(new zo)!=Cf)&&(Nn=function(i){var e=Pf(i),t=e==Ey?i.constructor:void 0,r=t?_n(t):"";if(r)switch(r){case My:return If;case Ly:return Sf;case Ry:return xf;case by:return Tf;case Dy:return Cf}return e});var us=Nn,Ny=Object.prototype,By=Ny.hasOwnProperty;function Wy(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&By.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Fy=Wy,Uy=Zr,Yy=Uy.Uint8Array,wf=Yy,Of=wf;function $y(i){var e=new i.constructor(i.byteLength);return new Of(e).set(new Of(i)),e}var jo=$y,Xy=jo;function zy(i,e){var t=e?Xy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var jy=zy,Gy=/\w*$/;function ky(i){var e=new i.constructor(i.source,Gy.exec(i));return e.lastIndex=i.lastIndex,e}var Hy=ky,Af=wi,Ef=Af?Af.prototype:void 0,Mf=Ef?Ef.valueOf:void 0;function Vy(i){return Mf?Object(Mf.call(i)):{}}var Ky=Vy,Zy=jo;function Jy(i,e){var t=e?Zy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var Qy=Jy,qy=jo,_y=jy,t1=Hy,e1=Ky,r1=Qy,n1="[object Boolean]",i1="[object Date]",s1="[object Map]",o1="[object Number]",a1="[object RegExp]",l1="[object Set]",f1="[object String]",c1="[object Symbol]",u1="[object ArrayBuffer]",h1="[object DataView]",d1="[object Float32Array]",p1="[object Float64Array]",v1="[object Int8Array]",g1="[object Int16Array]",m1="[object Int32Array]",y1="[object Uint8Array]",P1="[object Uint8ClampedArray]",S1="[object Uint16Array]",x1="[object Uint32Array]";function T1(i,e,t){var r=i.constructor;switch(e){case u1:return qy(i);case n1:case i1:return new r(+i);case h1:return _y(i,t);case d1:case p1:case v1:case g1:case m1:case y1:case P1:case S1:case x1:return r1(i,t);case s1:return new r;case o1:case f1:return new r(i);case a1:return t1(i);case l1:return new r;case c1:return e1(i)}}var C1=T1,I1=Ai,Lf=Object.create,w1=function(){function i(){}return function(e){if(!I1(e))return{};if(Lf)return Lf(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),O1=w1,A1=O1,E1=pf,M1=bo;function L1(i){return typeof i.constructor=="function"&&!M1(i)?A1(E1(i)):{}}var R1=L1,b1=us,D1=on,N1="[object Map]";function B1(i){return D1(i)&&b1(i)==N1}var W1=B1,F1=W1,U1=ls,Rf=Ro,bf=Rf&&Rf.isMap,Y1=bf?U1(bf):F1,$1=Y1,X1=us,z1=on,j1="[object Set]";function G1(i){return z1(i)&&X1(i)==j1}var k1=G1,H1=k1,V1=ls,Df=Ro,Nf=Df&&Df.isSet,K1=Nf?V1(Nf):H1,Bf=K1,Z1=mn(Bf),J1=Jl,Q1=Tv,q1=tf,_1=cm,tP=Am,eP=Em,rP=Lm,nP=Xm,iP=ty,sP=mf,oP=hy,aP=us,lP=Fy,fP=C1,cP=R1,uP=Ei,hP=Lo,dP=$1,pP=Ai,vP=Bf,gP=No,mP=Bo,yP=1,PP=2,SP=4,Wf="[object Arguments]",xP="[object Array]",TP="[object Boolean]",CP="[object Date]",IP="[object Error]",Ff="[object Function]",wP="[object GeneratorFunction]",OP="[object Map]",AP="[object Number]",Uf="[object Object]",EP="[object RegExp]",MP="[object Set]",LP="[object String]",RP="[object Symbol]",bP="[object WeakMap]",DP="[object ArrayBuffer]",NP="[object DataView]",BP="[object Float32Array]",WP="[object Float64Array]",FP="[object Int8Array]",UP="[object Int16Array]",YP="[object Int32Array]",$P="[object Uint8Array]",XP="[object Uint8ClampedArray]",zP="[object Uint16Array]",jP="[object Uint32Array]",We={};We[Wf]=We[xP]=We[DP]=We[NP]=We[TP]=We[CP]=We[BP]=We[WP]=We[FP]=We[UP]=We[YP]=We[OP]=We[AP]=We[Uf]=We[EP]=We[MP]=We[LP]=We[RP]=We[$P]=We[XP]=We[zP]=We[jP]=!0,We[IP]=We[Ff]=We[bP]=!1;function hs(i,e,t,r,n,s){var c,l=e&yP,f=e&PP,u=e&SP;if(t&&(c=n?t(i,r,n,s):t(i)),c!==void 0)return c;if(!pP(i))return i;var v=uP(i);if(v){if(c=lP(i),!l)return rP(i,c)}else{var h=aP(i),y=h==Ff||h==wP;if(hP(i))return eP(i,l);if(h==Uf||h==Wf||y&&!n){if(c=f||y?{}:cP(i),!l)return f?iP(i,tP(c,i)):nP(i,_1(c,i))}else{if(!We[h])return n?i:{};c=fP(i,h,l)}}s||(s=new J1);var T=s.get(i);if(T)return T;s.set(i,c),vP(i)?i.forEach(function(P){c.add(hs(P,e,t,P,i,s))}):dP(i)&&i.forEach(function(P,w){c.set(w,hs(P,e,t,w,i,s))});var O=u?f?oP:sP:f?mP:gP,I=v?void 0:O(i);return Q1(I||i,function(P,w){I&&(w=P,P=i[w]),q1(c,w,hs(P,e,t,w,i,s))}),c}var GP=hs,kP=GP,HP=1,VP=4;function KP(i){return kP(i,HP|VP)}var ZP=KP,ar=mn(ZP);const Yf="1.1.35",JP="@netless/appliance-plugin";if(typeof window<"u"){let i=window.__netlessUA||"";i+=` ${JP}@${Yf}`,window.__netlessUA=i}const ur={syncOpt:{interval:300},bufferSize:{full:2e4,sub:600},bezier:{combineUnitTime:300},pencilEraser:{maxImageWidth:1920,maxImageHeight:1920,maxCombineTime:500}};function yn(i,e=!0){const t=i.length;if(t<2)return"";let r=i[0],n=i[1];if(t===2)return`M${ni(r)}L${ni(n)}`;let s="";for(let c=2,l=t-1;c<l;c++)r=i[c],n=i[c+1],s+=ii(r,n);return e?`M${ii(i[0],i[1])}Q${ni(i[1])}${ii(i[1],i[2])}T${s}${ii(i[t-1],i[0])}${ii(i[0],i[1])}Z`:`M${ni(i[0])}Q${ni(i[1])}${ii(i[1],i[2])}${i.length>3?"T":""}${s}L${ni(i[t-1])}`}const Ir=class Ir{constructor(e){dt(this,"maxImageWidth",ur.pencilEraser.maxImageWidth);dt(this,"maxImageHeight",ur.pencilEraser.maxImageHeight);dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"vNodes");dt(this,"drawLayer");dt(this,"fullLayer");dt(this,"workId");dt(this,"isDelete",!1);const{vNodes:t,fullLayer:r,drawLayer:n,workId:s,toolsOpt:c}=e;this.vNodes=t,this.fullLayer=r,this.drawLayer=n,this.workId=s,this.syncUnitTime=c.syncUnitTime||this.syncUnitTime}get baseConsumeResult(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions}}filterSamePoints(e,t=.01){return e.reduce((r,n)=>{const s=r[r.length-1];return(n&&!s||n&&s&&!n.isNear(s,t))&&r.push(n),r},[])}setWorkId(e){this.workId=e}getWorkId(){return this.workId}getWorkOptions(){return this.workOptions}setWorkOptions(e){var n,s,c;this.workOptions=e,this.syncUnitTime=e.syncUnitTime||this.syncUnitTime;const t=(n=this.workId)==null?void 0:n.toString(),r=t&&((s=this.vNodes)==null?void 0:s.get(t))||void 0;t&&r&&(r.opt=e,(c=this.vNodes)==null||c.setInfo(t,r))}updataOptService(e){var n,s;let t;const r=(n=this.workId)==null?void 0:n.toString();if(r&&e){const c=this.fullLayer.getElementsByName(r)||this.drawLayer&&this.drawLayer.getElementsByName(r)||[];if(c.length!==1)return;const l=c[0],{pos:f,zIndex:u,scale:v,angle:h,translate:y}=e,T={};Qe(u)&&(T.zIndex=u),f&&(T.pos=[f[0],f[1]]),v&&(T.scale=v),h&&(T.rotate=h),y&&(T.translate=y),l.attr(T);const O=l==null?void 0:l.getBoundingClientRect();return O&&(t=Zt(t,{x:Math.floor(O.x-Ir.SafeBorderPadding),y:Math.floor(O.y-Ir.SafeBorderPadding),w:Math.floor(O.width+Ir.SafeBorderPadding*2),h:Math.floor(O.height+Ir.SafeBorderPadding*2)})),(s=this.vNodes)==null||s.setInfo(r,{rect:t,centerPos:f}),t}}drawEraserlines(e,t){const{group:r,eraserlines:n,pos:s,layer:c}=e,l=c.parent;if(t)try{const u=(c.renderer.glRenderer||c.renderer.canvasRenderer).options.displayRatio,v=r.getBoundingClientRect(),h=v.width*u*c.worldScaling[0],y=v.height*u*c.worldScaling[1];let T=1;(h>this.maxImageWidth||y>this.maxImageHeight)&&(T=Math.min(this.maxImageWidth/h,this.maxImageHeight/y));let O=c.getAttribute("scale");O=[O[0]*T,O[1]*T];const I=c.parent.parent,P=c.getAttribute("translate"),w=this.createVmRenderNode(`${this.workId}_bitMapLayer`,I,{offscreen:l.offscreen,width:l.width,height:l.height,contextType:"2d",autoRender:!1,bufferSize:500},O,P),d=r.cloneNode(!0);if(!n||!n.length)return;this.addEraserlines(d,n,s,!1),w.appendChild(d);const m=w.parent;m.render();const p=w.renderer.canvasRenderer,S=p.context;if(!S)return;const E=p.options.displayRatio,R=d.getBoundingClientRect(),D={x:R.x,y:R.y,w:R.width,h:R.height},U={x:0,y:0,w:I.width,h:I.height};if(Bi(D,U)===yr.outside){Cr(d,m),I.removeChild(m),this.isDelete=!0;return}const W=ar(D);W.x=Math.floor(Math.max(D.x,0)),W.y=Math.floor(Math.max(D.y,0)),W.w=Math.min(D.x+D.w,I.width)-W.x,W.h=Math.min(D.y+D.h,I.height)-W.y;const $=this.getGroupRect(W,E),B=$.x,N=$.y,z=$.w,J=$.h;let et=S.getImageData(B,N,z,J);if(this.isTransparentRectByCanvas(et)){Cr(d,m),I.removeChild(m),this.isDelete=!0,et=null;return}Cr(r,l);const ct=this.createSpriteNode({imageData:et,safariRect:W,originRect:D,worldScaling:w.worldScaling});ct&&r.append(ct),Cr(d,m),I.removeChild(m),l.deleteTexture(et),et=null}catch(f){console.error("[BaseShapeTool] drawEraserlines error:",f);return}}createVmRenderNode(e,t,r,n,s){const{width:c,height:l}=r,f=`bitMap-${e}`,u=t.layer(f,r),v=new Je({anchor:[.5,.5],pos:[c*.5,l*.5],size:[c,l],name:"viewport",id:e});return v.setAttribute("scale",n),v.setAttribute("translate",s),u.append(v),v}getGroupRect(e,t){const r=Math.floor(e.x*t),n=Math.floor(e.y*t),s=Math.floor(e.w*t),c=Math.floor(e.h*t);return{x:r,y:n,w:s,h:c}}addEraserlines(e,t,r,n=!0){for(const s of t){const{thickness:c,op:l}=s;for(const f of l){const u=f.map((O,I)=>I%2?O-r[1]:O-r[0]),v=this.computEraserPoints(u,c),h=yn(v,!0),y={pos:[0,0],d:h,fillColor:"rgba(0,0,0,1)"},T=new gn(y);T.addEventListener("beforerender",({detail:O})=>{const I=O.context;n?I.blendFuncSeparate(I.ZERO,I.ZERO,I.ZERO,I.ZERO):I.globalCompositeOperation="destination-out"}),T.addEventListener("afterrender",({detail:O})=>{const I=O.context;n?I.blendFuncSeparate(I.SRC_ALPHA,I.ONE_MINUS_SRC_ALPHA,I.ONE,I.ONE_MINUS_SRC_ALPHA):I.globalCompositeOperation="source-over"}),e.append(T)}}}isTransparentRectByCanvas(e){let t=!0;for(let r=0;r<e.data.length;r+=4)if(e.data[r+3]!==0){t=!1;break}return t}createSpriteNode(e){const{imageData:t,worldScaling:r,safariRect:n,originRect:s}=e;let c;if(typeof OffscreenCanvas=="function"){c=new OffscreenCanvas(t.width,t.height);const v=c.getContext("2d");v&&v.putImageData(t,0,0)}else if(typeof document<"u"){c=document.createElement("canvas"),c.width=t.width,c.height=t.height;const v=c.getContext("2d");v&&v.putImageData(t,0,0)}if(!c)return console.warn("Failed to create imageEraserBitmap Sprite"),null;const l=[Math.floor(s.w/r[0]),Math.floor(s.h/r[1])],f=[Math.floor((n.x-s.x)/r[0]),Math.floor((n.y-s.y)/r[1]),Math.floor(n.w/r[0]),Math.floor(n.h/r[1])],u={name:"eraserTexture",anchor:[.5,.5],pos:[0,0],size:l,texture:c,textureRect:f};return new Fl(u)}computEraserPoints(e,t){const r=Math.ceil(t/2);return e.length===2?this.computDot(e,r):this.computLine(e,r)}computDot(e,t){const r=new Jt(e[0],e[1]);return Jt.GetDotStroke(r,t,8)}computLine(e,t){const r=[],n=[];let s,c;for(let l=0;l<e.length;l+=2){const f=new Jt(e[l],e[l+1]);let u;if(l==e.length-2){const v=new Jt(e[l-2],e[l-1]);u=pt.Sub(f,v).uni(),s=f}else{l===0&&(c=f);const v=new Jt(e[l+2],e[l+3]);u=pt.Sub(v,f).uni()}if(u){const v=pt.Per(u).mul(t);r.push(Jt.Sub(f,v)),n.push(Jt.Add(f,v))}}if(s&&c){const l=Jt.GetSemicircleStroke(s,r[r.length-1],-1,8),f=Jt.GetSemicircleStroke(c,n[0],-1,8);return r.concat(l,n.reverse(),f)}return[]}replace(e,t,r){var s;if(!t){r&&e.append(r);return}const n=e.getElementsByName(t);if(n.length)for(const c of n)r?pT(r,c,e):(c.remove(),dr(c,e.parent));else r&&e.append(r);this.fullLayer!==this.drawLayer&&(this.fullLayer===e?(s=this.drawLayer)==null||s.getElementsByName(t).forEach(l=>{var f;l.remove(),dr(l,(f=this.drawLayer)==null?void 0:f.parent)}):this.fullLayer.getElementsByName(t).forEach(l=>{l.remove(),dr(l,this.fullLayer.parent)}))}removeDrawCountNodes(e,t){const r=[];e.getElementsByName(this.workId).forEach(n=>{n.id&&t&&Number(n.id)<t&&r.push(n)});for(const n of r)n.remove(),dr(n,e.parent)}static updateNodeOpt(e){var d;const{node:t,opt:r,vNodes:n,willSerializeData:s,targetNode:c}=e,{zIndex:l,translate:f,angle:u,originPoint:v,scenePoint:h,scale:y,pointMap:T,thickness:O}=r;let I;const P=c&&ar(c)||n.get(t.name);if(!P)return;Qe(l)&&(t.setAttribute("zIndex",l),P.opt.zIndex=l);const w=t.parent;if(w){if(v&&y&&c){const m=[P.op[0],P.op[1]];Es(P.op,h,y,f);const p=[P.op[0],P.op[1]],S=[p[0]-m[0],p[1]-m[1]];if(P.centerPos=[P.centerPos[0]+S[0],P.centerPos[1]+S[1]],P.opt.translate=void 0,P.opt.scale=void 0,P.opt.eraserlines)for(let E=0;E<P.opt.eraserlines.length;E++){const{op:R,thickness:D}=P.opt.eraserlines[E];P.opt.eraserlines[E].thickness=Math.round(D*Math.max(y[0],y[1]));for(let U=0;U<R.length;U++)na(R[U],h,y,f)}}else if(f)if(t.setAttribute("translate",f),P.opt.translate=f,c){const m=[f[0]*w.worldScaling[0],f[1]*w.worldScaling[1]];I=Ni(P.rect,m),P.rect=I}else{const m=Ir.getRectFromLayer(w,t.name);P.rect=m||P.rect}else if(Qe(u))if(t.setAttribute("rotate",u),P.opt.rotate=u,c)I=ra(P.rect,u),P.rect=I;else{const m=Ir.getRectFromLayer(w,t.name);P.rect=m||P.rect}if(T){const m=T.get(t.name);if(m)for(let p=0,S=0;p<P.op.length;p+=3,S++)P.op[p]=m[S][0],P.op[p+1]=m[S][1]}if(O&&((d=P==null?void 0:P.opt)!=null&&d.thickness)&&(P.opt.thickness=O),s&&!(v&&y&&c)){if(f){const m=P.op.map((p,S)=>{const E=S%3;return E===0?p+f[0]:E===1?p+f[1]:p});if(P.op=m,P.centerPos=[P.centerPos[0]+f[0],P.centerPos[1]+f[1]],P!=null&&P.opt&&(P.opt.translate=void 0),P.opt.eraserlines)for(let p=0;p<P.opt.eraserlines.length;p++){const{op:S}=P.opt.eraserlines[p];for(let E=0;E<S.length;E++){const R=S[E].map((D,U)=>U%2?D+f[1]:D+f[0]);P.opt.eraserlines[p].op[E]=R}}}else if(Qe(u)){const m=P.op;if(oT(m,P.centerPos,u),P.op=m,P!=null&&P.opt&&(P.opt.rotate=void 0),P.opt.eraserlines)for(let p=0;p<P.opt.eraserlines.length;p++){const{op:S}=P.opt.eraserlines[p];for(let E=0;E<S.length;E++)aT(S[E],P.centerPos,u)}}}P&&n.setInfo(t.name,P)}}static getCenterPos(e,t){const{worldPosition:r,worldScaling:n}=t;return[(e.x+e.w/2-r[0])/n[0],(e.y+e.h/2-r[1])/n[1]]}static getRectFromLayer(e,t){const r=e.getElementsByName(t)[0];if(r){const n=r.getBoundingClientRect();return{x:Math.floor(n.x-Ir.SafeBorderPadding),y:Math.floor(n.y-Ir.SafeBorderPadding),w:Math.floor(n.width+Ir.SafeBorderPadding*2),h:Math.floor(n.height+Ir.SafeBorderPadding*2)}}}static isWillRefresh(e){const{toolsType:t,opt:r,node:n,updateOpt:s,willSerializeData:c}=e;return!!(c&&(s.angle||s.translate)||s.thickness&&r.thickness&&r.thickness!==s.thickness||s.strokeType&&r.strokeType&&r.strokeType!==s.strokeType||s.originPoint&&s.scenePoint&&s.scale||s.pointMap&&s.pointMap.has(n.name)||t===Tt.Text&&(s.fontSize||s.translate||s.textInfos&&s.textInfos.get(n.name))||t===Tt.BackgroundSVG&&(s.translate||s.scale)||t===Tt.Image&&(s.angle||s.translate||s.scale||s.strokeColor&&r.type===es.Iconify)||t===s.toolsType&&s.willRefresh||r.eraserlines&&r.eraserlines.length&&(s.strokeColor||s.fillColor))}};dt(Ir,"SafeBorderPadding",10);let $t=Ir;const Go=Object.freeze([Object.freeze({width:18,height:26}),Object.freeze({width:26,height:34}),Object.freeze({width:34,height:50}),Object.freeze({width:48,height:74})]);var $f={exports:{}};(function(i){var e=function(){var t=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function c(f,u){if(!s[f]){s[f]={};for(var v=0;v<f.length;v++)s[f][f.charAt(v)]=v}return s[f][u]}var l={compressToBase64:function(f){if(f==null)return"";var u=l._compress(f,6,function(v){return r.charAt(v)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(f){return f==null?"":f==""?null:l._decompress(f.length,32,function(u){return c(r,f.charAt(u))})},compressToUTF16:function(f){return f==null?"":l._compress(f,15,function(u){return t(u+32)})+" "},decompressFromUTF16:function(f){return f==null?"":f==""?null:l._decompress(f.length,16384,function(u){return f.charCodeAt(u)-32})},compressToUint8Array:function(f){for(var u=l.compress(f),v=new Uint8Array(u.length*2),h=0,y=u.length;h<y;h++){var T=u.charCodeAt(h);v[h*2]=T>>>8,v[h*2+1]=T%256}return v},decompressFromUint8Array:function(f){if(f==null)return l.decompress(f);for(var u=new Array(f.length/2),v=0,h=u.length;v<h;v++)u[v]=f[v*2]*256+f[v*2+1];var y=[];return u.forEach(function(T){y.push(t(T))}),l.decompress(y.join(""))},compressToEncodedURIComponent:function(f){return f==null?"":l._compress(f,6,function(u){return n.charAt(u)})},decompressFromEncodedURIComponent:function(f){return f==null?"":f==""?null:(f=f.replace(/ /g,"+"),l._decompress(f.length,32,function(u){return c(n,f.charAt(u))}))},compress:function(f){return l._compress(f,16,function(u){return t(u)})},_compress:function(f,u,v){if(f==null)return"";var h,y,T={},O={},I="",P="",w="",d=2,m=3,p=2,S=[],E=0,R=0,D;for(D=0;D<f.length;D+=1)if(I=f.charAt(D),Object.prototype.hasOwnProperty.call(T,I)||(T[I]=m++,O[I]=!0),P=w+I,Object.prototype.hasOwnProperty.call(T,P))w=P;else{if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)E=E<<1,R==u-1?(R=0,S.push(v(E)),E=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)E=E<<1|y,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++),T[P]=m++,w=String(I)}if(w!==""){if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)E=E<<1,R==u-1?(R=0,S.push(v(E)),E=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)E=E<<1|y,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++)}for(y=2,h=0;h<p;h++)E=E<<1|y&1,R==u-1?(R=0,S.push(v(E)),E=0):R++,y=y>>1;for(;;)if(E=E<<1,R==u-1){S.push(v(E));break}else R++;return S.join("")},decompress:function(f){return f==null?"":f==""?null:l._decompress(f.length,32768,function(u){return f.charCodeAt(u)})},_decompress:function(f,u,v){var h=[],y=4,T=4,O=3,I="",P=[],w,d,m,p,S,E,R,D={val:v(0),position:u,index:1};for(w=0;w<3;w+=1)h[w]=w;for(m=0,S=Math.pow(2,2),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;switch(m){case 0:for(m=0,S=Math.pow(2,8),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;R=t(m);break;case 1:for(m=0,S=Math.pow(2,16),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;R=t(m);break;case 2:return""}for(h[3]=R,d=R,P.push(R);;){if(D.index>f)return"";for(m=0,S=Math.pow(2,O),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;switch(R=m){case 0:for(m=0,S=Math.pow(2,8),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;h[T++]=t(m),R=T-1,y--;break;case 1:for(m=0,S=Math.pow(2,16),E=1;E!=S;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),m|=(p>0?1:0)*E,E<<=1;h[T++]=t(m),R=T-1,y--;break;case 2:return P.join("")}if(y==0&&(y=Math.pow(2,O),O++),h[R])I=h[R];else if(R===T)I=d+d.charAt(0);else return null;P.push(I),h[T++]=d+I.charAt(0),y--,d=I,y==0&&(y=Math.pow(2,O),O++)}}};return l}();i!=null?i.exports=e:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return e})})($f);var Xf=$f.exports;function ti(i){return JSON.parse(Xf.decompress(i))}function hr(i){return Xf.compress(JSON.stringify(i))}var zf={exports:{}};(function(i){(function(){var e={};e.version="6.4.2.2",e.use_lines=!0,e.use_xyz=!1;var t=!1;i.exports?(i.exports=e,t=!0):typeof document<"u"?window.ClipperLib=e:self.ClipperLib=e;var r;if(t){var n="chrome";r="Netscape"}else{var n=navigator.userAgent.toString().toLowerCase();r=navigator.appName}var s={};n.indexOf("chrome")!=-1&&n.indexOf("chromium")==-1?s.chrome=1:s.chrome=0,n.indexOf("chromium")!=-1?s.chromium=1:s.chromium=0,n.indexOf("safari")!=-1&&n.indexOf("chrome")==-1&&n.indexOf("chromium")==-1?s.safari=1:s.safari=0,n.indexOf("firefox")!=-1?s.firefox=1:s.firefox=0,n.indexOf("firefox/17")!=-1?s.firefox17=1:s.firefox17=0,n.indexOf("firefox/15")!=-1?s.firefox15=1:s.firefox15=0,n.indexOf("firefox/3")!=-1?s.firefox3=1:s.firefox3=0,n.indexOf("opera")!=-1?s.opera=1:s.opera=0,n.indexOf("msie 10")!=-1?s.msie10=1:s.msie10=0,n.indexOf("msie 9")!=-1?s.msie9=1:s.msie9=0,n.indexOf("msie 8")!=-1?s.msie8=1:s.msie8=0,n.indexOf("msie 7")!=-1?s.msie7=1:s.msie7=0,n.indexOf("msie ")!=-1?s.msie=1:s.msie=0,e.biginteger_used=null;var c;function l(a,x,A){e.biginteger_used=1,a!=null&&(typeof a=="number"&&typeof x>"u"?this.fromInt(a):typeof a=="number"?this.fromNumber(a,x,A):x==null&&typeof a!="string"?this.fromString(a,256):this.fromString(a,x))}function f(){return new l(null,void 0,void 0)}function u(a,x,A,F,j,_){for(;--_>=0;){var st=x*this[a++]+A[F]+j;j=Math.floor(st/67108864),A[F++]=st&67108863}return j}function v(a,x,A,F,j,_){for(var st=x&32767,Pt=x>>15;--_>=0;){var xt=this[a]&32767,Dt=this[a++]>>15,Ht=Pt*xt+Dt*st;xt=st*xt+((Ht&32767)<<15)+A[F]+(j&1073741823),j=(xt>>>30)+(Ht>>>15)+Pt*Dt+(j>>>30),A[F++]=xt&1073741823}return j}function h(a,x,A,F,j,_){for(var st=x&16383,Pt=x>>14;--_>=0;){var xt=this[a]&16383,Dt=this[a++]>>14,Ht=Pt*xt+Dt*st;xt=st*xt+((Ht&16383)<<14)+A[F]+j,j=(xt>>28)+(Ht>>14)+Pt*Dt,A[F++]=xt&268435455}return j}r=="Microsoft Internet Explorer"?(l.prototype.am=v,c=30):r!="Netscape"?(l.prototype.am=u,c=26):(l.prototype.am=h,c=28),l.prototype.DB=c,l.prototype.DM=(1<<c)-1,l.prototype.DV=1<<c;var y=52;l.prototype.FV=Math.pow(2,y),l.prototype.F1=y-c,l.prototype.F2=2*c-y;var T="0123456789abcdefghijklmnopqrstuvwxyz",O=new Array,I,P;for(I=48,P=0;P<=9;++P)O[I++]=P;for(I=97,P=10;P<36;++P)O[I++]=P;for(I=65,P=10;P<36;++P)O[I++]=P;function w(a){return T.charAt(a)}function d(a,x){var A=O[a.charCodeAt(x)];return A??-1}function m(a){for(var x=this.t-1;x>=0;--x)a[x]=this[x];a.t=this.t,a.s=this.s}function p(a){this.t=1,this.s=a<0?-1:0,a>0?this[0]=a:a<-1?this[0]=a+this.DV:this.t=0}function S(a){var x=f();return x.fromInt(a),x}function E(a,x){var A;if(x==16)A=4;else if(x==8)A=3;else if(x==256)A=8;else if(x==2)A=1;else if(x==32)A=5;else if(x==4)A=2;else{this.fromRadix(a,x);return}this.t=0,this.s=0;for(var F=a.length,j=!1,_=0;--F>=0;){var st=A==8?a[F]&255:d(a,F);if(st<0){a.charAt(F)=="-"&&(j=!0);continue}j=!1,_==0?this[this.t++]=st:_+A>this.DB?(this[this.t-1]|=(st&(1<<this.DB-_)-1)<<_,this[this.t++]=st>>this.DB-_):this[this.t-1]|=st<<_,_+=A,_>=this.DB&&(_-=this.DB)}A==8&&a[0]&128&&(this.s=-1,_>0&&(this[this.t-1]|=(1<<this.DB-_)-1<<_)),this.clamp(),j&&l.ZERO.subTo(this,this)}function R(){for(var a=this.s&this.DM;this.t>0&&this[this.t-1]==a;)--this.t}function D(a){if(this.s<0)return"-"+this.negate().toString(a);var x;if(a==16)x=4;else if(a==8)x=3;else if(a==2)x=1;else if(a==32)x=5;else if(a==4)x=2;else return this.toRadix(a);var A=(1<<x)-1,F,j=!1,_="",st=this.t,Pt=this.DB-st*this.DB%x;if(st-- >0)for(Pt<this.DB&&(F=this[st]>>Pt)>0&&(j=!0,_=w(F));st>=0;)Pt<x?(F=(this[st]&(1<<Pt)-1)<<x-Pt,F|=this[--st]>>(Pt+=this.DB-x)):(F=this[st]>>(Pt-=x)&A,Pt<=0&&(Pt+=this.DB,--st)),F>0&&(j=!0),j&&(_+=w(F));return j?_:"0"}function U(){var a=f();return l.ZERO.subTo(this,a),a}function M(){return this.s<0?this.negate():this}function W(a){var x=this.s-a.s;if(x!=0)return x;var A=this.t;if(x=A-a.t,x!=0)return this.s<0?-x:x;for(;--A>=0;)if((x=this[A]-a[A])!=0)return x;return 0}function $(a){var x=1,A;return(A=a>>>16)!=0&&(a=A,x+=16),(A=a>>8)!=0&&(a=A,x+=8),(A=a>>4)!=0&&(a=A,x+=4),(A=a>>2)!=0&&(a=A,x+=2),(A=a>>1)!=0&&(a=A,x+=1),x}function B(){return this.t<=0?0:this.DB*(this.t-1)+$(this[this.t-1]^this.s&this.DM)}function N(a,x){var A;for(A=this.t-1;A>=0;--A)x[A+a]=this[A];for(A=a-1;A>=0;--A)x[A]=0;x.t=this.t+a,x.s=this.s}function z(a,x){for(var A=a;A<this.t;++A)x[A-a]=this[A];x.t=Math.max(this.t-a,0),x.s=this.s}function J(a,x){var A=a%this.DB,F=this.DB-A,j=(1<<F)-1,_=Math.floor(a/this.DB),st=this.s<<A&this.DM,Pt;for(Pt=this.t-1;Pt>=0;--Pt)x[Pt+_+1]=this[Pt]>>F|st,st=(this[Pt]&j)<<A;for(Pt=_-1;Pt>=0;--Pt)x[Pt]=0;x[_]=st,x.t=this.t+_+1,x.s=this.s,x.clamp()}function et(a,x){x.s=this.s;var A=Math.floor(a/this.DB);if(A>=this.t){x.t=0;return}var F=a%this.DB,j=this.DB-F,_=(1<<F)-1;x[0]=this[A]>>F;for(var st=A+1;st<this.t;++st)x[st-A-1]|=(this[st]&_)<<j,x[st-A]=this[st]>>F;F>0&&(x[this.t-A-1]|=(this.s&_)<<j),x.t=this.t-A,x.clamp()}function at(a,x){for(var A=0,F=0,j=Math.min(a.t,this.t);A<j;)F+=this[A]-a[A],x[A++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F-=a.s;A<this.t;)F+=this[A],x[A++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;A<a.t;)F-=a[A],x[A++]=F&this.DM,F>>=this.DB;F-=a.s}x.s=F<0?-1:0,F<-1?x[A++]=this.DV+F:F>0&&(x[A++]=F),x.t=A,x.clamp()}function ct(a,x){var A=this.abs(),F=a.abs(),j=A.t;for(x.t=j+F.t;--j>=0;)x[j]=0;for(j=0;j<F.t;++j)x[j+A.t]=A.am(0,F[j],x,j,0,A.t);x.s=0,x.clamp(),this.s!=a.s&&l.ZERO.subTo(x,x)}function V(a){for(var x=this.abs(),A=a.t=2*x.t;--A>=0;)a[A]=0;for(A=0;A<x.t-1;++A){var F=x.am(A,x[A],a,2*A,0,1);(a[A+x.t]+=x.am(A+1,2*x[A],a,2*A+1,F,x.t-A-1))>=x.DV&&(a[A+x.t]-=x.DV,a[A+x.t+1]=1)}a.t>0&&(a[a.t-1]+=x.am(A,x[A],a,2*A,0,1)),a.s=0,a.clamp()}function Q(a,x,A){var F=a.abs();if(!(F.t<=0)){var j=this.abs();if(j.t<F.t){x!=null&&x.fromInt(0),A!=null&&this.copyTo(A);return}A==null&&(A=f());var _=f(),st=this.s,Pt=a.s,xt=this.DB-$(F[F.t-1]);xt>0?(F.lShiftTo(xt,_),j.lShiftTo(xt,A)):(F.copyTo(_),j.copyTo(A));var Dt=_.t,Ht=_[Dt-1];if(Ht!=0){var jt=Ht*(1<<this.F1)+(Dt>1?_[Dt-2]>>this.F2:0),qt=this.FV/jt,oe=(1<<this.F1)/jt,me=1<<this.F2,Pe=A.t,be=Pe-Dt,lr=x??f();for(_.dlShiftTo(be,lr),A.compareTo(lr)>=0&&(A[A.t++]=1,A.subTo(lr,A)),l.ONE.dlShiftTo(Dt,lr),lr.subTo(_,_);_.t<Dt;)_[_.t++]=0;for(;--be>=0;){var Dr=A[--Pe]==Ht?this.DM:Math.floor(A[Pe]*qt+(A[Pe-1]+me)*oe);if((A[Pe]+=_.am(0,Dr,A,be,0,Dt))<Dr)for(_.dlShiftTo(be,lr),A.subTo(lr,A);A[Pe]<--Dr;)A.subTo(lr,A)}x!=null&&(A.drShiftTo(Dt,x),st!=Pt&&l.ZERO.subTo(x,x)),A.t=Dt,A.clamp(),xt>0&&A.rShiftTo(xt,A),st<0&&l.ZERO.subTo(A,A)}}}function ft(a){var x=f();return this.abs().divRemTo(a,null,x),this.s<0&&x.compareTo(l.ZERO)>0&&a.subTo(x,x),x}function mt(a){this.m=a}function yt(a){return a.s<0||a.compareTo(this.m)>=0?a.mod(this.m):a}function At(a){return a}function ht(a){a.divRemTo(this.m,null,a)}function Nt(a,x,A){a.multiplyTo(x,A),this.reduce(A)}function Bt(a,x){a.squareTo(x),this.reduce(x)}mt.prototype.convert=yt,mt.prototype.revert=At,mt.prototype.reduce=ht,mt.prototype.mulTo=Nt,mt.prototype.sqrTo=Bt;function G(){if(this.t<1)return 0;var a=this[0];if(!(a&1))return 0;var x=a&3;return x=x*(2-(a&15)*x)&15,x=x*(2-(a&255)*x)&255,x=x*(2-((a&65535)*x&65535))&65535,x=x*(2-a*x%this.DV)%this.DV,x>0?this.DV-x:-x}function k(a){this.m=a,this.mp=a.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<a.DB-15)-1,this.mt2=2*a.t}function rt(a){var x=f();return a.abs().dlShiftTo(this.m.t,x),x.divRemTo(this.m,null,x),a.s<0&&x.compareTo(l.ZERO)>0&&this.m.subTo(x,x),x}function nt(a){var x=f();return a.copyTo(x),this.reduce(x),x}function Y(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var x=0;x<this.m.t;++x){var A=a[x]&32767,F=A*this.mpl+((A*this.mph+(a[x]>>15)*this.mpl&this.um)<<15)&a.DM;for(A=x+this.m.t,a[A]+=this.m.am(0,F,a,x,0,this.m.t);a[A]>=a.DV;)a[A]-=a.DV,a[++A]++}a.clamp(),a.drShiftTo(this.m.t,a),a.compareTo(this.m)>=0&&a.subTo(this.m,a)}function Z(a,x){a.squareTo(x),this.reduce(x)}function C(a,x,A){a.multiplyTo(x,A),this.reduce(A)}k.prototype.convert=rt,k.prototype.revert=nt,k.prototype.reduce=Y,k.prototype.mulTo=C,k.prototype.sqrTo=Z;function L(){return(this.t>0?this[0]&1:this.s)==0}function X(a,x){if(a>4294967295||a<1)return l.ONE;var A=f(),F=f(),j=x.convert(this),_=$(a)-1;for(j.copyTo(A);--_>=0;)if(x.sqrTo(A,F),(a&1<<_)>0)x.mulTo(F,j,A);else{var st=A;A=F,F=st}return x.revert(A)}function K(a,x){var A;return a<256||x.isEven()?A=new mt(x):A=new k(x),this.exp(a,A)}l.prototype.copyTo=m,l.prototype.fromInt=p,l.prototype.fromString=E,l.prototype.clamp=R,l.prototype.dlShiftTo=N,l.prototype.drShiftTo=z,l.prototype.lShiftTo=J,l.prototype.rShiftTo=et,l.prototype.subTo=at,l.prototype.multiplyTo=ct,l.prototype.squareTo=V,l.prototype.divRemTo=Q,l.prototype.invDigit=G,l.prototype.isEven=L,l.prototype.exp=X,l.prototype.toString=D,l.prototype.negate=U,l.prototype.abs=M,l.prototype.compareTo=W,l.prototype.bitLength=B,l.prototype.mod=ft,l.prototype.modPowInt=K,l.ZERO=S(0),l.ONE=S(1);function q(){var a=f();return this.copyTo(a),a}function it(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function ut(){return this.t==0?this.s:this[0]<<24>>24}function St(){return this.t==0?this.s:this[0]<<16>>16}function Ct(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function Et(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function bt(a){if(a==null&&(a=10),this.signum()==0||a<2||a>36)return"0";var x=this.chunkSize(a),A=Math.pow(a,x),F=S(A),j=f(),_=f(),st="";for(this.divRemTo(F,j,_);j.signum()>0;)st=(A+_.intValue()).toString(a).substr(1)+st,j.divRemTo(F,j,_);return _.intValue().toString(a)+st}function wt(a,x){this.fromInt(0),x==null&&(x=10);for(var A=this.chunkSize(x),F=Math.pow(x,A),j=!1,_=0,st=0,Pt=0;Pt<a.length;++Pt){var xt=d(a,Pt);if(xt<0){a.charAt(Pt)=="-"&&this.signum()==0&&(j=!0);continue}st=x*st+xt,++_>=A&&(this.dMultiply(F),this.dAddOffset(st,0),_=0,st=0)}_>0&&(this.dMultiply(Math.pow(x,_)),this.dAddOffset(st,0)),j&&l.ZERO.subTo(this,this)}function Ot(a,x,A){if(typeof x=="number")if(a<2)this.fromInt(1);else for(this.fromNumber(a,A),this.testBit(a-1)||this.bitwiseTo(l.ONE.shiftLeft(a-1),ne,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(x);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(l.ONE.shiftLeft(a-1),this);else{var F=new Array,j=a&7;F.length=(a>>3)+1,x.nextBytes(F),j>0?F[0]&=(1<<j)-1:F[0]=0,this.fromString(F,256)}}function Lt(){var a=this.t,x=new Array;x[0]=this.s;var A=this.DB-a*this.DB%8,F,j=0;if(a-- >0)for(A<this.DB&&(F=this[a]>>A)!=(this.s&this.DM)>>A&&(x[j++]=F|this.s<<this.DB-A);a>=0;)A<8?(F=(this[a]&(1<<A)-1)<<8-A,F|=this[--a]>>(A+=this.DB-8)):(F=this[a]>>(A-=8)&255,A<=0&&(A+=this.DB,--a)),F&128&&(F|=-256),j==0&&(this.s&128)!=(F&128)&&++j,(j>0||F!=this.s)&&(x[j++]=F);return x}function Yt(a){return this.compareTo(a)==0}function zt(a){return this.compareTo(a)<0?this:a}function Wt(a){return this.compareTo(a)>0?this:a}function Qt(a,x,A){var F,j,_=Math.min(a.t,this.t);for(F=0;F<_;++F)A[F]=x(this[F],a[F]);if(a.t<this.t){for(j=a.s&this.DM,F=_;F<this.t;++F)A[F]=x(this[F],j);A.t=this.t}else{for(j=this.s&this.DM,F=_;F<a.t;++F)A[F]=x(j,a[F]);A.t=a.t}A.s=x(this.s,a.s),A.clamp()}function ue(a,x){return a&x}function ie(a){var x=f();return this.bitwiseTo(a,ue,x),x}function ne(a,x){return a|x}function ae(a){var x=f();return this.bitwiseTo(a,ne,x),x}function se(a,x){return a^x}function Fe(a){var x=f();return this.bitwiseTo(a,se,x),x}function Ue(a,x){return a&~x}function Xe(a){var x=f();return this.bitwiseTo(a,Ue,x),x}function ze(){for(var a=f(),x=0;x<this.t;++x)a[x]=this.DM&~this[x];return a.t=this.t,a.s=~this.s,a}function ke(a){var x=f();return a<0?this.rShiftTo(-a,x):this.lShiftTo(a,x),x}function He(a){var x=f();return a<0?this.lShiftTo(-a,x):this.rShiftTo(a,x),x}function qe(a){if(a==0)return-1;var x=0;return a&65535||(a>>=16,x+=16),a&255||(a>>=8,x+=8),a&15||(a>>=4,x+=4),a&3||(a>>=2,x+=2),a&1||++x,x}function Oe(){for(var a=0;a<this.t;++a)if(this[a]!=0)return a*this.DB+qe(this[a]);return this.s<0?this.t*this.DB:-1}function pr(a){for(var x=0;a!=0;)a&=a-1,++x;return x}function an(){for(var a=0,x=this.s&this.DM,A=0;A<this.t;++A)a+=pr(this[A]^x);return a}function qr(a){var x=Math.floor(a/this.DB);return x>=this.t?this.s!=0:(this[x]&1<<a%this.DB)!=0}function li(a,x){var A=l.ONE.shiftLeft(a);return this.bitwiseTo(A,x,A),A}function fi(a){return this.changeBit(a,ne)}function oa(a){return this.changeBit(a,Ue)}function Wi(a){return this.changeBit(a,se)}function aa(a,x){for(var A=0,F=0,j=Math.min(a.t,this.t);A<j;)F+=this[A]+a[A],x[A++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F+=a.s;A<this.t;)F+=this[A],x[A++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;A<a.t;)F+=a[A],x[A++]=F&this.DM,F>>=this.DB;F+=a.s}x.s=F<0?-1:0,F>0?x[A++]=F:F<-1&&(x[A++]=this.DV+F),x.t=A,x.clamp()}function Fi(a){var x=f();return this.addTo(a,x),x}function la(a){var x=f();return this.subTo(a,x),x}function fa(a){var x=f();return this.multiplyTo(a,x),x}function ca(){var a=f();return this.squareTo(a),a}function ua(a){var x=f();return this.divRemTo(a,x,null),x}function ha(a){var x=f();return this.divRemTo(a,null,x),x}function bs(a){var x=f(),A=f();return this.divRemTo(a,x,A),new Array(x,A)}function da(a){this[this.t]=this.am(0,a-1,this,0,0,this.t),++this.t,this.clamp()}function pa(a,x){if(a!=0){for(;this.t<=x;)this[this.t++]=0;for(this[x]+=a;this[x]>=this.DV;)this[x]-=this.DV,++x>=this.t&&(this[this.t++]=0),++this[x]}}function xn(){}function Ds(a){return a}function va(a,x,A){a.multiplyTo(x,A)}function ga(a,x){a.squareTo(x)}xn.prototype.convert=Ds,xn.prototype.revert=Ds,xn.prototype.mulTo=va,xn.prototype.sqrTo=ga;function ma(a){return this.exp(a,new xn)}function ya(a,x,A){var F=Math.min(this.t+a.t,x);for(A.s=0,A.t=F;F>0;)A[--F]=0;var j;for(j=A.t-this.t;F<j;++F)A[F+this.t]=this.am(0,a[F],A,F,0,this.t);for(j=Math.min(a.t,x);F<j;++F)this.am(0,a[F],A,F,0,x-F);A.clamp()}function Pa(a,x,A){--x;var F=A.t=this.t+a.t-x;for(A.s=0;--F>=0;)A[F]=0;for(F=Math.max(x-this.t,0);F<a.t;++F)A[this.t+F-x]=this.am(x-F,a[F],A,0,0,this.t+F-x);A.clamp(),A.drShiftTo(1,A)}function zr(a){this.r2=f(),this.q3=f(),l.ONE.dlShiftTo(2*a.t,this.r2),this.mu=this.r2.divide(a),this.m=a}function Sa(a){if(a.s<0||a.t>2*this.m.t)return a.mod(this.m);if(a.compareTo(this.m)<0)return a;var x=f();return a.copyTo(x),this.reduce(x),x}function ci(a){return a}function xa(a){for(a.drShiftTo(this.m.t-1,this.r2),a.t>this.m.t+1&&(a.t=this.m.t+1,a.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);a.compareTo(this.r2)<0;)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);a.compareTo(this.m)>=0;)a.subTo(this.m,a)}function Ta(a,x){a.squareTo(x),this.reduce(x)}function Ca(a,x,A){a.multiplyTo(x,A),this.reduce(A)}zr.prototype.convert=Sa,zr.prototype.revert=ci,zr.prototype.reduce=xa,zr.prototype.mulTo=Ca,zr.prototype.sqrTo=Ta;function Ns(a,x){var A=a.bitLength(),F,j=S(1),_;if(A<=0)return j;A<18?F=1:A<48?F=3:A<144?F=4:A<768?F=5:F=6,A<8?_=new mt(x):x.isEven()?_=new zr(x):_=new k(x);var st=new Array,Pt=3,xt=F-1,Dt=(1<<F)-1;if(st[1]=_.convert(this),F>1){var Ht=f();for(_.sqrTo(st[1],Ht);Pt<=Dt;)st[Pt]=f(),_.mulTo(Ht,st[Pt-2],st[Pt]),Pt+=2}var jt=a.t-1,qt,oe=!0,me=f(),Pe;for(A=$(a[jt])-1;jt>=0;){for(A>=xt?qt=a[jt]>>A-xt&Dt:(qt=(a[jt]&(1<<A+1)-1)<<xt-A,jt>0&&(qt|=a[jt-1]>>this.DB+A-xt)),Pt=F;!(qt&1);)qt>>=1,--Pt;if((A-=Pt)<0&&(A+=this.DB,--jt),oe)st[qt].copyTo(j),oe=!1;else{for(;Pt>1;)_.sqrTo(j,me),_.sqrTo(me,j),Pt-=2;Pt>0?_.sqrTo(j,me):(Pe=j,j=me,me=Pe),_.mulTo(me,st[qt],j)}for(;jt>=0&&!(a[jt]&1<<A);)_.sqrTo(j,me),Pe=j,j=me,me=Pe,--A<0&&(A=this.DB-1,--jt)}return _.revert(j)}function Bs(a){var x=this.s<0?this.negate():this.clone(),A=a.s<0?a.negate():a.clone();if(x.compareTo(A)<0){var F=x;x=A,A=F}var j=x.getLowestSetBit(),_=A.getLowestSetBit();if(_<0)return x;for(j<_&&(_=j),_>0&&(x.rShiftTo(_,x),A.rShiftTo(_,A));x.signum()>0;)(j=x.getLowestSetBit())>0&&x.rShiftTo(j,x),(j=A.getLowestSetBit())>0&&A.rShiftTo(j,A),x.compareTo(A)>=0?(x.subTo(A,x),x.rShiftTo(1,x)):(A.subTo(x,A),A.rShiftTo(1,A));return _>0&&A.lShiftTo(_,A),A}function Ws(a){if(a<=0)return 0;var x=this.DV%a,A=this.s<0?a-1:0;if(this.t>0)if(x==0)A=this[0]%a;else for(var F=this.t-1;F>=0;--F)A=(x*A+this[F])%a;return A}function Ia(a){var x=a.isEven();if(this.isEven()&&x||a.signum()==0)return l.ZERO;for(var A=a.clone(),F=this.clone(),j=S(1),_=S(0),st=S(0),Pt=S(1);A.signum()!=0;){for(;A.isEven();)A.rShiftTo(1,A),x?((!j.isEven()||!_.isEven())&&(j.addTo(this,j),_.subTo(a,_)),j.rShiftTo(1,j)):_.isEven()||_.subTo(a,_),_.rShiftTo(1,_);for(;F.isEven();)F.rShiftTo(1,F),x?((!st.isEven()||!Pt.isEven())&&(st.addTo(this,st),Pt.subTo(a,Pt)),st.rShiftTo(1,st)):Pt.isEven()||Pt.subTo(a,Pt),Pt.rShiftTo(1,Pt);A.compareTo(F)>=0?(A.subTo(F,A),x&&j.subTo(st,j),_.subTo(Pt,_)):(F.subTo(A,F),x&&st.subTo(j,st),Pt.subTo(_,Pt))}if(F.compareTo(l.ONE)!=0)return l.ZERO;if(Pt.compareTo(a)>=0)return Pt.subtract(a);if(Pt.signum()<0)Pt.addTo(a,Pt);else return Pt;return Pt.signum()<0?Pt.add(a):Pt}var ir=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],wa=(1<<26)/ir[ir.length-1];function Oa(a){var x,A=this.abs();if(A.t==1&&A[0]<=ir[ir.length-1]){for(x=0;x<ir.length;++x)if(A[0]==ir[x])return!0;return!1}if(A.isEven())return!1;for(x=1;x<ir.length;){for(var F=ir[x],j=x+1;j<ir.length&&F<wa;)F*=ir[j++];for(F=A.modInt(F);x<j;)if(F%ir[x++]==0)return!1}return A.millerRabin(a)}function Fs(a){var x=this.subtract(l.ONE),A=x.getLowestSetBit();if(A<=0)return!1;var F=x.shiftRight(A);a=a+1>>1,a>ir.length&&(a=ir.length);for(var j=f(),_=0;_<a;++_){j.fromInt(ir[Math.floor(Math.random()*ir.length)]);var st=j.modPow(F,this);if(st.compareTo(l.ONE)!=0&&st.compareTo(x)!=0){for(var Pt=1;Pt++<A&&st.compareTo(x)!=0;)if(st=st.modPowInt(2,this),st.compareTo(l.ONE)==0)return!1;if(st.compareTo(x)!=0)return!1}}return!0}l.prototype.chunkSize=Ct,l.prototype.toRadix=bt,l.prototype.fromRadix=wt,l.prototype.fromNumber=Ot,l.prototype.bitwiseTo=Qt,l.prototype.changeBit=li,l.prototype.addTo=aa,l.prototype.dMultiply=da,l.prototype.dAddOffset=pa,l.prototype.multiplyLowerTo=ya,l.prototype.multiplyUpperTo=Pa,l.prototype.modInt=Ws,l.prototype.millerRabin=Fs,l.prototype.clone=q,l.prototype.intValue=it,l.prototype.byteValue=ut,l.prototype.shortValue=St,l.prototype.signum=Et,l.prototype.toByteArray=Lt,l.prototype.equals=Yt,l.prototype.min=zt,l.prototype.max=Wt,l.prototype.and=ie,l.prototype.or=ae,l.prototype.xor=Fe,l.prototype.andNot=Xe,l.prototype.not=ze,l.prototype.shiftLeft=ke,l.prototype.shiftRight=He,l.prototype.getLowestSetBit=Oe,l.prototype.bitCount=an,l.prototype.testBit=qr,l.prototype.setBit=fi,l.prototype.clearBit=oa,l.prototype.flipBit=Wi,l.prototype.add=Fi,l.prototype.subtract=la,l.prototype.multiply=fa,l.prototype.divide=ua,l.prototype.remainder=ha,l.prototype.divideAndRemainder=bs,l.prototype.modPow=Ns,l.prototype.modInverse=Ia,l.prototype.pow=ma,l.prototype.gcd=Bs,l.prototype.isProbablePrime=Oa,l.prototype.square=ca;var ge=l;ge.prototype.IsNegative=function(){return this.compareTo(ge.ZERO)==-1},ge.op_Equality=function(a,x){return a.compareTo(x)==0},ge.op_Inequality=function(a,x){return a.compareTo(x)!=0},ge.op_GreaterThan=function(a,x){return a.compareTo(x)>0},ge.op_LessThan=function(a,x){return a.compareTo(x)<0},ge.op_Addition=function(a,x){return new ge(a,void 0,void 0).add(new ge(x,void 0,void 0))},ge.op_Subtraction=function(a,x){return new ge(a,void 0,void 0).subtract(new ge(x,void 0,void 0))},ge.Int128Mul=function(a,x){return new ge(a,void 0,void 0).multiply(new ge(x,void 0,void 0))},ge.op_Division=function(a,x){return a.divide(x)},ge.prototype.ToDouble=function(){return parseFloat(this.toString())};var Ui=function(a,x){var A;if(typeof Object.getOwnPropertyNames>"u"){for(A in x.prototype)(typeof a.prototype[A]>"u"||a.prototype[A]===Object.prototype[A])&&(a.prototype[A]=x.prototype[A]);for(A in x)typeof a[A]>"u"&&(a[A]=x[A]);a.$baseCtor=x}else{for(var F=Object.getOwnPropertyNames(x.prototype),j=0;j<F.length;j++)typeof Object.getOwnPropertyDescriptor(a.prototype,F[j])>"u"&&Object.defineProperty(a.prototype,F[j],Object.getOwnPropertyDescriptor(x.prototype,F[j]));for(A in x)typeof a[A]>"u"&&(a[A]=x[A]);a.$baseCtor=x}};e.Path=function(){return[]},e.Path.prototype.push=Array.prototype.push,e.Paths=function(){return[]},e.Paths.prototype.push=Array.prototype.push,e.DoublePoint=function(){var a=arguments;this.X=0,this.Y=0,a.length===1?(this.X=a[0].X,this.Y=a[0].Y):a.length===2&&(this.X=a[0],this.Y=a[1])},e.DoublePoint0=function(){this.X=0,this.Y=0},e.DoublePoint0.prototype=e.DoublePoint.prototype,e.DoublePoint1=function(a){this.X=a.X,this.Y=a.Y},e.DoublePoint1.prototype=e.DoublePoint.prototype,e.DoublePoint2=function(a,x){this.X=a,this.Y=x},e.DoublePoint2.prototype=e.DoublePoint.prototype,e.PolyNode=function(){this.m_Parent=null,this.m_polygon=new e.Path,this.m_Index=0,this.m_jointype=0,this.m_endtype=0,this.m_Childs=[],this.IsOpen=!1},e.PolyNode.prototype.IsHoleNode=function(){for(var a=!0,x=this.m_Parent;x!==null;)a=!a,x=x.m_Parent;return a},e.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length},e.PolyNode.prototype.Contour=function(){return this.m_polygon},e.PolyNode.prototype.AddChild=function(a){var x=this.m_Childs.length;this.m_Childs.push(a),a.m_Parent=this,a.m_Index=x},e.PolyNode.prototype.GetNext=function(){return this.m_Childs.length>0?this.m_Childs[0]:this.GetNextSiblingUp()},e.PolyNode.prototype.GetNextSiblingUp=function(){return this.m_Parent===null?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},e.PolyNode.prototype.Childs=function(){return this.m_Childs},e.PolyNode.prototype.Parent=function(){return this.m_Parent},e.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},e.PolyTree=function(){this.m_AllPolys=[],e.PolyNode.call(this)},e.PolyTree.prototype.Clear=function(){for(var a=0,x=this.m_AllPolys.length;a<x;a++)this.m_AllPolys[a]=null;this.m_AllPolys.length=0,this.m_Childs.length=0},e.PolyTree.prototype.GetFirst=function(){return this.m_Childs.length>0?this.m_Childs[0]:null},e.PolyTree.prototype.Total=function(){var a=this.m_AllPolys.length;return a>0&&this.m_Childs[0]!==this.m_AllPolys[0]&&a--,a},Ui(e.PolyTree,e.PolyNode),e.Math_Abs_Int64=e.Math_Abs_Int32=e.Math_Abs_Double=function(a){return Math.abs(a)},e.Math_Max_Int32_Int32=function(a,x){return Math.max(a,x)},s.msie||s.opera||s.safari?e.Cast_Int32=function(a){return a|0}:e.Cast_Int32=function(a){return~~a},typeof Number.toInteger>"u"&&(Number.toInteger=null),s.chrome?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):~~a}:s.firefox&&typeof Number.toInteger=="function"?e.Cast_Int64=function(a){return Number.toInteger(a)}:s.msie7||s.msie8?e.Cast_Int64=function(a){return parseInt(a,10)}:s.msie?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):a|0}:e.Cast_Int64=function(a){return a<0?Math.ceil(a):Math.floor(a)},e.Clear=function(a){a.length=0},e.PI=3.141592653589793,e.PI2=2*3.141592653589793,e.IntPoint=function(){var a=arguments,x=a.length;if(this.X=0,this.Y=0,e.use_xyz)if(this.Z=0,x===3)this.X=a[0],this.Y=a[1],this.Z=a[2];else if(x===2)this.X=a[0],this.Y=a[1],this.Z=0;else if(x===1)if(a[0]instanceof e.DoublePoint){var A=a[0];this.X=e.Clipper.Round(A.X),this.Y=e.Clipper.Round(A.Y),this.Z=0}else{var F=a[0];typeof F.Z>"u"&&(F.Z=0),this.X=F.X,this.Y=F.Y,this.Z=F.Z}else this.X=0,this.Y=0,this.Z=0;else if(x===2)this.X=a[0],this.Y=a[1];else if(x===1)if(a[0]instanceof e.DoublePoint){var A=a[0];this.X=e.Clipper.Round(A.X),this.Y=e.Clipper.Round(A.Y)}else{var F=a[0];this.X=F.X,this.Y=F.Y}else this.X=0,this.Y=0},e.IntPoint.op_Equality=function(a,x){return a.X===x.X&&a.Y===x.Y},e.IntPoint.op_Inequality=function(a,x){return a.X!==x.X||a.Y!==x.Y},e.IntPoint0=function(){this.X=0,this.Y=0,e.use_xyz&&(this.Z=0)},e.IntPoint0.prototype=e.IntPoint.prototype,e.IntPoint1=function(a){this.X=a.X,this.Y=a.Y,e.use_xyz&&(typeof a.Z>"u"?this.Z=0:this.Z=a.Z)},e.IntPoint1.prototype=e.IntPoint.prototype,e.IntPoint1dp=function(a){this.X=e.Clipper.Round(a.X),this.Y=e.Clipper.Round(a.Y),e.use_xyz&&(this.Z=0)},e.IntPoint1dp.prototype=e.IntPoint.prototype,e.IntPoint2=function(a,x,A){this.X=a,this.Y=x,e.use_xyz&&(typeof A>"u"?this.Z=0:this.Z=A)},e.IntPoint2.prototype=e.IntPoint.prototype,e.IntRect=function(){var a=arguments,x=a.length;if(x===4)this.left=a[0],this.top=a[1],this.right=a[2],this.bottom=a[3];else if(x===1){var A=a[0];this.left=A.left,this.top=A.top,this.right=A.right,this.bottom=A.bottom}else this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0.prototype=e.IntRect.prototype,e.IntRect1=function(a){this.left=a.left,this.top=a.top,this.right=a.right,this.bottom=a.bottom},e.IntRect1.prototype=e.IntRect.prototype,e.IntRect4=function(a,x,A,F){this.left=a,this.top=x,this.right=A,this.bottom=F},e.IntRect4.prototype=e.IntRect.prototype,e.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},e.PolyType={ptSubject:0,ptClip:1},e.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},e.JoinType={jtSquare:0,jtRound:1,jtMiter:2},e.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},e.EdgeSide={esLeft:0,esRight:1},e.Direction={dRightToLeft:0,dLeftToRight:1},e.TEdge=function(){this.Bot=new e.IntPoint0,this.Curr=new e.IntPoint0,this.Top=new e.IntPoint0,this.Delta=new e.IntPoint0,this.Dx=0,this.PolyTyp=e.PolyType.ptSubject,this.Side=e.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},e.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new e.IntPoint0},e.MyIntersectNodeSort=function(){},e.MyIntersectNodeSort.Compare=function(a,x){var A=x.Pt.Y-a.Pt.Y;return A>0?1:A<0?-1:0},e.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},e.Scanbeam=function(){this.Y=0,this.Next=null},e.Maxima=function(){this.X=0,this.Next=null,this.Prev=null},e.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},e.OutPt=function(){this.Idx=0,this.Pt=new e.IntPoint0,this.Next=null,this.Prev=null},e.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new e.IntPoint0},e.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_Scanbeam=null,this.m_PolyOuts=null,this.m_ActiveEdges=null},e.ClipperBase.horizontal=-9007199254740992,e.ClipperBase.Skip=-2,e.ClipperBase.Unassigned=-1,e.ClipperBase.tolerance=1e-20,e.ClipperBase.loRange=47453132,e.ClipperBase.hiRange=0xfffffffffffff,e.ClipperBase.near_zero=function(a){return a>-e.ClipperBase.tolerance&&a<e.ClipperBase.tolerance},e.ClipperBase.IsHorizontal=function(a){return a.Delta.Y===0},e.ClipperBase.prototype.PointIsVertex=function(a,x){var A=x;do{if(e.IntPoint.op_Equality(A.Pt,a))return!0;A=A.Next}while(A!==x);return!1},e.ClipperBase.prototype.PointOnLineSegment=function(a,x,A,F){return F?a.X===x.X&&a.Y===x.Y||a.X===A.X&&a.Y===A.Y||a.X>x.X==a.X<A.X&&a.Y>x.Y==a.Y<A.Y&&ge.op_Equality(ge.Int128Mul(a.X-x.X,A.Y-x.Y),ge.Int128Mul(A.X-x.X,a.Y-x.Y)):a.X===x.X&&a.Y===x.Y||a.X===A.X&&a.Y===A.Y||a.X>x.X==a.X<A.X&&a.Y>x.Y==a.Y<A.Y&&(a.X-x.X)*(A.Y-x.Y)===(A.X-x.X)*(a.Y-x.Y)},e.ClipperBase.prototype.PointOnPolygon=function(a,x,A){for(var F=x;;){if(this.PointOnLineSegment(a,F.Pt,F.Next.Pt,A))return!0;if(F=F.Next,F===x)break}return!1},e.ClipperBase.prototype.SlopesEqual=e.ClipperBase.SlopesEqual=function(){var a=arguments,x=a.length,A,F,j,_,st,Pt,xt;return x===3?(A=a[0],F=a[1],xt=a[2],xt?ge.op_Equality(ge.Int128Mul(A.Delta.Y,F.Delta.X),ge.Int128Mul(A.Delta.X,F.Delta.Y)):e.Cast_Int64(A.Delta.Y*F.Delta.X)===e.Cast_Int64(A.Delta.X*F.Delta.Y)):x===4?(j=a[0],_=a[1],st=a[2],xt=a[3],xt?ge.op_Equality(ge.Int128Mul(j.Y-_.Y,_.X-st.X),ge.Int128Mul(j.X-_.X,_.Y-st.Y)):e.Cast_Int64((j.Y-_.Y)*(_.X-st.X))-e.Cast_Int64((j.X-_.X)*(_.Y-st.Y))===0):(j=a[0],_=a[1],st=a[2],Pt=a[3],xt=a[4],xt?ge.op_Equality(ge.Int128Mul(j.Y-_.Y,st.X-Pt.X),ge.Int128Mul(j.X-_.X,st.Y-Pt.Y)):e.Cast_Int64((j.Y-_.Y)*(st.X-Pt.X))-e.Cast_Int64((j.X-_.X)*(st.Y-Pt.Y))===0)},e.ClipperBase.SlopesEqual3=function(a,x,A){return A?ge.op_Equality(ge.Int128Mul(a.Delta.Y,x.Delta.X),ge.Int128Mul(a.Delta.X,x.Delta.Y)):e.Cast_Int64(a.Delta.Y*x.Delta.X)===e.Cast_Int64(a.Delta.X*x.Delta.Y)},e.ClipperBase.SlopesEqual4=function(a,x,A,F){return F?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,x.X-A.X),ge.Int128Mul(a.X-x.X,x.Y-A.Y)):e.Cast_Int64((a.Y-x.Y)*(x.X-A.X))-e.Cast_Int64((a.X-x.X)*(x.Y-A.Y))===0},e.ClipperBase.SlopesEqual5=function(a,x,A,F,j){return j?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,A.X-F.X),ge.Int128Mul(a.X-x.X,A.Y-F.Y)):e.Cast_Int64((a.Y-x.Y)*(A.X-F.X))-e.Cast_Int64((a.X-x.X)*(A.Y-F.Y))===0},e.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var a=0,x=this.m_edges.length;a<x;++a){for(var A=0,F=this.m_edges[a].length;A<F;++A)this.m_edges[a][A]=null;e.Clear(this.m_edges[a])}e.Clear(this.m_edges),this.m_UseFullRange=!1,this.m_HasOpenPaths=!1},e.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;this.m_MinimaList!==null;){var a=this.m_MinimaList.Next;this.m_MinimaList=null,this.m_MinimaList=a}this.m_CurrentLM=null},e.ClipperBase.prototype.RangeTest=function(a,x){x.Value?(a.X>e.ClipperBase.hiRange||a.Y>e.ClipperBase.hiRange||-a.X>e.ClipperBase.hiRange||-a.Y>e.ClipperBase.hiRange)&&e.Error("Coordinate outside allowed range in RangeTest()."):(a.X>e.ClipperBase.loRange||a.Y>e.ClipperBase.loRange||-a.X>e.ClipperBase.loRange||-a.Y>e.ClipperBase.loRange)&&(x.Value=!0,this.RangeTest(a,x))},e.ClipperBase.prototype.InitEdge=function(a,x,A,F){a.Next=x,a.Prev=A,a.Curr.X=F.X,a.Curr.Y=F.Y,e.use_xyz&&(a.Curr.Z=F.Z),a.OutIdx=-1},e.ClipperBase.prototype.InitEdge2=function(a,x){a.Curr.Y>=a.Next.Curr.Y?(a.Bot.X=a.Curr.X,a.Bot.Y=a.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Curr.Z),a.Top.X=a.Next.Curr.X,a.Top.Y=a.Next.Curr.Y,e.use_xyz&&(a.Top.Z=a.Next.Curr.Z)):(a.Top.X=a.Curr.X,a.Top.Y=a.Curr.Y,e.use_xyz&&(a.Top.Z=a.Curr.Z),a.Bot.X=a.Next.Curr.X,a.Bot.Y=a.Next.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Next.Curr.Z)),this.SetDx(a),a.PolyTyp=x},e.ClipperBase.prototype.FindNextLocMin=function(a){for(var x;;){for(;e.IntPoint.op_Inequality(a.Bot,a.Prev.Bot)||e.IntPoint.op_Equality(a.Curr,a.Top);)a=a.Next;if(a.Dx!==e.ClipperBase.horizontal&&a.Prev.Dx!==e.ClipperBase.horizontal)break;for(;a.Prev.Dx===e.ClipperBase.horizontal;)a=a.Prev;for(x=a;a.Dx===e.ClipperBase.horizontal;)a=a.Next;if(a.Top.Y!==a.Prev.Bot.Y){x.Prev.Bot.X<a.Bot.X&&(a=x);break}}return a},e.ClipperBase.prototype.ProcessBound=function(a,x){var A,F=a,j;if(F.OutIdx===e.ClipperBase.Skip){if(a=F,x){for(;a.Top.Y===a.Next.Bot.Y;)a=a.Next;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Prev}else{for(;a.Top.Y===a.Prev.Bot.Y;)a=a.Prev;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Next}if(a===F)x?F=a.Next:F=a.Prev;else{x?a=F.Next:a=F.Prev;var _=new e.LocalMinima;_.Next=null,_.Y=a.Bot.Y,_.LeftBound=null,_.RightBound=a,a.WindDelta=0,F=this.ProcessBound(a,x),this.InsertLocalMinima(_)}return F}if(a.Dx===e.ClipperBase.horizontal&&(x?A=a.Prev:A=a.Next,A.Dx===e.ClipperBase.horizontal?A.Bot.X!==a.Bot.X&&A.Top.X!==a.Bot.X&&this.ReverseHorizontal(a):A.Bot.X!==a.Bot.X&&this.ReverseHorizontal(a)),A=a,x){for(;F.Top.Y===F.Next.Bot.Y&&F.Next.OutIdx!==e.ClipperBase.Skip;)F=F.Next;if(F.Dx===e.ClipperBase.horizontal&&F.Next.OutIdx!==e.ClipperBase.Skip){for(j=F;j.Prev.Dx===e.ClipperBase.horizontal;)j=j.Prev;j.Prev.Top.X>F.Next.Top.X&&(F=j.Prev)}for(;a!==F;)a.NextInLML=a.Next,a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),a=a.Next;a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),F=F.Next}else{for(;F.Top.Y===F.Prev.Bot.Y&&F.Prev.OutIdx!==e.ClipperBase.Skip;)F=F.Prev;if(F.Dx===e.ClipperBase.horizontal&&F.Prev.OutIdx!==e.ClipperBase.Skip){for(j=F;j.Next.Dx===e.ClipperBase.horizontal;)j=j.Next;(j.Next.Top.X===F.Prev.Top.X||j.Next.Top.X>F.Prev.Top.X)&&(F=j.Next)}for(;a!==F;)a.NextInLML=a.Prev,a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),a=a.Prev;a.Dx===e.ClipperBase.horizontal&&a!==A&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),F=F.Prev}return F},e.ClipperBase.prototype.AddPath=function(a,x,A){e.use_lines?!A&&x===e.PolyType.ptClip&&e.Error("AddPath: Open paths must be subject."):A||e.Error("AddPath: Open paths have been disabled.");var F=a.length-1;if(A)for(;F>0&&e.IntPoint.op_Equality(a[F],a[0]);)--F;for(;F>0&&e.IntPoint.op_Equality(a[F],a[F-1]);)--F;if(A&&F<2||!A&&F<1)return!1;for(var j=new Array,_=0;_<=F;_++)j.push(new e.TEdge);var st=!0;j[1].Curr.X=a[1].X,j[1].Curr.Y=a[1].Y,e.use_xyz&&(j[1].Curr.Z=a[1].Z);var Pt={Value:this.m_UseFullRange};this.RangeTest(a[0],Pt),this.m_UseFullRange=Pt.Value,Pt.Value=this.m_UseFullRange,this.RangeTest(a[F],Pt),this.m_UseFullRange=Pt.Value,this.InitEdge(j[0],j[1],j[F],a[0]),this.InitEdge(j[F],j[0],j[F-1],a[F]);for(var _=F-1;_>=1;--_)Pt.Value=this.m_UseFullRange,this.RangeTest(a[_],Pt),this.m_UseFullRange=Pt.Value,this.InitEdge(j[_],j[_+1],j[_-1],a[_]);for(var xt=j[0],Dt=xt,Ht=xt;;){if(Dt.Curr===Dt.Next.Curr&&(A||Dt.Next!==xt)){if(Dt===Dt.Next)break;Dt===xt&&(xt=Dt.Next),Dt=this.RemoveEdge(Dt),Ht=Dt;continue}if(Dt.Prev===Dt.Next)break;if(A&&e.ClipperBase.SlopesEqual4(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr))){Dt===xt&&(xt=Dt.Next),Dt=this.RemoveEdge(Dt),Dt=Dt.Prev,Ht=Dt;continue}if(Dt=Dt.Next,Dt===Ht||!A&&Dt.Next===xt)break}if(!A&&Dt===Dt.Next||A&&Dt.Prev===Dt.Next)return!1;A||(this.m_HasOpenPaths=!0,xt.Prev.OutIdx=e.ClipperBase.Skip),Dt=xt;do this.InitEdge2(Dt,x),Dt=Dt.Next,st&&Dt.Curr.Y!==xt.Curr.Y&&(st=!1);while(Dt!==xt);if(st){if(A)return!1;Dt.Prev.OutIdx=e.ClipperBase.Skip;var jt=new e.LocalMinima;for(jt.Next=null,jt.Y=Dt.Bot.Y,jt.LeftBound=null,jt.RightBound=Dt,jt.RightBound.Side=e.EdgeSide.esRight,jt.RightBound.WindDelta=0;Dt.Bot.X!==Dt.Prev.Top.X&&this.ReverseHorizontal(Dt),Dt.Next.OutIdx!==e.ClipperBase.Skip;)Dt.NextInLML=Dt.Next,Dt=Dt.Next;return this.InsertLocalMinima(jt),this.m_edges.push(j),!0}this.m_edges.push(j);var qt,oe=null;for(e.IntPoint.op_Equality(Dt.Prev.Bot,Dt.Prev.Top)&&(Dt=Dt.Next);Dt=this.FindNextLocMin(Dt),Dt!==oe;){oe===null&&(oe=Dt);var jt=new e.LocalMinima;jt.Next=null,jt.Y=Dt.Bot.Y,Dt.Dx<Dt.Prev.Dx?(jt.LeftBound=Dt.Prev,jt.RightBound=Dt,qt=!1):(jt.LeftBound=Dt,jt.RightBound=Dt.Prev,qt=!0),jt.LeftBound.Side=e.EdgeSide.esLeft,jt.RightBound.Side=e.EdgeSide.esRight,A?jt.LeftBound.Next===jt.RightBound?jt.LeftBound.WindDelta=-1:jt.LeftBound.WindDelta=1:jt.LeftBound.WindDelta=0,jt.RightBound.WindDelta=-jt.LeftBound.WindDelta,Dt=this.ProcessBound(jt.LeftBound,qt),Dt.OutIdx===e.ClipperBase.Skip&&(Dt=this.ProcessBound(Dt,qt));var me=this.ProcessBound(jt.RightBound,!qt);me.OutIdx===e.ClipperBase.Skip&&(me=this.ProcessBound(me,!qt)),jt.LeftBound.OutIdx===e.ClipperBase.Skip?jt.LeftBound=null:jt.RightBound.OutIdx===e.ClipperBase.Skip&&(jt.RightBound=null),this.InsertLocalMinima(jt),qt||(Dt=me)}return!0},e.ClipperBase.prototype.AddPaths=function(a,x,A){for(var F=!1,j=0,_=a.length;j<_;++j)this.AddPath(a[j],x,A)&&(F=!0);return F},e.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(a,x,A){return e.IntPoint.op_Equality(a,A)||e.IntPoint.op_Equality(a,x)||e.IntPoint.op_Equality(A,x)?!1:a.X!==A.X?x.X>a.X==x.X<A.X:x.Y>a.Y==x.Y<A.Y},e.ClipperBase.prototype.RemoveEdge=function(a){a.Prev.Next=a.Next,a.Next.Prev=a.Prev;var x=a.Next;return a.Prev=null,x},e.ClipperBase.prototype.SetDx=function(a){a.Delta.X=a.Top.X-a.Bot.X,a.Delta.Y=a.Top.Y-a.Bot.Y,a.Delta.Y===0?a.Dx=e.ClipperBase.horizontal:a.Dx=a.Delta.X/a.Delta.Y},e.ClipperBase.prototype.InsertLocalMinima=function(a){if(this.m_MinimaList===null)this.m_MinimaList=a;else if(a.Y>=this.m_MinimaList.Y)a.Next=this.m_MinimaList,this.m_MinimaList=a;else{for(var x=this.m_MinimaList;x.Next!==null&&a.Y<x.Next.Y;)x=x.Next;a.Next=x.Next,x.Next=a}},e.ClipperBase.prototype.PopLocalMinima=function(a,x){return x.v=this.m_CurrentLM,this.m_CurrentLM!==null&&this.m_CurrentLM.Y===a?(this.m_CurrentLM=this.m_CurrentLM.Next,!0):!1},e.ClipperBase.prototype.ReverseHorizontal=function(a){var x=a.Top.X;a.Top.X=a.Bot.X,a.Bot.X=x,e.use_xyz&&(x=a.Top.Z,a.Top.Z=a.Bot.Z,a.Bot.Z=x)},e.ClipperBase.prototype.Reset=function(){if(this.m_CurrentLM=this.m_MinimaList,this.m_CurrentLM!==null){this.m_Scanbeam=null;for(var a=this.m_MinimaList;a!==null;){this.InsertScanbeam(a.Y);var x=a.LeftBound;x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),x=a.RightBound,x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),a=a.Next}this.m_ActiveEdges=null}},e.ClipperBase.prototype.InsertScanbeam=function(a){if(this.m_Scanbeam===null)this.m_Scanbeam=new e.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=a;else if(a>this.m_Scanbeam.Y){var x=new e.Scanbeam;x.Y=a,x.Next=this.m_Scanbeam,this.m_Scanbeam=x}else{for(var A=this.m_Scanbeam;A.Next!==null&&a<=A.Next.Y;)A=A.Next;if(a===A.Y)return;var F=new e.Scanbeam;F.Y=a,F.Next=A.Next,A.Next=F}},e.ClipperBase.prototype.PopScanbeam=function(a){return this.m_Scanbeam===null?(a.v=0,!1):(a.v=this.m_Scanbeam.Y,this.m_Scanbeam=this.m_Scanbeam.Next,!0)},e.ClipperBase.prototype.LocalMinimaPending=function(){return this.m_CurrentLM!==null},e.ClipperBase.prototype.CreateOutRec=function(){var a=new e.OutRec;return a.Idx=e.ClipperBase.Unassigned,a.IsHole=!1,a.IsOpen=!1,a.FirstLeft=null,a.Pts=null,a.BottomPt=null,a.PolyNode=null,this.m_PolyOuts.push(a),a.Idx=this.m_PolyOuts.length-1,a},e.ClipperBase.prototype.DisposeOutRec=function(a){var x=this.m_PolyOuts[a];x.Pts=null,x=null,this.m_PolyOuts[a]=null},e.ClipperBase.prototype.UpdateEdgeIntoAEL=function(a){a.NextInLML===null&&e.Error("UpdateEdgeIntoAEL: invalid call");var x=a.PrevInAEL,A=a.NextInAEL;return a.NextInLML.OutIdx=a.OutIdx,x!==null?x.NextInAEL=a.NextInLML:this.m_ActiveEdges=a.NextInLML,A!==null&&(A.PrevInAEL=a.NextInLML),a.NextInLML.Side=a.Side,a.NextInLML.WindDelta=a.WindDelta,a.NextInLML.WindCnt=a.WindCnt,a.NextInLML.WindCnt2=a.WindCnt2,a=a.NextInLML,a.Curr.X=a.Bot.X,a.Curr.Y=a.Bot.Y,a.PrevInAEL=x,a.NextInAEL=A,e.ClipperBase.IsHorizontal(a)||this.InsertScanbeam(a.Top.Y),a},e.ClipperBase.prototype.SwapPositionsInAEL=function(a,x){if(!(a.NextInAEL===a.PrevInAEL||x.NextInAEL===x.PrevInAEL)){if(a.NextInAEL===x){var A=x.NextInAEL;A!==null&&(A.PrevInAEL=a);var F=a.PrevInAEL;F!==null&&(F.NextInAEL=x),x.PrevInAEL=F,x.NextInAEL=a,a.PrevInAEL=x,a.NextInAEL=A}else if(x.NextInAEL===a){var j=a.NextInAEL;j!==null&&(j.PrevInAEL=x);var _=x.PrevInAEL;_!==null&&(_.NextInAEL=a),a.PrevInAEL=_,a.NextInAEL=x,x.PrevInAEL=a,x.NextInAEL=j}else{var st=a.NextInAEL,Pt=a.PrevInAEL;a.NextInAEL=x.NextInAEL,a.NextInAEL!==null&&(a.NextInAEL.PrevInAEL=a),a.PrevInAEL=x.PrevInAEL,a.PrevInAEL!==null&&(a.PrevInAEL.NextInAEL=a),x.NextInAEL=st,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=x),x.PrevInAEL=Pt,x.PrevInAEL!==null&&(x.PrevInAEL.NextInAEL=x)}a.PrevInAEL===null?this.m_ActiveEdges=a:x.PrevInAEL===null&&(this.m_ActiveEdges=x)}},e.ClipperBase.prototype.DeleteFromAEL=function(a){var x=a.PrevInAEL,A=a.NextInAEL;x===null&&A===null&&a!==this.m_ActiveEdges||(x!==null?x.NextInAEL=A:this.m_ActiveEdges=A,A!==null&&(A.PrevInAEL=x),a.NextInAEL=null,a.PrevInAEL=null)},e.Clipper=function(a){typeof a>"u"&&(a=0),this.m_PolyOuts=null,this.m_ClipType=e.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=e.PolyFillType.pftEvenOdd,this.m_SubjFillType=e.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,e.ClipperBase.call(this),this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=e.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=(1&a)!==0,this.StrictlySimple=(2&a)!==0,this.PreserveCollinear=(4&a)!==0,e.use_xyz&&(this.ZFillFunction=null)},e.Clipper.ioReverseSolution=1,e.Clipper.ioStrictlySimple=2,e.Clipper.ioPreserveCollinear=4,e.Clipper.prototype.Clear=function(){this.m_edges.length!==0&&(this.DisposeAllPolyPts(),e.ClipperBase.prototype.Clear.call(this))},e.Clipper.prototype.InsertMaxima=function(a){var x=new e.Maxima;if(x.X=a,this.m_Maxima===null)this.m_Maxima=x,this.m_Maxima.Next=null,this.m_Maxima.Prev=null;else if(a<this.m_Maxima.X)x.Next=this.m_Maxima,x.Prev=null,this.m_Maxima=x;else{for(var A=this.m_Maxima;A.Next!==null&&a>=A.Next.X;)A=A.Next;if(a===A.X)return;x.Next=A.Next,x.Prev=A,A.Next!==null&&(A.Next.Prev=x),A.Next=x}},e.Clipper.prototype.Execute=function(){var a=arguments,x=a.length,A=a[1]instanceof e.PolyTree;if(x===4&&!A){var F=a[0],j=a[1],_=a[2],st=a[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&e.Error("Error: PolyTree struct is needed for open path clipping."),this.m_ExecuteLocked=!0,e.Clear(j),this.m_SubjFillType=_,this.m_ClipFillType=st,this.m_ClipType=F,this.m_UsingPolyTree=!1;try{var Pt=this.ExecuteInternal();Pt&&this.BuildResult(j)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return Pt}else if(x===4&&A){var F=a[0],xt=a[1],_=a[2],st=a[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=_,this.m_ClipFillType=st,this.m_ClipType=F,this.m_UsingPolyTree=!0;try{var Pt=this.ExecuteInternal();Pt&&this.BuildResult2(xt)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return Pt}else if(x===2&&!A){var F=a[0],j=a[1];return this.Execute(F,j,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}else if(x===2&&A){var F=a[0],xt=a[1];return this.Execute(F,xt,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}},e.Clipper.prototype.FixHoleLinkage=function(a){if(!(a.FirstLeft===null||a.IsHole!==a.FirstLeft.IsHole&&a.FirstLeft.Pts!==null)){for(var x=a.FirstLeft;x!==null&&(x.IsHole===a.IsHole||x.Pts===null);)x=x.FirstLeft;a.FirstLeft=x}},e.Clipper.prototype.ExecuteInternal=function(){try{this.Reset(),this.m_SortedEdges=null,this.m_Maxima=null;var a={},x={};if(!this.PopScanbeam(a))return!1;for(this.InsertLocalMinimaIntoAEL(a.v);this.PopScanbeam(x)||this.LocalMinimaPending();){if(this.ProcessHorizontals(),this.m_GhostJoins.length=0,!this.ProcessIntersections(x.v))return!1;this.ProcessEdgesAtTopOfScanbeam(x.v),a.v=x.v,this.InsertLocalMinimaIntoAEL(a.v)}var A,F,j;for(F=0,j=this.m_PolyOuts.length;F<j;F++)A=this.m_PolyOuts[F],!(A.Pts===null||A.IsOpen)&&(A.IsHole^this.ReverseSolution)==this.Area$1(A)>0&&this.ReversePolyPtLinks(A.Pts);for(this.JoinCommonEdges(),F=0,j=this.m_PolyOuts.length;F<j;F++)A=this.m_PolyOuts[F],A.Pts!==null&&(A.IsOpen?this.FixupOutPolyline(A):this.FixupOutPolygon(A));return this.StrictlySimple&&this.DoSimplePolygons(),!0}finally{this.m_Joins.length=0,this.m_GhostJoins.length=0}},e.Clipper.prototype.DisposeAllPolyPts=function(){for(var a=0,x=this.m_PolyOuts.length;a<x;++a)this.DisposeOutRec(a);e.Clear(this.m_PolyOuts)},e.Clipper.prototype.AddJoin=function(a,x,A){var F=new e.Join;F.OutPt1=a,F.OutPt2=x,F.OffPt.X=A.X,F.OffPt.Y=A.Y,e.use_xyz&&(F.OffPt.Z=A.Z),this.m_Joins.push(F)},e.Clipper.prototype.AddGhostJoin=function(a,x){var A=new e.Join;A.OutPt1=a,A.OffPt.X=x.X,A.OffPt.Y=x.Y,e.use_xyz&&(A.OffPt.Z=x.Z),this.m_GhostJoins.push(A)},e.Clipper.prototype.SetZ=function(a,x,A){if(this.ZFillFunction!==null){if(a.Z!==0||this.ZFillFunction===null)return;e.IntPoint.op_Equality(a,x.Bot)?a.Z=x.Bot.Z:e.IntPoint.op_Equality(a,x.Top)?a.Z=x.Top.Z:e.IntPoint.op_Equality(a,A.Bot)?a.Z=A.Bot.Z:e.IntPoint.op_Equality(a,A.Top)?a.Z=A.Top.Z:this.ZFillFunction(x.Bot,x.Top,A.Bot,A.Top,a)}},e.Clipper.prototype.InsertLocalMinimaIntoAEL=function(a){for(var x={},A,F;this.PopLocalMinima(a,x);){A=x.v.LeftBound,F=x.v.RightBound;var j=null;if(A===null?(this.InsertEdgeIntoAEL(F,null),this.SetWindingCount(F),this.IsContributing(F)&&(j=this.AddOutPt(F,F.Bot))):F===null?(this.InsertEdgeIntoAEL(A,null),this.SetWindingCount(A),this.IsContributing(A)&&(j=this.AddOutPt(A,A.Bot)),this.InsertScanbeam(A.Top.Y)):(this.InsertEdgeIntoAEL(A,null),this.InsertEdgeIntoAEL(F,A),this.SetWindingCount(A),F.WindCnt=A.WindCnt,F.WindCnt2=A.WindCnt2,this.IsContributing(A)&&(j=this.AddLocalMinPoly(A,F,A.Bot)),this.InsertScanbeam(A.Top.Y)),F!==null&&(e.ClipperBase.IsHorizontal(F)?(F.NextInLML!==null&&this.InsertScanbeam(F.NextInLML.Top.Y),this.AddEdgeToSEL(F)):this.InsertScanbeam(F.Top.Y)),!(A===null||F===null)){if(j!==null&&e.ClipperBase.IsHorizontal(F)&&this.m_GhostJoins.length>0&&F.WindDelta!==0)for(var _=0,st=this.m_GhostJoins.length;_<st;_++){var Pt=this.m_GhostJoins[_];this.HorzSegmentsOverlap(Pt.OutPt1.Pt.X,Pt.OffPt.X,F.Bot.X,F.Top.X)&&this.AddJoin(Pt.OutPt1,j,Pt.OffPt)}if(A.OutIdx>=0&&A.PrevInAEL!==null&&A.PrevInAEL.Curr.X===A.Bot.X&&A.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(A.PrevInAEL.Curr,A.PrevInAEL.Top,A.Curr,A.Top,this.m_UseFullRange)&&A.WindDelta!==0&&A.PrevInAEL.WindDelta!==0){var xt=this.AddOutPt(A.PrevInAEL,A.Bot);this.AddJoin(j,xt,A.Top)}if(A.NextInAEL!==F){if(F.OutIdx>=0&&F.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(F.PrevInAEL.Curr,F.PrevInAEL.Top,F.Curr,F.Top,this.m_UseFullRange)&&F.WindDelta!==0&&F.PrevInAEL.WindDelta!==0){var xt=this.AddOutPt(F.PrevInAEL,F.Bot);this.AddJoin(j,xt,F.Top)}var Dt=A.NextInAEL;if(Dt!==null)for(;Dt!==F;)this.IntersectEdges(F,Dt,A.Curr),Dt=Dt.NextInAEL}}}},e.Clipper.prototype.InsertEdgeIntoAEL=function(a,x){if(this.m_ActiveEdges===null)a.PrevInAEL=null,a.NextInAEL=null,this.m_ActiveEdges=a;else if(x===null&&this.E2InsertsBeforeE1(this.m_ActiveEdges,a))a.PrevInAEL=null,a.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=a,this.m_ActiveEdges=a;else{for(x===null&&(x=this.m_ActiveEdges);x.NextInAEL!==null&&!this.E2InsertsBeforeE1(x.NextInAEL,a);)x=x.NextInAEL;a.NextInAEL=x.NextInAEL,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=a),a.PrevInAEL=x,x.NextInAEL=a}},e.Clipper.prototype.E2InsertsBeforeE1=function(a,x){return x.Curr.X===a.Curr.X?x.Top.Y>a.Top.Y?x.Top.X<e.Clipper.TopX(a,x.Top.Y):a.Top.X>e.Clipper.TopX(x,a.Top.Y):x.Curr.X<a.Curr.X},e.Clipper.prototype.IsEvenOddFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType===e.PolyFillType.pftEvenOdd:this.m_ClipFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsEvenOddAltFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_ClipFillType===e.PolyFillType.pftEvenOdd:this.m_SubjFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsContributing=function(a){var x,A;switch(a.PolyTyp===e.PolyType.ptSubject?(x=this.m_SubjFillType,A=this.m_ClipFillType):(x=this.m_ClipFillType,A=this.m_SubjFillType),x){case e.PolyFillType.pftEvenOdd:if(a.WindDelta===0&&a.WindCnt!==1)return!1;break;case e.PolyFillType.pftNonZero:if(Math.abs(a.WindCnt)!==1)return!1;break;case e.PolyFillType.pftPositive:if(a.WindCnt!==1)return!1;break;default:if(a.WindCnt!==-1)return!1;break}switch(this.m_ClipType){case e.ClipType.ctIntersection:switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctUnion:switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}case e.ClipType.ctDifference:if(a.PolyTyp===e.PolyType.ptSubject)switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctXor:if(a.WindDelta===0)switch(A){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else return!0}return!0},e.Clipper.prototype.SetWindingCount=function(a){for(var x=a.PrevInAEL;x!==null&&(x.PolyTyp!==a.PolyTyp||x.WindDelta===0);)x=x.PrevInAEL;if(x===null){var A=a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType;a.WindDelta===0?a.WindCnt=A===e.PolyFillType.pftNegative?-1:1:a.WindCnt=a.WindDelta,a.WindCnt2=0,x=this.m_ActiveEdges}else if(a.WindDelta===0&&this.m_ClipType!==e.ClipType.ctUnion)a.WindCnt=1,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;else if(this.IsEvenOddFillType(a)){if(a.WindDelta===0){for(var F=!0,j=x.PrevInAEL;j!==null;)j.PolyTyp===x.PolyTyp&&j.WindDelta!==0&&(F=!F),j=j.PrevInAEL;a.WindCnt=F?0:1}else a.WindCnt=a.WindDelta;a.WindCnt2=x.WindCnt2,x=x.NextInAEL}else x.WindCnt*x.WindDelta<0?Math.abs(x.WindCnt)>1?x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta:a.WindCnt=a.WindDelta===0?1:a.WindDelta:a.WindDelta===0?a.WindCnt=x.WindCnt<0?x.WindCnt-1:x.WindCnt+1:x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;if(this.IsEvenOddAltFillType(a))for(;x!==a;)x.WindDelta!==0&&(a.WindCnt2=a.WindCnt2===0?1:0),x=x.NextInAEL;else for(;x!==a;)a.WindCnt2+=x.WindDelta,x=x.NextInAEL},e.Clipper.prototype.AddEdgeToSEL=function(a){this.m_SortedEdges===null?(this.m_SortedEdges=a,a.PrevInSEL=null,a.NextInSEL=null):(a.NextInSEL=this.m_SortedEdges,a.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=a,this.m_SortedEdges=a)},e.Clipper.prototype.PopEdgeFromSEL=function(a){if(a.v=this.m_SortedEdges,a.v===null)return!1;var x=a.v;return this.m_SortedEdges=a.v.NextInSEL,this.m_SortedEdges!==null&&(this.m_SortedEdges.PrevInSEL=null),x.NextInSEL=null,x.PrevInSEL=null,!0},e.Clipper.prototype.CopyAELToSEL=function(){var a=this.m_ActiveEdges;for(this.m_SortedEdges=a;a!==null;)a.PrevInSEL=a.PrevInAEL,a.NextInSEL=a.NextInAEL,a=a.NextInAEL},e.Clipper.prototype.SwapPositionsInSEL=function(a,x){if(!(a.NextInSEL===null&&a.PrevInSEL===null)&&!(x.NextInSEL===null&&x.PrevInSEL===null)){if(a.NextInSEL===x){var A=x.NextInSEL;A!==null&&(A.PrevInSEL=a);var F=a.PrevInSEL;F!==null&&(F.NextInSEL=x),x.PrevInSEL=F,x.NextInSEL=a,a.PrevInSEL=x,a.NextInSEL=A}else if(x.NextInSEL===a){var A=a.NextInSEL;A!==null&&(A.PrevInSEL=x);var F=x.PrevInSEL;F!==null&&(F.NextInSEL=a),a.PrevInSEL=F,a.NextInSEL=x,x.PrevInSEL=a,x.NextInSEL=A}else{var A=a.NextInSEL,F=a.PrevInSEL;a.NextInSEL=x.NextInSEL,a.NextInSEL!==null&&(a.NextInSEL.PrevInSEL=a),a.PrevInSEL=x.PrevInSEL,a.PrevInSEL!==null&&(a.PrevInSEL.NextInSEL=a),x.NextInSEL=A,x.NextInSEL!==null&&(x.NextInSEL.PrevInSEL=x),x.PrevInSEL=F,x.PrevInSEL!==null&&(x.PrevInSEL.NextInSEL=x)}a.PrevInSEL===null?this.m_SortedEdges=a:x.PrevInSEL===null&&(this.m_SortedEdges=x)}},e.Clipper.prototype.AddLocalMaxPoly=function(a,x,A){this.AddOutPt(a,A),x.WindDelta===0&&this.AddOutPt(x,A),a.OutIdx===x.OutIdx?(a.OutIdx=-1,x.OutIdx=-1):a.OutIdx<x.OutIdx?this.AppendPolygon(a,x):this.AppendPolygon(x,a)},e.Clipper.prototype.AddLocalMinPoly=function(a,x,A){var F,j,_;if(e.ClipperBase.IsHorizontal(x)||a.Dx>x.Dx?(F=this.AddOutPt(a,A),x.OutIdx=a.OutIdx,a.Side=e.EdgeSide.esLeft,x.Side=e.EdgeSide.esRight,j=a,j.PrevInAEL===x?_=x.PrevInAEL:_=j.PrevInAEL):(F=this.AddOutPt(x,A),a.OutIdx=x.OutIdx,a.Side=e.EdgeSide.esRight,x.Side=e.EdgeSide.esLeft,j=x,j.PrevInAEL===a?_=a.PrevInAEL:_=j.PrevInAEL),_!==null&&_.OutIdx>=0&&_.Top.Y<A.Y&&j.Top.Y<A.Y){var st=e.Clipper.TopX(_,A.Y),Pt=e.Clipper.TopX(j,A.Y);if(st===Pt&&j.WindDelta!==0&&_.WindDelta!==0&&e.ClipperBase.SlopesEqual5(new e.IntPoint2(st,A.Y),_.Top,new e.IntPoint2(Pt,A.Y),j.Top,this.m_UseFullRange)){var xt=this.AddOutPt(_,A);this.AddJoin(F,xt,j.Top)}}return F},e.Clipper.prototype.AddOutPt=function(a,x){if(a.OutIdx<0){var A=this.CreateOutRec();A.IsOpen=a.WindDelta===0;var F=new e.OutPt;return A.Pts=F,F.Idx=A.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=F,F.Prev=F,A.IsOpen||this.SetHoleState(a,A),a.OutIdx=A.Idx,F}else{var A=this.m_PolyOuts[a.OutIdx],j=A.Pts,_=a.Side===e.EdgeSide.esLeft;if(_&&e.IntPoint.op_Equality(x,j.Pt))return j;if(!_&&e.IntPoint.op_Equality(x,j.Prev.Pt))return j.Prev;var F=new e.OutPt;return F.Idx=A.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=j,F.Prev=j.Prev,F.Prev.Next=F,j.Prev=F,_&&(A.Pts=F),F}},e.Clipper.prototype.GetLastOutPt=function(a){var x=this.m_PolyOuts[a.OutIdx];return a.Side===e.EdgeSide.esLeft?x.Pts:x.Pts.Prev},e.Clipper.prototype.SwapPoints=function(a,x){var A=new e.IntPoint1(a.Value);a.Value.X=x.Value.X,a.Value.Y=x.Value.Y,e.use_xyz&&(a.Value.Z=x.Value.Z),x.Value.X=A.X,x.Value.Y=A.Y,e.use_xyz&&(x.Value.Z=A.Z)},e.Clipper.prototype.HorzSegmentsOverlap=function(a,x,A,F){var j;return a>x&&(j=a,a=x,x=j),A>F&&(j=A,A=F,F=j),a<F&&A<x},e.Clipper.prototype.SetHoleState=function(a,x){for(var A=a.PrevInAEL,F=null;A!==null;)A.OutIdx>=0&&A.WindDelta!==0&&(F===null?F=A:F.OutIdx===A.OutIdx&&(F=null)),A=A.PrevInAEL;F===null?(x.FirstLeft=null,x.IsHole=!1):(x.FirstLeft=this.m_PolyOuts[F.OutIdx],x.IsHole=!x.FirstLeft.IsHole)},e.Clipper.prototype.GetDx=function(a,x){return a.Y===x.Y?e.ClipperBase.horizontal:(x.X-a.X)/(x.Y-a.Y)},e.Clipper.prototype.FirstIsBottomPt=function(a,x){for(var A=a.Prev;e.IntPoint.op_Equality(A.Pt,a.Pt)&&A!==a;)A=A.Prev;var F=Math.abs(this.GetDx(a.Pt,A.Pt));for(A=a.Next;e.IntPoint.op_Equality(A.Pt,a.Pt)&&A!==a;)A=A.Next;var j=Math.abs(this.GetDx(a.Pt,A.Pt));for(A=x.Prev;e.IntPoint.op_Equality(A.Pt,x.Pt)&&A!==x;)A=A.Prev;var _=Math.abs(this.GetDx(x.Pt,A.Pt));for(A=x.Next;e.IntPoint.op_Equality(A.Pt,x.Pt)&&A!==x;)A=A.Next;var st=Math.abs(this.GetDx(x.Pt,A.Pt));return Math.max(F,j)===Math.max(_,st)&&Math.min(F,j)===Math.min(_,st)?this.Area(a)>0:F>=_&&F>=st||j>=_&&j>=st},e.Clipper.prototype.GetBottomPt=function(a){for(var x=null,A=a.Next;A!==a;)A.Pt.Y>a.Pt.Y?(a=A,x=null):A.Pt.Y===a.Pt.Y&&A.Pt.X<=a.Pt.X&&(A.Pt.X<a.Pt.X?(x=null,a=A):A.Next!==a&&A.Prev!==a&&(x=A)),A=A.Next;if(x!==null)for(;x!==A;)for(this.FirstIsBottomPt(A,x)||(a=x),x=x.Next;e.IntPoint.op_Inequality(x.Pt,a.Pt);)x=x.Next;return a},e.Clipper.prototype.GetLowermostRec=function(a,x){a.BottomPt===null&&(a.BottomPt=this.GetBottomPt(a.Pts)),x.BottomPt===null&&(x.BottomPt=this.GetBottomPt(x.Pts));var A=a.BottomPt,F=x.BottomPt;return A.Pt.Y>F.Pt.Y?a:A.Pt.Y<F.Pt.Y?x:A.Pt.X<F.Pt.X?a:A.Pt.X>F.Pt.X||A.Next===A?x:F.Next===F||this.FirstIsBottomPt(A,F)?a:x},e.Clipper.prototype.OutRec1RightOfOutRec2=function(a,x){do if(a=a.FirstLeft,a===x)return!0;while(a!==null);return!1},e.Clipper.prototype.GetOutRec=function(a){for(var x=this.m_PolyOuts[a];x!==this.m_PolyOuts[x.Idx];)x=this.m_PolyOuts[x.Idx];return x},e.Clipper.prototype.AppendPolygon=function(a,x){var A=this.m_PolyOuts[a.OutIdx],F=this.m_PolyOuts[x.OutIdx],j;this.OutRec1RightOfOutRec2(A,F)?j=F:this.OutRec1RightOfOutRec2(F,A)?j=A:j=this.GetLowermostRec(A,F);var _=A.Pts,st=_.Prev,Pt=F.Pts,xt=Pt.Prev;a.Side===e.EdgeSide.esLeft?x.Side===e.EdgeSide.esLeft?(this.ReversePolyPtLinks(Pt),Pt.Next=_,_.Prev=Pt,st.Next=xt,xt.Prev=st,A.Pts=xt):(xt.Next=_,_.Prev=xt,Pt.Prev=st,st.Next=Pt,A.Pts=Pt):x.Side===e.EdgeSide.esRight?(this.ReversePolyPtLinks(Pt),st.Next=xt,xt.Prev=st,Pt.Next=_,_.Prev=Pt):(st.Next=Pt,Pt.Prev=st,_.Prev=xt,xt.Next=_),A.BottomPt=null,j===F&&(F.FirstLeft!==A&&(A.FirstLeft=F.FirstLeft),A.IsHole=F.IsHole),F.Pts=null,F.BottomPt=null,F.FirstLeft=A;var Dt=a.OutIdx,Ht=x.OutIdx;a.OutIdx=-1,x.OutIdx=-1;for(var jt=this.m_ActiveEdges;jt!==null;){if(jt.OutIdx===Ht){jt.OutIdx=Dt,jt.Side=a.Side;break}jt=jt.NextInAEL}F.Idx=A.Idx},e.Clipper.prototype.ReversePolyPtLinks=function(a){if(a!==null){var x,A;x=a;do A=x.Next,x.Next=x.Prev,x.Prev=A,x=A;while(x!==a)}},e.Clipper.SwapSides=function(a,x){var A=a.Side;a.Side=x.Side,x.Side=A},e.Clipper.SwapPolyIndexes=function(a,x){var A=a.OutIdx;a.OutIdx=x.OutIdx,x.OutIdx=A},e.Clipper.prototype.IntersectEdges=function(a,x,A){var F=a.OutIdx>=0,j=x.OutIdx>=0;if(e.use_xyz&&this.SetZ(A,a,x),e.use_lines&&(a.WindDelta===0||x.WindDelta===0)){if(a.WindDelta===0&&x.WindDelta===0)return;a.PolyTyp===x.PolyTyp&&a.WindDelta!==x.WindDelta&&this.m_ClipType===e.ClipType.ctUnion?a.WindDelta===0?j&&(this.AddOutPt(a,A),F&&(a.OutIdx=-1)):F&&(this.AddOutPt(x,A),j&&(x.OutIdx=-1)):a.PolyTyp!==x.PolyTyp&&(a.WindDelta===0&&Math.abs(x.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||x.WindCnt2===0)?(this.AddOutPt(a,A),F&&(a.OutIdx=-1)):x.WindDelta===0&&Math.abs(a.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||a.WindCnt2===0)&&(this.AddOutPt(x,A),j&&(x.OutIdx=-1)));return}if(a.PolyTyp===x.PolyTyp)if(this.IsEvenOddFillType(a)){var _=a.WindCnt;a.WindCnt=x.WindCnt,x.WindCnt=_}else a.WindCnt+x.WindDelta===0?a.WindCnt=-a.WindCnt:a.WindCnt+=x.WindDelta,x.WindCnt-a.WindDelta===0?x.WindCnt=-x.WindCnt:x.WindCnt-=a.WindDelta;else this.IsEvenOddFillType(x)?a.WindCnt2=a.WindCnt2===0?1:0:a.WindCnt2+=x.WindDelta,this.IsEvenOddFillType(a)?x.WindCnt2=x.WindCnt2===0?1:0:x.WindCnt2-=a.WindDelta;var st,Pt,xt,Dt;a.PolyTyp===e.PolyType.ptSubject?(st=this.m_SubjFillType,xt=this.m_ClipFillType):(st=this.m_ClipFillType,xt=this.m_SubjFillType),x.PolyTyp===e.PolyType.ptSubject?(Pt=this.m_SubjFillType,Dt=this.m_ClipFillType):(Pt=this.m_ClipFillType,Dt=this.m_SubjFillType);var Ht,jt;switch(st){case e.PolyFillType.pftPositive:Ht=a.WindCnt;break;case e.PolyFillType.pftNegative:Ht=-a.WindCnt;break;default:Ht=Math.abs(a.WindCnt);break}switch(Pt){case e.PolyFillType.pftPositive:jt=x.WindCnt;break;case e.PolyFillType.pftNegative:jt=-x.WindCnt;break;default:jt=Math.abs(x.WindCnt);break}if(F&&j)Ht!==0&&Ht!==1||jt!==0&&jt!==1||a.PolyTyp!==x.PolyTyp&&this.m_ClipType!==e.ClipType.ctXor?this.AddLocalMaxPoly(a,x,A):(this.AddOutPt(a,A),this.AddOutPt(x,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(F)(jt===0||jt===1)&&(this.AddOutPt(a,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(j)(Ht===0||Ht===1)&&(this.AddOutPt(x,A),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if((Ht===0||Ht===1)&&(jt===0||jt===1)){var qt,oe;switch(xt){case e.PolyFillType.pftPositive:qt=a.WindCnt2;break;case e.PolyFillType.pftNegative:qt=-a.WindCnt2;break;default:qt=Math.abs(a.WindCnt2);break}switch(Dt){case e.PolyFillType.pftPositive:oe=x.WindCnt2;break;case e.PolyFillType.pftNegative:oe=-x.WindCnt2;break;default:oe=Math.abs(x.WindCnt2);break}if(a.PolyTyp!==x.PolyTyp)this.AddLocalMinPoly(a,x,A);else if(Ht===1&&jt===1)switch(this.m_ClipType){case e.ClipType.ctIntersection:qt>0&&oe>0&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctUnion:qt<=0&&oe<=0&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctDifference:(a.PolyTyp===e.PolyType.ptClip&&qt>0&&oe>0||a.PolyTyp===e.PolyType.ptSubject&&qt<=0&&oe<=0)&&this.AddLocalMinPoly(a,x,A);break;case e.ClipType.ctXor:this.AddLocalMinPoly(a,x,A);break}else e.Clipper.SwapSides(a,x)}},e.Clipper.prototype.DeleteFromSEL=function(a){var x=a.PrevInSEL,A=a.NextInSEL;x===null&&A===null&&a!==this.m_SortedEdges||(x!==null?x.NextInSEL=A:this.m_SortedEdges=A,A!==null&&(A.PrevInSEL=x),a.NextInSEL=null,a.PrevInSEL=null)},e.Clipper.prototype.ProcessHorizontals=function(){for(var a={};this.PopEdgeFromSEL(a);)this.ProcessHorizontal(a.v)},e.Clipper.prototype.GetHorzDirection=function(a,x){a.Bot.X<a.Top.X?(x.Left=a.Bot.X,x.Right=a.Top.X,x.Dir=e.Direction.dLeftToRight):(x.Left=a.Top.X,x.Right=a.Bot.X,x.Dir=e.Direction.dRightToLeft)},e.Clipper.prototype.ProcessHorizontal=function(a){var x={Dir:null,Left:null,Right:null};this.GetHorzDirection(a,x);for(var A=x.Dir,F=x.Left,j=x.Right,_=a.WindDelta===0,st=a,Pt=null;st.NextInLML!==null&&e.ClipperBase.IsHorizontal(st.NextInLML);)st=st.NextInLML;st.NextInLML===null&&(Pt=this.GetMaximaPair(st));var xt=this.m_Maxima;if(xt!==null)if(A===e.Direction.dLeftToRight){for(;xt!==null&&xt.X<=a.Bot.X;)xt=xt.Next;xt!==null&&xt.X>=st.Top.X&&(xt=null)}else{for(;xt.Next!==null&&xt.Next.X<a.Bot.X;)xt=xt.Next;xt.X<=st.Top.X&&(xt=null)}for(var Dt=null;;){for(var Ht=a===st,jt=this.GetNextInAEL(a,A);jt!==null;){if(xt!==null)if(A===e.Direction.dLeftToRight)for(;xt!==null&&xt.X<jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(xt.X,a.Bot.Y)),xt=xt.Next;else for(;xt!==null&&xt.X>jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(xt.X,a.Bot.Y)),xt=xt.Prev;if(A===e.Direction.dLeftToRight&&jt.Curr.X>j||A===e.Direction.dRightToLeft&&jt.Curr.X<F||jt.Curr.X===a.Top.X&&a.NextInLML!==null&&jt.Dx<a.NextInLML.Dx)break;if(a.OutIdx>=0&&!_){e.use_xyz&&(A===e.Direction.dLeftToRight?this.SetZ(jt.Curr,a,jt):this.SetZ(jt.Curr,jt,a)),Dt=this.AddOutPt(a,jt.Curr);for(var qt=this.m_SortedEdges;qt!==null;){if(qt.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,qt.Bot.X,qt.Top.X)){var oe=this.GetLastOutPt(qt);this.AddJoin(oe,Dt,qt.Top)}qt=qt.NextInSEL}this.AddGhostJoin(Dt,a.Bot)}if(jt===Pt&&Ht){a.OutIdx>=0&&this.AddLocalMaxPoly(a,Pt,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(Pt);return}if(A===e.Direction.dLeftToRight){var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(a,jt,me)}else{var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(jt,a,me)}var Pe=this.GetNextInAEL(jt,A);this.SwapPositionsInAEL(a,jt),jt=Pe}if(a.NextInLML===null||!e.ClipperBase.IsHorizontal(a.NextInLML))break;a=this.UpdateEdgeIntoAEL(a),a.OutIdx>=0&&this.AddOutPt(a,a.Bot),x={Dir:A,Left:F,Right:j},this.GetHorzDirection(a,x),A=x.Dir,F=x.Left,j=x.Right}if(a.OutIdx>=0&&Dt===null){Dt=this.GetLastOutPt(a);for(var qt=this.m_SortedEdges;qt!==null;){if(qt.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,qt.Bot.X,qt.Top.X)){var oe=this.GetLastOutPt(qt);this.AddJoin(oe,Dt,qt.Top)}qt=qt.NextInSEL}this.AddGhostJoin(Dt,a.Top)}if(a.NextInLML!==null)if(a.OutIdx>=0){if(Dt=this.AddOutPt(a,a.Top),a=this.UpdateEdgeIntoAEL(a),a.WindDelta===0)return;var be=a.PrevInAEL,Pe=a.NextInAEL;if(be!==null&&be.Curr.X===a.Bot.X&&be.Curr.Y===a.Bot.Y&&be.WindDelta===0&&be.OutIdx>=0&&be.Curr.Y>be.Top.Y&&e.ClipperBase.SlopesEqual3(a,be,this.m_UseFullRange)){var oe=this.AddOutPt(be,a.Bot);this.AddJoin(Dt,oe,a.Top)}else if(Pe!==null&&Pe.Curr.X===a.Bot.X&&Pe.Curr.Y===a.Bot.Y&&Pe.WindDelta!==0&&Pe.OutIdx>=0&&Pe.Curr.Y>Pe.Top.Y&&e.ClipperBase.SlopesEqual3(a,Pe,this.m_UseFullRange)){var oe=this.AddOutPt(Pe,a.Bot);this.AddJoin(Dt,oe,a.Top)}}else a=this.UpdateEdgeIntoAEL(a);else a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a)},e.Clipper.prototype.GetNextInAEL=function(a,x){return x===e.Direction.dLeftToRight?a.NextInAEL:a.PrevInAEL},e.Clipper.prototype.IsMinima=function(a){return a!==null&&a.Prev.NextInLML!==a&&a.Next.NextInLML!==a},e.Clipper.prototype.IsMaxima=function(a,x){return a!==null&&a.Top.Y===x&&a.NextInLML===null},e.Clipper.prototype.IsIntermediate=function(a,x){return a.Top.Y===x&&a.NextInLML!==null},e.Clipper.prototype.GetMaximaPair=function(a){return e.IntPoint.op_Equality(a.Next.Top,a.Top)&&a.Next.NextInLML===null?a.Next:e.IntPoint.op_Equality(a.Prev.Top,a.Top)&&a.Prev.NextInLML===null?a.Prev:null},e.Clipper.prototype.GetMaximaPairEx=function(a){var x=this.GetMaximaPair(a);return x===null||x.OutIdx===e.ClipperBase.Skip||x.NextInAEL===x.PrevInAEL&&!e.ClipperBase.IsHorizontal(x)?null:x},e.Clipper.prototype.ProcessIntersections=function(a){if(this.m_ActiveEdges===null)return!0;try{if(this.BuildIntersectList(a),this.m_IntersectList.length===0)return!0;if(this.m_IntersectList.length===1||this.FixupIntersectionOrder())this.ProcessIntersectList();else return!1}catch{this.m_SortedEdges=null,this.m_IntersectList.length=0,e.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},e.Clipper.prototype.BuildIntersectList=function(a){if(this.m_ActiveEdges!==null){var x=this.m_ActiveEdges;for(this.m_SortedEdges=x;x!==null;)x.PrevInSEL=x.PrevInAEL,x.NextInSEL=x.NextInAEL,x.Curr.X=e.Clipper.TopX(x,a),x=x.NextInAEL;for(var A=!0;A&&this.m_SortedEdges!==null;){for(A=!1,x=this.m_SortedEdges;x.NextInSEL!==null;){var F=x.NextInSEL,j=new e.IntPoint0;if(x.Curr.X>F.Curr.X){this.IntersectPoint(x,F,j),j.Y<a&&(j=new e.IntPoint2(e.Clipper.TopX(x,a),a));var _=new e.IntersectNode;_.Edge1=x,_.Edge2=F,_.Pt.X=j.X,_.Pt.Y=j.Y,e.use_xyz&&(_.Pt.Z=j.Z),this.m_IntersectList.push(_),this.SwapPositionsInSEL(x,F),A=!0}else x=F}if(x.PrevInSEL!==null)x.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}},e.Clipper.prototype.EdgesAdjacent=function(a){return a.Edge1.NextInSEL===a.Edge2||a.Edge1.PrevInSEL===a.Edge2},e.Clipper.IntersectNodeSort=function(a,x){return x.Pt.Y-a.Pt.Y},e.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer),this.CopyAELToSEL();for(var a=this.m_IntersectList.length,x=0;x<a;x++){if(!this.EdgesAdjacent(this.m_IntersectList[x])){for(var A=x+1;A<a&&!this.EdgesAdjacent(this.m_IntersectList[A]);)A++;if(A===a)return!1;var F=this.m_IntersectList[x];this.m_IntersectList[x]=this.m_IntersectList[A],this.m_IntersectList[A]=F}this.SwapPositionsInSEL(this.m_IntersectList[x].Edge1,this.m_IntersectList[x].Edge2)}return!0},e.Clipper.prototype.ProcessIntersectList=function(){for(var a=0,x=this.m_IntersectList.length;a<x;a++){var A=this.m_IntersectList[a];this.IntersectEdges(A.Edge1,A.Edge2,A.Pt),this.SwapPositionsInAEL(A.Edge1,A.Edge2)}this.m_IntersectList.length=0};var Yi=function(a){return a<0?Math.ceil(a-.5):Math.round(a)},Aa=function(a){return a<0?Math.ceil(a-.5):Math.floor(a+.5)},Us=function(a){return a<0?-Math.round(Math.abs(a)):Math.round(a)},ui=function(a){return a<0?(a-=.5,a<-2147483648?Math.ceil(a):a|0):(a+=.5,a>2147483647?Math.floor(a):a|0)};s.msie?e.Clipper.Round=Yi:s.chromium?e.Clipper.Round=Us:s.safari?e.Clipper.Round=ui:e.Clipper.Round=Aa,e.Clipper.TopX=function(a,x){return x===a.Top.Y?a.Top.X:a.Bot.X+e.Clipper.Round(a.Dx*(x-a.Bot.Y))},e.Clipper.prototype.IntersectPoint=function(a,x,A){A.X=0,A.Y=0;var F,j;if(a.Dx===x.Dx){A.Y=a.Curr.Y,A.X=e.Clipper.TopX(a,A.Y);return}if(a.Delta.X===0)A.X=a.Bot.X,e.ClipperBase.IsHorizontal(x)?A.Y=x.Bot.Y:(j=x.Bot.Y-x.Bot.X/x.Dx,A.Y=e.Clipper.Round(A.X/x.Dx+j));else if(x.Delta.X===0)A.X=x.Bot.X,e.ClipperBase.IsHorizontal(a)?A.Y=a.Bot.Y:(F=a.Bot.Y-a.Bot.X/a.Dx,A.Y=e.Clipper.Round(A.X/a.Dx+F));else{F=a.Bot.X-a.Bot.Y*a.Dx,j=x.Bot.X-x.Bot.Y*x.Dx;var _=(j-F)/(a.Dx-x.Dx);A.Y=e.Clipper.Round(_),Math.abs(a.Dx)<Math.abs(x.Dx)?A.X=e.Clipper.Round(a.Dx*_+F):A.X=e.Clipper.Round(x.Dx*_+j)}if(A.Y<a.Top.Y||A.Y<x.Top.Y){if(a.Top.Y>x.Top.Y)return A.Y=a.Top.Y,A.X=e.Clipper.TopX(x,a.Top.Y),A.X<a.Top.X;A.Y=x.Top.Y,Math.abs(a.Dx)<Math.abs(x.Dx)?A.X=e.Clipper.TopX(a,A.Y):A.X=e.Clipper.TopX(x,A.Y)}A.Y>a.Curr.Y&&(A.Y=a.Curr.Y,Math.abs(a.Dx)>Math.abs(x.Dx)?A.X=e.Clipper.TopX(x,A.Y):A.X=e.Clipper.TopX(a,A.Y))},e.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(a){for(var x=this.m_ActiveEdges;x!==null;){var A=this.IsMaxima(x,a);if(A){var F=this.GetMaximaPairEx(x);A=F===null||!e.ClipperBase.IsHorizontal(F)}if(A){this.StrictlySimple&&this.InsertMaxima(x.Top.X);var j=x.PrevInAEL;this.DoMaxima(x),j===null?x=this.m_ActiveEdges:x=j.NextInAEL}else{if(this.IsIntermediate(x,a)&&e.ClipperBase.IsHorizontal(x.NextInLML)?(x=this.UpdateEdgeIntoAEL(x),x.OutIdx>=0&&this.AddOutPt(x,x.Bot),this.AddEdgeToSEL(x)):(x.Curr.X=e.Clipper.TopX(x,a),x.Curr.Y=a),e.use_xyz&&(x.Top.Y===a?x.Curr.Z=x.Top.Z:x.Bot.Y===a?x.Curr.Z=x.Bot.Z:x.Curr.Z=0),this.StrictlySimple){var j=x.PrevInAEL;if(x.OutIdx>=0&&x.WindDelta!==0&&j!==null&&j.OutIdx>=0&&j.Curr.X===x.Curr.X&&j.WindDelta!==0){var _=new e.IntPoint1(x.Curr);e.use_xyz&&this.SetZ(_,j,x);var st=this.AddOutPt(j,_),Pt=this.AddOutPt(x,_);this.AddJoin(st,Pt,_)}}x=x.NextInAEL}}for(this.ProcessHorizontals(),this.m_Maxima=null,x=this.m_ActiveEdges;x!==null;){if(this.IsIntermediate(x,a)){var st=null;x.OutIdx>=0&&(st=this.AddOutPt(x,x.Top)),x=this.UpdateEdgeIntoAEL(x);var j=x.PrevInAEL,xt=x.NextInAEL;if(j!==null&&j.Curr.X===x.Bot.X&&j.Curr.Y===x.Bot.Y&&st!==null&&j.OutIdx>=0&&j.Curr.Y===j.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,j.Curr,j.Top,this.m_UseFullRange)&&x.WindDelta!==0&&j.WindDelta!==0){var Pt=this.AddOutPt(ePrev2,x.Bot);this.AddJoin(st,Pt,x.Top)}else if(xt!==null&&xt.Curr.X===x.Bot.X&&xt.Curr.Y===x.Bot.Y&&st!==null&&xt.OutIdx>=0&&xt.Curr.Y===xt.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,xt.Curr,xt.Top,this.m_UseFullRange)&&x.WindDelta!==0&&xt.WindDelta!==0){var Pt=this.AddOutPt(xt,x.Bot);this.AddJoin(st,Pt,x.Top)}}x=x.NextInAEL}},e.Clipper.prototype.DoMaxima=function(a){var x=this.GetMaximaPairEx(a);if(x===null){a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a);return}for(var A=a.NextInAEL;A!==null&&A!==x;)this.IntersectEdges(a,A,a.Top),this.SwapPositionsInAEL(a,A),A=a.NextInAEL;a.OutIdx===-1&&x.OutIdx===-1?(this.DeleteFromAEL(a),this.DeleteFromAEL(x)):a.OutIdx>=0&&x.OutIdx>=0?(a.OutIdx>=0&&this.AddLocalMaxPoly(a,x,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(x)):e.use_lines&&a.WindDelta===0?(a.OutIdx>=0&&(this.AddOutPt(a,a.Top),a.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(a),x.OutIdx>=0&&(this.AddOutPt(x,a.Top),x.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(x)):e.Error("DoMaxima error")},e.Clipper.ReversePaths=function(a){for(var x=0,A=a.length;x<A;x++)a[x].reverse()},e.Clipper.Orientation=function(a){return e.Clipper.Area(a)>=0},e.Clipper.prototype.PointCount=function(a){if(a===null)return 0;var x=0,A=a;do x++,A=A.Next;while(A!==a);return x},e.Clipper.prototype.BuildResult=function(a){e.Clear(a);for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x];if(F.Pts!==null){var j=F.Pts.Prev,_=this.PointCount(j);if(!(_<2)){for(var st=new Array(_),Pt=0;Pt<_;Pt++)st[Pt]=j.Pt,j=j.Prev;a.push(st)}}}},e.Clipper.prototype.BuildResult2=function(a){a.Clear();for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x],j=this.PointCount(F.Pts);if(!(F.IsOpen&&j<2||!F.IsOpen&&j<3)){this.FixHoleLinkage(F);var _=new e.PolyNode;a.m_AllPolys.push(_),F.PolyNode=_,_.m_polygon.length=j;for(var st=F.Pts.Prev,Pt=0;Pt<j;Pt++)_.m_polygon[Pt]=st.Pt,st=st.Prev}}for(var x=0,A=this.m_PolyOuts.length;x<A;x++){var F=this.m_PolyOuts[x];F.PolyNode!==null&&(F.IsOpen?(F.PolyNode.IsOpen=!0,a.AddChild(F.PolyNode)):F.FirstLeft!==null&&F.FirstLeft.PolyNode!==null?F.FirstLeft.PolyNode.AddChild(F.PolyNode):a.AddChild(F.PolyNode))}},e.Clipper.prototype.FixupOutPolyline=function(a){for(var x=a.Pts,A=x.Prev;x!==A;)if(x=x.Next,e.IntPoint.op_Equality(x.Pt,x.Prev.Pt)){x===A&&(A=x.Prev);var F=x.Prev;F.Next=x.Next,x.Next.Prev=F,x=F}x===x.Prev&&(a.Pts=null)},e.Clipper.prototype.FixupOutPolygon=function(a){var x=null;a.BottomPt=null;for(var A=a.Pts,F=this.PreserveCollinear||this.StrictlySimple;;){if(A.Prev===A||A.Prev===A.Next){a.Pts=null;return}if(e.IntPoint.op_Equality(A.Pt,A.Next.Pt)||e.IntPoint.op_Equality(A.Pt,A.Prev.Pt)||e.ClipperBase.SlopesEqual4(A.Prev.Pt,A.Pt,A.Next.Pt,this.m_UseFullRange)&&(!F||!this.Pt2IsBetweenPt1AndPt3(A.Prev.Pt,A.Pt,A.Next.Pt)))x=null,A.Prev.Next=A.Next,A.Next.Prev=A.Prev,A=A.Prev;else{if(A===x)break;x===null&&(x=A),A=A.Next}}a.Pts=A},e.Clipper.prototype.DupOutPt=function(a,x){var A=new e.OutPt;return A.Pt.X=a.Pt.X,A.Pt.Y=a.Pt.Y,e.use_xyz&&(A.Pt.Z=a.Pt.Z),A.Idx=a.Idx,x?(A.Next=a.Next,A.Prev=a,a.Next.Prev=A,a.Next=A):(A.Prev=a.Prev,A.Next=a,a.Prev.Next=A,a.Prev=A),A},e.Clipper.prototype.GetOverlap=function(a,x,A,F,j){return a<x?A<F?(j.Left=Math.max(a,A),j.Right=Math.min(x,F)):(j.Left=Math.max(a,F),j.Right=Math.min(x,A)):A<F?(j.Left=Math.max(x,A),j.Right=Math.min(a,F)):(j.Left=Math.max(x,F),j.Right=Math.min(a,A)),j.Left<j.Right},e.Clipper.prototype.JoinHorz=function(a,x,A,F,j,_){var st=a.Pt.X>x.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight,Pt=A.Pt.X>F.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight;if(st===Pt)return!1;if(st===e.Direction.dLeftToRight){for(;a.Next.Pt.X<=j.X&&a.Next.Pt.X>=a.Pt.X&&a.Next.Pt.Y===j.Y;)a=a.Next;_&&a.Pt.X!==j.X&&(a=a.Next),x=this.DupOutPt(a,!_),e.IntPoint.op_Inequality(x.Pt,j)&&(a=x,a.Pt.X=j.X,a.Pt.Y=j.Y,e.use_xyz&&(a.Pt.Z=j.Z),x=this.DupOutPt(a,!_))}else{for(;a.Next.Pt.X>=j.X&&a.Next.Pt.X<=a.Pt.X&&a.Next.Pt.Y===j.Y;)a=a.Next;!_&&a.Pt.X!==j.X&&(a=a.Next),x=this.DupOutPt(a,_),e.IntPoint.op_Inequality(x.Pt,j)&&(a=x,a.Pt.X=j.X,a.Pt.Y=j.Y,e.use_xyz&&(a.Pt.Z=j.Z),x=this.DupOutPt(a,_))}if(Pt===e.Direction.dLeftToRight){for(;A.Next.Pt.X<=j.X&&A.Next.Pt.X>=A.Pt.X&&A.Next.Pt.Y===j.Y;)A=A.Next;_&&A.Pt.X!==j.X&&(A=A.Next),F=this.DupOutPt(A,!_),e.IntPoint.op_Inequality(F.Pt,j)&&(A=F,A.Pt.X=j.X,A.Pt.Y=j.Y,e.use_xyz&&(A.Pt.Z=j.Z),F=this.DupOutPt(A,!_))}else{for(;A.Next.Pt.X>=j.X&&A.Next.Pt.X<=A.Pt.X&&A.Next.Pt.Y===j.Y;)A=A.Next;!_&&A.Pt.X!==j.X&&(A=A.Next),F=this.DupOutPt(A,_),e.IntPoint.op_Inequality(F.Pt,j)&&(A=F,A.Pt.X=j.X,A.Pt.Y=j.Y,e.use_xyz&&(A.Pt.Z=j.Z),F=this.DupOutPt(A,_))}return st===e.Direction.dLeftToRight===_?(a.Prev=A,A.Next=a,x.Next=F,F.Prev=x):(a.Next=A,A.Prev=a,x.Prev=F,F.Next=x),!0},e.Clipper.prototype.JoinPoints=function(a,x,A){var F=a.OutPt1,j=new e.OutPt,_=a.OutPt2,st=new e.OutPt,Pt=a.OutPt1.Pt.Y===a.OffPt.Y;if(Pt&&e.IntPoint.op_Equality(a.OffPt,a.OutPt1.Pt)&&e.IntPoint.op_Equality(a.OffPt,a.OutPt2.Pt)){if(x!==A)return!1;for(j=a.OutPt1.Next;j!==F&&e.IntPoint.op_Equality(j.Pt,a.OffPt);)j=j.Next;var xt=j.Pt.Y>a.OffPt.Y;for(st=a.OutPt2.Next;st!==_&&e.IntPoint.op_Equality(st.Pt,a.OffPt);)st=st.Next;var Dt=st.Pt.Y>a.OffPt.Y;return xt===Dt?!1:xt?(j=this.DupOutPt(F,!1),st=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,j.Next=st,st.Prev=j,a.OutPt1=F,a.OutPt2=j,!0):(j=this.DupOutPt(F,!0),st=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,j.Prev=st,st.Next=j,a.OutPt1=F,a.OutPt2=j,!0)}else if(Pt){for(j=F;F.Prev.Pt.Y===F.Pt.Y&&F.Prev!==j&&F.Prev!==_;)F=F.Prev;for(;j.Next.Pt.Y===j.Pt.Y&&j.Next!==F&&j.Next!==_;)j=j.Next;if(j.Next===F||j.Next===_)return!1;for(st=_;_.Prev.Pt.Y===_.Pt.Y&&_.Prev!==st&&_.Prev!==j;)_=_.Prev;for(;st.Next.Pt.Y===st.Pt.Y&&st.Next!==_&&st.Next!==F;)st=st.Next;if(st.Next===_||st.Next===F)return!1;var Ht={Left:null,Right:null};if(!this.GetOverlap(F.Pt.X,j.Pt.X,_.Pt.X,st.Pt.X,Ht))return!1;var jt=Ht.Left,qt=Ht.Right,oe=new e.IntPoint0,me;return F.Pt.X>=jt&&F.Pt.X<=qt?(oe.X=F.Pt.X,oe.Y=F.Pt.Y,e.use_xyz&&(oe.Z=F.Pt.Z),me=F.Pt.X>j.Pt.X):_.Pt.X>=jt&&_.Pt.X<=qt?(oe.X=_.Pt.X,oe.Y=_.Pt.Y,e.use_xyz&&(oe.Z=_.Pt.Z),me=_.Pt.X>st.Pt.X):j.Pt.X>=jt&&j.Pt.X<=qt?(oe.X=j.Pt.X,oe.Y=j.Pt.Y,e.use_xyz&&(oe.Z=j.Pt.Z),me=j.Pt.X>F.Pt.X):(oe.X=st.Pt.X,oe.Y=st.Pt.Y,e.use_xyz&&(oe.Z=st.Pt.Z),me=st.Pt.X>_.Pt.X),a.OutPt1=F,a.OutPt2=_,this.JoinHorz(F,j,_,st,oe,me)}else{for(j=F.Next;e.IntPoint.op_Equality(j.Pt,F.Pt)&&j!==F;)j=j.Next;var Pe=j.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,j.Pt,a.OffPt,this.m_UseFullRange);if(Pe){for(j=F.Prev;e.IntPoint.op_Equality(j.Pt,F.Pt)&&j!==F;)j=j.Prev;if(j.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,j.Pt,a.OffPt,this.m_UseFullRange))return!1}for(st=_.Next;e.IntPoint.op_Equality(st.Pt,_.Pt)&&st!==_;)st=st.Next;var be=st.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,st.Pt,a.OffPt,this.m_UseFullRange);if(be){for(st=_.Prev;e.IntPoint.op_Equality(st.Pt,_.Pt)&&st!==_;)st=st.Prev;if(st.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,st.Pt,a.OffPt,this.m_UseFullRange))return!1}return j===F||st===_||j===st||x===A&&Pe===be?!1:Pe?(j=this.DupOutPt(F,!1),st=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,j.Next=st,st.Prev=j,a.OutPt1=F,a.OutPt2=j,!0):(j=this.DupOutPt(F,!0),st=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,j.Prev=st,st.Next=j,a.OutPt1=F,a.OutPt2=j,!0)}},e.Clipper.GetBounds=function(a){for(var x=0,A=a.length;x<A&&a[x].length===0;)x++;if(x===A)return new e.IntRect(0,0,0,0);var F=new e.IntRect;for(F.left=a[x][0].X,F.right=F.left,F.top=a[x][0].Y,F.bottom=F.top;x<A;x++)for(var j=0,_=a[x].length;j<_;j++)a[x][j].X<F.left?F.left=a[x][j].X:a[x][j].X>F.right&&(F.right=a[x][j].X),a[x][j].Y<F.top?F.top=a[x][j].Y:a[x][j].Y>F.bottom&&(F.bottom=a[x][j].Y);return F},e.Clipper.prototype.GetBounds2=function(a){var x=a,A=new e.IntRect;for(A.left=a.Pt.X,A.right=a.Pt.X,A.top=a.Pt.Y,A.bottom=a.Pt.Y,a=a.Next;a!==x;)a.Pt.X<A.left&&(A.left=a.Pt.X),a.Pt.X>A.right&&(A.right=a.Pt.X),a.Pt.Y<A.top&&(A.top=a.Pt.Y),a.Pt.Y>A.bottom&&(A.bottom=a.Pt.Y),a=a.Next;return A},e.Clipper.PointInPolygon=function(a,x){var A=0,F=x.length;if(F<3)return 0;for(var j=x[0],_=1;_<=F;++_){var st=_===F?x[0]:x[_];if(st.Y===a.Y&&(st.X===a.X||j.Y===a.Y&&st.X>a.X==j.X<a.X))return-1;if(j.Y<a.Y!=st.Y<a.Y){if(j.X>=a.X)if(st.X>a.X)A=1-A;else{var Pt=(j.X-a.X)*(st.Y-a.Y)-(st.X-a.X)*(j.Y-a.Y);if(Pt===0)return-1;Pt>0==st.Y>j.Y&&(A=1-A)}else if(st.X>a.X){var Pt=(j.X-a.X)*(st.Y-a.Y)-(st.X-a.X)*(j.Y-a.Y);if(Pt===0)return-1;Pt>0==st.Y>j.Y&&(A=1-A)}}j=st}return A},e.Clipper.prototype.PointInPolygon=function(a,x){var A=0,F=x,j=a.X,_=a.Y,st=x.Pt.X,Pt=x.Pt.Y;do{x=x.Next;var xt=x.Pt.X,Dt=x.Pt.Y;if(Dt===_&&(xt===j||Pt===_&&xt>j==st<j))return-1;if(Pt<_!=Dt<_){if(st>=j)if(xt>j)A=1-A;else{var Ht=(st-j)*(Dt-_)-(xt-j)*(Pt-_);if(Ht===0)return-1;Ht>0==Dt>Pt&&(A=1-A)}else if(xt>j){var Ht=(st-j)*(Dt-_)-(xt-j)*(Pt-_);if(Ht===0)return-1;Ht>0==Dt>Pt&&(A=1-A)}}st=xt,Pt=Dt}while(F!==x);return A},e.Clipper.prototype.Poly2ContainsPoly1=function(a,x){var A=a;do{var F=this.PointInPolygon(A.Pt,x);if(F>=0)return F>0;A=A.Next}while(A!==a);return!0},e.Clipper.prototype.FixupFirstLefts1=function(a,x){for(var A,F,j=0,_=this.m_PolyOuts.length;j<_;j++)A=this.m_PolyOuts[j],F=e.Clipper.ParseFirstLeft(A.FirstLeft),A.Pts!==null&&F===a&&this.Poly2ContainsPoly1(A.Pts,x.Pts)&&(A.FirstLeft=x)},e.Clipper.prototype.FixupFirstLefts2=function(a,x){for(var A=x.FirstLeft,F,j,_=0,st=this.m_PolyOuts.length;_<st;_++)F=this.m_PolyOuts[_],!(F.Pts===null||F===x||F===a)&&(j=e.Clipper.ParseFirstLeft(F.FirstLeft),!(j!==A&&j!==a&&j!==x)&&(this.Poly2ContainsPoly1(F.Pts,a.Pts)?F.FirstLeft=a:this.Poly2ContainsPoly1(F.Pts,x.Pts)?F.FirstLeft=x:(F.FirstLeft===a||F.FirstLeft===x)&&(F.FirstLeft=A)))},e.Clipper.prototype.FixupFirstLefts3=function(a,x){for(var A,F,j=0,_=this.m_PolyOuts.length;j<_;j++)A=this.m_PolyOuts[j],F=e.Clipper.ParseFirstLeft(A.FirstLeft),A.Pts!==null&&F===a&&(A.FirstLeft=x)},e.Clipper.ParseFirstLeft=function(a){for(;a!==null&&a.Pts===null;)a=a.FirstLeft;return a},e.Clipper.prototype.JoinCommonEdges=function(){for(var a=0,x=this.m_Joins.length;a<x;a++){var A=this.m_Joins[a],F=this.GetOutRec(A.OutPt1.Idx),j=this.GetOutRec(A.OutPt2.Idx);if(!(F.Pts===null||j.Pts===null)&&!(F.IsOpen||j.IsOpen)){var _;F===j?_=F:this.OutRec1RightOfOutRec2(F,j)?_=j:this.OutRec1RightOfOutRec2(j,F)?_=F:_=this.GetLowermostRec(F,j),this.JoinPoints(A,F,j)&&(F===j?(F.Pts=A.OutPt1,F.BottomPt=null,j=this.CreateOutRec(),j.Pts=A.OutPt2,this.UpdateOutPtIdxs(j),this.Poly2ContainsPoly1(j.Pts,F.Pts)?(j.IsHole=!F.IsHole,j.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts2(j,F),(j.IsHole^this.ReverseSolution)==this.Area$1(j)>0&&this.ReversePolyPtLinks(j.Pts)):this.Poly2ContainsPoly1(F.Pts,j.Pts)?(j.IsHole=F.IsHole,F.IsHole=!j.IsHole,j.FirstLeft=F.FirstLeft,F.FirstLeft=j,this.m_UsingPolyTree&&this.FixupFirstLefts2(F,j),(F.IsHole^this.ReverseSolution)==this.Area$1(F)>0&&this.ReversePolyPtLinks(F.Pts)):(j.IsHole=F.IsHole,j.FirstLeft=F.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(F,j))):(j.Pts=null,j.BottomPt=null,j.Idx=F.Idx,F.IsHole=_.IsHole,_===j&&(F.FirstLeft=j.FirstLeft),j.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts3(j,F)))}}},e.Clipper.prototype.UpdateOutPtIdxs=function(a){var x=a.Pts;do x.Idx=a.Idx,x=x.Prev;while(x!==a.Pts)},e.Clipper.prototype.DoSimplePolygons=function(){for(var a=0;a<this.m_PolyOuts.length;){var x=this.m_PolyOuts[a++],A=x.Pts;if(!(A===null||x.IsOpen))do{for(var F=A.Next;F!==x.Pts;){if(e.IntPoint.op_Equality(A.Pt,F.Pt)&&F.Next!==A&&F.Prev!==A){var j=A.Prev,_=F.Prev;A.Prev=_,_.Next=A,F.Prev=j,j.Next=F,x.Pts=A;var st=this.CreateOutRec();st.Pts=F,this.UpdateOutPtIdxs(st),this.Poly2ContainsPoly1(st.Pts,x.Pts)?(st.IsHole=!x.IsHole,st.FirstLeft=x,this.m_UsingPolyTree&&this.FixupFirstLefts2(st,x)):this.Poly2ContainsPoly1(x.Pts,st.Pts)?(st.IsHole=x.IsHole,x.IsHole=!st.IsHole,st.FirstLeft=x.FirstLeft,x.FirstLeft=st,this.m_UsingPolyTree&&this.FixupFirstLefts2(x,st)):(st.IsHole=x.IsHole,st.FirstLeft=x.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(x,st)),F=A}F=F.Next}A=A.Next}while(A!==x.Pts)}},e.Clipper.Area=function(a){if(!Array.isArray(a))return 0;var x=a.length;if(x<3)return 0;for(var A=0,F=0,j=x-1;F<x;++F)A+=(a[j].X+a[F].X)*(a[j].Y-a[F].Y),j=F;return-A*.5},e.Clipper.prototype.Area=function(a){var x=a;if(a===null)return 0;var A=0;do A=A+(a.Prev.Pt.X+a.Pt.X)*(a.Prev.Pt.Y-a.Pt.Y),a=a.Next;while(a!==x);return A*.5},e.Clipper.prototype.Area$1=function(a){return this.Area(a.Pts)},e.Clipper.SimplifyPolygon=function(a,x){var A=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPath(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,x,x),A},e.Clipper.SimplifyPolygons=function(a,x){typeof x>"u"&&(x=e.PolyFillType.pftEvenOdd);var A=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPaths(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,x,x),A},e.Clipper.DistanceSqrd=function(a,x){var A=a.X-x.X,F=a.Y-x.Y;return A*A+F*F},e.Clipper.DistanceFromLineSqrd=function(a,x,A){var F=x.Y-A.Y,j=A.X-x.X,_=F*x.X+j*x.Y;return _=F*a.X+j*a.Y-_,_*_/(F*F+j*j)},e.Clipper.SlopesNearCollinear=function(a,x,A,F){return Math.abs(a.X-x.X)>Math.abs(a.Y-x.Y)?a.X>x.X==a.X<A.X?e.Clipper.DistanceFromLineSqrd(a,x,A)<F:x.X>a.X==x.X<A.X?e.Clipper.DistanceFromLineSqrd(x,a,A)<F:e.Clipper.DistanceFromLineSqrd(A,a,x)<F:a.Y>x.Y==a.Y<A.Y?e.Clipper.DistanceFromLineSqrd(a,x,A)<F:x.Y>a.Y==x.Y<A.Y?e.Clipper.DistanceFromLineSqrd(x,a,A)<F:e.Clipper.DistanceFromLineSqrd(A,a,x)<F},e.Clipper.PointsAreClose=function(a,x,A){var F=a.X-x.X,j=a.Y-x.Y;return F*F+j*j<=A},e.Clipper.ExcludeOp=function(a){var x=a.Prev;return x.Next=a.Next,a.Next.Prev=x,x.Idx=0,x},e.Clipper.CleanPolygon=function(a,x){typeof x>"u"&&(x=1.415);var A=a.length;if(A===0)return new Array;for(var F=new Array(A),j=0;j<A;++j)F[j]=new e.OutPt;for(var j=0;j<A;++j)F[j].Pt=a[j],F[j].Next=F[(j+1)%A],F[j].Next.Prev=F[j],F[j].Idx=0;for(var _=x*x,st=F[0];st.Idx===0&&st.Next!==st.Prev;)e.Clipper.PointsAreClose(st.Pt,st.Prev.Pt,_)?(st=e.Clipper.ExcludeOp(st),A--):e.Clipper.PointsAreClose(st.Prev.Pt,st.Next.Pt,_)?(e.Clipper.ExcludeOp(st.Next),st=e.Clipper.ExcludeOp(st),A-=2):e.Clipper.SlopesNearCollinear(st.Prev.Pt,st.Pt,st.Next.Pt,_)?(st=e.Clipper.ExcludeOp(st),A--):(st.Idx=1,st=st.Next);A<3&&(A=0);for(var Pt=new Array(A),j=0;j<A;++j)Pt[j]=new e.IntPoint1(st.Pt),st=st.Next;return F=null,Pt},e.Clipper.CleanPolygons=function(a,x){for(var A=new Array(a.length),F=0,j=a.length;F<j;F++)A[F]=e.Clipper.CleanPolygon(a[F],x);return A},e.Clipper.Minkowski=function(a,x,A,F){var j=F?1:0,_=a.length,st=x.length,Pt=new Array;if(A)for(var xt=0;xt<st;xt++){for(var Dt=new Array(_),Ht=0,jt=a.length,qt=a[Ht];Ht<jt;Ht++,qt=a[Ht])Dt[Ht]=new e.IntPoint2(x[xt].X+qt.X,x[xt].Y+qt.Y);Pt.push(Dt)}else for(var xt=0;xt<st;xt++){for(var Dt=new Array(_),Ht=0,jt=a.length,qt=a[Ht];Ht<jt;Ht++,qt=a[Ht])Dt[Ht]=new e.IntPoint2(x[xt].X-qt.X,x[xt].Y-qt.Y);Pt.push(Dt)}for(var oe=new Array,xt=0;xt<st-1+j;xt++)for(var Ht=0;Ht<_;Ht++){var me=new Array;me.push(Pt[xt%st][Ht%_]),me.push(Pt[(xt+1)%st][Ht%_]),me.push(Pt[(xt+1)%st][(Ht+1)%_]),me.push(Pt[xt%st][(Ht+1)%_]),e.Clipper.Orientation(me)||me.reverse(),oe.push(me)}return oe},e.Clipper.MinkowskiSum=function(a,x,A){if(x[0]instanceof Array){for(var j=x,st=new e.Paths,_=new e.Clipper,Pt=0;Pt<j.length;++Pt){var xt=e.Clipper.Minkowski(a,j[Pt],!0,A);if(_.AddPaths(xt,e.PolyType.ptSubject,!0),A){var F=e.Clipper.TranslatePath(j[Pt],a[0]);_.AddPath(F,e.PolyType.ptClip,!0)}}return _.Execute(e.ClipType.ctUnion,st,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),st}else{var F=x,j=e.Clipper.Minkowski(a,F,!0,A),_=new e.Clipper;return _.AddPaths(j,e.PolyType.ptSubject,!0),_.Execute(e.ClipType.ctUnion,j,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),j}},e.Clipper.TranslatePath=function(a,x){for(var A=new e.Path,F=0;F<a.length;F++)A.push(new e.IntPoint2(a[F].X+x.X,a[F].Y+x.Y));return A},e.Clipper.MinkowskiDiff=function(a,x){var A=e.Clipper.Minkowski(a,x,!1,!0),F=new e.Clipper;return F.AddPaths(A,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),A},e.Clipper.PolyTreeToPaths=function(a){var x=new Array;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntAny,x),x},e.Clipper.AddPolyNodeToPaths=function(a,x,A){var F=!0;switch(x){case e.Clipper.NodeType.ntOpen:return;case e.Clipper.NodeType.ntClosed:F=!a.IsOpen;break}a.m_polygon.length>0&&F&&A.push(a.m_polygon);for(var j=0,_=a.Childs(),st=_.length,Pt=_[j];j<st;j++,Pt=_[j])e.Clipper.AddPolyNodeToPaths(Pt,x,A)},e.Clipper.OpenPathsFromPolyTree=function(a){for(var x=new e.Paths,A=0,F=a.ChildCount();A<F;A++)a.Childs()[A].IsOpen&&x.push(a.Childs()[A].m_polygon);return x},e.Clipper.ClosedPathsFromPolyTree=function(a){var x=new e.Paths;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntClosed,x),x},Ui(e.Clipper,e.ClipperBase),e.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2},e.ClipperOffset=function(a,x){typeof a>"u"&&(a=2),typeof x>"u"&&(x=e.ClipperOffset.def_arc_tolerance),this.m_destPolys=new e.Paths,this.m_srcPoly=new e.Path,this.m_destPoly=new e.Path,this.m_normals=new Array,this.m_delta=0,this.m_sinA=0,this.m_sin=0,this.m_cos=0,this.m_miterLim=0,this.m_StepsPerRad=0,this.m_lowest=new e.IntPoint0,this.m_polyNodes=new e.PolyNode,this.MiterLimit=a,this.ArcTolerance=x,this.m_lowest.X=-1},e.ClipperOffset.two_pi=6.28318530717959,e.ClipperOffset.def_arc_tolerance=.25,e.ClipperOffset.prototype.Clear=function(){e.Clear(this.m_polyNodes.Childs()),this.m_lowest.X=-1},e.ClipperOffset.Round=e.Clipper.Round,e.ClipperOffset.prototype.AddPath=function(a,x,A){var F=a.length-1;if(!(F<0)){var j=new e.PolyNode;if(j.m_jointype=x,j.m_endtype=A,A===e.EndType.etClosedLine||A===e.EndType.etClosedPolygon)for(;F>0&&e.IntPoint.op_Equality(a[0],a[F]);)F--;j.m_polygon.push(a[0]);for(var _=0,st=0,Pt=1;Pt<=F;Pt++)e.IntPoint.op_Inequality(j.m_polygon[_],a[Pt])&&(_++,j.m_polygon.push(a[Pt]),(a[Pt].Y>j.m_polygon[st].Y||a[Pt].Y===j.m_polygon[st].Y&&a[Pt].X<j.m_polygon[st].X)&&(st=_));if(!(A===e.EndType.etClosedPolygon&&_<2)&&(this.m_polyNodes.AddChild(j),A===e.EndType.etClosedPolygon))if(this.m_lowest.X<0)this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,st);else{var xt=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y];(j.m_polygon[st].Y>xt.Y||j.m_polygon[st].Y===xt.Y&&j.m_polygon[st].X<xt.X)&&(this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,st))}}},e.ClipperOffset.prototype.AddPaths=function(a,x,A){for(var F=0,j=a.length;F<j;F++)this.AddPath(a[F],x,A)},e.ClipperOffset.prototype.FixOrientations=function(){if(this.m_lowest.X>=0&&!e.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];(x.m_endtype===e.EndType.etClosedPolygon||x.m_endtype===e.EndType.etClosedLine&&e.Clipper.Orientation(x.m_polygon))&&x.m_polygon.reverse()}else for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];x.m_endtype===e.EndType.etClosedLine&&!e.Clipper.Orientation(x.m_polygon)&&x.m_polygon.reverse()}},e.ClipperOffset.GetUnitNormal=function(a,x){var A=x.X-a.X,F=x.Y-a.Y;if(A===0&&F===0)return new e.DoublePoint2(0,0);var j=1/Math.sqrt(A*A+F*F);return A*=j,F*=j,new e.DoublePoint2(F,-A)},e.ClipperOffset.prototype.DoOffset=function(a){if(this.m_destPolys=new Array,this.m_delta=a,e.ClipperBase.near_zero(a)){for(var x=0;x<this.m_polyNodes.ChildCount();x++){var A=this.m_polyNodes.Childs()[x];A.m_endtype===e.EndType.etClosedPolygon&&this.m_destPolys.push(A.m_polygon)}return}this.MiterLimit>2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5;var F;this.ArcTolerance<=0?F=e.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(a)*e.ClipperOffset.def_arc_tolerance?F=Math.abs(a)*e.ClipperOffset.def_arc_tolerance:F=this.ArcTolerance;var j=3.14159265358979/Math.acos(1-F/Math.abs(a));this.m_sin=Math.sin(e.ClipperOffset.two_pi/j),this.m_cos=Math.cos(e.ClipperOffset.two_pi/j),this.m_StepsPerRad=j/e.ClipperOffset.two_pi,a<0&&(this.m_sin=-this.m_sin);for(var x=0;x<this.m_polyNodes.ChildCount();x++){var A=this.m_polyNodes.Childs()[x];this.m_srcPoly=A.m_polygon;var _=this.m_srcPoly.length;if(!(_===0||a<=0&&(_<3||A.m_endtype!==e.EndType.etClosedPolygon))){if(this.m_destPoly=new Array,_===1){if(A.m_jointype===e.JoinType.jtRound)for(var st=1,Pt=0,xt=1;xt<=j;xt++){this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+st*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+Pt*a)));var Dt=st;st=st*this.m_cos-this.m_sin*Pt,Pt=Dt*this.m_sin+Pt*this.m_cos}else for(var st=-1,Pt=-1,xt=0;xt<4;++xt)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+st*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+Pt*a))),st<0?st=1:Pt<0?Pt=1:st=-1;this.m_destPolys.push(this.m_destPoly);continue}this.m_normals.length=0;for(var xt=0;xt<_-1;xt++)this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[xt],this.m_srcPoly[xt+1]));if(A.m_endtype===e.EndType.etClosedLine||A.m_endtype===e.EndType.etClosedPolygon?this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[_-1],this.m_srcPoly[0])):this.m_normals.push(new e.DoublePoint1(this.m_normals[_-2])),A.m_endtype===e.EndType.etClosedPolygon){for(var Ht=_-1,xt=0;xt<_;xt++)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly)}else if(A.m_endtype===e.EndType.etClosedLine){for(var Ht=_-1,xt=0;xt<_;xt++)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly),this.m_destPoly=new Array;for(var jt=this.m_normals[_-1],xt=_-1;xt>0;xt--)this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt-1].X,-this.m_normals[xt-1].Y);this.m_normals[0]=new e.DoublePoint2(-jt.X,-jt.Y),Ht=0;for(var xt=_-1;xt>=0;xt--)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(var Ht=0,xt=1;xt<_-1;++xt)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);var qt;if(A.m_endtype===e.EndType.etOpenButt){var xt=_-1;qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[xt].X+this.m_normals[xt].X*a),e.ClipperOffset.Round(this.m_srcPoly[xt].Y+this.m_normals[xt].Y*a)),this.m_destPoly.push(qt),qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[xt].X-this.m_normals[xt].X*a),e.ClipperOffset.Round(this.m_srcPoly[xt].Y-this.m_normals[xt].Y*a)),this.m_destPoly.push(qt)}else{var xt=_-1;Ht=_-2,this.m_sinA=0,this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt].X,-this.m_normals[xt].Y),A.m_endtype===e.EndType.etOpenSquare?this.DoSquare(xt,Ht):this.DoRound(xt,Ht)}for(var xt=_-1;xt>0;xt--)this.m_normals[xt]=new e.DoublePoint2(-this.m_normals[xt-1].X,-this.m_normals[xt-1].Y);this.m_normals[0]=new e.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y),Ht=_-1;for(var xt=Ht-1;xt>0;--xt)Ht=this.OffsetPoint(xt,Ht,A.m_jointype);A.m_endtype===e.EndType.etOpenButt?(qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*a)),this.m_destPoly.push(qt),qt=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*a)),this.m_destPoly.push(qt)):(Ht=1,this.m_sinA=0,A.m_endtype===e.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}},e.ClipperOffset.prototype.Execute=function(){var a=arguments,x=a[0]instanceof e.PolyTree;if(x){var A=a[0],F=a[1];A.Clear(),this.FixOrientations(),this.DoOffset(F);var j=new e.Clipper(0);if(j.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),st=new e.Path;if(st.push(new e.IntPoint2(_.left-10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.top-10)),st.push(new e.IntPoint2(_.left-10,_.top-10)),j.AddPath(st,e.PolyType.ptSubject,!0),j.ReverseSolution=!0,j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),A.ChildCount()===1&&A.Childs()[0].ChildCount()>0){var Pt=A.Childs()[0];A.Childs()[0]=Pt.Childs()[0],A.Childs()[0].m_Parent=A;for(var xt=1;xt<Pt.ChildCount();xt++)A.AddChild(Pt.Childs()[xt])}else A.Clear()}}else{var A=a[0],F=a[1];e.Clear(A),this.FixOrientations(),this.DoOffset(F);var j=new e.Clipper(0);if(j.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),st=new e.Path;st.push(new e.IntPoint2(_.left-10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.bottom+10)),st.push(new e.IntPoint2(_.right+10,_.top-10)),st.push(new e.IntPoint2(_.left-10,_.top-10)),j.AddPath(st,e.PolyType.ptSubject,!0),j.ReverseSolution=!0,j.Execute(e.ClipType.ctUnion,A,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),A.length>0&&A.splice(0,1)}}},e.ClipperOffset.prototype.OffsetPoint=function(a,x,A){if(this.m_sinA=this.m_normals[x].X*this.m_normals[a].Y-this.m_normals[a].X*this.m_normals[x].Y,Math.abs(this.m_sinA*this.m_delta)<1){var F=this.m_normals[x].X*this.m_normals[a].X+this.m_normals[a].Y*this.m_normals[x].Y;if(F>0)return this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),x}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),this.m_destPoly.push(new e.IntPoint1(this.m_srcPoly[a])),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)));else switch(A){case e.JoinType.jtMiter:{var j=1+(this.m_normals[a].X*this.m_normals[x].X+this.m_normals[a].Y*this.m_normals[x].Y);j>=this.m_miterLim?this.DoMiter(a,x,j):this.DoSquare(a,x);break}case e.JoinType.jtSquare:this.DoSquare(a,x);break;case e.JoinType.jtRound:this.DoRound(a,x);break}return x=a,x},e.ClipperOffset.prototype.DoSquare=function(a,x){var A=Math.tan(Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y)/4);this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[x].X-this.m_normals[x].Y*A)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[x].Y+this.m_normals[x].X*A)))),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[a].X+this.m_normals[a].Y*A)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[a].Y-this.m_normals[a].X*A))))},e.ClipperOffset.prototype.DoMiter=function(a,x,A){var F=this.m_delta/A;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+(this.m_normals[x].X+this.m_normals[a].X)*F),e.ClipperOffset.Round(this.m_srcPoly[a].Y+(this.m_normals[x].Y+this.m_normals[a].Y)*F)))},e.ClipperOffset.prototype.DoRound=function(a,x){for(var A=Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y),F=Math.max(e.Cast_Int32(e.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(A))),1),j=this.m_normals[x].X,_=this.m_normals[x].Y,st,Pt=0;Pt<F;++Pt)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+j*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+_*this.m_delta))),st=j,j=j*this.m_cos-this.m_sin*_,_=st*this.m_sin+_*this.m_cos;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)))},e.Error=function(a){try{throw new Error(a)}catch(x){alert(x.message)}},e.JS={},e.JS.AreaOfPolygon=function(a,x){return x||(x=1),e.Clipper.Area(a)/(x*x)},e.JS.AreaOfPolygons=function(a,x){x||(x=1);for(var A=0,F=0;F<a.length;F++)A+=e.Clipper.Area(a[F]);return A/(x*x)},e.JS.BoundsOfPath=function(a,x){return e.JS.BoundsOfPaths([a],x)},e.JS.BoundsOfPaths=function(a,x){x||(x=1);var A=e.Clipper.GetBounds(a);return A.left/=x,A.bottom/=x,A.right/=x,A.top/=x,A},e.JS.Clean=function(F,x){if(!(F instanceof Array))return[];var A=F[0]instanceof Array,F=e.JS.Clone(F);if(typeof x!="number"||x===null)return e.Error("Delta is not a number in Clean()."),F;if(F.length===0||F.length===1&&F[0].length===0||x<0)return F;A||(F=[F]);for(var j=F.length,_,st,Pt,xt,Dt,Ht,jt,qt=[],oe=0;oe<j;oe++)if(st=F[oe],_=st.length,_!==0){if(_<3){Pt=st,qt.push(Pt);continue}for(Pt=st,xt=x*x,Dt=st[0],Ht=1,jt=1;jt<_;jt++)(st[jt].X-Dt.X)*(st[jt].X-Dt.X)+(st[jt].Y-Dt.Y)*(st[jt].Y-Dt.Y)<=xt||(Pt[Ht]=st[jt],Dt=st[jt],Ht++);Dt=st[Ht-1],(st[0].X-Dt.X)*(st[0].X-Dt.X)+(st[0].Y-Dt.Y)*(st[0].Y-Dt.Y)<=xt&&Ht--,Ht<_&&Pt.splice(Ht,_-Ht),Pt.length&&qt.push(Pt)}return!A&&qt.length?qt=qt[0]:!A&&qt.length===0?qt=[]:A&&qt.length===0&&(qt=[[]]),qt},e.JS.Clone=function(a){if(!(a instanceof Array))return[];if(a.length===0)return[];if(a.length===1&&a[0].length===0)return[[]];var x=a[0]instanceof Array;x||(a=[a]);var A=a.length,F,j,_,st,Pt=new Array(A);for(j=0;j<A;j++){for(F=a[j].length,st=new Array(F),_=0;_<F;_++)st[_]={X:a[j][_].X,Y:a[j][_].Y};Pt[j]=st}return x||(Pt=Pt[0]),Pt},e.JS.Lighten=function(a,x){if(!(a instanceof Array))return[];if(typeof x!="number"||x===null)return e.Error("Tolerance is not a number in Lighten()."),e.JS.Clone(a);if(a.length===0||a.length===1&&a[0].length===0||x<0)return e.JS.Clone(a);var A=a[0]instanceof Array;A||(a=[a]);var F,j,_,st,Pt,xt,Dt,Ht,jt,qt,oe,me,Pe,be,lr,Dr,Tn,Ys=a.length,Ea=x*x,Cn=[];for(F=0;F<Ys;F++)if(_=a[F],xt=_.length,xt!==0){for(st=0;st<1e6;st++){for(Pt=[],xt=_.length,_[xt-1].X!==_[0].X||_[xt-1].Y!==_[0].Y?(me=1,_.push({X:_[0].X,Y:_[0].Y}),xt=_.length):me=0,oe=[],j=0;j<xt-2;j++)Dt=_[j],jt=_[j+1],Ht=_[j+2],Dr=Dt.X,Tn=Dt.Y,Pe=Ht.X-Dr,be=Ht.Y-Tn,(Pe!==0||be!==0)&&(lr=((jt.X-Dr)*Pe+(jt.Y-Tn)*be)/(Pe*Pe+be*be),lr>1?(Dr=Ht.X,Tn=Ht.Y):lr>0&&(Dr+=Pe*lr,Tn+=be*lr)),Pe=jt.X-Dr,be=jt.Y-Tn,qt=Pe*Pe+be*be,qt<=Ea&&(oe[j+1]=1,j++);for(Pt.push({X:_[0].X,Y:_[0].Y}),j=1;j<xt-1;j++)oe[j]||Pt.push({X:_[j].X,Y:_[j].Y});if(Pt.push({X:_[xt-1].X,Y:_[xt-1].Y}),me&&_.pop(),oe.length)_=Pt;else break}xt=Pt.length,Pt[xt-1].X===Pt[0].X&&Pt[xt-1].Y===Pt[0].Y&&Pt.pop(),Pt.length>2&&Cn.push(Pt)}return A||(Cn=Cn[0]),typeof Cn>"u"&&(Cn=[]),Cn},e.JS.PerimeterOfPath=function(a,x,A){if(typeof a>"u")return 0;var F=Math.sqrt,j=0,_,st,Pt=0,xt=0,Dt=0,Ht=0,jt=a.length;if(jt<2)return 0;for(x&&(a[jt]=a[0],jt++);--jt;)_=a[jt],Pt=_.X,xt=_.Y,st=a[jt-1],Dt=st.X,Ht=st.Y,j+=F((Pt-Dt)*(Pt-Dt)+(xt-Ht)*(xt-Ht));return x&&a.pop(),j/A},e.JS.PerimeterOfPaths=function(a,x,A){A||(A=1);for(var F=0,j=0;j<a.length;j++)F+=e.JS.PerimeterOfPath(a[j],x,A);return F},e.JS.ScaleDownPath=function(a,x){var A,F;for(x||(x=1),A=a.length;A--;)F=a[A],F.X=F.X/x,F.Y=F.Y/x},e.JS.ScaleDownPaths=function(a,x){var A,F,j;for(x||(x=1),A=a.length;A--;)for(F=a[A].length;F--;)j=a[A][F],j.X=j.X/x,j.Y=j.Y/x},e.JS.ScaleUpPath=function(a,x){var A,F,j=Math.round;for(x||(x=1),A=a.length;A--;)F=a[A],F.X=j(F.X*x),F.Y=j(F.Y*x)},e.JS.ScaleUpPaths=function(a,x){var A,F,j,_=Math.round;for(x||(x=1),A=a.length;A--;)for(F=a[A].length;F--;)j=a[A][F],j.X=_(j.X*x),j.Y=_(j.Y*x)},e.ExPolygons=function(){return[]},e.ExPolygon=function(){this.outer=null,this.holes=null},e.JS.AddOuterPolyNodeToExPolygons=function(a,x){var A=new e.ExPolygon;A.outer=a.Contour();var F=a.Childs(),j=F.length;A.holes=new Array(j);var _,st,Pt,xt,Dt,Ht;for(Pt=0;Pt<j;Pt++)for(_=F[Pt],A.holes[Pt]=_.Contour(),xt=0,Dt=_.Childs(),Ht=Dt.length;xt<Ht;xt++)st=Dt[xt],e.JS.AddOuterPolyNodeToExPolygons(st,x);x.push(A)},e.JS.ExPolygonsToPaths=function(a){var x,A,F,j,_=new e.Paths;for(x=0,F=a.length;x<F;x++)for(_.push(a[x].outer),A=0,j=a[x].holes.length;A<j;A++)_.push(a[x].holes[A]);return _},e.JS.PolyTreeToExPolygons=function(a){var x=new e.ExPolygons,A,F,j,_;for(F=0,j=a.Childs(),_=j.length;F<_;F++)A=j[F],e.JS.AddOuterPolyNodeToExPolygons(A,x);return x}})()})(zf);var QP=zf.exports,Jr=mn(QP);function jf(i,e,t=.01){return Math.abs(i[0]-e[0])<t&&Math.abs(i[1]-e[1])<t}function qP(i,e=.01){if(i.length===0)return[];const t=[[i[0][0],i[0][1]]];for(let r=1;r<i.length;r++)jf([i[r][0],i[r][1]],t[t.length-1],e)||t.push([i[r][0],i[r][1]]);return t}function _P(i,e=.01){if(i.length<=2)return i;const t=i[0],r=i[i.length-1];return jf(t,r,e)?i.slice(0,-1):i}function tS(i){const e=i.reduce((r,n)=>r+n[0],0)/i.length,t=i.reduce((r,n)=>r+n[1],0)/i.length;return[e,t]}function Gf(i,e){return Math.atan2(e[1]-i[1],e[0]-i[0])}function eS(i,e=.01){if(i.length<=2)return i;const t=[];for(const n of i)t.some(c=>Math.abs(c[0]-n[0])<e&&Math.abs(c[1]-n[1])<e)||t.push([n[0],n[1]]);const r=tS(t);return t.sort((n,s)=>{const c=Gf(r,n),l=Gf(r,s);return c-l})}function rS(i,e){const t=e[0].x<e[e.length-1].x;return i.map(n=>{const c=n.map(l=>{let f=-1,u=1/0,v=0;for(let h=0;h<e.length;h++){const y=e[h],T=Math.sqrt(Math.pow(y.x-l[0],2)+Math.pow(y.y-l[1],2));T<u&&(u=T,f=h,v=y.z)}return{point:l,index:f,bestZ:v}}).sort((l,f)=>l.index-f.index).map(l=>[...l.point,l.bestZ]);return t&&c[0][0]>c[c.length-1][0]||!t&&c[0][0]<c[c.length-1][0]?c.reverse():c}).sort((n,s)=>{const c=n[0][0],l=s[0][0];return t?c-l:l-c})}function nS(i,e,t=.01){const n=i.map(h=>[h.x,h.y]),s=(h,y)=>h.map(([T,O])=>({X:Math.round(T*y),Y:Math.round(O*y)})),c=new Jr.ClipperOffset;c.AddPath(s(n,1e3),Jr.JoinType.jtRound,Jr.EndType.etOpenButt);const l=[];c.Execute(l,1);const f=new Jr.Clipper;f.AddPaths(l,Jr.PolyType.ptSubject,!0),e.forEach(h=>{f.AddPath(s(h,1e3),Jr.PolyType.ptClip,!0)});const u=new Jr.Paths;f.Execute(Jr.ClipType.ctDifference,u,Jr.PolyFillType.pftNonZero,Jr.PolyFillType.pftNonZero);const v=u.map(h=>_P(eS(qP(h.map(y=>[y.X/1e3,y.Y/1e3]),t),t),t)).filter(h=>h.length>=2);return rS(v,i)}class kf extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Pencil);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"MAX_REPEAR",10);dt(this,"uniThickness");dt(this,"workOptions");dt(this,"centerPos",[0,0]);this.workOptions=t.toolsOpt,this.uniThickness=this.MAX_REPEAR/this.workOptions.thickness/10,this.syncTimestamp=0}combineConsume(){var l;const t=(l=this.workId)==null?void 0:l.toString();if(this.tmpPoints.length<2)return{type:vt.None};const r=this.transformDataAll(!0),n={name:t};let s;const c=this.drawLayer||this.fullLayer;return r.length&&(s=this.draw({attrs:n,tasks:r,replaceId:t,layer:c})),{rect:s,type:vt.DrawWork,dataType:Kt.Local}}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,drawCount:l,removeDrawCount:f,isSimpleWorker:u}=t,{workId:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const{tasks:y,effects:T,consumeIndex:O}=this.transformData(r,!1);this.syncIndex=Math.min(this.syncIndex,O,Math.max(0,this.tmpPoints.length-2));const I={name:v,id:Qe(l)&&l.toString()||void 0};let P,w=!1;const d=this.syncIndex;if(this.syncTimestamp===0&&(this.syncTimestamp=Date.now()),y.length&&(y[0].taskId-this.syncTimestamp>this.syncUnitTime&&(w=!0,this.syncTimestamp=y[0].taskId,this.syncIndex=this.tmpPoints.length),s||c||u)){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;P=this.draw({attrs:I,tasks:y,effects:T,layer:S,removeDrawCount:f})}if(u){const S=[];this.tmpPoints.slice(d).forEach(R=>{S.push(R.x,R.y,this.computRadius(R.z,this.workOptions.thickness))});const E=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:E?S:void 0,index:E?d*3:void 0,rect:P,updateNodeOpt:{useAnimation:!0}}}if(s)return O>10&&this.tmpPoints.splice(0,O-10),{rect:P,type:vt.DrawWork,dataType:Kt.Local};const m=[];this.tmpPoints.slice(d).forEach(S=>{m.push(S.x,S.y,this.computRadius(S.z,this.workOptions.thickness))});const p=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,rect:P,op:p?m:void 0,index:p?d*3:void 0,updateNodeOpt:{useAnimation:!0}}}consumeAll(t){var v;const r=this.workId;if(t.data){const{op:h,workState:y}=t.data;h!=null&&h.length&&y===te.Done&&this.workOptions.strokeType===Ee.Stroke&&this.updateTempPointsWithPressureWhenDone(h)}const n=this.transformDataAll(!0),s={name:r};let c;const l=this.fullLayer;if(n.length&&(c=this.draw({attrs:s,tasks:n,replaceId:r,layer:l})),this.tmpPoints.length<2)return this.replace(l,r),{type:vt.RemoveNode,removeIds:[r],rect:c};const f=[];this.tmpPoints.map(h=>{f.push(h.x,h.y,h.z)}),this.syncTimestamp=0,delete this.workOptions.syncUnitTime;const u=hr(f);return(v=this.vNodes)==null||v.setInfo(r,{rect:c,op:f,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:c&&$t.getCenterPos(c,l)}),{...this.baseConsumeResult,rect:c,type:vt.FullWork,dataType:Kt.Local,ops:u,updateNodeOpt:{pos:this.centerPos,useAnimation:!0}}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=te.Done}=t;this.tmpPoints.length=0;for(let T=0;T<r.length;T+=3){const O=new Jt(r[T],r[T+1],r[T+2]);if(this.tmpPoints.length>0){const I=this.tmpPoints[this.tmpPoints.length-1],P=pt.Sub(O,I).uni();O.setv(P)}this.tmpPoints.push(O)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0),f=(h=this.workId)==null?void 0:h.toString(),u={name:f};let v;if(f&&l.length){const T=n?this.fullLayer:this.drawLayer||this.fullLayer;v=this.draw({attrs:u,tasks:l,replaceId:s,layer:T,isDrawEraserlines:c===te.Done}),(y=this.vNodes)==null||y.setInfo(f,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&$t.getCenterPos(v,T)})}return v}computPencilPoints(t){const r=[],{op:n,eraserPolylines:s,eraserThickness:c}=t;this.tmpPoints.length=0;for(let f=0;f<n.length;f+=3){const u=new Jt(n[f],n[f+1],n[f+2]);if(this.tmpPoints.length>0){const v=this.tmpPoints[this.tmpPoints.length-1],h=pt.Sub(u,v).uni();u.setv(h)}this.tmpPoints.push(u)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0);if(l.length)for(let f=0;f<l.length;f++){const{pos:u,points:v}=l[f],h=v.map(O=>O.point.addXY(u[0],u[1])),y=[];for(const O of s){const I=[];for(let w=0;w<O.length;w+=2){const d=new Jt(O[w],O[w+1]);if(I.length>0){const m=I[I.length-1].point,p=pt.Sub(d,m).uni();d.setv(p)}I.push({point:d,radius:c})}const{ps:P}=this.computStroke(I,!1);y.push(P.map(w=>w.XY))}nS(h,y,.01).forEach(O=>{r.push(O.map(I=>[I[0],I[1],I[2]]).flat(1))})}return r}transformDataAll(t=!0){return this.getTaskPoints(this.tmpPoints,t&&this.workOptions.thickness||void 0)}draw(t){const{attrs:r,tasks:n,replaceId:s,effects:c,layer:l,removeDrawCount:f,isDrawEraserlines:u=!0}=t,{strokeColor:v,strokeType:h,thickness:y,zIndex:T,scale:O,rotate:I,translate:P,eraserlines:w,lineCap:d,lineDash:m}=this.workOptions;c!=null&&c.size&&(c.forEach(U=>{var M;(M=l.getElementById(U+""))==null||M.remove()}),c.clear()),f&&this.removeDrawCountNodes(l,f);let p;const S=[],E=l.worldPosition,R=l.worldScaling;for(let U=0;U<n.length;U++){const{pos:M,points:W}=n[U],{ps:$,rect:B}=this.computDrawPoints(W);let N;const z=W.length===1;h===Ee.Stroke||z?N=yn($,!0):N=yn($,!1);const J={pos:M,d:N,fillColor:h===Ee.Stroke||z?v:void 0,lineDash:z?void 0:h===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*y]:h===Ee.LongDotted?[(m&&m[0]||1)*y,(m&&m[1]||2)*y]:void 0,strokeColor:v,lineCap:z?void 0:d,lineWidth:h===Ee.Stroke||z?0:y};p=Zt(p,{x:Math.floor((B.x+M[0])*R[0]+E[0]-$t.SafeBorderPadding),y:Math.floor((B.y+M[1])*R[1]+E[1]-$t.SafeBorderPadding),w:Math.floor(B.w*R[0]+2*$t.SafeBorderPadding),h:Math.floor(B.h*R[1]+2*$t.SafeBorderPadding)}),S.push(J)}O&&(r.scale=O),I&&(r.rotate=I),P&&(r.translate=P);const D=new Je;if(p){this.centerPos=$t.getCenterPos(p,l);const U=h===Ee.Stroke&&!w;D.attr({...r,normalize:!0,anchor:[.5,.5],bgcolor:U?v:void 0,pos:this.centerPos,size:[(p.w-2*$t.SafeBorderPadding)/R[0],(p.h-2*$t.SafeBorderPadding)/R[1]],zIndex:T});const M=S.map(W=>(W.pos=[W.pos[0]-this.centerPos[0],W.pos[1]-this.centerPos[1]],new gn(W)));D.append(...M),U&&D.seal(),w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:w,pos:this.centerPos,layer:l},u)),this.replace(l,s,D)}if(O||I||P){const U=D==null?void 0:D.getBoundingClientRect();U&&(p={x:Math.floor(U.x-$t.SafeBorderPadding),y:Math.floor(U.y-$t.SafeBorderPadding),w:Math.floor(U.width+$t.SafeBorderPadding*2),h:Math.floor(U.height+$t.SafeBorderPadding*2)})}return this.isDelete&&D.setAttribute("opacity",0),p}computDrawPoints(t){return this.workOptions.strokeType===Ee.Stroke||t.length===1?this.computStroke(t):this.computNomal(t)}computNomal(t){let r=this.workOptions.thickness;const n=t.map(s=>(r=Math.max(r,s.radius),s.point));return{ps:n,rect:Re(n,r)}}computStroke(t,r=!0){return t.length===1?this.computDotStroke(t[0]):this.computLineStroke(t,r)}computLineStroke(t,r=!0){const n=[],s=[];for(let f=0;f<t.length;f++){const{point:u,radius:v}=t[f];let h=u.v;f===0&&t.length>1&&(h=t[f+1].point.v);const y=pt.Per(h).mul(v);n.push(Jt.Sub(u,y)),s.push(Jt.Add(u,y))}const c=t[t.length-1];if(r){const f=Jt.GetSemicircleStroke(c.point,n[n.length-1],-1,8),u=Jt.GetSemicircleStroke(t[0].point,s[0],-1,8),v=n.concat(f,s.reverse(),u);return{ps:v,rect:Re(v)}}const l=n.concat(s.reverse());return{ps:l,rect:Re(l)}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}transformData(t,r){const{op:n,workState:s}=t;let c=this.tmpPoints.length-1,l=[];if(n!=null&&n.length&&s){const{strokeType:f,thickness:u}=this.workOptions,v=new Set;c=f===Ee.Stroke?this.updateTempPointsWithPressure(n,u,v):this.updateTempPoints(n,u,v);const h=r?this.tmpPoints:this.tmpPoints.slice(c);return l=this.getTaskPoints(h,u),{tasks:l,effects:v,consumeIndex:c}}return{tasks:l,consumeIndex:c}}computRadius(t,r){return t*.03*r+r*.5}getMinZ(t,r){return((r||Math.max(1,Math.floor(t*.3)))-t*.5)*100/t/3}getTaskPoints(t,r){var h;const n=[];if(t.length===0)return[];let s=0,c=t[0].x,l=t[0].y,f=[c,l],u=[],v=t[0].t;for(;s<t.length;){const y=t[s],T=y.x-c,O=y.y-l,I=y.z,P=r?this.computRadius(I,r):I;if(u.push({point:new Jt(T,O,I,t[s].v),radius:P}),s>0&&s<t.length-1){const w=t[s].getAngleByPoints(t[s-1],t[s+1]);if(w<60||w>300){const d=(h=u.pop())==null?void 0:h.point.clone();d&&n.push({taskId:v,pos:f,points:[...u,{point:d,radius:P}]}),c=t[s].x,l=t[s].y,f=[c,l];const m=y.x-c,p=y.y-l;u=[{point:new Jt(m,p,I),radius:P}],v=Date.now()}}s++}return n.push({taskId:v,pos:f,points:u}),n}updateTempPointsWithPressure(t,r,n){const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let u=0;u<t.length;u+=2){l=Math.min(l,c);const v=this.tmpPoints.length,h=new Jt(t[u],t[u+1]);if(v===0){this.tmpPoints.push(h);continue}const y=v-1,T=this.tmpPoints[y],O=pt.Sub(h,T).uni();if(h.isNear(T,r)){if(T.z<this.MAX_REPEAR){if(T.setz(Math.min(T.z+1,this.MAX_REPEAR)),l=Math.min(l,y),v>1){let w=v-1;for(;w>0;){const d=this.tmpPoints[w].distance(this.tmpPoints[w-1]),m=Math.max(this.tmpPoints[w].z-this.uniThickness*d,0);if(this.tmpPoints[w-1].z>=m)break;this.tmpPoints[w-1].setz(m),l=Math.min(l,w-1),w--}}}else l=1/0;continue}h.setv(O);const I=h.distance(T),P=Math.max(T.z-this.uniThickness*I,0);v>1&&pt.Equals(O,T.v,.02)&&(P>0||T.z<=0)&&(n&&T.t&&n.add(T.t),this.tmpPoints.pop(),l=Math.min(y,l)),h.setz(P),this.tmpPoints.push(h)}if(l===1/0)return this.tmpPoints.length;let f=c;if(l===c){f=Math.max(f-1,0);const u=this.tmpPoints[f].t;u&&(n==null||n.add(u))}else{let u=c-1;for(f=l;u>=0;){const v=this.tmpPoints[u].t;if(v&&(n==null||n.add(v),u<=l)){f=u,u=-1;break}u--}}return this.tmpPoints[f].setT(s),f}updateTempPoints(t,r,n){var u;const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let v=0;v<t.length;v+=2){const h=this.tmpPoints.length,y=new Jt(t[v],t[v+1]);if(h===0){this.tmpPoints.push(y);continue}const T=h-1,O=this.tmpPoints[T],I=pt.Sub(y,O).uni();if(y.isNear(O,r/2)){l=Math.min(T,l);continue}pt.Equals(I,O.v,.02)&&(n&&O.t&&n.add(O.t),this.tmpPoints.pop(),l=Math.min(T,l)),y.setv(I),this.tmpPoints.push(y)}let f=c;if(l===c){f=Math.max(f-1,0);const v=this.tmpPoints[f].t;v&&(n==null||n.add(v))}else{let v=Math.min(c-1,l);for(f=l;v>=0;){const h=(u=this.tmpPoints[v])==null?void 0:u.t;if(h&&(n==null||n.add(h),v<=l)){f=v,v=-1;break}v--}}return this.tmpPoints[f].setT(s),f}updateTempPointsWithPressureWhenDone(t){const{thickness:r}=this.workOptions,n=t.length,s=this.getMinZ(r);for(let c=0;c<n;c+=2){const l=this.tmpPoints.length,f=new Jt(t[c],t[c+1]);if(l===0){this.tmpPoints.push(f);continue}const u=l-1,v=this.tmpPoints[u],h=pt.Sub(f,v).uni(),y=f.distance(v);if(l>1&&v.z===s)break;if(f.isNear(v,r/2)){if(n<3&&v.z<this.MAX_REPEAR&&(v.setz(Math.min(v.z+1,this.MAX_REPEAR)),l>1)){let O=l-1;for(;O>0;){const I=this.tmpPoints[O].distance(this.tmpPoints[O-1]),P=Math.max(this.tmpPoints[O].z-this.uniThickness*I,-r/4);if(this.tmpPoints[O-1].z>=P)break;this.tmpPoints[O-1].setz(P),O--}}continue}f.setv(h);const T=Math.max(v.z-this.uniThickness*y,s);l>1&&pt.Equals(h,v.v,.02)&&v.z<=0&&this.tmpPoints.pop(),f.setz(T),this.tmpPoints.push(f)}}static updateNodeOpt(t){var h,y;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l,lineCap:f,lineDash:u}=n,v=s.get(r.name);return c&&(r.tagName==="GROUP"?dT(r)?r.setAttribute("bgcolor",c):r.children.forEach(T=>{T.setAttribute("strokeColor",c),T.getAttribute("fillColor")&&T.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(h=v==null?void 0:v.opt)!=null&&h.strokeColor&&(v.opt.strokeColor=c)),l&&(v!=null&&v.opt)&&((y=v.opt)!=null&&y.strokeType)&&(v.opt.strokeType=l),f&&(v!=null&&v.opt)&&(v.opt.lineCap=f),u&&(v!=null&&v.opt)&&(v.opt.lineDash=u),v&&s.setInfo(r.name,v),$t.updateNodeOpt(t)}}class Hf extends $t{constructor(t){super(t);dt(this,"toolsType",Tt.LaserPen);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"consumeIndex",0);this.workOptions=t.toolsOpt,this.syncTimestamp=0}combineConsume(){}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isSubWorker:n}=t,{workId:s,op:c,syncUnitTime:l}=r;if((c==null?void 0:c.length)===0)return{type:vt.None};if(l&&(this.syncUnitTime=l),this.updateTempPoints(c||[]),this.consumeIndex>this.tmpPoints.length-4)return{type:vt.None};const{strokeColor:f,thickness:u,strokeType:v,lineDash:h,lineCap:y}=this.workOptions,T=Re(this.tmpPoints,u);let O=!1;const I=this.syncIndex,P=this.tmpPoints.slice(this.consumeIndex);this.consumeIndex=this.tmpPoints.length-1,this.syncTimestamp===0&&(this.syncTimestamp=Date.now());const w={name:s==null?void 0:s.toString(),opacity:1,lineDash:v===Ee.Dotted?[h&&h[0]||1,(h&&h[1]||2)*u]:v===Ee.LongDotted?[(h&&h[0]||1)*u,(h&&h[1]||2)*u]:void 0,strokeColor:f,lineCap:y,lineWidth:u,anchor:[.5,.5]},d=this.getTaskPoints(P);if(d.length){const p=Date.now();p-this.syncTimestamp>this.syncUnitTime&&(O=!0,this.syncTimestamp=p,this.syncIndex=this.tmpPoints.length),n&&this.draw({attrs:w,tasks:d,isDot:!1,layer:this.drawLayer||this.fullLayer})}const m=[];return this.tmpPoints.slice(I).forEach(p=>{m.push(p.x,p.y)}),{rect:{x:T.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:T.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:T.w*this.fullLayer.worldScaling[0],h:T.h*this.fullLayer.worldScaling[1]},type:vt.DrawWork,dataType:Kt.Local,op:O?m:void 0,index:O?I*2:void 0,...this.baseConsumeResult}}consumeAll(){var c;const t=(c=this.workId)==null?void 0:c.toString();let r;if(this.tmpPoints.length-1>this.consumeIndex){let l=this.tmpPoints.slice(this.consumeIndex);const f=l.length===1,{strokeColor:u,thickness:v,strokeType:h}=this.workOptions;if(f){const O=this.computDotStroke({point:l[0],radius:v/2});l=O.ps,r=O.rect}else r=Re(this.tmpPoints,v);const y={name:t==null?void 0:t.toString(),fillColor:f?u:void 0,opacity:1,lineDash:h===Ee.Dotted&&!f?[1,v*2]:h===Ee.LongDotted&&!f?[v,v*2]:void 0,strokeColor:u,lineCap:f?void 0:"round",lineWidth:f?0:v,anchor:[.5,.5]},T=this.getTaskPoints(l);T.length&&this.draw({attrs:y,tasks:T,isDot:f,layer:this.drawLayer||this.fullLayer})}const n=[];this.tmpPoints.forEach(l=>{n.push(l.x,l.y)});const s=hr(n);return{rect:r&&{x:r.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:r.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:r.w*this.fullLayer.worldScaling[0],h:r.h*this.fullLayer.worldScaling[1]},type:vt.FullWork,dataType:Kt.Local,ops:s,index:this.syncIndex*2,...this.baseConsumeResult}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var I;const{op:r,replaceId:n,isFullWork:s}=t,{strokeColor:c,thickness:l,strokeType:f}=this.workOptions;if(!r.length){const P=Re(this.tmpPoints,l);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]}}const u=Math.max(0,this.tmpPoints.length-1);this.updateTempPoints(r||[]);let v,h=this.tmpPoints.slice(u);const y=h.length===1;if(y){const P=this.computDotStroke({point:h[0],radius:l/2});h=P.ps,v=P.rect}else v=Re(this.tmpPoints,l);const T={name:(I=this.workId)==null?void 0:I.toString(),fillColor:y?c:void 0,opacity:1,lineDash:f===Ee.Dotted&&!y?[1,l*2]:f===Ee.LongDotted&&!y?[l,l*2]:void 0,strokeColor:c,lineCap:y?void 0:"round",lineWidth:y?0:l,anchor:[.5,.5]},O=this.getTaskPoints(h);if(O.length){const P=s?this.fullLayer:this.drawLayer||this.fullLayer;this.draw({attrs:T,tasks:O,isDot:y,replaceId:n,layer:P})}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]}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}updateTempPoints(t){const r=this.tmpPoints.length;for(let n=0;n<t.length;n+=2){if(r){const s=this.tmpPoints.slice(-1)[0];s&&s.x===t[n]&&s.y===t[n+1]&&this.tmpPoints.pop()}this.tmpPoints.push(new Jt(t[n],t[n+1]))}}async draw(t){const{attrs:r,tasks:n,isDot:s,layer:c}=t,{duration:l}=this.workOptions;for(const f of n){const u=new gn,{pos:v,points:h}=f;let y;s?y=yn(h,!0):y=yn(h,!1),u.attr({...r,pos:v,d:y}),c.appendChild(u),u.transition(l).attr({scale:s?[.1,.1]:[1,1],lineWidth:s?0:1}).then(()=>{u.remove()})}}getTaskPoints(t){var u;const r=[];if(t.length===0)return[];let n=0,s=t[0].x,c=t[0].y,l=[s,c],f=[];for(;n<t.length;){const v=t[n],h=v.x-s,y=v.y-c;if(f.push(new Jt(h,y)),n>0&&n<t.length-1){const T=t[n].getAngleByPoints(t[n-1],t[n+1]);if(T<60||T>300){const O=(u=f.pop())==null?void 0:u.clone();O&&r.push({pos:l,points:[...f,O]}),s=t[n].x,c=t[n].y,l=[s,c];const I=v.x-s,P=v.y-c;f=[new Jt(I,P)]}}n++}return r.push({pos:l,points:f}),r}removeLocal(){}removeService(t){let r;const n=[];return this.fullLayer.getElementsByName(t).forEach(s=>{if(s.name===t){const c=s.getBoundingClientRect();r=Zt(r,{x:c.x,y:c.y,w:c.width,h:c.height}),n.push(s)}}),n.length&&n.forEach(s=>s.remove()),r}}var iS=ds;ds.polyline=ds,ds.polygon=sS;function ds(i,e,t){var r=i.length,n=ei(i[0],e),s=[],c,l,f,u,v;for(t||(t=[]),c=1;c<r;c++){for(l=i[c-1],f=i[c],u=v=ei(f,e);;)if(n|u){if(n&u)break;n?(l=ko(l,f,n,e),n=ei(l,e)):(f=ko(l,f,u,e),u=ei(f,e))}else{s.push(l),u!==v?(s.push(f),c<r-1&&(t.push(s),s=[])):c===r-1&&s.push(f);break}n=v}return s.length&&t.push(s),t}function sS(i,e){var t,r,n,s,c,l,f;for(r=1;r<=8;r*=2){for(t=[],n=i[i.length-1],s=!(ei(n,e)&r),c=0;c<i.length;c++)l=i[c],f=!(ei(l,e)&r),f!==s&&t.push(ko(n,l,r,e)),f&&t.push(l),n=l,s=f;if(i=t,!i.length)break}return t}function ko(i,e,t,r){return t&8?[i[0]+(e[0]-i[0])*(r[3]-i[1])/(e[1]-i[1]),r[3]]:t&4?[i[0]+(e[0]-i[0])*(r[1]-i[1])/(e[1]-i[1]),r[1]]:t&2?[r[2],i[1]+(e[1]-i[1])*(r[2]-i[0])/(e[0]-i[0])]:t&1?[r[0],i[1]+(e[1]-i[1])*(r[0]-i[0])/(e[0]-i[0])]:null}function ei(i,e){var t=0;return i[0]<e[0]?t|=1:i[0]>e[2]&&(t|=2),i[1]<e[1]?t|=4:i[1]>e[3]&&(t|=8),t}var Ho=mn(iS);const si=class si extends $t{constructor(t,r){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"toolsType",Tt.Eraser);dt(this,"serviceWork");dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"worldPosition");dt(this,"worldScaling");dt(this,"eraserRect");dt(this,"eraserPolyline");this.serviceWork=r,this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(){}consumeService(){}setWorkOptions(t){super.setWorkOptions(t)}createEraserRect(t){const r=t[0]*this.worldScaling[0]+this.worldPosition[0],n=t[1]*this.worldScaling[1]+this.worldPosition[1],{width:s,height:c}=si.eraserSizes[this.workOptions.thickness];this.eraserRect={x:r-s*.5,y:n-c*.5,w:s,h:c},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 r=new pt(this.tmpPoints[0],this.tmpPoints[1]),n=new pt(this.tmpPoints[2],this.tmpPoints[3]),s=pt.Sub(n,r).uni(),c=pt.Dist(r,n),{width:l,height:f}=si.eraserSizes[this.workOptions.thickness],u=Math.min(l,f),v=Math.round(c/u);if(v>1){const h=[];for(let y=0;y<v;y++){const T=pt.Mul(s,y*u);h.push(this.tmpPoints[0]+T.x,this.tmpPoints[1]+T.y)}return h.concat(t)}}return t}isNear(t,r){const n=new pt(t[0],t[1]),s=new pt(r[0],r[1]),{width:c,height:l}=si.eraserSizes[this.workOptions.thickness];return pt.Dist(n,s)<Math.hypot(c,l)*.5}remove(t){const{curNodeMap:r,removeIds:n}=t;let s;for(const c of r.values())if(c.rect&&this.eraserRect&&this.eraserPolyline&&ea(this.eraserRect,c.rect)){const{op:l}=c,f=[],u=[];for(let h=0;h<l.length;h+=3){const y=new pt(l[h]*this.worldScaling[0]+this.worldPosition[0],l[h+1]*this.worldScaling[1]+this.worldPosition[1],l[h+2]);u.push(y),f.push(new Jt(y.x,y.y))}const v=f.length&&Re(f)||c.rect;ea(v,this.eraserRect)&&(u.length>1?Ho.polyline(u.map(y=>y.XY),this.eraserPolyline).length&&n.add(c.name):n.add(c.name),s=Zt(s,c.rect||v))}return n.forEach(c=>{var f;const l=this.fullLayer.getElementsByName(c);l[0]&&(l[0].remove(),dr(l[0],this.fullLayer.parent),(f=this.vNodes)==null||f.delete(c))}),s&&(s.x-=$t.SafeBorderPadding,s.y-=$t.SafeBorderPadding,s.w+=$t.SafeBorderPadding*2,s.h+=$t.SafeBorderPadding*2),s}consume(t){const{op:r,disableEraseImage:n,disableEraseText:s}=t.data;if(!r||r.length===0)return{type:vt.None,...this.baseConsumeResult};const c=this.tmpPoints.length;if(c>1&&this.isNear([r[0],r[1]],[this.tmpPoints[c-2],this.tmpPoints[c-1]]))return{type:vt.None,...this.baseConsumeResult};c<3?this.tmpPoints.push(r[0],r[1]):this.tmpPoints.splice(2,2,r[0],r[1]);const l=this.computRectCenterPoints();let f;const u=new Set;if(!this.vNodes)return{type:vt.None,...this.baseConsumeResult};const v=this.getCanEraserNodeMap(this.vNodes.getCanEraserNodes(this.vNodes.curNodeMap,{disableEraseImage:n,disableEraseText:s}));for(let h=0;h<l.length-1;h+=2){this.createEraserRect(l.slice(h,h+2));const y=this.remove({curNodeMap:v,removeIds:u});f=Zt(f,y)}return f&&u.size?{type:vt.RemoveNode,rect:f,removeIds:[...u]}:{type:vt.None,...this.baseConsumeResult}}consumeAll(t){return this.consume(t)}clearTmpPoints(){this.tmpPoints.length=0}getCanEraserNodeMap(t){var r;if(this.serviceWork){const n=new Map(t),s=this.serviceWork.selectorWorkShapes,c=this.serviceWork.workShapes;for(const l of s.values())if((r=l.selectIds)!=null&&r.length)for(const f of l.selectIds)n.delete(f);for(const l of c.keys())n.delete(l);return n}return t}};dt(si,"eraserSizes",Go);let ps=si;var oS="__lodash_hash_undefined__";function aS(i){return this.__data__.set(i,oS),this}var lS=aS;function fS(i){return this.__data__.has(i)}var cS=fS,uS=Zl,hS=lS,dS=cS;function vs(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new uS;++e<t;)this.add(i[e])}vs.prototype.add=vs.prototype.push=hS,vs.prototype.has=dS;var Vo=vs;function pS(i,e){for(var t=-1,r=i==null?0:i.length;++t<r;)if(e(i[t],t,i))return!0;return!1}var vS=pS;function gS(i,e){return i.has(e)}var Ko=gS,mS=Vo,yS=vS,PS=Ko,SS=1,xS=2;function TS(i,e,t,r,n,s){var c=t&SS,l=i.length,f=e.length;if(l!=f&&!(c&&f>l))return!1;var u=s.get(i),v=s.get(e);if(u&&v)return u==e&&v==i;var h=-1,y=!0,T=t&xS?new mS:void 0;for(s.set(i,e),s.set(e,i);++h<l;){var O=i[h],I=e[h];if(r)var P=c?r(I,O,h,e,i,s):r(O,I,h,i,e,s);if(P!==void 0){if(P)continue;y=!1;break}if(T){if(!yS(e,function(w,d){if(!PS(T,d)&&(O===w||n(O,w,t,r,s)))return T.push(d)})){y=!1;break}}else if(!(O===I||n(O,I,t,r,s))){y=!1;break}}return s.delete(i),s.delete(e),y}var Vf=TS;function CS(i){var e=-1,t=Array(i.size);return i.forEach(function(r,n){t[++e]=[n,r]}),t}var IS=CS;function wS(i){var e=-1,t=Array(i.size);return i.forEach(function(r){t[++e]=r}),t}var Zo=wS,Kf=wi,Zf=wf,OS=Ao,AS=Vf,ES=IS,MS=Zo,LS=1,RS=2,bS="[object Boolean]",DS="[object Date]",NS="[object Error]",BS="[object Map]",WS="[object Number]",FS="[object RegExp]",US="[object Set]",YS="[object String]",$S="[object Symbol]",XS="[object ArrayBuffer]",zS="[object DataView]",Jf=Kf?Kf.prototype:void 0,Jo=Jf?Jf.valueOf:void 0;function jS(i,e,t,r,n,s,c){switch(t){case zS:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case XS:return!(i.byteLength!=e.byteLength||!s(new Zf(i),new Zf(e)));case bS:case DS:case WS:return OS(+i,+e);case NS:return i.name==e.name&&i.message==e.message;case FS:case YS:return i==e+"";case BS:var l=ES;case US:var f=r&LS;if(l||(l=MS),i.size!=e.size&&!f)return!1;var u=c.get(i);if(u)return u==e;r|=RS,c.set(i,e);var v=AS(l(i),l(e),r,n,s,c);return c.delete(i),v;case $S:if(Jo)return Jo.call(i)==Jo.call(e)}return!1}var GS=jS,Qf=mf,kS=1,HS=Object.prototype,VS=HS.hasOwnProperty;function KS(i,e,t,r,n,s){var c=t&kS,l=Qf(i),f=l.length,u=Qf(e),v=u.length;if(f!=v&&!c)return!1;for(var h=f;h--;){var y=l[h];if(!(c?y in e:VS.call(e,y)))return!1}var T=s.get(i),O=s.get(e);if(T&&O)return T==e&&O==i;var I=!0;s.set(i,e),s.set(e,i);for(var P=c;++h<f;){y=l[h];var w=i[y],d=e[y];if(r)var m=c?r(d,w,y,e,i,s):r(w,d,y,i,e,s);if(!(m===void 0?w===d||n(w,d,t,r,s):m)){I=!1;break}P||(P=y=="constructor")}if(I&&!P){var p=i.constructor,S=e.constructor;p!=S&&"constructor"in i&&"constructor"in e&&!(typeof p=="function"&&p instanceof p&&typeof S=="function"&&S instanceof S)&&(I=!1)}return s.delete(i),s.delete(e),I}var ZS=KS,Qo=Jl,JS=Vf,QS=GS,qS=ZS,qf=us,_f=Ei,tc=Lo,_S=lf,tx=1,ec="[object Arguments]",rc="[object Array]",gs="[object Object]",ex=Object.prototype,nc=ex.hasOwnProperty;function rx(i,e,t,r,n,s){var c=_f(i),l=_f(e),f=c?rc:qf(i),u=l?rc:qf(e);f=f==ec?gs:f,u=u==ec?gs:u;var v=f==gs,h=u==gs,y=f==u;if(y&&tc(i)){if(!tc(e))return!1;c=!0,v=!1}if(y&&!v)return s||(s=new Qo),c||_S(i)?JS(i,e,t,r,n,s):QS(i,e,f,t,r,n,s);if(!(t&tx)){var T=v&&nc.call(i,"__wrapped__"),O=h&&nc.call(e,"__wrapped__");if(T||O){var I=T?i.value():i,P=O?e.value():e;return s||(s=new Qo),n(I,P,t,r,s)}}return y?(s||(s=new Qo),qS(i,e,t,r,n,s)):!1}var nx=rx,ix=nx,ic=on;function sc(i,e,t,r,n){return i===e?!0:i==null||e==null||!ic(i)&&!ic(e)?i!==i&&e!==e:ix(i,e,t,r,sc,n)}var sx=sc,ox=sx;function ax(i,e){return ox(i,e)}var lx=ax,Qr=mn(lx);function oc(i,e,t,r=1){return`rgba(${i},${e},${t},${r})`}function fx(i){const e=i.split(","),t=parseInt(e[0].split("(")[1]),r=parseInt(e[1]),n=parseInt(e[2]),s=Number(e[3].split(")")[0]);return[t,r,n,s]}const Rs=class Rs extends $t{constructor(t){super(t);dt(this,"toolsType",Tt.Selector);dt(this,"tmpPoints",[]);dt(this,"subTmpPoints",[]);dt(this,"workOptions");dt(this,"vNodes");dt(this,"selectIds");dt(this,"selectorColor");dt(this,"strokeColor");dt(this,"fillColor");dt(this,"oldSelectRect");dt(this,"oldSubSelectRect");dt(this,"canRotate",!1);dt(this,"canTextEdit",!1);dt(this,"canLock",!1);dt(this,"scaleType",Te.all);dt(this,"toolsTypes");dt(this,"shapeOpt");dt(this,"textOpt");dt(this,"isLocked");dt(this,"thickness");dt(this,"strokeType");dt(this,"useStroke");this.workOptions=t.toolsOpt,this.vNodes=t.vNodes}computSelector(t=!0){const r=Re(this.tmpPoints);if(r.w===0||r.h===0)return{selectIds:[],intersectRect:void 0,subNodeMap:new Map};const{rectRange:n,nodeRange:s}=this.vNodes.getRectIntersectRange(r,t);return{selectIds:[...s.keys()],intersectRect:n,subNodeMap:s}}updateTempPoints(t){const r=this.tmpPoints.length,n=t.length;if(n>1){const s=new Jt(t[n-2]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[n-1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]);r===2?this.tmpPoints.splice(1,1,s):this.tmpPoints.push(s)}}drawSelector(t){const{drawRect:r,subNodeMap:n,selectorId:s,layer:c,isService:l}=t,f=new Je({pos:[r.x,r.y],anchor:[0,0],size:[r.w,r.h],id:s,name:s,zIndex:9999}),u=[];if(l){const v=new Oo({normalize:!0,pos:[r.w/2,r.h/2],lineWidth:1,strokeColor:this.selectorColor||this.workOptions.strokeColor,width:r.w,height:r.h,name:Rs.selectorBorderId});u.push(v)}n.forEach((v,h)=>{const y=[v.rect.x+v.rect.w/2-r.x,v.rect.y+v.rect.h/2-r.y],T=new Oo({normalize:!0,pos:y,lineWidth:1,strokeColor:n.size>1?this.selectorColor||this.workOptions.strokeColor:void 0,width:v.rect.w,height:v.rect.h,id:`selector-${h}`,name:`selector-${h}`});u.push(T)}),u&&f.append(...u),(c==null?void 0:c.parent).appendChild(f)}draw(t,r,n,s=!1){var f,u;const{intersectRect:c,subNodeMap:l}=n;(u=(f=r.parent)==null?void 0:f.getElementById(t))==null||u.remove(),c&&this.drawSelector({drawRect:c,subNodeMap:l,selectorId:t,layer:r,isService:s})}getSelecteorInfo(t){this.scaleType=Te.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,this.thickness=void 0,this.strokeType=void 0,this.useStroke=!1;const r=new Set;let n,s=!0;for(const c of t.values()){const{opt:l,canRotate:f,scaleType:u,toolsType:v}=c;this.selectorColor=this.workOptions.strokeColor,l.strokeColor&&(this.strokeColor=l.strokeColor),l.fillColor&&(this.fillColor=l.fillColor),l.textOpt&&(this.textOpt=l.textOpt),l.thickness&&(this.thickness=l.thickness),v!==Tt.Pencil&&(s=!1),l.strokeType&&(this.strokeType=l.strokeType),v===Tt.SpeechBalloon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.placement=l.placement),v===Tt.Polygon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices),v===Tt.Star&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices,this.shapeOpt.innerRatio=l.innerRatio,this.shapeOpt.innerVerticeStep=l.innerVerticeStep),v===Tt.Text&&(this.textOpt=l),t.size===1&&(this.textOpt&&(this.canTextEdit=!0),this.canRotate=f,this.scaleType=u),(v===Tt.Image||v===Tt.BackgroundSVG)&&(n=c),(u===Te.proportional&&this.scaleType!==Te.none||u===Te.none)&&(this.scaleType=u)}s&&(this.useStroke=!0),r.size&&(this.toolsTypes=[...r]),n&&(t.size===1?(this.canLock=!0,n.opt.locked&&(this.isLocked=!0,this.scaleType=Te.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,this.thickness=void 0,this.strokeType=void 0,this.useStroke=void 0)):t.size>1&&!n.opt.locked&&(this.canLock=!1,this.canRotate=!1))}getChildrenPoints(){var t,r;if(this.scaleType===Te.both&&((t=this.selectIds)==null?void 0:t.length)===1){const n=this.selectIds[0],s=(r=this.vNodes.get(n))==null?void 0:r.op;if(s){const c=[];for(let l=0;l<s.length;l+=3)c.push([s[l],s[l+1]]);return c}}}consume(t){if(t.isSubWorker)return this.subWorkerConsume(t);let r={type:vt.Select,dataType:Kt.Local,...this.baseConsumeResult};if(t.isSimpleWorker){const v=this.subWorkerConsume(t);r.subRect=v.rect}const{op:n,workState:s}=t.data;let c=this.oldSelectRect;if(s===te.Start&&(c=this.unSelectedAllIds()),!(n!=null&&n.length)||!this.vNodes.curNodeMap.size)return t.isSimpleWorker?r:{type:vt.None};this.updateTempPoints(n);const l=this.computSelector();if(this.selectIds&&Qr(this.selectIds,l.selectIds))return t.isSimpleWorker?r:{type:vt.None};this.selectIds=l.selectIds;const f=l.intersectRect;this.getSelecteorInfo(l.subNodeMap),this.draw(Me,this.fullLayer,l),this.oldSelectRect=f;const u=this.getChildrenPoints();return r={...r,rect:Zt(f,c),selectIds:l.selectIds,selectRect:f,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:u,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType},r}consumeAll(){var r,n;let t=this.oldSelectRect;if(!((r=this.selectIds)!=null&&r.length)&&this.tmpPoints[0]&&this.selectSingleTool(this.tmpPoints[0].XY,Me,!1),(n=this.selectIds)!=null&&n.length&&(t=this.selectedByIds(this.selectIds)),t){const s=this.getChildrenPoints();return{type:vt.Select,dataType:Kt.Local,rect:this.oldSelectRect,selectIds:this.selectIds,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,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType,...this.baseConsumeResult}}return{type:vt.None}}consumeService(){}updateTempPointsForSubWorker(t){const r=t.slice(-2),n=new Jt(r[0],r[1]);if(this.subTmpPoints[0].isNear(n,1))return!1;if(this.subTmpPoints.length===2){if(n.isNear(this.subTmpPoints[1],1))return!1;this.subTmpPoints[1]=n}else this.subTmpPoints.push(n);return!0}computDrawPoints(t){const{thickness:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}drawForSubWorker(t){const{workId:r,layer:n,ps:s}=t,{strokeColor:c,scale:l,rotate:f,translate:u}=this.workOptions,v=n.worldPosition,h=n.worldScaling,{points:y,rect:T,pos:O}=this.computDrawPoints(s),I=1/n.worldScaling[0],P=c&&fx(c)||[0,0,0,0],w={close:!0,normalize:!0,points:y,lineWidth:I,fillColor:oc(P[0],P[1],P[2],.1),strokeColor:oc(P[0],P[1],P[2],1),lineJoin:"round",lineCap:"round"};let d={x:Math.floor(T.x*h[0]+v[0]-$t.SafeBorderPadding),y:Math.floor(T.y*h[1]+v[1]-$t.SafeBorderPadding),w:Math.floor(T.w*h[0]+2*$t.SafeBorderPadding),h:Math.floor(T.h*h[0]+2*$t.SafeBorderPadding)};const m=new Je({name:r,id:r,pos:O,anchor:[.5,.5],size:[T.w,T.h],scale:l,rotate:f,translate:u}),p=new nn({...w,pos:[0,0]});if(m.appendChild(p),this.replace(n,r,m),l||f||u){const S=m.getBoundingClientRect();d={x:Math.floor(S.x-$t.SafeBorderPadding),y:Math.floor(S.y-$t.SafeBorderPadding),w:Math.floor(S.width+2*$t.SafeBorderPadding),h:Math.floor(S.height+2*$t.SafeBorderPadding)}}return d}transformData(t){const r=Re(t);return[[r.x,r.y,0],[r.x+r.w,r.y,0],[r.x+r.w,r.y+r.h,0],[r.x,r.y+r.h,0]]}subWorkerConsume(t){const{data:r,isFullWork:n}=t,{op:s,syncUnitTime:c}=r;c&&(this.syncUnitTime=c);const l=s==null?void 0:s.length;if(!l||l<2)return{type:vt.None,rect:void 0};let f;if(this.subTmpPoints.length===0?(this.subTmpPoints=[new Jt(s[0],s[1])],f=!1):f=this.updateTempPointsForSubWorker(s),!f)return{type:vt.None,rect:void 0};const u=this.transformData(this.subTmpPoints),v=n?this.fullLayer:this.drawLayer||this.fullLayer,h=this.drawForSubWorker({ps:u,workId:this.workId,layer:v}),y=Zt(h,this.oldSubSelectRect);return this.oldSubSelectRect=h,{rect:y,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}subWorkerConsumeAll(t){const{isFullWork:r}=t,n=r?this.fullLayer:this.drawLayer||this.fullLayer;return this.replace(n,this.workId),{rect:this.oldSelectRect,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult}}clearSubTmpPoints(){this.subTmpPoints.length=0}clearTmpPoints(){this.tmpPoints.length=0,this.clearSubTmpPoints()}clearSubSelectData(){this.oldSubSelectRect=void 0}clearSelectData(){this.selectIds=void 0,this.oldSelectRect=void 0,this.clearSubSelectData()}selectSingleTool(t,r=Me,n=!1){if(t.length===2){const s=t[0],c=t[1];let l;const{nodeRange:f}=this.vNodes.getRectIntersectRange({x:s,y:c,w:0,h:0},!1),u=[...f.values()].sort((v,h)=>(h.opt.zIndex||0)-(v.opt.zIndex||0));for(const v of u){const h=this.fullLayer.getElementsByName(v.name);if(Bc(h).find(T=>T.isPointCollision(s,c))){l=v;break}}if(l){const v=l.name;if(!Qr(this.oldSelectRect,l.rect)){const h=new Map([[v,l]]);this.getSelecteorInfo(h),this.draw(r,this.fullLayer,{intersectRect:l.rect,subNodeMap:h,selectIds:this.selectIds||[]},n)}this.selectIds=[v],this.oldSelectRect=l.rect}}}unSelectedAllIds(){let t;for(const[r,n]of this.vNodes.curNodeMap.entries())n.isSelected&&(t=Zt(t,n.rect),this.vNodes.unSelected(r));return t}unSelectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&s.isSelected&&(r=Zt(r,s.rect),this.vNodes.unSelected(n))}return r}selectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&(r=Zt(r,s.rect),this.vNodes.selected(n))}return r}getSelectorRect(t,r){var l;let n;const s=(l=t.parent)==null?void 0:l.getElementById(r),c=s==null?void 0:s.getBoundingClientRect();return c&&(n=Zt(n,{x:Math.floor(c.x),y:Math.floor(c.y),w:Math.floor(c.width+1),h:Math.floor(c.height+1)})),n}isCanFillColor(t){return t===Tt.Ellipse||t===Tt.Triangle||t===Tt.Rectangle||t===Tt.Polygon||t===Tt.Star||t===Tt.SpeechBalloon}async updateSelector(t){const{updateSelectorOpt:r,selectIds:n,vNodes:s,willSerializeData:c,worker:l,offset:f}=t,u=this.fullLayer;if(!u)return;let v;const h=new Map,{originPoint:y,workState:T,angle:O,translate:I,dir:P,scale:w}=r;f&&(I?r.translate=[I[0]+f[0],I[1]+f[1]]:r.translate=f);let d;if(y||I||Qe(O)){if(T===te.Start&&n)return s.setTargetAssignKeys(n),{type:vt.Select,dataType:Kt.Local,selectRect:this.oldSelectRect,rect:this.oldSelectRect};if(d=s.getLastTarget(),!d)return}if(n)for(const S of n){const E=s.get(S);if(E){const{toolsType:R,opt:D}=E,U=(u==null?void 0:u.getElementsByName(S))[0];if(U){const M={...r};let W;const $=$t.isWillRefresh({toolsType:R,opt:D,updateOpt:M,vNodes:s,node:U,willSerializeData:c});if(R){W=d==null?void 0:d.get(S);const B=Nc(R);if(B==null||B.updateNodeOpt({node:U,opt:M,vNodes:s,willSerializeData:c,targetNode:W}),E&&l&&$){const N=l.createWorkShapeNode({workId:S,toolsType:R,toolsOpt:E.opt});N==null||N.setWorkId(S);let z;if(R===Tt.BackgroundSVG)z=N.consumeService({isFullWork:!0,replaceId:S});else if(R===Tt.Image)z=await N.consumeServiceAsync({isFullWork:!0,replaceId:S,worker:l});else if(R===Tt.Text)z=await N.consumeServiceAsync({isFullWork:!0,replaceId:S,isDrawLabel:!0});else try{z=N==null?void 0:N.consumeService({op:E.op,isFullWork:!0,replaceId:S,workState:T})}catch(J){console.error("consumeService error",J);continue}z&&(E.rect=z)}E&&(h.set(S,E),v=Zt(v,E.rect))}}}}d&&T===te.Done&&(s.deleteLastTarget(),d=void 0);const m=v;if(y&&I&&w&&P&&m&&!f){const S=[[m.x,m.y],[m.x+m.w,m.y],[m.x+m.w,m.y+m.h],[m.x,m.y+m.h]];let E;switch(P){case"top":case"topLeft":case"left":I[0]>0&&I[1]>0?E=S[0]:I[0]>0?E=S[3]:I[1]>0?E=S[1]:E=S[2];break;case"topRight":I[0]<0&&I[1]>0?E=S[1]:I[0]<0?E=S[2]:I[1]>0?E=S[0]:E=S[3];break;case"right":case"bottomRight":case"bottom":I[0]<0&&I[1]<0?E=S[2]:I[0]<0?E=S[1]:I[1]<0?E=S[3]:E=S[0];break;case"bottomLeft":I[0]>0&&I[1]<0?E=S[3]:I[0]>0?E=S[0]:I[1]<0?E=S[2]:E=S[1];break}const R=E&&[y[0]-E[0],y[1]-E[1]]||[0,0];if(!Qr(R,[0,0]))return await this.updateSelector({...t,updateSelectorOpt:{workState:T},offset:R})}this.getSelecteorInfo(h),this.draw(Me,u,{selectIds:n||[],subNodeMap:h,intersectRect:m});const p=Zt(this.oldSelectRect,m);return this.oldSelectRect=m,{type:vt.Select,dataType:Kt.Local,selectRect:m,renderRect:v,rect:Zt(p,m),selectIds:n}}blurSelector(){const t=this.unSelectedAllIds();return{type:vt.Select,dataType:Kt.Local,rect:t,selectIds:[],willSyncService:!0}}getRightServiceId(t){return t.replace(Vn,"-")}selectServiceNode(t,r,n){const{selectIds:s}=r,c=this.getRightServiceId(t),l=this.getSelectorRect(this.fullLayer,c);let f;const u=new Map;return s==null||s.forEach(v=>{const h=this.vNodes.get(v);h&&(f=Zt(f,h.rect),u.set(v,h))}),this.getSelecteorInfo(u),this.draw(c,this.fullLayer,{intersectRect:f,selectIds:s||[],subNodeMap:u},n),Zt(f,l)}reRenderSelector(){var n;let t;const r=new Map;return(n=this.selectIds)==null||n.forEach(s=>{const c=this.vNodes.get(s);c&&(t=Zt(t,c.rect),r.set(s,c))},this),this.getSelecteorInfo(r),this.draw(Me,this.fullLayer,{intersectRect:t,subNodeMap:r,selectIds:this.selectIds||[]}),this.oldSelectRect=t,t}updateSelectIds(t){var c;let r;const n=(c=this.selectIds)==null?void 0:c.filter(l=>!t.includes(l));if(n!=null&&n.length&&(r=this.unSelectedByIds(n)),t.length){const l=this.selectedByIds(t);r=Zt(r,l)}this.selectIds=t;const s=this.reRenderSelector();return{bgRect:r,selectRect:s}}cursorHover(t){var c,l;const r=this.oldSelectRect;this.selectIds=[];const n=(c=this.workId)==null?void 0:c.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&&!Qr(r,this.oldSelectRect))return{type:vt.CursorHover,dataType:Kt.Local,rect:Zt(r,this.oldSelectRect),selectorColor:this.selectorColor,willSyncService:!1};if((l=this.selectIds)!=null&&l.length||(this.oldSelectRect=void 0),r&&!this.oldSelectRect)return this.cursorBlur(),{type:vt.CursorHover,dataType:Kt.Local,rect:r,selectorColor:this.selectorColor,willSyncService:!1}}cursorBlur(){var r,n;this.selectIds=[];const t=(r=this.workId)==null?void 0:r.toString();((n=this.fullLayer)==null?void 0:n.parent).children.forEach(s=>{s.name===t&&s.remove()})}};dt(Rs,"selectorBorderId","selector-border");let Mi=Rs;class ac extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",Tt.Arrow);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"arrowTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.arrowTipWidth=this.workOptions.thickness*4,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(n,r)}),{rect:n,...this.baseConsumeResult,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineDash:O,lineCap:I}=this.workOptions,P=n.worldPosition,w=n.worldScaling,{points:d,pos:m,rect:p,isTriangle:S,trianglePoints:E,trianglePos:R}=this.computDrawPoints(l),D=[p.x+p.w/2,p.y+p.h/2],U={pos:D,name:r,id:r,zIndex:f,anchor:[.5,.5],size:[p.w,p.h]};u&&(U.scale=u),v&&(U.rotate=v),h&&(U.translate=h);const M=new Je(U),W={points:E,pos:[R[0]-D[0],R[1]-D[1]],fillColor:c,strokeColor:c,lineWidth:0,normalize:!1},$=new nn(W);if(M.append($),!S&&d&&m){const N={points:d,pos:[m[0]-D[0],m[1]-D[1]],fillColor:c,strokeColor:c,lineDash:y===Ee.Dotted?[O&&O[0]||1,(O&&O[1]||2)*l]:y===Ee.LongDotted?[(O&&O[0]||1)*l,(O&&O[1]||2)*l]:void 0,lineCap:y===Ee.Normal?void 0:I,lineWidth:l,normalize:!1},z=new nn(N);M.append(z)}T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:M,eraserlines:T,pos:D,layer:n},s)),this.replace(n,r,M);let B={x:Math.floor(p.x*w[0]+P[0]-$t.SafeBorderPadding),y:Math.floor(p.y*w[1]+P[1]-$t.SafeBorderPadding),w:Math.floor(p.w*w[0]+2*$t.SafeBorderPadding),h:Math.floor(p.h*w[1]+2*$t.SafeBorderPadding)};if(u||v||h){const N=M.getBoundingClientRect();B={x:Math.floor(N.x-$t.SafeBorderPadding),y:Math.floor(N.y-$t.SafeBorderPadding),w:Math.floor(N.width+$t.SafeBorderPadding*2),h:Math.floor(N.height+$t.SafeBorderPadding*2)}}return this.isDelete&&M.setAttribute("opacity",0),B}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.arrowTipWidth?this.computFullArrowPoints(t):this.computTrianglePoints()}computFullArrowPoints(t){const r=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=pt.Per(r).mul(t/2),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=pt.Mul(r,this.arrowTipWidth),f=pt.Sub(this.tmpPoints[1],l),u=Jt.Sub(f,n),v=Jt.Add(f,n),h=pt.Per(r).mul(t*1.5),y=Jt.Sub(f,h),T=Jt.Add(f,h),O=[this.tmpPoints[0],f],I=[y,this.tmpPoints[1],T],P=[s,c,...I,u,v];return{trianglePoints:I.map(w=>Jt.Sub(w,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,points:O.map(w=>Jt.Sub(w,this.tmpPoints[0]).XY).flat(1),rect:Re(P),isTriangle:!1,pos:this.tmpPoints[0].XY}}computTrianglePoints(){const t=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),r=this.tmpPoints[1].distance(this.tmpPoints[0]),n=pt.Per(t).mul(Math.floor(r*3/8)),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=[s,this.tmpPoints[1],c];return{trianglePoints:l.map(f=>Jt.Sub(f,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,rect:Re(l),isTriangle:!0}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),$t.updateNodeOpt(t)}}class lc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Ellipse);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const I=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:I,isDrawing:!0});const P=I.parent.parent,w={x:0,y:0,w:Math.floor(P.width),h:Math.floor(P.height)},d={type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(Bi(O,w)!==yr.outside){const p=Zt(O,this.oldRect);if(this.oldRect=O,d.rect=p,!f)return d}if(f){const p=Date.now();return p-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=p,d.op=this.tmpPoints.map(S=>[...S.XY,0]).flat(1),d.index=0,d.isSync=!0),d}return{type:vt.None}}if(!s&&!c&&!f&&l){const I=Date.now();return I-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=I,{type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult,op:this.tmpPoints.map(P=>[...P.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}return{type:vt.None}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:I,lineDash:P,lineCap:w}=this.workOptions,d=n.worldScaling,{radius:m,rect:p,pos:S}=this.computDrawPoints(u),E={closeType:"normal",radius:m,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:O===Ee.Dotted?[P&&P[0]||1,(P&&P[1]||2)*u]:O===Ee.LongDotted?[(P&&P[0]||1)*u,(P&&P[1]||2)*u]:void 0},R={name:r,id:r,zIndex:v,pos:S,anchor:[.5,.5],size:[p.w,p.h]};h&&(R.scale=h),y&&(R.rotate=y),T&&(R.translate=T);const D=new Je(R);if(s){const W=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/d[0],1/d[1]]});D.append(W)}const U=new rn({...E,pos:[0,0]});D.append(U),I&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:I,pos:S,layer:n},c)),this.replace(n,r,D);const M=D.getBoundingClientRect();return this.isDelete&&D.setAttribute("opacity",0),{x:Math.floor(M.x-$t.SafeBorderPadding),y:Math.floor(M.y-$t.SafeBorderPadding),w:Math.floor(M.width+$t.SafeBorderPadding*2),h:Math.floor(M.height+$t.SafeBorderPadding*2)}}computDrawPoints(t){const r=Re(this.tmpPoints),n=Re(this.tmpPoints,t),s=[Math.floor(r.x+r.w/2),Math.floor(r.y+r.h/2)];return{rect:n,pos:s,radius:[Math.floor(r.w/2),Math.floor(r.h/2)]}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),$t.updateNodeOpt(t)}}class fc extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Rectangle);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}transformData(){const t=Re(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:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};const T=this.transformData();let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({ps:T,workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=T.flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:T.flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var f;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.transformData(),n=this.fullLayer,s=this.draw({ps:r,workId:t,layer:n,isDrawing:!1});this.oldRect=s;const c=r.flat(1),l=hr(c);return(f=this.vNodes)==null||f.setInfo(t,{rect:s,op:c,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&$t.getCenterPos(s,n)}),{rect:s,type:vt.FullWork,dataType:Kt.Local,ops:l,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,ps:c,replaceId:l,isDrawEraserlines:f=!0}=t,{strokeColor:u,fillColor:v,thickness:h,zIndex:y,scale:T,rotate:O,translate:I,strokeType:P,eraserlines:w,lineCap:d,lineDash:m}=this.workOptions,p=n.worldPosition,S=n.worldScaling,{points:E,rect:R,pos:D}=this.computDrawPoints(c),U={close:!0,normalize:!0,points:E,lineWidth:h,fillColor:v!=="transparent"&&v||void 0,strokeColor:u,lineCap:d,lineDash:P===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*h]:P===Ee.LongDotted?[(m&&m[0]||1)*h,(m&&m[1]||2)*h]:void 0};let M={x:Math.floor(R.x*S[0]+p[0]-$t.SafeBorderPadding),y:Math.floor(R.y*S[1]+p[1]-$t.SafeBorderPadding),w:Math.floor(R.w*S[0]+2*$t.SafeBorderPadding),h:Math.floor(R.h*S[0]+2*$t.SafeBorderPadding)};const W=new Je({name:r,id:r,zIndex:y,pos:D,anchor:[.5,.5],size:[R.w,R.h],scale:T,rotate:O,translate:I}),$=new nn({...U,pos:[0,0]});if(W.appendChild($),s){const B=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:u,lineWidth:1,scale:[1/S[0],1/S[1]]});W.appendChild(B)}if(w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:w,pos:D,layer:n},f)),this.replace(n,l||r,W),T||O||I){const B=W.getBoundingClientRect();M={x:Math.floor(B.x-$t.SafeBorderPadding),y:Math.floor(B.y-$t.SafeBorderPadding),w:Math.floor(B.width+2*$t.SafeBorderPadding),h:Math.floor(B.height+2*$t.SafeBorderPadding)}}return this.isDelete&&W.setAttribute("opacity",0),M}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=te.Done}=t,l=(h=this.workId)==null?void 0:h.toString();if(!l)return;const f=[];for(let T=0;T<r.length;T+=3)f.push([r[T],r[T+1],r[T+2]]);const u=n?this.fullLayer:this.drawLayer||this.fullLayer,v=this.draw({ps:f,workId:l,layer:u,isDrawing:!1,replaceId:s,isDrawEraserlines:c===te.Done});return this.oldRect=v,(y=this.vNodes)==null||y.setInfo(l,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&$t.getCenterPos(v,u)}),v}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),$t.updateNodeOpt(t)}}class cc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Star);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,innerVerticeStep:y,innerRatio:T,scale:O,rotate:I,translate:P,strokeType:w,eraserlines:d,lineDash:m,lineCap:p}=this.workOptions,S=n.worldScaling,{rect:E,pos:R,points:D}=this.computDrawPoints(u,h,y,T),U={close:!0,points:D,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:p,lineDash:w===Ee.Dotted?[m&&m[0]||1,(m&&m[1]||2)*u]:w===Ee.LongDotted?[(m&&m[0]||1)*u,(m&&m[1]||2)*u]:void 0},M={name:r,id:r,zIndex:v,pos:R,anchor:[.5,.5],size:[E.w,E.h]};O&&(M.scale=O),I&&(M.rotate=I),P&&(M.translate=P);const W=new Je(M);if(s){const N=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/S[0],1/S[1]]});W.append(N)}const $=new nn({...U,pos:[0,0]});W.append($),d&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:d,pos:R,layer:n},c)),this.replace(n,r,W);const B=W.getBoundingClientRect();return this.isDelete&&W.setAttribute("opacity",0),{x:Math.floor(B.x-$t.SafeBorderPadding),y:Math.floor(B.y-$t.SafeBorderPadding),w:Math.floor(B.width+$t.SafeBorderPadding*2),h:Math.floor(B.height+$t.SafeBorderPadding*2)}}computDrawPoints(t,r,n,s){const c=Re(this.tmpPoints),l=[Math.floor(c.x+c.w/2),Math.floor(c.y+c.h/2)],f=Fc(c.w,c.h),u=Math.floor(Math.min(c.w,c.h)/2),v=s*u,h=[],y=2*Math.PI/r;for(let O=0;O<r;O++){const I=O*y-.5*Math.PI;let P,w;O%n===1?(P=v*f[0]*Math.cos(I),w=v*f[1]*Math.sin(I)):(P=u*f[0]*Math.cos(I),w=u*f[1]*Math.sin(I),h.push(P,w)),h.push(P,w)}return{rect:Re(this.tmpPoints,t),pos:l,points:h}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var P;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,innerVerticeStep:v,innerRatio:h,strokeType:y}=n,T=s.get(r.name),O=T==null?void 0:T.opt;let I=r;return r.tagName==="GROUP"&&(I=r.children[0]),c&&(I.setAttribute("strokeColor",c),O!=null&&O.strokeColor&&(O.strokeColor=c)),l&&(l==="transparent"?I.setAttribute("fillColor","rgba(0,0,0,0)"):I.setAttribute("fillColor",l),O!=null&&O.fillColor&&(O.fillColor=l)),f===Tt.Star&&(u&&(O.vertices=u),v&&(O.innerVerticeStep=v),h&&(O.innerRatio=h)),y&&(T!=null&&T.opt)&&((P=T.opt)!=null&&P.strokeType)&&(T.opt.strokeType=y),T&&s.setInfo(r.name,{...T,opt:O}),$t.updateNodeOpt(t)}}class uc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Polygon);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,{op:u,syncUnitTime:v}=r;v&&(this.syncUnitTime=v);const h=this.workId,y=u==null?void 0:u.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(u[0],u[1])],T=!1):T=this.updateTempPoints(u),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:h,layer:P,isDrawing:!0})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={type:vt.DrawWork,rect:P,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,scale:y,rotate:T,translate:O,strokeType:I,eraserlines:P,lineCap:w,lineDash:d}=this.workOptions,m=n.worldScaling,{rect:p,pos:S,points:E}=this.computDrawPoints(u,h),R={close:!0,points:E,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:I===Ee.Dotted?[d&&d[0]||1,(d&&d[1]||2)*u]:I===Ee.LongDotted?[(d&&d[0]||1)*u,(d&&d[1]||2)*u]:void 0},D={name:r,id:r,zIndex:v,pos:S,anchor:[.5,.5],size:[p.w,p.h]};y&&(D.scale=y),T&&(D.rotate=T),O&&(D.translate=O);const U=new Je(D);if(s){const $=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/m[0],1/m[1]]});U.append($)}const M=new nn({...R,pos:[0,0]});U.append(M),P&&(this.scaleType=Te.proportional,this.drawEraserlines({group:U,eraserlines:P,pos:S,layer:n},c)),this.replace(n,r,U);const W=U.getBoundingClientRect();return this.isDelete&&U.setAttribute("opacity",0),{x:Math.floor(W.x-$t.SafeBorderPadding),y:Math.floor(W.y-$t.SafeBorderPadding),w:Math.floor(W.width+$t.SafeBorderPadding*2),h:Math.floor(W.height+$t.SafeBorderPadding*2)}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=[Math.floor(n.x+n.w/2),Math.floor(n.y+n.h/2)],c=Fc(n.w,n.h),l=Math.floor(Math.min(n.w,n.h)/2),f=[],u=2*Math.PI/r;for(let h=0;h<r;h++){const y=h*u-.5*Math.PI,T=l*c[0]*Math.cos(y),O=l*c[1]*Math.sin(y);f.push(T,O)}return{rect:Re(this.tmpPoints,t),pos:s,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===Tt.Polygon&&u&&(y.vertices=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),$t.updateNodeOpt(t)}}class Xr{static bezier(e,t){const r=[];for(let n=0;n<t.length;n+=4){const s=t[n],c=t[n+1],l=t[n+2],f=t[n+3];s&&c&&l&&f?r.push(...Xr.getBezierPoints(e,s,c,l,f)):s&&c&&l?r.push(...Xr.getBezierPoints(e,s,c,l)):s&&c?r.push(...Xr.getBezierPoints(e,s,c)):s&&r.push(s)}return r}static getBezierPoints(e=10,t,r,n,s){let c=null;const l=[];!n&&!s?c=Xr.oneBezier:n&&!s?c=Xr.twoBezier:n&&s&&(c=Xr.threeBezier);for(let f=0;f<e;f++)c&&l.push(c(f/e,t,r,n,s));return s?l.push(s):n&&l.push(n),l}static oneBezier(e,t,r){const n=t.x+(r.x-t.x)*e,s=t.y+(r.y-t.y)*e;return new pt(n,s)}static twoBezier(e,t,r,n){const s=(1-e)*(1-e)*t.x+2*e*(1-e)*r.x+e*e*n.x,c=(1-e)*(1-e)*t.y+2*e*(1-e)*r.y+e*e*n.y;return new pt(s,c)}static threeBezier(e,t,r,n,s){const c=t.x*(1-e)*(1-e)*(1-e)+3*r.x*e*(1-e)*(1-e)+3*n.x*e*e*(1-e)+s.x*e*e*e,l=t.y*(1-e)*(1-e)*(1-e)+3*r.y*e*(1-e)*(1-e)+3*n.y*e*e*(1-e)+s.y*e*e*e;return new pt(c,l)}}class hc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.SpeechBalloon);dt(this,"ratio",.8);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var I;const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=(I=r==null?void 0:r.workId)==null?void 0:I.toString();if(!u)return{type:vt.None};const{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};let T;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;T=this.draw({workId:u,layer:P,isDrawing:!0})}if(f){const P=Zt(T,this.oldRect);this.oldRect=T;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const O=Zt(T,this.oldRect);return this.oldRect=T,{rect:O,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,fillColor:l,thickness:f,zIndex:u,placement:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:I,lineDash:P,lineCap:w}=this.workOptions,{rect:d,pos:m,points:p}=this.computDrawPoints(f,v),S={points:p.map(M=>M.XY),lineWidth:f,fillColor:l!=="transparent"&&l||void 0,strokeColor:c,normalize:!0,className:`${m[0]},${m[1]}`,close:!0,lineCap:w,lineDash:O===Ee.Dotted?[P&&P[0]||1,(P&&P[1]||2)*f]:O===Ee.LongDotted?[(P&&P[0]||1)*f,(P&&P[1]||2)*f]:void 0},E={name:r,id:r,zIndex:u,pos:m,anchor:[.5,.5],size:[d.w,d.h]};h&&(E.scale=h),y&&(E.rotate=y),T&&(E.translate=T);const R=new Je(E),D=new nn({...S,pos:[0,0]});R.append(D),I&&(this.scaleType=Te.proportional,this.drawEraserlines({group:R,eraserlines:I,pos:m,layer:n},s)),this.replace(n,r,R);const U=R.getBoundingClientRect();return this.isDelete&&R.setAttribute("opacity",0),{x:Math.floor(U.x-$t.SafeBorderPadding),y:Math.floor(U.y-$t.SafeBorderPadding),w:Math.floor(U.width+$t.SafeBorderPadding*2),h:Math.floor(U.height+$t.SafeBorderPadding*2)}}transformControlPoints(t){const r=Re(this.tmpPoints);switch(t){case"bottom":case"bottomLeft":case"bottomRight":{const n=r.y+r.h*this.ratio;return[new pt(r.x,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,n,0),new pt(r.x,n,0)]}case"top":case"topLeft":case"topRight":{const n=r.y+r.h*(1-this.ratio);return[new pt(r.x,n,0),new pt(r.x+r.w,n,0),new pt(r.x+r.w,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}case"left":case"leftBottom":case"leftTop":{const n=r.x+r.w*(1-this.ratio);return[new pt(n,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,r.y+r.h,0),new pt(n,r.y+r.h,0)]}case"right":case"rightBottom":case"rightTop":{const n=r.x+r.w*this.ratio;return[new pt(r.x,r.y,0),new pt(n,r.y,0),new pt(n,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=this.transformControlPoints(r),c=Math.floor(n.w*.1),l=Math.floor(n.h*.1),f=[],u=pt.Add(s[0],new pt(0,l,0)),v=pt.Add(s[0],new pt(c,0,0)),h=Xr.getBezierPoints(10,u,s[0],v),y=pt.Sub(s[1],new pt(c,0,0)),T=pt.Add(s[1],new pt(0,l,0)),O=Xr.getBezierPoints(10,y,s[1],T),I=pt.Sub(s[2],new pt(0,l,0)),P=pt.Sub(s[2],new pt(c,0,0)),w=Xr.getBezierPoints(10,I,s[2],P),d=pt.Add(s[3],new pt(c,0,0)),m=pt.Sub(s[3],new pt(0,l,0)),p=Xr.getBezierPoints(10,d,s[3],m),S=c*(1-this.ratio)*10,E=l*(1-this.ratio)*10;switch(r){case"bottom":{const U=pt.Sub(s[2],new pt(c*5-S/2,0,0)),M=pt.Sub(s[2],new pt(c*5,-E,0)),W=pt.Sub(s[2],new pt(c*5+S/2,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"bottomRight":{const U=pt.Sub(s[2],new pt(c*1.1,0,0)),M=pt.Sub(s[2],new pt(c*1.1+S/2,-E,0)),W=pt.Sub(s[2],new pt(c*1.1+S,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"bottomLeft":{const U=pt.Add(s[3],new pt(c*1.1+S,0,0)),M=pt.Add(s[3],new pt(c*1.1+S/2,E,0)),W=pt.Add(s[3],new pt(c*1.1,0,0));f.push(M,W,...p,...h,...O,...w,U);break}case"top":{const U=pt.Sub(s[1],new pt(c*5-S/2,0,0)),M=pt.Sub(s[1],new pt(c*5,E,0)),W=pt.Sub(s[1],new pt(c*5+S/2,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"topRight":{const U=pt.Sub(s[1],new pt(c*1.1,0,0)),M=pt.Sub(s[1],new pt(c*1.1+S/2,E,0)),W=pt.Sub(s[1],new pt(c*1.1+S,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"topLeft":{const U=pt.Add(s[0],new pt(c*1.1+S,0,0)),M=pt.Add(s[0],new pt(c*1.1+S/2,-E,0)),W=pt.Add(s[0],new pt(c*1.1,0,0));f.push(M,U,...O,...w,...p,...h,W);break}case"left":{const U=pt.Add(s[0],new pt(0,l*5-E/2,0)),M=pt.Add(s[0],new pt(-S,l*5,0)),W=pt.Add(s[0],new pt(0,l*5+E/2,0));f.push(M,U,...h,...O,...w,...p,W);break}case"leftTop":{const U=pt.Add(s[0],new pt(0,l*1.1,0)),M=pt.Add(s[0],new pt(-S,l*1.1+E/2,0)),W=pt.Add(s[0],new pt(0,l*1.1+E,0));f.push(M,U,...h,...O,...w,...p,W);break}case"leftBottom":{const U=pt.Sub(s[3],new pt(0,l*1.1+E,0)),M=pt.Sub(s[3],new pt(S,l*1.1+E/2,0)),W=pt.Sub(s[3],new pt(0,l*1.1,0));f.push(M,U,...h,...O,...w,...p,W);break}case"right":{const U=pt.Add(s[1],new pt(0,l*5-E/2,0)),M=pt.Add(s[1],new pt(S,l*5,0)),W=pt.Add(s[1],new pt(0,l*5+E/2,0));f.push(M,W,...w,...p,...h,...O,U);break}case"rightTop":{const U=pt.Add(s[1],new pt(0,l*1.1,0)),M=pt.Add(s[1],new pt(S,l*1.1+E/2,0)),W=pt.Add(s[1],new pt(0,l*1.1+E,0));f.push(M,W,...w,...p,...h,...O,U);break}case"rightBottom":{const U=pt.Sub(s[2],new pt(0,l*1.1+E,0)),M=pt.Sub(s[2],new pt(-S,l*1.1+E/2,0)),W=pt.Sub(s[2],new pt(0,l*1.1,0));f.push(M,W,...w,...p,...h,...O,U);break}}const R=Re(this.tmpPoints,t),D=[Math.floor(R.x+R.w/2),Math.floor(R.y+R.h/2)];return{rect:R,pos:D,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,placement:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===Tt.SpeechBalloon&&u&&(y.placement=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),$t.updateNodeOpt(t)}}var cx=Kn,ux=on,hx="[object Boolean]";function dx(i){return i===!0||i===!1||ux(i)&&cx(i)==hx}var px=dx,Bn=mn(px);class Li extends $t{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",Tt.Image);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=Li.getScaleType(this.workOptions)}consume(){return{type:vt.None}}consumeAll(){return{type:vt.None}}draw(t){const{layer:r,workId:n,replaceId:s,imageBitmap:c}=t,{centerX:l,centerY:f,width:u,height:v,rotate:h,zIndex:y,eraserlines:T}=this.workOptions,O=new Je({anchor:[.5,.5],pos:[l,f],name:n,size:[u,v],zIndex:y,rotate:h}),I={anchor:[.5,.5],pos:[0,0],size:[u,v],texture:c};c||(I.bgcolor="rgba(0,0,0,0.3)");const P=new Fl(I);O.append(P),T&&this.drawEraserlines({group:O,eraserlines:T,pos:[l,f],layer:r}),this.replace(r,s||n,O);const w=O.getBoundingClientRect();if(w)return{x:Math.floor(w.x-$t.SafeBorderPadding),y:Math.floor(w.y-$t.SafeBorderPadding),w:Math.floor(w.width+$t.SafeBorderPadding*2),h:Math.floor(w.height+$t.SafeBorderPadding*2)}}consumeService(){}async consumeServiceAsync(t){var v,h,y,T;const{isFullWork:r,replaceId:n,worker:s}=t,{src:c,uuid:l}=this.workOptions,f=((v=this.workId)==null?void 0:v.toString())||l,u=r?this.fullLayer:this.drawLayer||this.fullLayer;if(c){const O=await s.loadImageBitMap({toolsType:this.toolsType,opt:this.workOptions,workId:f,isSubWorker:s instanceof _c});if(O){const I=this.draw({workId:f,layer:u,replaceId:n,imageBitmap:O});return this.oldRect=f&&((y=(h=this.vNodes)==null?void 0:h.get(f))==null?void 0:y.rect)||void 0,(T=this.vNodes)==null||T.setInfo(f,{rect:I,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:I&&$t.getCenterPos(I,u)}),I}}}clearTmpPoints(){this.tmpPoints.length=0}static getScaleType(t){const{uniformScale:r,rotate:n}=t;return r!==!1||n&&Math.abs(n)%90>0?Te.proportional:Te.all}static updateNodeOpt(t){const{node:r,opt:n,vNodes:s,targetNode:c}=t,{translate:l,originPoint:f,scenePoint:u,scale:v,angle:h,isLocked:y,zIndex:T,strokeColor:O}=n,I=c&&ar(c)||s.get(r.name);if(!I)return;const P=r.parent;if(P){if(O&&(I.opt.strokeColor=O),Qe(T)&&(r.setAttribute("zIndex",T),I.opt.zIndex=T),Bn(y)&&(I.opt.locked=y),f&&u&&v&&l){const{centerX:w,centerY:d,width:m,height:p,uniformScale:S}=I.opt,E=S!==!1?[v[0],v[0]]:v,R=[w,d],D=[w,d];Es(D,u,E,l);const U=[D[0]-R[0],D[1]-R[1]];if(I.centerPos=[I.centerPos[0]+U[0],I.centerPos[1]+U[1]],I.opt.width=Math.round(m*E[0]),I.opt.height=Math.round(p*E[1]),I.opt.centerX=D[0],I.opt.centerY=D[1],I.opt.eraserlines)for(const M of I.opt.eraserlines){const{op:W,thickness:$}=M;M.thickness=Math.round($*Math.max(v[0],v[1]));for(let B=0;B<W.length;B++)na(W[B],u,v,l)}}else if(l){if(I.opt.centerX=I.opt.centerX+l[0],I.opt.centerY=I.opt.centerY+l[1],I.centerPos=[I.centerPos[0]+l[0],I.centerPos[1]+l[1]],I.opt.eraserlines)for(const w of I.opt.eraserlines){const{op:d}=w;for(let m=0;m<d.length;m++){const p=d[m].map((S,E)=>E%2?S+l[1]:S+l[0]);w.op[m]=p}}}else if(Qe(h))if(I.opt.rotate=h,I.scaleType=Li.getScaleType(I.opt),c){const w=ra(I.rect,h);I.rect=w}else{const w=$t.getRectFromLayer(P,r.name);I.rect=w||I.rect}return I&&s.setInfo(r.name,I),I==null?void 0:I.rect}}}class dc extends $t{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",Tt.Straight);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"straightTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.straightTipWidth=this.workOptions.thickness/2,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:P})}if(f){const P=Zt(O,this.oldRect);this.oldRect=O;const w={rect:P,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const P=Date.now();return P-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=P,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const I=Zt(O,this.oldRect);return this.oldRect=O,{rect:I,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&$t.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineCap:O,lineDash:I}=this.workOptions,P=n.worldPosition,w=n.worldScaling,{d,rect:m,isDot:p}=this.computDrawPoints(l,y),S=[m.x+m.w/2,m.y+m.h/2],E=new Je({pos:S,anchor:[.5,.5],size:[m.w,m.h],name:r,id:r,normalize:!0,zIndex:f}),R={pos:[0,0],normalize:!0,d,fillColor:c,strokeColor:c,lineDash:p?void 0:y===Ee.Dotted?[I&&I[0]||1,(I&&I[1]||2)*l]:y===Ee.LongDotted?[(I&&I[0]||1)*l,(I&&I[1]||2)*l]:void 0,lineCap:p?void 0:O,lineWidth:y===Ee.Normal||p?0:l};u&&(R.scale=u),v&&(R.rotate=v),h&&(R.translate=h);const D=new gn(R);E.append(D),T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:E,eraserlines:T,pos:S,layer:n},s)),this.replace(n,r,E);let U={x:Math.floor(m.x*w[0]+P[0]-$t.SafeBorderPadding),y:Math.floor(m.y*w[1]+P[1]-$t.SafeBorderPadding),w:Math.floor(m.w*w[0]+2*$t.SafeBorderPadding),h:Math.floor(m.h*w[1]+2*$t.SafeBorderPadding)};if(v||u||h){const M=D.getBoundingClientRect();U={x:Math.floor(M.x-$t.SafeBorderPadding),y:Math.floor(M.y-$t.SafeBorderPadding),w:Math.floor(M.width+$t.SafeBorderPadding*2),h:Math.floor(M.height+$t.SafeBorderPadding*2)}}return this.isDelete&&E.setAttribute("opacity",0),U}computDrawPoints(t,r){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.straightTipWidth?this.computFullPoints(t,r):this.computDotPoints(t)}computFullPoints(t,r){const n=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),s=pt.Per(n).mul(t/2),c=Jt.Sub(this.tmpPoints[0],s),l=Jt.Add(this.tmpPoints[0],s),f=Jt.Sub(this.tmpPoints[1],s),u=Jt.Add(this.tmpPoints[1],s),v=Jt.GetSemicircleStroke(this.tmpPoints[1],f,-1,8),h=Jt.GetSemicircleStroke(this.tmpPoints[0],l,-1,8),y=[c,f,...v,u,l,...h];let T;return r!==Ee.Normal?T=yn(this.tmpPoints,!1):T=yn(y,!0),{d:T,rect:Re(y),isDot:!1,pos:this.tmpPoints[0].XY}}computDotPoints(t){const r=Jt.GetDotStroke(this.tmpPoints[0],t/2,8);return{d:yn(r,!0),rect:Re(r),isDot:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))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 u,v;const{op:r,isFullWork:n,workState:s=te.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===te.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&$t.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),$t.updateNodeOpt(t)}}const ri="cursorhover",pc=20,Wn="mainView";var vc={exports:{}},Ge={},qo={exports:{}},Fn={};function gc(){var i={};return i["align-content"]=!1,i["align-items"]=!1,i["align-self"]=!1,i["alignment-adjust"]=!1,i["alignment-baseline"]=!1,i.all=!1,i["anchor-point"]=!1,i.animation=!1,i["animation-delay"]=!1,i["animation-direction"]=!1,i["animation-duration"]=!1,i["animation-fill-mode"]=!1,i["animation-iteration-count"]=!1,i["animation-name"]=!1,i["animation-play-state"]=!1,i["animation-timing-function"]=!1,i.azimuth=!1,i["backface-visibility"]=!1,i.background=!0,i["background-attachment"]=!0,i["background-clip"]=!0,i["background-color"]=!0,i["background-image"]=!0,i["background-origin"]=!0,i["background-position"]=!0,i["background-repeat"]=!0,i["background-size"]=!0,i["baseline-shift"]=!1,i.binding=!1,i.bleed=!1,i["bookmark-label"]=!1,i["bookmark-level"]=!1,i["bookmark-state"]=!1,i.border=!0,i["border-bottom"]=!0,i["border-bottom-color"]=!0,i["border-bottom-left-radius"]=!0,i["border-bottom-right-radius"]=!0,i["border-bottom-style"]=!0,i["border-bottom-width"]=!0,i["border-collapse"]=!0,i["border-color"]=!0,i["border-image"]=!0,i["border-image-outset"]=!0,i["border-image-repeat"]=!0,i["border-image-slice"]=!0,i["border-image-source"]=!0,i["border-image-width"]=!0,i["border-left"]=!0,i["border-left-color"]=!0,i["border-left-style"]=!0,i["border-left-width"]=!0,i["border-radius"]=!0,i["border-right"]=!0,i["border-right-color"]=!0,i["border-right-style"]=!0,i["border-right-width"]=!0,i["border-spacing"]=!0,i["border-style"]=!0,i["border-top"]=!0,i["border-top-color"]=!0,i["border-top-left-radius"]=!0,i["border-top-right-radius"]=!0,i["border-top-style"]=!0,i["border-top-width"]=!0,i["border-width"]=!0,i.bottom=!1,i["box-decoration-break"]=!0,i["box-shadow"]=!0,i["box-sizing"]=!0,i["box-snap"]=!0,i["box-suppress"]=!0,i["break-after"]=!0,i["break-before"]=!0,i["break-inside"]=!0,i["caption-side"]=!1,i.chains=!1,i.clear=!0,i.clip=!1,i["clip-path"]=!1,i["clip-rule"]=!1,i.color=!0,i["color-interpolation-filters"]=!0,i["column-count"]=!1,i["column-fill"]=!1,i["column-gap"]=!1,i["column-rule"]=!1,i["column-rule-color"]=!1,i["column-rule-style"]=!1,i["column-rule-width"]=!1,i["column-span"]=!1,i["column-width"]=!1,i.columns=!1,i.contain=!1,i.content=!1,i["counter-increment"]=!1,i["counter-reset"]=!1,i["counter-set"]=!1,i.crop=!1,i.cue=!1,i["cue-after"]=!1,i["cue-before"]=!1,i.cursor=!1,i.direction=!1,i.display=!0,i["display-inside"]=!0,i["display-list"]=!0,i["display-outside"]=!0,i["dominant-baseline"]=!1,i.elevation=!1,i["empty-cells"]=!1,i.filter=!1,i.flex=!1,i["flex-basis"]=!1,i["flex-direction"]=!1,i["flex-flow"]=!1,i["flex-grow"]=!1,i["flex-shrink"]=!1,i["flex-wrap"]=!1,i.float=!1,i["float-offset"]=!1,i["flood-color"]=!1,i["flood-opacity"]=!1,i["flow-from"]=!1,i["flow-into"]=!1,i.font=!0,i["font-family"]=!0,i["font-feature-settings"]=!0,i["font-kerning"]=!0,i["font-language-override"]=!0,i["font-size"]=!0,i["font-size-adjust"]=!0,i["font-stretch"]=!0,i["font-style"]=!0,i["font-synthesis"]=!0,i["font-variant"]=!0,i["font-variant-alternates"]=!0,i["font-variant-caps"]=!0,i["font-variant-east-asian"]=!0,i["font-variant-ligatures"]=!0,i["font-variant-numeric"]=!0,i["font-variant-position"]=!0,i["font-weight"]=!0,i.grid=!1,i["grid-area"]=!1,i["grid-auto-columns"]=!1,i["grid-auto-flow"]=!1,i["grid-auto-rows"]=!1,i["grid-column"]=!1,i["grid-column-end"]=!1,i["grid-column-start"]=!1,i["grid-row"]=!1,i["grid-row-end"]=!1,i["grid-row-start"]=!1,i["grid-template"]=!1,i["grid-template-areas"]=!1,i["grid-template-columns"]=!1,i["grid-template-rows"]=!1,i["hanging-punctuation"]=!1,i.height=!0,i.hyphens=!1,i.icon=!1,i["image-orientation"]=!1,i["image-resolution"]=!1,i["ime-mode"]=!1,i["initial-letters"]=!1,i["inline-box-align"]=!1,i["justify-content"]=!1,i["justify-items"]=!1,i["justify-self"]=!1,i.left=!1,i["letter-spacing"]=!0,i["lighting-color"]=!0,i["line-box-contain"]=!1,i["line-break"]=!1,i["line-grid"]=!1,i["line-height"]=!1,i["line-snap"]=!1,i["line-stacking"]=!1,i["line-stacking-ruby"]=!1,i["line-stacking-shift"]=!1,i["line-stacking-strategy"]=!1,i["list-style"]=!0,i["list-style-image"]=!0,i["list-style-position"]=!0,i["list-style-type"]=!0,i.margin=!0,i["margin-bottom"]=!0,i["margin-left"]=!0,i["margin-right"]=!0,i["margin-top"]=!0,i["marker-offset"]=!1,i["marker-side"]=!1,i.marks=!1,i.mask=!1,i["mask-box"]=!1,i["mask-box-outset"]=!1,i["mask-box-repeat"]=!1,i["mask-box-slice"]=!1,i["mask-box-source"]=!1,i["mask-box-width"]=!1,i["mask-clip"]=!1,i["mask-image"]=!1,i["mask-origin"]=!1,i["mask-position"]=!1,i["mask-repeat"]=!1,i["mask-size"]=!1,i["mask-source-type"]=!1,i["mask-type"]=!1,i["max-height"]=!0,i["max-lines"]=!1,i["max-width"]=!0,i["min-height"]=!0,i["min-width"]=!0,i["move-to"]=!1,i["nav-down"]=!1,i["nav-index"]=!1,i["nav-left"]=!1,i["nav-right"]=!1,i["nav-up"]=!1,i["object-fit"]=!1,i["object-position"]=!1,i.opacity=!1,i.order=!1,i.orphans=!1,i.outline=!1,i["outline-color"]=!1,i["outline-offset"]=!1,i["outline-style"]=!1,i["outline-width"]=!1,i.overflow=!1,i["overflow-wrap"]=!1,i["overflow-x"]=!1,i["overflow-y"]=!1,i.padding=!0,i["padding-bottom"]=!0,i["padding-left"]=!0,i["padding-right"]=!0,i["padding-top"]=!0,i.page=!1,i["page-break-after"]=!1,i["page-break-before"]=!1,i["page-break-inside"]=!1,i["page-policy"]=!1,i.pause=!1,i["pause-after"]=!1,i["pause-before"]=!1,i.perspective=!1,i["perspective-origin"]=!1,i.pitch=!1,i["pitch-range"]=!1,i["play-during"]=!1,i.position=!1,i["presentation-level"]=!1,i.quotes=!1,i["region-fragment"]=!1,i.resize=!1,i.rest=!1,i["rest-after"]=!1,i["rest-before"]=!1,i.richness=!1,i.right=!1,i.rotation=!1,i["rotation-point"]=!1,i["ruby-align"]=!1,i["ruby-merge"]=!1,i["ruby-position"]=!1,i["shape-image-threshold"]=!1,i["shape-outside"]=!1,i["shape-margin"]=!1,i.size=!1,i.speak=!1,i["speak-as"]=!1,i["speak-header"]=!1,i["speak-numeral"]=!1,i["speak-punctuation"]=!1,i["speech-rate"]=!1,i.stress=!1,i["string-set"]=!1,i["tab-size"]=!1,i["table-layout"]=!1,i["text-align"]=!0,i["text-align-last"]=!0,i["text-combine-upright"]=!0,i["text-decoration"]=!0,i["text-decoration-color"]=!0,i["text-decoration-line"]=!0,i["text-decoration-skip"]=!0,i["text-decoration-style"]=!0,i["text-emphasis"]=!0,i["text-emphasis-color"]=!0,i["text-emphasis-position"]=!0,i["text-emphasis-style"]=!0,i["text-height"]=!0,i["text-indent"]=!0,i["text-justify"]=!0,i["text-orientation"]=!0,i["text-overflow"]=!0,i["text-shadow"]=!0,i["text-space-collapse"]=!0,i["text-transform"]=!0,i["text-underline-position"]=!0,i["text-wrap"]=!0,i.top=!1,i.transform=!1,i["transform-origin"]=!1,i["transform-style"]=!1,i.transition=!1,i["transition-delay"]=!1,i["transition-duration"]=!1,i["transition-property"]=!1,i["transition-timing-function"]=!1,i["unicode-bidi"]=!1,i["vertical-align"]=!1,i.visibility=!1,i["voice-balance"]=!1,i["voice-duration"]=!1,i["voice-family"]=!1,i["voice-pitch"]=!1,i["voice-range"]=!1,i["voice-rate"]=!1,i["voice-stress"]=!1,i["voice-volume"]=!1,i.volume=!1,i["white-space"]=!1,i.widows=!1,i.width=!0,i["will-change"]=!1,i["word-break"]=!0,i["word-spacing"]=!0,i["word-wrap"]=!0,i["wrap-flow"]=!1,i["wrap-through"]=!1,i["writing-mode"]=!1,i["z-index"]=!1,i}function vx(i,e,t){}function gx(i,e,t){}var mx=/javascript\s*\:/img;function yx(i,e){return mx.test(e)?"":e}Fn.whiteList=gc(),Fn.getDefaultWhiteList=gc,Fn.onAttr=vx,Fn.onIgnoreAttr=gx,Fn.safeAttrValue=yx;var Px={indexOf:function(i,e){var t,r;if(Array.prototype.indexOf)return i.indexOf(e);for(t=0,r=i.length;t<r;t++)if(i[t]===e)return t;return-1},forEach:function(i,e,t){var r,n;if(Array.prototype.forEach)return i.forEach(e,t);for(r=0,n=i.length;r<n;r++)e.call(t,i[r],r,i)},trim:function(i){return String.prototype.trim?i.trim():i.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(i){return String.prototype.trimRight?i.trimRight():i.replace(/(\s*$)/g,"")}},Ri=Px;function Sx(i,e){i=Ri.trimRight(i),i[i.length-1]!==";"&&(i+=";");var t=i.length,r=!1,n=0,s=0,c="";function l(){if(!r){var v=Ri.trim(i.slice(n,s)),h=v.indexOf(":");if(h!==-1){var y=Ri.trim(v.slice(0,h)),T=Ri.trim(v.slice(h+1));if(y){var O=e(n,c.length,y,T,v);O&&(c+=O+"; ")}}}n=s+1}for(;s<t;s++){var f=i[s];if(f==="/"&&i[s+1]==="*"){var u=i.indexOf("*/",s+2);if(u===-1)break;s=u+1,n=s+1,r=!1}else f==="("?r=!0:f===")"?r=!1:f===";"?r||l():f===`
567
567
  `&&l()}return Ri.trim(c)}var xx=Sx,ms=Fn,Tx=xx;function mc(i){return i==null}function Cx(i){var e={};for(var t in i)e[t]=i[t];return e}function yc(i){i=Cx(i||{}),i.whiteList=i.whiteList||ms.whiteList,i.onAttr=i.onAttr||ms.onAttr,i.onIgnoreAttr=i.onIgnoreAttr||ms.onIgnoreAttr,i.safeAttrValue=i.safeAttrValue||ms.safeAttrValue,this.options=i}yc.prototype.process=function(i){if(i=i||"",i=i.toString(),!i)return"";var e=this,t=e.options,r=t.whiteList,n=t.onAttr,s=t.onIgnoreAttr,c=t.safeAttrValue,l=Tx(i,function(f,u,v,h,y){var T=r[v],O=!1;if(T===!0?O=T:typeof T=="function"?O=T(h):T instanceof RegExp&&(O=T.test(h)),O!==!0&&(O=!1),h=c(v,h),!!h){var I={position:u,sourcePosition:f,source:y,isWhite:O};if(O){var P=n(v,h,I);return mc(P)?v+":"+h:P}else{var P=s(v,h,I);if(!mc(P))return P}}});return l};var Ix=yc;(function(i,e){var t=Fn,r=Ix;function n(c,l){var f=new r(l);return f.process(c)}e=i.exports=n,e.FilterCSS=r;for(var s in t)e[s]=t[s];typeof window<"u"&&(window.filterCSS=i.exports)})(qo,qo.exports);var _o=qo.exports,ta={indexOf:function(i,e){var t,r;if(Array.prototype.indexOf)return i.indexOf(e);for(t=0,r=i.length;t<r;t++)if(i[t]===e)return t;return-1},forEach:function(i,e,t){var r,n;if(Array.prototype.forEach)return i.forEach(e,t);for(r=0,n=i.length;r<n;r++)e.call(t,i[r],r,i)},trim:function(i){return String.prototype.trim?i.trim():i.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(i){var e=/\s|\n|\t/,t=e.exec(i);return t?t.index:-1}},wx=_o.FilterCSS,Ox=_o.getDefaultWhiteList,ys=ta;function Pc(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var Sc=new wx;function Ax(i,e,t){}function Ex(i,e,t){}function Mx(i,e,t){}function Lx(i,e,t){}function xc(i){return i.replace(bx,"&lt;").replace(Dx,"&gt;")}function Rx(i,e,t,r){if(t=Mc(t),e==="href"||e==="src"){if(t=ys.trim(t),t==="#")return"#";if(!(t.substr(0,7)==="http://"||t.substr(0,8)==="https://"||t.substr(0,7)==="mailto:"||t.substr(0,4)==="tel:"||t.substr(0,11)==="data:image/"||t.substr(0,6)==="ftp://"||t.substr(0,2)==="./"||t.substr(0,3)==="../"||t[0]==="#"||t[0]==="/"))return""}else if(e==="background"){if(Ps.lastIndex=0,Ps.test(t))return""}else if(e==="style"){if(Tc.lastIndex=0,Tc.test(t)||(Cc.lastIndex=0,Cc.test(t)&&(Ps.lastIndex=0,Ps.test(t))))return"";r!==!1&&(r=r||Sc,t=r.process(t))}return t=Lc(t),t}var bx=/</g,Dx=/>/g,Nx=/"/g,Bx=/&quot;/g,Wx=/&#([a-zA-Z0-9]*);?/gim,Fx=/&colon;?/gim,Ux=/&newline;?/gim,Ps=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,Tc=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,Cc=/u\s*r\s*l\s*\(.*/gi;function Ic(i){return i.replace(Nx,"&quot;")}function wc(i){return i.replace(Bx,'"')}function Oc(i){return i.replace(Wx,function(t,r){return r[0]==="x"||r[0]==="X"?String.fromCharCode(parseInt(r.substr(1),16)):String.fromCharCode(parseInt(r,10))})}function Ac(i){return i.replace(Fx,":").replace(Ux," ")}function Ec(i){for(var e="",t=0,r=i.length;t<r;t++)e+=i.charCodeAt(t)<32?" ":i.charAt(t);return ys.trim(e)}function Mc(i){return i=wc(i),i=Oc(i),i=Ac(i),i=Ec(i),i}function Lc(i){return i=Ic(i),i=xc(i),i}function Yx(){return""}function $x(i,e){typeof e!="function"&&(e=function(){});var t=!Array.isArray(i);function r(c){return t?!0:ys.indexOf(i,c)!==-1}var n=[],s=!1;return{onIgnoreTag:function(c,l,f){if(r(c))if(f.isClosing){var u="[/removed]",v=f.position+u.length;return n.push([s!==!1?s:f.position,v]),s=!1,u}else return s||(s=f.position),"[removed]";else return e(c,l,f)},remove:function(c){var l="",f=0;return ys.forEach(n,function(u){l+=c.slice(f,u[0]),f=u[1]}),l+=c.slice(f),l}}}function Xx(i){for(var e="",t=0;t<i.length;){var r=i.indexOf("<!--",t);if(r===-1){e+=i.slice(t);break}e+=i.slice(t,r);var n=i.indexOf("-->",r);if(n===-1)break;t=n+3}return e}function zx(i){var e=i.split("");return e=e.filter(function(t){var r=t.charCodeAt(0);return r===127?!1:r<=31?r===10||r===13:!0}),e.join("")}Ge.whiteList=Pc(),Ge.getDefaultWhiteList=Pc,Ge.onTag=Ax,Ge.onIgnoreTag=Ex,Ge.onTagAttr=Mx,Ge.onIgnoreTagAttr=Lx,Ge.safeAttrValue=Rx,Ge.escapeHtml=xc,Ge.escapeQuote=Ic,Ge.unescapeQuote=wc,Ge.escapeHtmlEntities=Oc,Ge.escapeDangerHtml5Entities=Ac,Ge.clearNonPrintableCharacter=Ec,Ge.friendlyAttrValue=Mc,Ge.escapeAttrValue=Lc,Ge.onIgnoreTagStripAll=Yx,Ge.StripTagBody=$x,Ge.stripCommentTag=Xx,Ge.stripBlankChar=zx,Ge.attributeWrapSign='"',Ge.cssFilter=Sc,Ge.getDefaultCSSWhiteList=Ox;var Ss={},Pn=ta;function jx(i){var e=Pn.spaceIndex(i),t;return e===-1?t=i.slice(1,-1):t=i.slice(1,e+1),t=Pn.trim(t).toLowerCase(),t.slice(0,1)==="/"&&(t=t.slice(1)),t.slice(-1)==="/"&&(t=t.slice(0,-1)),t}function Gx(i){return i.slice(0,2)==="</"}function kx(i,e,t){var r="",n=0,s=!1,c=!1,l=0,f=i.length,u="",v="";t:for(l=0;l<f;l++){var h=i.charAt(l);if(s===!1){if(h==="<"){s=l;continue}}else if(c===!1){if(h==="<"){r+=t(i.slice(n,l)),s=l,n=l;continue}if(h===">"||l===f-1){r+=t(i.slice(n,s)),v=i.slice(s,l+1),u=jx(v),r+=e(s,r.length,u,v,Gx(v)),n=l+1,s=!1;continue}if(h==='"'||h==="'")for(var y=1,T=i.charAt(l-y);T.trim()===""||T==="=";){if(T==="="){c=h;continue t}T=i.charAt(l-++y)}}else if(h===c){c=!1;continue}}return n<f&&(r+=t(i.substr(n))),r}var Hx=/[^a-zA-Z0-9\\_:.-]/gim;function Vx(i,e){var t=0,r=0,n=[],s=!1,c=i.length;function l(y,T){if(y=Pn.trim(y),y=y.replace(Hx,"").toLowerCase(),!(y.length<1)){var O=e(y,T||"");O&&n.push(O)}}for(var f=0;f<c;f++){var u=i.charAt(f),v,h;if(s===!1&&u==="="){s=i.slice(t,f),t=f+1,r=i.charAt(t)==='"'||i.charAt(t)==="'"?t:Zx(i,f+1);continue}if(s!==!1&&f===r){if(h=i.indexOf(u,f+1),h===-1)break;v=Pn.trim(i.slice(r+1,h)),l(s,v),s=!1,f=h,t=f+1;continue}if(/\s|\n|\t/.test(u))if(i=i.replace(/\s|\n|\t/g," "),s===!1)if(h=Kx(i,f),h===-1){v=Pn.trim(i.slice(t,f)),l(v),s=!1,t=f+1;continue}else{f=h-1;continue}else if(h=Jx(i,f-1),h===-1){v=Pn.trim(i.slice(t,f)),v=Rc(v),l(s,v),s=!1,t=f+1;continue}else continue}return t<i.length&&(s===!1?l(i.slice(t)):l(s,Rc(Pn.trim(i.slice(t))))),Pn.trim(n.join(" "))}function Kx(i,e){for(;e<i.length;e++){var t=i[e];if(t!==" ")return t==="="?e:-1}}function Zx(i,e){for(;e<i.length;e++){var t=i[e];if(t!==" ")return t==="'"||t==='"'?e:-1}}function Jx(i,e){for(;e>0;e--){var t=i[e];if(t!==" ")return t==="="?e:-1}}function Qx(i){return i[0]==='"'&&i[i.length-1]==='"'||i[0]==="'"&&i[i.length-1]==="'"}function Rc(i){return Qx(i)?i.substr(1,i.length-2):i}Ss.parseTag=kx,Ss.parseAttr=Vx;var qx=_o.FilterCSS,br=Ge,bc=Ss,_x=bc.parseTag,tT=bc.parseAttr,xs=ta;function Ts(i){return i==null}function eT(i){var e=xs.spaceIndex(i);if(e===-1)return{html:"",closing:i[i.length-2]==="/"};i=xs.trim(i.slice(e+1,-1));var t=i[i.length-1]==="/";return t&&(i=xs.trim(i.slice(0,-1))),{html:i,closing:t}}function rT(i){var e={};for(var t in i)e[t]=i[t];return e}function nT(i){var e={};for(var t in i)Array.isArray(i[t])?e[t.toLowerCase()]=i[t].map(function(r){return r.toLowerCase()}):e[t.toLowerCase()]=i[t];return e}function Dc(i){i=rT(i||{}),i.stripIgnoreTag&&(i.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),i.onIgnoreTag=br.onIgnoreTagStripAll),i.whiteList||i.allowList?i.whiteList=nT(i.whiteList||i.allowList):i.whiteList=br.whiteList,this.attributeWrapSign=i.singleQuotedAttributeValue===!0?"'":br.attributeWrapSign,i.onTag=i.onTag||br.onTag,i.onTagAttr=i.onTagAttr||br.onTagAttr,i.onIgnoreTag=i.onIgnoreTag||br.onIgnoreTag,i.onIgnoreTagAttr=i.onIgnoreTagAttr||br.onIgnoreTagAttr,i.safeAttrValue=i.safeAttrValue||br.safeAttrValue,i.escapeHtml=i.escapeHtml||br.escapeHtml,this.options=i,i.css===!1?this.cssFilter=!1:(i.css=i.css||{},this.cssFilter=new qx(i.css))}Dc.prototype.process=function(i){if(i=i||"",i=i.toString(),!i)return"";var e=this,t=e.options,r=t.whiteList,n=t.onTag,s=t.onIgnoreTag,c=t.onTagAttr,l=t.onIgnoreTagAttr,f=t.safeAttrValue,u=t.escapeHtml,v=e.attributeWrapSign,h=e.cssFilter;t.stripBlankChar&&(i=br.stripBlankChar(i)),t.allowCommentTag||(i=br.stripCommentTag(i));var y=!1;t.stripIgnoreTagBody&&(y=br.StripTagBody(t.stripIgnoreTagBody,s),s=y.onIgnoreTag);var T=_x(i,function(O,I,P,w,d){var m={sourcePosition:O,position:I,isClosing:d,isWhite:Object.prototype.hasOwnProperty.call(r,P)},p=n(P,w,m);if(!Ts(p))return p;if(m.isWhite){if(m.isClosing)return"</"+P+">";var S=eT(w),E=r[P],R=tT(S.html,function(D,U){var M=xs.indexOf(E,D)!==-1,W=c(P,D,U,M);return Ts(W)?M?(U=f(P,D,U,h),U?D+"="+v+U+v:D):(W=l(P,D,U,M),Ts(W)?void 0:W):W});return w="<"+P,R&&(w+=" "+R),S.closing&&(w+=" /"),w+=">",w}else return p=s(P,w,m),Ts(p)?u(w):p},u);return y&&(T=y.remove(T)),T};var iT=Dc;(function(i,e){var t=Ge,r=Ss,n=iT;function s(l,f){var u=new n(f);return u.process(l)}e=i.exports=s,e.filterXSS=s,e.FilterXSS=n,function(){for(var l in t)e[l]=t[l];for(var f in r)e[f]=r[f]}(),typeof window<"u"&&(window.filterXSS=i.exports);function c(){return typeof self<"u"&&typeof DedicatedWorkerGlobalScope<"u"&&self instanceof DedicatedWorkerGlobalScope}c()&&(self.filterXSS=i.exports)})(vc,vc.exports);var Cs={exports:{}};/**
568
568
  * @license
569
569
  * Lodash <https://lodash.com/>