flo-mat 3.0.13 → 3.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/cp-node/check-clone-eql-calc.spec.ts +58 -0
- package/__tests__/cp-node/compare-cp-nodes-by-value.ts +35 -0
- package/__tests__/cp-node/compare-loops-by-value.ts +40 -0
- package/__tests__/cp-node/compare-poss-by-value.ts +25 -0
- package/__tests__/cp-node/fs/clone.spec.ts +19 -3
- package/__tests__/cp-node/fs/find-first.spec.ts +13 -3
- package/__tests__/cp-node/fs/get-all-between.spec.ts +20 -3
- package/__tests__/cp-node/fs/get-all-on-circle.spec.ts +2 -2
- package/__tests__/cp-node/fs/get-all-on-loop.spec.ts +16 -3
- package/__tests__/cp-node/fs/get-all-vertices.spec.ts +14 -3
- package/__tests__/cp-node/fs/get-children.spec.ts +18 -3
- package/__tests__/cp-node/fs/get-non-terminating-on-circle.spec.ts +14 -3
- package/__tests__/cp-node/fs/get-prong-count.spec.ts +16 -3
- package/__tests__/cp-node/fs/get-real-prong-count.spec.ts +11 -3
- package/__tests__/cp-node/fs/get-terminating-on-circle.spec.ts +20 -3
- package/__tests__/cp-node/fs/is-fully-terminating.spec.ts +16 -3
- package/__tests__/cp-node/fs/is-on-same-circle.spec.ts +20 -3
- package/__tests__/cp-node/fs/is-one-prong.spec.ts +16 -3
- package/__tests__/cp-node/fs/is-sharp.spec.ts +10 -3
- package/__tests__/cp-node/fs/is-single-3-prong.spec.ts +13 -3
- package/__tests__/cp-node/fs/is-special.spec.ts +12 -3
- package/__tests__/cp-node/fs/is-terminating.spec.ts +15 -3
- package/__tests__/cp-node/fs/is-trivial.spec.ts +13 -3
- package/__tests__/cp-node/fs/is-two-prong.spec.ts +11 -3
- package/__tests__/cp-node/fs/is-vertex-special.spec.ts +13 -3
- package/__tests__/cp-node/fs/is-vertex.spec.ts +14 -3
- package/__tests__/cp-node/fs/iterate-all-on-loop.spec.ts +13 -3
- package/__tests__/cp-node/fs/traverse-all-forward.spec.ts +10 -3
- package/__tests__/cp-node/fs/traverse-cp.spec.ts +9 -3
- package/__tests__/cp-node/fs/traverse-edges.spec.ts +13 -3
- package/__tests__/cp-node/fs/traverse-vertices.spec.ts +12 -3
- package/__tests__/cp-node/random-walk.ts +33 -0
- package/__tests__/cp-node/stringification/from-stringifyable.spec.ts +3 -0
- package/__tests__/cp-node/stringification/loop-from-stringifyable.spec.ts +4 -0
- package/__tests__/cp-node/stringification/loop-to-stringifyable.spec.ts +19 -0
- package/__tests__/cp-node/stringification/to-stringifyable.spec.ts +34 -0
- package/__tests__/get-mats1.ts +125 -0
- package/__tests__/jsog/check-jsog-eql-calc.spec.ts +47 -67
- package/__tests__/jsog/decode-jsog.ts +88 -85
- package/__tests__/jsog/mat-dummy-1.ts +19 -0
- package/__tests__/jsog/mat-dummys.ts +6197 -6195
- package/__tests__/jsog/to-jsog-breath-first.ts +110 -107
- package/__tests__/jsog/to-jsog-depth-first.ts +58 -55
- package/browser/index.js +7002 -6298
- package/browser/index.min.js +1 -1
- package/jest.config.cjs +1 -0
- package/node/closest-boundary-point/foot-and-endpoint-info.d.ts +1 -1
- package/node/closest-boundary-point/get-close-boundary-points-certified.d.ts +3 -3
- package/node/closest-boundary-point/get-close-boundary-points-certified.js +1 -1
- package/node/closest-boundary-point/get-close-boundary-points-certified.js.map +1 -1
- package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.d.ts +2 -2
- package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js +7 -7
- package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js.map +1 -1
- package/node/cp-node/cp-node.d.ts +2 -2
- package/node/cp-node/fs/clone.d.ts +1 -1
- package/node/cp-node/fs/clone.js +17 -13
- package/node/cp-node/fs/clone.js.map +1 -1
- package/node/cp-node/fs/enhance-cp-node.d.ts +2 -2
- package/node/cp-node/fs/find-first.d.ts +9 -2
- package/node/cp-node/fs/find-first.js +12 -9
- package/node/cp-node/fs/find-first.js.map +1 -1
- package/node/cp-node/fs/get-all-on-loop.js +5 -6
- package/node/cp-node/fs/get-all-on-loop.js.map +1 -1
- package/node/cp-node/fs/get-edge-direction.d.ts +1 -1
- package/node/cp-node/fs/get-edge-direction.js.map +1 -1
- package/node/cp-node/fs/is-on-same-circle.d.ts +1 -0
- package/node/cp-node/fs/is-on-same-circle.js +1 -0
- package/node/cp-node/fs/is-on-same-circle.js.map +1 -1
- package/node/debug/functions/draw-elem/draw-dull-corner.d.ts +1 -1
- package/node/debug/functions/draw-elem/draw-dull-corner.js +1 -1
- package/node/debug/functions/draw-elem/draw-dull-corner.js.map +1 -1
- package/node/debug/functions/draw-elem/draw-sharp-corner.d.ts +1 -1
- package/node/debug/functions/draw-elem/draw-sharp-corner.js +2 -1
- package/node/debug/functions/draw-elem/draw-sharp-corner.js.map +1 -1
- package/node/find-mat/find-mats.js +7 -2
- package/node/find-mat/find-mats.js.map +1 -1
- package/node/find-mat/get-meta.d.ts +4 -4
- package/node/find-mat/get-meta.js +1 -1
- package/node/find-mat/get-meta.js.map +1 -1
- package/node/geometry/circle.d.ts +4 -3
- package/node/geometry/circle.js +0 -7
- package/node/geometry/circle.js.map +1 -1
- package/node/index.d.ts +2 -2
- package/node/index.js +1 -0
- package/node/index.js.map +1 -1
- package/node/mat/curve-piece.d.ts +3 -3
- package/node/mat/get-boundary-piece-beziers.d.ts +2 -2
- package/node/mat/mat-meta.d.ts +4 -4
- package/node/mat/simplify-mat.d.ts +10 -8
- package/node/mat/simplify-mat.js +12 -10
- package/node/mat/simplify-mat.js.map +1 -1
- package/node/point-on-shape/create-pos.d.ts +2 -2
- package/node/point-on-shape/create-pos.js.map +1 -1
- package/node/point-on-shape/point-on-shape.d.ts +6 -6
- package/node/svg/get-loop-bounds.d.ts +2 -2
- package/node/svg/get-loop-bounds.js +1 -1
- package/node/svg/get-loop-bounds.js.map +1 -1
- package/package.json +10 -10
- package/src/closest-boundary-point/foot-and-endpoint-info.ts +1 -1
- package/src/closest-boundary-point/get-close-boundary-points-certified.ts +5 -5
- package/src/closest-boundary-point/get-potential-closest-points-on-curve-certified.ts +9 -9
- package/src/cp-node/cp-node.ts +8 -3
- package/src/cp-node/fs/add-distance-from.ts +37 -37
- package/src/cp-node/fs/clone.ts +23 -17
- package/src/cp-node/fs/find-first.ts +14 -11
- package/src/cp-node/fs/get-all-on-loop.ts +5 -6
- package/src/cp-node/fs/get-boundary-bezier-parts-to-next.ts +1 -1
- package/src/cp-node/fs/get-edge-direction.ts +3 -5
- package/src/cp-node/fs/is-on-same-circle.ts +1 -0
- package/src/cp-node/stringification/cp-node-stringifyable.ts +68 -0
- package/src/cp-node/stringification/from-stringifyable.ts +57 -0
- package/src/cp-node/stringification/loop-from-stringifyable.ts +15 -0
- package/src/cp-node/stringification/loop-stringifyable.ts +8 -0
- package/src/cp-node/stringification/loop-to-stringifyable.ts +14 -0
- package/src/cp-node/stringification/to-stringifyable.ts +71 -0
- package/src/curve/curve.ts +31 -33
- package/src/debug/functions/draw-elem/draw-dull-corner.ts +2 -2
- package/src/debug/functions/draw-elem/draw-sharp-corner.ts +4 -3
- package/src/find-mat/find-mats.ts +8 -2
- package/src/find-mat/get-meta.ts +7 -6
- package/src/geometry/circle.ts +5 -12
- package/src/index.ts +3 -4
- package/src/mat/curve-piece.ts +3 -3
- package/src/mat/get-boundary-piece-beziers.ts +3 -3
- package/src/mat/mat-meta.ts +4 -4
- package/src/mat/simplify-mat-map-only.ts +110 -110
- package/src/mat/simplify-mat.ts +15 -13
- package/src/point-on-shape/create-pos.ts +3 -3
- package/src/point-on-shape/point-on-shape.ts +6 -6
- package/src/svg/get-loop-bounds.ts +4 -5
- package/__tests__/cp-node/fs/add-distance-from.spec.ts +0 -7
- package/__tests__/cp-node/fs/cp-nodes-to-boundary-beziers.spec.ts +0 -7
- package/__tests__/cp-node/fs/create-cp-node.spec.ts +0 -7
- package/__tests__/cp-node/fs/enhance-cp-node.spec.ts +0 -7
- package/__tests__/jsog/get-mats1.ts +0 -41
- package/node/curve/curve.d.ts +0 -33
- package/node/curve/curve.js +0 -2
- package/node/curve/curve.js.map +0 -1
package/browser/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function t(t=[],e){const r=[],o={beziers:t,curves:r,idx:e};if(0===t.length)return o;let i,c=0;for(let e=0;e<t.length;e++){if(n(t[e]))continue;const s={loop:o,ps:t[e],prev:i,next:void 0,idx:c};i&&(i.next=s),i=s,r.push(s),c++}const s=r[r.length-1];return r[0].prev=s,s.next=r[0],s.ps[s.ps.length-1]=r[0].ps[0],o}function n(t){return 2===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]:3===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]:t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]&&t[2][1]===t[3][1]&&t[2][1]===t[3][1]}function e(t){const n=[];for(let e=0;e<t.length;e++){const r=t[e];0===e&&n.push("M "+r[0][0].toString()+" "+r[0][1].toString()),4===r.length?n.push("C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" "):3===r.length?n.push("Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "):2===r.length&&n.push("L "+r[1][0].toString()+" "+r[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}class r{initialPoint=void 0;p;vals=void 0;prev2ndCubicControlPoint=void 0;prev2ndQuadraticControlPoint=void 0;constructor(){this.p=[0,0]}}function o(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function i(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const c={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:o};function s(t){let n=0,e=0,r=1,o=0,i=1,c=1;const s=t._currentIndex;t._skipOptionalSpaces();let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex+=1,u+=1):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex+=1,u+=1,i=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex+=1,u+=1;if(u!==l){let n=u-1,r=1;for(;n>=l;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(u<t._endIndex&&"."===t._string[u]){if(t._currentIndex+=1,u+=1,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)r*=10,o+=Number(t._string.charAt(u))/r,t._currentIndex+=1,u+=1}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex+=1,u+=1,"+"===t._string[u]?(t._currentIndex+=1,u+=1):"-"===t._string[u]&&(t._currentIndex+=1,u+=1,c=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex+=1,u+=1}let a=e+o;if(a*=i,n&&(a*=Math.pow(10,c*n)),s===u)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),a}const u={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class f{_string;_currentIndex;_endIndex;_prevCommand;constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=u[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[s(this)]:"M"===r||"L"===r||"T"===r?n=[s(this),s(this)]:"S"===r||"Q"===r?n=[s(this),s(this),s(this),s(this)]:"C"===r?n=[s(this),s(this),s(this),s(this),s(this),s(this)]:"A"===r?n=[s(this),s(this),s(this),this._parseArcFlag(),this._parseArcFlag(),s(this),s(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=u[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function l(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new r,e=[];let s,u=[];for(let r=0;r<t.length;r++){const f=t[r],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...i(n));else{const t=c[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}s=l}else u.length&&("z"!==s&&u.push(o(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,s=l}return u.length>0&&("z"!==s&&u.push(o(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new f(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function a(t,n,e="thin10 red nofill",r=0){if(0===n.length)return[];let o=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];if(e.length<=1)continue;const[,r,i,c]=e;o+=2===e.length?`L ${r[0]} ${r[1]} `:3===e.length?`Q ${r[0]} ${r[1]} ${i[0]} ${i[1]} `:`C ${r[0]} ${r[1]} ${i[0]} ${i[1]} ${c[0]} ${c[1]} `}const i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",o),i.setAttributeNS(null,"class",e),t.appendChild(i),[i]}function p(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][o]=t[r][o];for(let t=0;t<n;t++)for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][t]+e[t][o]<e[r][o]&&(e[r][o]=e[r][t]+e[t][o]);return e}function h(t){const n=t,e=[n];let r=t.next;for(;r!==n;)e.push(r),r=r.next;return e}function d(t){return h(t).filter(t=>t.isHoleClosing)}const v=134217729;function g(t,n){const e=t*n,r=v*t,o=r-(r-t),i=t-o,c=v*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}function m(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r+i,s=c-r,u=e+o,f=u-e,l=r-(c-s)+(i-s)+u,a=c+l,p=e-(u-f)+(o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}function b(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r-i,s=c-r,u=e-o,f=u-e,l=r-(c-s)+(-i-s)+u,a=c+l,p=e-(u-f)+(-o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}const x=g,I=m,w=b,{atan2:_}=Math;function N(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=w(x(i,e),x(o,r))[1],s=I(x(o,e),x(i,r))[1];return _(c,s)}const M=Math.abs,S=[[0,0],[0,0],[0,0]];function E(t,n,e){return 0===n?1===e?{ps:t,_ps:S}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=c-u,d=[[i,c],[-n*p+i,-n*h+c],[a*(p+(f-s))-(2*n*p-i),a*(h+(l-u))-(2*n*h-c)]],v=M(n),g=M(i),m=M(s),b=M(f),x=g+m,I=M(c),w=M(u),_=I+w;return{ps:d,_ps:[[0,0],[v*x+g,v*_+I],[a*(x+(b+m))+(2*v*x+g),a*(_+(M(l)+w))+(2*v*_+I)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=f-s,d=c-u,v=l-u,g=[[a*(p+h)-(2*n*p-i),a*(d+v)-(2*n*d-c)],[n*h+s,n*v+u],[f,l]],m=M(n),b=M(i),x=M(s),I=b+x,w=M(f)+x,_=M(c),N=M(u),S=_+N;return{ps:g,_ps:[[a*(I+w)+(2*m*I+b),a*(S+(M(l)+N))+(2*m*S+_)],[m*w+x,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=i[0],a=i[1],p=n*n,h=e*e,d=n*e,v=c-u,g=v+(l-u),m=s-f,b=m+(a-f),x=p*g-(2*n*v-c),I=d*g-(v*(e+n)-c),w=h*g-(2*e*v-c),_=p*b-(2*n*m-s),N=d*b-(m*(e+n)-s),S=h*b-(2*e*m-s),E=M(n),y=M(e),C=M(d),O=M(c),T=M(u),P=O+T,A=P+M(l)+T,k=M(s),B=M(f),F=k+B,z=F+M(a)+B;return{ps:[[x,_],[I,N],[w,S]],_ps:[[p*A+(2*E*P+O),p*z+(2*E*F+k)],[C*A+(P*(y+E)+O),C*b+(F*(y+E)+k)],[h*A+(2*y*P+O),h*z+(2*y*F+k)]]}}(t,n,e)}const y=Math.abs,C=[[0,0],[0,0],[0,0],[0,0]];function O(t,n,e){return 0===n?1===e?{ps:t,_ps:C}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),b=s-n*(s-f),x=f-n*(f-a),I=b-n*(b-x),w=I-n*(I-(x-n*(x-(a-n*(a-h))))),_=y(n),N=y(c),M=y(u),S=y(l),E=y(p),C=y(s),O=y(f),T=y(a),P=N+_*(N+M),A=M+_*(M+S),k=P+_*(P+A),B=C+_*(C+O),F=O+_*(O+T),z=B+_*(B+F);return{ps:[[c,s],[d,b],[g,I],[m,w]],_ps:[[0,0],[P,B],[k,z],[k+_*(k+(A+_*(A+(S+_*(S+E))))),z+_*(z+(F+_*(F+(T+_*(T+y(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),b=v-n*(v-g),x=m-n*(m-b),I=s-n*(s-f),w=f-n*(f-a),_=a-n*(a-h),N=I-n*(I-w),M=w-n*(w-_),S=N-n*(N-M),E=y(n),C=y(c),O=y(u),T=y(l),P=y(p),A=y(s),k=y(f),B=y(a),F=C+E*(C+O),z=O+E*(O+T),Y=T+E*(T+P),V=F+E*(F+z),L=z+E*(z+Y),$=A+E*(A+k),X=k+E*(k+B),j=B+E*(B+y(h)),q=$+E*($+X),W=X+E*(X+j);return{ps:[[x,S],[b,M],[g,_],[p,h]],_ps:[[V+E*(V+L),q+E*(q+W)],[L,W],[Y,j],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,I=c[0]-s,w=b+x,_=n*b,N=e*b,M=I-3*x,S=u-l,E=p-l,C=c[1]-u,O=S+E,T=n*S,P=e*S,A=C-3*E,k=d*M+(3*n*(n*w-b)+s),B=m*(n*M+2*w)+(h*w+s-(N+2*_)),F=m*(e*M+2*w)+(v*w+s-(2*N+_)),z=g*M+(3*e*(e*w-b)+s),Y=d*A+(3*n*(n*O-S)+u),V=m*(n*A+2*O)+(h*O+u-(P+2*T)),L=m*(e*A+2*O)+(v*O+u-(2*P+T)),$=g*A+(3*e*(e*O-S)+u),X=y(n),j=y(e),q=y(m),W=y(d),H=y(g),D=y(s),Q=y(f),R=D+Q,G=y(a)+Q,U=R+G,Z=X*R,J=j*R,K=y(I)+3*G,tt=y(u),nt=y(l),et=tt+nt,rt=y(p)+nt,ot=et+rt,it=X*et,ct=j*et,st=y(C)+3*rt;return{ps:[[k,Y],[B,V],[F,L],[z,$]],_ps:[[W*K+(3*X*(X*U+R)+D),W*st+(3*X*(X*ot+et)+tt)],[q*(X*K+2*U)+(h*U+D+(J+2*Z)),q*(X*st+2*ot)+(h*ot+tt+(ct+2*it))],[q*(j*K+2*U)+(v*U+D+(2*J+Z)),q*(j*st+2*ot)+(v*ot+tt+(2*ct+it))],[H*K+(3*j*(j*U+R)+D),H*st+(3*j*(j*ot+et)+tt)]]}}(t,n,e)}function T(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function P(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}function A(t,n){const e=t.length,r=n.length;let o=0,i=0;const c=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(c.push(t[o]),o++):(c.push(n[i]),i++):i++:o++;for(;o<e;)c.push(t[o]),o++;for(;i<r;)c.push(n[i]),i++;if(0===c.length)return[0];const s=c.length;if(1===s)return c;const u=[],f=c[1],l=c[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),i=0;for(let t=2;t<s;t++){const n=c[t],e=a+n,r=e-a,o=a-(e-r)+(n-r);0!==o&&u.push(o),a=e}return 0===a&&0!==u.length||u.push(a),u}function k(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const B=k,F=A;function z(t,n){const e=B(n);return F(t,e)}const Y=134217729;function V(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const c=Y*o,s=c-(c-o),u=o-s,f=Y*n,l=f-(f-n),a=n-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=t[o],c=e*n,s=Y*e,u=s-(s-e),f=e-u,l=Y*n,a=l-(l-n),h=n-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}function L(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const c=Y*o,s=c-(c-o),u=o-s,f=Y*t,l=f-(f-t),a=t-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=n[o],c=e*t,s=Y*e,u=s-(s-e),f=e-u,l=Y*t,a=l-(l-t),h=t-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}const $=V,X=A;function j(t,n){let e=[0];for(let r=0;r<t.length;r++)e=X(e,$(n,t[r]));return e}function q(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,c=i-r,s=r-(i-c)+(e-c);0!==s&&o.push(s),r=i}return 0===r&&0!==o.length||o.push(r),o}function W(t){return t[t.length-1]}function H(t,n){return W(z(t,n))}const D=Number.EPSILON/2,Q=D*D;function R(t){const n=t*D;return n/(1-n)}function G(t){const n=t*Q;return n/(1-n)}function U(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function Z(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}R(1),G(3);const J=z,K=W,tt=Z,{abs:nt}=Math;function et(t){const[[n,e],[r,o],[i,c]]=t,s=n+i,u=s-2*r,f=nt(s)+nt(u);if(nt(u)-f>0)return!1;const l=e+c,a=l-2*o,p=nt(l)+nt(a);return!(nt(a)-p>0)&&0===K(J(tt(n,i),[2*r]))&&0===K(J(tt(e,c),[2*o]))}const rt=134217729;function ot(t,n){const e=t*n,r=rt*t,o=r-(r-t),i=t-o,c=rt*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}const it=ot,ct=A,st=W,ut=z,ft=Number.EPSILON/2,lt=Math.abs;function at(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s+3*r,l=n+3*i,a=f-l,p=lt(3*r)+lt(f)+(lt(3*i)+lt(l))+lt(a);if(lt(a)-ft*p>0)return!1;const h=u+3*o,d=e+3*c,v=h-d,g=lt(3*o)+lt(h)+(lt(3*c)+lt(d))+lt(v);return!(lt(v)-ft*g>0)&&0===st(ut(ct([s],it(3,r)),ct([n],it(3,i))))&&0===st(ut(ct([u],it(3,o)),ct([e],it(3,c))))}function pt(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function ht(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function dt(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const c=i-(r-e);c&&(n[--o]=r,r=c)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const c=o-(r-e);c&&(n[i++]=c)}return n[i++]=r,n.length=i,n}function vt(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let c;if(r>0){if(o<=0)return i;c=r+o}else{if(!(r<0))return i;if(o>=0)return i;c=-r-o}return Math.abs(i)>=3330669073875472e-31*c?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],c=t[1]-e[1],s=n[1]-e[1],u=z(ot(o,s),ot(c,i));let f=pt(u);if(Math.abs(f)>=2220446049250315e-31*r)return f;const l=ht(t[0],e[0])[0],a=ht(n[0],e[0])[0],p=ht(t[1],e[1])[0],h=ht(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*r+3330669073875471e-31*Math.abs(f);if(f+=o*h+s*l-(c*a+i*p),Math.abs(f)>=d)return f;const v=A(u,z(ot(l,s),ot(p,i))),g=A(v,z(ot(o,h),ot(c,a)));let m=A(g,z(ot(l,h),ot(p,a)));return m=dt(m),m[m.length-1]}(t,n,e,c)}const gt=vt;function mt(t){if(4===t.length)return 0===gt(t[0],t[1],t[2])&&0===gt(t[1],t[2],t[3])&&0===gt(t[0],t[2],t[3]);if(3===t.length)return 0===gt(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}const bt=V,xt=z,It=Z,wt=W,_t=Math.abs;const Nt=Math.abs,Mt=R(1);function St(t){const{coeffs:[[n,e,r],[o,i,c]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s-n,l=r-i,a=f+3*l,p=i+n,h=p-2*r,d=r-n,v=u-e,g=o-c,m=v+3*g,b=c+e,x=b-2*o,I=o-e;return{coeffs:[[a,3*h,3*d,n],[m,3*x,3*I,e]],errorBound:[[_t(f)+6*_t(l)+_t(a),6*(_t(p)+_t(h)),6*_t(d),0],[_t(v)+6*_t(g)+_t(m),6*(_t(b)+_t(x)),6*_t(I),0]]}}(t),a=Nt(n),p=Nt(e),h=Nt(r),d=Nt(o),v=Nt(i),g=Nt(c),m=e*o,b=n*i,x=n*c,I=r*o,w=e*c,_=r*i,N=u*d+p*f+Nt(m),M=s*v+a*l+Nt(b),S=s*g+Nt(x),E=h*f+Nt(I),y=u*g+Nt(w),C=h*l+Nt(_),O=m-b,T=Nt(O),P=N+M+T,A=I-x,k=Nt(A),B=E+S+k,F=w-_,z=Nt(F),Y=y+C+z,V=O*O,L=O*A,$=F*O,X=A*A,j=$+X;return{coeffs:[V,L,j],errBound:[2*P*T+Nt(V),P*k+T*B+Nt(L),Y*T+z*P+Nt($)+(2*k*B+Nt(X))+Nt(j)].map(t=>Mt*t)}}const Et=ht,yt=Z,Ct=L,Ot=q,Tt=A;function Pt(t){if(4===t.length)return At(t);if(3===t.length)return kt(t);if(2===t.length)return Bt(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function At(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Tt(Et(s,n),Ct(3,Et(r,i))),Ct(3,Ot(yt(i,n),-2*r)),Ct(3,Et(r,n)),[n]],[Tt(Et(u,e),Ct(3,Et(o,c))),Ct(3,Ot(yt(c,e),-2*o)),Ct(3,Et(o,e)),[e]]]}function kt(t){const[[n,e],[r,o],[i,c]]=t;return[[Ot(yt(i,n),-2*r),Et(2*r,2*n),[n]],[Ot(yt(c,e),-2*o),Et(2*o,2*e),[e]]]}function Bt(t){const[[n,e],[r,o]]=t;return[[Et(r,n),[n]],[Et(o,e),[e]]]}const Ft=j,zt=A,Yt=z;function Vt(t){const[[n,e,r],[o,i,c]]=At(t),s=Ft(e,o),u=Ft(n,i),f=Ft(n,c),l=Ft(r,o),a=Ft(e,c),p=Ft(r,i),h=Yt(s,u),d=Yt(l,f),v=Yt(a,p),g=Ft(h,h),m=Ft(h,d),b=Ft(h,v),x=Ft(d,d);return[g,m,zt(b,x)]}const Lt=W,$t=H,Xt=z,jt=j,qt=L,Wt=T,Ht=P,Dt=A,Qt=q,Rt=Math.abs,Gt=R(1),Ut={order:0,realOrder:0,collinear:!0,nodeType:"n/a"},Zt={order:1,realOrder:1,collinear:!0,nodeType:"n/a"},Jt={order:1,realOrder:0,collinear:!0,nodeType:"n/a"},Kt={order:2,realOrder:2,collinear:!1,nodeType:"n/a"},tn={order:2,realOrder:2,collinear:!0,nodeType:"n/a"},nn={order:2,realOrder:1,collinear:!0,nodeType:"n/a"},en={order:2,realOrder:0,collinear:!0,nodeType:"n/a"},rn={order:3,realOrder:3,collinear:!1,nodeType:"crunode"},on={order:3,realOrder:3,collinear:!1,nodeType:"acnode"},cn={order:3,realOrder:3,collinear:!1,nodeType:"cusp"},sn={order:3,realOrder:3,collinear:!1,nodeType:"explicit"},un={order:3,realOrder:3,collinear:!0,nodeType:"n/a"},fn={order:3,realOrder:2,collinear:!1,nodeType:"n/a"},ln={order:3,realOrder:2,collinear:!0,nodeType:"n/a"},an={order:3,realOrder:1,collinear:!0,nodeType:"n/a"},pn={order:3,realOrder:0,collinear:!0,nodeType:"n/a"};function hn(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push((e-r)*t[r]);return n}function dn(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}const vn=dn,gn=Number.EPSILON/2,mn=Math.abs,bn=Math.max;function xn(t){const n=[];for(let e=0;e<t.length;e++)n.push(-t[e]);return n}const In=xn,wn=function(t){return n=>1/t(function(t){return t.slice().reverse()}(n))};function _n(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=In(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=Number.POSITIVE_INFINITY,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const c=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>c&&(n=c),i=!0}i&&r<n&&(r=n)}return r}wn(_n);const Nn=(Mn=_n,t=>-Mn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t)));var Mn;function Sn(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}wn(Nn);const En=hn,yn=dn,Cn=function(t,n,e,r=vn(t,n),o=vn(t,e)){let i=n,c=e,s=i,u=r,f=c-i,l=f;for(;;){mn(u)<mn(o)&&(i=c,c=s,s=i,r=o,o=u,u=r);const n=2*gn*bn(1,mn(i),mn(c)),e=.5*(s-c);if(mn(e)<=n)return c;if(mn(f)<n||mn(r)<=mn(o))f=e,l=f;else{let t,a,p=o/r;if(i===s)t=2*e*p,a=1-p;else{a=r/u;const n=o/u;t=p*(2*e*a*(a-n)-(c-i)*(n-1)),a=(a-1)*(n-1)*(p-1)}0<t?a=-a:t=-t,p=f,f=l,2*t<3*e*a-mn(n*a)&&t<mn(.5*p*a)?l=t/a:(f=e,l=f)}if(i=c,r=o,n<mn(l)?c+=l:0<e?c+=n:c-=n,0===(o=vn(t,c)))return c;o*u>0&&(s=i,u=r,f=c-i,l=f)}},On=Nn,Tn=_n,Pn=Sn;function An(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY){t=Pn(t);let r=0;for(;0===t[t.length-1];)t=t.slice(0,-1),r++;if(t.length<=1){const t=[];for(let n=0;n<r;n++)t.push(0);return t}n===Number.NEGATIVE_INFINITY&&(n=On(t)),e===Number.POSITIVE_INFINITY&&(e=Tn(t));const o=[t];for(let n=1;n<=t.length-1;n++)o.push(En(o[n-1]));let i=[];for(let r=t.length-2;r>=0;r--){const t=o[r],c=[];let s=n,u=yn(t,s);0===u&&0===r&&c.push(n);for(let n=0;n<i.length;n++){const e=i[n],r=yn(t,e);0===r?c.push(e):u*r<0&&c.push(Cn(t,s,e,u,r)),s=e,u=r}const f=yn(t,e);u*f<0&&c.push(Cn(t,s,e,u,f)),0===f&&0===r&&c.push(e),i=c}if(r>0&&n<=0&&e>=0){const t=[];let n=!1;for(let e=0;e<i.length;e++){if(!n&&i[e]>=0){for(let n=0;n<r;n++)t.push(0);n=!0}t.push(i[e])}if(!n)for(let n=0;n<r;n++)t.push(0);return t}return i}function kn(t){if(t.length<4)return[];const[[n,e],[r,o],[i,c],[s,u]]=t,f=r-n,l=o-e,a=i-r-f,p=c-o-l,h=s-i-f-2*a,d=u-c-l-2*p;return An([a*d-p*h,f*d-l*h,f*p-l*a],0,1)}const{abs:Bn,PI:Fn}=Math;function zn(t,n=[0,1]){if(t.length<=2)return 0;const[e,r]=n;if(e===r)return 0;if(3===t.length){const n=E(t,e,r).ps,[[o,i],[c,s],[u,f]]=n;return N([c-o,s-i],[u-c,f-s])}if(4===t.length){const n=O(t,e,r).ps,o=function(t){if(4===t.length)return at(t)?function(t){if(!mt(t))return!1;const[n,e,r,o]=t,[i,c]=n,[s,u]=e,[f,l]=r,[a,p]=o,h=xt(bt(It(s/4,f/4),3),It(i/4,a/4)),d=xt(bt(It(u/4,l/4),3),It(c/4,p/4));return 0===wt(xt(It(i/2,a/2),h))&&0===wt(xt(It(c/2,p/2),d))}(t)?U(t)?pn:an:mt(t)?ln:fn:mt(t)?un:function(t){const{coeffs:[n,e,r],errBound:[o,i,c]}=St(t);if(Rt(n)<=o){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Dt(Wt(s,n),qt(3,Wt(r,i))),l=Qt(Ht(i,n),-2*r),a=Dt(Wt(u,e),qt(3,Wt(o,c))),p=Qt(Ht(c,e),-2*o),h=jt(l,a),d=jt(f,p);if(0===$t(h,d))return sn}const s=e*e,u=4*n*r,f=s-u,l=2*i*Rt(e)+Gt*s+(4*(o*Rt(r)+Rt(n)*c)+Gt*Rt(u))+Gt*Rt(f);if(f<-l)return on;if(f>l)return rn;const[a,p,h]=Vt(t),d=Xt(jt(p,p),qt(4,jt(a,h))),v=Lt(d);return v<0?on:v>0?rn:cn}(t);if(3===t.length)return mt(t)?et(t)?U(t)?en:nn:tn:Kt;if(2===t.length)return U(t)?Jt:Zt;if(1===t.length)return Ut;throw new Error("The given bezier curve must be of order <= 3")}(n),[[i,c],[s,u],[f,l],[a,p]]=n,h=[s-i,u-c],d=[f-s,l-u],v=[a-f,p-l];if(0===d[0]&&0===d[1]||o.realOrder<=2)return N(h,v);const g=N(h,d)+N(d,v);return"acnode"===o.nodeType||"cusp"===o.nodeType?g<=-Fn?g+2*Fn:g>=+Fn?g-2*Fn:g:g}throw new Error("The given bezier curve must be of order <= 3.")}function Yn(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function Vn(t,n){const[e,r]=t,[[o,i],[c,s]]=n;return Yn([o+e*(c-o),i+e*(s-i)],[o+r*(c-o),i+r*(s-i)])}function Ln(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=$n[e],[i,c]=n;let s=0;const u=(c-i)/2,f=(c+i)/2;for(let n=0;n<=e-1;n++)s+=r[n]*t(u*o[n]+f);return u*s}const $n={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function Xn(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[3*(s-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-c)),6*(c+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(c+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function jn(t){const[n,e]=Xn(t);return function(t){const r=dn(n,t),o=dn(e,t);return Math.sqrt(r*r+o*o)}}const{abs:qn}=Math;function Wn(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=qn(N(n[t],n[t+1]));return r}function Hn(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-i[0]))))),m-n*(m-(g-n*(g-(a-n*(a-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=l-n*(l-i[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),b=f-n*(f-a),x=a-n*(a-i[1]),I=m-n*(m-b),w=b-n*(b-x);return[[v-n*(v-g),I-n*(I-w)],[g,w],[d,x],i]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,I=b+x,w=n*b,_=e*b,N=c[0]-s-3*x,M=u-l,S=p-l,E=M+S,y=n*M,C=e*M,O=c[1]-u-3*S;return[[d*N+(3*n*(n*I-b)+s),d*O+(3*n*(n*E-M)+u)],[m*(n*N+2*I)+(h*I+s-(_+2*w)),m*(n*O+2*E)+(h*E+u-(C+2*y))],[m*(e*N+2*I)+(v*I+s-(2*_+w)),m*(e*O+2*E)+(v*E+u-(2*C+y))],[g*N+(3*e*(e*I-b)+s),g*O+(3*e*(e*E-M)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=c-u;return[e,[-n*l+i,-n*a+c],[f*(l+(o[0]-s))-(2*n*l-i),f*(a+(o[1]-u))-(2*n*a-c)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=o[0]-s,p=c-u,h=o[1]-u;return[[f*(l+a)-(2*n*l-i),f*(p+h)-(2*n*p-c)],[n*a+s,n*h+u],o]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=n*n,a=e*e,p=n*e,h=c-u,d=h+(i[0]-u),v=s-f,g=v+(i[1]-f);return[[l*d-(2*n*h-c),l*g-(2*n*v-s)],[p*d-(h*(e+n)-c),p*g-(v*(e+n)-s)],[a*d-(2*e*h-c),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[e,[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[n*(r[0]-o)+o,n*(r[1]-i)+i],r]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1];return[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Dn(t,n=.4,e=2**-16){const r=[0],o=[1];for(;;){const i=r[r.length-1],c=o[o.length-1];if(Wn(Hn(t,i,c))<=n||c-i<=e){if(r.push(o.pop()),1===c)return r;continue}const s=(i+c)/2;o.push(s)}}function Qn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a]]=n;if(c===u&&u===l&&s===f&&f===a)return 0;const p=E(n,o,i).ps,h=Dn(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=Ln(jn(p),[n,e],r)}return d}function Rn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a],[p,h]]=n;if(c===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=O(n,o,i).ps,v=Dn(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=Ln(jn(d),[n,e],r)}return g}function Gn(t,n=.4,e=16){if(4===t.length)return Rn([0,1],t,n,e);if(3===t.length)return Qn([0,1],t,n,e);if(2===t.length)return Vn([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Un(t,n,e){if(void 0===t.size||void 0===e)return;const r=e[n];if(t.size>r&&void 0!==r)for(const[n]of t){t.delete(n);break}}const Zn=[function(t,n){let e,r=!1;return function(){return r||(e=t(),r=!0),e}},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t){return"object"!=typeof t&&"function"!=typeof t||null===t?o:r}const c=function(r){let c;const s=i(r);return s.has(r)?(e&&console.log("cache hit"),c=s.get(r)):(e&&console.log("cache miss"),c=t(r),s.set(r,c),Un(o,0,n)),c};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e){const r=i(e);r.set(e,t),Un(r,1,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o){const i=("object"==typeof o||"function"==typeof o)&&null!==o;let c="object"!=typeof t&&"function"!=typeof t||null===t?r:e,s=c.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},c.set(t,s),Un(c,0,n)),i?s.weakMap:s.map}function i(e,r){const i=o(e,r);let c;return i.has(r)?c=i.get(r):(c=t(e,r),i.set(r,c),Un(i,1,n)),c}return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r){const i=o(e,r);i.set(r,t),Un(i,1,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i){const c=("object"==typeof o||"function"==typeof o)&&null!==o,s=("object"==typeof i||"function"==typeof i)&&null!==i;let u="object"!=typeof t&&"function"!=typeof t||null===t?r:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),Un(u,0,n));const l=c?f.weakMap:f.map;let a=l.get(o);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(o,a),Un(l,1,n)),s?a.weakMap:a.map}const i=function(e,r,i){const c=o(e,r,i);let s;return c.has(i)?s=c.get(i):(s=t(e,r,i),c.set(i,s),Un(c,2,n)),s};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i){const c=o(e,r,i);c.set(i,t),Un(c,2,n)},i},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t,e,i,c){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof i||"function"==typeof i)&&null!==i,f=("object"==typeof c||"function"==typeof c)&&null!==c;let l="object"!=typeof t&&"function"!=typeof t||null===t?o:r,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),Un(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),Un(p,1,n));const d=u?h.weakMap:h.map;let v=d.get(i);return void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(i,v),Un(d,2,n)),f?v.weakMap:v.map}const c=function(r,o,c,s){const u=i(r,o,c,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(r,o,c,s),u.set(s,f),Un(u,3,n)),f};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,r,o,c){const s=i(e,r,o,c);s.set(c,t),Un(s,3,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s){const u=("object"==typeof o||"function"==typeof o)&&null!==o,f=("object"==typeof i||"function"==typeof i)&&null!==i,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?r:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),Un(p,0,n));const d=u?h.weakMap:h.map;let v=d.get(o);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(o,v),Un(d,1,n));const g=f?v.weakMap:v.map;let m=g.get(i);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(i,m),Un(g,2,n));const b=l?m.weakMap:m.map;let x=b.get(c);return void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(c,x),Un(b,3,n)),a?x.weakMap:x.map}const i=function(e,r,i,c,s){const u=o(e,r,i,c,s);let f;return u.has(s)?f=u.get(s):(f=t(e,r,i,c,s),u.set(s,f),Un(u,4,n)),f};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s){const u=o(e,r,i,c,s);u.set(s,t),Un(u,4,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u){const f=("object"==typeof o||"function"==typeof o)&&null!==o,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let d="object"!=typeof t&&"function"!=typeof t||null===t?r:e,v=d.get(t);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(t,v),Un(d,0,n));const g=f?v.weakMap:v.map;let m=g.get(o);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(o,m),Un(g,1,n));const b=l?m.weakMap:m.map;let x=b.get(i);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(i,x),Un(b,2,n));const I=a?x.weakMap:x.map;let w=I.get(c);void 0===w&&(w={weakMap:new WeakMap,map:new Map},I.set(c,w),Un(I,3,n));const _=p?w.weakMap:w.map;let N=_.get(s);return void 0===N&&(N={weakMap:new WeakMap,map:new Map},_.set(s,N),Un(_,4,n)),h?N.weakMap:N.map}const i=function(e,r,i,c,s,u){const f=o(e,r,i,c,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,r,i,c,s,u),f.set(u,l),Un(f,5,n)),l};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u){const f=o(e,r,i,c,s,u);f.set(u,t),Un(f,5,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f){const l=("object"==typeof o||"function"==typeof o)&&null!==o,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,v=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?r:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),Un(g,0,n));const b=l?m.weakMap:m.map;let x=b.get(o);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(o,x),Un(b,1,n));const I=a?x.weakMap:x.map;let w=I.get(i);void 0===w&&(w={weakMap:new WeakMap,map:new Map},I.set(i,w),Un(I,2,n));const _=p?w.weakMap:w.map;let N=_.get(c);void 0===N&&(N={weakMap:new WeakMap,map:new Map},_.set(c,N),Un(_,3,n));const M=h?N.weakMap:N.map;let S=M.get(s);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(s,S),Un(M,4,n));const E=d?S.weakMap:S.map;let y=E.get(u);return void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(u,y),Un(E,5,n)),v?y.weakMap:y.map}const i=function(e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,r,i,c,s,u,f),l.set(f,a),Un(l,6,n)),a};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);l.set(f,t),Un(l,6,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f,l){const a=("object"==typeof o||"function"==typeof o)&&null!==o,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof c||"function"==typeof c)&&null!==c,d=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let b="object"!=typeof t&&"function"!=typeof t||null===t?r:e,x=b.get(t);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(t,x),Un(b,0,n));const I=a?x.weakMap:x.map;let w=I.get(o);void 0===w&&(w={weakMap:new WeakMap,map:new Map},I.set(o,w),Un(I,1,n));const _=p?w.weakMap:w.map;let N=_.get(i);void 0===N&&(N={weakMap:new WeakMap,map:new Map},_.set(i,N),Un(_,2,n));const M=h?N.weakMap:N.map;let S=M.get(c);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(c,S),Un(M,3,n));const E=d?S.weakMap:S.map;let y=E.get(s);void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(s,y),Un(E,4,n));const C=v?y.weakMap:y.map;let O=C.get(u);void 0===O&&(O={weakMap:new WeakMap,map:new Map},C.set(u,O),Un(C,5,n));const T=g?O.weakMap:O.map;let P=T.get(f);return void 0===P&&(P={weakMap:new WeakMap,map:new Map},T.set(f,P),Un(T,6,n)),m?P.weakMap:P.map}const i=function(e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,r,i,c,s,u,f,l),a.set(l,p),Un(a,7,n)),p};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);a.set(l,t),Un(a,7,n)},i}];function Jn(t,n,e=!1){const r=t.length;if(r>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,Zn[r])(t,n,e)}function Kn(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=o-e,a=i-r,p=u-c,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-r)*l-(c-e)*a)/d;return[c+v*p,s+v*h]}function te(t,n){return[n[0]-t[0],n[1]-t[1]]}function ne(t,n){return t[0]*n[0]+t[1]*n[1]}function ee(t){return[-t[1],t[0]]}function re(t,n){return t[0]*n[1]-t[1]*n[0]}function oe(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function ie(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function ce(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function se(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function ue(t,n){const[e,r]=Xn(t);return[dn(e,n),dn(r,n)]}const fe=ht,le=L;function ae(t){if(4===t.length){const[[n,e],[r,o]]=t;return[le(3,fe(r,n)),le(3,fe(o,e))]}if(3===t.length){const[[n,e],[r,o]]=t;return[fe(2*r,2*n),fe(2*o,2*e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[fe(r,n),fe(o,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const pe=Z,he=L,de=q;function ve(t){if(4===t.length){const[[n,e],[r,o],[i,c]]=t;return[he(6,de(pe(i,n),-2*r)),he(6,de(pe(c,e),-2*o))]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[de(pe(2*i,2*n),-4*r),de(pe(2*c,2*e),-4*o)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const ge=ht,me=L,be=A;function xe(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[me(6,be(ge(s,n),me(3,ge(r,i))))],[me(6,be(ge(u,e),me(3,ge(o,c))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:Ie}=Math;function we(t,n){const[e,r]=ae(t),[o,i]=ve(t),[c,s]=ae(n),[u,f]=ve(n),l=z(j(e,i),j(r,o)),a=z(j(c,f),j(s,u)),p=W(l),h=W(a);if(Ie(p)!==Ie(h))return p-h;const d=A(j(c,c),j(s,s)),v=A(j(e,e),j(r,r)),g=j(d,d),m=j(g,d),b=j(v,v),x=j(b,v);if(0!==p||0!==h){const t=j(l,l),n=j(a,a),e=W(z(j(t,m),j(n,x)));if(0!==e)return p>0?e:-e}const[[I],[w]]=xe(t),[[_],[N]]=xe(n),M=z(j(e,w),j(r,I)),S=A(j(e,o),j(r,i)),E=z(j(c,N),j(s,_)),y=A(j(c,u),j(s,f)),C=z(j(v,M),V(j(l,S),3)),O=z(j(d,E),V(j(a,y),3)),T=W(C),P=W(O);if(T!==P)return T-P;if(0===T&&0===P)return 0;const k=j(C,C),B=j(g,m),F=j(O,O),Y=j(b,x),L=W(z(j(k,B),j(F,Y)));return T>0?L:-L}function _e(t,n){return t[0]===n[0]&&t[1]===n[1]}function Ne(t,n){const{ccw:e,tangentI:r,tangentO:o,dotTangents:i}=function(t,n){const e=t.length;let r=t[e-2],o=n[0],i=n[1];_e(r,o)&&(r=t[e-3]),_e(o,i)&&(i=n[2]);const c=function(t,n,e){const r=ht(t[0],e[0]),o=ht(n[1],e[1]),i=ht(t[1],e[1]),c=ht(n[0],e[0]);return pt(A(j(r,o),k(j(i,c))))}(r,o,i),s=[ht(o[0],r[0]),ht(o[1],r[1])],u=[ht(i[0],o[0]),ht(i[1],o[1])],f=function(t,n){return pt(A(j(t[0],n[0]),j(t[1],n[1])))}(s,u);return 0!==c||f>0?{ccw:c,tangentI:s,tangentO:u,dotTangents:f}:{ccw:we(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),c=e<0,s=e>0,u=[ce(r.map(t=>t[1])),ce(o.map(t=>t[1]))],f=re(u[0],u[1]);let l,a;return i>0?(l=f<-.0698,a=f>.0698):(l=c,a=s),{tangents:u,isSharp:c,isDull:s,isQuiteSharp:l,isQuiteDull:a}}function Me(t){return Ne(1===t.t?t.curve.ps:t.curve.prev.ps,1===t.t?t.curve.next.ps:t.curve.ps)}function Se(t){return 0===t.t||1===t.t}const Ee=Jn(t=>!!Se(t)&&Me(t).isSharp);function ye(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,c=o.p,s=i.p;let u;if(Ee(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=ce(ue(t.ps,0)),r=[-(f=ce(ue(n.ps,1)))[0],-f[1]],i=ne(e,r),c=Math.sqrt((1+i)/2);u=se(Math.sqrt((1-i)/2),c,r)}else u=c[0]===s[0]&&c[1]===s[1]?te(c,n):ee(te(c,s));var f;return[n,ie(ce(u),n)]}const Ce=1e-4;function Oe(t,n){const e=t.cp.circle.center,r=ye(t),o=n.cp.circle.center,i=ye(n.prevOnCircle),c=Kn(r,i),s=te(e,o);let u;if(c){const t=te(e,c),n=te(o,c);u=ne(t,s)<0||ne(n,s)>0}else u=!0;if(!u)return[e,c,o];const f=ee(s),l=te(r[0],r[1]),a=te(i[0],i[1]),p=Math.abs(re(s,l))/9,h=Math.abs(re(s,a))/9;if(p>.01||h>.01)return[e,o];if(p>Ce||h>Ce){const t=oe(e,o,1/3),n=oe(e,o,2/3),c=ie(f,t),s=[n,ie(f,n)];return[e,Kn(r,[t,c]),Kn(i,s),o]}return[e,o]}function Te(t){return Oe(t,t.next)}const Pe=Jn(Te);function Ae(t,n=!1){const e=t,r=n?[]:[t];let o=t.nextOnCircle;for(;o!==e;)r.push(o),o=o.nextOnCircle;return r}function ke(t){return t===t.next.prevOnCircle}function Be(t){return Ae(t).filter(t=>!ke(t)).length}function Fe(t){if(2!==Be(t))return 0;const{radius:n}=t.cp.circle,e=Te(t),r=function(t,n=[0,1]){if(t.length<=3)return Bn(zn(t,n));if(4===t.length){const[e,r]=n;if(e===r)return 0;const o=O(t,e,r).ps,i=[0,...kn(o),1];let c=0;for(let t=0;t<i.length-1;t++)c+=Bn(zn(o,[i[t],i[t+1]]));return c}throw new Error("The given bezier curve must be of order <= 3.")}(e,[0,1]);return 0!==Gn(e)?r*n:void 0}Jn(Fe);const ze=Jn(zn),Ye=Jn(Gn);function Ve(t){return Ae(t.prevOnCircle,!0).every(ke)}const Le=function(){const t=new Map;return function(n){let e=t.get(n);return void 0!==e||(r=n,e=Jn(function(t){let n=t,e=0,o=0,i=n.prev,c=n,s=0,u=0,f=0,l=0;for(;l<r/2/40&&c!==n.prev&&!Ve(c)&&Be(c)<=2;){const{radius:t}=c.cp.circle,n=Pe(c),e=ze(n);let r=0;const i=Ye(Pe(c));u+=t*(e+r),o+=i,l+=i/t,c=c.next}for(;f<r/2/40&&i!==n&&!Ve(i)&&Be(i)<=2;){const{radius:t}=i.cp.circle,n=Pe(i),r=ze(n);let o=0;const c=Ye(Pe(i));s+=t*(r+o),e+=c,f+=c/t,i=i.prev}const a=e+o;if(0!==a)return-(s+u)/a}),t.set(n,e)),e;var r}}();function $e(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function Xe(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function je(t){return 0===t.cp.circle.radius}function qe(t){const n=t.cp.pointOnShape.curve;return{...t,pos:t.cp.pointOnShape,p:t.cp.pointOnShape.p,t:t.cp.pointOnShape.t,isTerminating:ke(t),isFullyTerminating:Ve(t),isSharp:je(t),prongCount:Xe(t),getRealProngCount:Be(t),ordering:$e(t),curve:n,loop:n.loop}}function We(t){let n=t;if(ke(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function He(t,n){const e=h(t),r=new Set;for(t of e)ke(t)||r.has(t.next.prevOnCircle)||n(t),r.add(t)}function De(t){const n=[],e=t;let r=e;for(;r!==e.prevOnCircle;)ke(r)||n.push(r.next),r=r.nextOnCircle;return n}function Qe(t,n){n(t);const e=Ae(t).filter(t=>!ke(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...De(t))}}}const Re=["prev","next","prevOnCircle","nextOnCircle"];function Ge(t){const n=new Map,e=Ue(t);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of Re){const i=t[o];let c=n.get(i);c||(c=Ue(i),n.set(i,c),r.push({cpNode:i,newCpNode:c})),e[o]=c}}return e}function Ue(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0}}function Ze(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return[];const s=[];return c===i?s.push({ps:r.curve.ps,ts:[r.t,o.t]}):(s.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({ps:o.ps,ts:[0,n]})}while(o!==e)}(s,r.curve,o.curve,o.t)),s}function Je(t){return Ze(t).map(t=>Hn(t.ps,t.ts[0],t.ts[1]))}function Ke(t,n){const{cpTrees:e}=n,r=t.prev,o=t.next;r.next=o,o.prev=r,e.get(t.cp.pointOnShape.curve.loop).remove(t,!1)}function tr(t,n){const e=Xe(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);Ae(t).forEach(t=>Ke(t,n))}function nr(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n}function er(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e}function rr(t,n){return Ae(t).indexOf(n)>=0}function or(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]}function ir(t){return 2===Be(t)}function cr(t){if(function(t){return Ae(t).every(ke)}(t))return[];for(;ke(t);)t=t.nextOnCircle;for(t=t.next;2===Be(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!Ve(t)&&2===Be(t));return n}function sr(t){return cr(t).map(t=>Te(t))}function ur(t,n,e=!0){const{cpNodes:r,hasHoleCloser:o}=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const r=t,o=[r];let i=t.next,c=r.isHoleClosing;for(;i!==n&&i!==r;)i.isHoleClosing&&(c=!0),o.push(i),i=i.next;return{cpNodes:o,hasHoleCloser:c}}(t,n,e);return{pss:r.flatMap(Je),hasHoleCloser:o}}function fr(t){const n=t,e=t.nextOnCircle,r=Yn(n.cp.pointOnShape.p,e.cp.pointOnShape.p),{pss:o,hasHoleCloser:i}=ur(n,e),c=function(t){let n=0;for(let e of t)n+=e;return n}(o.map(t=>Gn(t)));return i?Number.POSITIVE_INFINITY:c/r}function lr(t,n){let e=t;const r=[];for(;e!==n;){const t=Oe(e,e.next);r.push(t),e=e.next}return r}function ar(t,n){const e=re(ce(ue(Te(t),0)),ce(ue(Te(n),0)));return Math.abs(Math.asin(e)*(180/Math.PI))}function pr(t){const n=[];return Qe(t,t=>{n.push(t)}),n}function hr(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function dr(t,n){return hr(t.cp,n.cp)}const vr={getChildren:nr,getVertexForwardChildren:De,getAllOnLoop:h,getAllOnCircle:Ae,isOnSameCircle:rr,isTerminating:ke,isFullyTerminating:Ve,getFirstExit:er,isSharp:je,isOneProng:or,getProngCount:Xe,getRealProngCount:Be,cpNodeComparator:dr,enhanceCpNode:qe,traverseCp:We,traverseEdges:He,traverseVertices:Qe,clone:Ge,getBoundaryBezierPartsToNext:Ze,getBoundaryBeziersToNext:Je,removeVertex:tr,getMatCurveToNext:Te,isTwoProng:ir,getBranch:cr,getBranchBeziers:sr,getSalience:fr,getMatCurveBetween:Oe,getEdgeDirection:ye,getBoundaryBeziersBetween:ur,getMatCurvesBetween:lr,getHoleClosers:d,getSpeed:Fe,getSmoothedSpeed$:Le,getInitialDegAngleBetweenMatCurves:ar,getAllVertices:pr};function gr(t){return n=>Ae(n).some(t)}const mr=gr(function(t){return 2!==Be(t)&&!t.isHoleClosing}),br=2**27+1;function xr(t,n){const e=t[1],r=n[1],o=e*r,i=br*e,c=i-(i-e),s=e-c,u=br*r,f=u-(u-r),l=r-f,a=s*l-(o-c*f-s*f-c*l)+(e*n[0]+t[0]*r),p=o+a;return[a-(p-o),p]}function Ir(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,c=e+(r-(o-i)+(n-i)),s=o+c;return[c-(s-o),s]}const wr=xr,_r=m,Nr=b,Mr=T,Sr=Ir;function Er(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=Sr(wr(Mr(o,e),n),e),a=Sr(wr(Mr(c,o),n),o),p=Sr(wr(Mr(u,c),n),c),h=_r(l,wr(Nr(a,l),n)),d=_r(a,wr(Nr(p,a),n)),v=_r(h,wr(Nr(d,h),n)),g=Sr(wr(Mr(i,r),n),r),m=Sr(wr(Mr(s,i),n),i),b=Sr(wr(Mr(f,s),n),s),x=_r(g,wr(Nr(m,g),n)),I=_r(m,wr(Nr(b,m),n));return[v,_r(x,wr(Nr(I,x),n))]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=_r([0,e],wr(Mr(o,e),n)),f=_r([0,o],wr(Mr(c,o),n)),l=_r(u,wr(Nr(f,u),n)),a=_r([0,r],wr(Mr(i,r),n)),p=_r([0,i],wr(Mr(s,i),n));return[l,_r(a,wr(Nr(p,a),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[Sr(wr(Mr(o,e),n),e),Sr(wr(Mr(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function yr(t,n,e){return{curve:t,t:n,p:Er(t.ps,[0,n]).map(t=>t[1]),isSource:void 0!==e&&e}}const Cr=Number.EPSILON/2,Or=Cr*Cr,Tr=134217729;function Pr(t,n){const e=n[0],r=n[1],o=r*t,i=Tr*r,c=i-(i-r),s=r-c,u=Tr*t,f=u-(u-t),l=t-f,a=e*t,p=o+a,h=a-(p-o)+(s*l-(o-c*f-s*f-c*l)),d=p+h;return[h-(d-p),d]}function Ar(t,n){const e=n[0],r=n[1],o=r*t,i=Tr*r,c=i-(i-r),s=r-c,u=Tr*t,f=u-(u-t),l=t-f,a=s*l-(o-c*f-s*f-c*l)+e*t,p=o+a;return[a-(p-o),p]}const kr=Ar,Br=pt,Fr=function(){const t=3*Or;return t/(1-t)}(),zr=V,Yr=Z,Vr=ot,Lr=Math.abs,$r=Number.EPSILON/2;function Xr(t,n){let e=t[0],r=.5*Lr(e);for(let o=1;o<t.length;o++)e=e*n+t[o],r=r*Lr(n)+Lr(e);return r=$r*(2*r-Lr(e)),[e,r]}const jr=Math.abs,qr=function(t){const n=t*Cr;return n/(1-n)},Wr=Xr,Hr=dn,Dr=qr(1),Qr=qr(2);function Rr(t,n,e=void 0,r=1){const o=Math.abs(n),i=t[0],[c,s]=Wr(i,n),u=Qr*function(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+jr(t[r]);return e}(i,o),f=void 0!==e?Hr(e,o):0;if((s+u+f)*r<Math.abs(c))return c;const l=function(t,n){const e=[],r=[];let o,i=t[0];for(let c=1;c<t.length;c++){const[s,u]=Vr(i,n);[o,i]=Yr(u,t[c]),e.push(s),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(i,n),{pπ:a,pσ:p}=l;let{r̂:h}=l;const[d,v]=Wr(a,n),[g,m]=Wr(p,n),[b,x]=Wr(t[1],n);let I=v+m+x+f;return h=d+g+b+h,I+=Dr*h,I*r<Math.abs(h)?h:0}const Gr=A,Ur=V;function Zr(t,n){let e=[0];for(let r=0;r<t.length;r++)e=Gr(t[r],Ur(e,n));return e}const Jr=Rr,Kr=Zr,to=pt,no=Rr,eo=Zr,ro=pt,oo=Number.EPSILON,io=Math.abs,co=Math.max,so=function(t){const{p:n,pE:e}=t,r=[],o=[],i=n.length-1;for(let t=0;t<i;t++){const c=i-t,s=kr(c,n[t]);r.push(s);const u=c&c-1?Fr:0,f=Br(s);o.push(c*e[t]+Math.abs(f)*u)}return{p:r,pE:o}},uo=Rr,fo=Zr,lo=function(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e},ao=function(t,n,e,r){const o=Jr(t,e,n,4);return 0!==o?o:to(Kr(r(),e))},po=function(t,n,e,r,o,i,c,s){let u=e,f=r,l=u,a=o,p=f-u,h=p;for(;;){let d;io(a)<io(i)&&(u=f,f=l,l=u,o=i,i=a,a=o);const v=co(io(u),io(f));d=v<=1?oo:oo*2**Math.ceil(Math.log2(v));const g=.5*(l-f);if(io(g)<=d)return f<l?[f,l]:[l,f];if(io(p)<d||io(o)<=io(i))p=g,h=p;else{let t,n,e=i/o;if(u===l)t=2*g*e,n=1-e;else{n=o/a;const r=i/a;t=e*(2*g*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-io(d*n)&&t<io(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,o=i,d<io(h)?f+=h:0<g?f+=d:f-=d,0===(i=s?ro(eo(c(),f)):no(t,f,n))){if(s)return[f,f];const o=Math.max(e,f-d),u=Math.min(r,f+d);if(no(t,o,n)*no(t,u,n)!==0)return[o,u];if(s=!0,0===(i=ro(eo(c(),f))))return[f,f]}(0<i&&0<a||i<=0&&a<=0)&&(l=u,a=o,p=f-u,h=p)}},ho=Nn,vo=_n,go=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(zr(t[r],e-r));return n},mo=pt,bo=Xr,xo=W,Io=Math.max,wo=Math.min,_o=Math.abs,No=1+Number.EPSILON;function Mo(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let c,s,u=0;for(;t.length>0&&_o(t[0][1])<=r[0]&&(s=s||o(),0===xo(s[0]));)(t=t.slice()).shift(),(r=r.slice()).shift(),s.shift();if(0===t.length)return i?void 0:[];if(1===t.length)return[];if(n===Number.NEGATIVE_INFINITY||e===Number.POSITIVE_INFINITY){const r=t.map(t=>t[1]);n===Number.NEGATIVE_INFINITY&&(n=ho(r)),e===Number.POSITIVE_INFINITY&&(e=vo(r))}const f=lo(t);let l,a;const p=t.length-1;let h,d;l=0,a=!1;do{if(h=a?mo(fo(I(),n)):uo(f,n,r),0===h){if(l++,l>=3&&!a){a=!0;continue}n-=2*Number.EPSILON*Io(1,_o(n))}}while(0===h);l=0,a=!1;do{if(d=a?mo(fo(I(),e)):uo(f,e,r),0===d){if(l++,l>=3&&!a){a=!0;continue}e+=2*Number.EPSILON*Io(1,_o(e))}}while(0===d);const v=[{p:t,pE:r}],g=[lo(t)];for(let t=1;t<=p;t++){const n=so(v[t-1]);v.push(n),g.push(lo(n.p))}let m,b,x=[];for(u=p-1;u>=0;u--)m=v[u].pE,b=g[u],x=w();function I(){if(void 0!==c)return c[u];let t=s||o();for(c=[t];t.length>1;)t=go(t),c.push(t);return c[u]}return x;function w(){const t=[],r=ao(b,m,n,I);if(!x.length){const t=ao(b,m,e,I);if(r*t>=0)return[];const[o,i]=po(b,m,n,e,r,t,I);return[{tS:o,tE:i,multiplicity:1}]}let o=x[0].tS,i=ao(b,m,o,I);if(r*i>0);else if(r*i<0){const[e,c]=po(b,m,n,o,r,i,I);t.push({tS:e,tE:c,multiplicity:1})}let c,s=n,f=r,l=o,a=i;for(let n=0;n<x.length;n++){const r=x[n+1];c=x[n],o=l,s=x[n].tE,l=r?r.tS:e;const u=f;if(i=a,f=ao(b,m,s,I),a=ao(b,m,l,I),i*f>0)if(f*a>0)s!==o&&c.multiplicity%2==1&&h();else if(f*a<0){s!==o&&c.multiplicity%2==1&&h();const[n,e]=po(b,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}else s!==o&&c.multiplicity%2==1&&h();else if(i*f<0){if(t.push({tS:c.tS,tE:c.tE,multiplicity:3}),f*a<0){const[n,e]=po(b,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({tS:c.tS,tE:c.tE,multiplicity:c.multiplicity+1}):i*a>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3});else{if(f*a<0){const[n,e]=po(b,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}u*f>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return So(t)}return t;function h(){const n=(s-o)*No;let e=1,r=0;for(let t=u+2;t<=p;t++){const i=g[t][0],c=bo(i,o);r+=(_o(c[0])+c[1])*e,e*=n*No}const l=f>0?wo(i,f):Io(i,f),a=2*Number.EPSILON*Io(1,_o(s)),h=r*(2*a);(l+(f>0?2*-h*a:2*h*a))*f<0&&t.push({tS:c.tS,tE:c.tE,multiplicity:2})}}}function So(t){const n=[],e=t[0];let r={tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function Eo(t){return(t.tS+t.tE)/2}function yo(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=e+(o-e)*n,a=o+(c-o)*n,p=l+(a-l)*n,h=r+(i-r)*n,d=i+(s-i)*n,v=h+(d-h)*n;return[p+(a+(c+(u-c)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(c-o)*n-u)*n,f+(i+(s-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const Co=Math.abs;function Oo(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=Co(n[1]);if(4===t.length){const[[n,r],[o,i],[c,s],[u,f]]=t,l=Co(n),a=Co(r),p=Co(o),h=Co(i),d=Co(c),v=Co(s),g=l+(p+l)*e,m=p+(d+p)*e,b=g+(m+g)*e,x=a+(h+a)*e,I=h+(v+h)*e,w=x+(I+x)*e;return[b+(m+(d+(Co(u)+d)*e+m)*e+b)*e,w+(I+(v+(Co(f)+v)*e+I)*e+w)*e]}if(3===t.length){const[[n,r],[o,i],[c,s]]=t,u=Co(n),f=Co(r),l=Co(o),a=Co(i),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(Co(c)+l)*e+p)*e,h+(a+(Co(s)+a)*e+h)*e]}if(2===t.length){const[[n,r],[o,i]]=t,c=Co(n),s=Co(r);return[c+(Co(o)+c)*e,s+(Co(i)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const To=Math.abs,Po=[[0,0],[0,0]];const Ao=Number.EPSILON/2,ko=R(1);function Bo(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=O(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=e[3][0],u=9*Ao*r[0][0],f=9*Ao*r[1][0],l=9*Ao*r[2][0],a=9*Ao*r[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*Ao*r[0][1],m=9*Ao*r[1][1],b=9*Ao*r[2][1],x=9*Ao*r[3][1],I=Math.min(o-u,i-f,c-l,s-a),w=Math.max(o+u,i+f,c+l,s+a);return[[I,Math.min(p-g,h-m,d-b,v-x)],[w,Math.max(p+g,h+m,d+b,v+x)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=E(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=5*Ao*r[0][0],u=5*Ao*r[1][0],f=5*Ao*r[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Ao*r[0][1],d=5*Ao*r[1][1],v=5*Ao*r[2][1],g=Math.min(o-s,i-u,c-f),m=Math.max(o+s,i+u,c+f);return[[g,Math.min(l-h,a-d,p-v)],[m,Math.max(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:Po}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[o,i],[n*(c-o)+o,n*(s-i)+i]],f=To(n),l=To(o),a=To(c),p=To(i);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(To(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[n*(c-o)+o,n*(s-i)+i],[c,s]],f=To(n),l=To(o),a=To(c),p=To(i);return{ps:u,_ps:[[f*(a+l)+l,f*(To(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1],f=[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]],l=To(n),a=To(e),p=To(i),h=To(s),d=To(c),v=To(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=3*Ao*r[0][0],s=3*Ao*r[1][0],u=e[0][1],f=e[1][1],l=3*Ao*r[0][1],a=3*Ao*r[1][1],p=Math.min(o-c,i-s),h=Math.max(o+c,i+s);return[[p,Math.min(u-l,f-a)],[h,Math.max(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=yo(t,n);let i;if(4===t.length)i=Oo(t,[0,n]).map(t=>8*ko*t);else if(3===t.length)i=Oo(t,[0,n]).map(t=>5*ko*t);else if(2===t.length)i=Oo(t,[0,n]).map(t=>2*ko*t);else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function Fo(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const zo=pt,Yo=ht,Vo=j,Lo=A,$o=Number.EPSILON;function Xo(t){return[2*t[0],2*t[1]]}function jo(t){return[4*t[0],4*t[1]]}const qo=T,Wo=m,Ho=Ar,Do=xr,Qo=Xo,Ro=jo,Go=b;function Uo(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=qo(c,d),m=qo(u,d),b=qo(l,d),x=qo(p,d),I=qo(s,v),w=qo(f,v),_=qo(a,v),N=qo(h,v),M=Do(g,g),S=Ho(6,Do(g,m)),E=Ho(6,Do(g,b)),y=Qo(Do(g,x)),C=Ho(9,Do(m,m)),O=Ho(18,Do(m,b)),T=Ho(6,Do(m,x)),P=Ho(9,Do(b,b)),A=Ho(6,Do(b,x)),k=Do(x,x),B=Do(I,I),F=Ho(6,Do(I,w)),z=Ho(6,Do(I,_)),Y=Qo(Do(I,N)),V=Ho(9,Do(w,w)),L=Ho(18,Do(w,_)),$=Ho(6,Do(w,N)),X=Ho(9,Do(_,_)),j=Ho(6,Do(_,N)),q=Do(N,N),W=Wo(T,P),H=Wo(y,O),D=Wo(E,C),Q=Wo($,X),R=Wo(Y,L),G=Wo(z,V);return[Ho(6,Wo(Wo(Wo(Wo(Go(k,A),Go(M,S)),W),Go(D,H)),Wo(Wo(Wo(Go(q,j),Go(B,F)),Q),Go(G,R)))),Ho(5,Wo(Go(Wo(Wo(A,Ho(5,S)),Ho(3,H)),Qo(Wo(Wo(W,Qo(D)),Ho(3,M)))),Go(Wo(Wo(j,Ho(5,F)),Ho(3,R)),Qo(Wo(Wo(Q,Qo(G)),Ho(3,B)))))),Ro(Wo(Go(Go(W,Ho(3,Go(H,Qo(D)))),Ho(5,Go(Qo(S),Ho(3,M)))),Go(Go(Q,Ho(3,Go(R,Qo(G)))),Ho(5,Go(Qo(F),Ho(3,B)))))),Ho(3,Wo(Go(H,Qo(Go(Qo(D),Ho(5,Go(S,Qo(M)))))),Go(R,Qo(Go(Qo(G),Ho(5,Go(F,Qo(B)))))))),Qo(Wo(Go(D,Ho(5,Go(S,Ho(3,M)))),Go(G,Ho(5,Go(F,Ho(3,B)))))),Wo(Go(S,Ho(6,M)),Go(F,Ho(6,B)))]}const Zo=T,Jo=m,Ko=Ar,ti=xr,ni=Xo,ei=b,ri=jo;function oi(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=Zo(e,u),a=Zo(o,u),p=Zo(c,u),h=Zo(r,f),d=Zo(i,f),v=Zo(s,f),g=ti(l,l),m=ti(l,a),b=ti(l,p),x=ti(a,a),I=ti(a,p),w=ti(p,p),_=ti(h,h),N=ti(h,d),M=ti(h,v),S=ti(d,d),E=ti(d,v),y=ti(v,v),C=Jo(M,ni(S)),O=Jo(b,ni(x));return[Jo(ei(Jo(Jo(y,_),ni(C)),ri(Jo(E,N))),ei(Jo(Jo(w,g),ni(O)),ri(Jo(I,m)))),Ko(3,Jo(Jo(ei(E,C),ei(Ko(3,N),_)),Jo(ei(I,O),ei(Ko(3,m),g)))),Jo(ei(C,Ko(3,ei(ni(N),_))),ei(O,Ko(3,ei(ni(m),g)))),Jo(ei(N,_),ei(m,g))]}const ii=g,ci=m,si=function(t){return[-2*t[0],-2*t[1]]},ui=b;function fi(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=ii(u,u),h=ii(u,f),d=ii(f,f),v=ii(l,l),g=ii(l,a),m=ii(a,a),b=ci(h,g),x=ci(v,p);return[ci(ci(d,m),ci(x,si(b))),ui(b,x)]}function li(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function ai(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const pi=ht,hi=j,di=L,vi=li,gi=ai,mi=A,bi=z,xi=ht,Ii=j,wi=L,_i=li,Ni=A,Mi=z;function Si(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const Ei=ht,yi=j,Ci=ai,Oi=A,Ti=z,Pi=Math.abs;function Ai(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=Pi(e[0]),s=Pi(e[1]),u=Pi(r[0]),f=Pi(r[1]),l=Pi(o[0]),a=Pi(o[1]),p=Pi(i[0]),h=Pi(i[1]),d=Pi(n[0]),v=Pi(n[1]),g=c+d,m=u+d,b=l+d,x=p+d,I=s+v,w=f+v,_=a+v,N=h+v,M=g*g,S=6*g*m,E=6*b*x,y=I*I,C=6*I*w,O=6*_*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*w*N+9*_*_,B=2*I*N+18*w*_,F=6*I*_+9*w*w;return[6*(x*x+E+(M+S)+T+(A+P)+(N*N+O+(y+C)+k+(F+B))),5*(E+5*S+3*P+2*(T+2*A+3*M)+(O+5*C+3*B+2*(k+2*F+3*y))),4*(T+3*(P+2*A)+5*(2*S+3*M)+(k+3*(B+2*F)+5*(2*C+3*y))),3*(P+2*(2*A+5*(S+2*M))+(B+2*(2*F+5*(C+2*y)))),2*(A+5*(S+3*M)+(F+5*(C+3*y))),S+6*M+(C+6*y)]}function ki(t,n){const e=t[0],r=t[1],o=t[2],i=Pi(e[0]),c=Pi(e[1]),s=Pi(r[0]),u=Pi(r[1]),f=Pi(o[0]),l=Pi(o[1]),a=Pi(n[0]),p=Pi(n[1]),h=i+a,d=s+a,v=f+a,g=c+p,m=u+p,b=l+p,x=h*h,I=h*d,w=d*v,_=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+_+2*S+4*(M+N)+(v*v+x+2*E+4*(w+I)),3*(M+S+(3*N+_)+(w+E+(3*I+x))),S+3*(2*N+_)+(E+3*(2*I+x)),N+_+(I+x)]}function Bi(t,n){const e=t[0],r=t[1],o=Pi(e[0]),i=Pi(e[1]),c=Pi(r[0]),s=Pi(r[1]),u=Pi(n[0]),f=Pi(n[1]),l=o+u,a=c+u,p=i+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}const Fi=G(6);function zi(t,n){const e=t.length-1;if(3===e)return{polyDd:Uo(t,n),polyE:Ai(t,n).map(t=>10*Fi*t),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=pi(c,d),m=pi(u,d),b=pi(l,d),x=pi(p,d),I=pi(s,v),w=pi(f,v),_=pi(a,v),N=pi(h,v),M=hi(g,g),S=di(6,hi(g,m)),E=di(6,hi(g,b)),y=vi(hi(g,x)),C=di(9,hi(m,m)),O=di(18,hi(m,b)),T=di(6,hi(m,x)),P=di(9,hi(b,b)),A=di(6,hi(b,x)),k=hi(x,x),B=hi(I,I),F=di(6,hi(I,w)),z=di(6,hi(I,_)),Y=vi(hi(I,N)),V=di(9,hi(w,w)),L=di(18,hi(w,_)),$=di(6,hi(w,N)),X=di(9,hi(_,_)),j=di(6,hi(_,N)),q=hi(N,N),W=mi(T,P),H=mi(y,O),D=mi(E,C),Q=mi($,X),R=mi(Y,L),G=mi(z,V),U=bi(mi(mi(k,M),mi(W,D)),mi(mi(H,A),S)),Z=bi(mi(mi(q,B),mi(Q,G)),mi(mi(R,j),F)),J=di(6,mi(U,Z)),K=mi(gi(mi(mi(W,vi(D)),di(3,M))),mi(mi(A,di(3,H)),di(5,S))),tt=mi(gi(mi(mi(Q,vi(G)),di(3,B))),mi(mi(j,di(3,R)),di(5,F))),nt=di(5,mi(K,tt)),et=mi(mi(W,di(3,bi(vi(D),H))),di(5,bi(di(3,M),vi(S)))),rt=mi(mi(Q,di(3,bi(vi(G),R))),di(5,bi(di(3,B),vi(F)))),ot=di(4,mi(et,rt)),it=bi(H,vi(bi(vi(D),di(5,bi(S,vi(M)))))),ct=bi(R,vi(bi(vi(G),di(5,bi(F,vi(B)))))),st=di(3,mi(it,ct)),ut=bi(D,di(5,bi(S,di(3,M)))),ft=bi(G,di(5,bi(F,di(3,B)))),lt=vi(mi(ut,ft)),at=bi(S,di(6,M)),pt=bi(F,di(6,B));return[J,nt,ot,st,lt,mi(at,pt)]}(t,n)};if(2===e)return{polyDd:oi(t,n),polyE:ki(t,n).map(t=>8*Fi*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=xi(e,u),a=xi(o,u),p=xi(c,u),h=xi(r,f),d=xi(i,f),v=xi(s,f),g=Ii(l,l),m=Ii(l,a),b=Ii(l,p),x=Ii(a,a),I=Ii(a,p),w=Ii(p,p),_=Ii(h,h),N=Ii(h,d),M=Ii(h,v),S=Ii(d,d),E=Ii(d,v),y=Ii(v,v),C=Ni(M,_i(S)),O=Ni(b,_i(x)),T=Ni(Mi(Ni(w,_i(O)),Si(Ni(I,m))),g),P=Ni(Mi(Ni(y,_i(C)),Si(Ni(E,N))),_),A=Ni(T,P),k=Ni(Mi(I,O),Mi(wi(3,m),g)),B=Ni(Mi(E,C),Mi(wi(3,N),_)),F=wi(3,Ni(k,B)),z=Mi(C,wi(3,Mi(_i(N),_))),Y=Mi(O,wi(3,Mi(_i(m),g))),V=Ni(z,Y),L=Mi(N,_),$=Mi(m,g);return[A,F,V,Ni(L,$)]}(t,n)};if(1===e)return{polyDd:fi(t,n),polyE:Bi(t,n).map(t=>6*Fi*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=Ei(e,c),f=Ei(o,c),l=Ei(r,s),a=Ei(i,s),p=yi(u,u),h=yi(u,f),d=yi(f,f),v=yi(l,l),g=yi(l,a),m=yi(a,a),b=Oi(h,g),x=Oi(v,p);return[Oi(Oi(d,m),Oi(Ci(b),x)),Ti(b,x)]}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}const{sqrt:Yi}=Math;function Vi(t,n,e=0,r=1){const{polyDd:o,polyE:i,getPolyExact:c}=zi(t,n),s=Mo(o,e,r,i,c);s.push({tS:e,tE:e,multiplicity:1}),s.push({tS:r,tE:r,multiplicity:1});const u=s.map(e=>{const r=Bo(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,s],[c,i],[c,s]]){const e=Yo(t,u),r=Yo(n,f),o=Lo(Vo(e,e),Vo(r,r)),i=zo(o),c=i*(1-$o),s=i*(1+$o);c<=l&&(l=c),s>=a&&(a=s)}return[l,a]}(r,n);return{p:Fo(r),t:Eo(e),d:(Yi(o[0])+Yi(o[1]))/2,dSquaredI:o,box:r,ri:e}});let f=Number.POSITIVE_INFINITY;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function Li(t){const n=t.xs;if(4===n.length){let t=0,e=0;for(let r=0;r<n.length;r++)0===n[r].x.kind&&t++,4===n[r].x.kind&&e++;if(2===t&&2===e)return!0}return n.length<=2&&7!==n[0].x.kind}const $i=dt;function Xi(t){const n=(t=$i(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const ji=j,qi=A,Wi=L,Hi=Mo,Di=Xi,Qi=Z,Ri=Number.EPSILON;function Gi(t,n){const e=t.tS,r=t.tE-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const o=function(t,n,e){const r=t.length-1;if(r<0)return[];const o=[];for(let t=0;t<r+1;t++)o.push(new Array(r+1).fill([0]));o[0][0]=[1];for(let t=1;t<=r;t++){o[0][t]=Wi(e,o[0][t-1]);for(let r=1;r<=t;r++)o[r][t]=qi(Wi(e,o[r][t-1]),Wi(n,o[r-1][t-1]))}const i=new Array(r+1).fill([0]);for(let n=0;n<=r;n++){i[r-n]=[0];for(let e=n;e<=r;e++){const c=ji(o[n][e],t[r-e]);i[r-n]=qi(i[r-n],c)}}return i}(n,r,e),i=o.map(Di),c=i.map(t=>Ri*Ri*t[1]),s=Hi(i,0,1,c,()=>o),u=[];for(const t of s)u.push({tS:Qi(e,t.tS*r),tE:Qi(e,t.tE*r),multiplicity:t.multiplicity});return u}const{abs:Ui}=Math;function Zi(t,n){const e=t.inOuts;e.sort(function(t){return(n,e)=>{let r=n.side-e.side;if(0!==r)return r;const o=n.sideX,i=e.sideX;r=o.ri.tS-i.ri.tS;const c=8*Number.EPSILON;return Ui(r)>=c?r:(o.compensated||(o.compensated=1,o.riExp=Gi(o.ri,o.getPExact())[0]),i.compensated||(i.compensated=1,i.riExp=Gi(i.ri,i.getPExact())[0]),r=H(o.riExp.tS,i.riExp.tS),0!==r?r:(r=n.dir-e.dir,0!==r?t*r:1===n.dir?n.idx-e.idx:e.idx-n.idx))}}(n));let r=e[e.length-1];for(let t=0;t<e.length;t++){const n=e[t];n.prevAround=r,r.nextAround=n,r=n}}function Ji(t,n,e,r){const o=function(t,n){return(e,r,o)=>{t.has(e)||(e.orientation=r,e.parent=o,e.windingNum=o.windingNum+e.orientation,n.push(e))}}(r,e);Zi(t.container,n.orientation);let i,c,s=1,u=t,f=n.orientation;for(;u=1===n.orientation?u.nextAround:u.prevAround,u!==t;){const t=s;s-=u.dir,1===s&&(f*=-1),-1!==u.dir&&(i?1===t&&0===s?o(u,n.orientation,n.parent):0===t&&-1===s&&o(u,-n.orientation,n.parent):0===s?i=u:1===s&&o(u,n.orientation,n))}return Li(t.container)||(c=[t.p,i.p]),{inOutToUse:i,additionalBezier:c}}function Ki(t,n){const e=t._x_,r=n._x_,o=e.curve,i=e.x.ri.tS,c=r.curve,s=r.x.ri.tS;let u=o,f=i;Li(t.container)||(f=Eo(Vi(o.ps,t.p)[0].ri));const l=[];for(;;){if(u===c&&(f<s||f===s&&0!==l.length)){const t=u.ps,n=[f,s];return l.push({ps:t,ts:n}),l}{const t=u.ps,n=[f,1];l.push({ps:t,ts:n})}f=0,u=u.next}}function tc(t,n){const e=n._x_,r=t._x_,o=r.curve,i=r.x.ri.tS,c=e.curve,s=e.x.ri.tS;let u=o,f=i;Li(t.container)||(f=Eo(Vi(u.ps,t.p)[0].ri));const l=[];for(;;){const t=u.ps;if(u===c&&(f>s||f===s&&0!==l.length)){const n=[f,s];return l.push({ps:t,ts:n}),l}{const n=[f,0];l.push({ps:t,ts:n})}f=1,u=u.prev}}function nc(t,n,e,r){const o=function(t,n,e){return(r,o,i,c)=>{n.has(r)||1!==r.dir||(r.loopsIdxs=new Set(c),r.orientation=o*t.orientation,r.parent=i.parent,r.windingNum=i.windingNum+r.orientation,e.unshift(r))}}(n,r,e);Zi(t.container,1);let i=t.nextAround,c=t;const s=[],u=new Set(n.loopsIdxs);for(;c=c.nextAround,c!==t;)o(c,n.dir,n,u),s.push(c.idx),-1===c.dir?u?.add(c._x_?.curve.loop.idx):u.delete(c._x_?.curve.loop.idx);let f;return Li(t.container)||(f=[t.p,i.p]),{inOutToUse:i,additionalBezier:f}}function ec(t){const{ps:n,ts:e}=t;return Hn(n,e[0],e[1])}function rc(t,n,e){const r=[],o=[];let i,c=n;const s=e?nc:Ji,u=[];do{t.add(c),u.push(c);const e=c.nextOrPrev;t.add(e);const f=1===c.dir?Ki(c,e):tc(c,e);o.push(...f);const l=s(e,n,r,t);if(({inOutToUse:c,additionalBezier:i}=l),void 0!==i){const t=ec(o[o.length-1]),n={ps:t,ts:[0,Eo(Vi(t,i[0])[0].ri)]};o.pop(),o.push(n),o.push({ps:i,ts:[0,1]})}}while(c!==n);return"undefined"!=typeof _debug_&&_debug_.verbose&&function(t){const n=[],e=[];for(let r of t)e.push(1===r.dir?"color: blue;":"color: red"),n.push(`%c${r.idx}`);console.log("Taken ios: "+n.join(" "),...e)}(u),{bezierPieces:o,additionalOutsToCheck:r}}function oc(t,n,e,r){const o=[t];for(;o.length;){const t=o.pop();if(n.add(t._x_.curve.loop),e.has(t))continue;t.children=new Set;const{bezierPieces:i,additionalOutsToCheck:c}=rc(e,t,r);t.bezierPieces=i,t.parent.children=t.parent.children||new Set,t.parent.children.add(t);for(let t=0;t<c.length;t++)o.push(c[t])}}function ic(t){if(4===t.length)return cc(t);if(3===t.length)return sc(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function cc(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[s-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-c),3*(c+e-2*o),3*(o-e),e]]}function sc(t){const[[n,e],[r,o],[i,c]]=t;return[[i+n-2*r,2*(r-n),n],[c+e-2*o,2*(o-e),e]]}function uc(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,r){return Mo(t.map(t=>[0,t]),n,e,void 0,void 0,r)}function fc(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=Xn(t),c=uc(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Bo(t,i);s[0][1]<r.box[0][1]&&(r={ts:i,box:s}),s[1][1]>o.box[0][1]&&(o={ts:i,box:s})}return{minY:r,maxY:o}}function lc(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=Xn(t),c=uc(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Bo(t,i);s[0][0]<r.box[0][0]&&(r={ts:i,box:s}),s[1][0]>o.box[0][0]&&(o={ts:i,box:s})}return{minX:r,maxX:o}}(t),e=fc(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}const ac=Jn(lc);function pc(t){const n=Xn(t),e=An(n[0],0,1),r=An(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,c,s,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[c]=yo(t,r);c<u&&(u=c,o=r),c>f&&(f=c,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=yo(t,e);o<l&&(l=o,c=e),o>a&&(a=o,s=e)}return{ts:[[o,c],[i,s]],box:[[u,l],[f,a]]}}const hc=Jn(pc),{min:dc,max:vc}=Math;function gc(t){const n=t.map(hc);return{minX:dc(...n.map(t=>t.box[0][0])),maxX:vc(...n.map(t=>t.box[1][0])),minY:dc(...n.map(t=>t.box[0][1])),maxY:vc(...n.map(t=>t.box[1][1]))}}const mc=new Function("try {return this===window;}catch(e){ return false;}")()?function(t){const n=window.atob(t),e=n.length,r=new Uint8Array(e);for(let t=0;t<e;t++)r[t]=n.charCodeAt(t);return r.buffer}:function(t){return function(t){const n=new ArrayBuffer(t.length),e=new Uint8Array(n);for(let n=0;n<t.length;++n)e[n]=t[n];return n}(Buffer.from(t,"base64"))},bc=mc("AGFzbQEAAAABBgFgAX8BfAMDAgAABQMBAAAHHwMGbWVtb3J5AgAHc3F1YXJlcwAACHNxdWFyZXM0AAEKjgECPwECfiAArULHuuXf9tjQm2p+IgEgASABfnxCIIoiAiACfiABQse65d/22NCbanx8QiCKIgIgAn4gAXxCIIi6C0wBAn4gAK1Cx7rl3/bY0JtqfiIBQse65d/22NCbanwiAiABIAIgASABIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiLoL"),xc=new WebAssembly.Module(bc),Ic=new WebAssembly.Instance(xc),wc=Ic.exports.squares;Ic.exports.squares4;const _c=1e-6;function Nc(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0;do{e++;const o=wc(e)/4294967296,i=r(t,n,yo(t[wc(e+1e3)%t.length],o));if(void 0!==i)return i}while(e<100);return;function r(t,n,e){if(function(t,n){const e=gc(t),r=gc(n);return e.minX<r.minX||e.maxX>r.maxX||e.minY<r.minY||e.maxY>r.maxY}(t,n))return!1;const r=function(t,n){const[e,r]=n;let o=0;for(let i=0;i<t.length;i++){const c=t[i],[[s,u],[f,l]]=ac(c);let a=u>r||l<r||!1;if(a=a||s>e||!1,a)continue;const p=[];let h,d,v;const g=!0;h=t=>ic(t)[1],d=[0,-r],v=0;const m=c.map(ie(d)),b=An(h(m),0-_c,1+_c);for(let t=0;t<b.length;t++){const e=b[t];if(Math.abs(e)<_c||Math.abs(e-1)<_c)return;const r=yo(m,e);(g&&n[v]>=r[v]||!g&&n[v]<=r[v])&&p.push(e)}if(1===p.length||3===p.length)for(const t of p){const n=ce(ue(c,t));if(Math.abs(n[1])<_c)return}o+=p.length}return o}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.bezierPieces.map(ec))){e=o;for(const t of o.children)r.push(t)}}}function Mc(t,n){return Sc(t)-Sc(n)}function Sc(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=hc(e).box[0][1];t<n&&(n=t)}return n}const{abs:Ec,sign:yc}=Math;function Cc(t){let n=t.parent;for(;;){if(void 0===n)return!1;if(n.used)return!0;n=n.parent}}function Oc(t,n,e){let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;o>c&&([o,c]=[c,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]);const a=t||r===i&&s===f,p=t||o===c&&u===l;return(a?r<=f:r<f)&&(a?i>=s:i>s)&&(p?u<=c:u<c)&&(p?l>=o:l>o)}function Tc(t,n){return Oc(!0,t.box,n.box)}function Pc(t,n){for(let e=0;e<n.length;e++){const r=n[e];Ac(t,[r.a,r.b])}}function Ac(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function kc(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||kc(t,i,e,r)}}function Bc(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),kc(t,o,e,n[n.length-1]))}return n}function Fc(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function zc(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const c=[];for(const n of e){const[[e,s],[u,f]]=n.box;e<t&&(t=e),s<r&&(r=s),u>o&&(o=u),f>i&&(i=f),c.push(...n.xs)}const s={box:[[t,r],[o,i]],xs:c,inOuts:void 0};n.push(s)}return n}function Yc(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const Vc=T,Lc=Ar,$c=m,Xc=Ir,jc=Math.abs;function qc(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Vc(s,n),l=Vc(r,i),a=3*(r-i),p=Lc(3,l),h=jc(a),d=$c(f,p),v=h+jc(s-n+a),g=Vc(i,2*r),m=Xc(g,n),b=jc(i-2*r+n),x=Lc(3,m),I=6*b,w=Vc(r,n),_=Lc(3,w),N=jc(3*(r-n)),M=Vc(u,e),S=Vc(o,c),E=3*(o-c),y=Lc(3,S),C=jc(E),O=$c(M,y),T=C+jc(u-e+E),P=Vc(c,2*o),A=Xc(P,e),k=jc(c-2*o+e),B=Lc(3,A),F=6*k,z=Vc(o,e);return{coeffs:[[d,x,_,[0,n]],[O,B,Lc(3,z),[0,e]]],errorBound:[[v,I,N,0],[T,F,jc(3*(o-e)),0]]}}function Wc(t){const[[n,e],[r,o],[i,c]]=t,s=i-2*r,u=Vc(i,2*r),f=Xc(u,n),l=jc(s+n),a=Vc(2*r,2*n),p=c-2*o,h=Vc(c,2*o),d=Xc(h,e),v=jc(p+e);return{coeffs:[[f,a,[0,n]],[d,Vc(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function Hc(t){const[[n,e],[r,o]]=t;return[[Vc(r,n),[0,n]],[Vc(o,e),[0,e]]]}const Dc=b,Qc=Ar,Rc=k,Gc=Math.abs;function Uc(t){const[[n,[,e]],[r,[,o]]]=Hc(t),i=Rc(r),c=n,s=Qc(o,n),u=Gc(s[1]),f=Qc(e,r),l=Gc(f[1]),a=Dc(f,s);return{coeffs:{vₓ:i,vᵧ:c,v:a},errorBound:{v_:u+l+Gc(a[1])}}}const Zc=m,Jc=Ar,Kc=xr,ts=Math.abs,ns=G(3);function es(t){return[-t[0],-t[1]]}const rs=es,os=Xo,is=Ar,cs=xr,ss=b,us=Math.abs;function fs(t){const{coeffs:[[n,e,[,r]],[o,i,[,c]]],errorBound:[[s],[u]]}=Wc(t),f=n[1],l=e[1],a=o[1],p=i[1],h=us(r),d=us(l),v=us(f),g=us(c),m=us(p),b=us(a),x=cs(n,i),I=s*m+2*us(f*p),w=cs(e,o),_=d*u+2*us(l*a),N=is(c,n),M=g*s+us(c*f),S=is(r,o),E=h*u+us(r*a),y=is(c,e),C=us(c*l),O=is(r,i),T=us(r*p),P=cs(n,n),A=2*(s*v+us(f*f)),k=cs(n,o),B=s*b+v*u+2*us(f*a),F=cs(o,o),z=2*(u*b+us(a*a)),Y=f*p-l*a,V=f*c-r*a,L=l*c-r*p,$=ss(x,w),X=us(Y),j=I+_+us(Y),q=ss(N,S),W=us(V),H=M+E+us(V),D=ss(y,O),Q=us(L),R=C+T+us(L),G=rs(F),U=z,Z=os(k),J=B,K=rs(P),tt=A,nt=p*Y,et=cs(i,$),rt=m*j+2*us(nt),ot=2*V*a,it=os(cs(o,q)),ct=2*(u*W+b*H+2*us(ot)),st=nt-ot,ut=ss(et,it),ft=rt+ct+us(st),lt=2*f*V,at=os(cs(n,q)),pt=2*(s*W+v*H+2*us(lt)),ht=l*Y,dt=cs(e,$),vt=d*j+2*us(ht),gt=lt-ht,mt=ss(at,dt),bt=pt+vt+us(gt),xt=Y*L,It=cs($,D),wt=j*Q+X*R+2*us(xt),_t=V*V,Nt=cs(q,q),Mt=2*(H*W+us(_t)),St=xt-_t;return{coeffs:{vₓₓ:G,vₓᵧ:Z,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:ss(It,Nt)},errorBound:{vₓₓ_:U,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:bt,v_:wt+Mt+us(St)}}}const ls=g,as=Xo,ps=Ar,hs=xr,ds=m,vs=Math.abs,gs=G(3),ms=Math.abs,bs=es,xs=Xo,Is=Ar,ws=xr,_s=b,Ns=m;function Ms(t){const{coeffs:[[n,e,r,[,o]],[i,c,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=qc(t),v=r[1],g=e[1],m=n[1],b=s[1],x=c[1],I=i[1],w=ms(o),_=ms(v),N=ms(g),M=ms(m),S=ms(u),E=ms(b),y=ms(x),C=ms(I),O=ws(n,s),T=m*b,P=f*E+M*d+2*ms(T),A=ws(r,i),k=v*I,B=a*C+_*p+2*ms(k),F=ws(n,c),z=m*x,Y=f*y+M*h+2*ms(z),V=ws(e,c),L=g*x,$=l*y+N*h+2*ms(L),X=ws(e,i),j=g*I,q=l*C+N*p+2*ms(j),W=ws(n,n),H=m*m,D=ms(H),Q=f*M+M*f+2*ms(H),R=ws(c,c),G=x*x,U=h*y+y*h+2*ms(G),Z=ws(i,i),J=I*I,K=ms(J),tt=p*C+C*p+2*ms(J),nt=ws(r,n),et=v*m,rt=a*M+_*f+2*ms(et),ot=ws(e,e),it=g*g,ct=l*N+N*l+2*ms(it),st=ws(s,i),ut=b*I,ft=d*C+E*p+2*ms(ut),lt=ws(c,i),at=ms(x*I),pt=h*C+y*p+2*at,ht=ws(e,n),dt=ms(g*m),vt=l*M+N*f+2*dt,gt=ws(n,i),mt=ms(m*I),bt=f*C+M*p+2*mt,xt=Is(u,n),It=m*u,wt=f*S+ms(It),_t=Is(o,i),Nt=o*I,Mt=w*p+ms(Nt),St=Is(u,e),Et=g*u,yt=l*S+ms(Et),Ct=Is(o,c),Ot=o*x,Tt=w*h+ms(Ot),Pt=ws(e,s),At=g*b,kt=l*E+N*d+2*ms(At),Bt=ws(r,c),Ft=v*x,zt=a*y+_*h+2*ms(Ft),Yt=Is(u,r),Vt=v*u,Lt=a*S+ms(Vt),$t=Is(o,s),Xt=o*b,jt=w*d+ms(Xt),qt=_s(xt,_t),Wt=wt+Mt+ms(It-Nt),Ht=_s(O,A),Dt=P+B+ms(T-k),Qt=_s(F,X),Rt=Y+q+ms(z-j),Gt=_s(St,Ct),Ut=yt+Tt+ms(Et-Ot),Zt=_s(Pt,Bt),Jt=kt+zt+ms(At-Ft),Kt=_s(Yt,$t),tn=Lt+jt+ms(Vt-Xt),nn=ms(ut-G),en=_s(st,R),rn=ft+U+nn,on=ms(et-it),cn=_s(nt,ot),sn=rt+ct+ms(et-it),un=ms(j+z),fn=Ns(X,F),ln=q+Y+ms(j+z),an=k+T,pn=ms(an),hn=Ns(A,O),dn=B+P+pn,vn=xs(Ht),gn=2*Dt,mn=It-Nt,bn=T-k,xn=z-j,In=Et-Ot,wn=At-Ft,_n=Vt-Xt,Nn=ms(mn),Mn=ms(bn),Sn=ms(xn),En=ms(In),yn=ms(wn),Cn=ms(_n),On=2*Mn,Tn=ws(qt,qt),Pn=ws(qt,Ht),An=ws(qt,Qt),kn=ws(qt,Zt),Bn=ws(Ht,Ht),Fn=ws(vn,Gt),zn=ws(Qt,Gt),Yn=ws(Qt,Zt),Vn=ws(Qt,Kt),Ln=Wt*Nn+Nn*Wt+2*ms(Tn[1]),$n=Wt*Mn+Nn*Dt+2*ms(Pn[1]),Xn=Wt*Sn+Nn*Rt+2*ms(An[1]),jn=Wt*yn+Nn*Jt+2*ms(kn[1]),qn=Dt*Mn+Mn*Dt+2*ms(Bn[1]),Wn=gn*En+On*Ut+2*ms(Fn[1]),Hn=Rt*En+Sn*Ut+2*ms(zn[1]),Dn=Rt*yn+Sn*Jt+2*ms(Yn[1]),Qn=Rt*Cn+Sn*tn+2*ms(zn[1]),Rn=ws(bs(i),Z),Gn=p*K+C*tt+2*ms(Rn[1]),Un=3*M,Zn=Is(3,n),Jn=3*f+Un,Kn=ws(Zn,Z),te=Jn*K+Un*tt+2*ms(Kn[1]),ne=3*C,ee=Is(-3,i),re=3*p+ne,oe=ws(ee,W),ie=re*D+ne*Q+2*ms(oe[1]),ce=ws(n,W),se=f*D+M*Q+2*ms(ce[1]),ue=-3*mn,fe=3*Nn,le=Is(-3,qt),ae=3*Wt+fe,pe=_s(le,Zt),he=ms(ue-wn),de=ae+Jt+he,ve=ws(pe,Z),ge=de*K+he*tt+2*ms(ve[1]),me=ws(Qt,en),be=Rt*nn+Sn*rn+2*ms(me[1]),xe=Ns(ve,me),Ie=ge+be+ms(xe[1]),we=ws(vn,lt),_e=gn*at+On*pt+2*ms(we[1]),Ne=Ns(xe,we),Me=Ie+_e+ms(Ne[1]),Se=ws(pe,W),Ee=de*D+he*Q+2*ms(Se[1]),ye=ws(Qt,cn),Ce=Rt*on+Sn*sn+2*ms(ye[1]),Oe=Ns(Se,ye),Te=Ee+Ce+ms(Oe[1]),Pe=ws(vn,ht),Ae=gn*dt+On*vt+2*ms(Pe[1]),ke=Ns(Oe,Pe),Be=Te+Ae+ms(ke[1]),Fe=ms(L-an/2),ze=_s(V,function(t){return[t[0]/2,t[1]/2]}(hn)),Ye=$+dn/2+ms(ze[1]),Ve=ws(pe,gt),Le=de*mt+he*bt+2*ms(Ve[1]),$e=ws(Ht,fn),Xe=Dt*un+Mn*ln+2*ms($e[1]),je=Ns(Ve,$e),qe=Le+Xe+ms(je[1]),We=ws(Qt,ze),He=Rt*Fe+Sn*Ye+2*ms(We[1]),De=xs(_s(We,je)),Qe=2*(He+qe)+ms(De[1]),Re=Is(-3,Tn),Ge=3*Ln+ms(Re[1]),Ue=_s(Re,xs(kn)),Ze=Ge+2*jn+ms(Ue[1]),Je=Ns(Fn,Vn),Ke=Wn+Qn+ms(Je[1]),tr=Ns(Ue,Je),nr=ms(tr[1]),er=Ze+Ke+nr,rr=xs(_s(Pn,zn)),or=ms(rr[1]),ir=2*($n+Hn)+or,cr=_s(An,Bn),sr=Xn+qn+ms(cr[1]),ur=Ns(cr,Yn),fr=ms(ur[1]),lr=sr+Dn+fr,ar=ws(i,tr),pr=p*nr+C*er+2*ms(ar[1]),hr=ws(c,rr),dr=h*or+y*ir+2*ms(hr[1]),vr=ws(s,ur),gr=d*fr+E*lr+2*ms(vr[1]),mr=Ns(hr,vr),br=dr+gr+ms(mr[1]),xr=Ns(ar,mr),Ir=pr+br+ms(xr[1]),wr=ws(n,tr),_r=f*nr+M*er+2*ms(wr[1]),Nr=ws(e,rr),Mr=l*or+N*ir+2*ms(Nr[1]),Sr=ws(r,ur),Er=a*fr+_*lr+2*ms(Sr[1]),yr=Ns(Nr,Sr),Cr=Mr+Er+ms(yr[1]),Or=bs(Ns(wr,yr)),Tr=_r+Cr+ms(Or[1]),Pr=_s(Fn,Tn),Ar=_s(Pr,kn),kr=ms(Ar[1]),Br=ws(ur,Kt),Fr=ws(zn,Gt),zr=_s(Br,Fr),Yr=lr*ms(Kt[1])+2*ms(Br[1])+Hn*ms(Gt[1])+2*ms(Fr[1])+ms(zr[1]),Vr=ws(qt,Ar),Lr=Wt*kr+Nn*Wn+Ln+ms(Pr[1])+jn+kr+2*ms(Vr[1]),$r=Ns(Vr,zr);return{coeffs:{vₓₓₓ:Rn,vₓₓᵧ:Kn,vₓᵧᵧ:oe,vᵧᵧᵧ:ce,vₓₓ:Ne,vₓᵧ:De,vᵧᵧ:ke,vₓ:xr,vᵧ:Or,v:$r},errorBound:{vₓₓₓ_:Gn,vₓₓᵧ_:te,vₓᵧᵧ_:ie,vᵧᵧᵧ_:se,vₓₓ_:Me,vₓᵧ_:Qe,vᵧᵧ_:Be,vₓ_:Ir,vᵧ_:Tr,v_:Lr+Yr+ms($r[1])}}}const Ss=g,Es=Xo,ys=Ar,Cs=xr,Os=m,Ts=Math.abs,Ps=G(3),As=m,ks=Ar,Bs=xr,Fs=Math.abs,zs=G(3),Ys=g,Vs=Xo,Ls=Ar,$s=xr,Xs=m,js=Math.abs,qs=G(3),Ws=g,Hs=Xo,Ds=Ar,Qs=xr,Rs=m,Gs=Math.abs,Us=G(3),Zs=m,Js=Ar,Ks=xr,tu=Math.abs,nu=G(3),eu=g,ru=Xo,ou=Ar,iu=xr,cu=m,su=Math.abs,uu=G(3),fu=g,lu=Xo,au=Ar,pu=xr,hu=m,du=Math.abs,vu=G(3),gu=L,mu=z,bu=k,xu=W;function Iu(t){const[[n,[e]],[r,[o]]]=t;if(0!==xu(n)||0!==xu(r))return{vₓ:bu(r),vᵧ:n,v:mu(gu(e,r),gu(o,n))}}const wu=L,_u=j,Nu=A;function Mu(t,n){const e=Bt(t),[[r,[o]],[i,[c]]]=Bt(n),{vₓ:s,vᵧ:u,v:f}=Iu(e),l=_u(r,s),a=_u(i,u),p=Nu(l,a),h=wu(o,s),d=wu(c,u),v=Nu(h,d);return[p,Nu(v,f)]}const Su=L,Eu=li,yu=z,Cu=j,Ou=k;function Tu(t){const[[n,e,[r]],[o,i,[c]]]=t;if(0===W(n)&&0===W(o))return Iu([[e,[r]],[i,[c]]]);const s=Cu(n,i),u=Cu(e,o),f=Su(c,n),l=Su(r,o),a=Su(c,e),p=Su(r,i),h=Cu(n,n),d=Cu(n,o),v=Cu(o,o),g=yu(s,u),m=yu(f,l),b=yu(a,p),x=Ou(v),I=Eu(d),w=Ou(h),_=Cu(i,g),N=Eu(Cu(o,m)),M=yu(_,N),S=Eu(Cu(n,m)),E=Cu(e,g),y=yu(S,E),C=Cu(g,b),O=Cu(m,m);return{vₓₓ:x,vₓᵧ:I,vᵧᵧ:w,vₓ:M,vᵧ:y,v:yu(C,O)}}const Pu=ot,Au=L,ku=j,Bu=A,Fu=li,zu=W;function Yu(t,n){const e=kt(t);if(0===zu(e[0][0])&&0===zu(e[1][0]))return Mu([t[0],t[2]],n);const[[r,[o]],[i,[c]]]=Bt(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=Tu(e),h=Pu(o,o),d=Au(o,r),v=Pu(o,c),g=Au(o,i),m=ku(r,r),b=Au(c,r),x=ku(r,i),I=Pu(c,c),w=Au(c,i),_=ku(i,i),N=ku(m,s),M=ku(_,f),S=ku(x,u),E=Bu(N,M),y=Bu(E,S),C=ku(d,s),O=ku(w,f),T=Bu(g,b),P=ku(T,u),A=Fu(Bu(C,O)),k=Bu(A,P),B=ku(r,l),F=ku(i,a),z=Bu(B,F),Y=Bu(k,z),V=ku(h,s),L=ku(v,u),$=ku(I,f),X=Bu(V,L),j=Bu(X,$),q=Au(o,l),W=Au(c,a),H=Bu(q,W),D=Bu(j,H);return[y,Y,Bu(D,p)]}const Vu=j,Lu=ht,$u=z,Xu=W,ju=pt,qu=V,Wu=Z;function Hu(t,n=!1){const[e,r,o,i]=t;if(!n){const[t,n]=e,[c,s]=r,[u,f]=o,[l,a]=i;return[e,[ju($u(qu(Wu(c/4,u/4),3),Wu(t/4,l/4))),ju($u(qu(Wu(s/4,f/4),3),Wu(n/4,a/4)))],i]}const c=function(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=Lu(o,e),a=Lu(i,r),p=Lu(u,c),h=Lu(f,s),d=$u(Vu(p,a),Vu(h,l));if(0===Xu(d))return;const v=Lu(c,e),g=Lu(s,r),m=$u(Vu(g,l),Vu(v,a)),b=ju(m)/ju(d);return[c+b*ju(p),s+b*ju(h)]}([e,r],[i,o]);if(void 0!==c)return[e,c,i]}const Du=L,Qu=j,Ru=A,Gu=z,Uu=k,Zu=li,Ju=W;function Ku(t){const[[n,e,r,[o]],[i,c,s,[u]]]=t;if(0===Ju(n)&&0===Ju(i))return Tu([[e,r,[o]],[c,s,[u]]]);const f=Qu(n,s),l=Qu(r,i),a=Qu(n,c),p=Qu(e,c),h=Qu(e,i),d=Qu(n,n),v=Qu(c,c),g=Qu(i,i),m=Qu(r,n),b=Qu(e,e),x=Qu(s,i),I=Qu(c,i),w=Qu(e,n),_=Qu(n,i),N=Du(u,n),M=Du(o,i),S=Du(u,e),E=Du(o,c),y=Qu(e,s),C=Qu(r,c),O=Du(u,r),T=Du(o,s),P=Gu(N,M),A=Gu(f,l),k=Gu(a,h),B=Gu(S,E),F=Gu(y,C),z=Gu(O,T),Y=Gu(x,v),V=Gu(m,b),L=Ru(h,a),$=Ru(l,f),X=Zu(A),j=Qu(P,P),q=Qu(P,A),W=Qu(P,k),H=Qu(P,F),D=Qu(A,A),Q=Qu(X,B),R=Qu(k,B),G=Qu(k,F),U=Qu(k,z),Z=Qu(Uu(i),g),J=Qu(Du(3,n),g),K=Qu(Du(-3,i),d),tt=Qu(n,d),nt=Gu(Du(-3,P),F),et=Qu(nt,g),rt=Qu(k,Y),ot=Ru(et,rt),it=Qu(X,I),ct=Ru(ot,it),st=Qu(nt,d),ut=Qu(k,V),ft=Ru(st,ut),lt=Qu(X,w),at=Ru(ft,lt),pt=Gu(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}($)),ht=Qu(nt,_),dt=Qu(A,L),vt=Ru(ht,dt),gt=Qu(k,pt),mt=Zu(Gu(gt,vt)),bt=Du(-3,j),xt=Gu(bt,Zu(H)),It=Ru(Q,U),wt=Ru(xt,It),_t=Zu(Gu(q,R)),Nt=Gu(W,D),Mt=Ru(Nt,G),St=Qu(i,wt),Et=Qu(c,_t),yt=Qu(s,Mt),Ct=Ru(Et,yt),Ot=Ru(St,Ct),Tt=Qu(n,wt),Pt=Qu(e,_t),At=Qu(r,Mt),kt=Ru(Pt,At),Bt=Uu(Ru(Tt,kt)),Ft=Gu(Q,j),zt=Gu(Ft,H),Yt=Qu(Mt,z),Vt=Qu(R,B),Lt=Gu(Yt,Vt),$t=Qu(P,zt);return{vₓₓₓ:Z,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:ct,vₓᵧ:mt,vᵧᵧ:at,vₓ:Ot,vᵧ:Bt,v:Ru($t,Lt)}}const tf=ot,nf=L,ef=j,rf=A,of=li,cf=W;function sf(t,n){const e=At(t);if(0===cf(e[0][0])&&0===cf(e[1][0]))return Yu(Hu(t),n);const[[r,[o]],[i,[c]]]=Bt(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=Ku(e),m=tf(o,o),b=nf(o,r),x=tf(o,c),I=nf(o,i),w=ef(r,r),_=nf(c,r),N=ef(r,i),M=tf(c,c),S=nf(c,i),E=ef(i,i),y=nf(o,s),C=ef(tf(3,o),s),O=nf(o,u),T=nf(c,u),P=nf(o,f),A=nf(c,f),k=nf(c,l),B=ef(tf(3,c),l),F=ef(r,s),z=ef(r,f),Y=ef(i,u),V=ef(i,l),L=rf(F,Y),$=rf(z,V),X=ef(w,L),j=ef(E,$),q=rf(X,j),W=rf(C,T),H=of(rf(O,A)),D=rf(P,B),Q=rf(W,a),R=rf(H,p),G=rf(D,h),U=ef(w,Q),Z=ef(N,R),J=ef(E,G),K=rf(U,Z),tt=rf(K,J),nt=of(rf(T,a)),et=of(rf(P,h)),rt=rf(C,nt),ot=rf(B,et),it=rf(O,p),ct=rf(A,p),st=ef(b,rt),ut=ef(S,ot),ft=ef(I,it),lt=ef(_,ct),at=ef(r,d),pt=ef(i,v),ht=rf(st,ut),dt=rf(ft,lt),vt=rf(ht,dt),gt=rf(at,pt),mt=rf(vt,gt),bt=rf(y,T),xt=rf(k,P),It=rf(bt,a),wt=rf(xt,h),_t=ef(m,It),Nt=ef(M,wt),Mt=ef(x,p),St=rf(_t,Nt),Et=rf(St,Mt),yt=nf(o,d),Ct=nf(c,v),Ot=rf(yt,Ct),Tt=rf(Et,Ot);return[q,tt,mt,rf(Tt,g)]}const uf=L,ff=j,lf=A,af=W;function pf(t,n){const e=Bt(t),[[r,o,[i]],[c,s,[u]]]=kt(n);if(0===af(r)&&0===af(c))return Mu(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=Iu(e),p=ff(r,f),h=ff(c,l),d=lf(p,h),v=ff(o,f),g=ff(s,l),m=lf(v,g),b=uf(i,f),x=uf(u,l),I=lf(b,x);return[d,m,lf(I,a)]}const hf=ot,df=L,vf=j,gf=A,mf=li,bf=W;function xf(t,n){const e=kt(t);if(0===bf(e[0][0])&&0===bf(e[1][0]))return pf([t[0],t[2]],n);const[[r,o,[i]],[c,s,[u]]]=kt(n);if(0===bf(r)&&0===bf(c))return Yu(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=Tu(e),v=hf(i,i),g=df(i,o),m=df(i,r),b=hf(i,u),x=df(i,s),I=df(i,c),w=vf(o,o),_=vf(o,r),N=df(u,o),M=vf(o,s),S=vf(o,c),E=vf(r,s),y=vf(r,r),C=df(u,r),O=vf(r,c),T=hf(u,u),P=df(u,s),A=df(u,c),k=vf(s,s),B=vf(s,c),F=vf(c,c),z=vf(y,f),Y=vf(O,l),V=vf(F,a),L=gf(z,Y),$=gf(L,V),X=vf(_,f),j=vf(B,a),q=gf(S,E),W=vf(q,l),H=mf(gf(X,j)),D=gf(H,W),Q=gf(mf(m),w),R=gf(mf(A),k),G=gf(I,M),U=gf(G,C),Z=vf(Q,f),J=vf(R,a),K=vf(U,l),tt=vf(r,p),nt=vf(c,h),et=gf(Z,J),rt=gf(et,K),ot=gf(tt,nt),it=gf(rt,ot),ct=vf(g,f),st=vf(P,a),ut=gf(x,N),ft=vf(ut,l),lt=mf(gf(ct,st)),at=vf(o,p),pt=vf(s,h),ht=gf(lt,ft),dt=gf(at,pt),vt=gf(ht,dt),gt=vf(v,f),mt=vf(b,l),bt=vf(T,a),xt=df(i,p),It=df(u,h),wt=gf(gt,mt),_t=gf(wt,bt),Nt=gf(xt,It),Mt=gf(_t,Nt);return[$,D,it,vt,gf(Mt,d)]}const If=ot,wf=L,_f=j,Nf=A,Mf=li,Sf=W;function Ef(t,n){const e=At(t);if(0===Sf(e[0][0])&&0===Sf(e[1][0]))return xf(Hu(t),n);const[[r,o,[i]],[c,s,[u]]]=kt(n);if(0===Sf(r)&&0===Sf(c))return sf(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:b}=Ku(e),x=If(i,i),I=wf(i,o),w=wf(i,r),_=If(i,u),N=wf(i,s),M=wf(i,c),S=_f(o,o),E=_f(o,r),y=wf(u,o),C=_f(o,s),O=_f(o,c),T=_f(r,s),P=_f(r,r),A=wf(u,r),k=_f(r,c),B=If(u,u),F=wf(u,s),z=wf(u,c),Y=_f(s,s),V=_f(s,c),L=_f(c,c),$=_f(r,f),X=_f(r,a),j=_f(c,l),q=_f(c,p),W=Nf($,j),H=Nf(X,q),D=_f(P,W),Q=_f(L,H),R=Nf(D,Q),G=Nf(w,S),U=Nf(z,Y),Z=Nf(Mf(w),S),J=Nf(Mf(z),Y),K=Nf(Mf(C),A),tt=Nf(Mf(C),M),nt=Nf(Mf(A),C),et=Nf(wf(6,w),S),rt=Nf(wf(6,z),Y),ot=Nf(O,T),it=Nf(M,A),ct=Nf(Mf(y),N),st=Nf(Mf(N),y),ut=Nf(M,C),ft=Nf(ut,A),lt=wf(3,P),at=wf(3,L),pt=_f(lt,f),ht=_f(P,l),dt=Mf(_f(k,l)),vt=Mf(_f(k,a)),gt=_f(L,a),mt=_f(at,p),bt=Nf(pt,dt),xt=Nf(ht,vt),It=Nf(bt,gt),wt=Nf(xt,mt),_t=_f(o,It),Nt=_f(s,wt),Mt=Nf(_t,Nt),St=_f(c,Z),Et=_f(c,tt),yt=_f(r,K),Ct=_f(r,J),Ot=_f(wf(3,r),G),Tt=_f(wf(3,c),U),Pt=Nf(St,yt),Bt=Nf(Et,Ct),Ft=_f(Ot,f),zt=_f(Tt,p),Yt=_f(Pt,l),Vt=_f(Bt,a),Lt=Nf(Ft,zt),$t=Nf(Yt,Vt),Xt=_f(P,h),jt=_f(L,v),qt=_f(k,d),Wt=Nf(Xt,jt),Ht=Nf(Lt,$t),Dt=Nf(Wt,qt),Qt=Nf(Ht,Dt),Rt=_f(o,et),Gt=_f(s,rt),Ut=wf(2*i,ot),Zt=_f(Mf(s),it),Jt=_f(o,nt),Kt=_f(o,J),tn=Nf(Ut,Jt),nn=Nf(Zt,Kt),en=_f(V,v),rn=_f(E,h),on=_f(ot,d),cn=Nf(en,rn),sn=_f(Rt,f),un=_f(tn,l),fn=_f(Gt,p),ln=_f(nn,a),an=Nf(sn,fn),pn=Nf(un,ln),hn=Nf(an,pn),dn=Nf(Mf(cn),on),vn=Nf(hn,dn),gn=_f(If(3,i),G),mn=_f(If(3,u),U),bn=wf(i,tt),xn=wf(i,J),In=wf(u,Z),wn=wf(u,K),_n=Nf(bn,In),Nn=Nf(xn,wn),Mn=_f(gn,f),Sn=_f(mn,p),En=_f(_n,l),yn=_f(Nn,a),Cn=_f(Z,h),On=_f(J,v),Tn=_f(ft,d),Pn=_f(r,g),An=_f(c,m),kn=Nf(Mn,Sn),Bn=Nf(En,yn),Fn=Nf(Cn,On),zn=Nf(kn,Bn),Yn=Nf(Fn,Tn),Vn=Nf(Pn,An),Ln=Nf(zn,Yn),$n=Nf(Ln,Vn),Xn=_f(If(3,i),I),jn=_f(If(3,u),F),qn=wf(i,ct),Wn=wf(u,st),Hn=_f(I,h),Dn=_f(F,v),Qn=_f(N,d),Rn=_f(y,d),Gn=Mf(Nf(Hn,Dn)),Un=Nf(Qn,Rn),Zn=_f(o,g),Jn=_f(s,m),Kn=_f(Xn,f),te=_f(jn,p),ne=_f(qn,l),ee=_f(Wn,a),re=Nf(Kn,te),oe=Nf(ne,ee),ie=Nf(re,oe),ce=Nf(Gn,Un),se=Nf(Zn,Jn),ue=Nf(ie,ce),fe=Nf(ue,se),le=wf(i,f),ae=wf(i,a),pe=wf(u,l),he=wf(u,p),de=Nf(le,pe),ve=Nf(ae,he),ge=Nf(de,h),me=Nf(ve,v),be=_f(x,ge),xe=_f(B,me),Ie=_f(_,d),we=wf(i,g),_e=wf(u,m),Ne=Nf(be,xe),Me=Nf(Ne,Ie),Se=Nf(we,_e),Ee=Nf(Me,Se);return[R,Mt,Qt,vn,$n,fe,Nf(Ee,b)]}const yf=L,Cf=j,Of=A,Tf=W;function Pf(t,n){const e=Bt(t),[[r,o,i,[c]],[s,u,f,[l]]]=At(n);if(0===Tf(r)&&0===Tf(s))return pf(t,Hu(n));const{vₓ:a,vᵧ:p,v:h}=Iu(e),d=Cf(r,a),v=Cf(s,p),g=Of(d,v),m=Cf(o,a),b=Cf(u,p),x=Of(m,b),I=Cf(i,a),w=Cf(f,p),_=Of(I,w),N=yf(c,a),M=yf(l,p),S=Of(N,M);return[g,x,_,Of(S,h)]}const Af=ot,kf=L,Bf=j,Ff=A,zf=li,Yf=W;function Vf(t,n){const e=kt(t);if(0===Yf(e[0][0])&&0===Yf(e[1][0]))return Pf([t[0],t[2]],n);const[[r,o,i,[c]],[s,u,f,[l]]]=At(n);if(0===Yf(r)&&0===Yf(s))return xf(t,Hu(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=Tu(e),m=Af(c,c),b=kf(c,i),x=kf(c,o),I=kf(c,r),w=Af(c,l),_=kf(c,f),N=kf(c,u),M=kf(c,s),S=Bf(i,i),E=Bf(i,o),y=Bf(i,r),C=kf(l,i),O=Bf(i,f),T=Bf(i,u),P=Bf(i,s),A=Bf(o,f),k=Bf(o,o),B=Bf(o,r),F=kf(l,o),z=Bf(o,u),Y=Bf(o,s),V=Bf(r,r),L=kf(l,r),$=Bf(r,f),X=Bf(r,u),j=Bf(r,s),q=Af(l,l),W=kf(l,f),H=kf(l,u),D=kf(l,s),Q=Bf(f,f),R=Bf(f,u),G=Bf(s,s),U=Bf(u,u),Z=Bf(u,s),J=Bf(f,s),K=Bf(V,a),tt=Bf(j,p),nt=Bf(G,h),et=Ff(K,tt),rt=Ff(et,nt),ot=Bf(B,a),it=Bf(Z,h),ct=Ff(ot,it),st=Ff(Y,X),ut=Bf(st,p),ft=Ff(zf(ct),ut),lt=Ff(zf(y),k),at=Ff(zf(J),U),pt=Ff(P,z),ht=Ff(pt,$),dt=Bf(lt,a),vt=Bf(at,h),gt=Ff(dt,vt),mt=Bf(ht,p),bt=Ff(gt,mt),xt=Ff(I,E),It=Ff(D,R),wt=Ff(M,T),_t=Ff(A,L),Nt=Ff(wt,_t),Mt=Bf(xt,a),St=Bf(It,h),Et=zf(Ff(Mt,St)),yt=Bf(Nt,p),Ct=Bf(r,d),Ot=Bf(s,v),Tt=Ff(Ct,Ot),Pt=Ff(Et,yt),Bt=Ff(Pt,Tt),Ft=Ff(zf(x),S),zt=Ff(zf(H),Q),Yt=Ff(N,O),Vt=Ff(Yt,F),Lt=Bf(Ft,a),$t=Bf(zt,h),Xt=Bf(Vt,p),jt=Ff(Lt,$t),qt=Ff(jt,Xt),Wt=Bf(o,d),Ht=Bf(u,v),Dt=Ff(Wt,Ht),Qt=Ff(qt,Dt),Rt=Bf(b,a),Gt=Bf(W,h),Ut=Ff(_,C),Zt=Bf(Ut,p),Jt=zf(Ff(Rt,Gt)),Kt=Ff(Jt,Zt),tn=Bf(i,d),nn=Bf(f,v),en=Ff(tn,nn),rn=Ff(Kt,en),on=Bf(m,a),cn=Bf(w,p),sn=Bf(q,h),un=kf(c,d),fn=kf(l,v),ln=Ff(on,cn),an=Ff(ln,sn),pn=Ff(un,fn),hn=Ff(an,pn);return[rt,ft,bt,Bt,Qt,rn,Ff(hn,g)]}const Lf=ot,$f=L,Xf=j,jf=A,qf=li,Wf=W,Hf=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Uc(t),[[c,[,s]],[u,[,f]]]=Hc(n),l=c[1],a=u[1],p=e[1],h=r[1],d=o[1],v=l*p,g=2*ts(v),m=Kc(c,e),b=a*h,x=2*ts(b),I=Kc(u,r),w=v+b,_=Zc(m,I),N=g+x+ts(w),M=s*p,S=Jc(s,e),E=ts(M),y=f*h,C=Jc(f,r),O=ts(y),T=M+y,P=Zc(S,C),A=E+O+ts(T),k=Zc(P,o),B=A+i+ts(T+d);return{coeffs:[_,k],errBound:[ns*N,ns*B]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Uc(t),{coeffs:[[c,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=Wc(n),d=e[1],v=r[1],g=o[1],m=Fs(d),b=Fs(v),x=(Fs(g),s[1]),I=c[1],w=l[1],_=f[1],N=I*d,M=Bs(c,e),S=p*m+2*Fs(N),E=_*v,y=Bs(f,r),C=h*b+2*Fs(E),O=N+E,T=As(M,y),P=S+C+Fs(O),A=x*d,k=Bs(s,e),B=2*Fs(A),F=w*v,z=Bs(l,r),Y=2*Fs(F),V=A+F,L=As(k,z),$=B+Y+Fs(V),X=ks(u,e),j=u*d,q=Fs(j),W=ks(a,r),H=a*v,D=Fs(H),Q=j+H,R=As(X,W),G=q+D+Fs(Q),U=Q+g,Z=As(R,o),J=G+i+Fs(U);return{coeffs:[T,L,Z],errBound:[zs*P,zs*$,zs*J]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Uc(t),{coeffs:[[c,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,b,x]]}=qc(n),I=tu(e[1]),w=tu(r[1]),_=Ks(c,e),N=d*I+2*tu(_[1]),M=Ks(l,r),S=m*w+2*tu(M[1]),E=Zs(_,M),y=N+S+tu(E[1]),C=Ks(s,e),O=v*I+2*tu(C[1]),T=Ks(a,r),P=b*w+2*tu(T[1]),A=Zs(C,T),k=O+P+tu(A[1]),B=Ks(u,e),F=g*I+2*tu(B[1]),z=Ks(p,r),Y=x*w+2*tu(z[1]),V=Zs(B,z),L=F+Y+tu(V[1]),$=Js(f,e),X=tu($[1]),j=Js(h,r),q=tu(j[1]),W=Zs($,j),H=X+q+tu(W[1]),D=Zs(W,o),Q=H+i+tu(D[1]);return{coeffs:[E,A,V,D],errBound:[nu*y,nu*k,nu*L,nu*Q]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=fs(t),[[d,[,v]],[g,[,m]]]=Hc(n),b=e[1],x=r[1],I=o[1],w=i[1],_=c[1],N=s[1],M=vs(b),S=vs(x),E=vs(I),y=d[1],C=g[1],O=vs(v),T=vs(y),P=vs(m),A=vs(C),k=v*v,B=v*y,F=v*m,z=v*C,Y=y*y,V=y*m,L=y*C,$=m*m,X=m*C,j=C*C,q=ls(v,v),W=ps(v,d),H=vs(B),D=ls(v,m),Q=ps(v,g),R=vs(z),G=vs(Y),U=hs(d,d),Z=2*G,J=ps(m,d),K=vs(V),tt=vs(L),nt=hs(d,g),et=2*tt,rt=ls(m,m),ot=ps(m,g),it=vs(X),ct=vs(j),st=hs(g,g),ut=2*ct,ft=Y*b,lt=hs(U,e),at=Z*M*G*u+2*vs(ft),pt=j*I,ht=hs(st,o),dt=ut*E*ct*l+2*vs(pt),vt=L*x,gt=hs(nt,r),mt=et*S*tt*f+2*vs(vt),bt=ft+pt,xt=ds(lt,ht),It=at+dt+vs(bt),wt=bt+vt,_t=ds(xt,gt),Nt=It+mt+vs(wt),Mt=B*b,St=hs(W,e),Et=H*(M+u)+2*vs(Mt),yt=X*I,Ct=hs(ot,o),Ot=it*(E+l)+2*vs(yt),Tt=z+V,Pt=ds(Q,J),At=R+K+vs(Tt),kt=Tt*x,Bt=hs(Pt,r),Ft=At*S+vs(Tt)*f+2*vs(kt),zt=2*(Mt+yt),Yt=as(ds(St,Ct)),Vt=2*(Et+Ot)+vs(zt),Lt=zt+kt,$t=ds(Yt,Bt),Xt=Vt+Ft+vs(Lt),jt=y*w,qt=hs(d,i),Wt=T*a+2*vs(jt),Ht=C*_,Dt=hs(g,c),Qt=A*p+2*vs(Ht),Rt=jt+Ht,Gt=ds(qt,Dt),Ut=Wt+Qt+vs(Rt),Zt=Lt+Rt,Jt=ds($t,Gt),Kt=Xt+Ut+vs(Zt),tn=k*b,nn=hs(q,e),en=2*vs(tn),rn=F*x,on=hs(D,r),cn=2*vs(rn),sn=$*I,un=hs(rt,o),fn=2*vs(sn),ln=tn+rn,an=ds(nn,on),pn=en+cn+vs(ln),hn=ln+sn,dn=ds(an,un),vn=pn+fn+vs(hn),gn=v*w,mn=ps(v,i),bn=O*a+vs(gn),xn=m*_,In=ps(m,c),wn=P*p+vs(xn),_n=gn+xn,Nn=ds(mn,In),Mn=bn+wn+vs(_n),Sn=hn+_n,En=ds(dn,Nn),yn=vn+Mn+vs(Sn),Cn=Sn+N,On=ds(En,s),Tn=yn+h+vs(Cn);return{coeffs:[_t,Jt,On],errBound:[gs*Nt,gs*Kt,gs*Tn]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=fs(t),{coeffs:[[d,v,[,g]],[m,b,[,x]]],errorBound:[[I],[w]]}=Wc(n),_=e[1],N=r[1],M=o[1],S=i[1],E=c[1],y=s[1],C=js(_),O=js(N),T=js(M),P=js(S),A=js(E),k=v[1],B=d[1],F=b[1],z=m[1],Y=js(g),V=js(k),L=js(B),$=js(x),X=js(F),j=js(z),q=g*g,W=g*k,H=g*B,D=g*x,Q=g*F,R=g*z,G=k*k,U=k*B,Z=k*x,J=k*F,K=k*z,tt=B*F,nt=B*B,et=B*x,rt=B*z,ot=x*x,it=x*F,ct=x*z,st=F*F,ut=F*z,ft=z*z,lt=js(q),at=js(D),pt=js(ot),ht=Ys(g,g),dt=Ls(g,v),vt=js(W),gt=Ls(g,d),mt=js(H),bt=Ys(g,x),xt=Ls(g,b),It=js(Q),wt=Ls(g,m),_t=js(R),Nt=$s(v,v),Mt=2*js(G),St=$s(v,d),Et=js(U),yt=V*I+2*Et,Ct=Ls(x,v),Ot=js(Z),Tt=$s(v,b),Pt=2*js(J),At=$s(v,m),kt=V*w+2*js(K),Bt=$s(d,b),Ft=I*X+2*js(tt),zt=$s(d,d),Yt=js(nt),Vt=2*(I*L+Yt),Lt=Ls(x,d),$t=js(et),Xt=$s(d,m),jt=js(rt),qt=I*j+L*w+2*jt,Wt=Ys(x,x),Ht=Ls(x,b),Dt=js(it),Qt=Ls(x,m),Rt=js(ct),Gt=$s(b,b),Ut=2*js(st),Zt=$s(b,m),Jt=js(ut),Kt=X*w+2*Jt,tn=$s(m,m),nn=js(ft),en=2*(w*j+nn),rn=nt*_,on=$s(zt,e),cn=Vt*C+Yt*u+2*js(rn),sn=rt*N,un=$s(Xt,r),fn=qt*O+jt*f+2*js(sn),ln=ft*M,an=$s(tn,o),pn=en*T+nn*l+2*js(ln),hn=rn+sn,dn=Xs(on,un),vn=cn+fn+js(hn),gn=hn+ln,mn=Xs(dn,an),bn=vn+pn+js(gn),xn=U*_,In=$s(St,e),wn=yt*C+Et*u+2*js(xn),_n=ut*M,Nn=$s(Zt,o),Mn=Kt*T+Jt*l+2*js(_n),Sn=K+tt,En=Xs(At,Bt),yn=js(Sn),Cn=kt+Ft+yn,On=Sn*N,Tn=$s(En,r),Pn=Cn*O+yn*f+2*js(On),An=2*(xn+_n),kn=Vs(Xs(In,Nn)),Bn=2*(wn+Mn)+js(An),Fn=An+On,zn=Xs(kn,Tn),Yn=Bn+Pn+js(Fn),Vn=2*H+G,Ln=js(Vn),$n=Xs(Vs(gt),Nt),Xn=2*mt+Mt+js(Vn),jn=2*ct+st,qn=js(jn),Wn=Xs(Vs(Qt),Gt),Hn=2*Rt+Ut+js(jn),Dn=R+J,Qn=(js(Dn),Xs(wt,Tt)),Rn=_t+Pt+js(Dn),Gn=Dn+et,Un=Xs(Qn,Lt),Zn=js(Gn),Jn=Rn+$t+Zn,Kn=Vn*_,te=$s($n,e),ne=Xn*C+Ln*u+2*js(Kn),ee=jn*M,re=$s(Wn,o),oe=Hn*T+qn*l+2*js(ee),ie=Gn*N,ce=$s(Un,r),se=Jn*O+Zn*f+2*js(ie),ue=B*S,fe=$s(d,i),le=I*P+L*a+js(ue),ae=z*E,pe=$s(m,c),he=w*A+j*p+js(ae),de=Kn+ee,ve=Xs(te,re),ge=ne+oe+js(de),me=de+ie,be=Xs(ve,ce),xe=ge+se+js(me),Ie=ue+ae,we=Xs(fe,pe),_e=le+he+js(Ie),Ne=me+Ie,Me=Xs(be,we),Se=xe+_e+js(Ne),Ee=W*_,ye=$s(dt,e),Ce=vt*(C+u)+2*js(Ee),Oe=it*M,Te=$s(Ht,o),Pe=Dt*(T+l)+2*js(Oe),Ae=Q+Z,ke=Xs(xt,Ct),Be=js(Ae),Fe=It+Ot+Be,ze=Ae*N,Ye=$s(ke,r),Ve=Fe*O+Be*f+2*js(ze),Le=2*(Ee+Oe),$e=Vs(Xs(ye,Te)),Xe=2*(Ce+Pe)+js(Le),je=k*S,qe=$s(v,i),We=V*a+2*js(je),He=F*E,De=$s(b,c),Qe=X*p+2*js(He),Re=Le+ze,Ge=Xs($e,Ye),Ue=Xe+Ve+js(Re),Ze=je+He,Je=Xs(qe,De),Ke=We+Qe+js(Ze),tr=Re+Ze,nr=Xs(Ge,Je),er=Ue+Ke+js(tr),rr=q*_,or=$s(ht,e),ir=lt*u+2*js(rr),cr=D*N,sr=$s(bt,r),ur=at*f+2*js(cr),fr=ot*M,lr=$s(Wt,o),ar=pt*l+2*js(fr),pr=g*S,hr=Ls(g,i),dr=Y*a+js(pr),vr=x*E,gr=Ls(x,c),mr=$*p+js(vr),br=rr+cr,xr=Xs(or,sr),Ir=ir+ur+js(br),wr=br+fr,_r=Xs(xr,lr),Nr=Ir+ar+js(wr),Mr=pr+vr,Sr=Xs(hr,gr),Er=dr+mr+js(Mr),yr=wr+Mr,Cr=Xs(_r,Sr),Or=Nr+Er+js(yr),Tr=yr+y,Pr=Xs(Cr,s),Ar=Or+h+js(Tr);return{coeffs:[mn,zn,Me,nr,Pr],errBound:[qs*bn,qs*Yn,qs*Se,qs*er,qs*Ar]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=fs(t),{coeffs:[[d,v,g,[,m]],[b,x,I,[,w]]],errorBound:[[_,N,M],[S,E,y]]}=qc(n),C=e[1],O=r[1],T=o[1],P=i[1],A=c[1],k=s[1],B=su(C),F=su(O),z=su(T),Y=su(P),V=su(A),L=g[1],$=v[1],X=d[1],j=I[1],q=x[1],W=b[1],H=su(m),D=su(L),Q=su($),R=su(X),G=su(w),U=su(j),Z=su(q),J=su(W),K=m*m,tt=m*L,nt=m*$,et=m*X,rt=m*w,ot=m*j,it=m*q,ct=m*W,st=L*L,ut=L*$,ft=L*X,lt=L*w,at=L*j,pt=L*q,ht=L*W,dt=$*j,vt=$*$,gt=$*X,mt=$*w,bt=$*q,xt=$*W,It=X*X,wt=X*w,_t=X*j,Nt=X*q,Mt=X*W,St=w*w,Et=w*j,yt=w*q,Ct=w*W,Ot=j*j,Tt=j*q,Pt=W*W,At=q*q,kt=q*W,Bt=j*W,Ft=eu(m,m),zt=su(K),Yt=ou(m,g),Vt=su(tt),Lt=H*M+Vt,$t=ou(m,v),Xt=H*N+su(nt),jt=ou(m,d),qt=H*_+su(et),Wt=eu(m,w),Ht=su(rt),Dt=ou(m,I),Qt=H*y+su(ot),Rt=ou(m,x),Gt=H*E+su(it),Ut=ou(m,b),Zt=H*S+su(ct),Jt=iu(g,g),Kt=M*D+D*M+2*su(st),tn=iu(g,v),nn=M*Q+D*N+2*su(ut),en=iu(g,d),rn=M*R+D*_+2*su(ft),on=ou(w,g),cn=G*M+su(lt),sn=iu(g,I),un=M*U+D*y+2*su(at),fn=iu(g,x),ln=M*Z+D*E+2*su(pt),an=iu(g,b),pn=M*J+D*S+2*su(ht),hn=iu(v,I),dn=N*U+Q*y+2*su(dt),vn=iu(v,v),gn=N*Q+Q*N+2*su(vt),mn=iu(v,d),bn=su(gt),xn=N*R+Q*_+2*bn,In=ou(w,v),wn=G*N+su(mt),_n=iu(v,x),Nn=N*Z+Q*E+2*su(bt),Mn=iu(v,b),Sn=N*J+Q*S+2*su(xt),En=iu(d,d),yn=su(It),Cn=_*R+R*_+2*yn,On=ou(w,d),Tn=G*_+su(wt),Pn=iu(d,I),An=_*U+R*y+2*su(_t),kn=iu(d,x),Bn=_*Z+R*E+2*su(Nt),Fn=iu(d,b),zn=su(Mt),Yn=_*J+R*S+2*zn,Vn=eu(w,w),Ln=su(St),$n=ou(w,I),Xn=su(Et),jn=G*y+Xn,qn=ou(w,x),Wn=G*E+su(yt),Hn=ou(w,b),Dn=G*S+su(Ct),Qn=iu(I,I),Rn=y*U+U*y+2*su(Ot),Gn=iu(I,x),Un=y*Z+U*E+2*su(Tt),Zn=iu(b,b),Jn=su(Pt),Kn=S*J+J*S+2*Jn,te=iu(x,x),ne=E*Z+Z*E+2*su(At),ee=iu(x,b),re=su(kt),oe=E*J+Z*S+2*re,ie=iu(I,b),ce=y*J+U*S+2*su(Bt),se=It*C,ue=iu(En,e),fe=Cn*B+yn*u+2*su(se),le=Mt*O,ae=iu(Fn,r),pe=Yn*F+zn*f+2*su(le),he=Pt*T,de=iu(Zn,o),ve=Kn*z+Jn*l+2*su(he),ge=se+le,me=cu(ue,ae),be=fe+pe+su(ge),xe=ge+he,Ie=cu(me,de),we=be+ve+su(xe),_e=gt*C,Ne=iu(mn,e),Me=xn*B+bn*u+2*su(_e),Se=kt*T,Ee=iu(ee,o),ye=oe*z+re*l+2*su(Se),Ce=_e+Se,Oe=cu(Ne,Ee),Te=Me+ye+su(Ce),Pe=xt+Nt,Ae=cu(Mn,kn),ke=su(Pe),Be=Sn+Bn+ke,Fe=Pe*O,ze=iu(Ae,r),Ye=Be*F+ke*f+2*su(Fe),Ve=2*Ce+Fe,Le=cu(ru(Oe),ze),$e=2*Te+Ye+su(Ve),Xe=2*ft+vt,je=cu(ru(en),vn),qe=su(Xe),We=2*rn+gn+su(Xe),He=2*Bt+At,De=cu(ru(ie),te),Qe=su(He),Re=2*ce+ne+su(He),Ge=ht+bt,Ue=cu(an,_n),Ze=pn+Nn+su(Ge),Je=Ge+_t,Ke=cu(Ue,Pn),tr=su(Je),nr=Ze+An+tr,er=Xe*C,rr=iu(je,e),or=We*B+qe*u+2*su(er),ir=He*T,cr=iu(De,o),sr=Re*z+Qe*l+2*su(ir),ur=er+ir,fr=cu(rr,cr),lr=or+sr+su(ur),ar=Je*O,pr=iu(Ke,r),hr=nr*F+tr*f+2*su(ar),dr=ur+ar,vr=cu(fr,pr),gr=lr+hr+su(dr),mr=et+ut,br=cu(jt,tn),xr=su(mr),Ir=qt+nn+xr,wr=Ct+Tt,_r=cu(Hn,Gn),Nr=su(wr),Mr=Dn+Un+Nr,Sr=ct+pt,Er=cu(Ut,fn),yr=Zt+ln+su(Sr),Cr=dt+wt,Or=cu(hn,On),Tr=dn+Tn+su(Cr),Pr=Sr+Cr,Ar=cu(Er,Or),kr=su(Pr),Br=yr+Tr+kr,Fr=mr*C,zr=iu(br,e),Yr=Ir*B+xr*u+2*su(Fr),Vr=wr*T,Lr=iu(_r,o),$r=Mr*z+Nr*l+2*su(Vr),Xr=2*(Fr+Vr),jr=ru(cu(zr,Lr)),qr=2*(Yr+$r)+su(Xr),Wr=Pr*O,Hr=iu(Ar,r),Dr=Br*F+kr*f+2*su(Wr),Qr=X*P,Rr=iu(d,i),Gr=_*Y+R*a+2*su(Qr),Ur=W*A,Zr=iu(b,c),Jr=S*V+J*p+2*su(Ur),Kr=Qr+Ur,to=cu(Rr,Zr),no=Gr+Jr+su(Kr),eo=Xr+Wr,ro=cu(jr,Hr),oo=qr+Dr+su(eo),io=eo+Kr,co=cu(ro,to),so=oo+no+su(io),uo=2*nt+st,fo=cu(ru($t),Jt),lo=su(uo),ao=2*Xt+Kt+lo,po=2*yt+Ot,ho=cu(ru(qn),Qn),vo=su(po),go=2*Wn+Rn+vo,mo=it+at,bo=cu(Rt,sn),xo=Gt+un+su(mo),Io=mo+mt,wo=cu(bo,In),_o=su(Io),No=xo+wn+_o,Mo=uo*C,So=iu(fo,e),Eo=ao*B+lo*u+2*su(Mo),yo=po*T,Co=iu(ho,o),Oo=go*z+vo*l+2*su(yo),To=Io*O,Po=iu(wo,r),Ao=No*F+_o*f+2*su(To),ko=Mo+yo,Bo=cu(So,Co),Fo=Eo+Oo+su(ko),zo=ko+To,Yo=cu(Bo,Po),Vo=Fo+Ao+su(zo),Lo=$*P,$o=iu(v,i),Xo=N*Y+Q*a+2*su(Lo),jo=q*A,qo=iu(x,c),Wo=E*V+Z*p+2*su(jo),Ho=Lo+jo,Do=cu($o,qo),Qo=Xo+Wo+su(Ho),Ro=zo+Ho,Go=cu(Yo,Do),Uo=Vo+Qo+su(Ro),Zo=tt*C,Jo=iu(Yt,e),Ko=Lt*B+Vt*u+2*su(Zo),ti=Et*T,ni=iu($n,o),ei=jn*z+Xn*l+2*su(ti),ri=ot+lt,oi=cu(Dt,on),ii=su(ri),ci=Qt+cn+ii,si=ri*O,ui=iu(oi,r),fi=ci*F+ii*f+2*su(si),li=2*(Zo+ti),ai=ru(cu(Jo,ni)),pi=2*(Ko+ei)+su(li),hi=li+si,di=cu(ai,ui),vi=pi+fi+su(hi),gi=L*P,mi=iu(g,i),bi=M*Y+D*a+2*su(gi),xi=j*A,Ii=iu(I,c),wi=y*V+U*p+2*su(xi),_i=gi+xi,Ni=cu(mi,Ii),Mi=bi+wi+su(_i),Si=hi+_i,Ei=cu(di,Ni),yi=vi+Mi+su(Si),Ci=K*C,Oi=iu(Ft,e),Ti=zt*u+2*su(Ci),Pi=rt*O,Ai=iu(Wt,r),ki=Ht*f+2*su(Pi),Bi=St*T,Fi=iu(Vn,o),zi=Ln*l+2*su(Bi),Yi=m*P,Vi=ou(m,i),Li=H*a+su(Yi),$i=w*A,Xi=ou(w,c),ji=G*p+su($i),qi=Ci+Pi,Wi=cu(Oi,Ai),Hi=Ti+ki+su(qi),Di=qi+Bi,Qi=cu(Wi,Fi),Ri=Hi+zi+su(Di),Gi=Yi+$i,Ui=cu(Vi,Xi),Zi=Li+ji+su(Gi),Ji=Di+Gi,Ki=cu(Qi,Ui),tc=Ri+Zi+su(Ji),nc=Ji+k,ec=cu(Ki,s),rc=tc+h+su(nc);return{coeffs:[Ie,Le,vr,co,Go,Ei,ec],errBound:[uu*we,uu*$e,uu*gr,uu*so,uu*Uo,uu*yi,uu*rc]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:I,v_:w}}=Ms(t),[[_,[,N]],[M,[,S]]]=Hc(n),E=e[1],y=r[1],C=o[1],O=i[1],T=c[1],P=s[1],A=u[1],k=f[1],B=l[1],F=a[1],z=_[1],Y=M[1],V=Ts(N),L=Ts(z),$=Ts(S),X=Ts(Y),j=N*N,q=N*z,W=N*S,H=N*Y,D=z*z,Q=z*S,R=z*Y,G=S*S,U=S*Y,Z=Y*Y,J=Ss(N,N),K=ys(N,_),tt=Ts(q),nt=Ss(N,S),et=ys(N,M),rt=Ts(H),ot=Cs(_,_),it=2*Ts(D),ct=ys(S,_),st=Ts(Q),ut=Cs(_,M),ft=2*Ts(R),lt=Ss(S,S),at=ys(S,M),pt=Ts(U),ht=Cs(M,M),dt=2*Ts(Z),vt=Ts(j),gt=Ts(q),mt=Ts(W),bt=Ts(H),xt=Ts(D),It=Ts(Q),wt=Ts(R),_t=Ts(G),Nt=Ts(U),Mt=Ts(Z),St=N*E,Et=ys(N,e),yt=V*p+Ts(St),Ct=3*N,Ot=Ss(3,N),Tt=Ts(Ct),Pt=Ct*E,At=Cs(Ot,e),kt=Tt*p+2*Ts(Pt),Bt=N*y,Ft=ys(N,r),zt=V*h+Ts(Bt),Yt=S*y,Vt=ys(S,r),Lt=$*h+Ts(Yt),$t=N*C,Xt=ys(N,o),jt=V*d+Ts($t),qt=S*C,Wt=ys(S,o),Ht=$*d+Ts(qt),Dt=S*O,Qt=ys(S,i),Rt=$*v+Ts(Dt),Gt=3*S,Ut=Ss(3,S),Zt=Ts(Gt),Jt=Gt*O,Kt=Cs(Ut,i),tn=Zt*v+2*Ts(Jt),nn=z*E,en=Cs(_,e),rn=L*p+2*Ts(nn),on=z*C,cn=Cs(_,o),sn=L*d+2*Ts(on),un=Y*y,fn=Cs(M,r),ln=X*h+2*Ts(un),an=Y*O,pn=Cs(M,i),hn=X*v+2*Ts(an),dn=nn+un,vn=Os(en,fn),gn=Ts(dn),mn=rn+ln+gn,bn=on+an,xn=Os(cn,pn),In=Ts(bn),wn=sn+hn+In,_n=D*dn,Nn=Cs(ot,vn),Mn=it*gn+xt*mn+2*Ts(_n),Sn=Z*bn,En=Cs(ht,xn),yn=dt*In+Mt*wn+2*Ts(Sn),Cn=_n+Sn,On=Os(Nn,En),Tn=Mn+yn+Ts(Cn),Pn=Pt+Yt,An=Os(At,Vt),kn=kt+Lt+Ts(Pn),Bn=2*(Bt+qt),Fn=Es(Os(Ft,Wt)),zn=2*(zt+Ht)+Ts(Bn),Yn=$t+Jt,Vn=Os(Xt,Kt),Ln=jt+tn+Ts(Yn),$n=Pn+T,Xn=Os(An,c),jn=Ts($n),qn=kn+g+jn,Wn=Bn+P,Hn=Os(Fn,s),Dn=Ts(Wn),Qn=zn+m+Dn,Rn=Yn+A,Gn=Os(Vn,u),Un=Ts(Rn),Zn=Ln+b+Un,Jn=D*$n,Kn=Cs(ot,Xn),te=it*jn+xt*qn+2*Ts(Jn),ne=R*Wn,ee=Cs(ut,Hn),re=ft*Dn+wt*Qn+2*Ts(ne),oe=Z*Rn,ie=Cs(ht,Gn),ce=dt*Un+Mt*Zn+2*Ts(oe),se=Jn+ne,ue=Os(Kn,ee),fe=te+re+Ts(se),le=se+oe,ae=Os(ue,ie),pe=fe+ce+Ts(le),he=2*(Yt+T),de=Es(Os(Vt,c)),ve=2*(Lt+g)+Ts(he),ge=2*($t+A),me=Es(Os(Xt,u)),be=2*(jt+b)+Ts(ge),xe=Pt+he,Ie=Os(At,de),we=Ts(xe),_e=kt+ve+we,Ne=Jt+ge,Me=Os(Kt,me),Se=Ts(Ne),Ee=tn+be+Se,ye=Bt+P,Ce=Os(Ft,s),Oe=Ts(ye),Te=zt+m+Oe,Pe=qt+P,Ae=Os(Wt,s),ke=Ts(Pe),Be=Ht+m+ke,Fe=q*xe,ze=Cs(K,Ie),Ye=tt*we+gt*_e+2*Ts(Fe),Ve=U*Ne,Le=Cs(at,Me),$e=pt*Se+Nt*Ee+2*Ts(Ve),Xe=H*ye,je=Cs(et,Ce),qe=rt*Oe+bt*Te+2*Ts(Xe),We=Q*Pe,He=Cs(ct,Ae),De=st*ke+It*Be+2*Ts(We),Qe=z*k,Re=Cs(_,f),Ge=L*x+2*Ts(Qe),Ue=Y*B,Ze=Cs(M,l),Je=X*I+2*Ts(Ue),Ke=Fe+Ve,tr=Os(ze,Le),nr=Ye+$e+Ts(Ke),er=Xe+We,rr=Os(je,He),or=qe+De+Ts(er),ir=Ke+er,cr=Os(tr,rr),sr=nr+or+Ts(ir),ur=Qe+Ue,fr=Os(Re,Ze),lr=Ge+Je+Ts(ur),ar=ir+ur,pr=Os(cr,fr),hr=sr+lr+Ts(ar),dr=St+Yt,vr=Os(Et,Vt),gr=yt+Lt+Ts(dr),mr=Dt+$t,br=Os(Qt,Xt),xr=Rt+jt+Ts(mr),Ir=dr+T,wr=Os(vr,c),_r=gr+g+Ts(Ir),Nr=mr+A,Mr=Os(br,u),Sr=xr+b+Ts(Nr),Er=j*Ir,yr=Cs(J,wr),Cr=vt*_r+2*Ts(Er),Or=G*Nr,Tr=Cs(lt,Mr),Pr=_t*Sr+2*Ts(Or),Ar=W*P,kr=Cs(nt,s),Br=mt*m+2*Ts(Ar),Fr=Er+Or,zr=Os(yr,Tr),Yr=Cr+Pr+Ts(Fr),Vr=Fr+Ar,Lr=Os(zr,kr),$r=Yr+Br+Ts(Vr),Xr=N*k,jr=ys(N,f),qr=V*x+Ts(Xr),Wr=S*B,Hr=ys(S,l),Dr=$*I+Ts(Wr),Qr=Xr+Wr,Rr=Os(jr,Hr),Gr=qr+Dr+Ts(Qr),Ur=Vr+Qr,Zr=Os(Lr,Rr),Jr=$r+Gr+Ts(Ur),Kr=Ur+F,to=Os(Zr,a),no=Jr+w+Ts(Kr);return{coeffs:[On,ae,pr,to],errBound:[Ps*Tn,Ps*pe,Ps*hr,Ps*no]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:I,v_:w}}=Ms(t),{coeffs:[[_,N,[,M]],[S,E,[,y]]],errorBound:[[C],[O]]}=Wc(n),T=e[1],P=r[1],A=o[1],k=i[1],B=c[1],F=s[1],z=u[1],Y=f[1],V=l[1],L=a[1],$=Gs(T),X=Gs(P),j=Gs(A),q=Gs(k),W=Gs(B),H=Gs(z),D=Gs(F),Q=Gs(Y),R=Gs(V),G=N[1],U=_[1],Z=E[1],J=S[1],K=Gs(M),tt=Gs(G),nt=Gs(U),et=Gs(y),rt=Gs(Z),ot=Gs(J),it=M*M,ct=M*G,st=M*U,ut=M*y,ft=M*Z,lt=M*J,at=G*G,pt=G*U,ht=G*y,dt=G*Z,vt=G*J,gt=U*Z,mt=U*U,bt=U*y,xt=U*J,It=y*y,wt=y*Z,_t=y*J,Nt=Z*Z,Mt=Z*J,St=J*J,Et=Ws(M,M),yt=Ds(M,N),Ct=Gs(ct),Ot=Ds(M,_),Tt=K*C+Gs(st),Pt=Ws(M,y),At=Ds(M,E),kt=Gs(ft),Bt=Ds(M,S),Ft=K*O+Gs(lt),zt=Qs(N,N),Yt=2*Gs(at),Vt=Qs(N,_),Lt=tt*C+2*Gs(pt),$t=Ds(y,N),Xt=Gs(ht),jt=Qs(N,E),qt=2*Gs(dt),Wt=Qs(N,S),Ht=tt*O+2*Gs(vt),Dt=Qs(_,E),Qt=C*rt+2*Gs(gt),Rt=Qs(_,_),Gt=2*(C*nt+Gs(mt)),Ut=Ds(y,_),Zt=et*C+Gs(bt),Jt=Qs(_,S),Kt=C*ot+nt*O+2*Gs(xt),tn=Ws(y,y),nn=Ds(y,E),en=Gs(wt),rn=Ds(y,S),on=et*O+Gs(_t),cn=Qs(E,E),sn=2*Gs(Nt),un=Qs(E,S),fn=rt*O+2*Gs(Mt),ln=Qs(S,S),an=2*(O*ot+Gs(St)),pn=Gs(it),hn=Gs(ct),dn=Gs(ut),vn=Gs(ft),gn=Gs(pt),mn=Gs(mt),bn=Gs(xt),xn=Gs(ht),In=Gs(It),wn=Gs(wt),_n=Gs(Mt),Nn=Gs(St),Mn=Qs(_,e),Sn=U*T,En=C*$+nt*p+2*Gs(Sn),yn=Qs(_,o),Cn=U*A,On=C*j+nt*d+2*Gs(Cn),Tn=Qs(S,r),Pn=J*P,An=O*X+ot*h+2*Gs(Pn),kn=Qs(S,i),Bn=J*k,Fn=O*q+ot*v+2*Gs(Bn),zn=Sn+Pn,Yn=Rs(Mn,Tn),Vn=Gs(zn),Ln=En+An+Vn,$n=Cn+Bn,Xn=Rs(yn,kn),jn=Gs($n),qn=On+Fn+jn,Wn=mt*zn,Hn=Qs(Rt,Yn),Dn=Gt*Vn+mn*Ln+2*Gs(Wn),Qn=St*$n,Rn=Qs(ln,Xn),Gn=an*jn+Nn*qn+2*Gs(Qn),Un=Wn+Qn,Zn=Rs(Hn,Rn),Jn=Dn+Gn+Gs(Un),Kn=st+at,te=Rs(Ot,zt),ne=Gs(Kn),ee=Tt+Yt+ne,re=_t+Nt,oe=Rs(rn,cn),ie=Gs(re),ce=on+sn+ie,se=2*st+at,ue=Gs(se),fe=Rs(Hs(Ot),zt),le=2*Tt+Yt+ue,ae=2*_t+Nt,pe=Rs(Hs(rn),cn),he=Gs(ae),de=2*on+sn+he,ve=2*dt+bt,ge=Rs(Hs(jt),Ut),me=Gs(ve),be=2*qt+Zt+me,xe=2*dt+lt,Ie=Rs(Hs(jt),Bt),we=Gs(xe),_e=2*qt+Ft+we,Ne=2*bt+dt,Me=Rs(Hs(Ut),jt),Se=2*Zt+qt+Gs(Ne),Ee=6*st+at,ye=6*st,Ce=Ds(6,Ot),Oe=6*Tt+Gs(ye),Te=Rs(Ce,zt),Pe=Oe+Yt+Gs(ye+at),Ae=6*_t+Nt,ke=6*_t,Be=Ds(6,rn),Fe=6*on+Gs(ke),ze=Rs(Be,cn),Ye=Fe+sn+Gs(ke+Nt),Ve=vt+gt,Le=Rs(Wt,Dt),$e=Gs(Ve),Xe=Ht+Qt+$e,je=lt+bt,qe=Rs(Bt,Ut),We=Ft+Zt+Gs(je),He=2*ht+ft,De=Rs(Hs($t),At),Qe=2*Xt+kt+Gs(He),Re=2*ft+ht,Ge=Rs(Hs(At),$t),Ue=2*kt+Xt+Gs(Re),Ze=lt+dt,Je=Rs(Bt,jt),Ke=Ft+qt+Gs(Ze),tr=Ze+bt,nr=Rs(Je,Ut),er=Gs(tr),rr=Ke+Zt+er,or=3*mt,ir=Ds(3,Rt),cr=3*Gt+Gs(or),sr=Gs(or),ur=3*St,fr=Ds(3,ln),lr=3*an+Gs(ur),ar=Gs(ur),pr=or*T,hr=Qs(ir,e),dr=cr*$+sr*p+2*Gs(pr),vr=mt*P,gr=Qs(Rt,r),mr=Gt*X+mn*h+2*Gs(vr),br=2*xt*P,xr=Hs(Qs(Jt,r)),Ir=2*(Kt*X+bn*h+Gs(br)),wr=2*xt*A,_r=Hs(Qs(Jt,o)),Nr=2*(Kt*j+bn*d+Gs(wr)),Mr=St*A,Sr=Qs(ln,o),Er=an*j+Nn*d+2*Gs(Mr),yr=ur*k,Cr=Qs(fr,i),Or=lr*q+ar*v+2*Gs(yr),Tr=pr+br,Pr=Rs(hr,xr),Ar=dr+Ir+Gs(Tr),kr=vr+wr,Br=Rs(gr,_r),Fr=mr+Nr+Gs(kr),zr=Tr+Mr,Yr=Rs(Pr,Sr),Vr=Ar+Er+Gs(zr),Lr=kr+yr,$r=Rs(Br,Cr),Xr=Fr+Or+Gs(Lr),jr=G*zr,qr=Qs(N,Yr),Wr=tt*Vr+Gs(jr),Hr=Z*Lr,Dr=Qs(E,$r),Qr=rt*Xr+Gs(Hr),Rr=jr+Hr,Gr=Rs(qr,Dr),Ur=Wr+Qr+Gs(Rr),Zr=J*se,Jr=Qs(S,fe),Kr=O*ue+ot*le+2*Gs(Zr),to=J*xe,no=Qs(S,Ie),eo=O*we+ot*_e+2*Gs(to),ro=U*ve,oo=Qs(_,ge),io=C*me+nt*be+2*Gs(ro),co=U*ae,so=Qs(_,pe),uo=C*he+nt*de+2*Gs(co),fo=3*U,lo=Ds(3,_),ao=Gs(fo),po=3*C+ao,ho=fo*Kn,vo=Qs(lo,te),go=Gs(ho),mo=po*ne+ao*ee+go,bo=3*J,xo=Ds(3,S),Io=Gs(bo),wo=3*O+Io,_o=bo*re,No=Qs(xo,oe),Mo=Gs(_o),So=wo*ie+Io*ce+Mo,Eo=Zr+ro,yo=Rs(Jr,oo),Co=Gs(Eo),Oo=Kr+io+Co,To=to+co,Po=Rs(no,so),Ao=Gs(To),ko=eo+uo+Ao,Bo=ho*T,Fo=Qs(vo,e),zo=mo*$+go*p+2*Gs(Bo),Yo=_o*k,Vo=Qs(No,i),Lo=So*q+Mo*v+2*Gs(Yo),$o=Eo*P,Xo=Qs(yo,r),jo=Oo*X+Co*h+2*Gs($o),qo=To*A,Wo=Qs(Po,o),Ho=ko*j+Ao*d+2*Gs(qo),Do=Bo+Yo,Qo=Rs(Fo,Vo),Ro=zo+Lo+Gs(Do),Go=$o+qo,Uo=Rs(Xo,Wo),Zo=jo+Ho+Gs(Go),Jo=mt*B,Ko=Qs(Rt,c),ti=Gt*W+mn*g+2*Gs(Jo),ni=St*z,ei=Qs(ln,u),ri=an*H+Nn*b+2*Gs(ni),oi=xt*F,ii=Qs(Jt,s),ci=Kt*D+bn*m+2*Gs(oi),si=Jo+ni,ui=Rs(Ko,ei),fi=ti+ri+Gs(si),li=Do+Go,ai=Rs(Qo,Uo),pi=Ro+Zo+Gs(li),hi=si+oi,di=Rs(ui,ii),vi=fi+ci+Gs(hi),gi=li+hi,mi=Rs(ai,di),bi=pi+vi+Gs(gi),xi=G*Ee,Ii=Qs(N,Te),wi=tt*Pe+2*Gs(xi),_i=2*wi,Ni=Z*Ae,Mi=Qs(E,ze),Si=rt*Ye+2*Gs(Ni),Ei=2*Si,yi=2*M*Ve,Ci=Ds(2*M,Le),Oi=2*K*Xe+Gs(yi),Ti=2*Z*je,Pi=Qs(Hs(E),qe),Ai=2*rt*We+2*Gs(Ti),ki=G*Ne,Bi=Qs(N,Me),Fi=tt*Se+2*Gs(ki),zi=G*ae,Yi=Qs(N,pe),Vi=tt*de+2*Gs(zi),Li=yi+ki,$i=Rs(Ci,Bi),Xi=Oi+Fi+Gs(Li),ji=Oi+Fi+Xi,qi=Ti+zi,Wi=Rs(Pi,Yi),Hi=Ai+Vi+Gs(qi),Di=Ai+Vi+Hi,Qi=Mt*z,Ri=Qs(un,u),Gi=fn*H+_n*b+2*Gs(Qi),Ui=pt*B,Zi=Qs(Vt,c),Ji=Lt*W+gn*g+2*Gs(Ui),Ki=Ve*F,tc=Qs(Le,s),nc=Xe*D+$e*m+2*Gs(Ki),ec=Qi+Ui,rc=Rs(Ri,Zi),oc=Gi+Ji+Gs(ec),ic=xi*T,cc=Qs(Ii,e),sc=_i*$+wi*p+2*Gs(ic),uc=Li*P,fc=Qs($i,r),lc=ji*X+Xi*h+2*Gs(uc),ac=Ni*k,pc=Qs(Mi,i),hc=Ei*q+Si*v+2*Gs(ac),dc=qi*A,vc=Qs(Wi,o),gc=Di*j+Hi*d+2*Gs(dc),mc=ic+ac,bc=Rs(cc,pc),xc=sc+hc+Gs(mc),Ic=uc+dc,wc=Rs(fc,vc),_c=lc+gc+Gs(Ic),Nc=mc+Ic,Mc=Rs(bc,wc),Sc=xc+_c+Gs(Nc),Ec=2*ec+Ki,yc=Rs(Hs(rc),tc),Cc=2*oc+nc+Gs(Ec),Oc=Nc+Ec,Tc=Rs(Mc,yc),Pc=Sc+Cc+Gs(Oc),Ac=3*M,kc=Gs(Ac),Bc=Ws(3,M),Fc=Ac*Kn,zc=Qs(Bc,te),Yc=Gs(Fc),Vc=kc*ee+2*Gs(Fc),Lc=3*y,$c=Gs(Lc),Xc=Ws(3,y),jc=Lc*re,qc=Qs(Xc,oe),Hc=Gs(jc),Dc=$c*ce+2*Gs(jc),Qc=M*xe,Rc=Ds(M,Ie),Gc=K*_e+Gs(Qc),Uc=M*ae,Zc=Ds(M,pe),Jc=K*de+Gs(Uc),Kc=y*se,ts=Ds(y,fe),ns=et*le+Gs(Kc),es=y*ve,rs=Ds(y,ge),os=et*be+Gs(es),is=Qc+Kc,cs=Rs(Rc,ts),ss=Gs(is),us=Gc+ns+ss,fs=Uc+es,ls=Rs(Zc,rs),as=Gs(fs),ps=Jc+os+as,hs=Fc*T,ds=Qs(zc,e),vs=Vc*$+Yc*p+2*Gs(hs),gs=jc*k,ms=Qs(qc,i),bs=Dc*q+Hc*v+2*Gs(gs),xs=is*P,Is=Qs(cs,r),ws=us*X+ss*h+2*Gs(xs),_s=fs*A,Ns=Qs(ls,o),Ss=ps*j+as*d+2*Gs(_s),Es=se*B,ys=Qs(fe,c),Cs=le*W+ue*g+2*Gs(Es),Os=ae*z,Ts=Qs(pe,u),Ps=de*H+he*b+2*Gs(Os),As=tr*F,ks=Qs(nr,s),Bs=rr*D+er*m+2*Gs(As),Fs=U*Y,zs=Qs(_,f),Ys=C*Q+nt*x+2*Gs(Fs),Vs=J*V,Ls=Qs(S,l),$s=O*R+ot*I+2*Gs(Vs),Xs=hs+gs,js=Rs(ds,ms),qs=vs+bs+Gs(Xs),Zs=xs+_s,Js=Rs(Is,Ns),Ks=ws+Ss+Gs(Zs),tu=Es+Os,nu=Rs(ys,Ts),eu=Cs+Ps+Gs(tu),ru=Xs+Zs,ou=Rs(js,Js),iu=qs+Ks+Gs(ru),cu=tu+As,su=Rs(nu,ks),uu=eu+Bs+Gs(cu),fu=Fs+Vs,lu=Rs(zs,Ls),au=Ys+$s+Gs(fu),pu=ru+cu,hu=Rs(ou,su),du=iu+uu+Gs(pu),vu=pu+fu,gu=Rs(hu,lu),mu=du+au+Gs(vu),bu=Ac*ct,xu=Qs(Bc,yt),Iu=Gs(bu),wu=kc*Ct+2*Iu,_u=Lc*wt,Nu=Qs(Xc,nn),Mu=Gs(_u),Su=$c*en+2*Mu,Eu=M*He,yu=Ds(M,De),Cu=Gs(Eu),Ou=K*Qe+Gs(Eu),Tu=y*Re,Pu=Ds(y,Ge),Au=Gs(Tu),ku=et*Ue+Gs(Tu),Bu=ct*B,Fu=Qs(yt,c),zu=Ct*W+hn*g+2*Gs(Bu),Yu=wt*z,Vu=Qs(nn,u),Lu=en*H+wn*b+2*Gs(Yu),$u=ft*F,Xu=Qs(At,s),ju=kt*D+vn*m+2*Gs($u),qu=ht*F,Wu=Qs($t,s),Hu=Xt*D+xn*m+2*Gs(qu),Du=2*(Bu+Yu),Qu=Hs(Rs(Fu,Vu)),Ru=2*(zu+Lu)+Gs(Du),Gu=$u+qu,Uu=Rs(Xu,Wu),Zu=ju+Hu+Gs(Gu),Ju=G*Y,Ku=Qs(N,f),tf=tt*x+2*Gs(Ju),nf=Z*V,ef=Qs(E,l),rf=rt*I+2*Gs(nf),of=bu*T,cf=Qs(xu,e),sf=wu*$+Iu*p+2*Gs(of),uf=_u*k,ff=Qs(Nu,i),lf=Su*q+Mu*v+2*Gs(uf),af=Eu*P,pf=Qs(yu,r),hf=Ou*X+Cu*h+2*Gs(af),df=Tu*A,vf=Qs(Pu,o),gf=ku*j+Au*d+2*Gs(df),mf=of+uf,bf=Rs(cf,ff),xf=sf+lf+Gs(mf),If=af+df,wf=Rs(pf,vf),_f=hf+gf+Gs(If),Nf=mf+If,Mf=Rs(bf,wf),Sf=xf+_f+Gs(Nf),Ef=Du+Gu,yf=Rs(Qu,Uu),Cf=Ru+Zu+Gs(Ef),Of=Ju+nf,Tf=Rs(Ku,ef),Pf=tf+rf+Gs(Of),Af=Nf+Ef,kf=Rs(Mf,yf),Bf=Sf+Cf+Gs(Af),Ff=Af+Of,zf=Rs(kf,Tf),Yf=Bf+Pf+Gs(Ff),Vf=M*T,Lf=Ds(M,e),$f=K*p+Gs(Vf),Xf=M*A,jf=Ds(M,o),qf=K*d+Gs(Xf),Wf=y*P,Hf=Ds(y,r),Df=et*h+Gs(Wf),Qf=y*k,Rf=Ds(y,i),Gf=et*v+Gs(Qf),Uf=Vf+Wf,Zf=Rs(Lf,Hf),Jf=$f+Df+Gs(Uf),Kf=Xf+Qf,tl=Rs(jf,Rf),nl=qf+Gf+Gs(Kf),el=Uf+B,rl=Rs(Zf,c),ol=Jf+g+Gs(el),il=Kf+z,cl=Rs(tl,u),sl=nl+b+Gs(il),ul=it*el,fl=Qs(Et,rl),ll=pn*ol+2*Gs(ul),al=It*il,pl=Qs(tn,cl),hl=In*sl+2*Gs(al),dl=ut*F,vl=Qs(Pt,s),gl=dn*m+2*Gs(dl),ml=M*Y,bl=Ds(M,f),xl=K*x+Gs(ml),Il=y*V,wl=Ds(y,l),_l=et*I+Gs(Il),Nl=ul+al,Ml=Rs(fl,pl),Sl=ll+hl+Gs(Nl),El=Nl+dl,yl=Rs(Ml,vl),Cl=Sl+gl+Gs(El),Ol=ml+Il,Tl=Rs(bl,wl),Pl=xl+_l+Gs(Ol),Al=El+Ol,kl=Rs(yl,Tl),Bl=Cl+Pl+Gs(Al),Fl=Al+L,zl=Rs(kl,a),Yl=Bl+w+Gs(Fl);return{coeffs:[Zn,Gr,mi,Tc,gu,zf,zl],errBound:[Us*Jn,Us*Ur,Us*bi,Us*Pc,Us*mu,Us*Yf,Us*Yl]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:I,v_:w}}=Ms(t),{coeffs:[[_,N,M,[,S]],[E,y,C,[,O]]],errorBound:[[T,P,A],[k,B,F]]}=qc(n),z=e[1],Y=r[1],V=o[1],L=i[1],$=c[1],X=s[1],j=u[1],q=f[1],W=l[1],H=a[1],D=du(z),Q=du(Y),R=du(V),G=du(L),U=du($),Z=du(X),J=du(j),K=du(q),tt=du(W),nt=(du(H),M[1]),et=N[1],rt=_[1],ot=C[1],it=y[1],ct=E[1],st=du(S),ut=du(nt),ft=du(et),lt=du(rt),at=du(O),pt=du(ot),ht=du(it),dt=du(ct),vt=S*S,gt=S*nt,mt=S*et,bt=S*rt,xt=S*O,It=S*ot,wt=S*it,_t=S*ct,Nt=nt*nt,Mt=nt*et,St=nt*rt,Et=nt*O,yt=nt*ot,Ct=nt*it,Ot=nt*ct,Tt=et*ot,Pt=et*et,At=et*rt,kt=et*O,Bt=et*it,Ft=et*ct,zt=rt*rt,Yt=rt*O,Vt=rt*ot,Lt=rt*it,$t=rt*ct,Xt=O*O,jt=O*ot,qt=O*it,Wt=O*ct,Ht=ot*ot,Dt=ot*it,Qt=ct*ct,Rt=it*it,Gt=it*ct,Ut=ot*ct,Zt=fu(S,S),Jt=au(S,M),Kt=st*A+du(gt),tn=au(S,N),nn=st*P+du(mt),en=au(S,_),rn=st*T+du(bt),on=fu(S,O),cn=au(S,C),sn=st*F+du(It),un=au(S,y),fn=st*B+du(wt),ln=au(S,E),an=st*k+du(_t),pn=pu(M,M),hn=du(Nt),dn=2*(A*ut+hn),vn=pu(M,N),gn=A*ft+ut*P+2*du(Mt),mn=pu(M,_),bn=A*lt+ut*T+2*du(St),xn=au(O,M),In=at*A+du(Et),wn=pu(M,C),_n=A*pt+ut*F+2*du(yt),Nn=pu(M,y),Mn=A*ht+ut*B+2*du(Ct),Sn=pu(M,E),En=A*dt+ut*k+2*du(Ot),yn=pu(N,C),Cn=P*pt+ft*F+2*du(Tt),On=pu(N,N),Tn=du(Pt),Pn=2*(P*ft+Tn),An=pu(N,_),kn=P*lt+ft*T+2*du(At),Bn=au(O,N),Fn=at*P+du(kt),zn=pu(N,y),Yn=P*ht+ft*B+2*du(Bt),Vn=pu(N,E),Ln=P*dt+ft*k+2*du(Ft),$n=pu(_,_),Xn=2*(T*lt+du(zt)),jn=au(O,_),qn=at*T+du(Yt),Wn=pu(_,C),Hn=T*pt+lt*F+2*du(Vt),Dn=pu(_,y),Qn=du(Lt),Rn=T*ht+lt*B+2*Qn,Gn=pu(_,E),Un=T*dt+lt*k+2*du($t),Zn=fu(O,O),Jn=au(O,C),Kn=at*F+du(jt),te=au(O,y),ne=at*B+du(qt),ee=au(O,E),re=at*k+du(Wt),oe=pu(C,C),ie=du(Ht),ce=2*(F*pt+ie),se=pu(C,y),ue=F*ht+pt*B+2*du(Dt),fe=pu(E,E),le=2*(k*dt+du(Qt)),ae=pu(y,y),pe=du(Rt),he=2*(B*ht+pe),de=pu(y,E),ve=B*dt+ht*k+2*du(Gt),ge=pu(C,E),me=du(Ut),be=F*dt+pt*k+2*me,xe=du(vt),Ie=du(gt),we=du(At),_e=du(zt),Ne=du($t),Me=du(xt),Se=du(Xt),Ee=du(jt),ye=du(Gt),Ce=du(Qt),Oe=rt*zt,Te=pu(_,$n),Pe=lt*_e,Ae=T*_e+lt*Xn+2*Pe,ke=rt*Qt,Be=pu(_,fe),Fe=lt*Ce,ze=T*Ce+lt*le+2*Fe,Ye=ct*zt,Ve=pu(E,$n),Le=dt*_e,$e=k*_e+dt*Xn+2*Le,Xe=ct*Qt,je=pu(E,fe),qe=dt*Ce,We=k*Ce+dt*le+2*qe,He=Oe*z,De=pu(Te,e),Qe=Ae*D+Pe*p+2*du(He),Re=ke*V,Ge=pu(Be,o),Ue=ze*R+Fe*d+2*du(Re),Ze=Ye*Y,Je=pu(Ve,r),Ke=$e*Q+Le*h+2*du(Ze),tr=Xe*L,nr=pu(je,i),er=We*G+qe*v+2*du(tr),rr=He+Re,or=hu(De,Ge),ir=Qe+Ue+du(rr),cr=Ze+tr,sr=hu(Je,nr),ur=Ke+er+du(cr),fr=rr+cr,lr=hu(or,sr),ar=ir+ur+du(fr),pr=2*Ft+Lt,hr=du(pr),dr=hu(lu(Vn),Dn),vr=2*Ln+Rn+hr,gr=2*Lt+Ft,mr=du(gr),br=hu(lu(Dn),Vn),xr=2*Rn+Ln+du(gr),Ir=rt*pr,wr=du(Ir),_r=pu(_,dr),Nr=T*hr+lt*vr+2*wr,Mr=ct*gr,Sr=du(Mr),Er=pu(E,br),yr=k*mr+dt*xr+2*Sr,Cr=et*zt,Or=du(Cr),Tr=pu(N,$n),Pr=P*_e+ft*Xn+2*Or,Ar=it*Qt,kr=du(Ar),Br=pu(y,fe),Fr=B*Ce+ht*le+2*kr,zr=z*Cr,Yr=pu(e,Tr),Vr=Pr*D+D*Pr+2*du(zr),Lr=L*Ar,$r=pu(i,Br),Xr=Fr*G+G*Fr+2*du(Lr),jr=Y*Ir,qr=pu(r,_r),Wr=Nr*Q+Q*Nr+2*du(jr),Hr=V*Mr,Dr=pu(o,Er),Qr=yr*R+R*yr+2*du(Hr),Rr=jr+Hr,Gr=hu(qr,Dr),Ur=Wr+Qr+du(Rr),Zr=3*(zr+Lr),Jr=au(3,hu(Yr,$r)),Kr=3*(Vr+Xr)+2*du(Zr),to=Rr+Zr,no=hu(Gr,Jr),eo=Ur+Kr+du(to),ro=nt*$t,oo=pu(M,Gn),io=A*Ne+ut*Un+2*du(ro),co=ot*zt,so=pu(C,$n),uo=F*_e+pt*Xn+2*du(co),fo=et*Gt,lo=pu(N,de),ao=P*ye+ft*ve+2*du(fo),po=nt*Qt,ho=pu(M,fe),vo=A*Ce+ut*le+2*du(po),go=et*Lt,mo=pu(N,Dn),bo=P*Qn+ft*Rn+2*du(go),xo=ct*Pt,Io=pu(E,On),wo=k*Tn+dt*Pn+2*du(xo),_o=rt*Ut,No=pu(_,ge),Mo=T*me+lt*be+2*du(_o),So=it*Lt,Eo=pu(y,Dn),yo=B*Qn+ht*Rn+2*du(So),Co=ro+go,Oo=hu(oo,mo),To=io+bo+du(Co),Po=co+xo,Ao=hu(so,Io),ko=uo+wo+du(Po),Bo=fo+_o,Fo=hu(lo,No),zo=ao+Mo+du(Bo),Yo=po+So,Vo=hu(ho,Eo),Lo=vo+yo+du(Yo),$o=St+Pt,Xo=hu(mn,On),jo=du($o),qo=bn+Pn+jo,Wo=Ut+Rt,Ho=du(Wo),Do=hu(ge,ae),Qo=be+he+Ho,Ro=2*Co+Po,Go=hu(lu(Oo),Ao),Uo=du(Ro),Zo=2*To+ko+Uo,Jo=2*Bo+Yo,Ko=hu(lu(Fo),Vo),ti=du(Jo),ni=2*zo+Lo+ti,ei=Y*Ro,ri=pu(r,Go),oi=h*Uo+Q*Zo+2*du(ei),ii=V*Jo,ci=pu(o,Ko),si=d*ti+R*ni+2*du(ii),ui=rt*$o,fi=pu(_,Xo),li=du(ui),ai=T*jo+lt*qo+2*li,pi=ct*Wo,hi=pu(E,Do),di=du(pi),vi=k*Ho+dt*Qo+2*di,gi=z*ui,mi=pu(e,fi),bi=p*li+D*ai+2*du(gi),xi=L*pi,Ii=pu(i,hi),wi=v*di+G*vi+2*du(xi),_i=ei+ii,Ni=hu(ri,ci),Mi=oi+si+du(_i),Si=3*(gi+xi),Ei=au(3,hu(mi,Ii)),yi=3*(bi+wi)+2*du(Si),Ci=_i+Si,Oi=hu(Ni,Ei),Ti=Mi+yi+du(Ci),Pi=Ft+Lt,Ai=hu(Vn,Dn),ki=du(Pi),Bi=Ln+Rn+ki,Fi=it*Pt,zi=pu(y,On),Yi=B*Tn+ht*Pn+2*du(Fi),Vi=2*nt*Pi,Li=lu(pu(M,Ai)),$i=2*(A*ki+ut*Bi+2*du(Vi)),Xi=Fi+Vi,ji=hu(zi,Li),qi=Yi+$i+du(Xi),Wi=2*(_t+Tt),Hi=lu(hu(ln,yn)),Di=2*(an+Cn)+du(Wi),Qi=Wi+Yt,Ri=du(Qi),Gi=hu(Hi,jn),Ui=Di+qn+Ri,Zi=rt*Qi,Ji=pu(_,Gi),Ki=T*Ri+lt*Ui+2*du(Zi),tc=Xi+Zi,nc=hu(ji,Ji),ec=du(tc),rc=qi+Ki+ec,oc=et*Rt,ic=pu(N,ae),cc=P*pe+ft*he+2*du(oc),sc=2*ot*Pi,uc=lu(pu(C,Ai)),fc=2*(F*ki+pt*Bi+du(sc)),lc=oc+sc,ac=hu(ic,uc),pc=cc+fc+du(lc),hc=2*(Ct+Yt),dc=lu(hu(Nn,jn)),vc=2*(Mn+qn)+du(hc),gc=hc+_t,mc=hu(dc,ln),bc=du(gc),xc=vc+an+bc,Ic=ct*gc,wc=pu(E,mc),_c=k*bc+dt*xc+2*du(Ic),Nc=lc+Ic,Mc=hu(ac,wc),Sc=du(Nc),Ec=pc+_c+Sc,yc=et*Pt,Cc=pu(N,On),Oc=P*Tn+ft*Pn+2*du(yc),Tc=2*Mt+bt,Pc=hu(lu(vn),en),Ac=du(Tc),kc=2*gn+rn+Ac,Bc=3*rt,Fc=au(3,_),zc=du(Bc),Yc=3*T+zc,Vc=Bc*Tc,Lc=pu(Fc,Pc),$c=Yc*Ac+zc*kc+2*du(Vc),Xc=yc+Vc,jc=hu(Cc,Lc),Wc=du(Xc),Hc=Oc+$c+Wc,Dc=it*Rt,Qc=pu(y,ae),Rc=B*pe+ht*he+2*du(Dc),Gc=2*Dt+Wt,Uc=hu(lu(se),ee),Zc=du(Gc),Jc=2*ue+re+Zc,Kc=3*ct,ts=au(3,E),ns=du(Kc),es=3*k+ns,rs=Kc*Gc,os=pu(ts,Uc),is=es*Zc+ns*Jc+2*du(rs),cs=Dc+rs,ss=hu(Qc,os),us=du(cs),fs=Rc+is+us,ls=Y*tc,as=pu(r,nc),ps=h*ec+Q*rc+2*du(ls),hs=V*Nc,ds=pu(o,Mc),vs=d*Sc+R*Ec+2*du(hs),gs=ls+hs,ms=hu(as,ds),bs=ps+vs+du(gs),xs=z*Xc,Is=pu(e,jc),ws=p*Wc+D*Hc+2*du(xs),_s=L*cs,Ns=pu(i,ss),Ss=v*us+G*fs+2*du(_s),Es=xs+_s,ys=hu(Is,Ns),Cs=ws+Ss+du(Es),Os=$*zt,Ts=pu($n,c),Ps=Xn*U+_e*g+2*du(Os),As=j*Qt,ks=pu(fe,u),Bs=le*J+Ce*b+2*du(As),Fs=Os+As,zs=hu(Ts,ks),Ys=Ps+Bs+du(Fs),Vs=X*$t,Ls=pu(Gn,s),$s=Un*Z+Ne*m+2*du(Vs),Xs=gs+Es,js=hu(ms,ys),qs=bs+Cs+du(Xs),Ws=Fs+Vs,Hs=hu(zs,Ls),Ds=Ys+$s+du(Ws),Qs=Xs+Ws,Rs=hu(js,Hs),Gs=qs+Ds+du(Qs),Us=Bt+Vt,Zs=hu(zn,Wn),Js=du(Us),Ks=Yn+Hn+Js,tu=Ot+Bt,nu=hu(Sn,zn),eu=du(tu),ru=En+Yn+eu,ou=S*Pi,iu=au(S,Ai),cu=st*Bi+du(ou),su=O*Pi,uu=au(O,Ai),gu=at*Bi+du(su),mu=nt*Us,bu=pu(M,Zs),xu=A*Js+ut*Ks+2*du(mu),Iu=ot*tu,wu=pu(C,nu),_u=F*eu+pt*ru+2*du(Iu),Nu=2*Yt+Tt,Mu=hu(lu(jn),yn),Su=du(Nu),Eu=2*qn+Cn+Su,yu=2*_t+Ct,Cu=hu(lu(ln),Nn),Ou=du(yu),Tu=2*an+Mn+Ou,Pu=ct*Nt,Au=pu(E,pn),ku=k*hn+dt*dn+2*du(Pu),Bu=rt*Ht,Fu=pu(_,oe),zu=T*ie+lt*ce+2*du(Bu),Yu=et*Nu,Vu=pu(N,Mu),Lu=P*Su+ft*Eu+2*du(Yu),$u=it*yu,Xu=pu(y,Cu),ju=B*Ou+ht*Tu+2*du($u),qu=2*(ou+mu),Wu=lu(hu(iu,bu)),Hu=2*(cu+xu)+du(qu),Du=2*(su+Iu),Qu=lu(hu(uu,wu)),Ru=2*(gu+_u)+du(Du),Gu=2*S*At,Uu=lu(au(S,An)),Zu=2*st*kn+du(Gu),Ju=2*O*Gt,Ku=lu(au(O,de)),tf=2*at*ve+du(Ju),nf=nt*$o,ef=pu(M,Xo),rf=A*jo+ut*qo+2*du(nf),of=ot*Wo,cf=pu(C,Do),sf=F*Ho+pt*Qo+2*du(of),uf=$*At,ff=pu(An,c),lf=kn*U+we*g+2*du(uf),af=j*Gt,pf=pu(de,u),hf=ve*J+ye*b+2*du(af),df=qu+Pu,vf=hu(Wu,Au),gf=du(df),mf=Hu+ku+gf,bf=Du+Bu,xf=hu(Qu,Fu),If=du(bf),wf=Ru+zu+If,_f=df+Yu,Nf=hu(vf,Vu),Mf=du(_f),Sf=mf+Lu+Mf,Ef=bf+$u,yf=hu(xf,Xu),Cf=du(Ef),Of=wf+ju+Cf,Tf=Gu+nf,Pf=hu(Uu,ef),Af=du(Tf),kf=Zu+rf+Af,Bf=Ju+of,Ff=hu(Ku,cf),zf=du(Bf),Yf=tf+sf+zf,Vf=2*(uf+af),Lf=lu(hu(ff,pf)),$f=2*(lf+hf)+du(Vf),Xf=Y*_f,jf=pu(r,Nf),qf=h*Mf+Q*Sf+2*du(Xf),Wf=V*Ef,Hf=pu(o,yf),Df=d*Cf+R*Of+2*du(Wf),Qf=z*Tf,Rf=pu(e,Pf),Gf=p*Af+D*kf+2*du(Qf),Uf=L*Bf,Zf=pu(i,Ff),Jf=v*zf+G*Yf+2*du(Uf),Kf=Xf+Wf,tl=hu(jf,Hf),nl=qf+Df+du(Kf),el=3*(Qf+Uf),rl=au(3,hu(Rf,Zf)),ol=3*(Gf+Jf)+2*du(el),il=X*Pi,cl=pu(s,Ai),sl=m*ki+Z*Bi+2*du(il),ul=Kf+el,fl=hu(tl,rl),ll=nl+ol+du(ul),al=il+Vf,pl=hu(cl,Lf),hl=sl+$f+du(al),dl=ul+al,vl=hu(fl,pl),gl=ll+hl+du(dl),ml=Ot+Us,bl=hu(Sn,Zs),xl=du(ml),Il=En+Ks+xl,wl=2*St+Pt,_l=hu(lu(mn),On),Nl=du(wl),Ml=2*bn+Pn+Nl,Sl=2*Ut+Rt,El=hu(lu(ge),ae),yl=du(Sl),Cl=2*be+he+yl,Ol=2*S*ml,Tl=au(2*S,bl),Pl=2*st*Il+du(Ol),Al=2*O*ml,kl=au(2*O,bl),Bl=2*at*Il+du(Al),Fl=Ct+2*Tt,zl=hu(Nn,lu(yn)),Yl=du(Fl),Vl=Mn+2*Cn+Yl,Ll=Tt+2*Ct,$l=hu(yn,lu(Nn)),Xl=du(Ll),jl=Cn+2*Mn+Xl,ql=O*wl,Wl=au(O,_l),Hl=at*Ml+du(ql),Dl=S*Sl,Ql=au(S,El),Rl=st*Cl+du(Dl),Gl=nt*Fl,Ul=pu(M,zl),Zl=A*Yl+ut*Vl+2*du(Gl),Jl=ot*Ll,Kl=pu(C,$l),ta=F*Xl+pt*jl+2*du(Jl),na=S*wl,ea=au(S,_l),ra=st*Ml+du(na),oa=O*Sl,ia=au(O,El),ca=at*Cl+du(oa),sa=et*Nt,ua=pu(N,pn),fa=P*hn+ft*dn+2*du(sa),la=it*Ht,aa=pu(y,oe),pa=B*ie+ht*ce+2*du(la),ha=Ol+ql,da=hu(Tl,Wl),va=Pl+Hl+du(ha),ga=Al+Dl,ma=hu(kl,Ql),ba=Bl+Rl+du(ga),xa=ha+Gl,Ia=hu(da,Ul),wa=du(xa),_a=va+Zl+wa,Na=ga+Jl,Ma=hu(ma,Kl),Sa=du(Na),Ea=ba+ta+Sa,ya=na+sa,Ca=hu(ea,ua),Oa=du(ya),Ta=ra+fa+Oa,Pa=oa+la,Aa=hu(ia,aa),ka=du(Pa),Ba=ca+pa+ka,Fa=Y*xa,za=pu(r,Ia),Ya=h*wa+Q*_a+2*du(Fa),Va=V*Na,La=pu(o,Ma),$a=d*Sa+R*Ea+2*du(Va),Xa=z*ya,ja=pu(e,Ca),qa=p*Oa+D*Ta+2*du(Xa),Wa=L*Pa,Ha=pu(i,Aa),Da=v*ka+G*Ba+2*du(Wa),Qa=Xa+Wa,Ra=du(Qa),Ga=hu(ja,Ha),Ua=qa+Da+Ra,Za=Fa+Va,Ja=hu(za,La),Ka=Ya+$a+du(Za),tp=Za+3*Qa,np=hu(Ja,au(3,Ga)),ep=Ka+3*(Ua+Ra)+du(tp),rp=X*ml,op=pu(s,bl),ip=m*xl+Z*Il+2*du(rp),cp=$*wl,sp=pu(c,_l),up=g*Nl+U*Ml+2*du(cp),fp=rp+cp,lp=hu(op,sp),ap=ip+up+du(fp),pp=j*Sl,hp=pu(u,El),dp=b*yl+J*Cl+2*du(pp),vp=fp+pp,gp=hu(lp,hp),mp=ap+dp+du(vp),bp=tp+vp,xp=hu(np,gp),Ip=ep+mp+du(bp),wp=Ct+Tt,_p=hu(Nn,yn),Np=Mn+Cn+du(wp),Mp=Yt+_t,Sp=hu(jn,ln),Ep=qn+an+du(Mp),yp=Mt+bt,Cp=hu(vn,en),Op=gn+rn+du(yp),Tp=du(yp),Pp=Dt+Wt,Ap=hu(se,ee),kp=ue+re+du(Pp),Bp=du(Pp),Fp=2*wp+Yt,zp=hu(lu(_p),jn),Yp=2*Np+qn+du(Fp),Vp=2*wp+_t,Lp=hu(lu(_p),ln),$p=2*Np+an+du(Vp),Xp=2*kt+yt,jp=hu(lu(Bn),wn),qp=du(Xp),Wp=2*Fn+_n+qp,Hp=2*wt+yt,Dp=hu(lu(un),wn),Qp=du(Hp),Rp=2*fn+_n+Qp,Gp=yp+Mt,Up=hu(Cp,vn),Zp=Op+gn+du(Gp),Jp=Pp+Dt,Kp=hu(Ap,se),th=kp+ue+du(Jp),nh=3*S,eh=fu(3,S),rh=nh*Gp,oh=pu(eh,Up),ih=du(nh)*Zp+2*du(rh),ch=3*O,sh=fu(3,O),uh=ch*Jp,fh=pu(sh,Kp),lh=du(ch)*th+2*du(uh),ah=nt*Nt,ph=pu(M,pn),hh=A*hn+ut*dn+2*du(ah),dh=ot*Ht,vh=pu(C,oe),gh=F*ie+pt*ce+2*du(dh),mh=$*yp,bh=pu(c,Cp),xh=g*Tp+U*Op+du(mh),Ih=j*Pp,wh=pu(u,Ap),_h=b*Bp+J*kp+du(Ih),Nh=Fp+Mp,Mh=hu(zp,Sp),Sh=Yp+Ep+du(Nh),Eh=Vp+Mp,yh=hu(Lp,Sp),Ch=$p+Ep+du(Eh),Oh=S*Nh,Th=au(S,Mh),Ph=st*Sh+du(Oh),Ah=O*Eh,kh=au(O,yh),Bh=at*Ch+du(Ah),Fh=nt*Xp,zh=pu(M,jp),Yh=A*qp+ut*Wp+2*du(Fh),Vh=ot*Hp,Lh=pu(C,Dp),$h=F*Qp+pt*Rp+2*du(Vh),Xh=rt*q,jh=pu(_,f),qh=T*K+lt*x+2*du(Xh),Wh=ct*W,Hh=pu(E,l),Dh=k*tt+dt*I+2*du(Wh),Qh=Oh+Fh,Rh=hu(Th,zh),Gh=du(Qh),Uh=Ph+Yh+Gh,Zh=Ah+Vh,Jh=hu(kh,Lh),Kh=du(Zh),td=Bh+$h+Kh,nd=rh+ah,ed=hu(oh,ph),rd=du(nd),od=ih+hh+rd,id=uh+dh,cd=hu(fh,vh),sd=du(id),ud=lh+gh+sd,fd=Mp+wp,ld=hu(Sp,_p),ad=du(fd),pd=Ep+Np+ad,hd=2*(mh+Ih),dd=lu(hu(bh,wh)),vd=2*(xh+_h)+du(hd),gd=Y*Qh,md=pu(r,Rh),bd=h*Gh+Q*Uh+2*du(gd),xd=V*Zh,Id=pu(o,Jh),wd=d*Kh+R*td+2*du(xd),_d=z*nd,Nd=pu(e,ed),Md=p*rd+D*od+2*du(_d),Sd=L*id,Ed=pu(i,cd),yd=v*sd+G*ud+2*du(Sd),Cd=X*fd,Od=pu(s,ld),Td=m*ad+Z*pd+2*du(Cd),Pd=gd+xd,Ad=hu(md,Id),kd=bd+wd+du(Pd),Bd=_d+Sd,Fd=hu(Nd,Ed),zd=Md+yd+du(Bd),Yd=Cd+hd,Vd=hu(Od,dd),Ld=Td+vd+du(Yd),$d=Xh+Wh,Xd=hu(jh,Hh),jd=qh+Dh+du($d),qd=Pd+Bd,Wd=hu(Ad,Fd),Hd=kd+zd+du(qd),Dd=Yd+$d,Qd=hu(Vd,Xd),Rd=Ld+jd+du(Dd),Gd=qd+Dd,Ud=hu(Wd,Qd),Zd=Hd+Rd+du(Gd),Jd=yt+kt,Kd=hu(wn,Bn),tv=_n+Fn+du(Jd),nv=yt+wt,ev=hu(wn,un),rv=_n+fn+du(nv),ov=2*Jd+wt,iv=hu(lu(Kd),un),cv=2*tv+fn+du(ov),sv=2*nv+kt,uv=hu(lu(ev),Bn),fv=2*rv+Fn+du(sv),lv=S*ov,av=au(S,iv),pv=st*cv+du(lv),hv=O*Nt,dv=au(O,pn),vv=at*dn+du(hv),gv=O*sv,mv=au(O,uv),bv=at*fv+du(gv),xv=S*Ht,Iv=au(S,oe),wv=st*ce+du(xv),_v=S*Nt,Nv=au(S,pn),Mv=st*dn+du(_v),Sv=et*vt,Ev=pu(N,Zt),yv=P*xe+2*du(Sv),Cv=O*Ht,Ov=au(O,oe),Tv=at*ce+du(Cv),Pv=it*Xt,Av=pu(y,Zn),kv=B*Se+2*du(Pv),Bv=lv+hv,Fv=hu(av,dv),zv=pv+vv+du(Bv),Yv=pv+vv+zv,Vv=gv+xv,Lv=hu(mv,Iv),$v=bv+wv+du(Vv),Xv=bv+wv+$v,jv=_v+Sv,qv=hu(Nv,Ev),Wv=du(jv),Hv=Mv+yv+Wv,Dv=Cv+Pv,Qv=hu(Ov,Av),Rv=du(Dv),Gv=Tv+kv+Rv,Uv=z*jv,Zv=pu(e,qv),Jv=p*Wv+D*Hv+2*du(Uv),Kv=L*Dv,tg=pu(i,Qv),ng=v*Rv+G*Gv+2*du(Kv),eg=3*(Uv+Kv),rg=au(3,hu(Zv,tg)),og=3*(Jv+ng)+2*du(eg),ig=Jd+wt,cg=hu(Kd,un),sg=du(ig),ug=tv+fn+sg,fg=2*mt+Nt,lg=hu(lu(tn),pn),ag=du(fg),pg=2*nn+dn+ag,hg=2*qt+Ht,dg=hu(lu(te),oe),vg=du(hg),gg=2*ne+ce+vg,mg=Y*Bv,bg=pu(r,Fv),xg=h*zv+Q*Yv+2*du(mg),Ig=V*Vv,wg=pu(o,Lv),_g=d*$v+R*Xv+2*du(Ig),Ng=X*ig,Mg=pu(s,cg),Sg=m*sg+Z*ug+2*du(Ng),Eg=$*fg,yg=pu(c,lg),Cg=g*ag+U*pg+2*du(Eg),Og=j*hg,Tg=pu(u,dg),Pg=b*vg+J*gg+2*du(Og),Ag=et*q,kg=pu(N,f),Bg=P*K+ft*x+du(Ag),Fg=it*W,zg=pu(y,l),Yg=B*tt+ht*I+du(Fg),Vg=Ag+Fg,Lg=hu(kg,zg),$g=Bg+Yg+du(Vg),Xg=mg+Ig,jg=hu(bg,wg),qg=xg+_g+du(Xg),Wg=eg+Ng,Hg=hu(rg,Mg),Dg=og+Sg+du(Wg),Qg=Eg+Og,Rg=hu(yg,Tg),Gg=Cg+Pg+du(Qg),Ug=Xg+Wg,Zg=hu(jg,Hg),Jg=qg+Dg+du(Ug),Kg=Qg+Vg,tm=hu(Rg,Lg),nm=Gg+$g+du(Kg),em=Ug+Kg,rm=hu(Zg,tm),om=Jg+nm+du(em),im=Et+It,cm=hu(xn,cn),sm=du(im),um=In+sn+sm,fm=S*Y,lm=au(S,r),am=du(fm),pm=st*h+am,hm=O*V,dm=au(O,o),vm=du(hm),gm=at*d+vm,mm=im+Et,bm=hu(cm,xn),xm=du(mm),Im=um+In+xm,wm=im+It,_m=hu(cm,cn),Nm=du(wm),Mm=um+sn+Nm,Sm=nt*vt,Em=pu(M,Zt),ym=du(Sm),Cm=A*xe+2*ym,Om=Sm*z,Tm=pu(Em,e),Pm=Cm*D+ym*p+2*du(Om),Am=ot*Xt,km=pu(C,Zn),Bm=du(Am),Fm=F*Se+2*Bm,zm=Am*L,Ym=pu(km,i),Vm=Fm*G+Bm*v+2*du(zm),Lm=X*im,$m=pu(s,cm),Xm=m*sm+Z*um+2*du(Lm),jm=gt*$,qm=pu(Jt,c),Wm=Kt*U+Ie*g+2*du(jm),Hm=jt*j,Dm=pu(Jn,u),Qm=Kn*J+Ee*b+2*du(Hm),Rm=jm+Hm,Gm=hu(qm,Dm),Um=Wm+Qm+du(Rm),Zm=nt*q,Jm=pu(M,f),Km=A*K+ut*x+du(Zm),tb=ot*W,nb=pu(C,l),eb=F*tt+pt*I+du(tb),rb=Zm+tb,ob=hu(Jm,nb),ib=Km+eb+du(rb),cb=fm*mm,sb=pu(lm,bm),ub=pm*xm+am*Im+2*du(cb),fb=hm*wm,lb=pu(dm,_m),ab=gm*Nm+vm*Mm+2*du(fb),pb=cb+fb,hb=hu(sb,lb),db=ub+ab+du(pb),vb=3*(Om+zm),gb=au(3,hu(Tm,Ym)),mb=3*(Pm+Vm)+2*du(vb),bb=Lm+2*Rm,xb=hu($m,lu(Gm)),Ib=Xm+2*Um+du(bb),wb=pb+vb,_b=hu(hb,gb),Nb=db+mb+du(wb),Mb=bb+rb,Sb=hu(xb,ob),Eb=Ib+ib+du(Mb),yb=wb+Mb,Cb=hu(_b,Sb),Ob=Nb+Eb+du(yb),Tb=S*z,Pb=au(S,e),Ab=st*p+du(Tb),kb=O*Y,Bb=au(O,r),Fb=at*h+du(kb),zb=Tb+kb,Yb=hu(Pb,Bb),Vb=Ab+Fb+du(zb),Lb=S*V,$b=au(S,o),Xb=st*d+du(Lb),jb=O*L,qb=au(O,i),Wb=at*v+du(jb),Hb=Lb+jb,Db=hu($b,qb),Qb=Xb+Wb+du(Hb),Rb=zb+$,Gb=hu(Yb,c),Ub=Vb+g+du(Rb),Zb=Hb+j,Jb=hu(Db,u),Kb=Qb+b+du(Zb),tx=vt*Rb,nx=pu(Zt,Gb),ex=xe*Ub+2*du(tx),rx=Xt*Zb,ox=pu(Zn,Jb),ix=Se*Kb+2*du(rx),cx=tx+rx,sx=hu(nx,ox),ux=ex+ix+du(cx),fx=xt*X,lx=pu(on,s),ax=Me*m+du(fx),px=cx+fx,hx=hu(sx,lx),dx=ux+ax+du(px),vx=S*q,gx=au(S,f),mx=st*x+du(vx),bx=O*W,xx=au(O,l),Ix=at*I+du(bx),wx=vx+bx,_x=hu(gx,xx),Nx=mx+Ix+du(wx),Mx=px+wx,Sx=hu(hx,_x),Ex=dx+Nx+du(Mx),yx=Mx+H,Cx=hu(Sx,a),Ox=Ex+w+du(yx);return{coeffs:[lr,no,Oi,Rs,vl,xp,Ud,rm,Cb,Cx],errBound:[vu*ar,vu*eo,vu*Ti,vu*Gs,vu*gl,vu*Ip,vu*Zd,vu*om,vu*Ob,vu*Ox]}}]],Df=[[Mu,pf,Pf],[Yu,xf,Vf],[sf,Ef,function(t,n){const e=At(t);if(0===Wf(e[0][0])&&0===Wf(e[1][0]))return Vf(Hu(t),n);const[[r,o,i,[c]],[s,u,f,[l]]]=At(n);if(0===Wf(r)&&0===Wf(s))return Ef(t,Hu(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:b,vᵧ:x,v:I}=Ku(e),w=Lf(c,c),_=$f(c,i),N=$f(c,o),M=$f(c,r),S=Lf(c,l),E=$f(c,f),y=$f(c,u),C=$f(c,s),O=Xf(i,i),T=Xf(i,o),P=Xf(i,r),A=$f(l,i),k=Xf(i,f),B=Xf(i,u),F=Xf(i,s),z=Xf(o,f),Y=Xf(o,o),V=Xf(o,r),L=$f(l,o),$=Xf(o,u),X=Xf(o,s),j=Xf(r,r),q=$f(l,r),W=Xf(r,f),H=Xf(r,u),D=Xf(r,s),Q=Lf(l,l),R=$f(l,f),G=$f(l,u),U=$f(l,s),Z=Xf(f,f),J=Xf(f,u),K=Xf(s,s),tt=Xf(u,u),nt=Xf(u,s),et=Xf(f,s),rt=Xf(r,j),ot=Xf(r,K),it=Xf(s,j),ct=Xf(s,K),st=Xf(rt,a),ut=Xf(ot,h),ft=Xf(it,p),lt=Xf(ct,d),at=jf(st,ut),pt=jf(ft,lt),ht=jf(at,pt),dt=jf(qf(X),H),vt=jf(qf(H),X),gt=Xf(r,dt),mt=Xf(s,vt),bt=Xf(o,j),xt=Xf(u,K),It=Xf(a,bt),wt=Xf(d,xt),_t=Xf(p,gt),Nt=Xf(h,mt),Mt=jf(_t,Nt),St=$f(3,jf(It,wt)),Et=jf(Mt,St),yt=Xf(i,D),Ct=Xf(f,j),Ot=Xf(o,nt),Tt=Xf(i,K),Pt=Xf(o,H),kt=Xf(s,Y),Bt=Xf(r,et),Ft=Xf(u,H),zt=jf(yt,Pt),Yt=jf(Ct,kt),Vt=jf(Ot,Bt),Lt=jf(Tt,Ft),$t=jf(P,Y),Xt=jf(et,tt),jt=jf(qf(zt),Yt),qt=jf(qf(Vt),Lt),Wt=Xf(p,jt),Ht=Xf(h,qt),Dt=Xf(r,$t),Qt=Xf(s,Xt),Rt=Xf(a,Dt),Gt=Xf(d,Qt),Ut=jf(Wt,Ht),Zt=$f(3,jf(Rt,Gt)),Jt=jf(Ut,Zt),Kt=jf(X,H),tn=Xf(u,Y),nn=qf(Xf(i,Kt)),en=jf(tn,nn),rn=qf(jf(C,z)),on=jf(rn,q),cn=Xf(r,on),sn=jf(en,cn),un=Xf(o,tt),fn=qf(Xf(f,Kt)),ln=jf(un,fn),an=qf(jf(B,q)),pn=jf(an,C),hn=Xf(s,pn),dn=jf(ln,hn),vn=Xf(o,Y),gn=jf(qf(T),M),mn=Xf($f(3,r),gn),bn=jf(vn,mn),xn=Xf(u,tt),In=jf(qf(J),U),wn=Xf($f(3,s),In),_n=jf(xn,wn),Nn=Xf(p,sn),Mn=Xf(h,dn),Sn=jf(Nn,Mn),En=Xf(a,bn),yn=Xf(d,_n),Cn=jf(En,yn),On=Xf(j,v),Tn=Xf(K,m),Pn=jf(On,Tn),An=Xf(D,g),kn=jf(Sn,Cn),Bn=jf(Pn,An),Fn=jf(kn,Bn),zn=jf($,W),Yn=jf(F,$),Vn=$f(c,Kt),Ln=$f(l,Kt),$n=Xf(i,zn),Xn=Xf(f,Yn),jn=jf(qf(q),z),qn=jf(qf(C),B),Wn=Xf(s,O),Hn=Xf(r,Z),Dn=Xf(o,jn),Qn=Xf(u,qn),Rn=qf(jf(Vn,$n)),Gn=qf(jf(Ln,Xn)),Un=qf($f(c,V)),Zn=qf($f(l,nt)),Jn=Xf(i,$t),Kn=Xf(f,Xt),te=Xf(V,v),ne=Xf(nt,m),ee=jf(Rn,Wn),re=jf(Gn,Hn),oe=jf(ee,Dn),ie=jf(re,Qn),ce=jf(Un,Jn),se=jf(Zn,Kn),ue=qf(jf(te,ne)),fe=Xf(p,oe),le=Xf(h,ie),ae=Xf(a,ce),pe=Xf(d,se),he=jf(fe,le),de=$f(3,jf(ae,pe)),ve=Xf(g,Kt),ge=jf(he,de),me=jf(ve,ue),be=jf(ge,me),xe=jf(F,zn),Ie=jf(qf(P),Y),we=jf(qf(et),tt),_e=$f(2*c,xe),Ne=$f(2*l,xe),Me=jf(B,qf(z)),Se=jf(z,qf(B)),Ee=$f(l,Ie),ye=$f(c,we),Ce=Xf(i,Me),Oe=Xf(f,Se),Te=$f(c,Ie),Pe=$f(l,we),Ae=Xf(o,O),ke=Xf(u,Z),Be=jf(_e,Ee),Fe=jf(Ne,ye),ze=jf(Be,Ce),Ye=jf(Fe,Oe),Ve=jf(Te,Ae),Le=jf(Pe,ke),$e=Xf(p,ze),Xe=Xf(h,Ye),je=Xf(a,Ve),qe=Xf(d,Le),We=jf(je,qe),He=jf($e,Xe),De=jf(He,$f(3,We)),Qe=Xf(g,xe),Re=Xf(v,Ie),Ge=jf(Qe,Re),Ue=Xf(m,we),Ze=jf(Ge,Ue),Je=jf(De,Ze),Ke=jf(B,z),tr=jf(q,C),nr=jf(T,M),er=jf(J,U),rr=jf(qf(Ke),q),or=jf(qf(Ke),C),ir=jf(qf(L),k),cr=jf(qf(y),k),sr=jf(nr,T),ur=jf(er,J),fr=Xf(Lf(3,c),sr),lr=Xf(Lf(3,l),ur),ar=Xf(i,O),pr=Xf(f,Z),hr=Xf(v,nr),dr=Xf(m,er),vr=jf(rr,tr),gr=jf(or,tr),mr=$f(c,vr),br=$f(l,gr),xr=Xf(i,ir),Ir=Xf(f,cr),wr=Xf(r,b),_r=Xf(s,x),Nr=jf(mr,xr),Mr=jf(br,Ir),Sr=jf(fr,ar),Er=jf(lr,pr),yr=jf(tr,Ke),Cr=qf(jf(hr,dr)),Or=Xf(p,Nr),Tr=Xf(h,Mr),Pr=Xf(a,Sr),Ar=Xf(d,Er),kr=Xf(g,yr),Br=jf(Or,Tr),Fr=jf(Pr,Ar),zr=jf(kr,Cr),Yr=jf(wr,_r),Vr=jf(Br,Fr),Lr=jf(zr,Yr),$r=jf(Vr,Lr),Xr=jf(k,L),jr=jf(k,y),qr=jf(qf(Xr),y),Wr=jf(qf(jr),L),Hr=$f(c,qr),Dr=$f(l,O),Qr=$f(l,Wr),Rr=$f(c,Z),Gr=$f(c,O),Ur=Xf(o,w),Zr=$f(l,Z),Jr=Xf(u,Q),Kr=jf(Hr,Dr),to=jf(Qr,Rr),no=jf(Gr,Ur),eo=jf(Zr,Jr),ro=Xf(a,no),oo=Xf(d,eo),io=$f(3,jf(ro,oo)),co=jf(Xr,y),so=jf(qf(N),O),uo=jf(qf(G),Z),fo=Xf(p,Kr),lo=Xf(h,to),ao=Xf(g,co),po=Xf(v,so),ho=Xf(m,uo),vo=Xf(o,b),go=Xf(u,x),mo=jf(vo,go),bo=jf(fo,lo),xo=jf(io,ao),Io=jf(po,ho),wo=jf(bo,xo),_o=jf(Io,mo),No=jf(wo,_o),Mo=jf(A,E),So=$f(c,p),Eo=$f(l,h),yo=jf(Mo,A),Co=jf(Mo,E),Oo=Xf(i,w),To=Xf(Oo,a),Po=Xf(f,Q),Ao=Xf(Po,d),ko=Xf(g,Mo),Bo=Xf(_,v),Fo=Xf(R,m),zo=jf(Bo,Fo),Yo=Xf(i,b),Vo=Xf(f,x),Lo=jf(Yo,Vo),$o=Xf(So,yo),Xo=Xf(Eo,Co),jo=jf($o,Xo),qo=$f(3,jf(To,Ao)),Wo=jf(ko,qf(zo)),Ho=jf(jo,qo),Do=jf(Wo,Lo),Qo=jf(Ho,Do),Ro=$f(c,a),Go=$f(l,p),Uo=jf(Ro,Go),Zo=$f(c,h),Jo=$f(l,d),Ko=jf(Zo,Jo),ti=jf(Uo,v),ni=jf(Ko,m),ei=Xf(w,ti),ri=Xf(Q,ni),oi=jf(ei,ri),ii=Xf(S,g),ci=jf(oi,ii),si=$f(c,b),ui=$f(l,x),fi=jf(si,ui),li=jf(ci,fi);return[ht,Et,Jt,Fn,be,Je,$r,No,Qo,jf(li,I)]}]];function Qf(t,n){const{coeffs:e,errBound:r}=Hf[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>Df[t.length-2][n.length-2](t,n)}}const Rf=134217729;function Gf(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r/i,s=i*c,u=Rf*i,f=u-(u-i),l=i-f,a=Rf*c,p=a-(a-c),h=c-p,d=o*c,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,b=(r-m+(e-(g-(m-v))))/i,x=c+b;return[b-(x-c),x]}const Uf=Gf,Zf=Number.EPSILON/2,Jf=Zf*Zf,Kf=b,tl=b,nl=b,el=Ir,rl=xr,ol=Ar,il=m,cl=Xo,sl=Number.EPSILON/2,ul=sl*sl,fl=Math.abs,ll=nl,al=[0,1],pl=el,hl=il,dl=rl,vl=ol,gl=cl,ml=function(t,n,e,r){const o=t[0],i=t[1],c=n[0],s=n[1],u=Uf(t,n),f=Math.abs(o+i),l=Math.abs(c+s),a=l-Zf*l-r;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/a**2+9*Jf*Math.abs(f/l)}},bl=function(t,n){return Kf(t,n)[1]>0?n:t},xl=function(t,n){return tl(t,n)[1]>0?t:n},Il=G(3);function wl(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[c,s]],[u,f]){const l=ll(f,u),a=3*ul*fl(l[1]),p=ll(al,u),h=3*ul*fl(p[1]),d=ml(l,p,a,h);f=pl(d.est,d.err);const v=ll(al,u),g=dl(u,u),m=dl(u,v),b=dl(v,v),x=dl(g,u),I=dl(g,v),w=dl(b,u),_=dl(b,v),N=ll(al,f),M=dl(f,f),S=dl(f,N),E=dl(N,N),y=dl(M,f),C=dl(M,N),O=dl(E,f),T=dl(E,N),P=fl(u[1]),A=fl(v[1]),k=fl(g[1]),B=fl(m[1]),F=fl(b[1]),z=fl(x[1]),Y=fl(I[1]),V=fl(w[1]),L=fl(_[1]),$=fl(f[1]),X=fl(N[1]),j=fl(M[1]),q=fl(S[1]),W=fl(E[1]),H=fl(y[1]),D=fl(C[1]),Q=fl(O[1]),R=fl(T[1]);let G=fl(t),U=fl(n),Z=fl(e),J=fl(r),K=fl(o),tt=fl(i),nt=fl(c),et=fl(s);const rt=hl(vl(c,u),vl(o,v)),ot=hl(hl(vl(c,g),vl(2*o,m)),vl(e,b)),it=hl(hl(vl(c,x),vl(t,_)),vl(3,hl(vl(o,I),vl(e,w)))),ct=hl(dl(ot,f),dl(it,N)),st=hl(hl(dl(rt,M),dl(it,E)),dl(gl(ot),S)),ut=hl(hl(vl(c,y),dl(it,T)),vl(3,hl(dl(rt,C),dl(ot,O)))),ft=fl(it[1]),lt=nt*P+K*A,at=nt*k+2*K*B+Z*F;G=nt*z+G*L+3*(K*Y+Z*V),Z=at*$+ft*X,K=lt*j+ft*W+2*at*q,nt=nt*H+ft*R+3*(lt*D+at*Q),G*=11*ul,Z*=15*ul,K*=20*ul,nt*=22*ul;const pt=hl(vl(s,u),vl(i,v)),ht=hl(hl(vl(s,g),vl(2*i,m)),vl(r,b)),dt=hl(hl(vl(s,x),vl(n,_)),vl(3,hl(vl(i,I),vl(r,w)))),vt=hl(dl(ht,f),dl(dt,N)),gt=hl(hl(dl(pt,M),dl(dt,E)),dl(gl(ht),S)),mt=hl(hl(vl(s,y),dl(dt,T)),vl(3,hl(dl(pt,C),dl(ht,O)))),bt=fl(dt[1]),xt=et*P+tt*A,It=et*k+2*tt*B+J*F;U=et*z+U*L+3*(tt*Y+J*V),J=It*$+bt*X,tt=xt*j+bt*W+2*It*q,et=et*H+bt*R+3*(xt*D+It*Q),U*=11*ul,J*=15*ul,tt*=20*ul,et*=22*ul;const wt=bl(bl(pl(it,-G),pl(ct,-Z)),bl(pl(st,-K),pl(ut,-nt))),_t=xl(xl(pl(it,+G),pl(ct,+Z)),xl(pl(st,+K),pl(ut,+nt)));return[[wt,bl(bl(pl(dt,-U),pl(vt,-J)),bl(pl(gt,-tt),pl(mt,-et)))],[_t,xl(xl(pl(dt,+U),pl(vt,+J)),xl(pl(gt,+tt),pl(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[c,s]){const u=ll(s,c),f=3*ul*fl(u[1]),l=ll(al,c),a=3*ul*fl(l[1]),p=ml(u,l,f,a);s=pl(p.est,p.err);const h=ll(al,c),d=dl(c,c),v=dl(c,h),g=dl(h,h),m=ll(al,s),b=dl(s,s),x=dl(s,m),I=dl(m,m),w=fl(c[1]),_=fl(h[1]),N=fl(d[1]),M=fl(v[1]),S=fl(g[1]),E=fl(s[1]),y=fl(m[1]),C=fl(b[1]),O=fl(x[1]),T=fl(I[1]);let P=fl(t),A=fl(n),k=fl(e),B=fl(r),F=fl(o),z=fl(i);const Y=hl(hl(vl(o,d),vl(2*e,v)),vl(t,g)),V=hl(vl(o,c),vl(e,h)),L=Y,$=hl(dl(s,V),dl(m,Y)),X=hl(hl(vl(o,b),dl(gl(x),V)),dl(I,Y)),j=F*N+2*k*M+P*S,q=F*w+k*_;P=j,k=E*q+y*j,F=C*o+2*O*q+T*j,P*=7*ul,k*=11*ul,F*=14*ul;const W=hl(hl(vl(i,d),vl(2*r,v)),vl(n,g)),H=hl(vl(i,c),vl(r,h)),D=W,Q=hl(dl(s,H),dl(m,W)),R=hl(hl(vl(i,b),dl(gl(x),H)),dl(I,W)),G=z*N+2*B*M+A*S,U=z*w+B*_;A=G,B=E*U+y*G,z=C*i+2*O*U+T*G,A*=7*ul,B*=11*ul,z*=14*ul;const Z=bl(bl(pl(L,-P),pl($,-k)),pl(X,-F)),J=xl(xl(pl(L,+P),pl($,+k)),pl(X,+F));return[[Z,bl(bl(pl(D,-A),pl(Q,-B)),pl(R,-z))],[J,xl(xl(pl(D,+A),pl(Q,+B)),pl(R,+z))]]}(t,n):function([[t,n],[e,r]],[o,i]){const c=ll(i,o),s=3*ul*fl(c[1]),u=ll(al,o),f=3*ul*fl(u[1]),l=ml(c,u,s,f);i=pl(l.est,l.err);const a=ll(al,o),p=ll(al,i),h=fl(o[1]),d=fl(a[1]),v=fl(i[1]),g=fl(p[1]);let m=fl(t),b=fl(n),x=fl(e),I=fl(r);const w=hl(vl(e,o),vl(t,a)),_=hl(vl(e,i),dl(w,p));m=x*h+m*d,x=x*v+m*g,m*=3*sl,x*=7*sl;const N=hl(vl(r,o),vl(n,a)),M=hl(vl(r,i),dl(N,p));b=I*h+b*d,I=I*v+b*g,b*=3*sl,I*=7*sl;const S=bl(pl(w,-m),pl(_,-x)),E=xl(pl(w,+m),pl(_,+x));return[[S,bl(pl(N,-b),pl(M,-I))],[E,xl(pl(N,+b),pl(M,+I))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=Er(t,n);let i;if(4===t.length)i=Oo(t,n).map(t=>16*Il*t);else if(3===t.length)i=Oo(t,n).map(t=>10*Il*t);else if(2===t.length)i=Oo(t,n).map(t=>4*Il*t);else if(1===t.length)return[o,o];return[[pl(o[0],-i[0]),pl(o[1],-i[1])],[pl(o[0],+i[0]),pl(o[1],+i[1])]]}(t,n[0])}function _l(t){return(n,e)=>{let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;return(o[1]>c[1]||o[1]===c[1]&&o[0]>c[0])&&([o,c]=[c,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(s[1]>f[1]||s[1]===f[1]&&s[0]>f[0])&&([s,f]=[f,s]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>=s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<=c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function Nl(t){return[((n=t.x.box)[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2];var n}function Ml(t,n){const e=Qf(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,c=Mo(r,0,1,o,i);return 0!==c.length?{ris:c.map(Yc),getPExact:i}:void 0}function Sl(t){return{tS:pt(t.tS),tE:pt(t.tE),multiplicity:t.multiplicity}}function El(t,n){const e=Ml(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const c=()=>(o=o||r(),o),s=Ml(n,t);if(void 0===s)return[];let{ris:u}=s;const{getPExact:f}=s;let l;const a=()=>(l=l||f(),l);let p;p=1;let h,d=0;t:for(;d<p;){h=u.map(n=>wl(t,[n.tS,n.tE]));for(let t=0;t<u.length;t++){const n=h[t];for(let e=t+1;e<u.length;e++){const t=h[e];if(_l(!0)(n,t)){const t=[];for(const n of u)t.push(...Gi({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},a()));u=t,d++;continue t}}}break t}p=1;let v,g=0;t:for(;g<p;){v=i.map(t=>wl(n,[t.tS,t.tE]));for(let t=0;t<i.length;t++){const n=v[t];for(let e=t+1;e<i.length;e++){const t=v[e];if(_l(!0)(n,t)){const t=[];for(const n of i)t.push(...Gi({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},c()));i=t,g++;continue t}}}break t}const m=[];for(let t=0;t<u.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=v[e];if(_l(!0)(n,o)){const c={compensated:d,ri:Sl(u[t]),riExp:d?u[t]:void 0,getPExact:d?void 0:f,kind:1,box:yl(n)},s={compensated:g,ri:Sl(i[e]),riExp:g?i[e]:void 0,getPExact:g?void 0:r,kind:1,box:yl(o)};m.push({psX:c,sideX:s})}}}return m}function yl(t){return t.map(t=>t.map(pt))}function Cl(t,n){return function(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,c=e.slice();for(let t=0;t<i.length;t++){const n=El(o,i[t]);for(const{psX:e,sideX:r}of n)c.push({x:e,side:t,sideX:r,curve:void 0})}c.sort((t,n)=>t.x.ri.tS-n.x.ri.tS);const s=[],u=[];let f,l;for(const n of c)void 0!==n.side?(!0===l&&(u.push({idx:++r,dir:1,p:Nl(n),_x_:f,container:t,side:n.side,sideX:n.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),f.out=u[u.length-1]),l=!1):(!1===l&&(s.push({idx:++r,dir:-1,p:Nl(f),_x_:n,container:t,side:f.side,sideX:f.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),n.in_=s[s.length-1]),l=!0),f=n;return{ins:s,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let c,s;({ins:c,outs:s,ioIdx:n}=i(e,o,n)),r.push(...c),r.push(...s)}return{inOuts:r,ioIdx:n}}(t,n)}function Ol(t,n,e,r){const o=[];for(const r of t)o.push({type:-1,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(Tl);const i=new Set,c=[];for(const t of o){const{item:n,type:e}=t;if(-1===e){for(const t of i){const e=r(n,t);e&&c.push({a:n,b:t,u:e})}i.add(n)}else 1===e&&i.delete(n)}return c}function Tl(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function Pl(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function Al(t,n,e){const r=n[0]-t[0],o=n[1]-t[1];return r*(e[0]-n[0])+o*(e[1]-n[1])}const kl=function(t,n){if(0===t.length)return;const e=t.slice(),r=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(e),[o]=e.splice(r,1);e.sort((t,n)=>{let e=-vt(o,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(o);const i=function(t){const n=[t[0]],e=t.length;for(let r=1;r<t.length;r++){const o=t[(r+e-1)%e],i=t[r];o[0]===i[0]&&o[1]===i[1]||n.push(i)}return n}(e),c=[];for(const t of i){for(;c.length>=2&&vt(c[c.length-2],c[c.length-1],t)<0;)c.pop();c.push(t)}if(n||c.length<3)return c;const s=[];{const t=c.length;for(let n=0;n<t;n++){const e=(n+1)%t,r=c[(n+t-1)%t],o=c[n],i=c[e];(0!==vt(r,o,i)||Al(r,o,i)<0)&&s.push(o)}}return s},Bl=m,Fl=j,zl=A,Yl=W,Vl=pt,Ll=xr,$l=Xi,Xl=Math.abs,jl=G(3);const ql=Math.abs;const Wl=Math.abs,Hl=xr,Dl=m,Ql=j,Rl=A,Gl=W,Ul=pt,Zl=Xi,Jl=Math.abs,Kl=R(1),ta=G(3);function na(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,c]]=sc(t),s=n*i-e*o,u=n*c-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*s-2*o*u,vᵧ:2*n*u-e*s,v:s*(e*c-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[r,o],[i,c]]=function(t){const[[n,e],[r,o],[i,c]]=t,s=ql(n),u=ql(r),f=ql(i),l=ql(e),a=ql(o);return[[f+s+2*u,2*(u+s),0],[ql(c)+l+2*a,2*(a+l),0]]}(t),s=Wl(n),u=Wl(e),f=r*c+o*i,l=r*u+s*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:c*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+s*c)+l*l}}(t),g=u?0:1,m=Jl(c),b=Jl(s);if((g+12)*Kl*(l*(m*m)+a*(m*b)+p*(b*b)+(h*m+d*b)+v)<Jl(n*c*c+e*c*s+r*s*s+(o*c+i*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=fs(t),m=Zl(e),b=Zl(r),x=Jl(c),I=Jl(s),w=x/3,_=I/3,N=Hl(m,m),M=N[1],S=2*(x*w+M),E=Hl(b,b),y=E[1],C=2*(I*_+y),O=Hl(m,b),T=Jl(O[1]),P=x*_+w*I+2*T,A=Hl(n,N),k=Jl(n[1])*S+a*M+2*Jl(A[1]),B=Hl(o,O),F=Jl(o[1])*P+p*T+2*Jl(B[1]),z=Hl(i,E),Y=Jl(i[1])*C+h*y+2*Jl(z[1]),V=Hl(m,u),L=Jl(u[1])*w+d*x+2*Jl(V[1]),$=Hl(b,f),X=Jl(f[1])*_+v*I+2*Jl($[1]),j=Dl(A,B),q=k+F+Jl(j[1]),W=Dl(j,z),H=q+Y+Jl(W[1]),D=Dl(V,$),Q=L+X+Jl(D[1]),R=Dl(W,D),G=H+Q+Jl(R[1]),U=Dl(R,l),Z=G+g+Jl(U[1]);if(ta*Z<Jl(Ul(U)))return!1}{const n=function(t){return Tu(kt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n,h=Rl(Rl(Rl(Ql(o,Ql(e,e)),Ql(i,Ql(e,r))),Ql(f,Ql(r,r))),Rl(Rl(Ql(e,l),Ql(r,a)),p));return 0===Gl(h)}}const ea=Math.abs,ra=xr,oa=m,ia=j,ca=A,sa=W,ua=pt,fa=Xi,la=Math.abs,aa=R(1),pa=G(3);function ha(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,r,o],[i,c,s,u]]=cc(t),f=n*s,l=r*i,a=n*c,p=e*i,h=n*n,d=i*i,v=n*u-o*i,g=f-l,m=a-p,b=e*u-o*c,x=e*s-r*c,I=r*u-o*s,w=2*g,_=v*v,N=v*x,M=w*b,S=m*b,E=-3*v-x,y=-3*_-2*N+(M+m*I),C=2*(v*g-S),O=v*m-g*g+m*x;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*h,vᵧᵧᵧ:n*h,vₓₓ:E*d+m*(s*i-c*c)+w*c*i,vₓᵧ:2*(m*(e*c-(l+f)/2)-(E*n*i+g*(p+a))),vᵧᵧ:E*h+m*(r*n-e*e)+w*e*n,vₓ:i*y+(c*C+s*O),vᵧ:-n*y-(e*C+r*O),v:v*(M-_-N)+(O*I-S*b)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:b,vₓᵧ_:x,vᵧᵧ_:I,vₓ_:w,vᵧ_:_,v_:N}=function(t){const[n,e]=t[0],[[r,o,i],[c,s,u]]=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=ql(n),l=ql(r),a=ql(i),p=ql(s),h=ql(e),d=ql(o),v=ql(c);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[ql(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=ea(n),l=ea(e),a=r*u,p=i*c,h=r*s,d=o*c,v=r*r,g=c*c,m=r*l+f*c,b=a+p,x=h+d,I=o*l+f*s,w=o*u+i*s,_=i*l+f*u,N=2*b,M=m*m,S=m*w,E=N*I,y=x*I,C=3*m+w,O=3*M+2*S+(E+x*_),T=2*(m*b+y),P=m*x+b*b+x*w;return{vₓₓₓ_:c*g,vₓₓᵧ_:3*r*g,vₓᵧᵧ_:3*c*v,vᵧᵧᵧ_:r*v,vₓₓ_:C*g+x*(u*c+s*s)+N*s*c,vₓᵧ_:2*(x*(o*s+(p+a)/2)+(C*r*c+b*(d+h))),vᵧᵧ_:C*v+x*(i*r+o*o)+N*o*r,vₓ_:c*O+(s*T+u*P),vᵧ_:r*O+(o*T+i*P),v_:m*(E+M+S)+(P*_+y*I)}}(t),M=c*c,S=s*s,E=n*(M*c)+e*(M*s)+(r*(c*S)+o*(S*s))+(i*M+f*(c*s)+l*S)+(a*c+p*s+h),y=u?0:1,C=la(c),O=la(s),T=C*C,P=O*O;if((y+26)*aa*(d*(T*C)+v*(T*O)+(g*(C*P)+m*(P*O))+(b*T+x*(C*O)+I*P)+(w*C+_*O+N))<la(E))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:b,vₓₓ_:x,vₓᵧ_:I,vᵧᵧ_:w,vₓ_:_,vᵧ_:N,v_:M}}=Ms(t),S=la(n[1]),E=la(o[1]),y=la(i[1]),C=la(u[1]),O=fa(e),T=fa(r),P=la(c),A=la(s),k=P/3,B=A/3,F=ra(O,O),z=F[1],Y=2*(P*k+z),V=ra(O,F),L=la(V[1]),$=P*Y+k*z+2*L,X=ra(T,T),j=X[1],q=2*(A*B+j),W=ra(T,X),H=la(W[1]),D=A*q+B*j+2*H,Q=ra(T,F),R=la(Q[1]),G=A*Y+B*z+2*R,U=ra(O,X),Z=la(U[1]),J=P*q+k*j+2*Z,K=ra(O,T),tt=la(K[1]),nt=P*B+k*A+2*tt,et=ra(n,V),rt=S*$+v*L+2*la(et[1]),ot=ra(o,Q),it=E*G+g*R+2*la(ot[1]),ct=ra(i,U),st=y*J+m*Z+2*la(ct[1]),ut=ra(u,W),ft=C*D+b*H+2*la(ut[1]),lt=ra(f,F),at=la(f[1])*Y+x*z+2*la(lt[1]),pt=ra(l,K),ht=la(l[1])*nt+I*tt+2*la(pt[1]),dt=ra(a,X),vt=la(a[1])*q+w*j+2*la(dt[1]),gt=ra(O,p),mt=la(p[1])*k+_*P+2*la(gt[1]),bt=ra(T,h),xt=la(h[1])*B+N*A+2*la(bt[1]),It=oa(et,ot),wt=rt+it+la(It[1]),_t=oa(ct,ut),Nt=st+ft+la(_t[1]),Mt=oa(It,_t),St=wt+Nt+la(Mt[1]),Et=oa(lt,pt),yt=at+ht+la(Et[1]),Ct=oa(Et,dt),Ot=yt+vt+la(Ct[1]),Tt=oa(Mt,Ct),Pt=St+Ot+la(Tt[1]),At=oa(gt,bt),kt=mt+xt+la(At[1]),Bt=oa(At,d),Ft=kt+M+la(Bt[1]),zt=oa(Tt,Bt),Yt=Pt+Ft+la(zt[1]);if(pa*Yt<la(ua(zt)))return!1}{const n=function(t){return Ku(At(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=ia(e,e),b=ia(e,m),x=ia(r,r),I=ia(r,x),w=ia(r,m),_=ia(e,x),N=ia(e,r),M=ia(o,b),S=ia(i,w),E=ia(f,_),y=ia(l,I),C=ia(a,m),O=ia(p,N),T=ia(h,x),P=ia(e,d),A=ia(r,v),k=ca(M,S),B=ca(E,y),F=ca(k,B),z=ca(C,O),Y=ca(z,T),V=ca(F,Y),L=ca(P,A),$=ca(L,g),X=ca(V,$);return 0===sa(X)}}function da(t,n){const{coeffs:e,errBound:r,getPExact:o}=Qf(t,n);return Mo(e,0,1,r,o,!0)}const va=Math.min,ga=Math.max;function ma(t,n){let[[e,r],[o,i]]=t,[[c,s],[u,f]]=n;if(e>o&&([e,o]=[o,e]),c>u&&([c,u]=[u,c]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]),e<=u&&o>=c&&s<=i&&f>=r)return[[ga(e,c),ga(r,s)],[va(o,u),va(i,f)]]}function ba(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=da(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map(n=>Bo(t,[n.tS,n.tE])),i=e.map(t=>Bo(n,[t.tS,t.tE])),c=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const s=ma(n,i[o]);if(void 0!==s){const n={ri:r[t],box:s,kind:1},i={ri:e[o],box:s,kind:1};c.push([n,i])}}}return c}function xa(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const c=r[i-1],s=r[i%o],u=[s[1]-c[1],c[0]-s[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}function Ia(t){return 4===t.length&&at(t)&&(t=Hu(t)),3===t.length&&et(t)&&(t=[t[0],t[2]]),2===t.length&&U(t)&&(t=[t[0]]),t}const wa=Number.EPSILON,_a=wa/2;function Na(t,n){return n<0?t<1?t:1-_a:0===n?1:t>1?t:1+wa}function Ma(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),c=0===i?0:16,s=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+c,{sign:o,exponent:s,significand:u}}function Sa(t){return Ma(t).significand}function Ea(t){return Math.log2(t&-t)}function ya(t){if(0===t||!Number.isFinite(t))return NaN;const n=Sa(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=Ea(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function Ca(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function Oa(t){if(0===t||!Number.isFinite(t))return NaN;const n=Sa(t),e=n.length;for(let t=0;t<e;t++){const r=Ca(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function Ta(t){return Ma(t).exponent}function Pa(t){if(0===t||!Number.isFinite(t))return NaN;const n=Ta(t);return Oa(t)-52+n}function Aa(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const ka=W,Ba=dt;function Fa(t){return 0===t?0:Oa(t)-ya(t)+1}const za=j,Ya=function(t,n){if(t=Ba(t),0===ka(t))return[0];const e=Pa(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=Pa(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let c=t[o];c=Aa(c,i);const s=t.slice(o);return s[0]=c,s},Va=function(t){const n=dt(t);if(0===W(n))return 0;const e=n[n.length-1],r=n[0];return Ta(e)-Ta(r)+(53-ya(r))},La=z,$a=pt;function Xa(t){return pt(function(t,n,e){let r=n,o=t,i=!1,c=0;e||(c=Va(o)-Va(r)+1,e=c/53+1,i=!0);let s=[1/$a(r)],u=1;for(;;){if(o=za(o,s),u>e)return i?(o=Ya(o,c),o):o.slice(o.length-e,o.length);r=za(r,s),s=La([2],r),u*=2}}(t[0],t[1],2))}function ja(t){return W(t[0])*W(t[1])}function qa(t){return(n,e)=>{const r=Pt(n),o=Pt(e),i=Pt(n.slice().reverse()),c=Pt(e.slice().reverse()),s=t(r,o),u=t(i,o),f=t(r,c),l=t(i,c),a=-ja(u),p=-ja(l),h=Xa(s),d=Xa(f);return[Na(h,a),Na(d,p)]}}const Wa=qa(function(t,n){const e=0===W(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[z(o,r),e]}(t[e],n[e])});function Ha(t,n){return H(j(t[0],n[1]),j(t[1],n[0]))*W(t[1])*W(n[1])}const Da=Ta,Qa=Fa;function Ra(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-Da(e)+Qa(e)-1;o>n&&(n=o)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-Da(t)+Qa(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function Ga(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Ua=BigInt(2**53);function Za(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/Ua;const o=t%Ua;n.push(Number(o)*2**(53*e)),t=r,e++}return dt(n)}const{round:Ja,sqrt:Ka}=Math;function tp(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(Ja(Ka(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function np(t){return t<0n?-t:t}function ep(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function rp(t,n){const[e,r]=op(t[0],n[0]),[o,i]=op(t[1],n[1]);if(0===Ha(e,o)||0===Ha(e,i))return e;if(0===Ha(r,o)||0===Ha(r,i))return r;throw new Error("An unexpected error occured.")}function op(t,n){const[e,r]=t,[o,i]=n,[c,s]=function(t){const[n,e]=Ra(t).map(ep),r=Ga(n,e);return[Za(tp(np(n/r))),Za(tp(np(e/r)))]}([o,e]);return[[z(j(i,s),j(r,c)),j(c,li(e))],[z(j(i,k(s)),j(r,c)),j(c,li(e))]].sort(Ha)}function ip(t,n){const e=Pt(t),r=0===W(e[0][0])?0:0===W(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],c=n[2][r];return Wa([[e,e],[o,o]],[[i,i],[c,c]])}return qa(rp)(t,n)}const{round:cp,cbrt:sp}=Math;function up(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=np(t))<=1n)return n*t;let r=BigInt(cp(sp(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function fp(t){return j(t,t)}const lp=qa(function(t,n){const e=0===W(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,c=function(t){const[n,e]=Ra(t).map(ep),r=Ga(n,e);return[Za(up(n/r)),Za(up(e/r))]}([o,e]),s=fp(c[0]);return[z(j(i,fp(c[1])),j(r,s)),j(L(3,e),s)]}(t[e],n[e])}),{EPSILON:ap}=Number,pp=ap/2+ap**2/2;function hp(t){return t>0?t-t*pp:t+t*pp}const{EPSILON:dp}=Number,vp=dp/2+dp**2/2;function gp(t){return t>0?t+t*vp:t-t*vp}function mp(t){if(0===t||1===t)return[t,t];const n=hp(hp(t)),e=function(t){return gp(gp(t))}(t);return[n,e]}function bp(t,n,e,r){const o=t.ps,i=n.ps,c=[];let s=da(o,i);if(void 0===s){const r=2**(e-47),s=function(t,n,e=!1){e||(t=Ia(t),n=Ia(n));const r=[,,Wa,ip,lp],[o,i]=r[t.length](t,n),[c,s]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:c,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=Bo(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{tS:e,tE:e,multiplicity:1},t2:r,ri2:{tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=mp(f.tA),[h,d]=mp(f.tB),[v,g]=mp(l.tA),[m,b]=mp(l.tB),x=Bo(t,[a,p]),I=Bo(n,[h,d]),w=Bo(t,[v,g]),_=Bo(n,[m,b]),N=ma(x,I),M=ma(w,_),S={tS:a,tE:p,multiplicity:1},E={tS:h,tE:d,multiplicity:1},y={tS:v,tE:g,multiplicity:1},C={tS:m,tE:b,multiplicity:1};return[{p:Fo(N),kind:5,box:N,t1:Eo(S),ri1:S,t2:Eo(E),ri2:E},{p:Fo(M),kind:5,box:M,t1:Eo(y),ri1:y,t2:Eo(C),ri2:C}]}(o,i);for(const e of s){const i=yo(o,e.ri1.tS),s=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:s},curve:t},f={x:{ri:e.ri2,kind:5,box:s},curve:n};c.push([u,f])}return c}if(r&&(s=s.filter(t=>t.tS>0)),0===s.length)return[];const u=ba(o,i,s);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};c.push([r,o])}return c}const xp=yo,Ip=Oo,wp=R(1);function _p(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=xp(t,n),r=Ip(t,[0,n]);if(4===t.length)return{p:e,pE:r.map(t=>9*wp*t)};if(3===t.length)return{p:e,pE:r.map(t=>6*wp*t)};if(2===t.length)return{p:e,pE:r.map(t=>3*wp*t)};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function Np(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return ha(t,n);if(3===t.length)return na(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=Uc(t),f=$l(e),l=$l(r),a=Xl(c),p=Xl(s),h=Xl(n[1]),d=Xl(o[1]),v=a/3,g=p/3,m=n[1]*c,b=Ll(f,n),x=h*v+2*Xl(m),I=o[1]*s,w=Ll(l,o),_=d*g+2*Xl(I),N=Bl(b,w),M=x+_+Xl(N[1]),S=Bl(N,i),E=M+u+Xl(S[1]);if(jl*E<Xl(Vl(S)))return!1}{const n=function(t){return Iu(Bt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=Fl(e,o),a=Fl(r,i),p=zl(zl(l,a),f);return 0===Yl(p)}}(t,n);if(1===t.length){const e=dt(n[0]),r=dt(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map(t=>[t]))){const i=ba(e,r,[(o=1,{tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},_p(1,n,1)]]}var o}const Mp=k;function Sp(t){return t[t.length-1]<0?Mp(t):t}Number.EPSILON;const Ep=Number.EPSILON/2;function yp(t,n,e,r){const o=t/n,i=Math.abs(t),c=Math.abs(n),s=c-r;return s<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(c*e+i*r)/s**2+Ep*Math.abs(i/c)}}const Cp=z,Op=j,Tp=L,Pp=T,Ap=P,kp=es,Bp=m,Fp=Xo,zp=Gf,Yp=A,Vp=q,Lp=2*Number.EPSILON,$p=Math.abs,Xp=R(1);function jp(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,c,s]}=St(t);if($p(e)<=i){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Yp(Pp(s,n),Tp(3,Pp(r,i))),l=Vp(Ap(i,n),-2*r),a=Yp(Pp(u,e),Tp(3,Pp(o,c))),p=Vp(Ap(c,e),-2*o);if(0===H(Op(l,a),Op(f,p)))return[]}const u=r*r,f=4*e*o,l=u-f,a=2*c*$p(r)+Xp*u+(4*(i*$p(o)+$p(e)*s)+Xp*$p(f))+Xp*$p(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}}(l,a);let f;f=r>=0?-r-t:-r+t;const p=c+u+Xp*$p(f),{est:h,err:d}=yp(f,2*e,p,2*i),{est:v,err:g}=yp(2*o,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=Vt(t);const v=Cp(Op(h,h),Tp(4,Op(p,d))),g=W(v);if(g<0)return[];if(g>0){const t=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,c=i-(i-r),s=r-c,u=.5*(e-o-(s*s-(o-c*c-c*s*2))+n)/r;return[u-(r+u-r),r+u]}(Xi(v));let e;p=Xi(p),h=Xi(h),d=Xi(d),e=W(h)>=0?kp(Bp(h,t)):Bp(kp(h),t);let r=pt(zp(e,Fp(p))),o=pt(zp(Fp(d),e));if(n){if(r<-Lp||r>1+Lp||o<-Lp||o>1+Lp)return[]}else if((r<-Lp||r>1+Lp)&&(o<-Lp||o>1+Lp))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-Lp&&r<=1+Lp?o>=0-Lp&&o<=1+Lp?[r,o]:[r]:o>=0-Lp&&o<=1+Lp?[o]:[]}const m=ai(p);if(W(h)*W(m)<0)return[];if(H(Sp(h),Sp(m))>0)return[];const b=Xi(h),x=Xi(m),I=zp(b,x),w=I[1]+I[0];return[w,w]}const qp=Number.EPSILON;function Wp(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-c)),6*(c+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[2*(i-2*r+n)],[2*(c-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function Hp(t){if(mt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&at(t)&&(t=Hu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=i-r,u=s-(r-n),f=c-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(s-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:An(n,0,1),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=Xn(t),[[s,u],[f,l]]=Wp(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i))],[6*(u-e+3*(o-c))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*i,d=p*e,v=u*c,g=u*i,m=f*f,b=s*c,x=l*r,I=l*e,w=f*r,_=r*e,N=r*n,M=r*o,S=e*e,E=e*n,y=e*i,C=n*c,O=n*o,T=n*n,P=c*i,A=c*o,k=i*i,B=i*o,F=o*o,z=a*c-p*r,Y=u*r+l*c,V=v-x,L=r*r+c*c,$=y+C,X=A+k,j=N+S,q=e*o+n*i,W=T-F,H=E-B,D=_-P,Q=r*i+e*c,R=A+X,G=N+j,U=M+$,Z=y+$,J=G-R,K=$+C,tt=M+y+C,nt=2*I+w;return{inflectionPoly:[s*o-f*n,u*o+s*i-l*n-f*e,g+b-I-w,v-x],otherExtremaPoly:[T*(h-3*d)+F*(3*h-d)+2*(O*(a*e-p*i+3*(l*f-u*s))+3*s*f*H)+3*(q*(m-s*s)+W*(u*f+l*s)),a*(o*(G+3*X)+n*Z)-p*(r*(3*T+F)+e*(3*E+2*B)+n*R)+3*(u*(l*W-u*O+2*(f*H-s*q))+s*(2*l*H+f*(2*(N-A)+(S-k))-s*tt)+l*(l*O+2*f*q)+m*U),a*(2*r*q+e*K+i*(4*A+R))-p*(2*r*(3*E+B)+e*(S+2*A)+i*K)+3*(u*(2*(l*H-s*tt)+f*J-u*q)+s*(2*f*D-s*Q)+l*(l*q+2*f*U+s*J)+m*Q),a*(r*(M+2*$)+c*(S+3*X))-p*(r*(3*j+R)+c*Z)+3*(u*(l*J-u*U+2*(f*D-s*Q))+s*(r*(nt-s*c)-c*(2*l*i+f*c))+l*(l*$+r*(2*f*i+l*o))+f*c*nt),L*(h-d)+2*(_+P)*z-3*(Y*(g+b-I-w)+(u*e+s*r+l*i+f*c)*V),z*L-3*Y*V]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=An(r,0,1),i=hn(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=dn(i,n);dn(e,n)*r>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:An(e,0,1)}}function Dp(t,n){const[e,r]=Xn(t),[o,i]=Wp(t),c=dn(e,n),s=dn(r,n),u=dn(o,n);return(c*dn(i,n)-s*u)/Math.sqrt((c*c+s*s)**3)}const{abs:Qp}=Math,Rp=Jn(function(t){const{curves:n}=t;let e=fc(n[0].ps).minY,r=n[0];for(let t=1;t<n.length;t++){const o=fc(n[t].ps).minY,i=o.box[0][1],c=e.box[0][1];(i<c||i===c&&o.ts[0]>e.ts[0])&&(e=o,r=n[t])}return{curve:r,y:e}});function Gp(t){const{curve:n,y:e}=Rp(t),r=e.ts;return r[0]<=0?[_p(0,n,0),_p(1,n.prev,0)]:r[1]>=1?[_p(1,n,0),_p(0,n.next,0)]:[{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function Up(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:Aa(t,r)}function Zp(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=Ol(e,t=>ac(t.ps)[0][0],t=>ac(t.ps)[1][0],function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=ac(r),c=ac(o);if(t.next!==n&&n.next!==t){if(Oc(!0,i,c)){const r=bp(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==vt(r[0],r[1],o[1]))return;if(!Oc(!1,i,c))return;let s;return s=Pl(r[0],r[1])>Pl(o[0],o[1])?[Eo(Vi(r,o[1])[0].ri),1]:[0,Eo(Vi(o,r[0])[0].ri)],[[_p(1,t,5),_p(0,n,5)],[_p(s[0],t,5),_p(s[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return Oc(!1,ac(r),ac(o))&&xa(kl(r,!1),kl(o,!1),!1)?e.next===n?bp(e,n,t,!0):bp(n,e,t,!0):Np(n,e);let i=Oc(!0,ac(r),ac(o));return i?(i=xa(kl(r,!1),kl(o,!1),!0),i?bp(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=jp(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-qp,c=r[0]+qp,s=r[1]-qp,u=r[1]+qp,f=Bo(e,[i,c]),l=Bo(e,[s,u]);n.push([{x:{ri:{tS:i,tE:c,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{tS:s,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([_p(1,t,4),_p(0,t.next,4)]);return n}(t),{extremes:c,xs:s}=function(t){const n=new Map,e=[];for(const r of t){const t=Gp(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=Hp(r),{minima:i,maxima:c}=o,s=[0,1,...i,...c];for(let o of s)Qp(Dp(r,o))>1e7*2**-t&&e.push([_p(o,n,7),_p(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...s,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of s)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map(t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0}));for(;;){const t=Ol(l,Jp,Kp,Tc);if(!t.length)break;const n=new Map;Pc(n,t);const e=Bc(n),r=Fc(l,e);l=[...zc(e),...r]}l=function(t){return t.filter(t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1})}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map(t=>{const e=t.box.map(t=>t.map(t=>Up(t,n,n-r)));return{...t,box:e}})}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let a=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:a}=Cl(t,a)),t.inOuts=n}f=f.filter(t=>void 0!==t[0].container),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)});const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e],n[t].prev=n[(t-1+e)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.next,void 0===e.in_;);t.nextOrPrev=e.in_,t.idx=t.nextOrPrev.idx}for(const t of l)for(const n of t.inOuts){if(1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.prev,void 0===e.out;);t.nextOrPrev=e.out,t.idx=t.nextOrPrev.idx}return{extremes:c,containers:l}}function Jp(t){return t.box[0][0]}function Kp(t){return t.box[1][0]}function th(t,n,e){Zi(t,1);const r=t.inOuts,o=r[0],i=r[r.length-1],c=1===o.dir?o:i,s=i.dir,u=0===n.idx?new Set:1===n.orientation?n.loopsIdxs:new Set;return o.orientation=s,o.parent=n,o.windingNum=n.windingNum+s,o.loopsIdxs=new Set(u),o.children=new Set,1===s&&o.loopsIdxs?.add(e.idx),i.orientation=s,i.parent=n,i.windingNum=n.windingNum+s,i.loopsIdxs=new Set(u),i.children=new Set,1===s&&i.loopsIdxs?.add(e.idx),c}function nh(t){if(!mt(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(eh(n)&&eh(e))}function eh(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function rh(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function oh(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:ih}=Math;function ch(t,n,e){if(void 0!==t&&!U(t)){if(2===t.length)return t;if(3===t.length){if(oh(t))return mt(t)?[t[0],t[2]]:t;if(uh(t[0],t[2]))return;return[t[0],t[2]]}if(oh(t)){const r=sh(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:ch(r,n,e)}if(uh(t[0],t[3])){if(mt(t))return;return t}if(mt(t))return[t[0],t[3]];if(uh(t[0],t[1])&&uh(t[1],t[2])||uh(t[1],t[2])&&uh(t[2],t[3])||uh(t[0],t[1])&&uh(t[2],t[3]))return ch([t[0],t[t.length-1]],n,e);if(uh(t[0],t[2])||uh(t[1],t[3])||uh(t[1],t[2]))return t;if(uh(t[0],t[1])){if(Pl(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=rh(te(t[1],t[2]),2*n),o=ie(t[1],r);return sh([t[0],e(o),t[2],t[3]])}}if(uh(t[2],t[3])){if(Pl(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=rh(te(t[2],t[1]),2*n),o=ie(t[2],r);return sh([t[0],t[1],e(o),t[3]])}}}}function sh(t){return mt(t)?[t[0],t[3]]:at(t)?Hu(t):t}function uh(t,n){return t[0]===n[0]&&t[1]===n[1]}function fh(t){return t}function lh(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>{const r=Up(e[0],t,n),o=Up(e[1],t,n);return r===e[0]&&o===e[1]?e:[r,o]}}(t,n):fh;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const c=n[n.length-1],s=c?c[c.length-1]:o(t[0][0]);i[0]=s,i=i.map(t=>o(t)),nh(i)&&(i=[i[0],i[i.length-1]]),i=ch(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let c=t.slice();return c=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map(t=>t.map(t=>{let o,i=0,c=0,s=0;for(;!(++c>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=Up(i,e,n);const c=Fa(i);c>s&&(s=c,o=i)}return o}));t.push(i)}o.push(t)}return o}(c,n,e,1):c,c=c.map(i),c=c.filter(t=>t.length>0),c}const ah=Jn(t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n}),ph=Sn;function hh(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let c=0;c<e+1;c++)for(let s=0;s<r+1;s++)i[o-(c+s)]+=t[e-c]*n[r-s];return ph(i)}function dh(t,n){const e=[],r=t.length-1;for(let n=0;n<r+1;n++)e.push(t[n]/(r+1-n));return e.push(n),e}const vh=Sn;function gh(t,n){const e=t.length-1,r=n.length-1,o=e-r,i=o<0?+o:0,c=o>0?-o:0,s=Math.max(e,r),u=[];for(let e=0;e<s+1;e++){const r=t[e+i]||0,o=n[e+c]||0;u.push(r+o)}return vh(u)}function mh(t){let n=0;for(const e of t){const[t,r]=ic(e),[o,i]=Xn(e);n+=dn(dh(gh(hh(t,i),xn(hh(r,o))),0),1)}return n/2}function bh(t){let n=0;for(let e=0;e<t.length-1;e++)n+=Yn(t[e],t[e+1]);return n}function xh(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,c;const s=bh(t);if(256*Pl(t[0],t[t.length-1])<s*s){const[r,o]=yo(t,.5),s=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/s,c=(r-n)/s}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,c=(r-n)/t}const u=function(t,n,e){const r=ie(t[0].map(t=>-t));return lc(t.map(t=>se(-n,e,r(t))))}(t,i,c),[[f,l],[a,p]]=u,h=[u[0],[a,l],u[1],[f,p]],d=se(i,c);return h.map(n=>ie(t[0],d(n)))}function Ih(t){return{ps:t,ts:[0,1]}}const{round:wh,PI:_h}=Math;const{abs:Nh,max:Mh}=Math;function Sh(n,e,r={}){let o;"undefined"!=typeof _debug_&&(o=performance.now()),e=e||ah(n);const i=Math.ceil(Math.log2(e)),{inclMicroCorners:c=!0,minLoopArea:s=(2**i*2**-12)**2,booleanOp:u="OR",containerSizeMultiplier:f=16}=r,l=2**i*2**-46*f;(function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=ac(t),e=xh(t),r=kl(t,!1);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}})(n=lh(n,46,i,!1,!0)),n.sort(Mc);const a=n.map((n,e)=>t(n,e)),{extremes:p,containers:h}=Zp(a,l,i),d={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0,loopsIdxs:new Set,orientation:-1},v=new Set,g=new Set;for(const t of a){if(v.has(t))continue;v.add(t);const n=Nc(d,t),e=p.get(t)[0].container;if(0===e.inOuts.length)continue;const r=th(e,n,t),o=2===e.inOuts.length&&2===e.xs.length;if(o&&e.inOuts[0].nextOrPrev===e.inOuts[1])r.bezierPieces=t.beziers.map(Ih),r.parent.children=r.parent.children||new Set,r.parent.children.add(r);else if(oc(r,v,g,!1),o&&void 0!==r.bezierPieces){const{bezierPieces:t}=r,n=t[t.length-1],e=t[0];if(n.ps===e.ps){const r={ps:n.ps,ts:[n.ts[0],e.ts[1]]};t.shift(),t.pop(),t.unshift(r)}}}"undefined"!=typeof _debug_&&_debug_.verbose;const m=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(...t.children),e.push(...t.children),0===t.windingNum&&(t.children=new Set)}return n}(d);"undefined"!=typeof _debug_&&_debug_.verbose;const b=function(t){return n=>{const e="OR"===t||"XOR"===t?[n]:[];n.used="OR"===t||"XOR"===t;const r=Array.from(n.children);for(;r.length;){const n=r.pop();if("OR"===t&&0===n.windingNum&&e.push(n),"AND"===t){const t=Cc(n);(0===n.windingNum&&t||Ec(n.windingNum)>=2&&!t)&&(e.push(n),n.used=!0)}if("XOR"===t){const t=Cc(n);(0===n.windingNum&&t||Ec(n.windingNum)>=2&&t)&&(e.push(n),n.used=!0)}for(const t of n.children)r.push(t)}return e}}(u),x=m.map(b).filter(t=>0!==t.length).map(n=>{const e=n[0].orientation;return n.map((n,r)=>function(n,e,r){const o=n.bezierPieces?.map(ec);if(void 0===o)return t([],r);const i=n.orientation;return t(0===r||e*i<0?o:o.map(t=>t.toReversed()).toReversed(),r)}(n,e,r))}),I=[];for(let t=0;t<x.length;t++){const n=x[t].filter(t=>Math.abs(mh(t.beziers))>s);n.length&&(n.sort((t,n)=>Mc(t.beziers,n.beziers)),I.push(n))}"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-o);const w=c?I:I.map(n=>n.map(n=>{const{beziers:e}=n,r=function(t,n){!function(t){wh(function(t){const n=t.length;let e=0;for(let r=0;r<n;r++){const o=t[(r-1+n)%n],i=t[r];e+=zn(i,[0,1])+N(ue(o,1),ue(i,0))}return e}(t)/(2*_h))}(t);const e=t.map(t=>t.map(t=>[t[0],t[1]])).filter(t=>bh(t)>n),r=e.length;for(let t=0;t<r;t++){const n=e[t],o=e[(t+1)%r],i=n[n.length-1],c=o[0];c[0]===i[0]&&c[1]===i[1]||(i[0]=c[0],i[1]=c[1])}return e}(e,Mh(...h.map(t=>Nh(t.box[0][0]-t.box[1][0])),...h.map(t=>Nh(t.box[0][1]-t.box[1][1]))));return t(r,n.idx)}));return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(w),w}const Eh=Math.max,yh=Math.abs;function Ch(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=n[0],v=n[1],g=c-d,m=u-d,b=l-d,x=p-d,I=s-v,w=f-v,_=a-v,N=h-v,M=g*g,S=6*g*m,E=6*b*x,y=I*I,C=6*I*w,O=6*_*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*w*N+9*_*_,B=2*I*N+18*w*_,F=6*I*_+9*w*w;return[6*(x*x-E+(M-S)+T+(A-P)+(N*N-O+(y-C)+k+(F-B))),5*(E+5*S+3*P-2*(T+2*A+3*M)+(O+5*C+3*B-2*(k+2*F+3*y))),4*(T-3*(P-2*A)-5*(2*S-3*M)+(k-3*(B-2*F)-5*(2*C-3*y))),3*(P-2*(2*A-5*(S-2*M))+(B-2*(2*F-5*(C-2*y)))),2*(A-5*(S-3*M)+(F-5*(C-3*y))),S-6*M+(C-6*y)]}function Oh(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n[0],p=n[1],h=i-a,d=s-a,v=f-a,g=c-p,m=u-p,b=l-p,x=h*h,I=h*d,w=d*v,_=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+_+2*S-4*(M+N)+(v*v+x+2*E-4*(w+I)),3*(M-S+(3*N-_)+(w-E+(3*I-x))),S-3*(2*N-_)+(E-3*(2*I-x)),N-_+(I-x)]}function Th(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const Ph=Math.sqrt;function Ah(t,n,e=!0){let r;if(4===t.length)r=Ch(t,n);else if(3===t.length)r=Oh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Yn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}r=Th(t,n)}const o=An(r,0,1);e&&(o.push(0),o.push(1));let i,c=Number.POSITIVE_INFINITY;for(const e of o){const r=yo(t,e),o=Pl(r,n);o<c&&(c=o,i={p:r,t:e,d:Ph(o)})}return i}const kh=Math.sqrt;function Bh(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function Fh(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function zh(t,n){const e=Fh(t)-Fh(n);return 0!==e?e:t.tS-n.tS}class Yh{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,c=t[i],s=t[e];if(this.compare(s,c)>0)break;t[i]=s,t[e]=c,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const Vh=Math.max;function Lh(t,n,e,r=50){if(1===t.length)return Ah(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=Ch(t,n);else if(3===t.length)e=Oh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Yn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=Th(t,n)}const r=An(e,0,1);r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=yo(t,e),c=Pl(r,n);c>i&&(i=c,o={p:r,t:e,d:kh(c)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=Ah(n,t[0]).d,r=Ah(n,t[t.length-1]).d;return e>r?e:r}const o=Vh(Bh(t),Bh(n));e=e||o/1e6;const[i,c]=$h(t,0,1),s={tS:0,tE:1,hL:Ah(n,t[0]).d,hR:Ah(n,t[t.length-1]).d,hEL:i,hER:c},u=new Yh(zh);u.insert(s);let f=0,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:c,hL:s,hR:p}=o,h=(i+c)/2,[d,v]=$h(t,i,h),[g,m]=$h(t,h,c),b=yo(t,h),x=Yn(b,Ah(n,b).p),I=Vh(s,x,p);if(I>a&&(a=I),l=Fh(o),l-a<e)return a;if(f++>r)return a;const w={tS:i,tE:h,hL:s,hR:x,hEL:d,hER:v},_={tS:h,tE:c,hL:x,hR:p,hEL:g,hER:m};u.swapMinOrMax(w),u.insert(_)}}function $h(t,n,e){const r=(e+n)/2,o=Hn(t,n,r),i=Hn(t,r,e);return[bh(o),bh(i)]}function Xh(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||ke(r)||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function jh(t){const n=[],e=[t],r=new Set;for(;e.length>0;){const t=cr(e.pop());if(0===t.length)continue;n.push(t);const o=t[0],i=t[t.length-1].next.prevOnCircle;r.add(o),r.add(i);const c=Xh(o,!0),s=Xh(i,!0),u=c.filter(t=>!r.has(t)),f=s.filter(t=>!r.has(t));for(const t of u)r.add(t);for(const t of f)r.add(t);e.push(...u,...f)}return n}const qh=-1;class Wh{datum;color=0;parent;extras;"-1";1;constructor(t){this.datum=t}}function Hh(t){return!!t&&0===t.color}class Dh{compare;duplicatesAllowed;root;nodeCount;valueCount;constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?1:qh]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[-1]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[1]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new Wh(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?1:qh;e[n]=t(e[n],r),e[n].parent=e}return Hh(e[1])&&!Hh(e[-1])&&(e=Qh(qh,e)),Hh(e[-1])&&Hh(e[-1][-1])&&(e=Qh(1,e)),Hh(e[-1])&&Hh(e[1])&&Gh(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,c){const s=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(c,i.datum);if(u<0&&!i[-1]||u>0&&!i[1])return i;if(u<0){Hh(i[-1])||Hh(i[-1][-1])||(i=Uh(i));const n=t(i[-1],c);return null===n?null:(i[-1]=n,i[-1]&&(i[-1].parent=i),Zh(i))}if(Hh(i[-1])&&(i=Qh(1,i),u=r.compare(c,i.datum)),0===u&&!i[1]){if(s&&!n){if(void 0===e||!0===e(c,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(c,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(c,i.datum)?(o=i.datum,r.valueCount-=1+(s?i.extras.length:0),void r.nodeCount--):null}if(Hh(i[1])||Hh(i[1][-1])||(i=function(t){return Gh(t),Hh(t[-1][-1])&&Gh(t=Qh(1,t)),t}(i),u=r.compare(c,i.datum)),0===u)if(s&&!n)if(void 0===e||!0===e(c,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let s=0;s<t.length;s++)if(!0===e(c,t[s])){o=t.splice(s,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(c,i.datum))return null;{r.valueCount-=1+(s?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[1]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[1]=Rh(i[1]),r.nodeCount--}}else{const n=t(i[1],c);if(null===n)return null;i[1]=n}return i[1]&&(i[1].parent=i),Zh(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?1:qh]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[-1]),void e(o[1]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?1:qh]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?1:qh]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}getMinNode=this.getMinOrMaxNode(qh);getMaxNode=this.getMinOrMaxNode(1);min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function Qh(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=0,e}function Rh(t){if(t[-1])return Hh(t[-1])||Hh(t[-1][-1])||(t=Uh(t)),t[-1]=Rh(t[-1]),t[-1]&&(t[-1].parent=t),Zh(t)}function Gh(t){t.color=(t.color+1)%2,t[-1].color=(t[-1].color+1)%2,t[1].color=(t[1].color+1)%2}function Uh(t){if(Gh(t),Hh(t[1][-1])){const n=Qh(1,t[1]);t[1]=n,n.parent=t,Gh(t=Qh(qh,t))}return t}function Zh(t){return Hh(t[1])&&(t=Qh(qh,t)),Hh(t[-1])&&Hh(t[-1][-1])&&(t=Qh(1,t)),Hh(t[-1])&&Hh(t[1])&&Gh(t),t}const{cpNodeComparator:Jh,getAllOnLoop:Kh}=vr;function td(t){const n=new Map;return Kh(t).forEach(function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new Dh(Jh,!1),n.set(e,r)),r.insert(t)}),n}function nd(t,n=.125,e=50){let r=Ge(t.cpNode);for(;!ke(r);)r=r.next;const o=jh(r),i=new Set;for(let t=0;t<o.length;t++){const r=o[t];let c=0;for(;c<r.length;){const t=c;for(;(c++,c!==r.length)&&!(ed(t,c,r,e)>n);)i.add(r[c])}}r=function(t,n){const e=n;if(t(e))return e;let r=n.next;for(;r!==e;){if(t(r))return r;r=r.next}}(t=>ke(t)?t:void 0,r);for(const n of i)gr(t=>2!==Xe(t)&&!t.isHoleClosing)(n)||tr(n,t.meta);return{cpNode:r,meta:{...t.meta,cpTrees:td(r)}}}function ed(t,n,e,r){const o=[],i=Oe(e[t],e[n].next);for(;t<n+1;t++)o.push(Lh(Te(e[t]),i,r));return Math.max(...o)}const{getAllOnLoop:rd}=vr;function od(t){const n=[],e=rd(t);for(const t of e)Ve(t)&&!t.isHoleClosing&&n.push(t);return n}const id=function(t,n,e){const r=t.get(n);return void 0!==r&&r.has(e)},cd=function(t,n,e){let r=t.get(n);void 0===r&&(r=new Set,t.set(n,r)),r.add(e)},{isOnSameCircle:sd}=vr;function ud(t){let n=t,e=t.prevOnCircle;for(;ke(e);)e=e.prevOnCircle;const r=[];do{ke(n)||r.push(n),n=n.nextOnCircle}while(n!==e);return r}function fd(t,n){const e=new Map,r=new Map;return He(t,function(t){const o=r.get(t)||n*t.cp.circle.radius,i=t.next,c=function(t,n,e=.4,r=16){if(4===n.length)return Rn(t,n,e,r);if(3===n.length)return Qn(t,n,e,r);if(2===n.length)return Vn(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Te(t)),s=i.cp.circle.radius;if(o-c>n*s)for(const t of Ae(i))if(r.set(t,o-c),!i.isHoleClosing){const{center:t}=i.cp.circle;cd(e,t[0],t[1])}}),e}function ld(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const r=function(t){const n=h(t);return n.reduce(function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n},n[0])}(Ge(t.cpNode));!function(t,n){const e=od(n);for(;e.length;){const r=e.pop(),{center:o}=r.cp.circle;if(!id(t,o[0],o[1])||r.isIntersection)continue;let i=r.prevOnCircle,c=!1;for(;!c;){i=i.next;const{center:e}=i.cp.circle;if(id(t,e[0],e[1]))if(sd(i,n))c=!0;else{if(1===ud(i).length)continue;c=!0}else{for(;ke(i.prevOnCircle);)i=i.prevOnCircle;c=!0}}if(c){const t=i.prevOnCircle;t.next=i,i.prev=t,t.nextOnCircle=i,i.prevOnCircle=t}}}(fd(r,n),r);const o={cpNode:r,meta:{...t.meta,cpTrees:td(r)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.generated.timing.sats=performance.now()-t)}(e),o}const ad={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},pd={maxCurviness:{range:[.01,3]},maxLength:{range:[1,1024],scaleByMaxRadius:!0},angleIncrement:{range:[.1,360]},satScale:{range:[1,Number.POSITIVE_INFINITY]},simplifyTolerance:{range:[2**-20,2**20],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function hd(t){return[t[1],-t[0]]}function dd(t,n){return Se(n)&&Me(n).isDull?-ne(hd(Me(n).tangents[0]),ce(te(n.p,t.center))):0}function vd(t){return t[0]*t[0]+t[1]*t[1]}function gd(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function md(t){const n=t[0],e=t[1],r=t[2],o=vd,i=.5*gd([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),c=.5*gd([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),s=gd([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/s,c/s]}function bd(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const xd=Number.EPSILON/2,Id=xd*xd;function wd(t){const n=t*Id;return n/(1-n)}const _d=Ar,Nd=m,{abs:Md}=Math,Sd=wd(3);function Ed(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const c=[i];for(let s=1;s<r;s++){const r=o[s-1],u=e*r[1],f=Md(e)*i+Md(u),l=t[s];i=n[s]+f+Md(l[1]+u);const a=Nd(l,_d(e,r));o.push(a),c.push(i)}return{coeffs:o,errBound:c.map(t=>Sd*t)}}const yd=L,Cd=A;function Od(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(Cd(t[o],yd(n,r[o-1])));return r}const Td=ht,Pd=xr,Ad=m,kd=Number.EPSILON,Bd=wd(3),{sqrt:Fd}=Math;function zd(t,n,e,r=[0,1],o=void 0,i=void 0,c=!1,s=0){const[u,f]=r,l=n.ps,a=0===s&&n===o;let{polyDd:p,polyE:h,getPolyExact:d}=zi(l,e);const v=a?Ed(p,h.map(t=>t/Bd),i):void 0,g=c&&a?Ed(v.coeffs,v.errBound.map(t=>t/Bd),i):void 0,m=c&&a?Ed(g.coeffs,g.errBound.map(t=>t/Bd),i):void 0,{polyDd:b,polyE:x,getPolyExact:I}=void 0!==m?{polyDd:m.coeffs,polyE:m.errBound,getPolyExact:()=>Od(Od(Od(d(),i),i),i)}:void 0!==v?{polyDd:v.coeffs,polyE:v.errBound,getPolyExact:()=>Od(d(),i)}:{polyDd:p,polyE:h,getPolyExact:d},w=Mo(b,u,f,x,I),_=1===i&&n===o.next||0===i&&n===o,N=0===i&&n===o.prev||1===i&&n===o;0===u?_||w.push({tS:0,tE:0,multiplicity:1}):1===u?N||w.push({tS:1,tE:1,multiplicity:1}):w.push({tS:u,tE:u,multiplicity:1}),0===f?_||w.push({tS:0,tE:0,multiplicity:1}):1===f?N||w.push({tS:1,tE:1,multiplicity:1}):w.push({tS:f,tE:f,multiplicity:1});const M=w.map(r=>{const{tS:o,tE:i}=r;if(i<u||o>f)return;const c=(o+i)/2,s=c<0?0:c>1?1:c,a=Bo(l,[o,i]),p=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(a),h=function(t,n,e){const r=n[0],o=n[1],i=r[0],c=r[1],s=o[0],u=o[1],f=e[0],l=e[1];let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(const[n,e]of[[i,c],[i,u],[s,c],[s,u]]){const r=Td(n,f),o=Td(e,l),i=Ad(Pd(r,r),Pd(o,o))[1],c=i*(1-2**t*kd),s=i*(1+2**t*kd);c<=a&&(a=c),s>=p&&(p=s)}return[a,p]}(t,a,e),d=0===s?1:s;return{curve:0===s?n.prev:n,p,t:d,d:(Fd(h[0])+Fd(h[1]))/2,dSquaredI:h,box:a}});return M.filter(t=>void 0!==t)}const Yd=Pl;function Vd(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];return u<o?f<i?Yd(t[0],n):f>s?Yd([o,s],n):(o-u)**2:u>c?f<i?Yd([c,i],n):f>s?Yd(t[1],n):(u-c)**2:f<i?(i-f)**2:f>s?(f-s)**2:0}const Ld=Jn(lc);function $d(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=Pl,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let c=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return c=Math.max(0,Math.min(1,c)),e(t,[r[0]+c*(o[0]-r[0]),r[1]+c*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]])),r=Pl(t[0],t[1]),o=Pl(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const Xd=Jn(xh);function jd(t,n,e,r=void 0,o=void 0,i=!1,c=0){n=function(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,c=yo(i,o.ts[0]),s=yo(i,o.ts[1]),u=Math.min(Pl(n,c),Pl(n,s));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Vd(Ld(c),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;$d(Xd(c),n)<=e&&r.push(i)}return r}(t,n,e),t}(n,e);const s=[];for(let u=0;u<n.length;u++){const f=n[u],l=zd(t,f.curve,e,f.ts,r,o,i,c);s.push(...l)}let u=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=u&&f.push(n)}return f.map(t=>yr(t.curve,t.t,!1))}const{max:qd,ceil:Wd,log2:Hd}=Math;function Dd(t,n){return n.map(n=>jd(5,n,t)[0])}function Qd(t,n){return[n*t[0],n*t[1]]}function Rd(t,n,e){const r=bd(e);let o,i,c,s,u=1,f=0;do{i=ie(Qd(e,u),n),c=Dd(i,t),s=bd(te(i,md(c.map(t=>t.p)))),o=s<r,u/=2,f++}while(!o&&f<3);return{newX:i,newV:s,newPoss:c}}const{isSharp:Gd}=vr,Ud=te;function Zd(t,n,e,r,o){const i=2**-32*o,c=[t[0],t[n],t[t.length-1]],s=[r[0],r[n],r[t.length-1]],u=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if(Gd(u[0][0]))return;let l,a,p=0,h=function(t,n,e){const r=n[0][0].cp.circle,o=r.center,i=jd(qd(0,Wd(Hd(t/r.radius)))+1,e[1],o)[0];return md([n[0][0].cp.pointOnShape.p,i.p,n[2][1].cp.pointOnShape.p])}(o,u,f),d=Number.POSITIVE_INFINITY;for(;d>i&&p<10;){if(p++,l=Dd(h,f),!Number.isFinite(h[0])||!Number.isFinite(h[1]))return;a=md(l.map(t=>t.p));const t=Ud(h,a);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=Rd(f,h,t);h=n.newX,l=n.newPoss;const e=bd(t);d=Math.abs(e-n.newV)}const v=(Yn(h,l[0].p)+Yn(h,l[1].p)+Yn(h,l[2].p))/3,g={center:h,radius:v};let m=0;for(let t=0;t<3;t++){const n=l[t],e=ce(te(n.p,h)),r=ee(e);if(Se(n)&&Me(n).isDull){const t=Ne(n.curve.ps,n.curve.next.ps).tangents.map(ee),r=Math.asin(re(t[0],e)),o=Math.asin(re(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),m+=i}else{const t=ce(ue(n.curve.ps,n.t));m+=Math.abs(Math.asin(re(r,t)))}}const b=[];for(let t=0;t<r.length;t++){const n=jd(5,r[t],h)[0];b.push(Yn(n.p,h))}const x=Math.min(...b);return{poss:l,circle:g,error:1*Math.abs(v-x)+1*m,δ3s:u}}const Jd=Jn(t=>!!Se(t)&&Me(t).isQuiteSharp);function Kd(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&Jd(t)&&Jd(e)||(e.curve===t.curve&&hr(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),t.curve.loop===e.curve.loop&&tv(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function tv(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function nv(t,n,e,r){const o={pointOnShape:n,order:e,order2:r},i=t.findBounds({cp:o});if(void 0!==i[0]||void 0!==i[1])return void 0===i[0]||void 0===i[1]?t.max(t.root):i[0].datum}function ev(t,n,e,r,o,i,c){if(void 0!==i&&!function(t,n,e){const r=hr(n,e.cp);if(r<0)return!0;if(0===r)return!0;const o=t.getMinNode();if(void 0===o)return!0;const i=o.datum;return hr(t.getMaxNode().datum.cp,n)<0&&i===e}(r,o,i.next)&&!t)return;const s={cp:o,isHoleClosing:n,isIntersection:e,id:c.id,next:void 0,prev:void 0,nextOnCircle:void 0,prevOnCircle:void 0};c.id++;const u=void 0===i?s:i,f=void 0===i?s:u.next;return f.prev=s,u.next=s,s.prev=u,s.next=f,r.insert(s),s}function rv(t,n,e,r,o,i,c){const{cpTrees:s}=o;let u=!1;const f=i.map((i,f)=>{const l=r[f],a=s.get(i.curve.loop),p={pointOnShape:i,circle:e,order:l,order2:0},h=void 0===c?nv(a,i,l,0):c[f],d=ev(t,n,!1,a,p,h,o.lastInsertId);return void 0===d&&(u=!0),d});return u||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(t));const e=n.length;for(let t=0;t<e;t++)n[t].nextOnCircle=n[(t+1)%e],n[t].prevOnCircle=n[(t-1+e)%e]}(e,f),{anyFailed:u,cpNodes:f}}const ov=Math.cos(Math.PI/180*1);function iv(t,n,e,r,o,i){const{cpTrees:c,maxCoordinate:s}=t,u=2e-14*s,f=.02*u,l=nv(c.get(n.curve.loop),n,r,o);if(!l)return;const a=[l,l.next],{p,t:h}=n;for(const t of a){const n=t.cp.pointOnShape.p,r=Yn(p,n);if(!(r>u)&&(ne(ce(te(n,t.cp.circle.center)),ce(te(p,e.center)))>ov||r<f&&0!==h&&1!==h))return t}}function cv(t,n){const e=[];for(const t of n)e.push([t,t.next]);const r=function(t,n){const e=t.map(Kd);let r,o=Number.POSITIVE_INFINITY;for(let i=1;i<t.length-1;i++)for(let c=0;c<3;c++){const s=Zd(t,i,c,e,n);if(!s)continue;const{circle:u,poss:f,error:l,δ3s:a}=s;l<o&&(o=l,r={circle:u,poss:f,δ3s:a})}return r}(e,t.maxCoordinate),{circle:o,poss:i,δ3s:c}=r,s=[];for(let t=0;t<3;t++)s.push(dd(o,i[t]));const u=[];for(let n=0;n<i.length;n++){const e=iv(t,i[n],o,s[n],0);void 0!==e&&Xe(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?rv(!0,!1,o,s,t,i,c.map(t=>t[0])).cpNodes:[]}}let sv=0;function uv(t,n){if(Ee(n.cp.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const r=We(n);if(r.length<=2)break;const{closeBysFor3Prong:o,cpNodes:i}=cv(t,r);if(e.push(i),o.length>0)return{closeBysFor3Prong:o,addedCpNodes:e};if("undefined"!=typeof _debug_&&++sv===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function fv(t){for(const n of t)return n}function lv(t,n,e,r){for(const o of[n[0]])Ae(o).forEach(t=>{e.delete(t),r.delete(t)}),tr(o,t)}const{cpNodeComparator:av}=vr;function pv(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=e[i],s=new Dh(av,!1);let u,f;for(const t of c){const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};u=ev(!0,!1,!1,s,{pointOnShape:t,circle:n,order:-1,order2:0},f,r),f=ev(!0,!1,!1,s,e,u,r),u.prevOnCircle=f,f.prevOnCircle=u,u.nextOnCircle=f,f.nextOnCircle=u}o||(o=u);const l=t[i];n.set(l,s)}return o}const hv=function(t,n,e,r,o){let i=t.get(n);void 0===i&&(i=new Map,t.set(n,i));let c=i.get(e);void 0===c&&(c=new Map,i.set(e,c)),c.set(r,o)};let dv;function vv(t,n){dv=performance.now();const e=new Map;for(const r of t){const t=n.get(r).toArrayInOrder();for(const n of t){const{p:t,t:o}=n.cp.pointOnShape;hv(e,r,t[0],t[1],n)}}return e}function gv(t){const n=[],e=[],r=[],o=[],i=[];for(const c of t)for(const t of c.curves){const c=t.ps,s=kl(c,!0);r.push(s);const u=Ld(c);n.push(u);const f=xh(c);e.push(f);const l=Ne(t.ps,t.next.ps);l.isQuiteSharp?o.push(t):l.isQuiteDull&&i.push(t)}return{looseBoundingBoxes:n,tightBoundingBoxes:e,boundingHulls:r,sharpCorners:o,dullCorners:i}}function mv(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];bh(o.ps)<t||Ne(o.ps,o.next.ps).isQuiteSharp&&e.push(yr(o,1,!0))}return e}}const bv=m,xv=Ar;function Iv(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=bv(t[r],xv(n,e));return e}const wv=P,_v=T,Nv=Ar,Mv=m,Sv=Ir;function Ev(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Nv(3,Mv(_v(s,n),Nv(3,_v(r,i)))),Nv(6,Sv(wv(i,n),-2*r)),Nv(3,_v(r,n))],[Nv(3,Mv(_v(u,e),Nv(3,_v(o,c)))),Nv(6,Sv(wv(c,e),-2*o)),Nv(3,_v(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[Sv(wv(2*i,2*n),-4*r),_v(2*r,2*n)],[Sv(wv(2*c,2*e),-4*o),_v(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[_v(r,n)],[_v(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const yv=T,Cv=m,Ov=Ar,Tv=Ir;function Pv(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Ov(6,Cv(yv(s,n),Ov(3,yv(r,i)))),Ov(6,Tv(yv(i,2*r),n))],[Ov(6,Cv(yv(u,e),Ov(3,yv(o,c)))),Ov(6,Tv(yv(c,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[Tv(yv(2*i,4*r),2*n)],[Tv(yv(2*c,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Av=xr,kv=m,Bv=b,Fv=ht,zv=Z,Yv=L,Vv=A,Lv=q;function $v(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let c=-function(t,n){const[e,r]=Ev(t),[o,i]=Pv(t),c=Iv(e,n),s=Iv(r,n),u=Iv(o,n),f=Iv(i,n),l=Bv(Av(c,f),Av(s,u)),a=kv(Av(c,c),Av(s,s)),p=Av(a,Av(a,a)),h=Math.sqrt(p[1]);return l[1]/h}(r,i);(c<t||e)&&(c=t);const s=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Yv(3,Vv(Fv(s,n),Yv(3,Fv(r,i)))),Yv(6,Lv(zv(i,n),-2*r)),Yv(3,Fv(r,n))],[Yv(3,Vv(Fv(u,e),Yv(3,Fv(o,c)))),Yv(6,Lv(zv(c,e),-2*o)),Yv(3,Fv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[Lv(zv(2*i,2*n),-4*r),Fv(2*r,2*n)],[Lv(zv(2*c,2*e),-4*o),Fv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[Fv(r,n)],[Fv(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[Zr(e,n),Zr(r,n)]}(r,i).map(t=>t[t.length-1]),u=[-s[1],s[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(c*f),o[1]-u[1]/(c*f)],radius:1/c}}const{abs:Xv}=Math,jv=T,qv=g;function Wv(t,n,e){const r=Xv(t[1]-n[1])>Xv(t[0]-n[0]);let o,i,c,s,u,f;r?(o=t[1],i=t[0],c=n[1],s=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],c=n[0],s=n[1],u=e[0],f=e[1]);const l=Gf(jv(i,s),jv(o,c)),a=b([0,s],Pr(c,l)),p=Gf(m(b(m(qv(c,c),qv(s,s)),m(qv(u,u),qv(f,f))),Xo(xr(a,jv(f,s)))),Xo(m(jv(c,u),xr(l,jv(s,f))))),h=m(xr(l,p),a);return r?[h[1],p[1]]:[p[1],h[1]]}function Hv(t,n,e,r){const o=(2**-14*t)**2;if(Pl(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],c=[r[0]-n[0],r[1]-n[1]],s=[-c[1],c[0]],u=Kn([n,e],[i,[i[0]+s[0],i[1]+s[1]]]);return u?ne([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function Dv(t,n){const[e,r]=t,[o,i]=n,c=T(e,o),s=T(r,i);return m(xr(c,c),xr(s,s))[1]}function Qv(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Vd(Ld(t),n)<=1.0009765625*e&&r.push(o)}return r}function Rv(t,n,e,r){if(Se(r)&&Me(r).isDull)return;const o={radius:n,center:e};if(iv(t,r,o,dd(o,r),0))return;const{anyFailed:i,cpNodes:c}=rv(!1,!1,o,[-.5,.5],t,[r,r])}const Gv=g,Uv=m,Zv=b,Jv=Pr,{asin:Kv,acos:tg,cos:ng,sqrt:eg,PI:rg}=Math;function og(t,n,e){if(n+e>=t)return Number.POSITIVE_INFINITY;const r=T(t,n),o=Jv(n,r),i=t-n,c=n*i,s=(c-n*e-e*e/2)/(c+i*e),u=Gf(Zv(Zv(o,Gv(n,e)),Gv(e,e/2)),Uv(o,Jv(e,r)))[1];return tg(s),n*tg(u)}const{ceil:ig,log2:cg,max:sg,sqrt:ug,abs:fg,sin:lg,cos:ag}=Math;function pg(t,n,e,r,o){const{loops:i,maxCoordinate:c,squaredDiagonalLength:s}=t,u=o.curve.loop,f=(2**-21*c)**2,l=2**-46*c,a=ug(s),p=1/a,h=2**-16*c,[d,v]=function(t,n,e,r,o){let i;const c=o.p;let s;if(n)i=[c[0],c[1]-e],s=e;else if(0===t)({center:i,radius:s}=$v(r,o));else{({center:i,radius:s}=$v(r,o,!0));const n=te(o.p,i),e=se(lg(t),ag(t))(n);i=ie(o.p)(e)}return[i,s]}(r,n,a,p,o),g=o.p;let m=function(t,n,e,r,o,i,c){const{cpTrees:s}=o;if(n)return r.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const u=Se(i)&&Me(i).isDull?1===i.t&&0===t?-1:0===i.t?1:dd(c,i):0,f=nv(s.get(e),i,u,0);return f&&f!==f.next.next?Kd([f,f]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(r,n,u,i,t,o,{center:d,radius:v}),b=d;const x=ug(function(t,n,e,r){let o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const c=n[i],s=c.curve.ps,u=2;for(let n=0;n<u+1;n++){const i=Hv(t,e,r,yo(s,c.ts[n/u]));if(i){let t=Pl(e,i);t<o&&(o=t)}}}return(1+2**-10)*o}(c,m,g,d));let I,w;v>x&&(b=oe(g,d,x/v));let _=0;for(;_<25;){const i=Dv(b,o.p);_<2&&(m=Qv(m,b,i));const s=jd(sg(0,ig(cg(c/i)))+1,m,b,o.curve,o.t,e&&0==_&&v!==1/p,r).map(t=>yr(t.curve,t.t,!1));let u,a=Number.NEGATIVE_INFINITY;I=[];for(const t of s){if(void 0===t)continue;const n=Dv(o.p,t.p);n>a&&(a=n,u=t),0!==n&&I.push(t)}const g=a;if(w=u,void 0===w||0===g)return;const x=Dv(b,w.p);if(0===_&&v<(1-h)*ug(x))return void Rv(t,v,d,o);if(!n&&g<=sg(og(v,ug(x),4*l),f))return;if(b=Wv(b,o.p,w.p),fg(ug(i)-ug(x))<l)break;if(_++,25===_)return}return{circle:{center:b,radius:Yn(b,w.p)},zs:[w]}}function hg(t,n,e,r){e[0]=0===e[0].t?yr(e[0].curve.prev,1,!0):e[0];const o=e.map(t=>dd(n,t));for(let r=0;r<e.length;r++)if(iv(t,e[r],n,o[r],0))return;const{anyFailed:i,cpNodes:c}=rv(r,r,n,o,t,e);if(!i)return r&&function(t,n){const{cpTrees:e}=t,[r,o]=n,i=o.cp,c=ev(!0,!0,!1,e.get(i.pointOnShape.curve.loop),{...i,order2:1},o,t.lastInsertId);c.holeCloserTwin=o,o.holeCloserTwin=c;const s=ev(!0,!0,!1,e.get(r.cp.pointOnShape.curve.loop),{...r.cp,order2:-1},r.prev,t.lastInsertId);s.holeCloserTwin=r,r.holeCloserTwin=s,s.prevOnCircle=c,s.nextOnCircle=c,c.prevOnCircle=s,c.nextOnCircle=s,o.next=r,r.prev=o,s.next=c,c.prev=s}(t,c),c[0];c.forEach(n=>{void 0!==n&&Ke(n,t)})}const{PI:dg,atan2:vg}=Math;function gg(t,n,e,r){let o;const i=n*dg/180;for(let n=0;n<e.length;n++){const c=[0],s=e[n];if(1===s.t){const{curve:t}=s,n=Ne(t.ps,t.next.ps);if(n.isQuiteDull){const t=hd(n.tangents[0]),e=hd(n.tangents[1]),r=(vg(t[1],t[0])+2*dg)%(2*dg),o=((vg(e[1],e[0])+2*dg)%(2*dg)-r+2*dg)%(2*dg);let s=i;for(;s<=o-i/2;)c.push(s),s+=i}}for(let e of c){const i=pg(t,!1,r,e,s);if(i){const{circle:n,zs:e}=i,r=hg(t,n,[s,...e],!1);o=o||r}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return o}function mg(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=gg(t,n,e[i],r);o=void 0===o?c:o}return o}function bg(t,n=.4,e=10,r=2**-16){const o=[0],i=[1];for(;;){const c=o[o.length-1],s=i[i.length-1],u=Hn(t,c,s),f=bh(u),l=Wn(u);if(f<=e&&l<=n||s-c<=r){if(o.push(i.pop()),1===s)return o;continue}const a=(c+s)/2;i.push(a)}}function xg(t,n,e){return function(r){const o=[],i=r.curves;for(let r=0;r<i.length;r++){const c=i[r],s=c.ps;if(bh(s)<t)continue;let u=bg(s,n,e);u=2===u.length?[.5]:u,u.push(...kn(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>yr(c,t,!0));o.push(...f)}return o}}const Ig=Ar,wg=T,_g=m,Ng=Ar,Mg=Xo,Sg=jo,Eg=Ar,yg=xr,Cg=m,Og=b;const Tg=T,Pg=Ar,Ag=xr,kg=m,Bg=b;function Fg(t){if(mt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&at(t)&&(t=Hu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=Tg(r,n),u=Tg(i,r),f=Bg(u,s),l=Tg(o,e),a=Tg(c,o),p=Bg(a,l),h=kg(Bg(Pg(n,Bg(f,[0,r])),Pg(r,Bg(u,[0,r]))),Bg(Pg(e,Bg(p,[0,o])),Pg(o,Bg(a,[0,o]))));return[kg(Ag(f,f),Ag(p,p)),es(h)]}(t);return{minima:[],maxima:Mo(n,0,1).map(t=>(t.tS+t.tE)/2),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=Ev(t),[[s,u],[f,l]]=Pv(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Ng(6,_g(wg(s,n),Ng(3,wg(r,i))))],[Ng(6,_g(wg(u,e),Ng(3,wg(o,c))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=yg(a,i),d=yg(p,e),v=yg(u,c),g=yg(u,i),m=yg(f,f),b=yg(s,c),x=yg(l,r),I=yg(l,e),w=yg(f,r),_=yg(r,e),N=yg(r,n),M=yg(r,o),S=yg(e,e),E=yg(e,n),y=yg(e,i),C=yg(n,c),O=yg(n,o),T=yg(n,n),P=yg(c,i),A=yg(c,o),k=yg(i,i),B=yg(i,o),F=yg(o,o),z=Og(yg(a,c),yg(p,r)),Y=Og(h,d),V=Cg(yg(u,r),yg(l,c)),L=Cg(Cg(yg(u,e),yg(s,r)),Cg(yg(l,i),yg(f,c))),$=Og(v,x),X=Og(Cg(g,b),Cg(I,w)),j=Cg(yg(r,r),yg(c,c)),q=Cg(_,P),W=Cg(y,C),H=Cg(A,k),D=Cg(N,S),Q=Cg(yg(e,o),yg(n,i)),R=Og(T,F),G=Og(E,B),U=Cg(M,y),Z=Og(_,P),J=Cg(yg(r,i),yg(e,c)),K=Cg(A,H),tt=Cg(N,D),nt=Cg(M,W),et=Cg(y,W),rt=Og(tt,K),ot=Cg(W,C),it=Cg(U,C),ct=Cg(Xo(I),w),st=yg(T,Og(h,Eg(3,d))),ut=yg(F,Og(Eg(3,h),d)),ft=Xo(Cg(yg(O,Cg(Og(yg(a,e),yg(p,i)),Eg(3,Og(yg(l,f),yg(u,s))))),Eg(3,yg(yg(s,f),G)))),lt=Eg(3,Cg(yg(Q,Og(m,yg(s,s))),yg(R,Cg(yg(u,f),yg(l,s))))),at=Cg(Cg(st,ut),Cg(ft,lt)),pt=yg(a,Cg(yg(o,Cg(tt,Eg(3,H))),yg(n,et))),ht=yg(p,Cg(Cg(yg(r,Cg(Eg(3,T),F)),yg(e,Cg(Eg(3,E),Mg(B)))),yg(n,K))),dt=Eg(3,Cg(Cg(yg(u,Cg(Og(yg(l,R),yg(u,O)),Mg(Og(yg(f,G),yg(s,Q))))),yg(s,Og(Cg(Mg(yg(l,G)),yg(f,Cg(Mg(Og(N,A)),Og(S,k)))),yg(s,it)))),Cg(yg(l,Cg(yg(l,O),Mg(yg(f,Q)))),yg(m,nt)))),vt=Cg(Og(pt,ht),dt),gt=yg(a,Cg(Cg(Mg(yg(r,Q)),yg(e,ot)),yg(i,Cg(Sg(A),K)))),mt=yg(p,Cg(Cg(Mg(yg(r,Cg(Eg(3,E),B))),yg(e,Cg(S,Mg(A)))),yg(i,ot))),bt=Eg(3,Cg(Cg(yg(u,Og(Cg(Mg(Og(yg(l,G),yg(s,it))),yg(f,rt)),yg(u,Q))),yg(s,Og(Mg(yg(f,Z)),yg(s,J)))),Cg(yg(l,Cg(Cg(yg(l,Q),Mg(yg(f,nt))),yg(s,rt))),yg(m,J)))),xt=Cg(Og(gt,mt),bt),It=yg(a,Cg(yg(r,Cg(M,Mg(W))),yg(c,Cg(S,Eg(3,H))))),wt=yg(p,Cg(yg(r,Cg(Eg(3,D),K)),yg(c,et))),_t=Eg(3,Cg(Cg(yg(u,Cg(Og(yg(l,rt),yg(u,nt)),Mg(Og(yg(f,Z),yg(s,J))))),yg(s,Og(yg(r,Og(ct,yg(s,c))),yg(c,Cg(Mg(yg(l,i)),yg(f,c)))))),Cg(yg(l,Cg(yg(l,W),yg(r,Cg(Mg(yg(f,i)),yg(l,o))))),yg(f,yg(c,ct))))),Nt=Cg(Og(It,wt),_t),Mt=Og(Cg(yg(j,Y),Mg(yg(q,z))),Eg(3,Cg(yg(V,X),yg(L,$)))),St=Og(yg(z,j),Eg(3,yg(V,$)));return{inflectionPoly:[Og(yg(s,o),yg(f,n)),Og(Cg(yg(u,o),yg(s,i)),Cg(yg(l,n),yg(f,e))),Og(Cg(g,b),Cg(I,w)),Og(v,x)],otherExtremaPoly:[at,vt,xt,Nt,Mt,St]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=Mo(r,0,1),i=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(Ig(e-r,t[r]));return n}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=(o[t].tS+o[t].tE)/2,r=Zr(i,n);W(j(Zr(e,n),r))>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:Mo(e,0,1).map(t=>(t.tS+t.tE)/2)}}const zg=Number.POSITIVE_INFINITY,Yg=Jn(function(t){const n=[[{bezier:void 0,t:void 0,val:zg},{bezier:void 0,t:void 0,val:zg}],[{bezier:void 0,t:void 0,val:-zg},{bezier:void 0,t:void 0,val:-zg}]];return t.curves.forEach(function(t){const e=pc(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}}),{minY:yr(n[0][1].bezier,n[0][1].t,!0),minX:yr(n[0][0].bezier,n[0][0].t,!0),maxX:yr(n[1][0].bezier,n[1][0].t,!0),maxY:yr(n[1][1].bezier,n[1][1].t,!0)}});function Vg(t){return Yg(t).minY}function Lg(t){const{loops:n}=t,e=n.map(Vg);let r;for(let n=1;n<e.length;n++){const o=e[n],i=pg(t,!0,!1,0,o);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:c,zs:s}=i,u=hg(t,c,[o,s[0]],!0);r=void 0===r?u:r}return r}const $g=Jn(function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=Yg(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>c&&(e=t.maxX,c=t.maxX.p[0]),t.minY.p[1]<s&&(r=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}});function Xg(t,n,e){const{minBezLength:r,maxCurviness:o,maxLength:i,angleIncrement:c}=e,s=mv(r),u=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];bh(o.ps)<t||Ne(o.ps,o.next.ps).isQuiteDull&&(e.push(yr(o,1,!0)),e.push(yr(o.next,0,!0)))}return e}}(r),f=xg(r,o,i),l=function(t){return function(n){const e=[],r=function(t){return function(n){const e={minima:[],maxima:[]};for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(bh(o.ps)<t)continue;const{minima:i,maxima:c}=Fg(o.ps);e.minima.push(...i.map(t=>yr(o,t,!0))),e.maxima.push(...c.map(t=>yr(o,t,!0)))}return e}}(t)(n);return e.push(...r.minima,...r.maxima),e}}(r),a=t.map(s),p=$g(t),d=(p.maxX.p[0]-p.minX.p[0])**2+(p.maxY.p[1]-p.minY.p[1])**2,v=new Map,g={id:0};pv(t,v,a,g);const m=gv(t),b={maxCoordinate:n,squaredDiagonalLength:d,loops:t,cpTrees:v,pointToCpNode:vv(t,v),lastInsertId:g,...m};let x;if(x=Lg(b),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:x,meta:b};if(function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-dv,dv=n}(),x=mg(b,c,t.map(u),!1)||x,x=mg(b,c,t.map(l),!0)||x,x=mg(b,c,t.map(f),!1)||x,function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-dv,dv=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:x,meta:b};if(x=function(t,n){if(void 0===n)return;const e=new Set;let r=!0;for(;r;){r=!1;const o=new Set(h(n));for(const n of o){const{closeBysFor3Prong:i,addedCpNodes:c}=uv(t,n);c.length>0&&(r=!0),void 0===i?e.add(n):(r=!0,lv(t,i,o,e)),c.forEach(t=>t.forEach(t=>e.add(t)))}n=fv(e)}return fv(e)}(b,x),void 0===x)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:x,meta:b};const I={cpNode:x,meta:b};return"undefined"!=typeof _debug_&&(_debug_.generated.timing.threeProngs+=performance.now()-dv),I}function jg(t,n){const{maxCoordinate:e,maxRadius:r}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const c of t)for(const t of c)for(const c of t){const t=c[0],s=c[1],u=Eh(yh(t),yh(s));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),s<o&&(o=s),s>i&&(i=s)}return{maxCoordinate:n,maxRadius:Eh(r-e,i-o)}}(t),o=function(t,n,e){const r=Math.ceil(Math.log2(t)),o=Math.ceil(Math.log2(n)),i={...e};for(const t in pd){let n=i[t];const e=pd[t],{range:c,scaleByMaxCoordinate:s,scaleByMaxRadius:u}=e;n<c[0]&&(n=c[0]),n>c[1]&&(n=c[1]),s?n*=2**r*2**-10:u&&(n*=2**o*2**-10),i[t]=n}return i}(e,r,{...ad,...n||{}}),{applySat:i,simplify:c,satScale:s,simplifyTolerance:u}=o,f=Sh(t),l=[];for(const t of f){let n=Xg(t,e,o);void 0!==n&&(i&&(n=ld(n,s)),c&&(n=nd(n,u,50)),l.push(n))}return l}const{getProngCount:qg,isOnSameCircle:Wg,isTerminating:Hg}=vr;function Dg(t){const n=function(t){let n=t;const e=od(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(qg(o)>2){const n=o.nextOnCircle;Wg(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(Hg(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(Ge(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:td(n)}}}let Qg=0;function Rg(t){return t.map(t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n})}function Gg(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const Ug={δToString:Rg,δsToString:function(t){return t.map(Rg)},pointToStr:Gg,pointsToStr:function(t,n=3){return t.map(t=>Gg(t,n))},nameObj:function(t,n=""){t.name=""+n+Qg++}},Zg="red thin10 nofill ",Jg="http://www.w3.org/2000/svg";function Kg(t,n,e=Zg,r){const o=n.center,i=n.radius,c=document.createElementNS(Jg,"circle");return c.setAttributeNS(null,"cx",o[0].toString()),c.setAttributeNS(null,"cy",o[1].toString()),c.setAttributeNS(null,"r",i.toString()),c.setAttributeNS(null,"class",e),t.appendChild(c),r&&setTimeout(()=>c.remove(),r),[c]}function tm(t,n,e=3,r="red",o){const[i]=Kg(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout(()=>i.remove(),o),[i]}function nm(t,n,e=Zg,r=0,o=void 0,i=0){const c=document.createElementNS(Jg,"line");c.setAttributeNS(null,"x1",n[0][0].toString()),c.setAttributeNS(null,"y1",n[0][1].toString()),c.setAttributeNS(null,"x2",n[1][0].toString()),c.setAttributeNS(null,"y2",n[1][1].toString()),c.setAttributeNS(null,"class",e),t.appendChild(c);let s=[];if(void 0!==o)for(const e of n)s.push(...tm(t,e,i,o,r));for(const n of s)t.appendChild(n);const u=[c,...s];return r&&setTimeout(()=>{for(const t of u)t.remove()},r),u}function em(t,n,e=Zg,r=3,o){const i=Kg(t,{center:n,radius:r},e),c=[[n[0]-r,n[1]],[n[0]+r,n[1]]],s=[[n[0],n[1]-r],[n[0],n[1]+r]],u=nm(t,c,e),f=nm(t,s,e);return o&&setTimeout(()=>{i.forEach(t=>t.remove()),u.forEach(t=>t.remove()),f.forEach(t=>t.remove())},o),[...i,...u,...f]}function rm(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function om(t,n,e=Zg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p]]=n,h=document.createElementNS(Jg,"path");h.setAttributeNS(null,"d",`M${s} ${u} Q${f} ${l} ${a} ${p}`),e&&h.setAttributeNS(null,"class",e);let d=[];if(void 0!==o)for(const e of n)d.push(...tm(t,e,i,o,r));let v=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)v.push(...nm(t,[n[e],n[e+1]],c,r));const g=[h,...d,...v];for(const n of g)t.appendChild(n);return r&&setTimeout(()=>{for(const t of g)t.remove()},r),g}function im(t,n,e=Zg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p],[h,d]]=n;if(s===h&&f===h&&a===h&&u===d&&l===d&&p===d)return em(t,[s,u],e,.2,r);const v=document.createElementNS(Jg,"path");v.setAttributeNS(null,"d",`M${s} ${u} C${f} ${l} ${a} ${p} ${h} ${d}`),v.setAttributeNS(null,"class",e);let g=[];if(void 0!==o)for(const e of n)g.push(...tm(t,e,i,o,r));let m=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)m.push(...nm(t,[n[e],n[e+1]],c,r));const b=[v,...g,...m];for(const n of b)t.appendChild(n);return r&&setTimeout(()=>{for(const t of b)t.remove()},r),b}function cm(t,n,e=Zg,r=0,o=void 0,i=0,c=void 0){return 2===n.length?nm(t,n,e,r,o,i):3===n.length?om(t,n,e,r,o,i,c):4===n.length?im(t,n,e,r,o,i,c):[]}const sm=["red","green","cyan","blue"];function um(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,c],[s,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*s*e*n**2+f*n**3,o*e**3+3*c*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,c],[s,u]]=t;return[r*e**2+2*i*e*n+s*n**2,o*e**2+2*c*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,c]]=t;return[r*e+i*n,o*e+c*n]}return[NaN,NaN]}function fm(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,c=1-n,s=[c*e+n*o,c*r+n*i];return[[[e,r],s],[s,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[c,s]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*c,u*u*r+2*u*n*i+n*n*s];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*c,u*i+n*s],[c,s]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[c,s],[u,f]]=t,l=1-n,a=n*n,p=a*n,h=l*l,d=h*l,v=[p*u+3*l*a*c+3*h*n*o+d*e,p*f+3*l*a*s+3*h*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[a*c+2*l*n*o+h*e,a*s+2*l*n*i+h*r],v],[v,[a*u+2*n*l*c+h*o,a*f+2*n*l*s+h*i],[n*u+l*c,n*f+l*s],[u,f]]]}(t,n):[]}const lm={circle:Kg,crossHair:em,dot:tm,line:nm,rect:function(t,n,e=Zg,r){const[[o,i],[c,s]]=n,u=o<c?o:c,f=i<s?i:s,l=Math.abs(o-c),a=Math.abs(i-s),p=document.createElementNS(Jg,"rect");return p.setAttributeNS(null,"x",u.toString()),p.setAttributeNS(null,"y",f.toString()),p.setAttributeNS(null,"width",l.toString()),p.setAttributeNS(null,"height",a.toString()),e&&p.setAttributeNS(null,"class",e),t.appendChild(p),r&&setTimeout(()=>p.remove(),r),[p]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const c=n[r],s=o?"thin5 nofill "+sm[r%sm.length]:e;i.push(...cm(t,c,s))}return r&&setTimeout(()=>i.forEach(t=>t.remove()),r),i},bezier:cm,bezierPiece:function(t,n,e,r=Zg,o){const i=e[0]===e[1]?em(t,um(n,e[0]),r,1.5):cm(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=um(t,n[0]);return[e,e,e,e]}return 0===n[0]?fm(t,n[1])[0]:1===n[1]?fm(t,n[0])[1]:fm(fm(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout(()=>i.forEach(t=>t.remove()),o),i},quadBezier:om,cubicBezier:im,polygon:function(t,n,e=Zg,r){const o=document.createElementNS(Jg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},loop:function(t,n,e=Zg,r){if(!n.length)return[];const o=document.createElementNS(Jg,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${rm(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},polyline:function(t,n,e=Zg,r){if(n.length<2)return[];const o=document.createElementNS(Jg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},text:function(t,n,e,r,o=Zg,i){const c=document.createElementNS(Jg,"text");return c.setAttributeNS(null,"x",n[0].toString()),c.setAttributeNS(null,"y",n[1].toString()),c.setAttributeNS(null,"font-size",r.toString()),c.setAttributeNS(null,"class",o),c.textContent=e,t.appendChild(c),i&&setTimeout(()=>c.remove(),i),[c]}};function am(t,n){return(n,e,r,o=0,i=1)=>{let c,s;switch(e.isHoleClosing){case!1:c="red ",s="2";break;case!0:c="cyan ",s="10"}const u=e.cp,{circle:f,pointOnShape:l}=u,{center:a,radius:p}=f,{isSource:h,p:d}=l,v=e.nextOnCircle.cp.pointOnShape.p,g=h?d:v,m=h?v:d,{line:b,dot:x,circle:I,crossHair:w}=lm,_=x(n,f.center,.02*i,"yellow",o);return[...I(n,f,c+"thin"+s+" nofill",o),...x(n,g,.005*i,c,o),...x(n,m,.01*i,c,o),...t?w(n,f.center,"red thin2 nofill",.002*i,o):[],..._]}}function pm(t,n){return{center:t.center,radius:n*t.radius}}const{getAllOnCircle:hm}=vr,{isTerminating:dm}=vr,vm=["thin10 blue nofill","thin10 red nofill"];function gm(t,n,e,r=0,o=1){let i=n.cpNode;if(!i)return[];for(;!dm(i);)i=i.next;const c=[];let s=0;return He(i,n=>{if(dm(n))return;const e=Te(n);e&&(c.push(...lm.bezier(t,e,vm[s%2],r)),s++)}),c}function mm(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function bm(t,n,e="thin5 purple nofill",r=0,o=1){const i=[],c=[];for(const t of n){if(ke(t))continue;const n=Te(t);n&&c.push(n)}return i.push(...a(t,c,e,r)),i}const xm={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:c,pointOnShape:s}=i;return[...lm.dot(t,s.p,.02*o,"deeppink",r),...lm.dot(t,c.center,.05*o,"deeppink",r),...lm.circle(t,c,"deeppink thin5 nofill",r)]},twoProng:am(!1),threeProng:function(t,n,e,r=0,o=1){const i=pm(n.cp.circle,1),{center:c,radius:s}=i,u=vr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=lm,p=l(t,i,"blue thin2 nofill",r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...lm.line(t,[e,c],"thin5 red",r))}const v=a(t,i.center,"red thin2 nofill",.02*o,r);return[...h,...d,...p,...v]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return lm.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,c],[s,u]]=n;return n=[[i,c],[s,c],[s,u],[i,u]],lm.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return lm.polygon(t,n,"thin5 pinker nofill",r)},vertex:function(t,n,e,r=0,o=1){const i=n.cp.circle;let c=[];return c=[...lm.dot(t,i.center,.01*o,"darkgreen",r)],c},mat:gm,maxVertex:function(t,n){const e=n.cp.circle;return lm.circle(t,e,"brown thin10 nofill")},leaves:function(t,n,e="thin10 deeppink nofill",r=0,o=1){const i=[],{line:c,dot:s,circle:u}=lm;for(const f of n){const n=f.cp,{circle:l}=n,{center:a,radius:p}=l,h=[mm(t,a,.5,"pinker thin5 nofill")],d=vr.getAllOnCircle(f).map(t=>t.cp.pointOnShape),v=[],g=[];for(let n=0;n<d.length;n++){const e=d[n].p;g.push(...s(t,e,.01*(n+1)*o,"pinker",r)),v.push(...c(t,[e,a],"thin5 red",r))}const m=u(t,l,e,r);i.push(...m,...g,...v,...h)}return i},cull:function(t,n,e="thin10 cyan nofill",r=0,o=1){const i=[];return i.push(...lm.crossHair(t,n,e,.1*o,r)),i},cpNode:function(t,n,e="blue thin2 nofill",r=0,o=1){const i=pm(n.cp.circle,1),{center:c,radius:s}=i,u=vr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=lm,p=l(t,i,e,r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...lm.line(t,[e,c],"thin5 red",r))}const v=a(t,c,"orange thin10 nofill",2*o,r);return[...h,...d,...p,...v]},branch:bm,holeCloser:am(!1),speed:function(t,n,e,r=0,o=1){const i=[],c=Le(0)(n);if(void 0===c)return[];const s=n.cp.pointOnShape,{p:u,t:f}=s,l=c*o/8,a=rh(function(t,n){const[e,r]=Xn(t);return[-dn(r,n),dn(e,n)]}(s.curve.ps,f),l);return i.push(...lm.line(t,[u,ie(u,a)],"red thin5",r)),i}},Im={...xm,twoProng:am(!0)};function wm(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],twoProng:[],looseBoundingBox:[],tightBoundingBox:[],vertex:[],threeProng:[],boundingHull:[],mat:[],cpNode:[],maxVertex:[],leaves:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...xm},...Ug},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}const _m={oneProng:[],twoProng:[],threeProng:[],looseBoundingBox:[],tightBoundingBox:[],boundingHull:[],vertex:[],mat:[],maxVertex:[],leaves:[],cull:[],cpNode:[],branch:[],holeCloser:[],speed:[]},Nm=Object.keys(_m);function Mm(t,n,e,r){const o=[];for(const r of t)o.push({type:0,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(Sm);const i=new Set,c=[];for(const t of o){const{item:n}=t;if(0===t.type){for(const t of i.values())r(n,t)&&c.push([n,t]);i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function Sm(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function Em(t){return t}function ym(t,n){const e=pg(t,!1,!1,0,n);if(void 0===e)return;const{circle:r,zs:o}=e;return hg(t,r,[n,...o],!1)}const Cm=1e-4;function Om(t,n){const e=t.cp.pointOnShape,r=n.cp.pointOnShape;let{curve:o,p:i,t:c}=e,{curve:s,p:u,t:f}=r;if(i[0]===u[0]&&i[1]===u[1])return[i];1===c&&(c=0,o=o.next),0===f&&(f=1,s=s.prev);const{ps:l}=o,{ps:a}=s,p=[i,ie(i)(ce(ue(l,c)))],h=[u,ie(u)(ce(ue(a,f)))],d=Kn(p,h),v=te(i,u);let g;if(d){const t=te(i,d),n=te(u,d);g=ne(t,v)<0||ne(n,v)>0}else g=!0;if(!g)return[i,d,u];const m=te(p[0],p[1]),b=te(h[0],h[1]),x=Math.abs(re(v,m))/9,I=Math.abs(re(v,b))/9;return x>.01||I>.01||x>Cm||I>Cm?void 0:[i,u]}const Tm=Jn(function(t){return Gn(Te(t))});function Pm(t,n){const e=function(t){const n=new Map;for(let e of t)for(let r of t){const t=e.cp.circle.center,o=r.cp.circle.center,i=e.cp.pointOnShape.p,c=r.cp.pointOnShape.p;r!==e&&t[0]===o[0]&&t[1]===o[1]&&i[0]===c[0]&&i[1]===c[1]&&n.set(e,r)}return n}(n),r=t.length,o=[];for(let n=0;n<r;n++){const i=t[n],c=[];for(let o=0;o<r;o++){const r=t[o];if(n===o){c.push(0);continue}let s=Number.POSITIVE_INFINITY;for(const t of Ae(i)){let n=Tm(t),o=t.next;for(;!rr(o,r);)if(o.isHoleClosing)o=Am(e,o);else{if(mr(o)){n=Number.POSITIVE_INFINITY;break}n+=Tm(o),o=o.next}n<s&&(s=n)}c.push(s)}o.push(c)}return o}function Am(t,n){return t.get(n).next}export{vr as CpNodeFs,e as beziersToSvgPathStr,Ge as clone,Em as connectHoleClosers,dr as cpNodeComparator,pv as createInitialCpTree,yr as createPos,Nm as debugElemNames,a as drawBeziersAsSinglePath,bm as drawBranch,xm as drawElemFs,Im as drawElemFsDetailed,gm as drawMat,_m as emptyDebugElems,wm as enableDebugForMat,qe as enhanceCpNode,pg as find2Prong,ym as findAndAdd2Prong,Lg as findAndAddHoleClosing2Prongs,jg as findMats,p as floydWarshall,Ae as getAllOnCircle,h as getAllOnLoop,pr as getAllVertices,Ze as getBoundaryBezierPartsToNext,ur as getBoundaryBeziersBetween,Je as getBoundaryBeziersToNext,Kd as getBoundaryPieceBeziers,cr as getBranch,sr as getBranchBeziers,jh as getBranches,nr as getChildren,jd as getCloseBoundaryPointsCertified,Vd as getClosestSquareDistanceToRect,ye as getEdgeDirection,er as getFirstExit,xg as getFor2ProngsOnLoop,Pm as getGraph,d as getHoleClosers,Om as getImpliedBoundaryBezierBetween,ar as getInitialDegAngleBetweenMatCurves,Oe as getMatCurveBetween,Te as getMatCurveToNext,lr as getMatCurvesBetween,gv as getPartialMeta,l as getPathsFromStr,vv as getPointToCpNode,zd as getPotentialClosestPointsOnCurveCertified,Xe as getProngCount,Be as getRealProngCount,fr as getSalience,fd as getSatCulls,$g as getShapeBounds,mv as getSharpCornersOnLoop,Le as getSmoothedSpeed$,Fe as getSpeed,De as getVertexForwardChildren,Ve as isFullyTerminating,rr as isOnSameCircle,or as isOneProng,je as isSharp,ke as isTerminating,ir as isTwoProng,mr as isVertexSpecial,t as loopFromBeziers,tr as removeVertex,nd as simplifyMat,Mm as sweepLine,ld as toScaleAxis,We as traverseCp,He as traverseEdges,Qe as traverseVertices,Dg as trimMat};
|
|
1
|
+
function t(t=[],e){const r=[],o={beziers:t,curves:r,idx:e};if(0===t.length)return o;let i,c=0;for(let e=0;e<t.length;e++){if(n(t[e]))continue;const s={loop:o,ps:t[e],prev:i,next:void 0,idx:c};i&&(i.next=s),i=s,r.push(s),c++}const s=r[r.length-1];return r[0].prev=s,s.next=r[0],s.ps[s.ps.length-1]=r[0].ps[0],o}function n(t){return 2===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]:3===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]:t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]&&t[2][1]===t[3][1]&&t[2][1]===t[3][1]}function e(t){const n=[];for(let e=0;e<t.length;e++){const r=t[e];0===e&&n.push("M "+r[0][0].toString()+" "+r[0][1].toString()),4===r.length?n.push("C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" "):3===r.length?n.push("Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "):2===r.length&&n.push("L "+r[1][0].toString()+" "+r[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}class r{initialPoint=void 0;p;vals=void 0;prev2ndCubicControlPoint=void 0;prev2ndQuadraticControlPoint=void 0;constructor(){this.p=[0,0]}}function o(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function i(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const c={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:o};function s(t){let n=0,e=0,r=1,o=0,i=1,c=1;const s=t._currentIndex;t._skipOptionalSpaces();let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex+=1,u+=1):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex+=1,u+=1,i=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex+=1,u+=1;if(u!==l){let n=u-1,r=1;for(;n>=l;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(u<t._endIndex&&"."===t._string[u]){if(t._currentIndex+=1,u+=1,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)r*=10,o+=Number(t._string.charAt(u))/r,t._currentIndex+=1,u+=1}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex+=1,u+=1,"+"===t._string[u]?(t._currentIndex+=1,u+=1):"-"===t._string[u]&&(t._currentIndex+=1,u+=1,c=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex+=1,u+=1}let a=e+o;if(a*=i,n&&(a*=Math.pow(10,c*n)),s===u)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),a}const u={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class f{_string;_currentIndex;_endIndex;_prevCommand;constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=u[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[s(this)]:"M"===r||"L"===r||"T"===r?n=[s(this),s(this)]:"S"===r||"Q"===r?n=[s(this),s(this),s(this),s(this)]:"C"===r?n=[s(this),s(this),s(this),s(this),s(this),s(this)]:"A"===r?n=[s(this),s(this),s(this),this._parseArcFlag(),this._parseArcFlag(),s(this),s(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=u[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function l(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new r,e=[];let s,u=[];for(let r=0;r<t.length;r++){const f=t[r],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...i(n));else{const t=c[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}s=l}else u.length&&("z"!==s&&u.push(o(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,s=l}return u.length>0&&("z"!==s&&u.push(o(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new f(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function a(t,n,e="thin10 red nofill",r=0){if(0===n.length)return[];let o=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];if(e.length<=1)continue;const[,r,i,c]=e;o+=2===e.length?`L ${r[0]} ${r[1]} `:3===e.length?`Q ${r[0]} ${r[1]} ${i[0]} ${i[1]} `:`C ${r[0]} ${r[1]} ${i[0]} ${i[1]} ${c[0]} ${c[1]} `}const i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",o),i.setAttributeNS(null,"class",e),t.appendChild(i),[i]}function p(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][o]=t[r][o];for(let t=0;t<n;t++)for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][t]+e[t][o]<e[r][o]&&(e[r][o]=e[r][t]+e[t][o]);return e}function h(t){const n=t,e=[];do{e.push(t),t=t.next}while(t!==n);return e}function d(t){return h(t).filter(t=>t.isHoleClosing)}const v=134217729;function g(t,n){const e=t*n,r=v*t,o=r-(r-t),i=t-o,c=v*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}function m(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r+i,s=c-r,u=e+o,f=u-e,l=r-(c-s)+(i-s)+u,a=c+l,p=e-(u-f)+(o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}function x(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r-i,s=c-r,u=e-o,f=u-e,l=r-(c-s)+(-i-s)+u,a=c+l,p=e-(u-f)+(-o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}const{atan2:b}=Math,w=g;function _(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=x(w(i,e),w(o,r))[1],s=m(w(o,e),w(i,r))[1];return b(c,s)}const M=Math.abs,I=[[0,0],[0,0],[0,0]];function S(t,n,e){return 0===n?1===e?{ps:t,_ps:I}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=c-u,d=[[i,c],[-n*p+i,-n*h+c],[a*(p+(f-s))-(2*n*p-i),a*(h+(l-u))-(2*n*h-c)]],v=M(n),g=M(i),m=M(s),x=M(f),b=g+m,w=M(c),_=M(u),I=w+_;return{ps:d,_ps:[[0,0],[v*b+g,v*I+w],[a*(b+(x+m))+(2*v*b+g),a*(I+(M(l)+_))+(2*v*I+w)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=f-s,d=c-u,v=l-u,g=[[a*(p+h)-(2*n*p-i),a*(d+v)-(2*n*d-c)],[n*h+s,n*v+u],[f,l]],m=M(n),x=M(i),b=M(s),w=x+b,_=M(f)+b,I=M(c),S=M(u),N=I+S;return{ps:g,_ps:[[a*(w+_)+(2*m*w+x),a*(N+(M(l)+S))+(2*m*N+I)],[m*_+b,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=i[0],a=i[1],p=n*n,h=e*e,d=n*e,v=c-u,g=v+(l-u),m=s-f,x=m+(a-f),b=p*g-(2*n*v-c),w=d*g-(v*(e+n)-c),_=h*g-(2*e*v-c),I=p*x-(2*n*m-s),S=d*x-(m*(e+n)-s),N=h*x-(2*e*m-s),E=M(n),y=M(e),C=M(d),O=M(c),T=M(u),A=O+T,P=A+M(l)+T,k=M(s),B=M(f),z=k+B,F=z+M(a)+B;return{ps:[[b,I],[w,S],[_,N]],_ps:[[p*P+(2*E*A+O),p*F+(2*E*z+k)],[C*P+(A*(y+E)+O),C*x+(z*(y+E)+k)],[h*P+(2*y*A+O),h*F+(2*y*z+k)]]}}(t,n,e)}const N=Math.abs,E=[[0,0],[0,0],[0,0],[0,0]];function y(t,n,e){return 0===n?1===e?{ps:t,_ps:E}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),x=s-n*(s-f),b=f-n*(f-a),w=x-n*(x-b),_=w-n*(w-(b-n*(b-(a-n*(a-h))))),M=N(n),I=N(c),S=N(u),E=N(l),y=N(p),C=N(s),O=N(f),T=N(a),A=I+M*(I+S),P=S+M*(S+E),k=A+M*(A+P),B=C+M*(C+O),z=O+M*(O+T),F=B+M*(B+z);return{ps:[[c,s],[d,x],[g,w],[m,_]],_ps:[[0,0],[A,B],[k,F],[k+M*(k+(P+M*(P+(E+M*(E+y))))),F+M*(F+(z+M*(z+(T+M*(T+N(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),x=v-n*(v-g),b=m-n*(m-x),w=s-n*(s-f),_=f-n*(f-a),M=a-n*(a-h),I=w-n*(w-_),S=_-n*(_-M),E=I-n*(I-S),y=N(n),C=N(c),O=N(u),T=N(l),A=N(p),P=N(s),k=N(f),B=N(a),z=C+y*(C+O),F=O+y*(O+T),Y=T+y*(T+A),V=z+y*(z+F),L=F+y*(F+Y),$=P+y*(P+k),X=k+y*(k+B),j=B+y*(B+N(h)),q=$+y*($+X),D=X+y*(X+j);return{ps:[[b,E],[x,S],[g,M],[p,h]],_ps:[[V+y*(V+L),q+y*(q+D)],[L,D],[Y,j],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,b=a-f,w=c[0]-s,_=x+b,M=n*x,I=e*x,S=w-3*b,E=u-l,y=p-l,C=c[1]-u,O=E+y,T=n*E,A=e*E,P=C-3*y,k=d*S+(3*n*(n*_-x)+s),B=m*(n*S+2*_)+(h*_+s-(I+2*M)),z=m*(e*S+2*_)+(v*_+s-(2*I+M)),F=g*S+(3*e*(e*_-x)+s),Y=d*P+(3*n*(n*O-E)+u),V=m*(n*P+2*O)+(h*O+u-(A+2*T)),L=m*(e*P+2*O)+(v*O+u-(2*A+T)),$=g*P+(3*e*(e*O-E)+u),X=N(n),j=N(e),q=N(m),D=N(d),W=N(g),H=N(s),Q=N(f),R=H+Q,G=N(a)+Q,U=R+G,Z=X*R,J=j*R,K=N(w)+3*G,tt=N(u),nt=N(l),et=tt+nt,rt=N(p)+nt,ot=et+rt,it=X*et,ct=j*et,st=N(C)+3*rt;return{ps:[[k,Y],[B,V],[z,L],[F,$]],_ps:[[D*K+(3*X*(X*U+R)+H),D*st+(3*X*(X*ot+et)+tt)],[q*(X*K+2*U)+(h*U+H+(J+2*Z)),q*(X*st+2*ot)+(h*ot+tt+(ct+2*it))],[q*(j*K+2*U)+(v*U+H+(2*J+Z)),q*(j*st+2*ot)+(v*ot+tt+(2*ct+it))],[W*K+(3*j*(j*U+R)+H),W*st+(3*j*(j*ot+et)+tt)]]}}(t,n,e)}function C(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function O(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}function T(t,n){const e=t.length,r=n.length;let o=0,i=0;const c=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(c.push(t[o]),o++):(c.push(n[i]),i++):i++:o++;for(;o<e;)c.push(t[o]),o++;for(;i<r;)c.push(n[i]),i++;if(0===c.length)return[0];const s=c.length;if(1===s)return c;const u=[],f=c[1],l=c[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),i=0;for(let t=2;t<s;t++){const n=c[t],e=a+n,r=e-a,o=a-(e-r)+(n-r);0!==o&&u.push(o),a=e}return 0===a&&0!==u.length||u.push(a),u}function A(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const P=A,k=T;function B(t,n){const e=P(n);return k(t,e)}const z=134217729;function F(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const c=z*o,s=c-(c-o),u=o-s,f=z*n,l=f-(f-n),a=n-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=t[o],c=e*n,s=z*e,u=s-(s-e),f=e-u,l=z*n,a=l-(l-n),h=n-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const x=c+r,b=r-(x-c);0!==b&&p.push(b),i=x}return 0===i&&0!==p.length||p.push(i),p}function Y(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const c=z*o,s=c-(c-o),u=o-s,f=z*t,l=f-(f-t),a=t-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=n[o],c=e*t,s=z*e,u=s-(s-e),f=e-u,l=z*t,a=l-(l-t),h=t-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const x=c+r,b=r-(x-c);0!==b&&p.push(b),i=x}return 0===i&&0!==p.length||p.push(i),p}const V=F,L=T;function $(t,n){let e=[0];for(let r=0;r<t.length;r++)e=L(e,V(n,t[r]));return e}function X(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,c=i-r,s=r-(i-c)+(e-c);0!==s&&o.push(s),r=i}return 0===r&&0!==o.length||o.push(r),o}function j(t){return t[t.length-1]}function q(t,n){return j(B(t,n))}Number.EPSILON;const D=Number.EPSILON/2,W=D*D,H=(Q(1),R(3));function Q(t){const n=t*D;return n/(1-n)}function R(t){const n=t*W;return n/(1-n)}function G(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function U(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}const Z=U,{abs:J}=Math;function K(t){const[[n,e],[r,o],[i,c]]=t,s=n+i,u=s-2*r,f=J(s)+J(u);if(J(u)-f>0)return!1;const l=e+c,a=l-2*o,p=J(l)+J(a);return!(J(a)-p>0)&&0===j(B(Z(n,i),[2*r]))&&0===j(B(Z(e,c),[2*o]))}const tt=134217729;function nt(t,n){const e=t*n,r=tt*t,o=r-(r-t),i=t-o,c=tt*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}const et=nt,rt=T,ot=Number.EPSILON/2,it=Math.abs;function ct(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s+3*r,l=n+3*i,a=f-l,p=it(3*r)+it(f)+(it(3*i)+it(l))+it(a);if(it(a)-ot*p>0)return!1;const h=u+3*o,d=e+3*c,v=h-d,g=it(3*o)+it(h)+(it(3*c)+it(d))+it(v);return!(it(v)-ot*g>0)&&0===j(B(rt([s],et(3,r)),rt([n],et(3,i))))&&0===j(B(rt([u],et(3,o)),rt([e],et(3,c))))}function st(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function ut(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function ft(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const c=i-(r-e);c&&(n[--o]=r,r=c)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const c=o-(r-e);c&&(n[i++]=c)}return n[i++]=r,n.length=i,n}function lt(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let c;if(r>0){if(o<=0)return i;c=r+o}else{if(!(r<0))return i;if(o>=0)return i;c=-r-o}return Math.abs(i)>=3330669073875472e-31*c?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],c=t[1]-e[1],s=n[1]-e[1],u=B(nt(o,s),nt(c,i));let f=st(u);if(Math.abs(f)>=2220446049250315e-31*r)return f;const l=ut(t[0],e[0])[0],a=ut(n[0],e[0])[0],p=ut(t[1],e[1])[0],h=ut(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*r+3330669073875471e-31*Math.abs(f);if(f+=o*h+s*l-(c*a+i*p),Math.abs(f)>=d)return f;const v=T(u,B(nt(l,s),nt(p,i))),g=T(v,B(nt(o,h),nt(c,a)));let m=T(g,B(nt(l,h),nt(p,a)));return m=ft(m),m[m.length-1]}(t,n,e,c)}function at(t){if(4===t.length)return 0===lt(t[0],t[1],t[2])&&0===lt(t[1],t[2],t[3])&&0===lt(t[0],t[2],t[3]);if(3===t.length)return 0===lt(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}const pt=F,ht=B,dt=U,vt=j,{abs:gt}=Math;const mt=Math.abs,xt=Q(1);function bt(t){const{coeffs:[[n,e,r],[o,i,c]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s-n,l=r-i,a=f+3*l,p=i+n,h=p-2*r,d=r-n,v=u-e,g=o-c,m=v+3*g,x=c+e,b=x-2*o,w=o-e;return{coeffs:[[a,3*h,3*d,n],[m,3*b,3*w,e]],errorBound:[[gt(f)+6*gt(l)+gt(a),6*(gt(p)+gt(h)),6*gt(d),0],[gt(v)+6*gt(g)+gt(m),6*(gt(x)+gt(b)),6*gt(w),0]]}}(t),a=mt(n),p=mt(e),h=mt(r),d=mt(o),v=mt(i),g=mt(c),m=e*o,x=n*i,b=n*c,w=r*o,_=e*c,M=r*i,I=u*d+p*f+mt(m),S=s*v+a*l+mt(x),N=s*g+mt(b),E=h*f+mt(w),y=u*g+mt(_),C=h*l+mt(M),O=m-x,T=mt(O),A=I+S+T,P=w-b,k=mt(P),B=E+N+k,z=_-M,F=mt(z),Y=y+C+F,V=O*O,L=O*P,$=z*O,X=P*P,j=$+X;return{coeffs:[V,L,j],errBound:[2*A*T+mt(V),A*k+T*B+mt(L),Y*T+F*A+mt($)+(2*k*B+mt(X))+mt(j)].map(t=>xt*t)}}const wt=ut,_t=U,Mt=Y,It=X;function St(t){if(4===t.length)return Nt(t);if(3===t.length)return Et(t);if(2===t.length)return yt(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function Nt(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[T(wt(s,n),Mt(3,wt(r,i))),Mt(3,It(_t(i,n),-2*r)),Mt(3,wt(r,n)),[n]].map(ft),[T(wt(u,e),Mt(3,wt(o,c))),Mt(3,It(_t(c,e),-2*o)),Mt(3,wt(o,e)),[e]].map(ft)]}function Et(t){const[[n,e],[r,o],[i,c]]=t;return[[It(_t(i,n),-2*r),wt(2*r,2*n),[n]],[It(_t(c,e),-2*o),wt(2*o,2*e),[e]]]}function yt(t){const[[n,e],[r,o]]=t;return[[wt(r,n),[n]],[wt(o,e),[e]]]}const Ct=$,Ot=T;function Tt(t){const[[n,e,r],[o,i,c]]=Nt(t),s=Ct(e,o),u=Ct(n,i),f=Ct(n,c),l=Ct(r,o),a=Ct(e,c),p=Ct(r,i),h=B(s,u),d=B(l,f),v=B(a,p),g=Ct(h,h),m=Ct(h,d),x=Ct(h,v),b=Ct(d,d);return[g,m,Ot(x,b)]}const At=B,Pt=$,kt=Y,Bt=C,zt=O,Ft=T,Yt=X,Vt=Math.abs,Lt=Q(1),$t={order:0,realOrder:0,collinear:!0,nodeType:"n/a"},Xt={order:1,realOrder:1,collinear:!0,nodeType:"n/a"},jt={order:1,realOrder:0,collinear:!0,nodeType:"n/a"},qt={order:2,realOrder:2,collinear:!1,nodeType:"n/a"},Dt={order:2,realOrder:2,collinear:!0,nodeType:"n/a"},Wt={order:2,realOrder:1,collinear:!0,nodeType:"n/a"},Ht={order:2,realOrder:0,collinear:!0,nodeType:"n/a"},Qt={order:3,realOrder:3,collinear:!1,nodeType:"crunode"},Rt={order:3,realOrder:3,collinear:!1,nodeType:"acnode"},Gt={order:3,realOrder:3,collinear:!1,nodeType:"cusp"},Ut={order:3,realOrder:3,collinear:!1,nodeType:"explicit"},Zt={order:3,realOrder:3,collinear:!0,nodeType:"n/a"},Jt={order:3,realOrder:2,collinear:!1,nodeType:"n/a"},Kt={order:3,realOrder:2,collinear:!0,nodeType:"n/a"},tn={order:3,realOrder:1,collinear:!0,nodeType:"n/a"},nn={order:3,realOrder:0,collinear:!0,nodeType:"n/a"};function en(t){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=-t[e];return n}function rn(t){return n=>1/t(n.toReversed())}function on(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=en(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=1/0,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const c=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>c&&(n=c),i=!0}i&&r<n&&(r=n)}return r}rn(on);const cn=(sn=on,t=>-sn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t)));var sn;rn(cn);const{min:un,max:fn}=Math;function ln(t,n,e){return[t=fn(t,cn(e)),n=un(n,on(e))]}const{abs:an}=Math;function pn(t,n,e,r){let o;for(;t.length>0&&an(t[0][1])<=r*n[0]&&(o=o||e(),0===j(o[0]));)(t=t.slice()).shift(),(n=n.slice()).shift(),o.shift();return{pDd:t,pDd_:n,pExact:o}}const hn=Number.EPSILON,dn=Number.EPSILON/2,vn=dn*dn,gn=xn(1),mn=bn(3);function xn(t){const n=t*dn;return n/(1-n)}function bn(t){const n=t*vn;return n/(1-n)}new Array(20).fill(0).map((t,n)=>xn(n));const{abs:wn}=Math,{abs:_n}=Math,Mn=134217729;function In(t,n){const e=n[0],r=n[1],o=r*t,i=Mn*r,c=i-(i-r),s=r-c,u=Mn*t,f=u-(u-t),l=t-f,a=e*t,p=o+a,h=a-(p-o)+(s*l-(o-c*f-s*f-c*l)),d=p+h;return[h-(d-p),d]}function Sn(t,n){const e=n[0],r=n[1],o=r*t,i=Mn*r,c=i-(i-r),s=r-c,u=Mn*t,f=u-(u-t),l=t-f,a=s*l-(o-c*f-s*f-c*l)+e*t,p=o+a;return[a-(p-o),p]}const{abs:Nn}=Math;function En(t,n,e){const r=t.length-1;if(r<0)return[[],[]];const o=Nn(n),i=t.slice(),c=e.slice();for(let t=0;t<=r;t++)for(let e=1;e<=r-t;e++){const t=i[e-1],r=c[e-1],s=Sn(n,t),u=o*r+Nn(s[1]),f=i[e];i[e]=m(f,s),c[e]=c[e]+u+Nn(i[e][1])}return[i,c]}const yn=2**27+1;function Cn(t,n){const e=t[1],r=n[1],o=e*r,i=yn*e,c=i-(i-e),s=e-c,u=yn*r,f=u-(u-r),l=r-f,a=s*l-(o-c*f-s*f-c*l)+(e*n[0]+t[0]*r),p=o+a;return[a-(p-o),p]}const{abs:On}=Math;function Tn(t,n){const e=t.length-1;if(e<0)return[];const r=t.slice();for(let t=0;t<=e;t++)for(let o=1;o<=e-t;o++)r[o]=ft(T(r[o],F(r[o-1],n)));return r}function An(t,n){const e=t.length-1;if(e<0)return[];const r=new Array(e+1);r[e]=t[e];let o=[1];for(let i=1;i<=e;i++)o=F(o,n),r[e-i]=$(t[e-i],o);return r}const{abs:Pn,sign:kn}=Math;const{abs:Bn}=Math;function zn(t,n){const e=Bn(n);let r=t[0],o=.5*Bn(r);for(let i=1;i<t.length;i++)r=r*n+t[i],o=o*e+Bn(r);return o=dn*(2*o-Bn(r)),[r,o]}function Fn(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}const Yn=Math.abs,{abs:Vn}=Math,Ln=xn(1),$n=xn(2);function Xn(t,n,e=void 0,r=1){const o=t[0],[i,c]=zn(o,n),s=$n*function(t,n){const e=Yn(n);let r=0;for(let n=0;n<t.length;n++)r=r*e+Yn(t[n]);return r}(o,n),u=void 0!==e?Fn(e,Vn(n)):0;if((c+s+u)*r<Math.abs(i))return i;const f=function(t,n){const e=[],r=[];let o,i=t[0];for(let c=1;c<t.length;c++){const[s,u]=nt(i,n);[o,i]=U(u,t[c]),e.push(s),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(o,n),{pπ:l,pσ:a}=f;let{r̂:p}=f;const[h,d]=zn(l,n),[v,g]=zn(a,n),[m,x]=zn(t[1],n);let b=d+g+x+u;return p=h+v+m+p,b+=Ln*p,b*r<Math.abs(p)?p:0}function jn(t,n){let e=[0];for(let r=0;r<t.length;r++)e=T(t[r],F(e,n));return e}const{abs:qn,min:Dn,max:Wn,log2:Hn,ceil:Qn}=Math;function Rn(t,n,e,r,o,i,c,s){let u=e,f=r,l=u,a=o,p=f-u,h=p;for(;;){let d;qn(a)<qn(i)&&(u=f,f=l,l=u,o=i,i=a,a=o);const v=Wn(qn(u),qn(f));d=v<=1?hn:hn*2**Qn(Hn(v));const g=.5*(l-f);if(qn(g)<=d)return f<l?[f,l,f]:[l,f,f];if(qn(p)<d||qn(o)<=qn(i))p=g,h=p;else{let t,n,e=i/o;if(u===l)t=2*g*e,n=1-e;else{n=o/a;const r=i/a;t=e*(2*g*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-qn(d*n)&&t<qn(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,o=i,d<qn(h)?f+=h:0<g?f+=d:f-=d,0===(i=s?st(jn(c(),f)):Xn(t,f,n))){if(s)return[f,f,f];const o=Wn(e,f-d),u=Dn(r,f+d);if(Xn(t,o,n)*Xn(t,u,n)!==0)return[o,u,f];if(s=!0,0===(i=st(jn(c(),f))))return[f,f,f]}(0<i&&0<a||i<=0&&a<=0)&&(l=u,a=o,p=f-u,h=p)}}const{abs:Gn}=Math;function Un(t,n,e){const r=Gn(n);let o=t[0],i=e[0];for(let c=1;c<t.length;c++){const s=o*n;o=s+t[c],i=i*r+Gn(s)+e[c]+Gn(o)}return[o,i]}function Zn(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e}const Jn=m,Kn=Sn,{abs:te}=Math;function ne(t,n,e){const r=te(n);let o=t[0],i=e[0];for(let c=1;c<t.length;c++){const s=Kn(n,o);o=Jn(s,t[c]),i=i*r+te(s[1])+e[c]+te(o[1])}return[o,i]}const{abs:ee,min:re,max:oe,log2:ie,ceil:ce}=Math,se=mn/gn;function ue(t,n,e,r,o,i,c){const s=t.length-1;let u=0,f=1;for(;;){f*=2;for(let l=1;l<f;l+=2){u++;const a=o+(i-o)*(f+2*l)/(4*f),[p,h]=Un(t,a,n);if(ee(p)>h*gn)return[a,p];if(u>s)return fe(e,r,o,i,c)}}}function fe(t,n,e,r,o){const i=t.length-1;let c=0,s=1;for(;;){s*=2;for(let u=1;u<s;u+=2){c++;const f=e+(r-e)*(s+2*u)/(4*s),[l,a]=ne(t,f,n);if(ee(l[1])>a*mn)return[f,l[1]];if(c>i)return le(o(),e,r)}}}function le(t,n,e){const r=t.length-1;let o=1;for(;;){o*=2;for(let i=1;i<o;i+=2){const c=n+(e-n)*(o+2*i)/(4*o),s=ft(jn(t,c)),u=s[s.length-1];if(0!==u)return[c,u];if(0>r)throw new Error("Cannot resolve root even in Shewchuk expansion precision")}}}function ae(t,n=-1/0,e=1/0,r,o,i=!1){let c;"number"==typeof t[0]&&(t=t.map(t=>[0,t]));const s=()=>void 0===o?t:(void 0===c&&(c=o()),c);if(r=r||new Array(t.length).fill(0),({pDd:t,pDd_:r,pExact:c}=pn(t,r,s,mn)),0===t.length)return;if(1===t.length)return[];const u=t.map(t=>t[0]+t[1]);return!i&&n!==-1/0&&e!==1/0||([n,e]=ln(n,e,u),n!==e)?function(t,n,e,r,o,i){const c=e.map((n,e)=>n*se+ee(t[e])),s=r,u=o;let f,l,a,p,h=o-r;for(;[f,l]=Un(t,r,c),!(ee(f)>l*gn);)r-=h/2,h*=2;for(;[a,p]=Un(t,o,c),!(ee(a)>p*gn);)o+=h/2,h*=2;const d=[[r,o,f,a,0]],v=[],g=function(t,n,e,r,o){return function(i,c,s,u,f){let[l,a]=function(t,n,e){const r=t.length-1,o=wn(n),i=t.slice(),c=e.slice();for(let t=0;t<=r;t++)for(let e=1;e<=r-t;e++){const t=n*i[e-1],r=o*c[e-1]+wn(t);i[e]=i[e]+t,c[e]=c[e]+r+wn(i[e])}return[i,c]}(t,i,n);!function(t,n,e){const r=t.length-1;if(r<0)return;let o=n,i=0;for(let c=1;c<=r;c++){const s=r-c,u=t[s],f=_n(u),l=e[s],a=u*o;t[s]=a,e[s]=l*o+f*i+_n(a);const p=o*n;i=i*n+p,o=p}}(l,c-i,a),l.reverse(),a.reverse(),function(t,n){const e=t.length-1;for(let r=0;r<=e;r++)for(let o=1;o<=e-r;o++){const e=t[o-1],r=n[o-1]+wn(e);t[o]=t[o]+e,n[o]=n[o]+r+wn(t[o])}}(l,a);let p=0,h=0,d=kn(s);for(let t=1;t<l.length-1;t++){let n=kn(l[t]);const e=l[t],r=a[t]*gn;Pn(e)<=r&&(h++,n=-d),n!==d&&(p++,d=n)}return kn(u)!==d&&p++,1===h&&1===p?1:h>0?function(t,n,e,r,o,i,c,s){let[u,f]=En(t,e,n);(function(t,n,e){const r=t.length-1;if(r<0)return;let o=[0,n],i=0;for(let c=1;c<=r;c++){const s=r-c,u=t[s],f=On(u[1]),l=e[s],a=Cn(o,u);t[s]=a,e[s]=l*o[1]+f*i+On(a[1]);const p=Cn(o,[0,n]);i=i*n+p[1],o=p}})(u,r-e,f),u.reverse(),f.reverse(),[u,f]=En(u,1,f);let l=0,a=0,p=kn(o);for(let t=0;t<u.length-1;t++){let n=kn(u[t][1]);const e=f[t]*mn,r=u[t];e>=Pn(r[1])&&(a++,n=-p),n!==p&&(l++,p=n)}return kn(i)!==p&&l++,1===a&&1===l?1:0===a?l:c>1?function(t,n,e,r,o){let i=Tn(t(),n);i=An(i,e-n),i.reverse(),i=Tn(i,1);let c=0,s=kn(r);for(let t=1;t<i.length-1;t++){const n=i[t];let e=kn(n[n.length-1]);e!==s&&0!==e&&(c++,s=e)}return kn(o)!==s&&c++,c}(s,e,r,o,i):-l}(e,r,i,c,s,u,f,o):p}}(t,c,n,e,i);let m,x;for(;d.length>0;){const r=d.pop(),[o,s,u,f,l]=r,a=g(o,s,u,f,l);if(0===a)continue;if(1===a){m=m||e.map(t=>t*mn),x=x||Zn(n);const[t,r,c]=Rn(x,m,o,s,u,f,i,!1);v.push({t:c,tS:t,tE:r,multiplicity:1});continue}let p=a<0?l+1:0;if(s-o<=2*ee(a)*hn*oe(1,2**ce(ie(oe(ee(o),ee(s)))))){if(0===p){v.push({t:(o+s)/2,tS:o,tE:s,multiplicity:ee(a)});continue}p=1/0}const[h,b]=ue(t,c,n,e,o,s,i);d.push([o,h,u,b,p]),d.push([h,s,b,f,p])}return v.reverse(),v.filter(t=>{const{tS:n,tE:e}=t;return!(e<s||n>u)})}(u,t,r,n,e,s):[{t:n,tS:n,tE:e,multiplicity:u.length-1}]}function pe(t){if(t.length<4)return[];const[[n,e],[r,o],[i,c],[s,u]]=t,f=r-n,l=o-e,a=i-r-f,p=c-o-l,h=s-i-f-2*a,d=u-c-l-2*p,v=a*d-p*h,g=f*d-l*h,m=f*p-l*a;return ae([v,g,m],0,1)?.map(t=>t.t)||[]}const{abs:he,PI:de}=Math;function ve(t,n=[0,1]){if(t.length<=2)return 0;const[e,r]=n;if(e===r)return 0;if(3===t.length){const n=S(t,e,r).ps,[[o,i],[c,s],[u,f]]=n;return _([c-o,s-i],[u-c,f-s])}if(4===t.length){const n=y(t,e,r).ps,o=function(t){if(4===t.length)return ct(t)?function(t){if(!at(t))return!1;const[n,e,r,o]=t,[i,c]=n,[s,u]=e,[f,l]=r,[a,p]=o,h=ht(pt(dt(s/4,f/4),3),dt(i/4,a/4)),d=ht(pt(dt(u/4,l/4),3),dt(c/4,p/4));return 0===vt(ht(dt(i/2,a/2),h))&&0===vt(ht(dt(c/2,p/2),d))}(t)?G(t)?nn:tn:at(t)?Kt:Jt:at(t)?Zt:function(t){const{coeffs:[n,e,r],errBound:[o,i,c]}=bt(t);if(Vt(n)<=o){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Ft(Bt(s,n),kt(3,Bt(r,i))),l=Yt(zt(i,n),-2*r),a=Ft(Bt(u,e),kt(3,Bt(o,c))),p=Yt(zt(c,e),-2*o);if(0===q(Pt(l,a),Pt(f,p)))return Ut}const s=e*e,u=4*n*r,f=s-u,l=2*i*Vt(e)+Lt*s+(4*(o*Vt(r)+Vt(n)*c)+Lt*Vt(u))+Lt*Vt(f);if(f<-l)return Rt;if(f>l)return Qt;const[a,p,h]=Tt(t),d=j(At(Pt(p,p),kt(4,Pt(a,h))));return d<0?Rt:d>0?Qt:Gt}(t);if(3===t.length)return at(t)?K(t)?G(t)?Ht:Wt:Dt:qt;if(2===t.length)return G(t)?jt:Xt;if(1===t.length)return $t;throw new Error("The given bezier curve must be of order <= 3")}(n),[[i,c],[s,u],[f,l],[a,p]]=n,h=[s-i,u-c],d=[f-s,l-u],v=[a-f,p-l];if(0===d[0]&&0===d[1]||o.realOrder<=2)return _(h,v);const g=_(h,d)+_(d,v);return"acnode"===o.nodeType||"cusp"===o.nodeType?g<=-de?g+2*de:g>=+de?g-2*de:g:g}throw new Error("The given bezier curve must be of order <= 3.")}function ge(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function me(t,n){const[e,r]=t,[[o,i],[c,s]]=n;return ge([o+e*(c-o),i+e*(s-i)],[o+r*(c-o),i+r*(s-i)])}function xe(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=be[e],[i,c]=n;let s=0;const u=(c-i)/2,f=(c+i)/2;for(let n=0;n<=e-1;n++)s+=r[n]*t(u*o[n]+f);return u*s}const be={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function we(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[3*(s-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-c)),6*(c+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(c+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function _e(t){const[n,e]=we(t);return function(t){const r=Fn(n,t),o=Fn(e,t);return Math.sqrt(r*r+o*o)}}const{abs:Me}=Math;function Ie(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=Me(_(n[t],n[t+1]));return r}function Se(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-i[0]))))),m-n*(m-(g-n*(g-(a-n*(a-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=l-n*(l-i[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),x=f-n*(f-a),b=a-n*(a-i[1]),w=m-n*(m-x),_=x-n*(x-b);return[[v-n*(v-g),w-n*(w-_)],[g,_],[d,b],i]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,b=a-f,w=x+b,_=n*x,M=e*x,I=c[0]-s-3*b,S=u-l,N=p-l,E=S+N,y=n*S,C=e*S,O=c[1]-u-3*N;return[[d*I+(3*n*(n*w-x)+s),d*O+(3*n*(n*E-S)+u)],[m*(n*I+2*w)+(h*w+s-(M+2*_)),m*(n*O+2*E)+(h*E+u-(C+2*y))],[m*(e*I+2*w)+(v*w+s-(2*M+_)),m*(e*O+2*E)+(v*E+u-(2*C+y))],[g*I+(3*e*(e*w-x)+s),g*O+(3*e*(e*E-S)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=c-u;return[e,[-n*l+i,-n*a+c],[f*(l+(o[0]-s))-(2*n*l-i),f*(a+(o[1]-u))-(2*n*a-c)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=o[0]-s,p=c-u,h=o[1]-u;return[[f*(l+a)-(2*n*l-i),f*(p+h)-(2*n*p-c)],[n*a+s,n*h+u],o]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=n*n,a=e*e,p=n*e,h=c-u,d=h+(i[0]-u),v=s-f,g=v+(i[1]-f);return[[l*d-(2*n*h-c),l*g-(2*n*v-s)],[p*d-(h*(e+n)-c),p*g-(v*(e+n)-s)],[a*d-(2*e*h-c),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[e,[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[n*(r[0]-o)+o,n*(r[1]-i)+i],r]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1];return[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Ne(t,n=.4,e=2**-16){const r=[0],o=[1];for(;;){const i=r[r.length-1],c=o[o.length-1];if(Ie(Se(t,i,c))<=n||c-i<=e){if(r.push(o.pop()),1===c)return r;continue}const s=(i+c)/2;o.push(s)}}function Ee(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a]]=n;if(c===u&&u===l&&s===f&&f===a)return 0;const p=S(n,o,i).ps,h=Ne(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=xe(_e(p),[n,e],r)}return d}function ye(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a],[p,h]]=n;if(c===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=y(n,o,i).ps,v=Ne(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=xe(_e(d),[n,e],r)}return g}function Ce(t,n=.4,e=16){if(4===t.length)return ye([0,1],t,n,e);if(3===t.length)return Ee([0,1],t,n,e);if(2===t.length)return me([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Oe(t,n,e){if(void 0===t.size||void 0===e)return;const r=e[n];if(t.size>r&&void 0!==r)for(const[n]of t){t.delete(n);break}}const Te=[function(t,n){let e,r=!1;return function(){return r||(e=t(),r=!0),e}},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t){return"object"!=typeof t&&"function"!=typeof t||null===t?o:r}const c=function(r){let c;const s=i(r);return s.has(r)?(e&&console.log("cache hit"),c=s.get(r)):(e&&console.log("cache miss"),c=t(r),s.set(r,c),Oe(o,0,n)),c};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e){const r=i(e);r.set(e,t),Oe(r,1,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o){const i=("object"==typeof o||"function"==typeof o)&&null!==o;let c="object"!=typeof t&&"function"!=typeof t||null===t?r:e,s=c.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},c.set(t,s),Oe(c,0,n)),i?s.weakMap:s.map}function i(e,r){const i=o(e,r);let c;return i.has(r)?c=i.get(r):(c=t(e,r),i.set(r,c),Oe(i,1,n)),c}return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r){const i=o(e,r);i.set(r,t),Oe(i,1,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i){const c=("object"==typeof o||"function"==typeof o)&&null!==o,s=("object"==typeof i||"function"==typeof i)&&null!==i;let u="object"!=typeof t&&"function"!=typeof t||null===t?r:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),Oe(u,0,n));const l=c?f.weakMap:f.map;let a=l.get(o);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(o,a),Oe(l,1,n)),s?a.weakMap:a.map}const i=function(e,r,i){const c=o(e,r,i);let s;return c.has(i)?s=c.get(i):(s=t(e,r,i),c.set(i,s),Oe(c,2,n)),s};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i){const c=o(e,r,i);c.set(i,t),Oe(c,2,n)},i},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t,e,i,c){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof i||"function"==typeof i)&&null!==i,f=("object"==typeof c||"function"==typeof c)&&null!==c;let l="object"!=typeof t&&"function"!=typeof t||null===t?o:r,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),Oe(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),Oe(p,1,n));const d=u?h.weakMap:h.map;let v=d.get(i);return void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(i,v),Oe(d,2,n)),f?v.weakMap:v.map}const c=function(r,o,c,s){const u=i(r,o,c,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(r,o,c,s),u.set(s,f),Oe(u,3,n)),f};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,r,o,c){const s=i(e,r,o,c);s.set(c,t),Oe(s,3,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s){const u=("object"==typeof o||"function"==typeof o)&&null!==o,f=("object"==typeof i||"function"==typeof i)&&null!==i,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?r:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),Oe(p,0,n));const d=u?h.weakMap:h.map;let v=d.get(o);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(o,v),Oe(d,1,n));const g=f?v.weakMap:v.map;let m=g.get(i);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(i,m),Oe(g,2,n));const x=l?m.weakMap:m.map;let b=x.get(c);return void 0===b&&(b={weakMap:new WeakMap,map:new Map},x.set(c,b),Oe(x,3,n)),a?b.weakMap:b.map}const i=function(e,r,i,c,s){const u=o(e,r,i,c,s);let f;return u.has(s)?f=u.get(s):(f=t(e,r,i,c,s),u.set(s,f),Oe(u,4,n)),f};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s){const u=o(e,r,i,c,s);u.set(s,t),Oe(u,4,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u){const f=("object"==typeof o||"function"==typeof o)&&null!==o,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let d="object"!=typeof t&&"function"!=typeof t||null===t?r:e,v=d.get(t);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(t,v),Oe(d,0,n));const g=f?v.weakMap:v.map;let m=g.get(o);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(o,m),Oe(g,1,n));const x=l?m.weakMap:m.map;let b=x.get(i);void 0===b&&(b={weakMap:new WeakMap,map:new Map},x.set(i,b),Oe(x,2,n));const w=a?b.weakMap:b.map;let _=w.get(c);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(c,_),Oe(w,3,n));const M=p?_.weakMap:_.map;let I=M.get(s);return void 0===I&&(I={weakMap:new WeakMap,map:new Map},M.set(s,I),Oe(M,4,n)),h?I.weakMap:I.map}const i=function(e,r,i,c,s,u){const f=o(e,r,i,c,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,r,i,c,s,u),f.set(u,l),Oe(f,5,n)),l};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u){const f=o(e,r,i,c,s,u);f.set(u,t),Oe(f,5,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f){const l=("object"==typeof o||"function"==typeof o)&&null!==o,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,v=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?r:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),Oe(g,0,n));const x=l?m.weakMap:m.map;let b=x.get(o);void 0===b&&(b={weakMap:new WeakMap,map:new Map},x.set(o,b),Oe(x,1,n));const w=a?b.weakMap:b.map;let _=w.get(i);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(i,_),Oe(w,2,n));const M=p?_.weakMap:_.map;let I=M.get(c);void 0===I&&(I={weakMap:new WeakMap,map:new Map},M.set(c,I),Oe(M,3,n));const S=h?I.weakMap:I.map;let N=S.get(s);void 0===N&&(N={weakMap:new WeakMap,map:new Map},S.set(s,N),Oe(S,4,n));const E=d?N.weakMap:N.map;let y=E.get(u);return void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(u,y),Oe(E,5,n)),v?y.weakMap:y.map}const i=function(e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,r,i,c,s,u,f),l.set(f,a),Oe(l,6,n)),a};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);l.set(f,t),Oe(l,6,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f,l){const a=("object"==typeof o||"function"==typeof o)&&null!==o,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof c||"function"==typeof c)&&null!==c,d=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let x="object"!=typeof t&&"function"!=typeof t||null===t?r:e,b=x.get(t);void 0===b&&(b={weakMap:new WeakMap,map:new Map},x.set(t,b),Oe(x,0,n));const w=a?b.weakMap:b.map;let _=w.get(o);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(o,_),Oe(w,1,n));const M=p?_.weakMap:_.map;let I=M.get(i);void 0===I&&(I={weakMap:new WeakMap,map:new Map},M.set(i,I),Oe(M,2,n));const S=h?I.weakMap:I.map;let N=S.get(c);void 0===N&&(N={weakMap:new WeakMap,map:new Map},S.set(c,N),Oe(S,3,n));const E=d?N.weakMap:N.map;let y=E.get(s);void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(s,y),Oe(E,4,n));const C=v?y.weakMap:y.map;let O=C.get(u);void 0===O&&(O={weakMap:new WeakMap,map:new Map},C.set(u,O),Oe(C,5,n));const T=g?O.weakMap:O.map;let A=T.get(f);return void 0===A&&(A={weakMap:new WeakMap,map:new Map},T.set(f,A),Oe(T,6,n)),m?A.weakMap:A.map}const i=function(e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,r,i,c,s,u,f,l),a.set(l,p),Oe(a,7,n)),p};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);a.set(l,t),Oe(a,7,n)},i}];function Ae(t,n,e=!1){const r=t.length;if(r>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,Te[r])(t,n,e)}function Pe(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=o-e,a=i-r,p=u-c,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-r)*l-(c-e)*a)/d;return[c+v*p,s+v*h]}function ke(t,n){return[n[0]-t[0],n[1]-t[1]]}function Be(t,n){return t[0]*n[0]+t[1]*n[1]}function ze(t){return[-t[1],t[0]]}function Fe(t,n){return t[0]*n[1]-t[1]*n[0]}function Ye(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function Ve(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function Le(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function $e(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function Xe(t,n){const[e,r]=we(t);return[Fn(e,n),Fn(r,n)]}const je=ut,qe=Y;function De(t){if(4===t.length){const[[n,e],[r,o]]=t;return[qe(3,je(r,n)),qe(3,je(o,e))]}if(3===t.length){const[[n,e],[r,o]]=t;return[je(2*r,2*n),je(2*o,2*e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[je(r,n),je(o,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const We=U,He=Y,Qe=X;function Re(t){if(4===t.length){const[[n,e],[r,o],[i,c]]=t;return[He(6,Qe(We(i,n),-2*r)),He(6,Qe(We(c,e),-2*o))]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[Qe(We(2*i,2*n),-4*r),Qe(We(2*c,2*e),-4*o)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const Ge=ut,Ue=Y,Ze=T;function Je(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Ue(6,Ze(Ge(s,n),Ue(3,Ge(r,i))))],[Ue(6,Ze(Ge(u,e),Ue(3,Ge(o,c))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:Ke}=Math;function tr(t,n){const[e,r]=De(t),[o,i]=Re(t),[c,s]=De(n),[u,f]=Re(n),l=B($(e,i),$(r,o)),a=B($(c,f),$(s,u)),p=j(l),h=j(a);if(Ke(p)!==Ke(h))return p-h;const d=T($(c,c),$(s,s)),v=T($(e,e),$(r,r)),g=$(d,d),m=$(g,d),x=$(v,v),b=$(x,v);if(0!==p||0!==h){const t=$(l,l),n=$(a,a),e=j(B($(t,m),$(n,b)));if(0!==e)return p>0?e:-e}const[[w],[_]]=Je(t),[[M],[I]]=Je(n),S=B($(e,_),$(r,w)),N=T($(e,o),$(r,i)),E=B($(c,I),$(s,M)),y=T($(c,u),$(s,f)),C=B($(v,S),F($(l,N),3)),O=B($(d,E),F($(a,y),3)),A=j(C),P=j(O);if(A!==P)return A-P;if(0===A&&0===P)return 0;const k=$(C,C),z=$(g,m),Y=$(O,O),V=$(x,b),L=j(B($(k,z),$(Y,V)));return A>0?L:-L}function nr(t,n){return t[0]===n[0]&&t[1]===n[1]}function er(t,n){const{ccw:e,tangentI:r,tangentO:o,dotTangents:i}=function(t,n){const e=t.length;let r=t[e-2],o=n[0],i=n[1];nr(r,o)&&(r=t[e-3]),nr(o,i)&&(i=n[2]);const c=function(t,n,e){const r=ut(t[0],e[0]),o=ut(n[1],e[1]),i=ut(t[1],e[1]),c=ut(n[0],e[0]);return st(T($(r,o),A($(i,c))))}(r,o,i),s=[ut(o[0],r[0]),ut(o[1],r[1])],u=[ut(i[0],o[0]),ut(i[1],o[1])],f=function(t,n){return st(T($(t[0],n[0]),$(t[1],n[1])))}(s,u);return 0!==c||f>0?{ccw:c,tangentI:s,tangentO:u,dotTangents:f}:{ccw:tr(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),c=e<0,s=e>0,u=[Le(r.map(t=>t[1])),Le(o.map(t=>t[1]))],f=Fe(u[0],u[1]);let l,a;return i>0?(l=f<-.0698,a=f>.0698):(l=c,a=s),{tangents:u,isSharp:c,isDull:s,isQuiteSharp:l,isQuiteDull:a}}function rr(t){return er(1===t.t?t.curve.ps:t.curve.prev.ps,1===t.t?t.curve.next.ps:t.curve.ps)}function or(t){return 0===t.t||1===t.t}const ir=Ae(t=>!!or(t)&&rr(t).isSharp);function cr(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,c=o.p,s=i.p;let u;if(ir(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=Le(Xe(t.ps,0)),r=[-(f=Le(Xe(n.ps,1)))[0],-f[1]],i=Be(e,r),c=Math.sqrt((1+i)/2);u=$e(Math.sqrt((1-i)/2),c,r)}else u=c[0]===s[0]&&c[1]===s[1]?ke(c,n):ze(ke(c,s));var f;return[n,Ve(Le(u),n)]}const sr=1e-4;function ur(t,n){const e=t.cp.circle.center,r=cr(t),o=n.cp.circle.center,i=cr(n.prevOnCircle),c=Pe(r,i),s=ke(e,o);let u;if(c){const t=ke(e,c),n=ke(o,c);u=Be(t,s)<0||Be(n,s)>0}else u=!0;if(!u)return[e,c,o];const f=ze(s),l=ke(r[0],r[1]),a=ke(i[0],i[1]),p=Math.abs(Fe(s,l))/9,h=Math.abs(Fe(s,a))/9;if(p>.01||h>.01)return[e,o];if(p>sr||h>sr){const t=Ye(e,o,1/3),n=Ye(e,o,2/3),c=Ve(f,t),s=[n,Ve(f,n)];return[e,Pe(r,[t,c]),Pe(i,s),o]}return[e,o]}function fr(t){return ur(t,t.next)}const lr=Ae(fr);function ar(t,n=!1){const e=t,r=n?[]:[t];let o=t.nextOnCircle;for(;o!==e;)r.push(o),o=o.nextOnCircle;return r}function pr(t){return t===t.next.prevOnCircle}function hr(t){return ar(t).filter(t=>!pr(t)).length}function dr(t){if(2!==hr(t))return 0;const{radius:n}=t.cp.circle,e=fr(t),r=function(t,n=[0,1]){if(t.length<=3)return he(ve(t,n));if(4===t.length){const[e,r]=n;if(e===r)return 0;const o=y(t,e,r).ps,i=[0,...pe(o),1];let c=0;for(let t=0;t<i.length-1;t++)c+=he(ve(o,[i[t],i[t+1]]));return c}throw new Error("The given bezier curve must be of order <= 3.")}(e,[0,1]);return 0!==Ce(e)?r*n:void 0}Ae(dr);const vr=Ae(ve),gr=Ae(Ce);function mr(t){return ar(t.prevOnCircle,!0).every(pr)}const xr=function(){const t=new Map;return function(n){let e=t.get(n);return void 0!==e||(r=n,e=Ae(function(t){let n=t,e=0,o=0,i=n.prev,c=n,s=0,u=0,f=0,l=0;for(;l<r/2/40&&c!==n.prev&&!mr(c)&&hr(c)<=2;){const{radius:t}=c.cp.circle,n=lr(c),e=vr(n);let r=0;const i=gr(lr(c));u+=t*(e+r),o+=i,l+=i/t,c=c.next}for(;f<r/2/40&&i!==n&&!mr(i)&&hr(i)<=2;){const{radius:t}=i.cp.circle,n=lr(i),r=vr(n);let o=0;const c=gr(lr(i));s+=t*(r+o),e+=c,f+=c/t,i=i.prev}const a=e+o;if(0!==a)return-(s+u)/a}),t.set(n,e)),e;var r}}();function br(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function wr(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function _r(t){return 0===t.cp.circle.radius}function Mr(t){const n=t.cp.pointOnShape.curve;return{...t,pos:t.cp.pointOnShape,p:t.cp.pointOnShape.p,t:t.cp.pointOnShape.t,isTerminating:pr(t),isFullyTerminating:mr(t),isSharp:_r(t),prongCount:wr(t),getRealProngCount:hr(t),ordering:br(t),curve:n,loop:n.loop}}function Ir(t){let n=t;if(pr(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function Sr(t,n){const e=h(t),r=new Set;for(t of e)pr(t)||r.has(t.next.prevOnCircle)||n(t),r.add(t)}function Nr(t){const n=[],e=t;let r=e;for(;r!==e.prevOnCircle;)pr(r)||n.push(r.next),r=r.nextOnCircle;return n}function Er(t,n){n(t);const e=ar(t).filter(t=>!pr(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Nr(t))}}}const yr=["prev","next","prevOnCircle","nextOnCircle","holeCloserTwin"];function Cr(t){const n=new Map,e=Or(t);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of yr){const i=t[o];if(void 0===i)continue;let c=n.get(i);c||(c=Or(i),n.set(i,c),r.push({cpNode:i,newCpNode:c})),e[o]=c}}return e}function Or(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0,holeCloserTwin:void 0}}function Tr(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return[];const s=[];return c===i?s.push({ps:r.curve.ps,ts:[r.t,o.t]}):(s.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({ps:o.ps,ts:[0,n]})}while(o!==e)}(s,r.curve,o.curve,o.t)),s}function Ar(t){return Tr(t).map(t=>Se(t.ps,t.ts[0],t.ts[1]))}function Pr(t,n){const{cpTrees:e}=n,r=t.prev,o=t.next;r.next=o,o.prev=r,e.get(t.cp.pointOnShape.curve.loop).remove(t,!1)}function kr(t,n){const e=wr(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);ar(t).forEach(t=>Pr(t,n))}function Br(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n}function zr(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e}function Fr(t,n){return ar(t).indexOf(n)>=0}function Yr(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]}function Vr(t){return 2===hr(t)}function Lr(t){return ar(t).every(pr)}function $r(t){if(Lr(t))return[];for(;pr(t);)t=t.nextOnCircle;for(t=t.next;2===hr(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!mr(t)&&2===hr(t));return n}function Xr(t){return $r(t).map(t=>fr(t))}function jr(t,n,e=!0){const{cpNodes:r,hasHoleCloser:o}=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const r=t,o=[r];let i=t.next,c=r.isHoleClosing;for(;i!==n&&i!==r;)i.isHoleClosing&&(c=!0),o.push(i),i=i.next;return{cpNodes:o,hasHoleCloser:c}}(t,n,e);return{pss:r.flatMap(Ar),hasHoleCloser:o}}function qr(t){const n=t,e=t.nextOnCircle,r=ge(n.cp.pointOnShape.p,e.cp.pointOnShape.p),{pss:o,hasHoleCloser:i}=jr(n,e),c=function(t){let n=0;for(let e of t)n+=e;return n}(o.map(t=>Ce(t)));return i?Number.POSITIVE_INFINITY:c/r}function Dr(t,n){let e=t;const r=[];for(;e!==n;){const t=ur(e,e.next);r.push(t),e=e.next}return r}function Wr(t,n){const e=Fe(Le(Xe(fr(t),0)),Le(Xe(fr(n),0)));return Math.abs(Math.asin(e)*(180/Math.PI))}function Hr(t){const n=[];return Er(t,t=>{n.push(t)}),n}function Qr(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function Rr(t,n){return Qr(t.cp,n.cp)}const Gr={getChildren:Br,getVertexForwardChildren:Nr,getAllOnLoop:h,getAllOnCircle:ar,isOnSameCircle:Fr,isTerminating:pr,isFullyTerminating:mr,getFirstExit:zr,isSharp:_r,isOneProng:Yr,getProngCount:wr,getRealProngCount:hr,cpNodeComparator:Rr,enhanceCpNode:Mr,traverseCp:Ir,traverseEdges:Sr,traverseVertices:Er,clone:Cr,getBoundaryBezierPartsToNext:Tr,getBoundaryBeziersToNext:Ar,removeVertex:kr,getMatCurveToNext:fr,isTwoProng:Vr,getBranch:$r,getBranchBeziers:Xr,getSalience:qr,getMatCurveBetween:ur,getEdgeDirection:cr,getBoundaryBeziersBetween:jr,getMatCurvesBetween:Dr,getHoleClosers:d,getSpeed:dr,getSmoothedSpeed$:xr,getInitialDegAngleBetweenMatCurves:Wr,getAllVertices:Hr};function Ur(t){return n=>ar(n).some(t)}const Zr=Ur(function(t){return 2!==hr(t)&&!t.isHoleClosing});function Jr(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,c=e+(r-(o-i)+(n-i)),s=o+c;return[c-(s-o),s]}const Kr=Cn,to=m,no=x,eo=C,ro=Jr;function oo(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=ro(Kr(eo(o,e),n),e),a=ro(Kr(eo(c,o),n),o),p=ro(Kr(eo(u,c),n),c),h=to(l,Kr(no(a,l),n)),d=to(a,Kr(no(p,a),n)),v=to(h,Kr(no(d,h),n)),g=ro(Kr(eo(i,r),n),r),m=ro(Kr(eo(s,i),n),i),x=ro(Kr(eo(f,s),n),s),b=to(g,Kr(no(m,g),n)),w=to(m,Kr(no(x,m),n));return[v,to(b,Kr(no(w,b),n))]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=to([0,e],Kr(eo(o,e),n)),f=to([0,o],Kr(eo(c,o),n)),l=to(u,Kr(no(f,u),n)),a=to([0,r],Kr(eo(i,r),n)),p=to([0,i],Kr(eo(s,i),n));return[l,to(a,Kr(no(p,a),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[ro(Kr(eo(o,e),n),e),ro(Kr(eo(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function io(t,n,e){return{curve:t,t:n,p:oo(t.ps,[0,n]).map(t=>t[1]),isSource:void 0!==e&&e}}function co(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=e+(o-e)*n,a=o+(c-o)*n,p=l+(a-l)*n,h=r+(i-r)*n,d=i+(s-i)*n,v=h+(d-h)*n;return[p+(a+(c+(u-c)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(c-o)*n-u)*n,f+(i+(s-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const so=Math.abs;function uo(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=so(n[1]);if(4===t.length){const[[n,r],[o,i],[c,s],[u,f]]=t,l=so(n),a=so(r),p=so(o),h=so(i),d=so(c),v=so(s),g=l+(p+l)*e,m=p+(d+p)*e,x=g+(m+g)*e,b=a+(h+a)*e,w=h+(v+h)*e,_=b+(w+b)*e;return[x+(m+(d+(so(u)+d)*e+m)*e+x)*e,_+(w+(v+(so(f)+v)*e+w)*e+_)*e]}if(3===t.length){const[[n,r],[o,i],[c,s]]=t,u=so(n),f=so(r),l=so(o),a=so(i),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(so(c)+l)*e+p)*e,h+(a+(so(s)+a)*e+h)*e]}if(2===t.length){const[[n,r],[o,i]]=t,c=so(n),s=so(r);return[c+(so(o)+c)*e,s+(so(i)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const fo=Math.abs,lo=[[0,0],[0,0]];const ao=Number.EPSILON/2,po=Q(1);function ho(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=y(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=e[3][0],u=9*ao*r[0][0],f=9*ao*r[1][0],l=9*ao*r[2][0],a=9*ao*r[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*ao*r[0][1],m=9*ao*r[1][1],x=9*ao*r[2][1],b=9*ao*r[3][1],w=Math.min(o-u,i-f,c-l,s-a),_=Math.max(o+u,i+f,c+l,s+a);return[[w,Math.min(p-g,h-m,d-x,v-b)],[_,Math.max(p+g,h+m,d+x,v+b)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=S(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=5*ao*r[0][0],u=5*ao*r[1][0],f=5*ao*r[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*ao*r[0][1],d=5*ao*r[1][1],v=5*ao*r[2][1],g=Math.min(o-s,i-u,c-f),m=Math.max(o+s,i+u,c+f);return[[g,Math.min(l-h,a-d,p-v)],[m,Math.max(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:lo}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[o,i],[n*(c-o)+o,n*(s-i)+i]],f=fo(n),l=fo(o),a=fo(c),p=fo(i);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(fo(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[n*(c-o)+o,n*(s-i)+i],[c,s]],f=fo(n),l=fo(o),a=fo(c),p=fo(i);return{ps:u,_ps:[[f*(a+l)+l,f*(fo(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1],f=[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]],l=fo(n),a=fo(e),p=fo(i),h=fo(s),d=fo(c),v=fo(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=3*ao*r[0][0],s=3*ao*r[1][0],u=e[0][1],f=e[1][1],l=3*ao*r[0][1],a=3*ao*r[1][1],p=Math.min(o-c,i-s),h=Math.max(o+c,i+s);return[[p,Math.min(u-l,f-a)],[h,Math.max(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=co(t,n);let i;if(4===t.length)i=uo(t,[0,n]).map(t=>8*po*t);else if(3===t.length)i=uo(t,[0,n]).map(t=>5*po*t);else if(2===t.length)i=uo(t,[0,n]).map(t=>2*po*t);else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function vo(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const go=ut,mo=Number.EPSILON;function xo(t){return[2*t[0],2*t[1]]}function bo(t){return[4*t[0],4*t[1]]}const wo=C,_o=m,Mo=Sn,Io=Cn,So=xo,No=bo,Eo=x;function yo(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=wo(c,d),m=wo(u,d),x=wo(l,d),b=wo(p,d),w=wo(s,v),_=wo(f,v),M=wo(a,v),I=wo(h,v),S=Io(g,g),N=Mo(6,Io(g,m)),E=Mo(6,Io(g,x)),y=So(Io(g,b)),C=Mo(9,Io(m,m)),O=Mo(18,Io(m,x)),T=Mo(6,Io(m,b)),A=Mo(9,Io(x,x)),P=Mo(6,Io(x,b)),k=Io(b,b),B=Io(w,w),z=Mo(6,Io(w,_)),F=Mo(6,Io(w,M)),Y=So(Io(w,I)),V=Mo(9,Io(_,_)),L=Mo(18,Io(_,M)),$=Mo(6,Io(_,I)),X=Mo(9,Io(M,M)),j=Mo(6,Io(M,I)),q=Io(I,I),D=_o(T,A),W=_o(y,O),H=_o(E,C),Q=_o($,X),R=_o(Y,L),G=_o(F,V);return[Mo(6,_o(_o(_o(_o(Eo(k,P),Eo(S,N)),D),Eo(H,W)),_o(_o(_o(Eo(q,j),Eo(B,z)),Q),Eo(G,R)))),Mo(5,_o(Eo(_o(_o(P,Mo(5,N)),Mo(3,W)),So(_o(_o(D,So(H)),Mo(3,S)))),Eo(_o(_o(j,Mo(5,z)),Mo(3,R)),So(_o(_o(Q,So(G)),Mo(3,B)))))),No(_o(Eo(Eo(D,Mo(3,Eo(W,So(H)))),Mo(5,Eo(So(N),Mo(3,S)))),Eo(Eo(Q,Mo(3,Eo(R,So(G)))),Mo(5,Eo(So(z),Mo(3,B)))))),Mo(3,_o(Eo(W,So(Eo(So(H),Mo(5,Eo(N,So(S)))))),Eo(R,So(Eo(So(G),Mo(5,Eo(z,So(B)))))))),So(_o(Eo(H,Mo(5,Eo(N,Mo(3,S)))),Eo(G,Mo(5,Eo(z,Mo(3,B)))))),_o(Eo(N,Mo(6,S)),Eo(z,Mo(6,B)))]}const Co=C,Oo=m,To=Sn,Ao=Cn,Po=xo,ko=x,Bo=bo;function zo(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=Co(e,u),a=Co(o,u),p=Co(c,u),h=Co(r,f),d=Co(i,f),v=Co(s,f),g=Ao(l,l),m=Ao(l,a),x=Ao(l,p),b=Ao(a,a),w=Ao(a,p),_=Ao(p,p),M=Ao(h,h),I=Ao(h,d),S=Ao(h,v),N=Ao(d,d),E=Ao(d,v),y=Ao(v,v),C=Oo(S,Po(N)),O=Oo(x,Po(b));return[Oo(ko(Oo(Oo(y,M),Po(C)),Bo(Oo(E,I))),ko(Oo(Oo(_,g),Po(O)),Bo(Oo(w,m)))),To(3,Oo(Oo(ko(E,C),ko(To(3,I),M)),Oo(ko(w,O),ko(To(3,m),g)))),Oo(ko(C,To(3,ko(Po(I),M))),ko(O,To(3,ko(Po(m),g)))),Oo(ko(I,M),ko(m,g))]}const Fo=g,Yo=m,Vo=function(t){return[-2*t[0],-2*t[1]]};function Lo(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=Fo(u,u),h=Fo(u,f),d=Fo(f,f),v=Fo(l,l),g=Fo(l,a),m=Fo(a,a),b=Yo(h,g),w=Yo(v,p);return[Yo(Yo(d,m),Yo(w,Vo(b))),x(b,w)]}function $o(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function Xo(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const jo=ut,qo=Y,Do=$o,Wo=Xo,Ho=ut,Qo=Y,Ro=$o;function Go(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const Uo=ut,Zo=Xo,Jo=Math.abs;function Ko(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=Jo(e[0]),s=Jo(e[1]),u=Jo(r[0]),f=Jo(r[1]),l=Jo(o[0]),a=Jo(o[1]),p=Jo(i[0]),h=Jo(i[1]),d=Jo(n[0]),v=Jo(n[1]),g=c+d,m=u+d,x=l+d,b=p+d,w=s+v,_=f+v,M=a+v,I=h+v,S=g*g,N=6*g*m,E=6*x*b,y=w*w,C=6*w*_,O=6*M*I,T=6*m*b+9*x*x,A=2*g*b+18*m*x,P=6*g*x+9*m*m,k=6*_*I+9*M*M,B=2*w*I+18*_*M,z=6*w*M+9*_*_;return[6*(b*b+E+(S+N)+T+(P+A)+(I*I+O+(y+C)+k+(z+B))),5*(E+5*N+3*A+2*(T+2*P+3*S)+(O+5*C+3*B+2*(k+2*z+3*y))),4*(T+3*(A+2*P)+5*(2*N+3*S)+(k+3*(B+2*z)+5*(2*C+3*y))),3*(A+2*(2*P+5*(N+2*S))+(B+2*(2*z+5*(C+2*y)))),2*(P+5*(N+3*S)+(z+5*(C+3*y))),N+6*S+(C+6*y)]}function ti(t,n){const e=t[0],r=t[1],o=t[2],i=Jo(e[0]),c=Jo(e[1]),s=Jo(r[0]),u=Jo(r[1]),f=Jo(o[0]),l=Jo(o[1]),a=Jo(n[0]),p=Jo(n[1]),h=i+a,d=s+a,v=f+a,g=c+p,m=u+p,x=l+p,b=h*h,w=h*d,_=d*v,M=g*g,I=g*m,S=m*x,N=g*x+m*m*2,E=h*v+d*d*2;return[x*x+M+2*N+4*(S+I)+(v*v+b+2*E+4*(_+w)),3*(S+N+(3*I+M)+(_+E+(3*w+b))),N+3*(2*I+M)+(E+3*(2*w+b)),I+M+(w+b)]}function ni(t,n){const e=t[0],r=t[1],o=Jo(e[0]),i=Jo(e[1]),c=Jo(r[0]),s=Jo(r[1]),u=Jo(n[0]),f=Jo(n[1]),l=o+u,a=c+u,p=i+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}function ei(t,n){const e=t.length-1;if(3===e)return{polyDd:yo(t,n),polyE:Ko(t,n).map(t=>20*t),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=jo(c,d),m=jo(u,d),x=jo(l,d),b=jo(p,d),w=jo(s,v),_=jo(f,v),M=jo(a,v),I=jo(h,v),S=$(g,g),N=qo(6,$(g,m)),E=qo(6,$(g,x)),y=Do($(g,b)),C=qo(9,$(m,m)),O=qo(18,$(m,x)),A=qo(6,$(m,b)),P=qo(9,$(x,x)),k=qo(6,$(x,b)),z=$(b,b),F=$(w,w),Y=qo(6,$(w,_)),V=qo(6,$(w,M)),L=Do($(w,I)),X=qo(9,$(_,_)),j=qo(18,$(_,M)),q=qo(6,$(_,I)),D=qo(9,$(M,M)),W=qo(6,$(M,I)),H=$(I,I),Q=T(A,P),R=T(y,O),G=T(E,C),U=T(q,D),Z=T(L,j),J=T(V,X),K=B(T(T(z,S),T(Q,G)),T(T(R,k),N)),tt=B(T(T(H,F),T(U,J)),T(T(Z,W),Y)),nt=qo(6,T(K,tt)),et=T(Wo(T(T(Q,Do(G)),qo(3,S))),T(T(k,qo(3,R)),qo(5,N))),rt=T(Wo(T(T(U,Do(J)),qo(3,F))),T(T(W,qo(3,Z)),qo(5,Y))),ot=qo(5,T(et,rt)),it=T(T(Q,qo(3,B(Do(G),R))),qo(5,B(qo(3,S),Do(N)))),ct=T(T(U,qo(3,B(Do(J),Z))),qo(5,B(qo(3,F),Do(Y)))),st=qo(4,T(it,ct)),ut=B(R,Do(B(Do(G),qo(5,B(N,Do(S)))))),lt=B(Z,Do(B(Do(J),qo(5,B(Y,Do(F)))))),at=qo(3,T(ut,lt)),pt=B(G,qo(5,B(N,qo(3,S)))),ht=B(J,qo(5,B(Y,qo(3,F))));return[nt,ot,st,at,Do(T(pt,ht)),T(B(N,qo(6,S)),B(Y,qo(6,F)))].map(ft)}(t,n)};if(2===e)return{polyDd:zo(t,n),polyE:ti(t,n).map(t=>16*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=Ho(e,u),a=Ho(o,u),p=Ho(c,u),h=Ho(r,f),d=Ho(i,f),v=Ho(s,f),g=$(l,l),m=$(l,a),x=$(l,p),b=$(a,a),w=$(a,p),_=$(p,p),M=$(h,h),I=$(h,d),S=$(h,v),N=$(d,d),E=$(d,v),y=$(v,v),C=T(S,Ro(N)),O=T(x,Ro(b)),A=T(B(T(_,Ro(O)),Go(T(w,m))),g),P=T(B(T(y,Ro(C)),Go(T(E,I))),M),k=T(A,P),z=T(B(w,O),B(Qo(3,m),g)),F=T(B(E,C),B(Qo(3,I),M));return[k,Qo(3,T(z,F)),T(B(C,Qo(3,B(Ro(I),M))),B(O,Qo(3,B(Ro(m),g)))),T(B(I,M),B(m,g))].map(ft)}(t,n)};if(1===e)return{polyDd:Lo(t,n),polyE:ni(t,n).map(t=>12*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=Uo(e,c),f=Uo(o,c),l=Uo(r,s),a=Uo(i,s),p=$(u,u),h=$(u,f),d=$(f,f),v=$(l,l),g=$(l,a),m=$(a,a),x=T(h,g),b=T(v,p);return[T(T(d,m),T(Zo(x),b)),B(x,b)].map(ft)}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order 1, 2 or 3")}R(6);const{sqrt:ri}=Math;function oi(t,n,e=0,r=1){const{polyDd:o,polyE:i,getPolyExact:c}=ei(t,n),s=ae(o,e,r,i,c)||[];s.push({t:e,tS:e,tE:e,multiplicity:1}),s.push({t:r,tS:r,tE:r,multiplicity:1});const u=s.map(e=>{const r=ho(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,s],[c,i],[c,s]]){const e=go(t,u),r=go(n,f),o=st(T($(e,e),$(r,r))),i=o*(1-mo),c=o*(1+mo);i<=l&&(l=i),c>=a&&(a=c)}return[l,a]}(r,n);return{p:vo(r),t:e.t,d:(ri(o[0])+ri(o[1]))/2,dSquaredI:o,box:r,ri:e}});let f=Number.POSITIVE_INFINITY;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function ii(t){return(t.tS+t.tE)/2}function ci(t){const n=t.xs;if(4===n.length){let t=0,e=0;for(let r=0;r<n.length;r++)0===n[r].x.kind&&t++,4===n[r].x.kind&&e++;if(2===t&&2===e)return!0}return n.length<=2&&7!==n[0].x.kind}const si=ft;function ui(t){const n=(t=si(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const{abs:fi,min:li,max:ai,log2:pi,ceil:hi}=Math;function di(t,n){const{tS:e,tE:r}=t,o=r-e;if(0===o)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const i=2**hi(pi(o)),c=function(t,n,e){return An(Tn(t,e),n)}(n,i,e),s=c.map(ui),u=s.map(t=>t[1]*hn**2),f=ae(s,0,1,u,()=>c),l=[];for(const t of f)l.push({tS:U(e,t.tS*i),tE:U(e,t.tE*i),multiplicity:t.multiplicity});return l}const{abs:vi}=Math;function gi(t,n){const e=t.inOuts;e.sort(function(t){return(n,e)=>{let r=n.side-e.side;if(0!==r)return r;const o=n.sideX,i=e.sideX;r=o.ri.tS-i.ri.tS;const c=8*Number.EPSILON;return vi(r)>=c?r:(o.compensated||(o.compensated=1,o.riExp=di(o.ri,o.getPExact())[0]),i.compensated||(i.compensated=1,i.riExp=di(i.ri,i.getPExact())[0]),r=q(o.riExp.tS,i.riExp.tS),0!==r?r:(r=n.dir-e.dir,0!==r?t*r:1===n.dir?n.idx-e.idx:e.idx-n.idx))}}(n));let r=e[e.length-1];for(let t=0;t<e.length;t++){const n=e[t];n.prevAround=r,r.nextAround=n,r=n}}function mi(t,n,e,r){const o=function(t,n){return(e,r,o)=>{t.has(e)||(e.orientation=r,e.parent=o,e.windingNum=o.windingNum+e.orientation,n.push(e))}}(r,e);gi(t.container,n.orientation);let i,c,s=1,u=t,f=n.orientation;for(;u=1===n.orientation?u.nextAround:u.prevAround,u!==t;){const t=s;s-=u.dir,1===s&&(f*=-1),-1!==u.dir&&(i?1===t&&0===s?o(u,n.orientation,n.parent):0===t&&-1===s&&o(u,-n.orientation,n.parent):0===s?i=u:1===s&&o(u,n.orientation,n))}return ci(t.container)||(c=[t.p,i.p]),{inOutToUse:i,additionalBezier:c}}function xi(t,n){const e=t._x_,r=n._x_,o=e.curve,i=e.x.ri.tS,c=r.curve,s=r.x.ri.tS;let u=o,f=i;ci(t.container)||(f=ii(oi(o.ps,t.p)[0].ri));const l=[];for(;;){if(u===c&&(f<s||f===s&&0!==l.length)){const t=u.ps,n=[f,s];return l.push({ps:t,ts:n}),l}{const t=u.ps,n=[f,1];l.push({ps:t,ts:n})}f=0,u=u.next}}function bi(t,n){const e=n._x_,r=t._x_,o=r.curve,i=r.x.ri.tS,c=e.curve,s=e.x.ri.tS;let u=o,f=i;ci(t.container)||(f=ii(oi(u.ps,t.p)[0].ri));const l=[];for(;;){const t=u.ps;if(u===c&&(f>s||f===s&&0!==l.length)){const n=[f,s];return l.push({ps:t,ts:n}),l}{const n=[f,0];l.push({ps:t,ts:n})}f=1,u=u.prev}}function wi(t,n,e,r){const o=function(t,n,e){return(r,o,i,c)=>{n.has(r)||1!==r.dir||(r.loopsIdxs=new Set(c),r.orientation=o*t.orientation,r.parent=i.parent,r.windingNum=i.windingNum+r.orientation,e.unshift(r))}}(n,r,e);gi(t.container,1);let i=t.nextAround,c=t;const s=[],u=new Set(n.loopsIdxs);for(;c=c.nextAround,c!==t;)o(c,n.dir,n,u),s.push(c.idx),-1===c.dir?u?.add(c._x_?.curve.loop.idx):u.delete(c._x_?.curve.loop.idx);let f;return ci(t.container)||(f=[t.p,i.p]),{inOutToUse:i,additionalBezier:f}}function _i(t){const{ps:n,ts:e}=t;return Se(n,e[0],e[1])}function Mi(t,n,e){const r=[],o=[];let i,c=n;const s=e?wi:mi,u=[];do{t.add(c),u.push(c);const e=c.nextOrPrev;t.add(e);const f=1===c.dir?xi(c,e):bi(c,e);o.push(...f);const l=s(e,n,r,t);if(({inOutToUse:c,additionalBezier:i}=l),void 0!==i){const t=_i(o[o.length-1]),n={ps:t,ts:[0,ii(oi(t,i[0])[0].ri)]};o.pop(),o.push(n),o.push({ps:i,ts:[0,1]})}}while(c!==n);return"undefined"!=typeof _debug_&&_debug_.verbose&&function(t){const n=[],e=[];for(let r of t)e.push(1===r.dir?"color: blue;":"color: red"),n.push(`%c${r.idx}`)}(u),{bezierPieces:o,additionalOutsToCheck:r}}function Ii(t,n,e,r){const o=[t];for(;o.length;){const t=o.pop();if(n.add(t._x_.curve.loop),e.has(t))continue;t.children=new Set;const{bezierPieces:i,additionalOutsToCheck:c}=Mi(e,t,r);t.bezierPieces=i,t.parent.children=t.parent.children||new Set,t.parent.children.add(t);for(let t=0;t<c.length;t++)o.push(c[t])}}function Si(t){if(4===t.length)return Ni(t);if(3===t.length)return Ei(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function Ni(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[s-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-c),3*(c+e-2*o),3*(o-e),e]]}function Ei(t){const[[n,e],[r,o],[i,c]]=t;return[[i+n-2*r,2*(r-n),n],[c+e-2*o,2*(o-e),e]]}function yi(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=we(t),c=ae(i,0,1)||[];for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=ho(t,i);s[0][1]<r.box[0][1]&&(r={ts:i,box:s}),s[1][1]>o.box[0][1]&&(o={ts:i,box:s})}return{minY:r,maxY:o}}function Ci(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=we(t),c=ae(i,0,1)||[];for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=ho(t,i);s[0][0]<r.box[0][0]&&(r={ts:i,box:s}),s[1][0]>o.box[0][0]&&(o={ts:i,box:s})}return{minX:r,maxX:o}}(t),e=yi(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}const Oi=Ae(Ci);function Ti(t){const n=we(t),e=ae(n[0],0,1)?.map(t=>t.t)||[],r=ae(n[1],0,1)?.map(t=>t.t)||[];e.push(0,1),r.push(0,1);let o,i,c,s,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[c]=co(t,r);c<u&&(u=c,o=r),c>f&&(f=c,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=co(t,e);o<l&&(l=o,c=e),o>a&&(a=o,s=e)}return{ts:[[o,c],[i,s]],box:[[u,l],[f,a]]}}const Ai=Ae(Ti),{min:Pi,max:ki}=Math;function Bi(t){const n=t.map(Ai);return{minX:Pi(...n.map(t=>t.box[0][0])),maxX:ki(...n.map(t=>t.box[1][0])),minY:Pi(...n.map(t=>t.box[0][1])),maxY:ki(...n.map(t=>t.box[1][1]))}}const zi=new Function("try {return this===window;}catch(e){ return false;}")()?function(t){const n=window.atob(t),e=n.length,r=new Uint8Array(e);for(let t=0;t<e;t++)r[t]=n.charCodeAt(t);return r.buffer}:function(t){return function(t){const n=new ArrayBuffer(t.length),e=new Uint8Array(n);for(let n=0;n<t.length;++n)e[n]=t[n];return n}(Buffer.from(t,"base64"))},Fi=zi("AGFzbQEAAAABBgFgAX8BfAMDAgAABQMBAAAHHwMGbWVtb3J5AgAHc3F1YXJlcwAACHNxdWFyZXM0AAEKjgECPwECfiAArULHuuXf9tjQm2p+IgEgASABfnxCIIoiAiACfiABQse65d/22NCbanx8QiCKIgIgAn4gAXxCIIi6C0wBAn4gAK1Cx7rl3/bY0JtqfiIBQse65d/22NCbanwiAiABIAIgASABIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiLoL"),Yi=new WebAssembly.Module(Fi),Vi=new WebAssembly.Instance(Yi),Li=Vi.exports.squares;Vi.exports.squares4;const $i=1e-6;function Xi(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0;do{e++;const o=Li(e)/4294967296,i=r(t,n,co(t[Li(e+1e3)%t.length],o));if(void 0!==i)return i}while(e<100);return;function r(t,n,e){if(function(t,n){const e=Bi(t),r=Bi(n);return e.minX<r.minX||e.maxX>r.maxX||e.minY<r.minY||e.maxY>r.maxY}(t,n))return!1;const r=function(t,n){const[e,r]=n;let o=0;for(let i=0;i<t.length;i++){const c=t[i],[[s,u],[f,l]]=Oi(c);let a=u>r||l<r||!1;if(a=a||s>e||!1,a)continue;const p=[];let h,d,v;const g=!0;h=t=>Si(t)[1],d=[0,-r],v=0;const m=c.map(Ve(d)),x=h(m),b=ae(x,0-$i,1+$i)?.map(t=>t.t)||[];for(let t=0;t<b.length;t++){const e=b[t];if(Math.abs(e)<$i||Math.abs(e-1)<$i)return;const r=co(m,e);(g&&n[v]>=r[v]||!g&&n[v]<=r[v])&&p.push(e)}if(1===p.length||3===p.length)for(const t of p){const n=Le(Xe(c,t));if(Math.abs(n[1])<$i)return}o+=p.length}return o}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.bezierPieces.map(_i))){e=o;for(const t of o.children)r.push(t)}}}function ji(t,n){return qi(t)-qi(n)}function qi(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=Ai(e).box[0][1];t<n&&(n=t)}return n}const{abs:Di,sign:Wi}=Math;function Hi(t){let n=t.parent;for(;;){if(void 0===n)return!1;if(n.used)return!0;n=n.parent}}function Qi(t,n,e){let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;o>c&&([o,c]=[c,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]);const a=t||r===i&&s===f,p=t||o===c&&u===l;return(a?r<=f:r<f)&&(a?i>=s:i>s)&&(p?u<=c:u<c)&&(p?l>=o:l>o)}function Ri(t,n){return Qi(!0,t.box,n.box)}function Gi(t,n){for(let e=0;e<n.length;e++){const r=n[e];Ui(t,[r.a,r.b])}}function Ui(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function Zi(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||Zi(t,i,e,r)}}function Ji(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),Zi(t,o,e,n[n.length-1]))}return n}function Ki(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function tc(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const c=[];for(const n of e){const[[e,s],[u,f]]=n.box;e<t&&(t=e),s<r&&(r=s),u>o&&(o=u),f>i&&(i=f),c.push(...n.xs)}const s={box:[[t,r],[o,i]],xs:c,inOuts:void 0};n.push(s)}return n}function nc(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const ec=C,rc=Sn,oc=m,ic=Jr,cc=Math.abs;function sc(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=ec(s,n),l=ec(r,i),a=3*(r-i),p=rc(3,l),h=cc(a),d=oc(f,p),v=h+cc(s-n+a),g=ec(i,2*r),m=ic(g,n),x=cc(i-2*r+n),b=rc(3,m),w=6*x,_=ec(r,n),M=rc(3,_),I=cc(3*(r-n)),S=ec(u,e),N=ec(o,c),E=3*(o-c),y=rc(3,N),C=cc(E),O=oc(S,y),T=C+cc(u-e+E),A=ec(c,2*o),P=ic(A,e),k=cc(c-2*o+e),B=rc(3,P),z=6*k,F=ec(o,e);return{coeffs:[[d,b,M,[0,n]],[O,B,rc(3,F),[0,e]]],errorBound:[[v,w,I,0],[T,z,cc(3*(o-e)),0]]}}function uc(t){const[[n,e],[r,o],[i,c]]=t,s=i-2*r,u=ec(i,2*r),f=ic(u,n),l=cc(s+n),a=ec(2*r,2*n),p=c-2*o,h=ec(c,2*o),d=ic(h,e),v=cc(p+e);return{coeffs:[[f,a,[0,n]],[d,ec(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function fc(t){const[[n,e],[r,o]]=t;return[[ec(r,n),[0,n]],[ec(o,e),[0,e]]]}const lc=x,ac=Sn,pc=A,hc=Math.abs;function dc(t){const[[n,[,e]],[r,[,o]]]=fc(t),i=pc(r),c=n,s=ac(o,n),u=hc(s[1]),f=ac(e,r),l=hc(f[1]),a=lc(f,s);return{coeffs:{vₓ:i,vᵧ:c,v:a},errorBound:{v_:u+l+hc(a[1])}}}const{abs:vc}=Math,gc=m,mc=Sn,xc=Cn;function bc(t){return[-t[0],-t[1]]}const wc=bc,_c=xo,Mc=Sn,Ic=Cn,Sc=x,Nc=Math.abs;function Ec(t){const{coeffs:[[n,e,[,r]],[o,i,[,c]]],errorBound:[[s],[u]]}=uc(t),f=n[1],l=e[1],a=o[1],p=i[1],h=Nc(r),d=Nc(l),v=Nc(f),g=Nc(c),m=Nc(p),x=Nc(a),b=Ic(n,i),w=s*m+2*Nc(f*p),_=Ic(e,o),M=d*u+2*Nc(l*a),I=Mc(c,n),S=g*s+Nc(c*f),N=Mc(r,o),E=h*u+Nc(r*a),y=Mc(c,e),C=Nc(c*l),O=Mc(r,i),T=Nc(r*p),A=Ic(n,n),P=2*(s*v+Nc(f*f)),k=Ic(n,o),B=s*x+v*u+2*Nc(f*a),z=Ic(o,o),F=2*(u*x+Nc(a*a)),Y=f*p-l*a,V=f*c-r*a,L=l*c-r*p,$=Sc(b,_),X=Nc(Y),j=w+M+X,q=Sc(I,N),D=Nc(V),W=S+E+D,H=Sc(y,O),Q=Nc(L),R=C+T+Q,G=wc(z),U=F,Z=_c(k),J=2*B,K=wc(A),tt=P,nt=p*Y,et=Ic(i,$),rt=m*j+2*Nc(nt),ot=2*V*a,it=_c(Ic(o,q)),ct=2*(u*D+x*W+2*Nc(ot)),st=nt-ot,ut=Sc(et,it),ft=rt+ct+Nc(st),lt=2*f*V,at=_c(Ic(n,q)),pt=2*(s*D+v*W+2*Nc(lt)),ht=l*Y,dt=Ic(e,$),vt=d*j+2*Nc(ht),gt=lt-ht,mt=Sc(at,dt),xt=pt+vt+Nc(gt),bt=Y*L,wt=Ic($,H),_t=j*Q+X*R+2*Nc(bt),Mt=V*V,It=Ic(q,q),St=2*(W*D+Nc(Mt)),Nt=bt-Mt;return{coeffs:{vₓₓ:G,vₓᵧ:Z,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:Sc(wt,It)},errorBound:{vₓₓ_:U,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:xt,v_:_t+St+Nc(Nt)}}}const yc=g,Cc=xo,Oc=Sn,Tc=Cn,Ac=m,{abs:Pc}=Math,{abs:kc}=Math,Bc=bc,zc=xo,Fc=Sn,Yc=Cn,Vc=x,Lc=m;function $c(t){const{coeffs:[[n,e,r,[,o]],[i,c,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=sc(t),v=r[1],g=e[1],m=n[1],x=s[1],b=c[1],w=i[1],_=kc(o),M=kc(v),I=kc(g),S=kc(m),N=kc(u),E=kc(x),y=kc(b),C=kc(w),O=Yc(n,s),T=m*x,A=f*E+S*d+2*kc(T),P=Yc(r,i),k=v*w,B=a*C+M*p+2*kc(k),z=Yc(n,c),F=m*b,Y=f*y+S*h+2*kc(F),V=Yc(e,c),L=g*b,$=l*y+I*h+2*kc(L),X=Yc(e,i),j=g*w,q=l*C+I*p+2*kc(j),D=Yc(n,n),W=m*m,H=kc(W),Q=f*S+S*f+2*kc(W),R=Yc(c,c),G=b*b,U=h*y+y*h+2*kc(G),Z=Yc(i,i),J=w*w,K=kc(J),tt=p*C+C*p+2*kc(J),nt=Yc(r,n),et=v*m,rt=a*S+M*f+2*kc(et),ot=Yc(e,e),it=g*g,ct=l*I+I*l+2*kc(it),st=Yc(s,i),ut=x*w,ft=d*C+E*p+2*kc(ut),lt=Yc(c,i),at=kc(b*w),pt=h*C+y*p+2*at,ht=Yc(e,n),dt=kc(g*m),vt=l*S+I*f+2*dt,gt=Yc(n,i),mt=kc(m*w),xt=f*C+S*p+2*mt,bt=Fc(u,n),wt=m*u,_t=f*N+kc(wt),Mt=Fc(o,i),It=o*w,St=_*p+kc(It),Nt=Fc(u,e),Et=g*u,yt=l*N+kc(Et),Ct=Fc(o,c),Ot=o*b,Tt=_*h+kc(Ot),At=Yc(e,s),Pt=g*x,kt=l*E+I*d+2*kc(Pt),Bt=Yc(r,c),zt=v*b,Ft=a*y+M*h+2*kc(zt),Yt=Fc(u,r),Vt=v*u,Lt=a*N+kc(Vt),$t=Fc(o,s),Xt=o*x,jt=_*d+kc(Xt),qt=Vc(bt,Mt),Dt=_t+St+kc(wt-It),Wt=Vc(O,P),Ht=A+B+kc(T-k),Qt=Vc(z,X),Rt=Y+q+kc(F-j),Gt=Vc(Nt,Ct),Ut=yt+Tt+kc(Et-Ot),Zt=Vc(At,Bt),Jt=kt+Ft+kc(Pt-zt),Kt=Vc(Yt,$t),tn=Lt+jt+kc(Vt-Xt),nn=kc(ut-G),en=Vc(st,R),rn=ft+U+nn,on=kc(et-it),cn=Vc(nt,ot),sn=rt+ct+kc(et-it),un=kc(j+F),fn=Lc(X,z),ln=q+Y+kc(j+F),an=k+T,pn=kc(an),hn=Lc(P,O),dn=B+A+pn,vn=zc(Wt),gn=2*Ht,mn=wt-It,xn=T-k,bn=F-j,wn=Et-Ot,_n=Pt-zt,Mn=Vt-Xt,In=kc(mn),Sn=kc(xn),Nn=kc(bn),En=kc(wn),yn=kc(_n),Cn=kc(Mn),On=2*Sn,Tn=Yc(qt,qt),An=Yc(qt,Wt),Pn=Yc(qt,Qt),kn=Yc(qt,Zt),Bn=Yc(Wt,Wt),zn=Yc(vn,Gt),Fn=Yc(Qt,Gt),Yn=kc(Fn[1]),Vn=Yc(Qt,Zt),Ln=Yc(Qt,Kt),$n=Dt*In+In*Dt+2*kc(Tn[1]),Xn=Dt*Sn+In*Ht+2*kc(An[1]),jn=Dt*Nn+In*Rt+2*kc(Pn[1]),qn=Dt*yn+In*Jt+2*kc(kn[1]),Dn=Ht*Sn+Sn*Ht+2*kc(Bn[1]),Wn=gn*En+On*Ut+2*kc(zn[1]),Hn=Rt*En+Nn*Ut+2*Yn,Qn=Rt*yn+Nn*Jt+2*kc(Vn[1]),Rn=Rt*Cn+Nn*tn+2*kc(Ln[1]),Gn=Yc(Bc(i),Z),Un=p*K+C*tt+2*kc(Gn[1]),Zn=3*S,Jn=Fc(3,n),Kn=3*f+Zn,te=Yc(Jn,Z),ne=Kn*K+Zn*tt+2*kc(te[1]),ee=3*C,re=Fc(-3,i),oe=3*p+ee,ie=Yc(re,D),ce=oe*H+ee*Q+2*kc(ie[1]),se=Yc(n,D),ue=f*H+S*Q+2*kc(se[1]),fe=-3*mn,le=3*In,ae=Fc(-3,qt),pe=3*Dt+le,he=Vc(ae,Zt),de=kc(fe-_n),ve=pe+Jt+de,ge=Yc(he,Z),me=ve*K+de*tt+2*kc(ge[1]),xe=Yc(Qt,en),be=Rt*nn+Nn*rn+2*kc(xe[1]),we=Lc(ge,xe),_e=me+be+kc(we[1]),Me=Yc(vn,lt),Ie=gn*at+On*pt+2*kc(Me[1]),Se=Lc(we,Me),Ne=_e+Ie+kc(Se[1]),Ee=Yc(he,D),ye=ve*H+de*Q+2*kc(Ee[1]),Ce=Yc(Qt,cn),Oe=Rt*on+Nn*sn+2*kc(Ce[1]),Te=Lc(Ee,Ce),Ae=ye+Oe+kc(Te[1]),Pe=Yc(vn,ht),ke=gn*dt+On*vt+2*kc(Pe[1]),Be=Lc(Te,Pe),ze=Ae+ke+kc(Be[1]),Fe=kc(L-an/2),Ye=Vc(V,function(t){return[t[0]/2,t[1]/2]}(hn)),Ve=$+dn/2+kc(Ye[1]),Le=Yc(he,gt),$e=ve*mt+de*xt+2*kc(Le[1]),Xe=Yc(Wt,fn),je=Ht*un+Sn*ln+2*kc(Xe[1]),qe=Lc(Le,Xe),De=$e+je+kc(qe[1]),We=Yc(Qt,Ye),He=Rt*Fe+Nn*Ve+2*kc(We[1]),Qe=zc(Vc(We,qe)),Re=2*(He+De)+kc(Qe[1]),Ge=Fc(-3,Tn),Ue=3*$n+kc(Ge[1]),Ze=Vc(Ge,zc(kn)),Je=Ue+2*qn+kc(Ze[1]),Ke=Lc(zn,Ln),tr=Wn+Rn+kc(Ke[1]),nr=Lc(Ze,Ke),er=kc(nr[1]),rr=Je+tr+er,or=zc(Vc(An,Fn)),ir=kc(or[1]),cr=2*(Xn+Hn)+ir,sr=Vc(Pn,Bn),ur=jn+Dn+kc(sr[1]),fr=Lc(sr,Vn),lr=fr[1],ar=kc(lr),pr=ur+Qn+ar,hr=Yc(i,nr),dr=p*er+C*rr+2*kc(hr[1]),vr=Yc(c,or),gr=h*ir+y*cr+2*kc(vr[1]),mr=Yc(s,fr),xr=d*ar+E*pr+2*kc(mr[1]),br=Lc(vr,mr),wr=gr+xr+kc(br[1]),_r=Lc(hr,br),Mr=dr+wr+kc(_r[1]),Ir=Yc(n,nr),Sr=f*er+S*rr+2*kc(Ir[1]),Nr=Yc(e,or),Er=l*ir+I*cr+2*kc(Nr[1]),yr=Yc(r,fr),Cr=a*ar+M*pr+2*kc(yr[1]),Or=Lc(Nr,yr),Tr=Er+Cr+kc(Or[1]),Ar=Bc(Lc(Ir,Or)),Pr=Sr+Tr+kc(Ar[1]),kr=Vc(zn,Tn),Br=Wn+$n+kc(kr[1]),zr=Vc(kr,kn),Fr=kc(zr[1]),Yr=Br+qn+Fr,Vr=Yc(fr,Kt),Lr=ar*Cn+pr*Cn+kc(Vr[1]),$r=Yc(Fn,Gt),Xr=Yn*Ut+Hn*En+kc($r[1]),jr=Vc(Vr,$r),qr=Lr+Xr+kc(jr[1]),Dr=Yc(qt,zr),Wr=Dt*Fr+In*Yr+kc(Dr[1]),Hr=Lc(Dr,jr);return{coeffs:{vₓₓₓ:Gn,vₓₓᵧ:te,vₓᵧᵧ:ie,vᵧᵧᵧ:se,vₓₓ:Se,vₓᵧ:Qe,vᵧᵧ:Be,vₓ:_r,vᵧ:Ar,v:Hr},errorBound:{vₓₓₓ_:Un,vₓₓᵧ_:ne,vₓᵧᵧ_:ce,vᵧᵧᵧ_:ue,vₓₓ_:Ne,vₓᵧ_:Re,vᵧᵧ_:ze,vₓ_:Mr,vᵧ_:Pr,v_:Wr+qr+kc(Hr[1])}}}const Xc=g,jc=xo,qc=Sn,Dc=Cn,Wc=m,{abs:Hc}=Math,Qc=m,Rc=Sn,Gc=Cn,{abs:Uc}=Math,Zc=g,Jc=xo,Kc=Sn,ts=Cn,ns=m,{abs:es}=Math,rs=g,os=xo,is=Sn,cs=Cn,ss=m,{abs:us}=Math,fs=m,ls=Sn,as=Cn,{abs:ps}=Math,hs=g,ds=xo,vs=Sn,gs=Cn,ms=m,{abs:xs}=Math,bs=g,ws=xo,_s=Sn,Ms=Cn,Is=m,{abs:Ss}=Math,Ns=Y,Es=A;function ys(t){const[[n,[e]],[r,[o]]]=t;if(0!==j(n)||0!==j(r))return{vₓ:Es(r),vᵧ:n,v:ft(B(Ns(e,r),Ns(o,n)))}}const Cs=Y,Os=$,Ts=T;function As(t,n){const e=yt(t),[[r,[o]],[i,[c]]]=yt(n),{vₓ:s,vᵧ:u,v:f}=ys(e),l=Os(r,s),a=Os(i,u),p=Ts(l,a),h=Cs(o,s),d=Cs(c,u),v=Ts(h,d);return[p,Ts(v,f)].map(ft)}const Ps=Y,ks=$o,Bs=B,zs=$,Fs=A;function Ys(t){const[[n,e,[r]],[o,i,[c]]]=t;if(0===j(n)&&0===j(o))return ys([[e,[r]],[i,[c]]]);const s=zs(n,i),u=zs(e,o),f=Ps(c,n),l=Ps(r,o),a=Ps(c,e),p=Ps(r,i),h=zs(n,n),d=zs(n,o),v=zs(o,o),g=Bs(s,u),m=Bs(f,l),x=Bs(a,p),b=ft(Fs(v)),w=ft(ks(d)),_=ft(Fs(h)),M=zs(i,g),I=ks(zs(o,m)),S=ft(Bs(M,I)),N=ks(zs(n,m)),E=zs(e,g),y=ft(Bs(N,E)),C=zs(g,x),O=zs(m,m);return{vₓₓ:b,vₓᵧ:w,vᵧᵧ:_,vₓ:S,vᵧ:y,v:ft(Bs(C,O))}}const Vs=nt,Ls=Y,$s=$,Xs=T,js=$o;function qs(t,n){const e=Et(t);if(0===j(e[0][0])&&0===j(e[1][0]))return As([t[0],t[2]],n);const[[r,[o]],[i,[c]]]=yt(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=Ys(e),h=Vs(o,o),d=Ls(o,r),v=Vs(o,c),g=Ls(o,i),m=$s(r,r),x=Ls(c,r),b=$s(r,i),w=Vs(c,c),_=Ls(c,i),M=$s(i,i),I=$s(m,s),S=$s(M,f),N=$s(b,u),E=Xs(I,S),y=Xs(E,N),C=$s(d,s),O=$s(_,f),T=Xs(g,x),A=$s(T,u),P=js(Xs(C,O)),k=Xs(P,A),B=$s(r,l),z=$s(i,a),F=Xs(B,z),Y=Xs(k,F),V=$s(h,s),L=$s(v,u),$=$s(w,f),X=Xs(V,L),q=Xs(X,$),D=Ls(o,l),W=Ls(c,a),H=Xs(D,W),Q=Xs(q,H);return[y,Y,Xs(Q,p)].map(ft)}const Ds=$,Ws=ut,Hs=F,Qs=U;function Rs(t,n=!1){const[e,r,o,i]=t;if(!n){const[t,n]=e,[c,s]=r,[u,f]=o,[l,a]=i;return[e,[st(B(Hs(Qs(c/4,u/4),3),Qs(t/4,l/4))),st(B(Hs(Qs(s/4,f/4),3),Qs(n/4,a/4)))],i]}const c=function(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=Ws(o,e),a=Ws(i,r),p=Ws(u,c),h=Ws(f,s),d=B(Ds(p,a),Ds(h,l));if(0===j(d))return;const v=Ws(c,e),g=Ws(s,r),m=st(B(Ds(g,l),Ds(v,a)))/st(d);return[c+m*st(p),s+m*st(h)]}([e,r],[i,o]);if(void 0!==c)return[e,c,i]}const Gs=Y,Us=$,Zs=T,Js=B,Ks=A,tu=$o;function nu(t){const[[n,e,r,[o]],[i,c,s,[u]]]=t;if(0===j(n)&&0===j(i))return Ys([[e,r,[o]],[c,s,[u]]]);const f=Us(n,s),l=Us(r,i),a=Us(n,c),p=Us(e,c),h=Us(e,i),d=Us(n,n),v=Us(c,c),g=Us(i,i),m=Us(r,n),x=Us(e,e),b=Us(s,i),w=Us(c,i),_=Us(e,n),M=Us(n,i),I=Gs(u,n),S=Gs(o,i),N=Gs(u,e),E=Gs(o,c),y=Us(e,s),C=Us(r,c),O=Gs(u,r),T=Gs(o,s),A=Js(I,S),P=Js(f,l),k=Js(a,h),B=Js(N,E),z=Js(y,C),F=Js(O,T),Y=Js(b,v),V=Js(m,x),L=Zs(h,a),$=Zs(l,f),X=tu(P),q=Us(A,A),D=Us(A,P),W=Us(A,k),H=Us(A,z),Q=Us(P,P),R=Us(X,B),G=Us(k,B),U=Us(k,z),Z=Us(k,F),J=ft(Us(Ks(i),g)),K=ft(Us(Gs(3,n),g)),tt=ft(Us(Gs(-3,i),d)),nt=ft(Us(n,d)),et=Js(Gs(-3,A),z),rt=Us(et,g),ot=Us(k,Y),it=Zs(rt,ot),ct=Us(X,w),st=ft(Zs(it,ct)),ut=Us(et,d),lt=Us(k,V),at=Zs(ut,lt),pt=Us(X,_),ht=ft(Zs(at,pt)),dt=Js(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}($)),vt=Us(et,M),gt=Us(P,L),mt=Zs(vt,gt),xt=Us(k,dt),bt=ft(tu(Js(xt,mt))),wt=Gs(-3,q),_t=Js(wt,tu(H)),Mt=Zs(R,Z),It=Zs(_t,Mt),St=tu(Js(D,G)),Nt=Js(W,Q),Et=Zs(Nt,U),yt=Us(i,It),Ct=Us(c,St),Ot=Us(s,Et),Tt=Zs(Ct,Ot),At=ft(Zs(yt,Tt)),Pt=Us(n,It),kt=Us(e,St),Bt=Us(r,Et),zt=Zs(kt,Bt),Ft=ft(Ks(Zs(Pt,zt))),Yt=Js(R,q),Vt=Js(Yt,H),Lt=Us(Et,F),$t=Us(G,B),Xt=Js(Lt,$t),jt=Us(A,Vt);return{vₓₓₓ:J,vₓₓᵧ:K,vₓᵧᵧ:tt,vᵧᵧᵧ:nt,vₓₓ:st,vₓᵧ:bt,vᵧᵧ:ht,vₓ:At,vᵧ:Ft,v:ft(Zs(jt,Xt))}}const eu=nt,ru=Y,ou=$,iu=T,cu=$o;function su(t,n){const e=Nt(t);if(0===j(e[0][0])&&0===j(e[1][0]))return qs(Rs(t),n);const[[r,[o]],[i,[c]]]=yt(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=nu(e),m=eu(o,o),x=ru(o,r),b=eu(o,c),w=ru(o,i),_=ou(r,r),M=ru(c,r),I=ou(r,i),S=eu(c,c),N=ru(c,i),E=ou(i,i),y=ru(o,s),C=ou(eu(3,o),s),O=ru(o,u),T=ru(c,u),A=ru(o,f),P=ru(c,f),k=ru(c,l),B=ou(eu(3,c),l),z=ou(r,s),F=ou(r,f),Y=ou(i,u),V=ou(i,l),L=iu(z,Y),$=iu(F,V),X=ou(_,L),q=ou(E,$),D=iu(X,q),W=iu(C,T),H=cu(iu(O,P)),Q=iu(A,B),R=iu(W,a),G=iu(H,p),U=iu(Q,h),Z=ou(_,R),J=ou(I,G),K=ou(E,U),tt=iu(Z,J),nt=iu(tt,K),et=cu(iu(T,a)),rt=cu(iu(A,h)),ot=iu(C,et),it=iu(B,rt),ct=iu(O,p),st=iu(P,p),ut=ou(x,ot),lt=ou(N,it),at=ou(w,ct),pt=ou(M,st),ht=ou(r,d),dt=ou(i,v),vt=iu(ut,lt),gt=iu(at,pt),mt=iu(vt,gt),xt=iu(ht,dt),bt=iu(mt,xt),wt=iu(y,T),_t=iu(k,A),Mt=iu(wt,a),It=iu(_t,h),St=ou(m,Mt),Et=ou(S,It),Ct=ou(b,p),Ot=iu(St,Et),Tt=iu(Ot,Ct),At=ru(o,d),Pt=ru(c,v),kt=iu(At,Pt),Bt=iu(Tt,kt);return[D,nt,bt,iu(Bt,g)].map(ft)}const uu=Y,fu=$,lu=T;function au(t,n){const e=yt(t),[[r,o,[i]],[c,s,[u]]]=Et(n);if(0===j(r)&&0===j(c))return As(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=ys(e),p=fu(r,f),h=fu(c,l),d=lu(p,h),v=fu(o,f),g=fu(s,l),m=lu(v,g),x=uu(i,f),b=uu(u,l),w=lu(x,b);return[d,m,lu(w,a)].map(ft)}const pu=nt,hu=Y,du=$,vu=T,gu=$o;function mu(t,n){const e=Et(t);if(0===j(e[0][0])&&0===j(e[1][0]))return au([t[0],t[2]],n);const[[r,o,[i]],[c,s,[u]]]=Et(n);if(0===j(r)&&0===j(c))return qs(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=Ys(e),v=pu(i,i),g=hu(i,o),m=hu(i,r),x=pu(i,u),b=hu(i,s),w=hu(i,c),_=du(o,o),M=du(o,r),I=hu(u,o),S=du(o,s),N=du(o,c),E=du(r,s),y=du(r,r),C=hu(u,r),O=du(r,c),T=pu(u,u),A=hu(u,s),P=hu(u,c),k=du(s,s),B=du(s,c),z=du(c,c),F=du(y,f),Y=du(O,l),V=du(z,a),L=vu(F,Y),$=vu(L,V),X=du(M,f),q=du(B,a),D=vu(N,E),W=du(D,l),H=gu(vu(X,q)),Q=vu(H,W),R=vu(gu(m),_),G=vu(gu(P),k),U=vu(w,S),Z=vu(U,C),J=du(R,f),K=du(G,a),tt=du(Z,l),nt=du(r,p),et=du(c,h),rt=vu(J,K),ot=vu(rt,tt),it=vu(nt,et),ct=vu(ot,it),st=du(g,f),ut=du(A,a),lt=vu(b,I),at=du(lt,l),pt=gu(vu(st,ut)),ht=du(o,p),dt=du(s,h),vt=vu(pt,at),gt=vu(ht,dt),mt=vu(vt,gt),xt=du(v,f),bt=du(x,l),wt=du(T,a),_t=hu(i,p),Mt=hu(u,h),It=vu(xt,bt),St=vu(It,wt),Nt=vu(_t,Mt),yt=vu(St,Nt);return[$,Q,ct,mt,vu(yt,d)].map(ft)}const xu=nt,bu=Y,wu=$,_u=T,Mu=$o;function Iu(t,n){const e=Nt(t);if(0===j(e[0][0])&&0===j(e[1][0]))return mu(Rs(t),n);const[[r,o,[i]],[c,s,[u]]]=Et(n);if(0===j(r)&&0===j(c))return su(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:x}=nu(e),b=xu(i,i),w=bu(i,o),_=bu(i,r),M=xu(i,u),I=bu(i,s),S=bu(i,c),N=wu(o,o),E=wu(o,r),y=bu(u,o),C=wu(o,s),O=wu(o,c),T=wu(r,s),A=wu(r,r),P=bu(u,r),k=wu(r,c),B=xu(u,u),z=bu(u,s),F=bu(u,c),Y=wu(s,s),V=wu(s,c),L=wu(c,c),$=wu(r,f),X=wu(r,a),q=wu(c,l),D=wu(c,p),W=_u($,q),H=_u(X,D),Q=wu(A,W),R=wu(L,H),G=_u(Q,R),U=_u(_,N),Z=_u(F,Y),J=_u(Mu(_),N),K=_u(Mu(F),Y),tt=_u(Mu(C),P),nt=_u(Mu(C),S),et=_u(Mu(P),C),rt=_u(bu(6,_),N),ot=_u(bu(6,F),Y),it=_u(O,T),ct=_u(S,P),st=_u(Mu(y),I),ut=_u(Mu(I),y),lt=_u(S,C),at=_u(lt,P),pt=bu(3,A),ht=bu(3,L),dt=wu(pt,f),vt=wu(A,l),gt=Mu(wu(k,l)),mt=Mu(wu(k,a)),xt=wu(L,a),bt=wu(ht,p),wt=_u(dt,gt),_t=_u(vt,mt),Mt=_u(wt,xt),It=_u(_t,bt),St=wu(o,Mt),yt=wu(s,It),Ct=_u(St,yt),Ot=wu(c,J),Tt=wu(c,nt),At=wu(r,tt),Pt=wu(r,K),kt=wu(bu(3,r),U),Bt=wu(bu(3,c),Z),zt=_u(Ot,At),Ft=_u(Tt,Pt),Yt=wu(kt,f),Vt=wu(Bt,p),Lt=wu(zt,l),$t=wu(Ft,a),Xt=_u(Yt,Vt),jt=_u(Lt,$t),qt=wu(A,h),Dt=wu(L,v),Wt=wu(k,d),Ht=_u(qt,Dt),Qt=_u(Xt,jt),Rt=_u(Ht,Wt),Gt=_u(Qt,Rt),Ut=wu(o,rt),Zt=wu(s,ot),Jt=bu(2*i,it),Kt=wu(Mu(s),ct),tn=wu(o,et),nn=wu(o,K),en=_u(Jt,tn),rn=_u(Kt,nn),on=wu(V,v),cn=wu(E,h),sn=wu(it,d),un=_u(on,cn),fn=wu(Ut,f),ln=wu(en,l),an=wu(Zt,p),pn=wu(rn,a),hn=_u(fn,an),dn=_u(ln,pn),vn=_u(hn,dn),gn=_u(Mu(un),sn),mn=_u(vn,gn),xn=wu(xu(3,i),U),bn=wu(xu(3,u),Z),wn=bu(i,nt),_n=bu(i,K),Mn=bu(u,J),In=bu(u,tt),Sn=_u(wn,Mn),Nn=_u(_n,In),En=wu(xn,f),yn=wu(bn,p),Cn=wu(Sn,l),On=wu(Nn,a),Tn=wu(J,h),An=wu(K,v),Pn=wu(at,d),kn=wu(r,g),Bn=wu(c,m),zn=_u(En,yn),Fn=_u(Cn,On),Yn=_u(Tn,An),Vn=_u(zn,Fn),Ln=_u(Yn,Pn),$n=_u(kn,Bn),Xn=_u(Vn,Ln),jn=_u(Xn,$n),qn=wu(xu(3,i),w),Dn=wu(xu(3,u),z),Wn=bu(i,st),Hn=bu(u,ut),Qn=wu(w,h),Rn=wu(z,v),Gn=wu(I,d),Un=wu(y,d),Zn=Mu(_u(Qn,Rn)),Jn=_u(Gn,Un),Kn=wu(o,g),te=wu(s,m),ne=wu(qn,f),ee=wu(Dn,p),re=wu(Wn,l),oe=wu(Hn,a),ie=_u(ne,ee),ce=_u(re,oe),se=_u(ie,ce),ue=_u(Zn,Jn),fe=_u(Kn,te),le=_u(se,ue),ae=_u(le,fe),pe=bu(i,f),he=bu(i,a),de=bu(u,l),ve=bu(u,p),ge=_u(pe,de),me=_u(he,ve),xe=_u(ge,h),be=_u(me,v),we=wu(b,xe),_e=wu(B,be),Me=wu(M,d),Ie=bu(i,g),Se=bu(u,m),Ne=_u(we,_e),Ee=_u(Ne,Me),ye=_u(Ie,Se),Ce=_u(Ee,ye);return[G,Ct,Gt,mn,jn,ae,_u(Ce,x)].map(ft)}const Su=Y,Nu=$,Eu=T;function yu(t,n){const e=yt(t),[[r,o,i,[c]],[s,u,f,[l]]]=Nt(n);if(0===j(r)&&0===j(s))return au(t,Rs(n));const{vₓ:a,vᵧ:p,v:h}=ys(e),d=Nu(r,a),v=Nu(s,p),g=Eu(d,v),m=Nu(o,a),x=Nu(u,p),b=Eu(m,x),w=Nu(i,a),_=Nu(f,p),M=Eu(w,_),I=Su(c,a),S=Su(l,p),N=Eu(I,S);return[g,b,M,Eu(N,h)].map(ft)}const Cu=nt,Ou=Y,Tu=$,Au=T,Pu=$o;function ku(t,n){const e=Et(t);if(0===j(e[0][0])&&0===j(e[1][0]))return yu([t[0],t[2]],n);const[[r,o,i,[c]],[s,u,f,[l]]]=Nt(n);if(0===j(r)&&0===j(s))return mu(t,Rs(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=Ys(e),m=Cu(c,c),x=Ou(c,i),b=Ou(c,o),w=Ou(c,r),_=Cu(c,l),M=Ou(c,f),I=Ou(c,u),S=Ou(c,s),N=Tu(i,i),E=Tu(i,o),y=Tu(i,r),C=Ou(l,i),O=Tu(i,f),T=Tu(i,u),A=Tu(i,s),P=Tu(o,f),k=Tu(o,o),B=Tu(o,r),z=Ou(l,o),F=Tu(o,u),Y=Tu(o,s),V=Tu(r,r),L=Ou(l,r),$=Tu(r,f),X=Tu(r,u),q=Tu(r,s),D=Cu(l,l),W=Ou(l,f),H=Ou(l,u),Q=Ou(l,s),R=Tu(f,f),G=Tu(f,u),U=Tu(s,s),Z=Tu(u,u),J=Tu(u,s),K=Tu(f,s),tt=Tu(V,a),nt=Tu(q,p),et=Tu(U,h),rt=Au(tt,nt),ot=Au(rt,et),it=Tu(B,a),ct=Tu(J,h),st=Au(it,ct),ut=Au(Y,X),lt=Tu(ut,p),at=Au(Pu(st),lt),pt=Au(Pu(y),k),ht=Au(Pu(K),Z),dt=Au(A,F),vt=Au(dt,$),gt=Tu(pt,a),mt=Tu(ht,h),xt=Au(gt,mt),bt=Tu(vt,p),wt=Au(xt,bt),_t=Au(w,E),Mt=Au(Q,G),It=Au(S,T),St=Au(P,L),yt=Au(It,St),Ct=Tu(_t,a),Ot=Tu(Mt,h),Tt=Pu(Au(Ct,Ot)),At=Tu(yt,p),Pt=Tu(r,d),kt=Tu(s,v),Bt=Au(Pt,kt),zt=Au(Tt,At),Ft=Au(zt,Bt),Yt=Au(Pu(b),N),Vt=Au(Pu(H),R),Lt=Au(I,O),$t=Au(Lt,z),Xt=Tu(Yt,a),jt=Tu(Vt,h),qt=Tu($t,p),Dt=Au(Xt,jt),Wt=Au(Dt,qt),Ht=Tu(o,d),Qt=Tu(u,v),Rt=Au(Ht,Qt),Gt=Au(Wt,Rt),Ut=Tu(x,a),Zt=Tu(W,h),Jt=Au(M,C),Kt=Tu(Jt,p),tn=Pu(Au(Ut,Zt)),nn=Au(tn,Kt),en=Tu(i,d),rn=Tu(f,v),on=Au(en,rn),cn=Au(nn,on),sn=Tu(m,a),un=Tu(_,p),fn=Tu(D,h),ln=Ou(c,d),an=Ou(l,v),pn=Au(sn,un),hn=Au(pn,fn),dn=Au(ln,an),vn=Au(hn,dn);return[ot,at,wt,Ft,Gt,cn,Au(vn,g)].map(ft)}const Bu=nt,zu=Y,Fu=$,Yu=T,Vu=$o,Lu=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=dc(t),[[c,[,s]],[u,[,f]]]=fc(n),l=c[1],a=u[1],p=e[1],h=r[1],d=o[1],v=l*p,g=2*vc(v),m=xc(c,e),x=a*h,b=2*vc(x),w=xc(u,r),_=v+x,M=gc(m,w),I=g+b+vc(_),S=s*p,N=mc(s,e),E=vc(S),y=f*h,C=mc(f,r),O=vc(y),T=S+y,A=gc(N,C),P=E+O+vc(T);return{coeffs:[M,gc(A,o)],errBound:[I,P+i+vc(T+d)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=dc(t),{coeffs:[[c,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=uc(n),d=e[1],v=r[1],g=o[1],m=Uc(d),x=Uc(v),b=s[1],w=c[1],_=l[1],M=f[1],I=w*d,S=Gc(c,e),N=p*m+2*Uc(I),E=M*v,y=Gc(f,r),C=h*x+2*Uc(E),O=I+E,T=Qc(S,y),A=N+C+Uc(O),P=b*d,k=Gc(s,e),B=2*Uc(P),z=_*v,F=Gc(l,r),Y=2*Uc(z),V=P+z,L=Qc(k,F),$=B+Y+Uc(V),X=Rc(u,e),j=u*d,q=Uc(j),D=Rc(a,r),W=a*v,H=Uc(W),Q=j+W,R=Qc(X,D),G=q+H+Uc(Q),U=Q+g;return{coeffs:[T,L,Qc(R,o)],errBound:[A,$,G+i+Uc(U)]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=dc(t),{coeffs:[[c,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,x,b]]}=sc(n),w=ps(e[1]),_=ps(r[1]),M=as(c,e),I=d*w+2*ps(M[1]),S=as(l,r),N=m*_+2*ps(S[1]),E=fs(M,S),y=I+N+ps(E[1]),C=as(s,e),O=v*w+2*ps(C[1]),T=as(a,r),A=x*_+2*ps(T[1]),P=fs(C,T),k=O+A+ps(P[1]),B=as(u,e),z=g*w+2*ps(B[1]),F=as(p,r),Y=b*_+2*ps(F[1]),V=fs(B,F),L=z+Y+ps(V[1]),$=ls(f,e),X=ps($[1]),j=ls(h,r),q=ps(j[1]),D=fs($,j),W=X+q+ps(D[1]),H=fs(D,o);return{coeffs:[E,P,V,H],errBound:[y,k,L,W+i+ps(H[1])]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Ec(t),[[d,[,v]],[g,[,m]]]=fc(n),x=e[1],b=r[1],w=o[1],_=i[1],M=c[1],I=s[1],S=Pc(x),N=Pc(b),E=Pc(w),y=d[1],C=g[1],O=Pc(v),T=Pc(y),A=Pc(m),P=Pc(C),k=v*v,B=v*y,z=v*m,F=v*C,Y=y*y,V=y*m,L=y*C,$=m*m,X=m*C,j=C*C,q=yc(v,v),D=Oc(v,d),W=Pc(B),H=yc(v,m),Q=Oc(v,g),R=Pc(F),G=Pc(Y),U=Tc(d,d),Z=2*G,J=Oc(m,d),K=Pc(V),tt=Pc(L),nt=Tc(d,g),et=2*tt,rt=yc(m,m),ot=Oc(m,g),it=Pc(X),ct=Pc(j),st=Tc(g,g),ut=2*ct,ft=Y*x,lt=Tc(U,e),at=Z*S*G*u+2*Pc(ft),pt=j*w,ht=Tc(st,o),dt=ut*E*ct*l+2*Pc(pt),vt=L*b,gt=Tc(nt,r),mt=et*N*tt*f+2*Pc(vt),xt=ft+pt,bt=Ac(lt,ht),wt=at+dt+Pc(xt),_t=xt+vt,Mt=Ac(bt,gt),It=wt+mt+Pc(_t),St=B*x,Nt=Tc(D,e),Et=W*(S+u)+2*Pc(St),yt=X*w,Ct=Tc(ot,o),Ot=it*(E+l)+2*Pc(yt),Tt=F+V,At=Ac(Q,J),Pt=R+K+Pc(Tt),kt=Tt*b,Bt=Tc(At,r),zt=Pt*N+Pc(Tt)*f+2*Pc(kt),Ft=2*(St+yt),Yt=Cc(Ac(Nt,Ct)),Vt=2*(Et+Ot)+Pc(Ft),Lt=Ft+kt,$t=Ac(Yt,Bt),Xt=Vt+zt+Pc(Lt),jt=y*_,qt=Tc(d,i),Dt=T*a+2*Pc(jt),Wt=C*M,Ht=Tc(g,c),Qt=P*p+2*Pc(Wt),Rt=jt+Wt,Gt=Ac(qt,Ht),Ut=Dt+Qt+Pc(Rt),Zt=Lt+Rt,Jt=Ac($t,Gt),Kt=Xt+Ut+Pc(Zt),tn=k*x,nn=Tc(q,e),en=2*Pc(tn),rn=z*b,on=Tc(H,r),cn=2*Pc(rn),sn=$*w,un=Tc(rt,o),fn=2*Pc(sn),ln=tn+rn,an=Ac(nn,on),pn=en+cn+Pc(ln),hn=ln+sn,dn=Ac(an,un),vn=pn+fn+Pc(hn),gn=v*_,mn=Oc(v,i),xn=O*a+Pc(gn),bn=m*M,wn=Oc(m,c),_n=A*p+Pc(bn),Mn=gn+bn,In=Ac(mn,wn),Sn=xn+_n+Pc(Mn),Nn=hn+Mn,En=Ac(dn,In),yn=vn+Sn+Pc(Nn),Cn=Nn+I;return{coeffs:[Mt,Jt,Ac(En,s)],errBound:[It,Kt,yn+h+Pc(Cn)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Ec(t),{coeffs:[[d,v,[,g]],[m,x,[,b]]],errorBound:[[w],[_]]}=uc(n),M=e[1],I=r[1],S=o[1],N=i[1],E=c[1],y=s[1],C=es(M),O=es(I),T=es(S),A=es(N),P=es(E),k=v[1],B=d[1],z=x[1],F=m[1],Y=es(g),V=es(k),L=es(B),$=es(b),X=es(z),j=es(F),q=g*g,D=g*k,W=g*B,H=g*b,Q=g*z,R=g*F,G=k*k,U=k*B,Z=k*b,J=k*z,K=k*F,tt=B*z,nt=B*B,et=B*b,rt=B*F,ot=b*b,it=b*z,ct=b*F,st=z*z,ut=z*F,ft=F*F,lt=es(q),at=es(H),pt=es(ot),ht=Zc(g,g),dt=Kc(g,v),vt=es(D),gt=Kc(g,d),mt=es(W),xt=Zc(g,b),bt=Kc(g,x),wt=es(Q),_t=Kc(g,m),Mt=es(R),It=ts(v,v),St=2*es(G),Nt=ts(v,d),Et=es(U),yt=V*w+2*Et,Ct=Kc(b,v),Ot=es(Z),Tt=ts(v,x),At=2*es(J),Pt=ts(v,m),kt=V*_+2*es(K),Bt=ts(d,x),zt=w*X+2*es(tt),Ft=ts(d,d),Yt=es(nt),Vt=2*(w*L+Yt),Lt=Kc(b,d),$t=es(et),Xt=ts(d,m),jt=es(rt),qt=w*j+L*_+2*jt,Dt=Zc(b,b),Wt=Kc(b,x),Ht=es(it),Qt=Kc(b,m),Rt=es(ct),Gt=ts(x,x),Ut=2*es(st),Zt=ts(x,m),Jt=es(ut),Kt=X*_+2*Jt,tn=ts(m,m),nn=es(ft),en=2*(_*j+nn),rn=nt*M,on=ts(Ft,e),cn=Vt*C+Yt*u+2*es(rn),sn=rt*I,un=ts(Xt,r),fn=qt*O+jt*f+2*es(sn),ln=ft*S,an=ts(tn,o),pn=en*T+nn*l+2*es(ln),hn=rn+sn,dn=ns(on,un),vn=cn+fn+es(hn),gn=hn+ln,mn=ns(dn,an),xn=vn+pn+es(gn),bn=U*M,wn=ts(Nt,e),_n=yt*C+Et*u+2*es(bn),Mn=ut*S,In=ts(Zt,o),Sn=Kt*T+Jt*l+2*es(Mn),Nn=K+tt,En=ns(Pt,Bt),yn=es(Nn),Cn=kt+zt+yn,On=Nn*I,Tn=ts(En,r),An=Cn*O+yn*f+2*es(On),Pn=2*(bn+Mn),kn=Jc(ns(wn,In)),Bn=2*(_n+Sn)+es(Pn),zn=Pn+On,Fn=ns(kn,Tn),Yn=Bn+An+es(zn),Vn=2*W+G,Ln=es(Vn),$n=ns(Jc(gt),It),Xn=2*mt+St+es(Vn),jn=2*ct+st,qn=es(jn),Dn=ns(Jc(Qt),Gt),Wn=2*Rt+Ut+es(jn),Hn=R+J,Qn=(es(Hn),ns(_t,Tt)),Rn=Mt+At+es(Hn),Gn=Hn+et,Un=ns(Qn,Lt),Zn=es(Gn),Jn=Rn+$t+Zn,Kn=Vn*M,te=ts($n,e),ne=Xn*C+Ln*u+2*es(Kn),ee=jn*S,re=ts(Dn,o),oe=Wn*T+qn*l+2*es(ee),ie=Gn*I,ce=ts(Un,r),se=Jn*O+Zn*f+2*es(ie),ue=B*N,fe=ts(d,i),le=w*A+L*a+es(ue),ae=F*E,pe=ts(m,c),he=_*P+j*p+es(ae),de=Kn+ee,ve=ns(te,re),ge=ne+oe+es(de),me=de+ie,xe=ns(ve,ce),be=ge+se+es(me),we=ue+ae,_e=ns(fe,pe),Me=le+he+es(we),Ie=me+we,Se=ns(xe,_e),Ne=be+Me+es(Ie),Ee=D*M,ye=ts(dt,e),Ce=vt*(C+u)+2*es(Ee),Oe=it*S,Te=ts(Wt,o),Ae=Ht*(T+l)+2*es(Oe),Pe=Q+Z,ke=ns(bt,Ct),Be=es(Pe),ze=wt+Ot+Be,Fe=Pe*I,Ye=ts(ke,r),Ve=ze*O+Be*f+2*es(Fe),Le=2*(Ee+Oe),$e=Jc(ns(ye,Te)),Xe=2*(Ce+Ae)+es(Le),je=k*N,qe=ts(v,i),De=V*a+2*es(je),We=z*E,He=ts(x,c),Qe=X*p+2*es(We),Re=Le+Fe,Ge=ns($e,Ye),Ue=Xe+Ve+es(Re),Ze=je+We,Je=ns(qe,He),Ke=De+Qe+es(Ze),tr=Re+Ze,nr=ns(Ge,Je),er=Ue+Ke+es(tr),rr=q*M,or=ts(ht,e),ir=lt*u+2*es(rr),cr=H*I,sr=ts(xt,r),ur=at*f+2*es(cr),fr=ot*S,lr=ts(Dt,o),ar=pt*l+2*es(fr),pr=g*N,hr=Kc(g,i),dr=Y*a+es(pr),vr=b*E,gr=Kc(b,c),mr=$*p+es(vr),xr=rr+cr,br=ns(or,sr),wr=ir+ur+es(xr),_r=xr+fr,Mr=ns(br,lr),Ir=wr+ar+es(_r),Sr=pr+vr,Nr=ns(hr,gr),Er=dr+mr+es(Sr),yr=_r+Sr,Cr=ns(Mr,Nr),Or=Ir+Er+es(yr),Tr=yr+y;return{coeffs:[mn,Fn,Se,nr,ns(Cr,s)],errBound:[xn,Yn,Ne,er,Or+h+es(Tr)]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Ec(t),{coeffs:[[d,v,g,[,m]],[x,b,w,[,_]]],errorBound:[[M,I,S],[N,E,y]]}=sc(n),C=e[1],O=r[1],T=o[1],A=i[1],P=c[1],k=s[1],B=xs(C),z=xs(O),F=xs(T),Y=xs(A),V=xs(P),L=g[1],$=v[1],X=d[1],j=w[1],q=b[1],D=x[1],W=xs(m),H=xs(L),Q=xs($),R=xs(X),G=xs(_),U=xs(j),Z=xs(q),J=xs(D),K=m*m,tt=m*L,nt=m*$,et=m*X,rt=m*_,ot=m*j,it=m*q,ct=m*D,st=L*L,ut=L*$,ft=L*X,lt=L*_,at=L*j,pt=L*q,ht=L*D,dt=$*j,vt=$*$,gt=$*X,mt=$*_,xt=$*q,bt=$*D,wt=X*X,_t=X*_,Mt=X*j,It=X*q,St=X*D,Nt=_*_,Et=_*j,yt=_*q,Ct=_*D,Ot=j*j,Tt=j*q,At=D*D,Pt=q*q,kt=q*D,Bt=j*D,zt=hs(m,m),Ft=xs(K),Yt=vs(m,g),Vt=xs(tt),Lt=W*S+Vt,$t=vs(m,v),Xt=W*I+xs(nt),jt=vs(m,d),qt=W*M+xs(et),Dt=hs(m,_),Wt=xs(rt),Ht=vs(m,w),Qt=W*y+xs(ot),Rt=vs(m,b),Gt=W*E+xs(it),Ut=vs(m,x),Zt=W*N+xs(ct),Jt=gs(g,g),Kt=S*H+H*S+2*xs(st),tn=gs(g,v),nn=S*Q+H*I+2*xs(ut),en=gs(g,d),rn=S*R+H*M+2*xs(ft),on=vs(_,g),cn=G*S+xs(lt),sn=gs(g,w),un=S*U+H*y+2*xs(at),fn=gs(g,b),ln=S*Z+H*E+2*xs(pt),an=gs(g,x),pn=S*J+H*N+2*xs(ht),hn=gs(v,w),dn=I*U+Q*y+2*xs(dt),vn=gs(v,v),gn=I*Q+Q*I+2*xs(vt),mn=gs(v,d),xn=xs(gt),bn=I*R+Q*M+2*xn,wn=vs(_,v),_n=G*I+xs(mt),Mn=gs(v,b),In=I*Z+Q*E+2*xs(xt),Sn=gs(v,x),Nn=I*J+Q*N+2*xs(bt),En=gs(d,d),yn=xs(wt),Cn=M*R+R*M+2*yn,On=vs(_,d),Tn=G*M+xs(_t),An=gs(d,w),Pn=M*U+R*y+2*xs(Mt),kn=gs(d,b),Bn=M*Z+R*E+2*xs(It),zn=gs(d,x),Fn=xs(St),Yn=M*J+R*N+2*Fn,Vn=hs(_,_),Ln=xs(Nt),$n=vs(_,w),Xn=xs(Et),jn=G*y+Xn,qn=vs(_,b),Dn=G*E+xs(yt),Wn=vs(_,x),Hn=G*N+xs(Ct),Qn=gs(w,w),Rn=y*U+U*y+2*xs(Ot),Gn=gs(w,b),Un=y*Z+U*E+2*xs(Tt),Zn=gs(x,x),Jn=xs(At),Kn=N*J+J*N+2*Jn,te=gs(b,b),ne=E*Z+Z*E+2*xs(Pt),ee=gs(b,x),re=xs(kt),oe=E*J+Z*N+2*re,ie=gs(w,x),ce=y*J+U*N+2*xs(Bt),se=wt*C,ue=gs(En,e),fe=Cn*B+yn*u+2*xs(se),le=St*O,ae=gs(zn,r),pe=Yn*z+Fn*f+2*xs(le),he=At*T,de=gs(Zn,o),ve=Kn*F+Jn*l+2*xs(he),ge=se+le,me=ms(ue,ae),xe=fe+pe+xs(ge),be=ge+he,we=ms(me,de),_e=xe+ve+xs(be),Me=gt*C,Ie=gs(mn,e),Se=bn*B+xn*u+2*xs(Me),Ne=kt*T,Ee=gs(ee,o),ye=oe*F+re*l+2*xs(Ne),Ce=Me+Ne,Oe=ms(Ie,Ee),Te=Se+ye+xs(Ce),Ae=bt+It,Pe=ms(Sn,kn),ke=xs(Ae),Be=Nn+Bn+ke,ze=Ae*O,Fe=gs(Pe,r),Ye=Be*z+ke*f+2*xs(ze),Ve=2*Ce+ze,Le=ms(ds(Oe),Fe),$e=2*Te+Ye+xs(Ve),Xe=2*ft+vt,je=ms(ds(en),vn),qe=xs(Xe),De=2*rn+gn+xs(Xe),We=2*Bt+Pt,He=ms(ds(ie),te),Qe=xs(We),Re=2*ce+ne+xs(We),Ge=ht+xt,Ue=ms(an,Mn),Ze=pn+In+xs(Ge),Je=Ge+Mt,Ke=ms(Ue,An),tr=xs(Je),nr=Ze+Pn+tr,er=Xe*C,rr=gs(je,e),or=De*B+qe*u+2*xs(er),ir=We*T,cr=gs(He,o),sr=Re*F+Qe*l+2*xs(ir),ur=er+ir,fr=ms(rr,cr),lr=or+sr+xs(ur),ar=Je*O,pr=gs(Ke,r),hr=nr*z+tr*f+2*xs(ar),dr=ur+ar,vr=ms(fr,pr),gr=lr+hr+xs(dr),mr=et+ut,xr=ms(jt,tn),br=xs(mr),wr=qt+nn+br,_r=Ct+Tt,Mr=ms(Wn,Gn),Ir=xs(_r),Sr=Hn+Un+Ir,Nr=ct+pt,Er=ms(Ut,fn),yr=Zt+ln+xs(Nr),Cr=dt+_t,Or=ms(hn,On),Tr=dn+Tn+xs(Cr),Ar=Nr+Cr,Pr=ms(Er,Or),kr=xs(Ar),Br=yr+Tr+kr,zr=mr*C,Fr=gs(xr,e),Yr=wr*B+br*u+2*xs(zr),Vr=_r*T,Lr=gs(Mr,o),$r=Sr*F+Ir*l+2*xs(Vr),Xr=2*(zr+Vr),jr=ds(ms(Fr,Lr)),qr=2*(Yr+$r)+xs(Xr),Dr=Ar*O,Wr=gs(Pr,r),Hr=Br*z+kr*f+2*xs(Dr),Qr=X*A,Rr=gs(d,i),Gr=M*Y+R*a+2*xs(Qr),Ur=D*P,Zr=gs(x,c),Jr=N*V+J*p+2*xs(Ur),Kr=Qr+Ur,to=ms(Rr,Zr),no=Gr+Jr+xs(Kr),eo=Xr+Dr,ro=ms(jr,Wr),oo=qr+Hr+xs(eo),io=eo+Kr,co=ms(ro,to),so=oo+no+xs(io),uo=2*nt+st,fo=ms(ds($t),Jt),lo=xs(uo),ao=2*Xt+Kt+lo,po=2*yt+Ot,ho=ms(ds(qn),Qn),vo=xs(po),go=2*Dn+Rn+vo,mo=it+at,xo=ms(Rt,sn),bo=Gt+un+xs(mo),wo=mo+mt,_o=ms(xo,wn),Mo=xs(wo),Io=bo+_n+Mo,So=uo*C,No=gs(fo,e),Eo=ao*B+lo*u+2*xs(So),yo=po*T,Co=gs(ho,o),Oo=go*F+vo*l+2*xs(yo),To=wo*O,Ao=gs(_o,r),Po=Io*z+Mo*f+2*xs(To),ko=So+yo,Bo=ms(No,Co),zo=Eo+Oo+xs(ko),Fo=ko+To,Yo=ms(Bo,Ao),Vo=zo+Po+xs(Fo),Lo=$*A,$o=gs(v,i),Xo=I*Y+Q*a+2*xs(Lo),jo=q*P,qo=gs(b,c),Do=E*V+Z*p+2*xs(jo),Wo=Lo+jo,Ho=ms($o,qo),Qo=Xo+Do+xs(Wo),Ro=Fo+Wo,Go=ms(Yo,Ho),Uo=Vo+Qo+xs(Ro),Zo=tt*C,Jo=gs(Yt,e),Ko=Lt*B+Vt*u+2*xs(Zo),ti=Et*T,ni=gs($n,o),ei=jn*F+Xn*l+2*xs(ti),ri=ot+lt,oi=ms(Ht,on),ii=xs(ri),ci=Qt+cn+ii,si=ri*O,ui=gs(oi,r),fi=ci*z+ii*f+2*xs(si),li=2*(Zo+ti),ai=ds(ms(Jo,ni)),pi=2*(Ko+ei)+xs(li),hi=li+si,di=ms(ai,ui),vi=pi+fi+xs(hi),gi=L*A,mi=gs(g,i),xi=S*Y+H*a+2*xs(gi),bi=j*P,wi=gs(w,c),_i=y*V+U*p+2*xs(bi),Mi=gi+bi,Ii=ms(mi,wi),Si=xi+_i+xs(Mi),Ni=hi+Mi,Ei=ms(di,Ii),yi=vi+Si+xs(Ni),Ci=K*C,Oi=gs(zt,e),Ti=Ft*u+2*xs(Ci),Ai=rt*O,Pi=gs(Dt,r),ki=Wt*f+2*xs(Ai),Bi=Nt*T,zi=gs(Vn,o),Fi=Ln*l+2*xs(Bi),Yi=m*A,Vi=vs(m,i),Li=W*a+xs(Yi),$i=_*P,Xi=vs(_,c),ji=G*p+xs($i),qi=Ci+Ai,Di=ms(Oi,Pi),Wi=Ti+ki+xs(qi),Hi=qi+Bi,Qi=ms(Di,zi),Ri=Wi+Fi+xs(Hi),Gi=Yi+$i,Ui=ms(Vi,Xi),Zi=Li+ji+xs(Gi),Ji=Hi+Gi,Ki=ms(Qi,Ui),tc=Ri+Zi+xs(Ji),nc=Ji+k;return{coeffs:[we,Le,vr,co,Go,Ei,ms(Ki,s)],errBound:[_e,$e,gr,so,Uo,yi,tc+h+xs(nc)]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:w,v_:_}}=$c(t),[[M,[,I]],[S,[,N]]]=fc(n),E=e[1],y=r[1],C=o[1],O=i[1],T=c[1],A=s[1],P=u[1],k=f[1],B=l[1],z=a[1],F=M[1],Y=S[1],V=Hc(I),L=Hc(F),$=Hc(N),X=Hc(Y),j=I*I,q=I*F,D=I*N,W=I*Y,H=F*F,Q=F*N,R=F*Y,G=N*N,U=N*Y,Z=Y*Y,J=Xc(I,I),K=qc(I,M),tt=Hc(q),nt=Xc(I,N),et=qc(I,S),rt=Hc(W),ot=Dc(M,M),it=2*Hc(H),ct=qc(N,M),st=Hc(Q),ut=Dc(M,S),ft=2*Hc(R),lt=Xc(N,N),at=qc(N,S),pt=Hc(U),ht=Dc(S,S),dt=2*Hc(Z),vt=Hc(j),gt=Hc(q),mt=Hc(D),xt=Hc(W),bt=Hc(H),wt=Hc(Q),_t=Hc(R),Mt=Hc(G),It=Hc(U),St=Hc(Z),Nt=I*E,Et=qc(I,e),yt=V*p+Hc(Nt),Ct=3*I,Ot=Xc(3,I),Tt=Hc(Ct),At=Ct*E,Pt=Dc(Ot,e),kt=Tt*p+2*Hc(At),Bt=I*y,zt=qc(I,r),Ft=V*h+Hc(Bt),Yt=N*y,Vt=qc(N,r),Lt=$*h+Hc(Yt),$t=I*C,Xt=qc(I,o),jt=V*d+Hc($t),qt=N*C,Dt=qc(N,o),Wt=$*d+Hc(qt),Ht=N*O,Qt=qc(N,i),Rt=$*v+Hc(Ht),Gt=3*N,Ut=Xc(3,N),Zt=Hc(Gt),Jt=Gt*O,Kt=Dc(Ut,i),tn=Zt*v+2*Hc(Jt),nn=F*E,en=Dc(M,e),rn=L*p+2*Hc(nn),on=F*C,cn=Dc(M,o),sn=L*d+2*Hc(on),un=Y*y,fn=Dc(S,r),ln=X*h+2*Hc(un),an=Y*O,pn=Dc(S,i),hn=X*v+2*Hc(an),dn=nn+un,vn=Wc(en,fn),gn=Hc(dn),mn=rn+ln+gn,xn=on+an,bn=Wc(cn,pn),wn=Hc(xn),_n=sn+hn+wn,Mn=H*dn,In=Dc(ot,vn),Sn=it*gn+bt*mn+2*Hc(Mn),Nn=Z*xn,En=Dc(ht,bn),yn=dt*wn+St*_n+2*Hc(Nn),Cn=Mn+Nn,On=Wc(In,En),Tn=Sn+yn+Hc(Cn),An=At+Yt,Pn=Wc(Pt,Vt),kn=kt+Lt+Hc(An),Bn=2*(Bt+qt),zn=jc(Wc(zt,Dt)),Fn=2*(Ft+Wt)+Hc(Bn),Yn=$t+Jt,Vn=Wc(Xt,Kt),Ln=jt+tn+Hc(Yn),$n=An+T,Xn=Wc(Pn,c),jn=Hc($n),qn=kn+g+jn,Dn=Bn+A,Wn=Wc(zn,s),Hn=Hc(Dn),Qn=Fn+m+Hn,Rn=Yn+P,Gn=Wc(Vn,u),Un=Hc(Rn),Zn=Ln+x+Un,Jn=H*$n,Kn=Dc(ot,Xn),te=it*jn+bt*qn+2*Hc(Jn),ne=R*Dn,ee=Dc(ut,Wn),re=ft*Hn+_t*Qn+2*Hc(ne),oe=Z*Rn,ie=Dc(ht,Gn),ce=dt*Un+St*Zn+2*Hc(oe),se=Jn+ne,ue=Wc(Kn,ee),fe=te+re+Hc(se),le=se+oe,ae=Wc(ue,ie),pe=fe+ce+Hc(le),he=2*(Yt+T),de=jc(Wc(Vt,c)),ve=2*(Lt+g)+Hc(he),ge=2*($t+P),me=jc(Wc(Xt,u)),xe=2*(jt+x)+Hc(ge),be=At+he,we=Wc(Pt,de),_e=Hc(be),Me=kt+ve+_e,Ie=Jt+ge,Se=Wc(Kt,me),Ne=Hc(Ie),Ee=tn+xe+Ne,ye=Bt+A,Ce=Wc(zt,s),Oe=Hc(ye),Te=Ft+m+Oe,Ae=qt+A,Pe=Wc(Dt,s),ke=Hc(Ae),Be=Wt+m+ke,ze=q*be,Fe=Dc(K,we),Ye=tt*_e+gt*Me+2*Hc(ze),Ve=U*Ie,Le=Dc(at,Se),$e=pt*Ne+It*Ee+2*Hc(Ve),Xe=W*ye,je=Dc(et,Ce),qe=rt*Oe+xt*Te+2*Hc(Xe),De=Q*Ae,We=Dc(ct,Pe),He=st*ke+wt*Be+2*Hc(De),Qe=F*k,Re=Dc(M,f),Ge=L*b+2*Hc(Qe),Ue=Y*B,Ze=Dc(S,l),Je=X*w+2*Hc(Ue),Ke=ze+Ve,tr=Wc(Fe,Le),nr=Ye+$e+Hc(Ke),er=Xe+De,rr=Wc(je,We),or=qe+He+Hc(er),ir=Ke+er,cr=Wc(tr,rr),sr=nr+or+Hc(ir),ur=Qe+Ue,fr=Wc(Re,Ze),lr=Ge+Je+Hc(ur),ar=ir+ur,pr=Wc(cr,fr),hr=sr+lr+Hc(ar),dr=Nt+Yt,vr=Wc(Et,Vt),gr=yt+Lt+Hc(dr),mr=Ht+$t,xr=Wc(Qt,Xt),br=Rt+jt+Hc(mr),wr=dr+T,_r=Wc(vr,c),Mr=gr+g+Hc(wr),Ir=mr+P,Sr=Wc(xr,u),Nr=br+x+Hc(Ir),Er=j*wr,yr=Dc(J,_r),Cr=vt*Mr+2*Hc(Er),Or=G*Ir,Tr=Dc(lt,Sr),Ar=Mt*Nr+2*Hc(Or),Pr=D*A,kr=Dc(nt,s),Br=mt*m+2*Hc(Pr),zr=Er+Or,Fr=Wc(yr,Tr),Yr=Cr+Ar+Hc(zr),Vr=zr+Pr,Lr=Wc(Fr,kr),$r=Yr+Br+Hc(Vr),Xr=I*k,jr=qc(I,f),qr=V*b+Hc(Xr),Dr=N*B,Wr=qc(N,l),Hr=$*w+Hc(Dr),Qr=Xr+Dr,Rr=Wc(jr,Wr),Gr=qr+Hr+Hc(Qr),Ur=Vr+Qr,Zr=Wc(Lr,Rr),Jr=$r+Gr+Hc(Ur),Kr=Ur+z;return{coeffs:[On,ae,pr,Wc(Zr,a)],errBound:[Tn,pe,hr,Jr+_+Hc(Kr)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:w,v_:_}}=$c(t),{coeffs:[[M,I,[,S]],[N,E,[,y]]],errorBound:[[C],[O]]}=uc(n),T=e[1],A=r[1],P=o[1],k=i[1],B=c[1],z=s[1],F=u[1],Y=f[1],V=l[1],L=a[1],$=us(T),X=us(A),j=us(P),q=us(k),D=us(B),W=us(F),H=us(z),Q=us(Y),R=us(V),G=I[1],U=M[1],Z=E[1],J=N[1],K=us(S),tt=us(G),nt=us(U),et=us(y),rt=us(Z),ot=us(J),it=S*S,ct=S*G,st=S*U,ut=S*y,ft=S*Z,lt=S*J,at=G*G,pt=G*U,ht=G*y,dt=G*Z,vt=G*J,gt=U*Z,mt=U*U,xt=U*y,bt=U*J,wt=y*y,_t=y*Z,Mt=y*J,It=Z*Z,St=Z*J,Nt=J*J,Et=rs(S,S),yt=is(S,I),Ct=us(ct),Ot=is(S,M),Tt=K*C+us(st),At=rs(S,y),Pt=is(S,E),kt=us(ft),Bt=is(S,N),zt=K*O+us(lt),Ft=cs(I,I),Yt=2*us(at),Vt=cs(I,M),Lt=tt*C+2*us(pt),$t=is(y,I),Xt=us(ht),jt=cs(I,E),qt=2*us(dt),Dt=cs(I,N),Wt=tt*O+2*us(vt),Ht=cs(M,E),Qt=C*rt+2*us(gt),Rt=cs(M,M),Gt=2*(C*nt+us(mt)),Ut=is(y,M),Zt=et*C+us(xt),Jt=cs(M,N),Kt=C*ot+nt*O+2*us(bt),tn=rs(y,y),nn=is(y,E),en=us(_t),rn=is(y,N),on=et*O+us(Mt),cn=cs(E,E),sn=2*us(It),un=cs(E,N),fn=rt*O+2*us(St),ln=cs(N,N),an=2*(O*ot+us(Nt)),pn=us(it),hn=us(ct),dn=us(ut),vn=us(ft),gn=us(pt),mn=us(mt),xn=us(bt),bn=us(ht),wn=us(wt),_n=us(_t),Mn=us(St),In=us(Nt),Sn=cs(M,e),Nn=U*T,En=C*$+nt*p+2*us(Nn),yn=cs(M,o),Cn=U*P,On=C*j+nt*d+2*us(Cn),Tn=cs(N,r),An=J*A,Pn=O*X+ot*h+2*us(An),kn=cs(N,i),Bn=J*k,zn=O*q+ot*v+2*us(Bn),Fn=Nn+An,Yn=ss(Sn,Tn),Vn=us(Fn),Ln=En+Pn+Vn,$n=Cn+Bn,Xn=ss(yn,kn),jn=us($n),qn=On+zn+jn,Dn=mt*Fn,Wn=cs(Rt,Yn),Hn=Gt*Vn+mn*Ln+2*us(Dn),Qn=Nt*$n,Rn=cs(ln,Xn),Gn=an*jn+In*qn+2*us(Qn),Un=Dn+Qn,Zn=ss(Wn,Rn),Jn=Hn+Gn+us(Un),Kn=st+at,te=ss(Ot,Ft),ne=us(Kn),ee=Tt+Yt+ne,re=Mt+It,oe=ss(rn,cn),ie=us(re),ce=on+sn+ie,se=2*st+at,ue=us(se),fe=ss(os(Ot),Ft),le=2*Tt+Yt+ue,ae=2*Mt+It,pe=ss(os(rn),cn),he=us(ae),de=2*on+sn+he,ve=2*dt+xt,ge=ss(os(jt),Ut),me=us(ve),xe=2*qt+Zt+me,be=2*dt+lt,we=ss(os(jt),Bt),_e=us(be),Me=2*qt+zt+_e,Ie=2*xt+dt,Se=ss(os(Ut),jt),Ne=2*Zt+qt+us(Ie),Ee=6*st+at,ye=6*st,Ce=is(6,Ot),Oe=6*Tt+us(ye),Te=ss(Ce,Ft),Ae=Oe+Yt+us(ye+at),Pe=6*Mt+It,ke=6*Mt,Be=is(6,rn),ze=6*on+us(ke),Fe=ss(Be,cn),Ye=ze+sn+us(ke+It),Ve=vt+gt,Le=ss(Dt,Ht),$e=us(Ve),Xe=Wt+Qt+$e,je=lt+xt,qe=ss(Bt,Ut),De=zt+Zt+us(je),We=2*ht+ft,He=ss(os($t),Pt),Qe=2*Xt+kt+us(We),Re=2*ft+ht,Ge=ss(os(Pt),$t),Ue=2*kt+Xt+us(Re),Ze=lt+dt,Je=ss(Bt,jt),Ke=zt+qt+us(Ze),tr=Ze+xt,nr=ss(Je,Ut),er=us(tr),rr=Ke+Zt+er,or=3*mt,ir=is(3,Rt),cr=3*Gt+us(or),sr=us(or),ur=3*Nt,fr=is(3,ln),lr=3*an+us(ur),ar=us(ur),pr=or*T,hr=cs(ir,e),dr=cr*$+sr*p+2*us(pr),vr=mt*A,gr=cs(Rt,r),mr=Gt*X+mn*h+2*us(vr),xr=2*bt*A,br=os(cs(Jt,r)),wr=2*(Kt*X+xn*h+us(xr)),_r=2*bt*P,Mr=os(cs(Jt,o)),Ir=2*(Kt*j+xn*d+us(_r)),Sr=Nt*P,Nr=cs(ln,o),Er=an*j+In*d+2*us(Sr),yr=ur*k,Cr=cs(fr,i),Or=lr*q+ar*v+2*us(yr),Tr=pr+xr,Ar=ss(hr,br),Pr=dr+wr+us(Tr),kr=vr+_r,Br=ss(gr,Mr),zr=mr+Ir+us(kr),Fr=Tr+Sr,Yr=ss(Ar,Nr),Vr=Pr+Er+us(Fr),Lr=kr+yr,$r=ss(Br,Cr),Xr=zr+Or+us(Lr),jr=G*Fr,qr=cs(I,Yr),Dr=tt*Vr+us(jr),Wr=Z*Lr,Hr=cs(E,$r),Qr=rt*Xr+us(Wr),Rr=jr+Wr,Gr=ss(qr,Hr),Ur=Dr+Qr+us(Rr),Zr=J*se,Jr=cs(N,fe),Kr=O*ue+ot*le+2*us(Zr),to=J*be,no=cs(N,we),eo=O*_e+ot*Me+2*us(to),ro=U*ve,oo=cs(M,ge),io=C*me+nt*xe+2*us(ro),co=U*ae,so=cs(M,pe),uo=C*he+nt*de+2*us(co),fo=3*U,lo=is(3,M),ao=us(fo),po=3*C+ao,ho=fo*Kn,vo=cs(lo,te),go=us(ho),mo=po*ne+ao*ee+go,xo=3*J,bo=is(3,N),wo=us(xo),_o=3*O+wo,Mo=xo*re,Io=cs(bo,oe),So=us(Mo),No=_o*ie+wo*ce+So,Eo=Zr+ro,yo=ss(Jr,oo),Co=us(Eo),Oo=Kr+io+Co,To=to+co,Ao=ss(no,so),Po=us(To),ko=eo+uo+Po,Bo=ho*T,zo=cs(vo,e),Fo=mo*$+go*p+2*us(Bo),Yo=Mo*k,Vo=cs(Io,i),Lo=No*q+So*v+2*us(Yo),$o=Eo*A,Xo=cs(yo,r),jo=Oo*X+Co*h+2*us($o),qo=To*P,Do=cs(Ao,o),Wo=ko*j+Po*d+2*us(qo),Ho=Bo+Yo,Qo=ss(zo,Vo),Ro=Fo+Lo+us(Ho),Go=$o+qo,Uo=ss(Xo,Do),Zo=jo+Wo+us(Go),Jo=mt*B,Ko=cs(Rt,c),ti=Gt*D+mn*g+2*us(Jo),ni=Nt*F,ei=cs(ln,u),ri=an*W+In*x+2*us(ni),oi=bt*z,ii=cs(Jt,s),ci=Kt*H+xn*m+2*us(oi),si=Jo+ni,ui=ss(Ko,ei),fi=ti+ri+us(si),li=Ho+Go,ai=ss(Qo,Uo),pi=Ro+Zo+us(li),hi=si+oi,di=ss(ui,ii),vi=fi+ci+us(hi),gi=li+hi,mi=ss(ai,di),xi=pi+vi+us(gi),bi=G*Ee,wi=cs(I,Te),_i=tt*Ae+2*us(bi),Mi=2*_i,Ii=Z*Pe,Si=cs(E,Fe),Ni=rt*Ye+2*us(Ii),Ei=2*Ni,yi=2*S*Ve,Ci=is(2*S,Le),Oi=2*K*Xe+us(yi),Ti=2*Z*je,Ai=cs(os(E),qe),Pi=2*rt*De+2*us(Ti),ki=G*Ie,Bi=cs(I,Se),zi=tt*Ne+2*us(ki),Fi=G*ae,Yi=cs(I,pe),Vi=tt*de+2*us(Fi),Li=yi+ki,$i=ss(Ci,Bi),Xi=Oi+zi+us(Li),ji=Oi+zi+Xi,qi=Ti+Fi,Di=ss(Ai,Yi),Wi=Pi+Vi+us(qi),Hi=Pi+Vi+Wi,Qi=St*F,Ri=cs(un,u),Gi=fn*W+Mn*x+2*us(Qi),Ui=pt*B,Zi=cs(Vt,c),Ji=Lt*D+gn*g+2*us(Ui),Ki=Ve*z,tc=cs(Le,s),nc=Xe*H+$e*m+2*us(Ki),ec=Qi+Ui,rc=ss(Ri,Zi),oc=Gi+Ji+us(ec),ic=bi*T,cc=cs(wi,e),sc=Mi*$+_i*p+2*us(ic),fc=Li*A,lc=cs($i,r),ac=ji*X+Xi*h+2*us(fc),pc=Ii*k,hc=cs(Si,i),dc=Ei*q+Ni*v+2*us(pc),vc=qi*P,gc=cs(Di,o),mc=Hi*j+Wi*d+2*us(vc),xc=ic+pc,bc=ss(cc,hc),wc=sc+dc+us(xc),_c=fc+vc,Mc=ss(lc,gc),Ic=ac+mc+us(_c),Sc=xc+_c,Nc=ss(bc,Mc),Ec=wc+Ic+us(Sc),yc=2*ec+Ki,Cc=ss(os(rc),tc),Oc=2*oc+nc+us(yc),Tc=Sc+yc,Ac=ss(Nc,Cc),Pc=Ec+Oc+us(Tc),kc=3*S,Bc=us(kc),zc=rs(3,S),Fc=kc*Kn,Yc=cs(zc,te),Vc=us(Fc),Lc=Bc*ee+2*us(Fc),Xc=3*y,jc=us(Xc),qc=rs(3,y),Dc=Xc*re,Wc=cs(qc,oe),Hc=us(Dc),Qc=jc*ce+2*us(Dc),Rc=S*be,Gc=is(S,we),Uc=K*Me+us(Rc),Zc=S*ae,Jc=is(S,pe),Kc=K*de+us(Zc),ts=y*se,ns=is(y,fe),es=et*le+us(ts),fs=y*ve,ls=is(y,ge),as=et*xe+us(fs),ps=Rc+ts,hs=ss(Gc,ns),ds=us(ps),vs=Uc+es+ds,gs=Zc+fs,ms=ss(Jc,ls),xs=us(gs),bs=Kc+as+xs,ws=Fc*T,_s=cs(Yc,e),Ms=Lc*$+Vc*p+2*us(ws),Is=Dc*k,Ss=cs(Wc,i),Ns=Qc*q+Hc*v+2*us(Is),Es=ps*A,ys=cs(hs,r),Cs=vs*X+ds*h+2*us(Es),Os=gs*P,Ts=cs(ms,o),As=bs*j+xs*d+2*us(Os),Ps=se*B,ks=cs(fe,c),Bs=le*D+ue*g+2*us(Ps),zs=ae*F,Fs=cs(pe,u),Ys=de*W+he*x+2*us(zs),Vs=tr*z,Ls=cs(nr,s),$s=rr*H+er*m+2*us(Vs),Xs=U*Y,js=cs(M,f),qs=C*Q+nt*b+2*us(Xs),Ds=J*V,Ws=cs(N,l),Hs=O*R+ot*w+2*us(Ds),Qs=ws+Is,Rs=ss(_s,Ss),Gs=Ms+Ns+us(Qs),Us=Es+Os,Zs=ss(ys,Ts),Js=Cs+As+us(Us),Ks=Ps+zs,tu=ss(ks,Fs),nu=Bs+Ys+us(Ks),eu=Qs+Us,ru=ss(Rs,Zs),ou=Gs+Js+us(eu),iu=Ks+Vs,cu=ss(tu,Ls),su=nu+$s+us(iu),uu=Xs+Ds,fu=ss(js,Ws),lu=qs+Hs+us(uu),au=eu+iu,pu=ss(ru,cu),hu=ou+su+us(au),du=au+uu,vu=ss(pu,fu),gu=hu+lu+us(du),mu=kc*ct,xu=cs(zc,yt),bu=us(mu),wu=Bc*Ct+2*bu,_u=Xc*_t,Mu=cs(qc,nn),Iu=us(_u),Su=jc*en+2*Iu,Nu=S*We,Eu=is(S,He),yu=us(Nu),Cu=K*Qe+us(Nu),Ou=y*Re,Tu=is(y,Ge),Au=us(Ou),Pu=et*Ue+us(Ou),ku=ct*B,Bu=cs(yt,c),zu=Ct*D+hn*g+2*us(ku),Fu=_t*F,Yu=cs(nn,u),Vu=en*W+_n*x+2*us(Fu),Lu=ft*z,$u=cs(Pt,s),Xu=kt*H+vn*m+2*us(Lu),ju=ht*z,qu=cs($t,s),Du=Xt*H+bn*m+2*us(ju),Wu=2*(ku+Fu),Hu=os(ss(Bu,Yu)),Qu=2*(zu+Vu)+us(Wu),Ru=Lu+ju,Gu=ss($u,qu),Uu=Xu+Du+us(Ru),Zu=G*Y,Ju=cs(I,f),Ku=tt*b+2*us(Zu),tf=Z*V,nf=cs(E,l),ef=rt*w+2*us(tf),rf=mu*T,of=cs(xu,e),cf=wu*$+bu*p+2*us(rf),sf=_u*k,uf=cs(Mu,i),ff=Su*q+Iu*v+2*us(sf),lf=Nu*A,af=cs(Eu,r),pf=Cu*X+yu*h+2*us(lf),hf=Ou*P,df=cs(Tu,o),vf=Pu*j+Au*d+2*us(hf),gf=rf+sf,mf=ss(of,uf),xf=cf+ff+us(gf),bf=lf+hf,wf=ss(af,df),_f=pf+vf+us(bf),Mf=gf+bf,If=ss(mf,wf),Sf=xf+_f+us(Mf),Nf=Wu+Ru,Ef=ss(Hu,Gu),yf=Qu+Uu+us(Nf),Cf=Zu+tf,Of=ss(Ju,nf),Tf=Ku+ef+us(Cf),Af=Mf+Nf,Pf=ss(If,Ef),kf=Sf+yf+us(Af),Bf=Af+Cf,zf=ss(Pf,Of),Ff=kf+Tf+us(Bf),Yf=S*T,Vf=is(S,e),Lf=K*p+us(Yf),$f=S*P,Xf=is(S,o),jf=K*d+us($f),qf=y*A,Df=is(y,r),Wf=et*h+us(qf),Hf=y*k,Qf=is(y,i),Rf=et*v+us(Hf),Gf=Yf+qf,Uf=ss(Vf,Df),Zf=Lf+Wf+us(Gf),Jf=$f+Hf,Kf=ss(Xf,Qf),tl=jf+Rf+us(Jf),nl=Gf+B,el=ss(Uf,c),rl=Zf+g+us(nl),ol=Jf+F,il=ss(Kf,u),cl=tl+x+us(ol),sl=it*nl,ul=cs(Et,el),fl=pn*rl+2*us(sl),ll=wt*ol,al=cs(tn,il),pl=wn*cl+2*us(ll),hl=ut*z,dl=cs(At,s),vl=dn*m+2*us(hl),gl=S*Y,ml=is(S,f),xl=K*b+us(gl),bl=y*V,wl=is(y,l),_l=et*w+us(bl),Ml=sl+ll,Il=ss(ul,al),Sl=fl+pl+us(Ml),Nl=Ml+hl,El=ss(Il,dl),yl=Sl+vl+us(Nl),Cl=gl+bl,Ol=ss(ml,wl),Tl=xl+_l+us(Cl),Al=Nl+Cl,Pl=ss(El,Ol),kl=yl+Tl+us(Al),Bl=Al+L;return{coeffs:[Zn,Gr,mi,Ac,vu,zf,ss(Pl,a)],errBound:[Jn,Ur,xi,Pc,gu,Ff,kl+_+us(Bl)]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:w,v_:_}}=$c(t),{coeffs:[[M,I,S,[,N]],[E,y,C,[,O]]],errorBound:[[T,A,P],[k,B,z]]}=sc(n),F=e[1],Y=r[1],V=o[1],L=i[1],$=c[1],X=s[1],j=u[1],q=f[1],D=l[1],W=a[1],H=Ss(F),Q=Ss(Y),R=Ss(V),G=Ss(L),U=Ss($),Z=Ss(X),J=Ss(j),K=Ss(q),tt=Ss(D),nt=(Ss(W),S[1]),et=I[1],rt=M[1],ot=C[1],it=y[1],ct=E[1],st=Ss(N),ut=Ss(nt),ft=Ss(et),lt=Ss(rt),at=Ss(O),pt=Ss(ot),ht=Ss(it),dt=Ss(ct),vt=N*N,gt=N*nt,mt=N*et,xt=N*rt,bt=N*O,wt=N*ot,_t=N*it,Mt=N*ct,It=nt*nt,St=nt*et,Nt=nt*rt,Et=nt*O,yt=nt*ot,Ct=nt*it,Ot=nt*ct,Tt=et*ot,At=et*et,Pt=et*rt,kt=et*O,Bt=et*it,zt=et*ct,Ft=rt*rt,Yt=rt*O,Vt=rt*ot,Lt=rt*it,$t=rt*ct,Xt=O*O,jt=O*ot,qt=O*it,Dt=O*ct,Wt=ot*ot,Ht=ot*it,Qt=ct*ct,Rt=it*it,Gt=it*ct,Ut=ot*ct,Zt=bs(N,N),Jt=_s(N,S),Kt=st*P+Ss(gt),tn=_s(N,I),nn=st*A+Ss(mt),en=_s(N,M),rn=st*T+Ss(xt),on=bs(N,O),cn=_s(N,C),sn=st*z+Ss(wt),un=_s(N,y),fn=st*B+Ss(_t),ln=_s(N,E),an=st*k+Ss(Mt),pn=Ms(S,S),hn=Ss(It),dn=2*(P*ut+hn),vn=Ms(S,I),gn=P*ft+ut*A+2*Ss(St),mn=Ms(S,M),xn=P*lt+ut*T+2*Ss(Nt),bn=_s(O,S),wn=at*P+Ss(Et),_n=Ms(S,C),Mn=P*pt+ut*z+2*Ss(yt),In=Ms(S,y),Sn=P*ht+ut*B+2*Ss(Ct),Nn=Ms(S,E),En=P*dt+ut*k+2*Ss(Ot),yn=Ms(I,C),Cn=A*pt+ft*z+2*Ss(Tt),On=Ms(I,I),Tn=Ss(At),An=2*(A*ft+Tn),Pn=Ms(I,M),kn=A*lt+ft*T+2*Ss(Pt),Bn=_s(O,I),zn=at*A+Ss(kt),Fn=Ms(I,y),Yn=A*ht+ft*B+2*Ss(Bt),Vn=Ms(I,E),Ln=A*dt+ft*k+2*Ss(zt),$n=Ms(M,M),Xn=2*(T*lt+Ft),jn=_s(O,M),qn=at*T+Ss(Yt),Dn=Ms(M,C),Wn=T*pt+lt*z+2*Ss(Vt),Hn=Ms(M,y),Qn=Ss(Lt),Rn=T*ht+lt*B+2*Qn,Gn=Ms(M,E),Un=T*dt+lt*k+2*Ss($t),Zn=bs(O,O),Jn=_s(O,C),Kn=at*z+Ss(jt),te=_s(O,y),ne=at*B+Ss(qt),ee=_s(O,E),re=at*k+Ss(Dt),oe=Ms(C,C),ie=Ss(Wt),ce=2*(z*pt+ie),se=Ms(C,y),ue=z*ht+pt*B+2*Ss(Ht),fe=Ms(E,E),le=2*(k*dt+Ss(Qt)),ae=Ms(y,y),pe=Ss(Rt),he=2*(B*ht+pe),de=Ms(y,E),ve=B*dt+ht*k+2*Ss(Gt),ge=Ms(C,E),me=Ss(Ut),xe=z*dt+pt*k+2*me,be=Ss(vt),we=Ss(gt),_e=Ss(Pt),Me=Ss(Ft),Ie=Ss($t),Se=Ss(bt),Ne=Ss(Xt),Ee=Ss(jt),ye=Ss(Gt),Ce=Ss(Qt),Oe=rt*Ft,Te=Ms(M,$n),Ae=lt*Me,Pe=T*Me+lt*Xn+2*Ae,ke=rt*Qt,Be=Ms(M,fe),ze=lt*Ce,Fe=T*Ce+lt*le+2*ze,Ye=ct*Ft,Ve=Ms(E,$n),Le=dt*Me,$e=k*Me+dt*Xn+2*Le,Xe=ct*Qt,je=Ms(E,fe),qe=dt*Ce,De=k*Ce+dt*le+2*qe,We=Oe*F,He=Ms(Te,e),Qe=Pe*H+Ae*p+2*Ss(We),Re=ke*V,Ge=Ms(Be,o),Ue=Fe*R+ze*d+2*Ss(Re),Ze=Ye*Y,Je=Ms(Ve,r),Ke=$e*Q+Le*h+2*Ss(Ze),tr=Xe*L,nr=Ms(je,i),er=De*G+qe*v+2*Ss(tr),rr=We+Re,or=Is(He,Ge),ir=Qe+Ue+Ss(rr),cr=Ze+tr,sr=Is(Je,nr),ur=Ke+er+Ss(cr),fr=rr+cr,lr=Is(or,sr),ar=ir+ur+Ss(fr),pr=2*zt+Lt,hr=Ss(pr),dr=Is(ws(Vn),Hn),vr=2*Ln+Rn+hr,gr=2*Lt+zt,mr=Ss(gr),xr=Is(ws(Hn),Vn),br=2*Rn+Ln+Ss(gr),wr=rt*pr,_r=Ss(wr),Mr=Ms(M,dr),Ir=T*hr+lt*vr+2*_r,Sr=ct*gr,Nr=Ss(Sr),Er=Ms(E,xr),yr=k*mr+dt*br+2*Nr,Cr=et*Ft,Or=Ss(Cr),Tr=Ms(I,$n),Ar=A*Me+ft*Xn+2*Or,Pr=it*Qt,kr=Ss(Pr),Br=Ms(y,fe),zr=B*Ce+ht*le+2*kr,Fr=F*Cr,Yr=Ms(e,Tr),Vr=Ar*H+H*Ar+2*Ss(Fr),Lr=L*Pr,$r=Ms(i,Br),Xr=zr*G+G*zr+2*Ss(Lr),jr=Y*wr,qr=Ms(r,Mr),Dr=Ir*Q+Q*Ir+2*Ss(jr),Wr=V*Sr,Hr=Ms(o,Er),Qr=yr*R+R*yr+2*Ss(Wr),Rr=jr+Wr,Gr=Is(qr,Hr),Ur=Dr+Qr+Ss(Rr),Zr=3*(Fr+Lr),Jr=_s(3,Is(Yr,$r)),Kr=3*(Vr+Xr)+2*Ss(Zr),to=Rr+Zr,no=Is(Gr,Jr),eo=Ur+Kr+Ss(to),ro=nt*$t,oo=Ms(S,Gn),io=P*Ie+ut*Un+2*Ss(ro),co=ot*Ft,so=Ms(C,$n),uo=z*Me+pt*Xn+2*Ss(co),fo=et*Gt,lo=Ms(I,de),ao=A*ye+ft*ve+2*Ss(fo),po=nt*Qt,ho=Ms(S,fe),vo=P*Ce+ut*le+2*Ss(po),go=et*Lt,mo=Ms(I,Hn),xo=A*Qn+ft*Rn+2*Ss(go),bo=ct*At,wo=Ms(E,On),_o=k*Tn+dt*An+2*Ss(bo),Mo=rt*Ut,Io=Ms(M,ge),So=T*me+lt*xe+2*Ss(Mo),No=it*Lt,Eo=Ms(y,Hn),yo=B*Qn+ht*Rn+2*Ss(No),Co=ro+go,Oo=Is(oo,mo),To=io+xo+Ss(Co),Ao=co+bo,Po=Is(so,wo),ko=uo+_o+Ss(Ao),Bo=fo+Mo,zo=Is(lo,Io),Fo=ao+So+Ss(Bo),Yo=po+No,Vo=Is(ho,Eo),Lo=vo+yo+Ss(Yo),$o=Nt+At,Xo=Is(mn,On),jo=Ss($o),qo=xn+An+jo,Do=Ut+Rt,Wo=Ss(Do),Ho=Is(ge,ae),Qo=xe+he+Wo,Ro=2*Co+Ao,Go=Is(ws(Oo),Po),Uo=Ss(Ro),Zo=2*To+ko+Uo,Jo=2*Bo+Yo,Ko=Is(ws(zo),Vo),ti=Ss(Jo),ni=2*Fo+Lo+ti,ei=Y*Ro,ri=Ms(r,Go),oi=h*Uo+Q*Zo+2*Ss(ei),ii=V*Jo,ci=Ms(o,Ko),si=d*ti+R*ni+2*Ss(ii),ui=rt*$o,fi=Ms(M,Xo),li=Ss(ui),ai=T*jo+lt*qo+2*li,pi=ct*Do,hi=Ms(E,Ho),di=Ss(pi),vi=k*Wo+dt*Qo+2*di,gi=F*ui,mi=Ms(e,fi),xi=p*li+H*ai+2*Ss(gi),bi=L*pi,wi=Ms(i,hi),_i=v*di+G*vi+2*Ss(bi),Mi=ei+ii,Ii=Is(ri,ci),Si=oi+si+Ss(Mi),Ni=3*(gi+bi),Ei=_s(3,Is(mi,wi)),yi=3*(xi+_i)+2*Ss(Ni),Ci=Mi+Ni,Oi=Is(Ii,Ei),Ti=Si+yi+Ss(Ci),Ai=zt+Lt,Pi=Is(Vn,Hn),ki=Ss(Ai),Bi=Ln+Rn+ki,zi=it*At,Fi=Ms(y,On),Yi=B*Tn+ht*An+2*Ss(zi),Vi=2*nt*Ai,Li=ws(Ms(S,Pi)),$i=2*(P*ki+ut*Bi+2*Ss(Vi)),Xi=zi+Vi,ji=Is(Fi,Li),qi=Yi+$i+Ss(Xi),Di=2*(Mt+Tt),Wi=ws(Is(ln,yn)),Hi=2*(an+Cn)+Ss(Di),Qi=Di+Yt,Ri=Ss(Qi),Gi=Is(Wi,jn),Ui=Hi+qn+Ri,Zi=rt*Qi,Ji=Ms(M,Gi),Ki=T*Ri+lt*Ui+2*Ss(Zi),tc=Xi+Zi,nc=Is(ji,Ji),ec=Ss(tc),rc=qi+Ki+ec,oc=et*Rt,ic=Ms(I,ae),cc=A*pe+ft*he+2*Ss(oc),uc=2*ot*Ai,fc=ws(Ms(C,Pi)),lc=2*(z*ki+pt*Bi+Ss(uc)),ac=oc+uc,pc=Is(ic,fc),hc=cc+lc+Ss(ac),dc=2*(Ct+Yt),vc=ws(Is(In,jn)),gc=2*(Sn+qn)+Ss(dc),mc=dc+Mt,xc=Is(vc,ln),bc=Ss(mc),wc=gc+an+bc,_c=ct*mc,Mc=Ms(E,xc),Ic=k*bc+dt*wc+2*Ss(_c),Sc=ac+_c,Nc=Is(pc,Mc),Ec=Ss(Sc),yc=hc+Ic+Ec,Cc=et*At,Oc=Ms(I,On),Tc=A*Tn+ft*An+2*Ss(Cc),Ac=2*St+xt,Pc=Is(ws(vn),en),kc=Ss(Ac),Bc=2*gn+rn+kc,zc=3*rt,Fc=_s(3,M),Yc=Ss(zc),Vc=3*T+Yc,Lc=zc*Ac,Xc=Ms(Fc,Pc),jc=Vc*kc+Yc*Bc+2*Ss(Lc),qc=Cc+Lc,Dc=Is(Oc,Xc),Wc=Ss(qc),Hc=Tc+jc+Wc,Qc=it*Rt,Rc=Ms(y,ae),Gc=B*pe+ht*he+2*Ss(Qc),Uc=2*Ht+Dt,Zc=Is(ws(se),ee),Jc=Ss(Uc),Kc=2*ue+re+Jc,ts=3*ct,ns=_s(3,E),es=Ss(ts),rs=3*k+es,os=ts*Uc,is=Ms(ns,Zc),cs=rs*Jc+es*Kc+2*Ss(os),ss=Qc+os,us=Is(Rc,is),fs=Ss(ss),ls=Gc+cs+fs,as=Y*tc,ps=Ms(r,nc),hs=h*ec+Q*rc+2*Ss(as),ds=V*Sc,vs=Ms(o,Nc),gs=d*Ec+R*yc+2*Ss(ds),ms=as+ds,xs=Is(ps,vs),Ns=hs+gs+Ss(ms),Es=F*qc,ys=Ms(e,Dc),Cs=p*Wc+H*Hc+2*Ss(Es),Os=L*ss,Ts=Ms(i,us),As=v*fs+G*ls+2*Ss(Os),Ps=Es+Os,ks=Is(ys,Ts),Bs=Cs+As+Ss(Ps),zs=$*Ft,Fs=Ms($n,c),Ys=Xn*U+Me*g+2*Ss(zs),Vs=j*Qt,Ls=Ms(fe,u),$s=le*J+Ce*x+2*Ss(Vs),Xs=zs+Vs,js=Is(Fs,Ls),qs=Ys+$s+Ss(Xs),Ds=X*$t,Ws=Ms(Gn,s),Hs=Un*Z+Ie*m+2*Ss(Ds),Qs=ms+Ps,Rs=Is(xs,ks),Gs=Ns+Bs+Ss(Qs),Us=Xs+Ds,Zs=Is(js,Ws),Js=qs+Hs+Ss(Us),Ks=Qs+Us,tu=Is(Rs,Zs),nu=Gs+Js+Ss(Ks),eu=Bt+Vt,ru=Is(Fn,Dn),ou=Ss(eu),iu=Yn+Wn+ou,cu=Ot+Bt,su=Is(Nn,Fn),uu=Ss(cu),fu=En+Yn+uu,lu=N*Ai,au=_s(N,Pi),pu=st*Bi+Ss(lu),hu=O*Ai,du=_s(O,Pi),vu=at*Bi+Ss(hu),gu=nt*eu,mu=Ms(S,ru),xu=P*ou+ut*iu+2*Ss(gu),bu=ot*cu,wu=Ms(C,su),_u=z*uu+pt*fu+2*Ss(bu),Mu=2*Yt+Tt,Iu=Is(ws(jn),yn),Su=Ss(Mu),Nu=2*qn+Cn+Su,Eu=2*Mt+Ct,yu=Is(ws(ln),In),Cu=Ss(Eu),Ou=2*an+Sn+Cu,Tu=ct*It,Au=Ms(E,pn),Pu=k*hn+dt*dn+2*Ss(Tu),ku=rt*Wt,Bu=Ms(M,oe),zu=T*ie+lt*ce+2*Ss(ku),Fu=et*Mu,Yu=Ms(I,Iu),Vu=A*Su+ft*Nu+2*Ss(Fu),Lu=it*Eu,$u=Ms(y,yu),Xu=B*Cu+ht*Ou+2*Ss(Lu),ju=2*(lu+gu),qu=ws(Is(au,mu)),Du=2*(pu+xu)+Ss(ju),Wu=2*(hu+bu),Hu=ws(Is(du,wu)),Qu=2*(vu+_u)+Ss(Wu),Ru=2*N*Pt,Gu=ws(_s(N,Pn)),Uu=2*st*kn+Ss(Ru),Zu=2*O*Gt,Ju=ws(_s(O,de)),Ku=2*at*ve+Ss(Zu),tf=nt*$o,nf=Ms(S,Xo),ef=P*jo+ut*qo+2*Ss(tf),rf=ot*Do,of=Ms(C,Ho),cf=z*Wo+pt*Qo+2*Ss(rf),sf=$*Pt,uf=Ms(Pn,c),ff=kn*U+_e*g+2*Ss(sf),lf=j*Gt,af=Ms(de,u),pf=ve*J+ye*x+2*Ss(lf),hf=ju+Tu,df=Is(qu,Au),vf=Ss(hf),gf=Du+Pu+vf,mf=Wu+ku,xf=Is(Hu,Bu),bf=Ss(mf),wf=Qu+zu+bf,_f=hf+Fu,Mf=Is(df,Yu),If=Ss(_f),Sf=gf+Vu+If,Nf=mf+Lu,Ef=Is(xf,$u),yf=Ss(Nf),Cf=wf+Xu+yf,Of=Ru+tf,Tf=Is(Gu,nf),Af=Ss(Of),Pf=Uu+ef+Af,kf=Zu+rf,Bf=Is(Ju,of),zf=Ss(kf),Ff=Ku+cf+zf,Yf=2*(sf+lf),Vf=ws(Is(uf,af)),Lf=2*(ff+pf)+Ss(Yf),$f=Y*_f,Xf=Ms(r,Mf),jf=h*If+Q*Sf+2*Ss($f),qf=V*Nf,Df=Ms(o,Ef),Wf=d*yf+R*Cf+2*Ss(qf),Hf=F*Of,Qf=Ms(e,Tf),Rf=p*Af+H*Pf+2*Ss(Hf),Gf=L*kf,Uf=Ms(i,Bf),Zf=v*zf+G*Ff+2*Ss(Gf),Jf=$f+qf,Kf=Is(Xf,Df),tl=jf+Wf+Ss(Jf),nl=3*(Hf+Gf),el=_s(3,Is(Qf,Uf)),rl=3*(Rf+Zf)+2*Ss(nl),ol=X*Ai,il=Ms(s,Pi),cl=m*ki+Z*Bi+2*Ss(ol),sl=Jf+nl,ul=Is(Kf,el),fl=tl+rl+Ss(sl),ll=ol+Yf,al=Is(il,Vf),pl=cl+Lf+Ss(ll),hl=sl+ll,dl=Is(ul,al),vl=fl+pl+Ss(hl),gl=Ot+eu,ml=Is(Nn,ru),xl=Ss(gl),bl=En+iu+xl,wl=2*Nt+At,_l=Is(ws(mn),On),Ml=Ss(wl),Il=2*xn+An+Ml,Sl=2*Ut+Rt,Nl=Is(ws(ge),ae),El=Ss(Sl),yl=2*xe+he+El,Cl=2*N*gl,Ol=_s(2*N,ml),Tl=2*st*bl+Ss(Cl),Al=2*O*gl,Pl=_s(2*O,ml),kl=2*at*bl+Ss(Al),Bl=Ct+2*Tt,zl=Is(In,ws(yn)),Fl=Ss(Bl),Yl=Sn+2*Cn+Fl,Vl=Tt+2*Ct,Ll=Is(yn,ws(In)),$l=Ss(Vl),Xl=Cn+2*Sn+$l,jl=O*wl,ql=_s(O,_l),Dl=at*Il+Ss(jl),Wl=N*Sl,Hl=_s(N,Nl),Ql=st*yl+Ss(Wl),Rl=nt*Bl,Gl=Ms(S,zl),Ul=P*Fl+ut*Yl+2*Ss(Rl),Zl=ot*Vl,Jl=Ms(C,Ll),Kl=z*$l+pt*Xl+2*Ss(Zl),ta=N*wl,na=_s(N,_l),ea=st*Il+Ss(ta),ra=O*Sl,oa=_s(O,Nl),ia=at*yl+Ss(ra),ca=et*It,sa=Ms(I,pn),ua=A*hn+ft*dn+2*Ss(ca),fa=it*Wt,la=Ms(y,oe),aa=B*ie+ht*ce+2*Ss(fa),pa=Cl+jl,ha=Is(Ol,ql),da=Tl+Dl+Ss(pa),va=Al+Wl,ga=Is(Pl,Hl),ma=kl+Ql+Ss(va),xa=pa+Rl,ba=Is(ha,Gl),wa=Ss(xa),_a=da+Ul+wa,Ma=va+Zl,Ia=Is(ga,Jl),Sa=Ss(Ma),Na=ma+Kl+Sa,Ea=ta+ca,ya=Is(na,sa),Ca=Ss(Ea),Oa=ea+ua+Ca,Ta=ra+fa,Aa=Is(oa,la),Pa=Ss(Ta),ka=ia+aa+Pa,Ba=Y*xa,za=Ms(r,ba),Fa=h*wa+Q*_a+2*Ss(Ba),Ya=V*Ma,Va=Ms(o,Ia),La=d*Sa+R*Na+2*Ss(Ya),$a=F*Ea,Xa=Ms(e,ya),ja=p*Ca+H*Oa+2*Ss($a),qa=L*Ta,Da=Ms(i,Aa),Wa=v*Pa+G*ka+2*Ss(qa),Ha=$a+qa,Qa=Ss(Ha),Ra=Is(Xa,Da),Ga=ja+Wa+Qa,Ua=Ba+Ya,Za=Is(za,Va),Ja=Fa+La+Ss(Ua),Ka=Ua+3*Ha,tp=Is(Za,_s(3,Ra)),np=Ja+3*(Ga+Qa)+Ss(Ka),ep=X*gl,rp=Ms(s,ml),op=m*xl+Z*bl+2*Ss(ep),ip=$*wl,cp=Ms(c,_l),sp=g*Ml+U*Il+2*Ss(ip),up=ep+ip,fp=Is(rp,cp),lp=op+sp+Ss(up),ap=j*Sl,pp=Ms(u,Nl),hp=x*El+J*yl+2*Ss(ap),dp=up+ap,vp=Is(fp,pp),gp=lp+hp+Ss(dp),mp=Ka+dp,xp=Is(tp,vp),bp=np+gp+Ss(mp),wp=Ct+Tt,_p=Is(In,yn),Mp=Sn+Cn+Ss(wp),Ip=Yt+Mt,Sp=Is(jn,ln),Np=qn+an+Ss(Ip),Ep=St+xt,yp=Is(vn,en),Cp=gn+rn+Ss(Ep),Op=Ss(Ep),Tp=Ht+Dt,Ap=Is(se,ee),Pp=ue+re+Ss(Tp),kp=Ss(Tp),Bp=2*wp+Yt,zp=Is(ws(_p),jn),Fp=2*Mp+qn+Ss(Bp),Yp=2*wp+Mt,Vp=Is(ws(_p),ln),Lp=2*Mp+an+Ss(Yp),$p=2*kt+yt,Xp=Is(ws(Bn),_n),jp=Ss($p),qp=2*zn+Mn+jp,Dp=2*_t+yt,Wp=Is(ws(un),_n),Hp=Ss(Dp),Qp=2*fn+Mn+Hp,Rp=Ep+St,Gp=Is(yp,vn),Up=Cp+gn+Ss(Rp),Zp=Tp+Ht,Jp=Is(Ap,se),Kp=Pp+ue+Ss(Zp),th=3*N,nh=bs(3,N),eh=th*Rp,rh=Ms(nh,Gp),oh=Ss(th)*Up+2*Ss(eh),ih=3*O,ch=bs(3,O),sh=ih*Zp,uh=Ms(ch,Jp),fh=Ss(ih)*Kp+2*Ss(sh),lh=nt*It,ah=Ms(S,pn),ph=P*hn+ut*dn+2*Ss(lh),hh=ot*Wt,dh=Ms(C,oe),vh=z*ie+pt*ce+2*Ss(hh),gh=$*Ep,mh=Ms(c,yp),xh=g*Op+U*Cp+Ss(gh),bh=j*Tp,wh=Ms(u,Ap),_h=x*kp+J*Pp+Ss(bh),Mh=Bp+Ip,Ih=Is(zp,Sp),Sh=Fp+Np+Ss(Mh),Nh=Yp+Ip,Eh=Is(Vp,Sp),yh=Lp+Np+Ss(Nh),Ch=N*Mh,Oh=_s(N,Ih),Th=st*Sh+Ss(Ch),Ah=O*Nh,Ph=_s(O,Eh),kh=at*yh+Ss(Ah),Bh=nt*$p,zh=Ms(S,Xp),Fh=P*jp+ut*qp+2*Ss(Bh),Yh=ot*Dp,Vh=Ms(C,Wp),Lh=z*Hp+pt*Qp+2*Ss(Yh),$h=rt*q,Xh=Ms(M,f),jh=T*K+lt*b+2*Ss($h),qh=ct*D,Dh=Ms(E,l),Wh=k*tt+dt*w+2*Ss(qh),Hh=Ch+Bh,Qh=Is(Oh,zh),Rh=Ss(Hh),Gh=Th+Fh+Rh,Uh=Ah+Yh,Zh=Is(Ph,Vh),Jh=Ss(Uh),Kh=kh+Lh+Jh,td=eh+lh,nd=Is(rh,ah),ed=Ss(td),rd=oh+ph+ed,od=sh+hh,id=Is(uh,dh),cd=Ss(od),sd=fh+vh+cd,ud=Ip+wp,fd=Is(Sp,_p),ld=Ss(ud),ad=Np+Mp+ld,pd=2*(gh+bh),hd=ws(Is(mh,wh)),dd=2*(xh+_h)+Ss(pd),vd=Y*Hh,gd=Ms(r,Qh),md=h*Rh+Q*Gh+2*Ss(vd),xd=V*Uh,bd=Ms(o,Zh),wd=d*Jh+R*Kh+2*Ss(xd),_d=F*td,Md=Ms(e,nd),Id=p*ed+H*rd+2*Ss(_d),Sd=L*od,Nd=Ms(i,id),Ed=v*cd+G*sd+2*Ss(Sd),yd=X*ud,Cd=Ms(s,fd),Od=m*ld+Z*ad+2*Ss(yd),Td=vd+xd,Ad=Is(gd,bd),Pd=md+wd+Ss(Td),kd=_d+Sd,Bd=Is(Md,Nd),zd=Id+Ed+Ss(kd),Fd=yd+pd,Yd=Is(Cd,hd),Vd=Od+dd+Ss(Fd),Ld=$h+qh,$d=Is(Xh,Dh),Xd=jh+Wh+Ss(Ld),jd=Td+kd,qd=Is(Ad,Bd),Dd=Pd+zd+Ss(jd),Wd=Fd+Ld,Hd=Is(Yd,$d),Qd=Vd+Xd+Ss(Wd),Rd=jd+Wd,Gd=Is(qd,Hd),Ud=Dd+Qd+Ss(Rd),Zd=yt+kt,Jd=Is(_n,Bn),Kd=Mn+zn+Ss(Zd),tv=yt+_t,nv=Is(_n,un),ev=Mn+fn+Ss(tv),rv=2*Zd+_t,ov=Is(ws(Jd),un),iv=2*Kd+fn+Ss(rv),cv=2*tv+kt,sv=Is(ws(nv),Bn),uv=2*ev+zn+Ss(cv),fv=N*rv,lv=_s(N,ov),av=st*iv+Ss(fv),pv=O*It,hv=_s(O,pn),dv=at*dn+Ss(pv),vv=O*cv,gv=_s(O,sv),mv=at*uv+Ss(vv),xv=N*Wt,bv=_s(N,oe),wv=st*ce+Ss(xv),_v=N*It,Mv=_s(N,pn),Iv=st*dn+Ss(_v),Sv=et*vt,Nv=Ms(I,Zt),Ev=A*be+2*Ss(Sv),yv=O*Wt,Cv=_s(O,oe),Ov=at*ce+Ss(yv),Tv=it*Xt,Av=Ms(y,Zn),Pv=B*Ne+2*Ss(Tv),kv=fv+pv,Bv=Is(lv,hv),zv=Ss(kv),Fv=av+dv+zv,Yv=vv+xv,Vv=Is(gv,bv),Lv=Ss(Yv),$v=mv+wv+Lv,Xv=_v+Sv,jv=Is(Mv,Nv),qv=Ss(Xv),Dv=Iv+Ev+qv,Wv=yv+Tv,Hv=Is(Cv,Av),Qv=Ss(Wv),Rv=Ov+Pv+Qv,Gv=F*Xv,Uv=Ms(e,jv),Zv=p*qv+H*Dv+2*Ss(Gv),Jv=L*Wv,Kv=Ms(i,Hv),tg=v*Qv+G*Rv+2*Ss(Jv),ng=3*(Gv+Jv),eg=_s(3,Is(Uv,Kv)),rg=3*(Zv+tg)+2*Ss(ng),og=Zd+_t,ig=Is(Jd,un),cg=Ss(og),sg=Kd+fn+cg,ug=2*mt+It,fg=Is(ws(tn),pn),lg=Ss(ug),ag=2*nn+dn+lg,pg=2*qt+Wt,hg=Is(ws(te),oe),dg=Ss(pg),vg=2*ne+ce+dg,gg=Y*kv,mg=Ms(r,Bv),xg=h*zv+Q*Fv+2*Ss(gg),bg=V*Yv,wg=Ms(o,Vv),_g=d*Lv+R*$v+2*Ss(bg),Mg=X*og,Ig=Ms(s,ig),Sg=m*cg+Z*sg+2*Ss(Mg),Ng=$*ug,Eg=Ms(c,fg),yg=g*lg+U*ag+2*Ss(Ng),Cg=j*pg,Og=Ms(u,hg),Tg=x*dg+J*vg+2*Ss(Cg),Ag=et*q,Pg=Ms(I,f),kg=A*K+ft*b+Ss(Ag),Bg=it*D,zg=Ms(y,l),Fg=B*tt+ht*w+Ss(Bg),Yg=Ag+Bg,Vg=Is(Pg,zg),Lg=kg+Fg+Ss(Yg),$g=gg+bg,Xg=Is(mg,wg),jg=xg+_g+Ss($g),qg=ng+Mg,Dg=Is(eg,Ig),Wg=rg+Sg+Ss(qg),Hg=Ng+Cg,Qg=Is(Eg,Og),Rg=yg+Tg+Ss(Hg),Gg=$g+qg,Ug=Is(Xg,Dg),Zg=jg+Wg+Ss(Gg),Jg=Hg+Yg,Kg=Is(Qg,Vg),tm=Rg+Lg+Ss(Jg),nm=Gg+Jg,em=Is(Ug,Kg),rm=Zg+tm+Ss(nm),om=Et+wt,im=Is(bn,cn),cm=Ss(om),sm=wn+sn+cm,um=N*Y,fm=_s(N,r),lm=Ss(um),am=st*h+lm,pm=O*V,hm=_s(O,o),dm=Ss(pm),vm=at*d+dm,gm=om+Et,mm=Is(im,bn),xm=Ss(gm),bm=sm+wn+xm,wm=om+wt,_m=Is(im,cn),Mm=Ss(wm),Im=sm+sn+Mm,Sm=nt*vt,Nm=Ms(S,Zt),Em=Ss(Sm),ym=P*be+2*Em,Cm=Sm*F,Om=Ms(Nm,e),Tm=ym*H+Em*p+2*Ss(Cm),Am=ot*Xt,Pm=Ms(C,Zn),km=Ss(Am),Bm=z*Ne+2*km,zm=Am*L,Fm=Ms(Pm,i),Ym=Bm*G+km*v+2*Ss(zm),Vm=X*om,Lm=Ms(s,im),$m=m*cm+Z*sm+2*Ss(Vm),Xm=gt*$,jm=Ms(Jt,c),qm=Kt*U+we*g+2*Ss(Xm),Dm=jt*j,Wm=Ms(Jn,u),Hm=Kn*J+Ee*x+2*Ss(Dm),Qm=Xm+Dm,Rm=Is(jm,Wm),Gm=qm+Hm+Ss(Qm),Um=nt*q,Zm=Ms(S,f),Jm=P*K+ut*b+Ss(Um),Km=ot*D,tx=Ms(C,l),nx=z*tt+pt*w+Ss(Km),ex=Um+Km,rx=Is(Zm,tx),ox=Jm+nx+Ss(ex),ix=um*gm,cx=Ms(fm,mm),sx=am*xm+lm*bm+2*Ss(ix),ux=pm*wm,fx=Ms(hm,_m),lx=vm*Mm+dm*Im+2*Ss(ux),ax=ix+ux,px=Is(cx,fx),hx=sx+lx+Ss(ax),dx=3*(Cm+zm),vx=_s(3,Is(Om,Fm)),gx=3*(Tm+Ym)+2*Ss(dx),mx=Vm+2*Qm,xx=Is(Lm,ws(Rm)),bx=$m+2*Gm+Ss(mx),wx=ax+dx,_x=Is(px,vx),Mx=hx+gx+Ss(wx),Ix=mx+ex,Sx=Is(xx,rx),Nx=bx+ox+Ss(Ix),Ex=wx+Ix,yx=Is(_x,Sx),Cx=Mx+Nx+Ss(Ex),Ox=N*F,Tx=_s(N,e),Ax=st*p+Ss(Ox),Px=O*Y,kx=_s(O,r),Bx=at*h+Ss(Px),zx=Ox+Px,Fx=Is(Tx,kx),Yx=Ax+Bx+Ss(zx),Vx=N*V,Lx=_s(N,o),$x=st*d+Ss(Vx),Xx=O*L,jx=_s(O,i),qx=at*v+Ss(Xx),Dx=Vx+Xx,Wx=Is(Lx,jx),Hx=$x+qx+Ss(Dx),Qx=zx+$,Rx=Is(Fx,c),Gx=Yx+g+Ss(Qx),Ux=Dx+j,Zx=Is(Wx,u),Jx=Hx+x+Ss(Ux),Kx=vt*Qx,tb=Ms(Zt,Rx),nb=be*Gx+2*Ss(Kx),eb=Xt*Ux,rb=Ms(Zn,Zx),ob=Ne*Jx+2*Ss(eb),ib=Kx+eb,cb=Is(tb,rb),sb=nb+ob+Ss(ib),ub=bt*X,fb=Ms(on,s),lb=Se*m+Ss(ub),ab=ib+ub,pb=Is(cb,fb),hb=sb+lb+Ss(ab),db=N*q,vb=_s(N,f),gb=st*b+Ss(db),mb=O*D,xb=_s(O,l),bb=at*w+Ss(mb),wb=db+mb,_b=Is(vb,xb),Mb=gb+bb+Ss(wb),Ib=ab+wb,Sb=Is(pb,_b),Nb=hb+Mb+Ss(Ib),Eb=Ib+W;return{coeffs:[lr,no,Oi,tu,dl,xp,Gd,em,yx,Is(Sb,a)],errBound:[ar,eo,Ti,nu,vl,bp,Ud,rm,Cx,Nb+_+Ss(Eb)]}}]],$u=[[As,au,yu],[qs,mu,ku],[su,Iu,function(t,n){const e=Nt(t);if(0===j(e[0][0])&&0===j(e[1][0]))return ku(Rs(t),n);const[[r,o,i,[c]],[s,u,f,[l]]]=Nt(n);if(0===j(r)&&0===j(s))return Iu(t,Rs(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:x,vᵧ:b,v:w}=nu(e),_=Bu(c,c),M=zu(c,i),I=zu(c,o),S=zu(c,r),N=Bu(c,l),E=zu(c,f),y=zu(c,u),C=zu(c,s),O=Fu(i,i),T=Fu(i,o),A=Fu(i,r),P=zu(l,i),k=Fu(i,f),B=Fu(i,u),z=Fu(i,s),F=Fu(o,f),Y=Fu(o,o),V=Fu(o,r),L=zu(l,o),$=Fu(o,u),X=Fu(o,s),q=Fu(r,r),D=zu(l,r),W=Fu(r,f),H=Fu(r,u),Q=Fu(r,s),R=Bu(l,l),G=zu(l,f),U=zu(l,u),Z=zu(l,s),J=Fu(f,f),K=Fu(f,u),tt=Fu(s,s),nt=Fu(u,u),et=Fu(u,s),rt=Fu(f,s),ot=Fu(r,q),it=Fu(r,tt),ct=Fu(s,q),st=Fu(s,tt),ut=Fu(ot,a),lt=Fu(it,h),at=Fu(ct,p),pt=Fu(st,d),ht=Yu(ut,lt),dt=Yu(at,pt),vt=Yu(ht,dt),gt=Yu(Vu(X),H),mt=Yu(Vu(H),X),xt=Fu(r,gt),bt=Fu(s,mt),wt=Fu(o,q),_t=Fu(u,tt),Mt=Fu(a,wt),It=Fu(d,_t),St=Fu(p,xt),Et=Fu(h,bt),yt=Yu(St,Et),Ct=zu(3,Yu(Mt,It)),Ot=Yu(yt,Ct),Tt=Fu(i,Q),At=Fu(f,q),Pt=Fu(o,et),kt=Fu(i,tt),Bt=Fu(o,H),zt=Fu(s,Y),Ft=Fu(r,rt),Yt=Fu(u,H),Vt=Yu(Tt,Bt),Lt=Yu(At,zt),$t=Yu(Pt,Ft),Xt=Yu(kt,Yt),jt=Yu(A,Y),qt=Yu(rt,nt),Dt=Yu(Vu(Vt),Lt),Wt=Yu(Vu($t),Xt),Ht=Fu(p,Dt),Qt=Fu(h,Wt),Rt=Fu(r,jt),Gt=Fu(s,qt),Ut=Fu(a,Rt),Zt=Fu(d,Gt),Jt=Yu(Ht,Qt),Kt=zu(3,Yu(Ut,Zt)),tn=Yu(Jt,Kt),nn=Yu(X,H),en=Fu(u,Y),rn=Vu(Fu(i,nn)),on=Yu(en,rn),cn=Vu(Yu(C,F)),sn=Yu(cn,D),un=Fu(r,sn),fn=Yu(on,un),ln=Fu(o,nt),an=Vu(Fu(f,nn)),pn=Yu(ln,an),hn=Vu(Yu(B,D)),dn=Yu(hn,C),vn=Fu(s,dn),gn=Yu(pn,vn),mn=Fu(o,Y),xn=Yu(Vu(T),S),bn=Fu(zu(3,r),xn),wn=Yu(mn,bn),_n=Fu(u,nt),Mn=Yu(Vu(K),Z),In=Fu(zu(3,s),Mn),Sn=Yu(_n,In),Nn=Fu(p,fn),En=Fu(h,gn),yn=Yu(Nn,En),Cn=Fu(a,wn),On=Fu(d,Sn),Tn=Yu(Cn,On),An=Fu(q,v),Pn=Fu(tt,m),kn=Yu(An,Pn),Bn=Fu(Q,g),zn=Yu(yn,Tn),Fn=Yu(kn,Bn),Yn=Yu(zn,Fn),Vn=Yu($,W),Ln=Yu(z,$),$n=zu(c,nn),Xn=zu(l,nn),jn=Fu(i,Vn),qn=Fu(f,Ln),Dn=Yu(Vu(D),F),Wn=Yu(Vu(C),B),Hn=Fu(s,O),Qn=Fu(r,J),Rn=Fu(o,Dn),Gn=Fu(u,Wn),Un=Vu(Yu($n,jn)),Zn=Vu(Yu(Xn,qn)),Jn=Vu(zu(c,V)),Kn=Vu(zu(l,et)),te=Fu(i,jt),ne=Fu(f,qt),ee=Fu(V,v),re=Fu(et,m),oe=Yu(Un,Hn),ie=Yu(Zn,Qn),ce=Yu(oe,Rn),se=Yu(ie,Gn),ue=Yu(Jn,te),fe=Yu(Kn,ne),le=Vu(Yu(ee,re)),ae=Fu(p,ce),pe=Fu(h,se),he=Fu(a,ue),de=Fu(d,fe),ve=Yu(ae,pe),ge=zu(3,Yu(he,de)),me=Fu(g,nn),xe=Yu(ve,ge),be=Yu(me,le),we=Yu(xe,be),_e=Yu(z,Vn),Me=Yu(Vu(A),Y),Ie=Yu(Vu(rt),nt),Se=zu(2*c,_e),Ne=zu(2*l,_e),Ee=Yu(B,Vu(F)),ye=Yu(F,Vu(B)),Ce=zu(l,Me),Oe=zu(c,Ie),Te=Fu(i,Ee),Ae=Fu(f,ye),Pe=zu(c,Me),ke=zu(l,Ie),Be=Fu(o,O),ze=Fu(u,J),Fe=Yu(Se,Ce),Ye=Yu(Ne,Oe),Ve=Yu(Fe,Te),Le=Yu(Ye,Ae),$e=Yu(Pe,Be),Xe=Yu(ke,ze),je=Fu(p,Ve),qe=Fu(h,Le),De=Fu(a,$e),We=Fu(d,Xe),He=Yu(De,We),Qe=Yu(je,qe),Re=Yu(Qe,zu(3,He)),Ge=Fu(g,_e),Ue=Fu(v,Me),Ze=Yu(Ge,Ue),Je=Fu(m,Ie),Ke=Yu(Ze,Je),tr=Yu(Re,Ke),nr=Yu(B,F),er=Yu(D,C),rr=Yu(T,S),or=Yu(K,Z),ir=Yu(Vu(nr),D),cr=Yu(Vu(nr),C),sr=Yu(Vu(L),k),ur=Yu(Vu(y),k),fr=Yu(rr,T),lr=Yu(or,K),ar=Fu(Bu(3,c),fr),pr=Fu(Bu(3,l),lr),hr=Fu(i,O),dr=Fu(f,J),vr=Fu(v,rr),gr=Fu(m,or),mr=Yu(ir,er),xr=Yu(cr,er),br=zu(c,mr),wr=zu(l,xr),_r=Fu(i,sr),Mr=Fu(f,ur),Ir=Fu(r,x),Sr=Fu(s,b),Nr=Yu(br,_r),Er=Yu(wr,Mr),yr=Yu(ar,hr),Cr=Yu(pr,dr),Or=Yu(er,nr),Tr=Vu(Yu(vr,gr)),Ar=Fu(p,Nr),Pr=Fu(h,Er),kr=Fu(a,yr),Br=Fu(d,Cr),zr=Fu(g,Or),Fr=Yu(Ar,Pr),Yr=Yu(kr,Br),Vr=Yu(zr,Tr),Lr=Yu(Ir,Sr),$r=Yu(Fr,Yr),Xr=Yu(Vr,Lr),jr=Yu($r,Xr),qr=Yu(k,L),Dr=Yu(k,y),Wr=Yu(Vu(qr),y),Hr=Yu(Vu(Dr),L),Qr=zu(c,Wr),Rr=zu(l,O),Gr=zu(l,Hr),Ur=zu(c,J),Zr=zu(c,O),Jr=Fu(o,_),Kr=zu(l,J),to=Fu(u,R),no=Yu(Qr,Rr),eo=Yu(Gr,Ur),ro=Yu(Zr,Jr),oo=Yu(Kr,to),io=Fu(a,ro),co=Fu(d,oo),so=zu(3,Yu(io,co)),uo=Yu(qr,y),fo=Yu(Vu(I),O),lo=Yu(Vu(U),J),ao=Fu(p,no),po=Fu(h,eo),ho=Fu(g,uo),vo=Fu(v,fo),go=Fu(m,lo),mo=Fu(o,x),xo=Fu(u,b),bo=Yu(mo,xo),wo=Yu(ao,po),_o=Yu(so,ho),Mo=Yu(vo,go),Io=Yu(wo,_o),So=Yu(Mo,bo),No=Yu(Io,So),Eo=Yu(P,E),yo=zu(c,p),Co=zu(l,h),Oo=Yu(Eo,P),To=Yu(Eo,E),Ao=Fu(i,_),Po=Fu(Ao,a),ko=Fu(f,R),Bo=Fu(ko,d),zo=Fu(g,Eo),Fo=Fu(M,v),Yo=Fu(G,m),Vo=Yu(Fo,Yo),Lo=Fu(i,x),$o=Fu(f,b),Xo=Yu(Lo,$o),jo=Fu(yo,Oo),qo=Fu(Co,To),Do=Yu(jo,qo),Wo=zu(3,Yu(Po,Bo)),Ho=Yu(zo,Vu(Vo)),Qo=Yu(Do,Wo),Ro=Yu(Ho,Xo),Go=Yu(Qo,Ro),Uo=zu(c,a),Zo=zu(l,p),Jo=Yu(Uo,Zo),Ko=zu(c,h),ti=zu(l,d),ni=Yu(Ko,ti),ei=Yu(Jo,v),ri=Yu(ni,m),oi=Fu(_,ei),ii=Fu(R,ri),ci=Yu(oi,ii),si=Fu(N,g),ui=Yu(ci,si),fi=zu(c,x),li=zu(l,b),ai=Yu(fi,li),pi=Yu(ui,ai);return[vt,Ot,tn,Yn,we,tr,jr,No,Go,Yu(pi,w)].map(ft)}]];function Xu(t,n){const{coeffs:e,errBound:r}=Lu[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>$u[t.length-2][n.length-2](t,n)}}const ju=134217729;function qu(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r/i,s=i*c,u=ju*i,f=u-(u-i),l=i-f,a=ju*c,p=a-(a-c),h=c-p,d=o*c,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,x=(r-m+(e-(g-(m-v))))/i,b=c+x;return[x-(b-c),b]}const Du=qu,Wu=Number.EPSILON/2,Hu=Wu*Wu,Qu=x,Ru=x,{abs:Gu}=Math,Uu=[0,1],Zu=x,Ju=Jr,Ku=m,tf=Cn,nf=Sn,ef=xo,rf=function(t,n,e,r){const o=t[0],i=t[1],c=n[0],s=n[1],u=Du(t,n),f=Math.abs(o+i),l=Math.abs(c+s),a=l-Wu*l-r;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/a**2+9*Hu*Math.abs(f/l)}},of=function(t,n){return Qu(t,n)[1]>0?n:t},cf=function(t,n){return Ru(t,n)[1]>0?t:n};function sf(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[c,s]],[u,f]){const l=Zu(f,u),a=3*W*Gu(l[1]),p=Zu(Uu,u),h=3*W*Gu(p[1]),d=rf(l,p,a,h);f=Ju(d.est,d.err);const v=Zu(Uu,u),g=tf(u,u),m=tf(u,v),x=tf(v,v),b=tf(g,u),w=tf(g,v),_=tf(x,u),M=tf(x,v),I=Zu(Uu,f),S=tf(f,f),N=tf(f,I),E=tf(I,I),y=tf(S,f),C=tf(S,I),O=tf(E,f),T=tf(E,I),A=Gu(u[1]),P=Gu(v[1]),k=Gu(g[1]),B=Gu(m[1]),z=Gu(x[1]),F=Gu(b[1]),Y=Gu(w[1]),V=Gu(_[1]),L=Gu(M[1]),$=Gu(f[1]),X=Gu(I[1]),j=Gu(S[1]),q=Gu(N[1]),D=Gu(E[1]),H=Gu(y[1]),Q=Gu(C[1]),R=Gu(O[1]),G=Gu(T[1]);let U=Gu(t),Z=Gu(n),J=Gu(e),K=Gu(r),tt=Gu(o),nt=Gu(i),et=Gu(c),rt=Gu(s);const ot=Ku(nf(c,u),nf(o,v)),it=Ku(Ku(nf(c,g),nf(2*o,m)),nf(e,x)),ct=Ku(Ku(nf(c,b),nf(t,M)),nf(3,Ku(nf(o,w),nf(e,_)))),st=Ku(tf(it,f),tf(ct,I)),ut=Ku(Ku(tf(ot,S),tf(ct,E)),tf(ef(it),N)),ft=Ku(Ku(nf(c,y),tf(ct,T)),nf(3,Ku(tf(ot,C),tf(it,O)))),lt=Gu(ct[1]),at=et*A+tt*P,pt=et*k+2*tt*B+J*z;U=et*F+U*L+3*(tt*Y+J*V),J=pt*$+lt*X,tt=at*j+lt*D+2*pt*q,et=et*H+lt*G+3*(at*Q+pt*R),U*=11*W,J*=15*W,tt*=20*W,et*=22*W;const ht=Ku(nf(s,u),nf(i,v)),dt=Ku(Ku(nf(s,g),nf(2*i,m)),nf(r,x)),vt=Ku(Ku(nf(s,b),nf(n,M)),nf(3,Ku(nf(i,w),nf(r,_)))),gt=Ku(tf(dt,f),tf(vt,I)),mt=Ku(Ku(tf(ht,S),tf(vt,E)),tf(ef(dt),N)),xt=Ku(Ku(nf(s,y),tf(vt,T)),nf(3,Ku(tf(ht,C),tf(dt,O)))),bt=Gu(vt[1]),wt=rt*A+nt*P,_t=rt*k+2*nt*B+K*z;Z=rt*F+Z*L+3*(nt*Y+K*V),K=_t*$+bt*X,nt=wt*j+bt*D+2*_t*q,rt=rt*H+bt*G+3*(wt*Q+_t*R),Z*=11*W,K*=15*W,nt*=20*W,rt*=22*W;const Mt=of(of(Ju(ct,-U),Ju(st,-J)),of(Ju(ut,-tt),Ju(ft,-et))),It=cf(cf(Ju(ct,+U),Ju(st,+J)),cf(Ju(ut,+tt),Ju(ft,+et)));return[[Mt,of(of(Ju(vt,-Z),Ju(gt,-K)),of(Ju(mt,-nt),Ju(xt,-rt)))],[It,cf(cf(Ju(vt,+Z),Ju(gt,+K)),cf(Ju(mt,+nt),Ju(xt,+rt)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[c,s]){const u=Zu(s,c),f=3*W*Gu(u[1]),l=Zu(Uu,c),a=3*W*Gu(l[1]),p=rf(u,l,f,a);s=Ju(p.est,p.err);const h=Zu(Uu,c),d=tf(c,c),v=tf(c,h),g=tf(h,h),m=Zu(Uu,s),x=tf(s,s),b=tf(s,m),w=tf(m,m),_=Gu(c[1]),M=Gu(h[1]),I=Gu(d[1]),S=Gu(v[1]),N=Gu(g[1]),E=Gu(s[1]),y=Gu(m[1]),C=Gu(x[1]),O=Gu(b[1]),T=Gu(w[1]);let A=Gu(t),P=Gu(n),k=Gu(e),B=Gu(r),z=Gu(o),F=Gu(i);const Y=Ku(Ku(nf(o,d),nf(2*e,v)),nf(t,g)),V=Ku(nf(o,c),nf(e,h)),L=Y,$=Ku(tf(s,V),tf(m,Y)),X=Ku(Ku(nf(o,x),tf(ef(b),V)),tf(w,Y)),j=z*I+2*k*S+A*N,q=z*_+k*M;A=j,k=E*q+y*j,z=C*o+2*O*q+T*j,A*=7*W,k*=11*W,z*=14*W;const D=Ku(Ku(nf(i,d),nf(2*r,v)),nf(n,g)),H=Ku(nf(i,c),nf(r,h)),Q=D,R=Ku(tf(s,H),tf(m,D)),G=Ku(Ku(nf(i,x),tf(ef(b),H)),tf(w,D)),U=F*I+2*B*S+P*N,Z=F*_+B*M;P=U,B=E*Z+y*U,F=C*i+2*O*Z+T*U,P*=7*W,B*=11*W,F*=14*W;const J=of(of(Ju(L,-A),Ju($,-k)),Ju(X,-z)),K=cf(cf(Ju(L,+A),Ju($,+k)),Ju(X,+z));return[[J,of(of(Ju(Q,-P),Ju(R,-B)),Ju(G,-F))],[K,cf(cf(Ju(Q,+P),Ju(R,+B)),Ju(G,+F))]]}(t,n):function([[t,n],[e,r]],[o,i]){const c=Zu(i,o),s=3*W*Gu(c[1]),u=Zu(Uu,o),f=3*W*Gu(u[1]),l=rf(c,u,s,f);i=Ju(l.est,l.err);const a=Zu(Uu,o),p=Zu(Uu,i),h=Gu(o[1]),d=Gu(a[1]),v=Gu(i[1]),g=Gu(p[1]);let m=Gu(t),x=Gu(n),b=Gu(e),w=Gu(r);const _=Ku(nf(e,o),nf(t,a)),M=Ku(nf(e,i),tf(_,p));m=b*h+m*d,b=b*v+m*g,m*=3*D,b*=7*D;const I=Ku(nf(r,o),nf(n,a)),S=Ku(nf(r,i),tf(I,p));x=w*h+x*d,w=w*v+x*g,x*=3*D,w*=7*D;const N=of(Ju(_,-m),Ju(M,-b)),E=cf(Ju(_,+m),Ju(M,+b));return[[N,of(Ju(I,-x),Ju(S,-w))],[E,cf(Ju(I,+x),Ju(S,+w))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=oo(t,n);let i;if(4===t.length)i=uo(t,n).map(t=>16*H*t);else if(3===t.length)i=uo(t,n).map(t=>10*H*t);else if(2===t.length)i=uo(t,n).map(t=>4*H*t);else if(1===t.length)return[o,o];return[[Ju(o[0],-i[0]),Ju(o[1],-i[1])],[Ju(o[0],+i[0]),Ju(o[1],+i[1])]]}(t,n[0])}function uf(t){return(n,e)=>{let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;return(o[1]>c[1]||o[1]===c[1]&&o[0]>c[0])&&([o,c]=[c,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(s[1]>f[1]||s[1]===f[1]&&s[0]>f[0])&&([s,f]=[f,s]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>=s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<=c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function ff(t){return[((n=t.x.box)[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2];var n}function lf(t,n){const e=Xu(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,c=ae(r,0,1,o,i)||[];return 0!==c.length?{ris:c.map(nc),getPExact:i}:void 0}function af(t){const n=st(t.tS);return{t:n,tS:n,tE:st(t.tE),multiplicity:t.multiplicity}}function pf(t,n){const e=lf(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const c=()=>(o=o||r(),o),s=lf(n,t);if(void 0===s)return[];let{ris:u}=s;const{getPExact:f}=s;let l;const a=()=>(l=l||f(),l);let p;p=1;let h,d=0;t:for(;d<p;){h=u.map(n=>sf(t,[n.tS,n.tE]));for(let t=0;t<u.length;t++){const n=h[t];for(let e=t+1;e<u.length;e++){const t=h[e];if(uf(!0)(n,t)){const t=[];for(const n of u)t.push(...di({t:n.tS[1],tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},a()));u=t,d++;continue t}}}break t}p=1;let v,g=0;t:for(;g<p;){v=i.map(t=>sf(n,[t.tS,t.tE]));for(let t=0;t<i.length;t++){const n=v[t];for(let e=t+1;e<i.length;e++){const t=v[e];if(uf(!0)(n,t)){const t=[];for(const n of i)t.push(...di({t:n.tS[1],tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},c()));i=t,g++;continue t}}}break t}const m=[];for(let t=0;t<u.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=v[e];if(uf(!0)(n,o)){const c={compensated:d,ri:af(u[t]),riExp:d?u[t]:void 0,getPExact:d?void 0:f,kind:1,box:hf(n)},s={compensated:g,ri:af(i[e]),riExp:g?i[e]:void 0,getPExact:g?void 0:r,kind:1,box:hf(o)};m.push({psX:c,sideX:s})}}}return m}function hf(t){return t.map(t=>t.map(st))}function df(t,n){return function(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,c=e.slice();for(let t=0;t<i.length;t++){const n=pf(o,i[t]);for(const{psX:e,sideX:r}of n)c.push({x:e,side:t,sideX:r,curve:void 0})}c.sort((t,n)=>t.x.ri.tS-n.x.ri.tS);const s=[],u=[];let f,l;for(const n of c)void 0!==n.side?(!0===l&&(u.push({idx:++r,dir:1,p:ff(n),_x_:f,container:t,side:n.side,sideX:n.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),f.out=u[u.length-1]),l=!1):(!1===l&&(s.push({idx:++r,dir:-1,p:ff(f),_x_:n,container:t,side:f.side,sideX:f.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),n.in_=s[s.length-1]),l=!0),f=n;return{ins:s,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let c,s;({ins:c,outs:s,ioIdx:n}=i(e,o,n)),r.push(...c),r.push(...s)}return{inOuts:r,ioIdx:n}}(t,n)}function vf(t,n,e,r){const o=[];for(const r of t)o.push({type:-1,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(gf);const i=new Set,c=[];for(const t of o){const{item:n,type:e}=t;if(-1===e){for(const t of i){const e=r(n,t);e&&c.push({a:n,b:t,u:e})}i.add(n)}else 1===e&&i.delete(n)}return c}function gf(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function mf(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function xf(t,n,e){const r=n[0]-t[0],o=n[1]-t[1];return r*(e[0]-n[0])+o*(e[1]-n[1])}const bf=function(t,n){if(0===t.length)return;const e=t.slice(),r=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(e),[o]=e.splice(r,1);e.sort((t,n)=>{let e=-lt(o,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(o);const i=function(t){const n=[t[0]],e=t.length;for(let r=1;r<t.length;r++){const o=t[(r+e-1)%e],i=t[r];o[0]===i[0]&&o[1]===i[1]||n.push(i)}return n}(e),c=[];for(const t of i){for(;c.length>=2&<(c[c.length-2],c[c.length-1],t)<0;)c.pop();c.push(t)}if(n||c.length<3)return c;const s=[];{const t=c.length;for(let n=0;n<t;n++){const e=(n+1)%t,r=c[(n+t-1)%t],o=c[n],i=c[e];(0!==lt(r,o,i)||xf(r,o,i)<0)&&s.push(o)}}return s},wf=m,_f=$,Mf=T,If=Cn,Sf=Math.abs,Nf=R(3);const Ef=Math.abs;const yf=Math.abs,Cf=Cn,Of=m,Tf=$,Af=T,Pf=Math.abs,kf=Q(1),Bf=R(3);function zf(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,c]]=Ei(t),s=n*i-e*o,u=n*c-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*s-2*o*u,vᵧ:2*n*u-e*s,v:s*(e*c-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[r,o],[i,c]]=function(t){const[[n,e],[r,o],[i,c]]=t,s=Ef(n),u=Ef(r),f=Ef(i),l=Ef(e),a=Ef(o);return[[f+s+2*u,2*(u+s),0],[Ef(c)+l+2*a,2*(a+l),0]]}(t),s=yf(n),u=yf(e),f=r*c+o*i,l=r*u+s*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:c*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+s*c)+l*l}}(t),g=u?0:1,m=Pf(c),x=Pf(s);if((g+12)*kf*(l*(m*m)+a*(m*x)+p*(x*x)+(h*m+d*x)+v)<Pf(n*c*c+e*c*s+r*s*s+(o*c+i*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=Ec(t),m=ui(e),x=ui(r),b=Pf(c),w=Pf(s),_=b/3,M=w/3,I=Cf(m,m),S=I[1],N=2*(b*_+S),E=Cf(x,x),y=E[1],C=2*(w*M+y),O=Cf(m,x),T=Pf(O[1]),A=b*M+_*w+2*T,P=Cf(n,I),k=Pf(n[1])*N+a*S+2*Pf(P[1]),B=Cf(o,O),z=Pf(o[1])*A+p*T+2*Pf(B[1]),F=Cf(i,E),Y=Pf(i[1])*C+h*y+2*Pf(F[1]),V=Cf(m,u),L=Pf(u[1])*_+d*b+2*Pf(V[1]),$=Cf(x,f),X=Pf(f[1])*M+v*w+2*Pf($[1]),j=Of(P,B),q=k+z+Pf(j[1]),D=Of(j,F),W=q+Y+Pf(D[1]),H=Of(V,$),Q=L+X+Pf(H[1]),R=Of(D,H),G=W+Q+Pf(R[1]),U=Of(R,l),Z=G+g+Pf(U[1]);if(Bf*Z<Pf(st(U)))return!1}{const n=function(t){return Ys(Et(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n;return 0===j(Af(Af(Af(Tf(o,Tf(e,e)),Tf(i,Tf(e,r))),Tf(f,Tf(r,r))),Af(Af(Tf(e,l),Tf(r,a)),p)))}}const Ff=Math.abs,Yf=Cn,Vf=m,Lf=$,$f=T,Xf=Math.abs,jf=Q(1),qf=R(3);function Df(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,r,o],[i,c,s,u]]=Ni(t),f=n*s,l=r*i,a=n*c,p=e*i,h=n*n,d=i*i,v=n*u-o*i,g=f-l,m=a-p,x=e*u-o*c,b=e*s-r*c,w=r*u-o*s,_=2*g,M=v*v,I=v*b,S=_*x,N=m*x,E=-3*v-b,y=-3*M-2*I+(S+m*w),C=2*(v*g-N),O=v*m-g*g+m*b;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*h,vᵧᵧᵧ:n*h,vₓₓ:E*d+m*(s*i-c*c)+_*c*i,vₓᵧ:2*(m*(e*c-(l+f)/2)-(E*n*i+g*(p+a))),vᵧᵧ:E*h+m*(r*n-e*e)+_*e*n,vₓ:i*y+(c*C+s*O),vᵧ:-n*y-(e*C+r*O),v:v*(S-M-I)+(O*w-N*x)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:x,vₓᵧ_:b,vᵧᵧ_:w,vₓ_:_,vᵧ_:M,v_:I}=function(t){const[n,e]=t[0],[[r,o,i],[c,s,u]]=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Ef(n),l=Ef(r),a=Ef(i),p=Ef(s),h=Ef(e),d=Ef(o),v=Ef(c);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[Ef(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=Ff(n),l=Ff(e),a=r*u,p=i*c,h=r*s,d=o*c,v=r*r,g=c*c,m=r*l+f*c,x=a+p,b=h+d,w=o*l+f*s,_=o*u+i*s,M=i*l+f*u,I=2*x,S=m*m,N=m*_,E=I*w,y=b*w,C=3*m+_,O=3*S+2*N+(E+b*M),T=2*(m*x+y),A=m*b+x*x+b*_;return{vₓₓₓ_:c*g,vₓₓᵧ_:3*r*g,vₓᵧᵧ_:3*c*v,vᵧᵧᵧ_:r*v,vₓₓ_:C*g+b*(u*c+s*s)+I*s*c,vₓᵧ_:2*(b*(o*s+(p+a)/2)+(C*r*c+x*(d+h))),vᵧᵧ_:C*v+b*(i*r+o*o)+I*o*r,vₓ_:c*O+(s*T+u*A),vᵧ_:r*O+(o*T+i*A),v_:m*(E+S+N)+(A*M+y*w)}}(t),S=c*c,N=s*s,E=n*(S*c)+e*(S*s)+(r*(c*N)+o*(N*s))+(i*S+f*(c*s)+l*N)+(a*c+p*s+h),y=u?0:1,C=Xf(c),O=Xf(s),T=C*C,A=O*O;if((y+26)*jf*(d*(T*C)+v*(T*O)+(g*(C*A)+m*(A*O))+(x*T+b*(C*O)+w*A)+(_*C+M*O+I))<Xf(E))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:x,vₓₓ_:b,vₓᵧ_:w,vᵧᵧ_:_,vₓ_:M,vᵧ_:I,v_:S}}=$c(t),N=Xf(n[1]),E=Xf(o[1]),y=Xf(i[1]),C=Xf(u[1]),O=ui(e),T=ui(r),A=Xf(c),P=Xf(s),k=A/3,B=P/3,z=Yf(O,O),F=z[1],Y=2*(A*k+F),V=Yf(O,z),L=Xf(V[1]),$=A*Y+k*F+2*L,X=Yf(T,T),j=X[1],q=2*(P*B+j),D=Yf(T,X),W=Xf(D[1]),H=P*q+B*j+2*W,Q=Yf(T,z),R=Xf(Q[1]),G=P*Y+B*F+2*R,U=Yf(O,X),Z=Xf(U[1]),J=A*q+k*j+2*Z,K=Yf(O,T),tt=Xf(K[1]),nt=A*B+k*P+2*tt,et=Yf(n,V),rt=N*$+v*L+2*Xf(et[1]),ot=Yf(o,Q),it=E*G+g*R+2*Xf(ot[1]),ct=Yf(i,U),ut=y*J+m*Z+2*Xf(ct[1]),ft=Yf(u,D),lt=C*H+x*W+2*Xf(ft[1]),at=Yf(f,z),pt=Xf(f[1])*Y+b*F+2*Xf(at[1]),ht=Yf(l,K),dt=Xf(l[1])*nt+w*tt+2*Xf(ht[1]),vt=Yf(a,X),gt=Xf(a[1])*q+_*j+2*Xf(vt[1]),mt=Yf(O,p),xt=Xf(p[1])*k+M*A+2*Xf(mt[1]),bt=Yf(T,h),wt=Xf(h[1])*B+I*P+2*Xf(bt[1]),_t=Vf(et,ot),Mt=rt+it+Xf(_t[1]),It=Vf(ct,ft),St=ut+lt+Xf(It[1]),Nt=Vf(_t,It),Et=Mt+St+Xf(Nt[1]),yt=Vf(at,ht),Ct=pt+dt+Xf(yt[1]),Ot=Vf(yt,vt),Tt=Ct+gt+Xf(Ot[1]),At=Vf(Nt,Ot),Pt=Et+Tt+Xf(At[1]),kt=Vf(mt,bt),Bt=xt+wt+Xf(kt[1]),zt=Vf(kt,d),Ft=Bt+S+Xf(zt[1]),Yt=Vf(At,zt),Vt=Pt+Ft+Xf(Yt[1]);if(qf*Vt<Xf(st(Yt)))return!1}{const n=function(t){return nu(Nt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=Lf(e,e),x=Lf(e,m),b=Lf(r,r),w=Lf(r,b),_=Lf(r,m),M=Lf(e,b),I=Lf(e,r),S=Lf(o,x),N=Lf(i,_),E=Lf(f,M),y=Lf(l,w),C=Lf(a,m),O=Lf(p,I),T=Lf(h,b),A=Lf(e,d),P=Lf(r,v),k=$f(S,N),B=$f(E,y),z=$f(k,B),F=$f(C,O),Y=$f(F,T),V=$f(z,Y),L=$f(A,P),$=$f(L,g);return 0===j($f(V,$))}}function Wf(t,n){const{coeffs:e,errBound:r,getPExact:o}=Xu(t,n);return ae(e,0,1,r,o)}const Hf=Math.min,Qf=Math.max;function Rf(t,n){let[[e,r],[o,i]]=t,[[c,s],[u,f]]=n;if(e>o&&([e,o]=[o,e]),c>u&&([c,u]=[u,c]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]),e<=u&&o>=c&&s<=i&&f>=r)return[[Qf(e,c),Qf(r,s)],[Hf(o,u),Hf(i,f)]]}function Gf(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=Wf(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map(n=>ho(t,[n.tS,n.tE])),i=e.map(t=>ho(n,[t.tS,t.tE])),c=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const s=Rf(n,i[o]);if(void 0!==s){const n={ri:r[t],box:s,kind:1},i={ri:e[o],box:s,kind:1};c.push([n,i])}}}return c}function Uf(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const c=r[i-1],s=r[i%o],u=[s[1]-c[1],c[0]-s[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}function Zf(t){return 4===t.length&&ct(t)&&(t=Rs(t)),3===t.length&&K(t)&&(t=[t[0],t[2]]),2===t.length&&G(t)&&(t=[t[0]]),t}const Jf=Number.EPSILON,Kf=Jf/2;function tl(t,n){return n<0?t<1?t:1-Kf:0===n?1:t>1?t:1+Jf}function nl(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),c=0===i?0:16,s=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+c,{sign:o,exponent:s,significand:u}}function el(t){return nl(t).significand}function rl(t){return Math.log2(t&-t)}function ol(t){if(0===t||!Number.isFinite(t))return NaN;const n=el(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=rl(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function il(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function cl(t){if(0===t||!Number.isFinite(t))return NaN;const n=el(t),e=n.length;for(let t=0;t<e;t++){const r=il(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function sl(t){return nl(t).exponent}function ul(t){if(0===t||!Number.isFinite(t))return NaN;const n=sl(t);return cl(t)-52+n}function fl(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const ll=j,al=ft;function pl(t){return 0===t?0:cl(t)-ol(t)+1}const hl=$,dl=function(t,n){if(t=al(t),0===ll(t))return[0];const e=ul(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=ul(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let c=t[o];c=fl(c,i);const s=t.slice(o);return s[0]=c,s},vl=function(t){const n=ft(t);if(0===j(n))return 0;const e=n[n.length-1],r=n[0];return sl(e)-sl(r)+(53-ol(r))},gl=B,ml=st;function xl(t){return st(function(t,n,e){let r=n,o=t,i=!1,c=0;e||(c=vl(o)-vl(r)+1,e=c/53+1,i=!0);let s=[1/ml(r)],u=1;for(;;){if(o=hl(o,s),u>e)return i?(o=dl(o,c),o):o.slice(o.length-e,o.length);r=hl(r,s),s=gl([2],r),u*=2}}(t[0],t[1],2))}function bl(t){return j(t[0])*j(t[1])}function wl(t){return(n,e)=>{const r=St(n),o=St(e),i=St(n.slice().reverse()),c=St(e.slice().reverse()),s=t(r,o),u=t(i,o),f=t(r,c),l=t(i,c),a=-bl(u),p=-bl(l),h=xl(s),d=xl(f);return[tl(h,a),tl(d,p)]}}const _l=wl(function(t,n){const e=0===j(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[B(o,r),e]}(t[e],n[e])});function Ml(t,n){return q($(t[0],n[1]),$(t[1],n[0]))*j(t[1])*j(n[1])}function Il(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-sl(e)+pl(e)-1;o>n&&(n=o)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-sl(t)+pl(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function Sl(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Nl=BigInt(2**53);function El(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/Nl;const o=t%Nl;n.push(Number(o)*2**(53*e)),t=r,e++}return ft(n)}const{round:yl,sqrt:Cl}=Math;function Ol(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(yl(Cl(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function Tl(t){return t<0n?-t:t}function Al(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Pl(t,n){const[e,r]=kl(t[0],n[0]),[o,i]=kl(t[1],n[1]);if(0===Ml(e,o)||0===Ml(e,i))return e;if(0===Ml(r,o)||0===Ml(r,i))return r;throw new Error("An unexpected error occured.")}function kl(t,n){const[e,r]=t,[o,i]=n,[c,s]=function(t){const[n,e]=Il(t).map(Al),r=Sl(n,e);return[El(Ol(Tl(n/r))),El(Ol(Tl(e/r)))]}([o,e]);return[[B($(i,s),$(r,c)),$(c,$o(e))],[B($(i,A(s)),$(r,c)),$(c,$o(e))]].sort(Ml)}function Bl(t,n){const e=St(t),r=0===j(e[0][0])?0:0===j(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],c=n[2][r];return _l([[e,e],[o,o]],[[i,i],[c,c]])}return wl(Pl)(t,n)}const{round:zl,cbrt:Fl}=Math;function Yl(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=Tl(t))<=1n)return n*t;let r=BigInt(zl(Fl(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function Vl(t){return $(t,t)}const Ll=wl(function(t,n){const e=0===j(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,c=function(t){const[n,e]=Il(t).map(Al),r=Sl(n,e);return[El(Yl(n/r)),El(Yl(e/r))]}([o,e]),s=Vl(c[0]);return[B($(i,Vl(c[1])),$(r,s)),$(Y(3,e),s)]}(t[e],n[e])}),{EPSILON:$l}=Number,Xl=$l/2+$l**2/2;function jl(t){return t>0?t-t*Xl:t+t*Xl}const{EPSILON:ql}=Number,Dl=ql/2+ql**2/2;function Wl(t){return t>0?t+t*Dl:t-t*Dl}function Hl(t){if(0===t||1===t)return[t,t];const n=jl(jl(t)),e=function(t){return Wl(Wl(t))}(t);return[n,e]}function Ql(t,n,e,r){const o=t.ps,i=n.ps,c=[];let s=Wf(o,i);if(void 0===s){const r=2**(e-47),s=function(t,n,e=!1){e||(t=Zf(t),n=Zf(n));const r=[,,_l,Bl,Ll],[o,i]=r[t.length](t,n),[c,s]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:c,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=ho(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{t:e,tS:e,tE:e,multiplicity:1},t2:r,ri2:{t:r,tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=Hl(f.tA),[h,d]=Hl(f.tB),[v,g]=Hl(l.tA),[m,x]=Hl(l.tB),b=ho(t,[a,p]),w=ho(n,[h,d]),_=ho(t,[v,g]),M=ho(n,[m,x]),I=Rf(b,w),S=Rf(_,M),N={t:a,tS:a,tE:p,multiplicity:1},E={t:h,tS:h,tE:d,multiplicity:1},y={t:v,tS:v,tE:g,multiplicity:1},C={t:m,tS:m,tE:x,multiplicity:1};return[{p:vo(I),kind:5,box:I,t1:ii(N),ri1:N,t2:ii(E),ri2:E},{p:vo(S),kind:5,box:S,t1:ii(y),ri1:y,t2:ii(C),ri2:C}]}(o,i);for(const e of s){const i=co(o,e.ri1.tS),s=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:s},curve:t},f={x:{ri:e.ri2,kind:5,box:s},curve:n};c.push([u,f])}return c}if(r&&(s=s.filter(t=>t.tS>0)),0===s.length)return[];const u=Gf(o,i,s);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};c.push([r,o])}return c}const Rl=Q(1);function Gl(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{t,tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{t,tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=co(t,n),r=uo(t,[0,n]);if(4===t.length)return{p:e,pE:r.map(t=>9*Rl*t)};if(3===t.length)return{p:e,pE:r.map(t=>6*Rl*t)};if(2===t.length)return{p:e,pE:r.map(t=>3*Rl*t)};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{t,tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function Ul(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return Df(t,n);if(3===t.length)return zf(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=dc(t),f=ui(e),l=ui(r),a=Sf(c),p=Sf(s),h=Sf(n[1]),d=Sf(o[1]),v=a/3,g=p/3,m=n[1]*c,x=If(f,n),b=h*v+2*Sf(m),w=o[1]*s,_=If(l,o),M=d*g+2*Sf(w),I=wf(x,_),S=b+M+Sf(I[1]),N=wf(I,i),E=S+u+Sf(N[1]);if(Nf*E<Sf(st(N)))return!1}{const n=function(t){return ys(yt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=_f(e,o),a=_f(r,i);return 0===j(Mf(Mf(l,a),f))}}(t,n);if(1===t.length){const e=ft(n[0]),r=ft(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map(t=>[t]))){const i=Gf(e,r,[(o=1,{t:o,tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},Gl(1,n,1)]]}var o}const Zl=A;function Jl(t){return t[t.length-1]<0?Zl(t):t}Number.EPSILON;const Kl=Number.EPSILON/2;function ta(t,n,e,r){const o=t/n,i=Math.abs(t),c=Math.abs(n),s=c-r;return s<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(c*e+i*r)/s**2+Kl*Math.abs(i/c)}}const na=B,ea=$,ra=Y,oa=C,ia=O,ca=bc,sa=m,ua=xo,fa=qu,la=T,aa=X,pa=2*Number.EPSILON,ha=Math.abs,da=Q(1);function va(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,c,s]}=bt(t);if(ha(e)<=i){const[[n,e],[r,o],[i,c],[s,u]]=t,f=la(oa(s,n),ra(3,oa(r,i))),l=aa(ia(i,n),-2*r),a=la(oa(u,e),ra(3,oa(o,c))),p=aa(ia(c,e),-2*o);if(0===q(ea(l,a),ea(f,p)))return[]}const u=r*r,f=4*e*o,l=u-f,a=2*c*ha(r)+da*u+(4*(i*ha(o)+ha(e)*s)+da*ha(f))+da*ha(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}}(l,a);let f;f=r>=0?-r-t:-r+t;const p=c+u+da*ha(f),{est:h,err:d}=ta(f,2*e,p,2*i),{est:v,err:g}=ta(2*o,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=Tt(t);const v=na(ea(h,h),ra(4,ea(p,d))),g=j(v);if(g<0)return[];if(g>0){const t=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,c=i-(i-r),s=r-c,u=.5*(e-o-(s*s-(o-c*c-c*s*2))+n)/r;return[u-(r+u-r),r+u]}(ui(v));let e;p=ui(p),h=ui(h),d=ui(d),e=j(h)>=0?ca(sa(h,t)):sa(ca(h),t);let r=st(fa(e,ua(p))),o=st(fa(ua(d),e));if(n){if(r<-pa||r>1+pa||o<-pa||o>1+pa)return[]}else if((r<-pa||r>1+pa)&&(o<-pa||o>1+pa))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-pa&&r<=1+pa?o>=0-pa&&o<=1+pa?[r,o]:[r]:o>=0-pa&&o<=1+pa?[o]:[]}const m=Xo(p);if(j(h)*j(m)<0)return[];if(q(Jl(h),Jl(m))>0)return[];const x=ui(h),b=ui(m),w=fa(x,b),_=w[1]+w[0];return[_,_]}const ga=Number.EPSILON;function ma(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-c)),6*(c+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[2*(i-2*r+n)],[2*(c-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function xa(t){if(at(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&ct(t)&&(t=Rs(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=i-r,u=s-(r-n),f=c-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(s-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:ae(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=we(t),[[s,u],[f,l]]=ma(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i))],[6*(u-e+3*(o-c))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*i,d=p*e,v=u*c,g=u*i,m=f*f,x=s*c,b=l*r,w=l*e,_=f*r,M=r*e,I=r*n,S=r*o,N=e*e,E=e*n,y=e*i,C=n*c,O=n*o,T=n*n,A=c*i,P=c*o,k=i*i,B=i*o,z=o*o,F=a*c-p*r,Y=u*r+l*c,V=v-b,L=r*r+c*c,$=y+C,X=P+k,j=I+N,q=e*o+n*i,D=T-z,W=E-B,H=M-A,Q=r*i+e*c,R=P+X,G=I+j,U=S+$,Z=y+$,J=G-R,K=$+C,tt=S+y+C,nt=2*w+_;return{inflectionPoly:[s*o-f*n,u*o+s*i-l*n-f*e,g+x-w-_,v-b],otherExtremaPoly:[T*(h-3*d)+z*(3*h-d)+2*(O*(a*e-p*i+3*(l*f-u*s))+3*s*f*W)+3*(q*(m-s*s)+D*(u*f+l*s)),a*(o*(G+3*X)+n*Z)-p*(r*(3*T+z)+e*(3*E+2*B)+n*R)+3*(u*(l*D-u*O+2*(f*W-s*q))+s*(2*l*W+f*(2*(I-P)+(N-k))-s*tt)+l*(l*O+2*f*q)+m*U),a*(2*r*q+e*K+i*(4*P+R))-p*(2*r*(3*E+B)+e*(N+2*P)+i*K)+3*(u*(2*(l*W-s*tt)+f*J-u*q)+s*(2*f*H-s*Q)+l*(l*q+2*f*U+s*J)+m*Q),a*(r*(S+2*$)+c*(N+3*X))-p*(r*(3*j+R)+c*Z)+3*(u*(l*J-u*U+2*(f*H-s*Q))+s*(r*(nt-s*c)-c*(2*l*i+f*c))+l*(l*$+r*(2*f*i+l*o))+f*c*nt),L*(h-d)+2*(M+A)*F-3*(Y*(g+x-w-_)+(u*e+s*r+l*i+f*c)*V),F*L-3*Y*V]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=ae(r,0,1)?.map(t=>t.t)||[],i=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let r=0;r<n;r++)e[r]=(n-r)*t[r];return e}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=Fn(i,n);Fn(e,n)*r>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:ae(e,0,1)?.map(t=>t.t)||[]}}function ba(t,n){const[e,r]=we(t),[o,i]=ma(t),c=Fn(e,n),s=Fn(r,n),u=Fn(o,n);return(c*Fn(i,n)-s*u)/Math.sqrt((c*c+s*s)**3)}const{abs:wa}=Math,_a=Ae(function(t){const{curves:n}=t;let e=yi(n[0].ps).minY,r=n[0];for(let t=1;t<n.length;t++){const o=yi(n[t].ps).minY,i=o.box[0][1],c=e.box[0][1];(i<c||i===c&&o.ts[0]>e.ts[0])&&(e=o,r=n[t])}return{curve:r,y:e}});function Ma(t){const{curve:n,y:e}=_a(t),r=e.ts;return r[0]<=0?[Gl(0,n,0),Gl(1,n.prev,0)]:r[1]>=1?[Gl(1,n,0),Gl(0,n.next,0)]:[{x:{ri:{t:r[0],tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{t:r[0],tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function Ia(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:fl(t,r)}function Sa(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=vf(e,t=>Oi(t.ps)[0][0],t=>Oi(t.ps)[1][0],function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=Oi(r),c=Oi(o);if(t.next!==n&&n.next!==t){if(Qi(!0,i,c)){const r=Ql(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==lt(r[0],r[1],o[1]))return;if(!Qi(!1,i,c))return;let s;return s=mf(r[0],r[1])>mf(o[0],o[1])?[ii(oi(r,o[1])[0].ri),1]:[0,ii(oi(o,r[0])[0].ri)],[[Gl(1,t,5),Gl(0,n,5)],[Gl(s[0],t,5),Gl(s[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return Qi(!1,Oi(r),Oi(o))&&Uf(bf(r,!1),bf(o,!1),!1)?e.next===n?Ql(e,n,t,!0):Ql(n,e,t,!0):Ul(n,e);let i=Qi(!0,Oi(r),Oi(o));return i?(i=Uf(bf(r,!1),bf(o,!1),!0),i?Ql(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=va(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-ga,c=r[0]+ga,s=r[1]-ga,u=r[1]+ga,f=ho(e,[i,c]),l=ho(e,[s,u]);n.push([{x:{ri:{t:i,tS:i,tE:c,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{t:s,tS:s,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([Gl(1,t,4),Gl(0,t.next,4)]);return n}(t),{extremes:c,xs:s}=function(t){const n=new Map,e=[];for(const r of t){const t=Ma(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=xa(r),{minima:i,maxima:c}=o,s=[0,1,...i,...c];for(let o of s)wa(ba(r,o))>1e7*2**-t&&e.push([Gl(o,n,7),Gl(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...s,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of s)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map(t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0}));for(;;){const t=vf(l,Na,Ea,Ri);if(!t.length)break;const n=new Map;Gi(n,t);const e=Ji(n),r=Ki(l,e);l=[...tc(e),...r]}l=function(t){return t.filter(t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1})}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map(t=>{const e=t.box.map(t=>t.map(t=>Ia(t,n,n-r)));return{...t,box:e}})}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let a=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:a}=df(t,a)),t.inOuts=n}f=f.filter(t=>void 0!==t[0].container),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)});const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e],n[t].prev=n[(t-1+e)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.next,void 0===e.in_;);t.nextOrPrev=e.in_,t.idx=t.nextOrPrev.idx}for(const t of l)for(const n of t.inOuts){if(1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.prev,void 0===e.out;);t.nextOrPrev=e.out,t.idx=t.nextOrPrev.idx}return{extremes:c,containers:l}}function Na(t){return t.box[0][0]}function Ea(t){return t.box[1][0]}function ya(t,n,e){gi(t,1);const r=t.inOuts,o=r[0],i=r[r.length-1],c=1===o.dir?o:i,s=i.dir,u=0===n.idx?new Set:1===n.orientation?n.loopsIdxs:new Set;return o.orientation=s,o.parent=n,o.windingNum=n.windingNum+s,o.loopsIdxs=new Set(u),o.children=new Set,1===s&&o.loopsIdxs?.add(e.idx),i.orientation=s,i.parent=n,i.windingNum=n.windingNum+s,i.loopsIdxs=new Set(u),i.children=new Set,1===s&&i.loopsIdxs?.add(e.idx),c}function Ca(t){if(!at(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(Oa(n)&&Oa(e))}function Oa(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Ta(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function Aa(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:Pa}=Math;function ka(t,n,e){if(void 0!==t&&!G(t)){if(2===t.length)return t;if(3===t.length){if(Aa(t))return at(t)?[t[0],t[2]]:t;if(za(t[0],t[2]))return;return[t[0],t[2]]}if(Aa(t)){const r=Ba(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:ka(r,n,e)}if(za(t[0],t[3])){if(at(t))return;return t}if(at(t))return[t[0],t[3]];if(za(t[0],t[1])&&za(t[1],t[2])||za(t[1],t[2])&&za(t[2],t[3])||za(t[0],t[1])&&za(t[2],t[3]))return ka([t[0],t[t.length-1]],n,e);if(za(t[0],t[2])||za(t[1],t[3])||za(t[1],t[2]))return t;if(za(t[0],t[1])){if(mf(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=Ta(ke(t[1],t[2]),2*n),o=Ve(t[1],r);return Ba([t[0],e(o),t[2],t[3]])}}if(za(t[2],t[3])){if(mf(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=Ta(ke(t[2],t[1]),2*n),o=Ve(t[2],r);return Ba([t[0],t[1],e(o),t[3]])}}}}function Ba(t){return at(t)?[t[0],t[3]]:ct(t)?Rs(t):t}function za(t,n){return t[0]===n[0]&&t[1]===n[1]}function Fa(t){return t}function Ya(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>{const r=Ia(e[0],t,n),o=Ia(e[1],t,n);return r===e[0]&&o===e[1]?e:[r,o]}}(t,n):Fa;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const c=n[n.length-1],s=c?c[c.length-1]:o(t[0][0]);i[0]=s,i=i.map(t=>o(t)),Ca(i)&&(i=[i[0],i[i.length-1]]),i=ka(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let c=t.slice();return c=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map(t=>t.map(t=>{let o,i=0,c=0,s=0;for(;!(++c>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=Ia(i,e,n);const c=pl(i);c>s&&(s=c,o=i)}return o}));t.push(i)}o.push(t)}return o}(c,n,e,1):c,c=c.map(i),c=c.filter(t=>t.length>0),c}const Va=Ae(t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n});function La(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}const{max:$a}=Math;function Xa(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let c=0;c<e+1;c++)for(let s=0;s<r+1;s++)i[o-(c+s)]+=t[e-c]*n[r-s];return La(i)}function ja(t,n){const e=t.length-1,r=new Array(e+2);for(let n=0;n<e+1;n++)r[n]=t[n]/(e+1-n);return r[e+1]=n,r}const{min:qa,max:Da}=Math;function Wa(t,n){const e=t.length-1,r=n.length-1,o=Da(e,r),i=new Array(o+1),c=qa(e,r);for(let s=0;s<=c;s++)i[o-s]=t[e-s]+n[r-s];for(let n=c+1;n<=e;n++)i[o-n]=t[e-n];for(let t=c+1;t<=r;t++)i[o-t]=n[r-t];return La(i)}function Ha(t){let n=0;for(const e of t){const[t,r]=Si(e),[o,i]=we(e);n+=Fn(ja(Wa(Xa(t,i),en(Xa(r,o))),0),1)}return n/2}function Qa(t){let n=0;for(let e=0;e<t.length-1;e++)n+=ge(t[e],t[e+1]);return n}function Ra(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,c;const s=Qa(t);if(256*mf(t[0],t[t.length-1])<s*s){const[r,o]=co(t,.5),s=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/s,c=(r-n)/s}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,c=(r-n)/t}const u=function(t,n,e){const r=Ve(t[0].map(t=>-t));return Ci(t.map(t=>$e(-n,e,r(t))))}(t,i,c),[[f,l],[a,p]]=u,h=[u[0],[a,l],u[1],[f,p]],d=$e(i,c);return h.map(n=>Ve(t[0],d(n)))}function Ga(t){return{ps:t,ts:[0,1]}}const{round:Ua,PI:Za}=Math;const{abs:Ja,max:Ka,ceil:tp,log2:np}=Math;function ep(n,e,r={}){let o;"undefined"!=typeof _debug_&&(o=performance.now()),e=e||Va(n);const i=tp(np(e)),{inclMicroCorners:c=!0,minLoopArea:s=(2**i*2**-12)**2,forceOrientationNegative:u=!1,booleanOp:f="OR",containerSizeMultiplier:l=16}=r,a=2**i*2**-46*l;(function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=Oi(t),e=Ra(t),r=bf(t,!1);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}})(n=Ya(n,46,i,!1,!0)),n.sort(ji);const p=n.map((n,e)=>t(n,e)),{extremes:h,containers:d}=Sa(p,a,i),v={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0,loopsIdxs:new Set,orientation:-1},g=new Set,m=new Set;for(const t of p){if(g.has(t))continue;g.add(t);const n=Xi(v,t),e=h.get(t)[0].container;if(0===e.inOuts.length)continue;const r=ya(e,n,t),o=2===e.inOuts.length&&2===e.xs.length;if(o&&e.inOuts[0].nextOrPrev===e.inOuts[1])r.bezierPieces=t.beziers.map(Ga),r.parent.children=r.parent.children||new Set,r.parent.children.add(r);else if(Ii(r,g,m,!1),o&&void 0!==r.bezierPieces){const{bezierPieces:t}=r,n=t[t.length-1],e=t[0];if(n.ps===e.ps){const r={ps:n.ps,ts:[n.ts[0],e.ts[1]]};t.shift(),t.pop(),t.unshift(r)}}}"undefined"!=typeof _debug_&&_debug_.verbose;const x=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(...t.children),e.push(...t.children),0===t.windingNum&&(t.children=new Set)}return n}(v);"undefined"!=typeof _debug_&&_debug_.verbose;const b=function(t){return n=>{const e="OR"===t||"XOR"===t?[n]:[];n.used="OR"===t||"XOR"===t;const r=Array.from(n.children);for(;r.length;){const n=r.pop();if("OR"===t&&0===n.windingNum&&e.push(n),"AND"===t){const t=Hi(n);(0===n.windingNum&&t||Di(n.windingNum)>=2&&!t)&&(e.push(n),n.used=!0)}if("XOR"===t){const t=Hi(n);(0===n.windingNum&&t||Di(n.windingNum)>=2&&t)&&(e.push(n),n.used=!0)}for(const t of n.children)r.push(t)}return e}}(f),w=x.map(b).filter(t=>0!==t.length).map(n=>{const e=n[0].orientation;return n.map((n,r)=>function(n,e,r,o){const i=n.bezierPieces?.map(_i);if(void 0===i)return t([],r);const{orientation:c}=n,s=o?-1:e;return t((0===r?s:-s)*c>0?i:i.map(t=>t.toReversed()).toReversed(),r)}(n,e,r,u))}),M=[];for(let t=0;t<w.length;t++){const n=w[t].filter(t=>Ja(Ha(t.beziers))>s);n.length&&(n.sort((t,n)=>ji(t.beziers,n.beziers)),M.push(n))}"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-o);const I=c?M:M.map(n=>n.map(n=>{const{beziers:e}=n,r=function(t,n){!function(t){Ua(function(t){const n=t.length;let e=0;for(let r=0;r<n;r++){const o=t[(r-1+n)%n],i=t[r];e+=ve(i,[0,1])+_(Xe(o,1),Xe(i,0))}return e}(t)/(2*Za))}(t);const e=t.map(t=>t.map(t=>[t[0],t[1]])).filter(t=>Qa(t)>n),r=e.length;for(let t=0;t<r;t++){const n=e[t],o=e[(t+1)%r],i=n[n.length-1],c=o[0];c[0]===i[0]&&c[1]===i[1]||(i[0]=c[0],i[1]=c[1])}return e}(e,Ka(...d.map(t=>Ja(t.box[0][0]-t.box[1][0])),...d.map(t=>Ja(t.box[0][1]-t.box[1][1]))));return t(r,n.idx)}));return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(I),I}const rp=Math.max,op=Math.abs;function ip(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=n[0],v=n[1],g=c-d,m=u-d,x=l-d,b=p-d,w=s-v,_=f-v,M=a-v,I=h-v,S=g*g,N=6*g*m,E=6*x*b,y=w*w,C=6*w*_,O=6*M*I,T=6*m*b+9*x*x,A=2*g*b+18*m*x,P=6*g*x+9*m*m,k=6*_*I+9*M*M,B=2*w*I+18*_*M,z=6*w*M+9*_*_;return[6*(b*b-E+(S-N)+T+(P-A)+(I*I-O+(y-C)+k+(z-B))),5*(E+5*N+3*A-2*(T+2*P+3*S)+(O+5*C+3*B-2*(k+2*z+3*y))),4*(T-3*(A-2*P)-5*(2*N-3*S)+(k-3*(B-2*z)-5*(2*C-3*y))),3*(A-2*(2*P-5*(N-2*S))+(B-2*(2*z-5*(C-2*y)))),2*(P-5*(N-3*S)+(z-5*(C-3*y))),N-6*S+(C-6*y)]}function cp(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n[0],p=n[1],h=i-a,d=s-a,v=f-a,g=c-p,m=u-p,x=l-p,b=h*h,w=h*d,_=d*v,M=g*g,I=g*m,S=m*x,N=g*x+m*m*2,E=h*v+d*d*2;return[x*x+M+2*N-4*(S+I)+(v*v+b+2*E-4*(_+w)),3*(S-N+(3*I-M)+(_-E+(3*w-b))),N-3*(2*I-M)+(E-3*(2*w-b)),I-M+(w-b)]}function sp(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const{sqrt:up}=Math;function fp(t,n,e=!0){let r;if(4===t.length)r=ip(t,n);else if(3===t.length)r=cp(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:ge(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}r=sp(t,n)}const o=ae(r,0,1)?.map(t=>t.t)||[];e&&(o.push(0),o.push(1));let i,c=Number.POSITIVE_INFINITY;for(const e of o){const r=co(t,e),o=mf(r,n);o<c&&(c=o,i={p:r,t:e,d:up(o)})}return i}const{sqrt:lp}=Math;function ap(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function pp(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function hp(t,n){const e=pp(t)-pp(n);return 0!==e?e:t.tS-n.tS}class dp{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,c=t[i],s=t[e];if(this.compare(s,c)>0)break;t[i]=s,t[e]=c,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const vp=Math.max;function gp(t,n,e,r=50){if(1===t.length)return fp(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=ip(t,n);else if(3===t.length)e=cp(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:ge(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=sp(t,n)}const r=ae(e,0,1)?.map(t=>t.t)||[];r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=co(t,e),c=mf(r,n);c>i&&(i=c,o={p:r,t:e,d:lp(c)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=fp(n,t[0]).d,r=fp(n,t[t.length-1]).d;return e>r?e:r}const o=vp(ap(t),ap(n));e=e||o/1e6;const[i,c]=mp(t,0,1),s={tS:0,tE:1,hL:fp(n,t[0]).d,hR:fp(n,t[t.length-1]).d,hEL:i,hER:c},u=new dp(hp);u.insert(s);let f=0,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:c,hL:s,hR:p}=o,h=(i+c)/2,[d,v]=mp(t,i,h),[g,m]=mp(t,h,c),x=co(t,h),b=ge(x,fp(n,x).p),w=vp(s,b,p);if(w>a&&(a=w),l=pp(o),l-a<e)return a;if(f++>r)return a;const _={tS:i,tE:h,hL:s,hR:b,hEL:d,hER:v},M={tS:h,tE:c,hL:b,hR:p,hEL:g,hER:m};u.swapMinOrMax(_),u.insert(M)}}function mp(t,n,e){const r=(e+n)/2,o=Se(t,n,r),i=Se(t,r,e);return[Qa(o),Qa(i)]}function xp(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||pr(r)||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function bp(t){const n=[],e=[t],r=new Set;for(;e.length>0;){const t=$r(e.pop());if(0===t.length)continue;n.push(t);const o=t[0],i=t[t.length-1].next.prevOnCircle;r.add(o),r.add(i);const c=xp(o,!0),s=xp(i,!0),u=c.filter(t=>!r.has(t)),f=s.filter(t=>!r.has(t));for(const t of u)r.add(t);for(const t of f)r.add(t);e.push(...u,...f)}return n}const wp=-1;class _p{datum;color=0;parent;extras;"-1";1;constructor(t){this.datum=t}}function Mp(t){return!!t&&0===t.color}class Ip{compare;duplicatesAllowed;root;nodeCount;valueCount;constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?1:wp]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[-1]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[1]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new _p(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?1:wp;e[n]=t(e[n],r),e[n].parent=e}return Mp(e[1])&&!Mp(e[-1])&&(e=Sp(wp,e)),Mp(e[-1])&&Mp(e[-1][-1])&&(e=Sp(1,e)),Mp(e[-1])&&Mp(e[1])&&Ep(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,c){const s=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(c,i.datum);if(u<0&&!i[-1]||u>0&&!i[1])return i;if(u<0){Mp(i[-1])||Mp(i[-1][-1])||(i=yp(i));const n=t(i[-1],c);return null===n?null:(i[-1]=n,i[-1]&&(i[-1].parent=i),Cp(i))}if(Mp(i[-1])&&(i=Sp(1,i),u=r.compare(c,i.datum)),0===u&&!i[1]){if(s&&!n){if(void 0===e||!0===e(c,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(c,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(c,i.datum)?(o=i.datum,r.valueCount-=1+(s?i.extras.length:0),void r.nodeCount--):null}if(Mp(i[1])||Mp(i[1][-1])||(i=function(t){return Ep(t),Mp(t[-1][-1])&&Ep(t=Sp(1,t)),t}(i),u=r.compare(c,i.datum)),0===u)if(s&&!n)if(void 0===e||!0===e(c,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let s=0;s<t.length;s++)if(!0===e(c,t[s])){o=t.splice(s,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(c,i.datum))return null;{r.valueCount-=1+(s?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[1]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[1]=Np(i[1]),r.nodeCount--}}else{const n=t(i[1],c);if(null===n)return null;i[1]=n}return i[1]&&(i[1].parent=i),Cp(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?1:wp]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[-1]),void e(o[1]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?1:wp]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?1:wp]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}getMinNode=this.getMinOrMaxNode(wp);getMaxNode=this.getMinOrMaxNode(1);min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function Sp(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=0,e}function Np(t){if(t[-1])return Mp(t[-1])||Mp(t[-1][-1])||(t=yp(t)),t[-1]=Np(t[-1]),t[-1]&&(t[-1].parent=t),Cp(t)}function Ep(t){t.color=(t.color+1)%2,t[-1].color=(t[-1].color+1)%2,t[1].color=(t[1].color+1)%2}function yp(t){if(Ep(t),Mp(t[1][-1])){const n=Sp(1,t[1]);t[1]=n,n.parent=t,Ep(t=Sp(wp,t))}return t}function Cp(t){return Mp(t[1])&&(t=Sp(wp,t)),Mp(t[-1])&&Mp(t[-1][-1])&&(t=Sp(1,t)),Mp(t[-1])&&Mp(t[1])&&Ep(t),t}const{cpNodeComparator:Op,getAllOnLoop:Tp}=Gr;function Ap(t){const n=new Map;return Tp(t).forEach(function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new Ip(Op,!1),n.set(e,r)),r.insert(t)}),n}function Pp(t,n=.125,e=50){let r=Cr(t.cpNode);for(;!pr(r);)r=r.next;const o=bp(r),i=new Set;for(let t=0;t<o.length;t++){const r=o[t];let c=0;for(;c<r.length;){const t=c;for(;(c++,c!==r.length)&&!(kp(t,c,r,e)>n);)i.add(r[c])}}r=function(t,n){const e=n;do{if(t(n))return n;n=n.next}while(n!==e)}(pr,r);for(const n of i)Ur(t=>2!==wr(t)&&!t.isHoleClosing)(n)||kr(n,t.meta);return{cpNode:r,meta:{...t.meta,cpTrees:Ap(r)}}}function kp(t,n,e,r){const o=[],i=ur(e[t],e[n].next);for(;t<n+1;t++)o.push(gp(fr(e[t]),i,r));return Math.max(...o)}const{getAllOnLoop:Bp}=Gr;function zp(t){const n=[],e=Bp(t);for(const t of e)mr(t)&&!t.isHoleClosing&&n.push(t);return n}const Fp=function(t,n,e){const r=t.get(n);return void 0!==r&&r.has(e)},Yp=function(t,n,e){let r=t.get(n);void 0===r&&(r=new Set,t.set(n,r)),r.add(e)},{isOnSameCircle:Vp}=Gr;function Lp(t){let n=t,e=t.prevOnCircle;for(;pr(e);)e=e.prevOnCircle;const r=[];do{pr(n)||r.push(n),n=n.nextOnCircle}while(n!==e);return r}function $p(t,n){const e=new Map,r=new Map;return Sr(t,function(t){const o=r.get(t)||n*t.cp.circle.radius,i=t.next,c=function(t,n,e=.4,r=16){if(4===n.length)return ye(t,n,e,r);if(3===n.length)return Ee(t,n,e,r);if(2===n.length)return me(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],fr(t)),s=i.cp.circle.radius;if(o-c>n*s)for(const t of ar(i))if(r.set(t,o-c),!i.isHoleClosing){const{center:t}=i.cp.circle;Yp(e,t[0],t[1])}}),e}function Xp(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const r=function(t){const n=h(t);return n.reduce(function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n},n[0])}(Cr(t.cpNode));!function(t,n){const e=zp(n);for(;e.length;){const r=e.pop(),{center:o}=r.cp.circle;if(!Fp(t,o[0],o[1])||r.isIntersection)continue;let i=r.prevOnCircle,c=!1;for(;!c;){i=i.next;const{center:e}=i.cp.circle;if(Fp(t,e[0],e[1]))if(Vp(i,n))c=!0;else{if(1===Lp(i).length)continue;c=!0}else{for(;pr(i.prevOnCircle);)i=i.prevOnCircle;c=!0}}if(c){const t=i.prevOnCircle;t.next=i,i.prev=t,t.nextOnCircle=i,i.prevOnCircle=t}}}($p(r,n),r);const o={cpNode:r,meta:{...t.meta,cpTrees:Ap(r)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.generated.timing.sats=performance.now()-t)}(e),o}const jp={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},qp={maxCurviness:{range:[.01,3]},maxLength:{range:[1,1024],scaleByMaxRadius:!0},angleIncrement:{range:[.1,360]},satScale:{range:[1,Number.POSITIVE_INFINITY]},simplifyTolerance:{range:[2**-20,2**20],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function Dp(t){return[t[1],-t[0]]}function Wp(t,n){return or(n)&&rr(n).isDull?-Be(Dp(rr(n).tangents[0]),Le(ke(n.p,t.center))):0}function Hp(t){return t[0]*t[0]+t[1]*t[1]}function Qp(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function Rp(t){const n=t[0],e=t[1],r=t[2],o=Hp,i=.5*Qp([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),c=.5*Qp([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),s=Qp([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/s,c/s]}function Gp(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const Up=bn(3);function Zp(t){const{p:n,pE:e}=t,r=n.length-1;if(r<=0)return{p:[],pE:[]};const o=new Array(r),i=new Array(r);for(let t=0;t<r;t++){const c=r-t,s=Sn(c,n[t]);o[t]=s;const u=c&c-1?Up:0,f=st(s);i[t]=c*e[t]+Math.abs(f)*u}return{p:o,pE:i}}function Jp(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let r=0;r<n;r++)e[r]=F(t[r],n-r);return e}function Kp(t,n,e,r){const o=Xn(t,e,n,4);return 0!==o?o:st(jn(r(),e))}const{min:th,max:nh,abs:eh}=Math,rh=1+Number.EPSILON;function oh(t){const n=[],e=t[0];let r={t:e.t,tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={t:i.t,tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function ih(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(T(t[o],Y(n,r[o-1])));return r}const ch=Number.EPSILON/2,sh=ch*ch;function uh(t){const n=t*sh;return n/(1-n)}const fh=Sn,lh=m,{abs:ah}=Math,ph=uh(3);function hh(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const c=[i];for(let s=1;s<r;s++){const r=o[s-1],u=e*r[1],f=ah(e)*i+ah(u),l=t[s];i=n[s]+f+ah(l[1]+u);const a=lh(l,fh(e,r));o.push(a),c.push(i)}return{coeffs:o,errBound:c.map(t=>ph*t)}}const dh=ut,vh=Cn,gh=m,mh=Number.EPSILON,xh=uh(3),{sqrt:bh}=Math;function wh(t,n,e,r=[0,1],o=void 0,i=void 0,c=!1,s=0){const[u,f]=r,l=n.ps,a=0===s&&n===o;let{polyDd:p,polyE:h,getPolyExact:d}=ei(l,e);const v=a?hh(p,h.map(t=>t/xh),i):void 0,g=c&&a?hh(v.coeffs,v.errBound.map(t=>t/xh),i):void 0,m=c&&a?hh(g.coeffs,g.errBound.map(t=>t/xh),i):void 0,{polyDd:x,polyE:b,getPolyExact:w}=void 0!==m?{polyDd:m.coeffs,polyE:m.errBound,getPolyExact:()=>ih(ih(ih(d(),i),i),i)}:void 0!==v?{polyDd:v.coeffs,polyE:v.errBound,getPolyExact:()=>ih(d(),i)}:{polyDd:p,polyE:h,getPolyExact:d},_=function(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let c,s,u=0;if(({pDd:t,pDd_:r,pExact:s}=pn(t,r,o,1)),0===t.length)return i?void 0:[];if(1===t.length)return[];const f=Zn(t);let l,a;[n,e]=ln(n,e,f[0]);const p=t.length-1;let h,d;l=0,a=!1;do{if(h=a?st(jn(w(),n)):Xn(f,n,r),0===h){if(l++,l>=3&&!a){a=!0;continue}n-=2*Number.EPSILON*nh(1,eh(n))}}while(0===h);l=0,a=!1;do{if(d=a?st(jn(w(),e)):Xn(f,e,r),0===d){if(l++,l>=3&&!a){a=!0;continue}e+=2*Number.EPSILON*nh(1,eh(e))}}while(0===d);const v=[{p:t,pE:r}],g=[Zn(t)];for(let t=1;t<=p;t++){const n=Zp(v[t-1]);v.push(n),g.push(Zn(n.p))}let m,x,b=[];for(u=p-1;u>=0;u--)m=v[u].pE,x=g[u],b=_();function w(){if(void 0!==c)return c[u];let t=s||o();for(c=[t];t.length>1;)t=Jp(t),c.push(t);return c[u]}return b;function _(){const t=[],r=Kp(x,m,n,w);if(!b.length){const t=Kp(x,m,e,w);if(r*t>=0)return[];const[o,i,c]=Rn(x,m,n,e,r,t,w);return[{t:c,tS:o,tE:i,multiplicity:1}]}let o=b[0].tS,i=Kp(x,m,o,w);if(r*i>0);else if(r*i<0){const[e,c,s]=Rn(x,m,n,o,r,i,w);t.push({t:s,tS:e,tE:c,multiplicity:1})}let c,s=n,f=r,l=o,a=i;for(let n=0;n<b.length;n++){const r=b[n+1];c=b[n],o=l,s=b[n].tE,l=r?r.tS:e;const u=f;if(i=a,f=Kp(x,m,s,w),a=Kp(x,m,l,w),i*f>0)if(f*a>0)s!==o&&c.multiplicity%2==1&&h();else if(f*a<0){s!==o&&c.multiplicity%2==1&&h();const[n,e,r]=Rn(x,m,s,l,f,a,w);t.push({t:r,tS:n,tE:e,multiplicity:1})}else s!==o&&c.multiplicity%2==1&&h();else if(i*f<0){if(t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:3}),f*a<0){const[n,e,r]=Rn(x,m,s,l,f,a,w);t.push({t:r,tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:c.multiplicity+1}):i*a>0?t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:2}):t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:3});else{if(f*a<0){const[n,e,r]=Rn(x,m,s,l,f,a,w);t.push({t:r,tS:n,tE:e,multiplicity:1})}u*f>0?t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:2}):t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return oh(t)}return t;function h(){const n=(s-o)*rh;let e=1,r=0;for(let t=u+2;t<=p;t++){const i=zn(g[t][0],o);r+=(eh(i[0])+i[1])*e,e*=n*rh}const l=f>0?th(i,f):nh(i,f),a=2*Number.EPSILON*nh(1,eh(s)),h=r*(2*a);(l+(f>0?2*-h*a:2*h*a))*f<0&&t.push({t:c.t,tS:c.tS,tE:c.tE,multiplicity:2})}}}(x,u,f,b,w),M=1===i&&n===o.next||0===i&&n===o,I=0===i&&n===o.prev||1===i&&n===o;0===u?M||_.push({t:0,tS:0,tE:0,multiplicity:1}):1===u?I||_.push({t:1,tS:1,tE:1,multiplicity:1}):_.push({t:u,tS:u,tE:u,multiplicity:1}),0===f?M||_.push({t:0,tS:0,tE:0,multiplicity:1}):1===f?I||_.push({t:1,tS:1,tE:1,multiplicity:1}):_.push({t:f,tS:f,tE:f,multiplicity:1});const S=_.map(r=>{const{tS:o,tE:i}=r;if(i<u||o>f)return;const c=(o+i)/2,s=c<0?0:c>1?1:c,a=ho(l,[o,i]),p=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(a),h=function(t,n,e){const r=n[0],o=n[1],i=r[0],c=r[1],s=o[0],u=o[1],f=e[0],l=e[1];let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(const[n,e]of[[i,c],[i,u],[s,c],[s,u]]){const r=dh(n,f),o=dh(e,l),i=gh(vh(r,r),vh(o,o))[1],c=i*(1-2**t*mh),s=i*(1+2**t*mh);c<=a&&(a=c),s>=p&&(p=s)}return[a,p]}(t,a,e),d=0===s?1:s;return{curve:0===s?n.prev:n,p,t:d,d:(bh(h[0])+bh(h[1]))/2,dSquaredI:h,box:a}});return S.filter(t=>void 0!==t)}const _h=mf;function Mh(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];return u<o?f<i?_h(t[0],n):f>s?_h([o,s],n):(o-u)**2:u>c?f<i?_h([c,i],n):f>s?_h(t[1],n):(u-c)**2:f<i?(i-f)**2:f>s?(f-s)**2:0}const Ih=Ae(Ci);function Sh(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=mf,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let c=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return c=Math.max(0,Math.min(1,c)),e(t,[r[0]+c*(o[0]-r[0]),r[1]+c*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]])),r=mf(t[0],t[1]),o=mf(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const Nh=Ae(Ra);function Eh(t,n,e,r=void 0,o=void 0,i=!1,c=0){n=function(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,c=co(i,o.ts[0]),s=co(i,o.ts[1]),u=Math.min(mf(n,c),mf(n,s));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Mh(Ih(c),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Sh(Nh(c),n)<=e&&r.push(i)}return r}(t,n,e),t}(n,e);const s=[];for(let u=0;u<n.length;u++){const f=n[u],l=wh(t,f.curve,e,f.ts,r,o,i,c);s.push(...l)}let u=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=u&&f.push(n)}return f.map(t=>io(t.curve,t.t,!1))}const{max:yh,ceil:Ch,log2:Oh}=Math;function Th(t,n){return n.map(n=>Eh(5,n,t)[0])}function Ah(t,n){return[n*t[0],n*t[1]]}function Ph(t,n,e){const r=Gp(e);let o,i,c,s,u=1,f=0;do{i=Ve(Ah(e,u),n),c=Th(i,t),s=Gp(ke(i,Rp(c.map(t=>t.p)))),o=s<r,u/=2,f++}while(!o&&f<3);return{newX:i,newV:s,newPoss:c}}const{isSharp:kh}=Gr,Bh=ke;function zh(t,n,e,r,o){const i=2**-32*o,c=[t[0],t[n],t[t.length-1]],s=[r[0],r[n],r[t.length-1]],u=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if(kh(u[0][0]))return;let l,a,p=0,h=function(t,n,e){const r=n[0][0].cp.circle,o=r.center,i=Eh(yh(0,Ch(Oh(t/r.radius)))+1,e[1],o)[0];return Rp([n[0][0].cp.pointOnShape.p,i.p,n[2][1].cp.pointOnShape.p])}(o,u,f),d=Number.POSITIVE_INFINITY;for(;d>i&&p<10;){if(p++,l=Th(h,f),!Number.isFinite(h[0])||!Number.isFinite(h[1]))return;a=Rp(l.map(t=>t.p));const t=Bh(h,a);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=Ph(f,h,t);h=n.newX,l=n.newPoss;const e=Gp(t);d=Math.abs(e-n.newV)}const v=(ge(h,l[0].p)+ge(h,l[1].p)+ge(h,l[2].p))/3,g={center:h,radius:v};let m=0;for(let t=0;t<3;t++){const n=l[t],e=Le(ke(n.p,h)),r=ze(e);if(or(n)&&rr(n).isDull){const t=er(n.curve.ps,n.curve.next.ps).tangents.map(ze),r=Math.asin(Fe(t[0],e)),o=Math.asin(Fe(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),m+=i}else{const t=Le(Xe(n.curve.ps,n.t));m+=Math.abs(Math.asin(Fe(r,t)))}}const x=[];for(let t=0;t<r.length;t++){const n=Eh(5,r[t],h)[0];x.push(ge(n.p,h))}const b=Math.min(...x);return{poss:l,circle:g,error:1*Math.abs(v-b)+1*m,δ3s:u}}const Fh=Ae(t=>!!or(t)&&rr(t).isQuiteSharp);function Yh(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&Fh(t)&&Fh(e)||(e.curve===t.curve&&Qr(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),t.curve.loop===e.curve.loop&&Vh(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function Vh(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function Lh(t,n,e,r){const o={pointOnShape:n,order:e,order2:r},i=t.findBounds({cp:o});if(void 0!==i[0]||void 0!==i[1])return void 0===i[0]||void 0===i[1]?t.max(t.root):i[0].datum}function $h(t,n,e,r,o,i,c){if(void 0!==i&&!function(t,n,e){const r=Qr(n,e.cp);if(r<0)return!0;if(0===r)return!0;const o=t.getMinNode();if(void 0===o)return!0;const i=o.datum;return Qr(t.getMaxNode().datum.cp,n)<0&&i===e}(r,o,i.next)&&!t)return;const s={cp:o,isHoleClosing:n,isIntersection:e,id:c.id,next:void 0,prev:void 0,nextOnCircle:void 0,prevOnCircle:void 0};c.id++;const u=void 0===i?s:i,f=void 0===i?s:u.next;return f.prev=s,u.next=s,s.prev=u,s.next=f,r.insert(s),s}function Xh(t,n,e,r,o,i,c){const{cpTrees:s}=o;let u=!1;const f=i.map((i,f)=>{const l=r[f],a=s.get(i.curve.loop),p={pointOnShape:i,circle:e,order:l,order2:0},h=void 0===c?Lh(a,i,l,0):c[f],d=$h(t,n,!1,a,p,h,o.lastInsertId);return void 0===d&&(u=!0),d});return u||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(t));const e=n.length;for(let t=0;t<e;t++)n[t].nextOnCircle=n[(t+1)%e],n[t].prevOnCircle=n[(t-1+e)%e]}(e,f),{anyFailed:u,cpNodes:f}}const jh=Math.cos(Math.PI/180*1);function qh(t,n,e,r,o,i){const{cpTrees:c,maxCoordinate:s}=t,u=2e-14*s,f=.02*u,l=Lh(c.get(n.curve.loop),n,r,o);if(!l)return;const a=[l,l.next],{p,t:h}=n;for(const t of a){const n=t.cp.pointOnShape.p,r=ge(p,n);if(!(r>u)&&(Be(Le(ke(n,t.cp.circle.center)),Le(ke(p,e.center)))>jh||r<f&&0!==h&&1!==h))return t}}function Dh(t,n){const e=[];for(const t of n)e.push([t,t.next]);const r=function(t,n){const e=t.map(Yh);let r,o=Number.POSITIVE_INFINITY;for(let i=1;i<t.length-1;i++)for(let c=0;c<3;c++){const s=zh(t,i,c,e,n);if(!s)continue;const{circle:u,poss:f,error:l,δ3s:a}=s;l<o&&(o=l,r={circle:u,poss:f,δ3s:a})}return r}(e,t.maxCoordinate),{circle:o,poss:i,δ3s:c}=r,s=[];for(let t=0;t<3;t++)s.push(Wp(o,i[t]));const u=[];for(let n=0;n<i.length;n++){const e=qh(t,i[n],o,s[n],0);void 0!==e&&wr(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?Xh(!0,!1,o,s,t,i,c.map(t=>t[0])).cpNodes:[]}}let Wh=0;function Hh(t,n){if(ir(n.cp.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const r=Ir(n);if(r.length<=2)break;const{closeBysFor3Prong:o,cpNodes:i}=Dh(t,r);if(e.push(i),o.length>0)return{closeBysFor3Prong:o,addedCpNodes:e};if("undefined"!=typeof _debug_&&++Wh===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function Qh(t){for(const n of t)return n}function Rh(t,n,e,r){for(const o of[n[0]])ar(o).forEach(t=>{e.delete(t),r.delete(t)}),kr(o,t)}const{cpNodeComparator:Gh}=Gr;function Uh(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=e[i],s=new Ip(Gh,!1);let u,f;for(const t of c){const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};u=$h(!0,!1,!1,s,{pointOnShape:t,circle:n,order:-1,order2:0},f,r),f=$h(!0,!1,!1,s,e,u,r),u.prevOnCircle=f,f.prevOnCircle=u,u.nextOnCircle=f,f.nextOnCircle=u}o||(o=u);const l=t[i];n.set(l,s)}return o}const Zh=function(t,n,e,r,o){let i=t.get(n);void 0===i&&(i=new Map,t.set(n,i));let c=i.get(e);void 0===c&&(c=new Map,i.set(e,c)),c.set(r,o)};let Jh;function Kh(t,n){Jh=performance.now();const e=new Map;for(const r of t){const t=n.get(r).toArrayInOrder();for(const n of t){const{p:t,t:o}=n.cp.pointOnShape;Zh(e,r,t[0],t[1],n)}}return e}function td(t){const n=[],e=[],r=[],o=[],i=[];for(const c of t)for(const t of c.curves){const c=t.ps,s=bf(c,!0);r.push(s);const u=Ih(c);n.push(u);const f=Ra(c);e.push(f);const l=er(t.ps,t.next.ps);l.isQuiteSharp?o.push(t):l.isQuiteDull&&i.push(t)}return{looseBoundingBoxes:n,tightBoundingBoxes:e,boundingHulls:r,sharpCorners:o,dullCorners:i}}function nd(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];Qa(o.ps)<t||er(o.ps,o.next.ps).isQuiteSharp&&e.push(io(o,1,!0))}return e}}function ed(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=m(t[r],Sn(n,e));return e}const rd=O,od=C,id=Sn,cd=m,sd=Jr;function ud(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[id(3,cd(od(s,n),id(3,od(r,i)))),id(6,sd(rd(i,n),-2*r)),id(3,od(r,n))],[id(3,cd(od(u,e),id(3,od(o,c)))),id(6,sd(rd(c,e),-2*o)),id(3,od(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[sd(rd(2*i,2*n),-4*r),od(2*r,2*n)],[sd(rd(2*c,2*e),-4*o),od(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[od(r,n)],[od(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const fd=C,ld=m,ad=Sn,pd=Jr;function hd(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[ad(6,ld(fd(s,n),ad(3,fd(r,i)))),ad(6,pd(fd(i,2*r),n))],[ad(6,ld(fd(u,e),ad(3,fd(o,c)))),ad(6,pd(fd(c,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[pd(fd(2*i,4*r),2*n)],[pd(fd(2*c,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const dd=Cn,vd=m,gd=x,md=ut,xd=U,bd=Y,wd=T,_d=X;function Md(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let c=-function(t,n){const[e,r]=ud(t),[o,i]=hd(t),c=ed(e,n),s=ed(r,n),u=ed(o,n),f=ed(i,n),l=gd(dd(c,f),dd(s,u)),a=vd(dd(c,c),dd(s,s)),p=dd(a,dd(a,a)),h=Math.sqrt(p[1]);return l[1]/h}(r,i);(c<t||e)&&(c=t);const s=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[bd(3,wd(md(s,n),bd(3,md(r,i)))),bd(6,_d(xd(i,n),-2*r)),bd(3,md(r,n))],[bd(3,wd(md(u,e),bd(3,md(o,c)))),bd(6,_d(xd(c,e),-2*o)),bd(3,md(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[_d(xd(2*i,2*n),-4*r),md(2*r,2*n)],[_d(xd(2*c,2*e),-4*o),md(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[md(r,n)],[md(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[jn(e,n),jn(r,n)]}(r,i).map(t=>t[t.length-1]),u=[-s[1],s[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(c*f),o[1]-u[1]/(c*f)],radius:1/c}}const{abs:Id}=Math,Sd=C,Nd=g;function Ed(t,n,e){const r=Id(t[1]-n[1])>Id(t[0]-n[0]);let o,i,c,s,u,f;r?(o=t[1],i=t[0],c=n[1],s=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],c=n[0],s=n[1],u=e[0],f=e[1]);const l=qu(Sd(i,s),Sd(o,c)),a=x([0,s],In(c,l)),p=qu(m(x(m(Nd(c,c),Nd(s,s)),m(Nd(u,u),Nd(f,f))),xo(Cn(a,Sd(f,s)))),xo(m(Sd(c,u),Cn(l,Sd(s,f))))),h=m(Cn(l,p),a);return r?[h[1],p[1]]:[p[1],h[1]]}function yd(t,n,e,r){const o=(2**-14*t)**2;if(mf(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],c=[r[0]-n[0],r[1]-n[1]],s=[-c[1],c[0]],u=Pe([n,e],[i,[i[0]+s[0],i[1]+s[1]]]);return u?Be([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function Cd(t,n){const[e,r]=t,[o,i]=n,c=C(e,o),s=C(r,i);return m(Cn(c,c),Cn(s,s))[1]}function Od(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Mh(Ih(t),n)<=1.0009765625*e&&r.push(o)}return r}function Td(t,n,e,r){if(or(r)&&rr(r).isDull)return;const o={radius:n,center:e};if(qh(t,r,o,Wp(o,r),0))return;const{anyFailed:i,cpNodes:c}=Xh(!1,!1,o,[-.5,.5],t,[r,r])}const Ad=g,Pd=m,kd=x,Bd=In,{asin:zd,acos:Fd,cos:Yd,sqrt:Vd,PI:Ld}=Math;function $d(t,n,e){if(n+e>=t)return Number.POSITIVE_INFINITY;const r=C(t,n),o=Bd(n,r),i=t-n,c=n*i,s=(c-n*e-e*e/2)/(c+i*e),u=qu(kd(kd(o,Ad(n,e)),Ad(e,e/2)),Pd(o,Bd(e,r)))[1];return Fd(s),n*Fd(u)}const{ceil:Xd,log2:jd,max:qd,sqrt:Dd,abs:Wd,sin:Hd,cos:Qd}=Math;function Rd(t,n,e,r,o){const{loops:i,maxCoordinate:c,squaredDiagonalLength:s}=t,u=o.curve.loop,f=(2**-21*c)**2,l=2**-46*c,a=Dd(s),p=1/a,h=2**-16*c,[d,v]=function(t,n,e,r,o){let i;const c=o.p;let s;if(n)i=[c[0],c[1]-e],s=e;else if(0===t)({center:i,radius:s}=Md(r,o));else{({center:i,radius:s}=Md(r,o,!0));const n=ke(o.p,i),e=$e(Hd(t),Qd(t))(n);i=Ve(o.p)(e)}return[i,s]}(r,n,a,p,o),g=o.p;let m=function(t,n,e,r,o,i,c){const{cpTrees:s}=o;if(n)return r.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const u=or(i)&&rr(i).isDull?1===i.t&&0===t?-1:0===i.t?1:Wp(c,i):0,f=Lh(s.get(e),i,u,0);return f&&f!==f.next.next?Yh([f,f]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(r,n,u,i,t,o,{center:d,radius:v}),x=d;const b=Dd(function(t,n,e,r){let o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const c=n[i],s=c.curve.ps,u=2;for(let n=0;n<u+1;n++){const i=yd(t,e,r,co(s,c.ts[n/u]));if(i){let t=mf(e,i);t<o&&(o=t)}}}return(1+2**-10)*o}(c,m,g,d));let w,_;v>b&&(x=Ye(g,d,b/v));let M=0;for(;M<25;){const i=Cd(x,o.p);M<2&&(m=Od(m,x,i));const s=Eh(qd(0,Xd(jd(c/i)))+1,m,x,o.curve,o.t,e&&0==M&&v!==1/p,r).map(t=>io(t.curve,t.t,!1));let u,a=Number.NEGATIVE_INFINITY;w=[];for(const t of s){if(void 0===t)continue;const n=Cd(o.p,t.p);n>a&&(a=n,u=t),0!==n&&w.push(t)}const g=a;if(_=u,void 0===_||0===g)return;const b=Cd(x,_.p);if(0===M&&v<(1-h)*Dd(b))return void Td(t,v,d,o);if(!n&&g<=qd($d(v,Dd(b),4*l),f))return;if(x=Ed(x,o.p,_.p),Wd(Dd(i)-Dd(b))<l)break;if(M++,25===M)return}return{circle:{center:x,radius:ge(x,_.p)},zs:[_]}}function Gd(t,n,e,r){e[0]=0===e[0].t?io(e[0].curve.prev,1,!0):e[0];const o=e.map(t=>Wp(n,t));for(let r=0;r<e.length;r++)if(qh(t,e[r],n,o[r],0))return;const{anyFailed:i,cpNodes:c}=Xh(r,r,n,o,t,e);if(!i)return r&&function(t,n){const{cpTrees:e}=t,[r,o]=n,i=o.cp,c=$h(!0,!0,!1,e.get(i.pointOnShape.curve.loop),{...i,order2:1},o,t.lastInsertId);c.holeCloserTwin=o,o.holeCloserTwin=c;const s=$h(!0,!0,!1,e.get(r.cp.pointOnShape.curve.loop),{...r.cp,order2:-1},r.prev,t.lastInsertId);s.holeCloserTwin=r,r.holeCloserTwin=s,s.prevOnCircle=c,s.nextOnCircle=c,c.prevOnCircle=s,c.nextOnCircle=s,o.next=r,r.prev=o,s.next=c,c.prev=s}(t,c),c[0];c.forEach(n=>{void 0!==n&&Pr(n,t)})}const{PI:Ud,atan2:Zd}=Math;function Jd(t,n,e,r){let o;const i=n*Ud/180;for(let n=0;n<e.length;n++){const c=[0],s=e[n];if(1===s.t){const{curve:t}=s,n=er(t.ps,t.next.ps);if(n.isQuiteDull){const t=Dp(n.tangents[0]),e=Dp(n.tangents[1]),r=(Zd(t[1],t[0])+2*Ud)%(2*Ud),o=((Zd(e[1],e[0])+2*Ud)%(2*Ud)-r+2*Ud)%(2*Ud);let s=i;for(;s<=o-i/2;)c.push(s),s+=i}}for(let e of c){const i=Rd(t,!1,r,e,s);if(i){const{circle:n,zs:e}=i,r=Gd(t,n,[s,...e],!1);o=o||r}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return o}function Kd(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=Jd(t,n,e[i],r);o=void 0===o?c:o}return o}function tv(t,n=.4,e=10,r=2**-16){const o=[0],i=[1];for(;;){const c=o[o.length-1],s=i[i.length-1],u=Se(t,c,s),f=Qa(u),l=Ie(u);if(f<=e&&l<=n||s-c<=r){if(o.push(i.pop()),1===s)return o;continue}const a=(c+s)/2;i.push(a)}}function nv(t,n,e){return function(r){const o=[],i=r.curves;for(let r=0;r<i.length;r++){const c=i[r],s=c.ps;if(Qa(s)<t)continue;let u=tv(s,n,e);u=2===u.length?[.5]:u,u.push(...pe(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>io(c,t,!0));o.push(...f)}return o}}const ev=C,rv=m,ov=Sn,iv=xo,cv=bo,sv=Sn,uv=Cn,fv=m,lv=x;const av=C,pv=Sn,hv=Cn,dv=m,vv=x;function gv(t){if(at(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&ct(t)&&(t=Rs(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=av(r,n),u=av(i,r),f=vv(u,s),l=av(o,e),a=av(c,o),p=vv(a,l),h=dv(vv(pv(n,vv(f,[0,r])),pv(r,vv(u,[0,r]))),vv(pv(e,vv(p,[0,o])),pv(o,vv(a,[0,o]))));return[dv(hv(f,f),hv(p,p)),bc(h)]}(t);return{minima:[],maxima:ae(n,0,1)?.map(t=>t.t)||[],inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=ud(t),[[s,u],[f,l]]=hd(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[ov(6,rv(ev(s,n),ov(3,ev(r,i))))],[ov(6,rv(ev(u,e),ov(3,ev(o,c))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=uv(a,i),d=uv(p,e),v=uv(u,c),g=uv(u,i),m=uv(f,f),x=uv(s,c),b=uv(l,r),w=uv(l,e),_=uv(f,r),M=uv(r,e),I=uv(r,n),S=uv(r,o),N=uv(e,e),E=uv(e,n),y=uv(e,i),C=uv(n,c),O=uv(n,o),T=uv(n,n),A=uv(c,i),P=uv(c,o),k=uv(i,i),B=uv(i,o),z=uv(o,o),F=lv(uv(a,c),uv(p,r)),Y=lv(h,d),V=fv(uv(u,r),uv(l,c)),L=fv(fv(uv(u,e),uv(s,r)),fv(uv(l,i),uv(f,c))),$=lv(v,b),X=lv(fv(g,x),fv(w,_)),j=fv(uv(r,r),uv(c,c)),q=fv(M,A),D=fv(y,C),W=fv(P,k),H=fv(I,N),Q=fv(uv(e,o),uv(n,i)),R=lv(T,z),G=lv(E,B),U=fv(S,y),Z=lv(M,A),J=fv(uv(r,i),uv(e,c)),K=fv(P,W),tt=fv(I,H),nt=fv(S,D),et=fv(y,D),rt=lv(tt,K),ot=fv(D,C),it=fv(U,C),ct=fv(xo(w),_),st=uv(T,lv(h,sv(3,d))),ut=uv(z,lv(sv(3,h),d)),ft=xo(fv(uv(O,fv(lv(uv(a,e),uv(p,i)),sv(3,lv(uv(l,f),uv(u,s))))),sv(3,uv(uv(s,f),G)))),lt=sv(3,fv(uv(Q,lv(m,uv(s,s))),uv(R,fv(uv(u,f),uv(l,s))))),at=fv(fv(st,ut),fv(ft,lt)),pt=uv(a,fv(uv(o,fv(tt,sv(3,W))),uv(n,et))),ht=uv(p,fv(fv(uv(r,fv(sv(3,T),z)),uv(e,fv(sv(3,E),iv(B)))),uv(n,K))),dt=sv(3,fv(fv(uv(u,fv(lv(uv(l,R),uv(u,O)),iv(lv(uv(f,G),uv(s,Q))))),uv(s,lv(fv(iv(uv(l,G)),uv(f,fv(iv(lv(I,P)),lv(N,k)))),uv(s,it)))),fv(uv(l,fv(uv(l,O),iv(uv(f,Q)))),uv(m,nt)))),vt=fv(lv(pt,ht),dt),gt=uv(a,fv(fv(iv(uv(r,Q)),uv(e,ot)),uv(i,fv(cv(P),K)))),mt=uv(p,fv(fv(iv(uv(r,fv(sv(3,E),B))),uv(e,fv(N,iv(P)))),uv(i,ot))),xt=sv(3,fv(fv(uv(u,lv(fv(iv(lv(uv(l,G),uv(s,it))),uv(f,rt)),uv(u,Q))),uv(s,lv(iv(uv(f,Z)),uv(s,J)))),fv(uv(l,fv(fv(uv(l,Q),iv(uv(f,nt))),uv(s,rt))),uv(m,J)))),bt=fv(lv(gt,mt),xt),wt=uv(a,fv(uv(r,fv(S,iv(D))),uv(c,fv(N,sv(3,W))))),_t=uv(p,fv(uv(r,fv(sv(3,H),K)),uv(c,et))),Mt=sv(3,fv(fv(uv(u,fv(lv(uv(l,rt),uv(u,nt)),iv(lv(uv(f,Z),uv(s,J))))),uv(s,lv(uv(r,lv(ct,uv(s,c))),uv(c,fv(iv(uv(l,i)),uv(f,c)))))),fv(uv(l,fv(uv(l,D),uv(r,fv(iv(uv(f,i)),uv(l,o))))),uv(f,uv(c,ct))))),It=fv(lv(wt,_t),Mt),St=lv(fv(uv(j,Y),iv(uv(q,F))),sv(3,fv(uv(V,X),uv(L,$)))),Nt=lv(uv(F,j),sv(3,uv(V,$)));return{inflectionPoly:[lv(uv(s,o),uv(f,n)),lv(fv(uv(u,o),uv(s,i)),fv(uv(l,n),uv(f,e))),lv(fv(g,x),fv(w,_)),lv(v,b)],otherExtremaPoly:[at,vt,bt,It,St,Nt]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=ae(r,0,1)?.map(t=>t.t)||[],i=function(t){const n=t.length-1;if(n<=0)return[];const e=new Array(n);for(let r=0;r<n;r++)e[r]=Sn(n-r,t[r]);return e}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=jn(i,n);j($(jn(e,n),r))>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:ae(e,0,1)?.map(t=>t.t)||[]}}const mv=Number.POSITIVE_INFINITY,xv=Ae(function(t){const n=[[{bezier:void 0,t:void 0,val:mv},{bezier:void 0,t:void 0,val:mv}],[{bezier:void 0,t:void 0,val:-mv},{bezier:void 0,t:void 0,val:-mv}]];return t.curves.forEach(function(t){const e=Ti(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}}),{minY:io(n[0][1].bezier,n[0][1].t,!0),minX:io(n[0][0].bezier,n[0][0].t,!0),maxX:io(n[1][0].bezier,n[1][0].t,!0),maxY:io(n[1][1].bezier,n[1][1].t,!0)}});function bv(t){return xv(t).minY}function wv(t){const{loops:n}=t,e=n.map(bv);let r;for(let n=1;n<e.length;n++){const o=e[n],i=Rd(t,!0,!1,0,o);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:c,zs:s}=i,u=Gd(t,c,[o,s[0]],!0);r=void 0===r?u:r}return r}const _v=Ae(function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=xv(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>c&&(e=t.maxX,c=t.maxX.p[0]),t.minY.p[1]<s&&(r=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}});function Mv(t,n,e){const{minBezLength:r,maxCurviness:o,maxLength:i,angleIncrement:c}=e,s=nd(r),u=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];Qa(o.ps)<t||er(o.ps,o.next.ps).isQuiteDull&&(e.push(io(o,1,!0)),e.push(io(o.next,0,!0)))}return e}}(r),f=nv(r,o,i),l=function(t){return function(n){const e=[],r=function(t){return function(n){const e={minima:[],maxima:[]};for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(Qa(o.ps)<t)continue;const{minima:i,maxima:c}=gv(o.ps);e.minima.push(...i.map(t=>io(o,t,!0))),e.maxima.push(...c.map(t=>io(o,t,!0)))}return e}}(t)(n);return e.push(...r.minima,...r.maxima),e}}(r),a=t.map(s),p=_v(t),d=(p.maxX.p[0]-p.minX.p[0])**2+(p.maxY.p[1]-p.minY.p[1])**2,v=new Map,g={id:0};Uh(t,v,a,g);const m=td(t),x={maxCoordinate:n,squaredDiagonalLength:d,loops:t,cpTrees:v,pointToCpNode:Kh(t,v),lastInsertId:g,...m};let b;if(b=wv(x),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:b,meta:x};if(function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-Jh,Jh=n}(),b=Kd(x,c,t.map(u),!1)||b,b=Kd(x,c,t.map(l),!0)||b,b=Kd(x,c,t.map(f),!1)||b,function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-Jh,Jh=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:b,meta:x};if(b=function(t,n){if(void 0===n)return;const e=new Set;let r=!0;for(;r;){r=!1;const o=new Set(h(n));for(const n of o){const{closeBysFor3Prong:i,addedCpNodes:c}=Hh(t,n);c.length>0&&(r=!0),void 0===i?e.add(n):(r=!0,Rh(t,i,o,e)),c.forEach(t=>t.forEach(t=>e.add(t)))}n=Qh(e)}return Qh(e)}(x,b),void 0===b)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:b,meta:x};const w={cpNode:b,meta:x};return"undefined"!=typeof _debug_&&(_debug_.generated.timing.threeProngs+=performance.now()-Jh),w}function Iv(t,n){const{maxCoordinate:e,maxRadius:r}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const c of t)for(const t of c)for(const c of t){const t=c[0],s=c[1],u=rp(op(t),op(s));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),s<o&&(o=s),s>i&&(i=s)}return{maxCoordinate:n,maxRadius:rp(r-e,i-o)}}(t),o=function(t,n,e){const r=Math.ceil(Math.log2(t)),o=Math.ceil(Math.log2(n)),i={...e};for(const t in qp){let n=i[t];const e=qp[t],{range:c,scaleByMaxCoordinate:s,scaleByMaxRadius:u}=e;n<c[0]&&(n=c[0]),n>c[1]&&(n=c[1]),s?n*=2**r*2**-10:u&&(n*=2**o*2**-10),i[t]=n}return i}(e,r,{...jp,...n||{}}),{applySat:i,simplify:c,satScale:s,simplifyTolerance:u}=o,f=ep(t,void 0,{forceOrientationNegative:!0}),l=[];for(const t of f){let n=Mv(t,e,o);void 0!==n&&(i&&(n=Xp(n,s)),c&&(n=Pp(n,u,50)),l.push(n))}return l}const{getProngCount:Sv,isOnSameCircle:Nv,isTerminating:Ev}=Gr;function yv(t){const n=function(t){let n=t;const e=zp(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(Sv(o)>2){const n=o.nextOnCircle;Nv(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(Ev(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(Cr(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:Ap(n)}}}let Cv=0;function Ov(t){return t.map(t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n})}function Tv(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const Av={δToString:Ov,δsToString:function(t){return t.map(Ov)},pointToStr:Tv,pointsToStr:function(t,n=3){return t.map(t=>Tv(t,n))},nameObj:function(t,n=""){t.name=""+n+Cv++}},Pv="red thin10 nofill ",kv="http://www.w3.org/2000/svg";function Bv(t,n,e=Pv,r){const o=n.center,i=n.radius,c=document.createElementNS(kv,"circle");return c.setAttributeNS(null,"cx",o[0].toString()),c.setAttributeNS(null,"cy",o[1].toString()),c.setAttributeNS(null,"r",i.toString()),c.setAttributeNS(null,"class",e),t.appendChild(c),r&&setTimeout(()=>c.remove(),r),[c]}function zv(t,n,e=3,r="red",o){const[i]=Bv(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout(()=>i.remove(),o),[i]}function Fv(t,n,e=Pv,r=0,o=void 0,i=0){const c=document.createElementNS(kv,"line");c.setAttributeNS(null,"x1",n[0][0].toString()),c.setAttributeNS(null,"y1",n[0][1].toString()),c.setAttributeNS(null,"x2",n[1][0].toString()),c.setAttributeNS(null,"y2",n[1][1].toString()),c.setAttributeNS(null,"class",e),t.appendChild(c);let s=[];if(void 0!==o)for(const e of n)s.push(...zv(t,e,i,o,r));for(const n of s)t.appendChild(n);const u=[c,...s];return r&&setTimeout(()=>{for(const t of u)t.remove()},r),u}function Yv(t,n,e=Pv,r=3,o){const i=Bv(t,{center:n,radius:r},e),c=[[n[0]-r,n[1]],[n[0]+r,n[1]]],s=[[n[0],n[1]-r],[n[0],n[1]+r]],u=Fv(t,c,e),f=Fv(t,s,e);return o&&setTimeout(()=>{i.forEach(t=>t.remove()),u.forEach(t=>t.remove()),f.forEach(t=>t.remove())},o),[...i,...u,...f]}function Vv(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function Lv(t,n,e=Pv,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p]]=n,h=document.createElementNS(kv,"path");h.setAttributeNS(null,"d",`M${s} ${u} Q${f} ${l} ${a} ${p}`),e&&h.setAttributeNS(null,"class",e);let d=[];if(void 0!==o)for(const e of n)d.push(...zv(t,e,i,o,r));let v=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)v.push(...Fv(t,[n[e],n[e+1]],c,r));const g=[h,...d,...v];for(const n of g)t.appendChild(n);return r&&setTimeout(()=>{for(const t of g)t.remove()},r),g}function $v(t,n,e=Pv,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p],[h,d]]=n;if(s===h&&f===h&&a===h&&u===d&&l===d&&p===d)return Yv(t,[s,u],e,.2,r);const v=document.createElementNS(kv,"path");v.setAttributeNS(null,"d",`M${s} ${u} C${f} ${l} ${a} ${p} ${h} ${d}`),v.setAttributeNS(null,"class",e);let g=[];if(void 0!==o)for(const e of n)g.push(...zv(t,e,i,o,r));let m=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)m.push(...Fv(t,[n[e],n[e+1]],c,r));const x=[v,...g,...m];for(const n of x)t.appendChild(n);return r&&setTimeout(()=>{for(const t of x)t.remove()},r),x}function Xv(t,n,e=Pv,r=0,o=void 0,i=0,c=void 0){return 2===n.length?Fv(t,n,e,r,o,i):3===n.length?Lv(t,n,e,r,o,i,c):4===n.length?$v(t,n,e,r,o,i,c):[]}const jv=["red","green","cyan","blue"];function qv(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,c],[s,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*s*e*n**2+f*n**3,o*e**3+3*c*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,c],[s,u]]=t;return[r*e**2+2*i*e*n+s*n**2,o*e**2+2*c*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,c]]=t;return[r*e+i*n,o*e+c*n]}return[NaN,NaN]}function Dv(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,c=1-n,s=[c*e+n*o,c*r+n*i];return[[[e,r],s],[s,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[c,s]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*c,u*u*r+2*u*n*i+n*n*s];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*c,u*i+n*s],[c,s]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[c,s],[u,f]]=t,l=1-n,a=n*n,p=a*n,h=l*l,d=h*l,v=[p*u+3*l*a*c+3*h*n*o+d*e,p*f+3*l*a*s+3*h*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[a*c+2*l*n*o+h*e,a*s+2*l*n*i+h*r],v],[v,[a*u+2*n*l*c+h*o,a*f+2*n*l*s+h*i],[n*u+l*c,n*f+l*s],[u,f]]]}(t,n):[]}const Wv={circle:Bv,crossHair:Yv,dot:zv,line:Fv,rect:function(t,n,e=Pv,r){const[[o,i],[c,s]]=n,u=o<c?o:c,f=i<s?i:s,l=Math.abs(o-c),a=Math.abs(i-s),p=document.createElementNS(kv,"rect");return p.setAttributeNS(null,"x",u.toString()),p.setAttributeNS(null,"y",f.toString()),p.setAttributeNS(null,"width",l.toString()),p.setAttributeNS(null,"height",a.toString()),e&&p.setAttributeNS(null,"class",e),t.appendChild(p),r&&setTimeout(()=>p.remove(),r),[p]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const c=n[r],s=o?"thin5 nofill "+jv[r%jv.length]:e;i.push(...Xv(t,c,s))}return r&&setTimeout(()=>i.forEach(t=>t.remove()),r),i},bezier:Xv,bezierPiece:function(t,n,e,r=Pv,o){const i=e[0]===e[1]?Yv(t,qv(n,e[0]),r,1.5):Xv(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=qv(t,n[0]);return[e,e,e,e]}return 0===n[0]?Dv(t,n[1])[0]:1===n[1]?Dv(t,n[0])[1]:Dv(Dv(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout(()=>i.forEach(t=>t.remove()),o),i},quadBezier:Lv,cubicBezier:$v,polygon:function(t,n,e=Pv,r){const o=document.createElementNS(kv,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},loop:function(t,n,e=Pv,r){if(!n.length)return[];const o=document.createElementNS(kv,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${Vv(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},polyline:function(t,n,e=Pv,r){if(n.length<2)return[];const o=document.createElementNS(kv,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},text:function(t,n,e,r,o=Pv,i){const c=document.createElementNS(kv,"text");return c.setAttributeNS(null,"x",n[0].toString()),c.setAttributeNS(null,"y",n[1].toString()),c.setAttributeNS(null,"font-size",r.toString()),c.setAttributeNS(null,"class",o),c.textContent=e,t.appendChild(c),i&&setTimeout(()=>c.remove(),i),[c]}};function Hv(t,n){return(n,e,r,o=0,i=1)=>{let c,s;switch(e.isHoleClosing){case!1:c="red ",s="2";break;case!0:c="cyan ",s="10"}const u=e.cp,{circle:f,pointOnShape:l}=u,{center:a,radius:p}=f,{isSource:h,p:d}=l,v=e.nextOnCircle.cp.pointOnShape.p,g=h?d:v,m=h?v:d,{line:x,dot:b,circle:w,crossHair:_}=Wv,M=b(n,f.center,.02*i,"yellow",o);return[...w(n,f,c+"thin"+s+" nofill",o),...b(n,g,.005*i,c,o),...b(n,m,.01*i,c,o),...t?_(n,f.center,"red thin2 nofill",.002*i,o):[],...M]}}function Qv(t,n){return{center:t.center,radius:n*t.radius}}const{getAllOnCircle:Rv}=Gr,{isTerminating:Gv}=Gr,Uv=["thin10 blue nofill","thin10 red nofill"];function Zv(t,n,e,r=0,o=1){let i=n.cpNode;if(!i)return[];for(;!Gv(i);)i=i.next;const c=[];let s=0;return Sr(i,n=>{if(Gv(n))return;const e=fr(n);e&&(c.push(...Wv.bezier(t,e,Uv[s%2],r)),s++)}),c}function Jv(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function Kv(t,n,e="thin5 purple nofill",r=0,o=1){const i=[],c=[];for(const t of n){if(pr(t))continue;const n=fr(t);n&&c.push(n)}return i.push(...a(t,c,e,r)),i}const tg={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:c,pointOnShape:s}=i;return[...Wv.dot(t,s.p,.02*o,"deeppink",r),...Wv.dot(t,c.center,.05*o,"deeppink",r),...Wv.circle(t,c,"deeppink thin5 nofill",r)]},twoProng:Hv(!1),threeProng:function(t,n,e,r=0,o=1){const i=Qv(n.cp.circle,1),{center:c,radius:s}=i,u=Gr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=Wv,p=l(t,i,"blue thin2 nofill",r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...Wv.line(t,[e,c],"thin5 red",r))}const v=a(t,i.center,"red thin2 nofill",.02*o,r);return[...h,...d,...p,...v]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return Wv.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,c],[s,u]]=n;return n=[[i,c],[s,c],[s,u],[i,u]],Wv.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return Wv.polygon(t,n,"thin5 pinker nofill",r)},vertex:function(t,n,e,r=0,o=1){const i=n.cp.circle;let c=[];return c=[...Wv.dot(t,i.center,.01*o,"darkgreen",r)],c},mat:Zv,maxVertex:function(t,n){const e=n.cp.circle;return Wv.circle(t,e,"brown thin10 nofill")},leaves:function(t,n,e="thin10 deeppink nofill",r=0,o=1){const i=[],{line:c,dot:s,circle:u}=Wv;for(const f of n){const n=f.cp,{circle:l}=n,{center:a,radius:p}=l,h=[Jv(t,a,.5,"pinker thin5 nofill")],d=Gr.getAllOnCircle(f).map(t=>t.cp.pointOnShape),v=[],g=[];for(let n=0;n<d.length;n++){const e=d[n].p;g.push(...s(t,e,.01*(n+1)*o,"pinker",r)),v.push(...c(t,[e,a],"thin5 red",r))}const m=u(t,l,e,r);i.push(...m,...g,...v,...h)}return i},cull:function(t,n,e="thin10 cyan nofill",r=0,o=1){const i=[];return i.push(...Wv.crossHair(t,n,e,.1*o,r)),i},cpNode:function(t,n,e="blue thin2 nofill",r=0,o=1){const i=Qv(n.cp.circle,1),{center:c,radius:s}=i,u=Gr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=Wv,p=l(t,i,e,r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...Wv.line(t,[e,c],"thin5 red",r))}const v=a(t,c,"orange thin10 nofill",2*o,r);return[...h,...d,...p,...v]},branch:Kv,holeCloser:Hv(!1),speed:function(t,n,e,r=0,o=1){const i=[],c=xr(0)(n);if(void 0===c)return[];const s=n.cp.pointOnShape,{p:u,t:f}=s,l=c*o/8,a=Ta(function(t,n){const[e,r]=we(t);return[-Fn(r,n),Fn(e,n)]}(s.curve.ps,f),l);return i.push(...Wv.line(t,[u,Ve(u,a)],"red thin5",r)),i}},ng={...tg,twoProng:Hv(!0)};function eg(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],twoProng:[],looseBoundingBox:[],tightBoundingBox:[],vertex:[],threeProng:[],boundingHull:[],mat:[],cpNode:[],maxVertex:[],leaves:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...tg},...Av},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}const rg={oneProng:[],twoProng:[],threeProng:[],looseBoundingBox:[],tightBoundingBox:[],boundingHull:[],vertex:[],mat:[],maxVertex:[],leaves:[],cull:[],cpNode:[],branch:[],holeCloser:[],speed:[]},og=Object.keys(rg);function ig(t,n,e,r){const o=[];for(const r of t)o.push({type:0,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(cg);const i=new Set,c=[];for(const t of o){const{item:n}=t;if(0===t.type){for(const t of i.values())r(n,t)&&c.push([n,t]);i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function cg(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function sg(t){return t}function ug(t,n){const e=Rd(t,!1,!1,0,n);if(void 0===e)return;const{circle:r,zs:o}=e;return Gd(t,r,[n,...o],!1)}const fg=1e-4;function lg(t,n){const e=t.cp.pointOnShape,r=n.cp.pointOnShape;let{curve:o,p:i,t:c}=e,{curve:s,p:u,t:f}=r;if(i[0]===u[0]&&i[1]===u[1])return[i];1===c&&(c=0,o=o.next),0===f&&(f=1,s=s.prev);const{ps:l}=o,{ps:a}=s,p=[i,Ve(i)(Le(Xe(l,c)))],h=[u,Ve(u)(Le(Xe(a,f)))],d=Pe(p,h),v=ke(i,u);let g;if(d){const t=ke(i,d),n=ke(u,d);g=Be(t,v)<0||Be(n,v)>0}else g=!0;if(!g)return[i,d,u];const m=ke(p[0],p[1]),x=ke(h[0],h[1]),b=Math.abs(Fe(v,m))/9,w=Math.abs(Fe(v,x))/9;return b>.01||w>.01||b>fg||w>fg?void 0:[i,u]}const ag=Ae(function(t){return Ce(fr(t))});function pg(t,n){const e=function(t){const n=new Map;for(let e of t)for(let r of t){const t=e.cp.circle.center,o=r.cp.circle.center,i=e.cp.pointOnShape.p,c=r.cp.pointOnShape.p;r!==e&&t[0]===o[0]&&t[1]===o[1]&&i[0]===c[0]&&i[1]===c[1]&&n.set(e,r)}return n}(n),r=t.length,o=[];for(let n=0;n<r;n++){const i=t[n],c=[];for(let o=0;o<r;o++){const r=t[o];if(n===o){c.push(0);continue}let s=Number.POSITIVE_INFINITY;for(const t of ar(i)){let n=ag(t),o=t.next;for(;!Fr(o,r);)if(o.isHoleClosing)o=hg(e,o);else{if(Zr(o)){n=Number.POSITIVE_INFINITY;break}n+=ag(o),o=o.next}n<s&&(s=n)}c.push(s)}o.push(c)}return o}function hg(t,n){return t.get(n).next}export{Gr as CpNodeFs,e as beziersToSvgPathStr,Cr as clone,sg as connectHoleClosers,Rr as cpNodeComparator,Uh as createInitialCpTree,io as createPos,og as debugElemNames,a as drawBeziersAsSinglePath,Kv as drawBranch,tg as drawElemFs,ng as drawElemFsDetailed,Zv as drawMat,rg as emptyDebugElems,eg as enableDebugForMat,Mr as enhanceCpNode,Rd as find2Prong,ug as findAndAdd2Prong,wv as findAndAddHoleClosing2Prongs,Iv as findMats,p as floydWarshall,ar as getAllOnCircle,h as getAllOnLoop,Hr as getAllVertices,Tr as getBoundaryBezierPartsToNext,jr as getBoundaryBeziersBetween,Ar as getBoundaryBeziersToNext,Yh as getBoundaryPieceBeziers,$r as getBranch,Xr as getBranchBeziers,bp as getBranches,Br as getChildren,Eh as getCloseBoundaryPointsCertified,Mh as getClosestSquareDistanceToRect,cr as getEdgeDirection,zr as getFirstExit,nv as getFor2ProngsOnLoop,pg as getGraph,d as getHoleClosers,lg as getImpliedBoundaryBezierBetween,Wr as getInitialDegAngleBetweenMatCurves,ur as getMatCurveBetween,fr as getMatCurveToNext,Dr as getMatCurvesBetween,td as getPartialMeta,l as getPathsFromStr,Kh as getPointToCpNode,wh as getPotentialClosestPointsOnCurveCertified,wr as getProngCount,hr as getRealProngCount,qr as getSalience,$p as getSatCulls,_v as getShapeBounds,nd as getSharpCornersOnLoop,xr as getSmoothedSpeed$,dr as getSpeed,Nr as getVertexForwardChildren,mr as isFullyTerminating,Fr as isOnSameCircle,Yr as isOneProng,_r as isSharp,pr as isTerminating,Lr as isTrivial,Vr as isTwoProng,Zr as isVertexSpecial,t as loopFromBeziers,kr as removeVertex,Pp as simplifyMat,ig as sweepLine,Xp as toScaleAxis,Ir as traverseCp,Sr as traverseEdges,Er as traverseVertices,yv as trimMat};
|