define(["exports"],(function(e){"use strict";function n(e,n,i){i=i||2;var u,v,f,p,a,l,c,s=n&&n.length,Z=s?n[0]*i:e.length,g=t(e,0,Z,i,!0),d=[];if(!g||g.next===g.prev)return d;if(s&&(g=function(e,n,x,i){var u,v,f,p=[];for(u=0,v=n.length;u80*i){u=f=e[0],v=p=e[1];for(var w=i;wf&&(f=a),l>p&&(p=l);c=0!==(c=Math.max(f-u,p-v))?1/c:0}return x(g,d,i,u,v,c),d}function t(e,n,t,r,x){var i,u;if(x===j(e,n,t,r)>0)for(i=n;i=n;i-=r)u=b(i,e[i],e[i+1],u);return u&&Z(u,u.next)&&(m(u),u=u.next),u}function r(e,n){if(!e)return e;n||(n=e);var t,r=e;do{if(t=!1,r.steiner||!Z(r,r.next)&&0!==s(r.prev,r,r.next))r=r.next;else{if(m(r),(r=n=r.prev)===r.next)break;t=!0}}while(t||r!==n);return n}function x(e,n,t,y,o,p,h){if(e){!h&&p&&function(e,n,t,r){var x=e;do{null===x.z&&(x.z=a(x.x,x.y,n,t,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==e);x.prevZ.nextZ=null,x.prevZ=null,function(e){var n,t,r,x,i,u,v,f,y=1;do{for(t=e,e=null,i=null,u=0;t;){for(u++,r=t,v=0,n=0;n0||f>0&&r;)0!==v&&(0===f||!r||t.z<=r.z)?(x=t,t=t.nextZ,v--):(x=r,r=r.nextZ,f--),i?i.nextZ=x:e=x,x.prevZ=i,i=x;t=r}i.nextZ=null,y*=2}while(u>1)}(x)}(e,y,o,p);for(var l,c,s=e;e.prev!==e.next;)if(l=e.prev,c=e.next,p?u(e,y,o,p):i(e))n.push(l.i/t),n.push(e.i/t),n.push(c.i/t),m(e),e=c.next,s=c.next;else if((e=c)===s){h?1===h?x(e=v(r(e),n,t),n,t,y,o,p,2):2===h&&f(e,n,t,y,o,p):x(r(e),n,t,y,o,p,1);break}}}function i(e){var n=e.prev,t=e,r=e.next;if(s(n,t,r)>=0)return!1;for(var x=e.next.next;x!==e.prev;){if(l(n.x,n.y,t.x,t.y,r.x,r.y,x.x,x.y)&&s(x.prev,x,x.next)>=0)return!1;x=x.next}return!0}function u(e,n,t,r){var x=e.prev,i=e,u=e.next;if(s(x,i,u)>=0)return!1;for(var v=x.xi.x?x.x>u.x?x.x:u.x:i.x>u.x?i.x:u.x,o=x.y>i.y?x.y>u.y?x.y:u.y:i.y>u.y?i.y:u.y,p=a(v,f,n,t,r),h=a(y,o,n,t,r),c=e.prevZ,Z=e.nextZ;c&&c.z>=p&&Z&&Z.z<=h;){if(c!==e.prev&&c!==e.next&&l(x.x,x.y,i.x,i.y,u.x,u.y,c.x,c.y)&&s(c.prev,c,c.next)>=0)return!1;if(c=c.prevZ,Z!==e.prev&&Z!==e.next&&l(x.x,x.y,i.x,i.y,u.x,u.y,Z.x,Z.y)&&s(Z.prev,Z,Z.next)>=0)return!1;Z=Z.nextZ}for(;c&&c.z>=p;){if(c!==e.prev&&c!==e.next&&l(x.x,x.y,i.x,i.y,u.x,u.y,c.x,c.y)&&s(c.prev,c,c.next)>=0)return!1;c=c.prevZ}for(;Z&&Z.z<=h;){if(Z!==e.prev&&Z!==e.next&&l(x.x,x.y,i.x,i.y,u.x,u.y,Z.x,Z.y)&&s(Z.prev,Z,Z.next)>=0)return!1;Z=Z.nextZ}return!0}function v(e,n,t){var x=e;do{var i=x.prev,u=x.next.next;!Z(i,u)&&g(i,x,x.next,u)&&M(i,u)&&M(u,i)&&(n.push(i.i/t),n.push(x.i/t),n.push(u.i/t),m(x),m(x.next),x=e=u),x=x.next}while(x!==e);return r(x)}function f(e,n,t,i,u,v){var f=e;do{for(var y=f.next.next;y!==f.prev;){if(f.i!==y.i&&c(f,y)){var o=z(f,y);return f=r(f,f.next),o=r(o,o.next),x(f,n,t,i,u,v),void x(o,n,t,i,u,v)}y=y.next}f=f.next}while(f!==e)}function y(e,n){return e.x-n.x}function o(e,n){if(n=function(e,n){var t,r=n,x=e.x,i=e.y,u=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var v=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(v<=x&&v>u){if(u=v,v===x){if(i===r.y)return r;if(i===r.next.y)return r.next}t=r.x=r.x&&r.x>=o&&x!==r.x&&l(it.x||r.x===t.x&&p(t,r)))&&(t=r,h=f)),r=r.next}while(r!==y);return t}(e,n),n){var t=z(n,e);r(t,t.next)}}function p(e,n){return s(e.prev,e,n.prev)<0&&s(n.next,e,e.next)<0}function a(e,n,t,r,x){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-t)*x)|e<<8))|e<<4))|e<<2))|e<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=32767*(n-r)*x)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function h(e){var n=e,t=e;do{(n.x=0&&(e-u)*(r-v)-(t-u)*(n-v)>=0&&(t-u)*(i-v)-(x-u)*(r-v)>=0}function c(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!function(e,n){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==n.i&&t.next.i!==n.i&&g(t,t.next,e,n))return!0;t=t.next}while(t!==e);return!1}(e,n)&&(M(e,n)&&M(n,e)&&function(e,n){var t=e,r=!1,x=(e.x+n.x)/2,i=(e.y+n.y)/2;do{t.y>i!=t.next.y>i&&t.next.y!==t.y&&x<(t.next.x-t.x)*(i-t.y)/(t.next.y-t.y)+t.x&&(r=!r),t=t.next}while(t!==e);return r}(e,n)&&(s(e.prev,e,n.prev)||s(e,n.prev,n))||Z(e,n)&&s(e.prev,e,e.next)>0&&s(n.prev,n,n.next)>0)}function s(e,n,t){return(n.y-e.y)*(t.x-n.x)-(n.x-e.x)*(t.y-n.y)}function Z(e,n){return e.x===n.x&&e.y===n.y}function g(e,n,t,r){var x=w(s(e,n,t)),i=w(s(e,n,r)),u=w(s(t,r,e)),v=w(s(t,r,n));return x!==i&&u!==v||(!(0!==x||!d(e,t,n))||(!(0!==i||!d(e,r,n))||(!(0!==u||!d(t,e,r))||!(0!==v||!d(t,n,r)))))}function d(e,n,t){return n.x<=Math.max(e.x,t.x)&&n.x>=Math.min(e.x,t.x)&&n.y<=Math.max(e.y,t.y)&&n.y>=Math.min(e.y,t.y)}function w(e){return e>0?1:e<0?-1:0}function M(e,n){return s(e.prev,e,e.next)<0?s(e,n,e.next)>=0&&s(e,e.prev,n)>=0:s(e,n,e.prev)<0||s(e,e.next,n)<0}function z(e,n){var t=new k(e.i,e.x,e.y),r=new k(n.i,n.x,n.y),x=e.next,i=n.prev;return e.next=n,n.prev=e,t.next=x,x.prev=t,r.next=t,t.prev=r,i.next=r,r.prev=i,r}function b(e,n,t,r){var x=new k(e,n,t);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function m(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function k(e,n,t){this.i=e,this.x=n,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function j(e,n,t,r){for(var x=0,i=n,u=t-r;i0&&(r+=e[x-1].length,t.holes.push(r))}return t},e.earcut=n}));