// d3-geo@3.1.1 downloaded from https://ga.jspm.io/npm:d3-geo@3.1.1/src/index.js import{Adder as n,merge as t,range as r}from"d3-array";var e=1e-6;var i=1e-12;var o=Math.PI;var a=o/2;var c=o/4;var u=o*2;var l=180/o;var s=o/180;var f=Math.abs;var p=Math.atan;var g=Math.atan2;var h=Math.cos;var d=Math.ceil;var v=Math.exp;Math.floor;var m=Math.hypot;var E=Math.log;var S=Math.pow;var y=Math.sin;var R=Math.sign||function(n){return n>0?1:n<0?-1:0};var w=Math.sqrt;var P=Math.tan;function acos(n){return n>1?0:n<-1?o:Math.acos(n)}function asin(n){return n>1?a:n<-1?-a:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&M.hasOwnProperty(n.type)&&M[n.type](n,t)}var j={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e=0?1:-1,i=e*r,o=h(t),a=y(t),u=$*a,l=q*o+u*h(i),f=u*e*y(i);b.add(g(f,l));C=n,q=o,$=a}function area(t){_=new n;geoStream(t,N);return _*2}function spherical(n){return[g(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=h(r);return[e*h(t),e*y(t),y(r)]}function cartesianDot(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function cartesianCross(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function cartesianAddInPlace(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function cartesianScale(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function cartesianNormalizeInPlace(n){var t=w(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var I,A,z,F,T,U,G,k,H,W,D;var O={point:boundsPoint$1,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){O.point=boundsRingPoint;O.lineStart=boundsRingStart;O.lineEnd=boundsRingEnd;H=new n;N.polygonStart()},polygonEnd:function(){N.polygonEnd();O.point=boundsPoint$1;O.lineStart=boundsLineStart;O.lineEnd=boundsLineEnd;b<0?(I=-(z=180),A=-(F=90)):H>e?F=90:H<-e&&(A=-90);D[0]=I,D[1]=z},sphere:function(){I=-(z=180),A=-(F=90)}};function boundsPoint$1(n,t){W.push(D=[I=n,z=n]);tF&&(F=t)}function linePoint(n,t){var r=cartesian([n*s,t*s]);if(k){var e=cartesianCross(k,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a,c=n-T,u=c>0?1:-1,p=o[0]*l*u,g=f(c)>180;if(g^(u*TF&&(F=a)}else if(p=(p+360)%360-180,g^(u*TF&&(F=t)}if(g)nangle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){nz&&(z=n)}else n>T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n)}else W.push(D=[I=n,z=n]);tF&&(F=t);k=r,T=n}function boundsLineStart(){O.point=linePoint}function boundsLineEnd(){D[0]=I,D[1]=z;O.point=boundsPoint$1;k=null}function boundsRingPoint(n,t){if(k){var r=n-T;H.add(f(r)>180?r+(r>0?360:-360):r)}else U=n,G=t;N.point(n,t);linePoint(n,t)}function boundsRingStart(){N.lineStart()}function boundsRingEnd(){boundsRingPoint(U,G);N.lineEnd();f(H)>e&&(I=-(z=180));D[0]=I,D[1]=z;k=null}function angle(n,t){return(t-=n)<0?t+360:t}function rangeCompare(n,t){return n[0]-t[0]}function rangeContains(n,t){return n[0]<=n[1]?n[0]<=t&&t<=n[1]:tangle(e[0],e[1])&&(e[1]=i[1]);angle(i[0],e[1])>angle(e[0],e[1])&&(e[0]=i[0])}else o.push(e=i)}for(a=-Infinity,r=o.length-1,t=0,e=o[r];t<=r;e=i,++t){i=o[t];(c=angle(e[1],i[0]))>a&&(a=c,I=i[0],z=e[1])}}W=D=null;return I===Infinity||A===Infinity?[[NaN,NaN],[NaN,NaN]]:[[I,A],[z,F]]}var X,Y,B,Z,J,K,Q,V,nn,tn,rn,en,on,an,cn,un;var ln={sphere:noop,point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){ln.lineStart=centroidRingStart$1;ln.lineEnd=centroidRingEnd$1},polygonEnd:function(){ln.lineStart=centroidLineStart$1;ln.lineEnd=centroidLineEnd$1}};function centroidPoint$1(n,t){n*=s,t*=s;var r=h(t);centroidPointCartesian(r*h(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++X;B+=(n-B)/X;Z+=(t-Z)/X;J+=(r-J)/X}function centroidLineStart$1(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=s,t*=s;var r=h(t);an=r*h(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=s,t*=s;var r=h(t),e=r*h(n),i=r*y(n),o=y(t),a=g(w((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Y+=a;K+=a*(an+(an=e));Q+=a*(cn+(cn=i));V+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd$1(){ln.point=centroidPoint$1}function centroidRingStart$1(){ln.point=centroidRingPointFirst}function centroidRingEnd$1(){centroidRingPoint(en,on);ln.point=centroidPoint$1}function centroidRingPointFirst(n,t){en=n,on=t;n*=s,t*=s;ln.point=centroidRingPoint;var r=h(t);an=r*h(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=s,t*=s;var r=h(t),e=r*h(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=m(a,c,u),f=asin(l),p=l&&-f/l;nn.add(p*a);tn.add(p*c);rn.add(p*u);Y+=f;K+=f*(an+(an=e));Q+=f*(cn+(cn=i));V+=f*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroid(t){X=Y=B=Z=J=K=Q=V=0;nn=new n;tn=new n;rn=new n;geoStream(t,ln);var r=+nn,o=+tn,a=+rn,c=m(r,o,a);if(co&&(n-=Math.round(n/u)*u);return[n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=u)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){t+=n;f(t)>o&&(t-=Math.round(t/u)*u);return[t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=h(n),e=y(n),i=h(t),o=y(t);function rotation(n,t){var a=h(t),c=h(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[g(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=h(t),c=h(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[g(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}function rotation(n){n=rotateRadians(n[0]*s,n[1]*s,n.length>2?n[2]*s:0);function forward(t){t=n(t[0]*s,t[1]*s);return t[0]*=l,t[1]*=l,t}forward.invert=function(t){t=n.invert(t[0]*s,t[1]*s);return t[0]*=l,t[1]*=l,t};return forward}function circleStream(n,t,r,e,i,o){if(r){var a=h(t),c=y(t),l=e*r;if(i==null){i=t+e*u;o=t-l/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?io)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f1&&t.push(t.pop().concat(t.shift()))},result:function(){var r=t;t=[];n=null;return r}}}function pointEqual(n,t){return f(n[0]-t[0])=0;--a)o.point((f=s[a])[0],f[1])}else i(g.x,g.p.x,-1,o);g=g.p}g=g.o;s=g.z;h=!h}while(!g.v);o.lineEnd()}}}function link(n){if(t=n.length){var t,r,e=0,i=n[0];while(++e=0?1:-1,z=A*I,F=z>o,T=b*_;m.add(g(T*A*y(z),L*N+T*h(z)));d+=F?I+A*u:I;if(F^j>=l^q>=l){var U=cartesianCross(cartesian(P),cartesian(C));cartesianNormalizeInPlace(U);var G=cartesianCross(p,U);cartesianNormalizeInPlace(G);var k=(F^I>=0?-1:1)*asin(G[2]);(s>k||s===k&&(U[0]||U[1]))&&(v+=F^I>=0?1:-1)}}}return(d<-e||d0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n1&&i&2&&l.push(l.pop().concat(l.shift()));c.push(l.filter(validSegment))}}return g}}function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-a-e:a-n[1])-((t=t.x)[0]<0?t[1]-a-e:a-t[1])}var sn=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-o,-a]);function clipAntimeridianLine(n){var t,r=NaN,i=NaN,c=NaN;return{lineStart:function(){n.lineStart();t=1},point:function(u,l){var s=u>0?o:-o,p=f(u-r);if(f(p-o)0?a:-a);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);n.point(u,i);t=0}else if(c!==s&&p>=o){f(r-c)e?p((y(t)*(a=h(i))*y(r)-y(i)*(o=h(t))*y(n))/(o*a*c)):(t+i)/2}function clipAntimeridianInterpolate(n,t,r,i){var c;if(n==null){c=r*a;i.point(-o,c);i.point(0,c);i.point(o,c);i.point(o,0);i.point(o,-c);i.point(0,-c);i.point(-o,-c);i.point(-o,0);i.point(-o,c)}else if(f(n[0]-t[0])>e){var u=n[0]0,a=f(t)>e;function interpolate(t,e,i,o){circleStream(o,n,r,i,t,e)}function visible(n,r){return h(n)*h(r)>t}function clipLine(n){var t,r,e,c,u;return{lineStart:function(){c=e=false;u=1},point:function(l,s){var f,p=[l,s],g=visible(l,s),h=i?g?0:code(l,s):g?code(l+(l<0?o:-o),s):0;!t&&(c=e=g)&&n.lineStart();if(g!==e){f=intersect(t,p);(!f||pointEqual(t,f)||pointEqual(p,f))&&(p[2]=1)}if(g!==e){u=0;if(g){n.lineStart();f=intersect(p,t);n.point(f[0],f[1])}else{f=intersect(t,p);n.point(f[0],f[1],2);n.lineEnd()}t=f}else if(a&&t&&i^g){var d;if(!(h&r)&&(d=intersect(p,t,true))){u=0;if(i){n.lineStart();n.point(d[0][0],d[0][1]);n.point(d[1][0],d[1][1]);n.lineEnd()}else{n.point(d[1][0],d[1][1]);n.lineEnd();n.lineStart();n.point(d[0][0],d[0][1],3)}}}!g||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,e=g,r=h},lineEnd:function(){e&&n.lineEnd();t=null},clean:function(){return u|(c&&e)<<1}}}function intersect(n,r,i){var a=cartesian(n),c=cartesian(r);var u=[1,0,0],l=cartesianCross(a,c),s=cartesianDot(l,l),p=l[0],g=s-p*p;if(!g)return!i&&n;var h=t*s/g,d=-t*p/g,v=cartesianCross(u,l),m=cartesianScale(u,h),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=v,y=cartesianDot(m,S),R=cartesianDot(S,S),P=y*y-R*(cartesianDot(m,m)-1);if(!(P<0)){var j=w(P),M=cartesianScale(S,(-y-j)/R);cartesianAddInPlace(M,m);M=spherical(M);if(!i)return M;var b,L=n[0],x=r[0],C=n[1],q=r[1];x0^M[1]<(f(M[0]-L)o^(L<=M[0]&&M[0]<=x)){var I=cartesianScale(S,(-y+j)/R);cartesianAddInPlace(I,m);return[M,spherical(I)]}}}function code(t,r){var e=i?n:o-n,a=0;t<-e?a|=1:t>e&&(a|=2);r<-e?a|=4:r>e&&(a|=8);return a}return clip(visible,clipLine,interpolate,i?[0,-n]:[-o,n-o])}function clipLine(n,t,r,e,i,o){var a,c=n[0],u=n[1],l=t[0],s=t[1],f=0,p=1,g=l-c,h=s-u;a=r-c;if(g||!(a>0)){a/=g;if(g<0){if(a0){if(a>p)return;a>f&&(f=a)}a=i-c;if(g||!(a<0)){a/=g;if(g<0){if(a>p)return;a>f&&(f=a)}else if(g>0){if(a0)){a/=h;if(h<0){if(a0){if(a>p)return;a>f&&(f=a)}a=o-u;if(h||!(a<0)){a/=h;if(h<0){if(a>p)return;a>f&&(f=a)}else if(h>0){if(a0&&(n[0]=c+f*g,n[1]=u+f*h);p<1&&(t[0]=c+p*g,t[1]=u+p*h);return true}}}}}var fn=1e9,pn=-fn;function clipRectangle(n,r,i,o){function visible(t,e){return n<=t&&t<=i&&r<=e&&e<=o}function interpolate(t,e,a,c){var u=0,l=0;if(t==null||(u=corner(t,a))!==(l=corner(e,a))||comparePoint(t,e)<0^a>0)do{c.point(u===0||u===3?n:i,u>1?o:r)}while((u=(u+a+4)%4)!==l);else c.point(e[0],e[1])}function corner(t,o){return f(t[0]-n)0?0:3:f(t[0]-i)0?2:1:f(t[1]-r)0?1:0:o>0?3:2}function compareIntersection(n,t){return comparePoint(n.x,t.x)}function comparePoint(n,t){var r=corner(n,1),e=corner(t,1);return r!==e?r-e:r===0?t[1]-n[1]:r===1?n[0]-t[0]:r===2?n[1]-t[1]:t[0]-n[0]}return function(e){var a,c,u,l,s,f,p,g,h,d,v,m=e,E=clipBuffer();var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&m.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=c.length;ro&&(p-i)*(o-a)>(g-a)*(n-i)&&++t:g<=o&&(p-i)*(o-a)<(g-a)*(n-i)&&--t}return t}function polygonStart(){m=E,a=[],c=[],v=true}function polygonEnd(){var n=polygonInside(),r=v&&n,i=(a=t(a)).length;if(r||i){e.polygonStart();if(r){e.lineStart();interpolate(null,null,1,e);e.lineEnd()}i&&clipRejoin(a,compareIntersection,n,interpolate,e);e.polygonEnd()}m=e,a=c=u=null}function lineStart(){S.point=linePoint;c&&c.push(u=[]);d=true;h=false;p=g=NaN}function lineEnd(){if(a){linePoint(l,s);f&&h&&E.rejoin();a.push(E.result())}S.point=point;h&&m.lineEnd()}function linePoint(t,e){var a=visible(t,e);c&&u.push([t,e]);if(d){l=t,s=e,f=a;d=false;if(a){m.lineStart();m.point(t,e)}}else if(a&&h)m.point(t,e);else{var E=[p=Math.max(pn,Math.min(fn,p)),g=Math.max(pn,Math.min(fn,g))],S=[t=Math.max(pn,Math.min(fn,t)),e=Math.max(pn,Math.min(fn,e))];if(clipLine(E,S,n,r,i,o)){if(!h){m.lineStart();m.point(E[0],E[1])}m.point(S[0],S[1]);a||m.lineEnd();v=false}else if(a){m.lineStart();m.point(t,e);v=false}}p=t,g=e,h=a}return S}}function extent(){var n,t,r,e=0,i=0,o=960,a=500;return r={stream:function(r){return n&&t===r?n:n=clipRectangle(e,i,o,a)(t=r)},extent:function(c){return arguments.length?(e=+c[0][0],i=+c[0][1],o=+c[1][0],a=+c[1][1],n=t=null,r):[[e,i],[o,a]]}}}var gn,hn,dn,vn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst$1;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst$1(n,t){n*=s,t*=s;hn=n,dn=y(t),vn=h(t);mn.point=lengthPoint$1}function lengthPoint$1(n,t){n*=s,t*=s;var r=y(t),e=h(t),i=f(n-hn),o=h(i),a=y(i),c=e*a,u=vn*r-dn*e*o,l=dn*r+vn*e*o;gn.add(g(w(c*c+u*u),l));hn=n,dn=r,vn=e}function length(t){gn=new n;geoStream(t,mn);return+gn}var En=[null,null],Sn={type:"LineString",coordinates:En};function distance(n,t){En[0]=n;En[1]=t;return length(Sn)}var yn={Feature:function(n,t){return containsGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))e})).map(s)).concat(r(d(c/m)*m,a,m).filter((function(n){return f(n%S)>e})).map(p))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[g(o).concat(h(u).slice(1),g(i).reverse().slice(1),h(l).reverse().slice(1))]}};graticule.extent=function(n){return arguments.length?graticule.extentMajor(n).extentMinor(n):graticule.extentMinor()};graticule.extentMajor=function(n){if(!arguments.length)return[[o,l],[i,u]];o=+n[0][0],i=+n[1][0];l=+n[0][1],u=+n[1][1];o>i&&(n=o,o=i,i=n);l>u&&(n=l,l=u,u=n);return graticule.precision(y)};graticule.extentMinor=function(r){if(!arguments.length)return[[t,c],[n,a]];t=+r[0][0],n=+r[1][0];c=+r[0][1],a=+r[1][1];t>n&&(r=t,t=n,n=r);c>a&&(r=c,c=a,a=r);return graticule.precision(y)};graticule.step=function(n){return arguments.length?graticule.stepMajor(n).stepMinor(n):graticule.stepMinor()};graticule.stepMajor=function(n){if(!arguments.length)return[E,S];E=+n[0],S=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[v,m];v=+n[0],m=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;s=graticuleX(c,a,90);p=graticuleY(t,n,y);g=graticuleX(l,u,90);h=graticuleY(o,i,y);return graticule};return graticule.extentMajor([[-180,-90+e],[180,90-e]]).extentMinor([[-180,-80-e],[180,80+e]])}function graticule10(){return graticule()()}function interpolate(n,t){var r=n[0]*s,e=n[1]*s,i=t[0]*s,o=t[1]*s,a=h(e),c=y(e),u=h(o),f=y(o),p=a*h(r),d=a*y(r),v=u*h(i),m=u*y(i),E=2*asin(w(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var R=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*v,i=r*d+t*m,o=r*c+t*f;return[g(i,e)*l,g(o,w(e*e+i*i))*l]}:function(){return[r*l,e*l]};R.distance=E;return R}var identity$1=n=>n;var wn,Pn,jn,Mn,bn=new n,Ln=new n;var xn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){xn.lineStart=areaRingStart;xn.lineEnd=areaRingEnd},polygonEnd:function(){xn.lineStart=xn.lineEnd=xn.point=noop;bn.add(f(Ln));Ln=new n},result:function(){var t=bn/2;bn=new n;return t}};function areaRingStart(){xn.point=areaPointFirst}function areaPointFirst(n,t){xn.point=areaPoint;wn=jn=n,Pn=Mn=t}function areaPoint(n,t){Ln.add(Mn*n-jn*t);jn=n,Mn=t}function areaRingEnd(){areaPoint(wn,Pn)}var Cn=Infinity,qn=Cn,$n=-Cn,_n=$n;var Nn={point:boundsPoint,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,qn],[$n,_n]];$n=_n=-(qn=Cn=Infinity);return n}};function boundsPoint(n,t){n$n&&($n=n);t_n&&(_n=t)}var In,An,zn,Fn,Tn=0,Un=0,Gn=0,kn=0,Hn=0,Wn=0,Dn=0,On=0,Xn=0;var Yn={point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){Yn.lineStart=centroidRingStart;Yn.lineEnd=centroidRingEnd},polygonEnd:function(){Yn.point=centroidPoint;Yn.lineStart=centroidLineStart;Yn.lineEnd=centroidLineEnd},result:function(){var n=Xn?[Dn/Xn,On/Xn]:Wn?[kn/Wn,Hn/Wn]:Gn?[Tn/Gn,Un/Gn]:[NaN,NaN];Tn=Un=Gn=kn=Hn=Wn=Dn=On=Xn=0;return n}};function centroidPoint(n,t){Tn+=n;Un+=t;++Gn}function centroidLineStart(){Yn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Yn.point=centroidPointLine;centroidPoint(zn=n,Fn=t)}function centroidPointLine(n,t){var r=n-zn,e=t-Fn,i=w(r*r+e*e);kn+=i*(zn+n)/2;Hn+=i*(Fn+t)/2;Wn+=i;centroidPoint(zn=n,Fn=t)}function centroidLineEnd(){Yn.point=centroidPoint}function centroidRingStart(){Yn.point=centroidPointFirstRing}function centroidRingEnd(){centroidPointRing(In,An)}function centroidPointFirstRing(n,t){Yn.point=centroidPointRing;centroidPoint(In=zn=n,An=Fn=t)}function centroidPointRing(n,t){var r=n-zn,e=t-Fn,i=w(r*r+e*e);kn+=i*(zn+n)/2;Hn+=i*(Fn+t)/2;Wn+=i;i=Fn*n-zn*t;Dn+=i*(zn+n);On+=i*(Fn+t);Xn+=i*3;centroidPoint(zn=n,Fn=t)}function PathContext(n){this._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath();this._point=NaN},point:function(n,t){switch(this._point){case 0:this._context.moveTo(n,t);this._point=1;break;case 1:this._context.lineTo(n,t);break;default:this._context.moveTo(n+this._radius,t);this._context.arc(n,t,this._radius,0,u);break}},result:noop};var Bn,Zn,Jn,Kn,Qn,Vn=new n;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst},lineEnd:function(){Bn&&lengthPoint(Zn,Jn);nt.point=noop},polygonStart:function(){Bn=true},polygonEnd:function(){Bn=null},result:function(){var t=+Vn;Vn=new n;return t}};function lengthPointFirst(n,t){nt.point=lengthPoint;Zn=Kn=n,Jn=Qn=t}function lengthPoint(n,t){Kn-=n,Qn-=t;Vn.add(w(Kn*Kn+Qn*Qn));Kn=n,Qn=t}let tt,rt,et,it;class PathString{constructor(n){this._append=n==null?append:appendRound(n);this._radius=4.5;this._=""}pointRadius(n){this._radius=+n;return this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z");this._point=NaN}point(n,t){switch(this._point){case 0:this._append`M${n},${t}`;this._point=1;break;case 1:this._append`L${n},${t}`;break;default:this._append`M${n},${t}`;if(this._radius!==et||this._append!==rt){const n=this._radius;const t=this._;this._="";this._append`m0,${n}a${n},${n} 0 1,1 0,${-2*n}a${n},${n} 0 1,1 0,${2*n}z`;et=n;rt=this._append;it=this._;this._=t}this._+=it;break}}result(){const n=this._;this._="";return n.length?n:null}}function append(n){let t=1;this._+=n[0];for(const r=n.length;t=0))throw new RangeError(`invalid digits: ${n}`);if(t>15)return append;if(t!==tt){const n=10**t;tt=t;rt=function append(t){let r=1;this._+=t[0];for(const e=t.length;r=0))throw new RangeError(`invalid digits: ${n}`);i=t}t===null&&(e=new PathString(i));return path};return path.projection(n).digits(i).context(t)}function transform(n){return{stream:transformer(n)}}function transformer(n){return function(t){var r=new TransformStream;for(var e in n)r[e]=n[e];r.stream=t;return r}}function TransformStream(){}TransformStream.prototype={constructor:TransformStream,point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fit(n,t,r){var e=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);e!=null&&n.clipExtent(null);geoStream(r,n.stream(Nn));t(Nn.result());e!=null&&n.clipExtent(e);return n}function fitExtent(n,t,r){return fit(n,(function(r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=Math.min(e/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+t[0][0]+(e-o*(r[1][0]+r[0][0]))/2,c=+t[0][1]+(i-o*(r[1][1]+r[0][1]))/2;n.scale(150*o).translate([a,c])}),r)}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}function fitWidth(n,t,r){return fit(n,(function(r){var e=+t,i=e/(r[1][0]-r[0][0]),o=(e-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];n.scale(150*i).translate([o,a])}),r)}function fitHeight(n,t,r){return fit(n,(function(r){var e=+t,i=e/(r[1][1]-r[0][1]),o=-i*r[0][0],a=(e-i*(r[1][1]+r[0][1]))/2;n.scale(150*i).translate([o,a])}),r)}var ot=16,at=h(30*s);function resample(n,t){return+t?resample$1(n,t):resampleNone(n)}function resampleNone(n){return transformer({point:function(t,r){t=n(t,r);this.stream.point(t[0],t[1])}})}function resample$1(n,t){function resampleLineTo(r,i,o,a,c,u,l,s,p,h,d,v,m,E){var S=l-r,y=s-i,R=S*S+y*y;if(R>4*t&&m--){var P=a+h,j=c+d,M=u+v,b=w(P*P+j*j+M*M),L=asin(M/=b),x=f(f(M)-1)t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v2?n[2]%360*s:0,recenter()):[E*l,S*l,y*l]};projection.angle=function(n){return arguments.length?(R=n%360*s,recenter()):R*l};projection.reflectX=function(n){return arguments.length?(P=n?-1:1,recenter()):P<0};projection.reflectY=function(n){return arguments.length?(j=n?-1:1,recenter()):j<0};projection.precision=function(n){return arguments.length?(a=resample(c,C=n*n),reset()):w(C)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};projection.fitWidth=function(n,t){return fitWidth(projection,n,t)};projection.fitHeight=function(n,t){return fitHeight(projection,n,t)};function recenter(){var n=scaleTranslateRotate(g,0,0,P,j,R).apply(null,t(v,m)),e=scaleTranslateRotate(g,h-n[0],d-n[1],P,j,R);r=rotateRadians(E,S,y);c=compose(t,e);u=compose(r,c);a=resample(c,C);return reset()}function reset(){f=p=null;return projection}return function(){t=n.apply(this,arguments);projection.invert=t.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=o/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*s,r=n[1]*s):[t*l,r*l]};return i}function cylindricalEqualAreaRaw(n){var t=h(n);function forward(n,r){return[n*t,y(r)/t]}forward.invert=function(n,r){return[n/t,asin(r*t)]};return forward}function conicEqualAreaRaw(n,t){var r=y(n),i=(r+y(t))/2;if(f(i)=.12&&i<.234&&e>=-.425&&e<-.214?u:i>=.166&&i<.234&&e>=-.214&&e<-.115?l:c).invert(n)};albersUsa.stream=function(r){return n&&t===r?n:n=multiplex([c.stream(t=r),u.stream(r),l.stream(r)])};albersUsa.precision=function(n){if(!arguments.length)return c.precision();c.precision(n),u.precision(n),l.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return c.scale();c.scale(n),u.scale(n*.35),l.scale(n);return albersUsa.translate(c.translate())};albersUsa.translate=function(n){if(!arguments.length)return c.translate();var t=c.scale(),a=+n[0],f=+n[1];r=c.translate(n).clipExtent([[a-.455*t,f-.238*t],[a+.455*t,f+.238*t]]).stream(s);i=u.translate([a-.307*t,f+.201*t]).clipExtent([[a-.425*t+e,f+.12*t+e],[a-.214*t-e,f+.234*t-e]]).stream(s);o=l.translate([a-.205*t,f+.212*t]).clipExtent([[a-.214*t+e,f+.166*t+e],[a-.115*t-e,f+.234*t-e]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};albersUsa.fitWidth=function(n,t){return fitWidth(albersUsa,n,t)};albersUsa.fitHeight=function(n,t){return fitHeight(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)}function azimuthalRaw(n){return function(t,r){var e=h(t),i=h(r),o=n(e*i);return o===Infinity?[2,0]:[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=w(t*t+r*r),i=n(e),o=y(i),a=h(i);return[g(t*o,e*a),asin(e&&r*o/e)]}}var ut=azimuthalRaw((function(n){return w(2/(1+n))}));ut.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));function azimuthalEqualArea(){return projection(ut).scale(124.75).clipAngle(179.999)}var lt=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));lt.invert=azimuthalInvert((function(n){return n}));function azimuthalEquidistant(){return projection(lt).scale(79.4188).clipAngle(179.999)}function mercatorRaw(n,t){return[n,E(P((a+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*p(v(t))-a]};function mercator(){return mercatorProjection(mercatorRaw).scale(961/u)}function mercatorProjection(n){var t,r,e,i=projection(n),a=i.center,c=i.scale,u=i.translate,l=i.clipExtent,s=null;i.scale=function(n){return arguments.length?(c(n),reclip()):c()};i.translate=function(n){return arguments.length?(u(n),reclip()):u()};i.center=function(n){return arguments.length?(a(n),reclip()):a()};i.clipExtent=function(n){return arguments.length?(n==null?s=t=r=e=null:(s=+n[0][0],t=+n[0][1],r=+n[1][0],e=+n[1][1]),reclip()):s==null?null:[[s,t],[r,e]]};function reclip(){var a=o*c(),u=i(rotation(i.rotate()).invert([0,0]));return l(s==null?[[u[0]-a,u[1]-a],[u[0]+a,u[1]+a]]:n===mercatorRaw?[[Math.max(u[0]-a,s),t],[Math.min(u[0]+a,r),e]]:[[s,Math.max(u[1]-a,t)],[r,Math.min(u[1]+a,e)]])}return reclip()}function tany(n){return P((a+n)/2)}function conicConformalRaw(n,t){var r=h(n),i=n===t?y(n):E(r/h(t))/E(tany(t)/tany(n)),c=r*S(tany(n),i)/i;if(!i)return mercatorRaw;function project(n,t){c>0?t<-a+e&&(t=-a+e):t>a-e&&(t=a-e);var r=c/S(tany(t),i);return[r*y(i*n),c-r*h(i*n)]}project.invert=function(n,t){var r=c-t,e=R(i)*w(n*n+r*r),u=g(n,f(r))*R(r);r*i<0&&(u-=o*R(n)*R(r));return[u/i,2*p(S(c/e,1/i))-a]};return project}function conicConformal(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])}function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;function equirectangular(){return projection(equirectangularRaw).scale(152.63)}function conicEquidistantRaw(n,t){var r=h(n),i=n===t?y(n):(r-h(t))/(t-n),a=r/i+n;if(f(i)e&&--o>0);return[n/(.8707+(a=i*i)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),i]};function naturalEarth1(){return projection(naturalEarth1Raw).scale(175.295)}function orthographicRaw(n,t){return[h(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);function orthographic(){return projection(orthographicRaw).scale(249.5).clipAngle(90+e)}function stereographicRaw(n,t){var r=h(t),e=1+h(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*p(n)}));function stereographic(){return projection(stereographicRaw).scale(250).clipAngle(142)}function transverseMercatorRaw(n,t){return[E(P((a+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*p(v(n))-a]};function transverseMercator(){var n=mercatorProjection(transverseMercatorRaw),t=n.center,r=n.rotate;n.center=function(n){return arguments.length?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])};n.rotate=function(n){return arguments.length?r([n[0],n[1],n.length>2?n[2]+90:90]):(n=r(),[n[0],n[1],n[2]-90])};return r([0,0,90]).scale(159.155)}export{albers as geoAlbers,albersUsa as geoAlbersUsa,area as geoArea,azimuthalEqualArea as geoAzimuthalEqualArea,ut as geoAzimuthalEqualAreaRaw,azimuthalEquidistant as geoAzimuthalEquidistant,lt as geoAzimuthalEquidistantRaw,bounds as geoBounds,centroid as geoCentroid,circle as geoCircle,sn as geoClipAntimeridian,clipCircle as geoClipCircle,extent as geoClipExtent,clipRectangle as geoClipRectangle,conicConformal as geoConicConformal,conicConformalRaw as geoConicConformalRaw,conicEqualArea as geoConicEqualArea,conicEqualAreaRaw as geoConicEqualAreaRaw,conicEquidistant as geoConicEquidistant,conicEquidistantRaw as geoConicEquidistantRaw,contains as geoContains,distance as geoDistance,equalEarth as geoEqualEarth,equalEarthRaw as geoEqualEarthRaw,equirectangular as geoEquirectangular,equirectangularRaw as geoEquirectangularRaw,gnomonic as geoGnomonic,gnomonicRaw as geoGnomonicRaw,graticule as geoGraticule,graticule10 as geoGraticule10,identity as geoIdentity,interpolate as geoInterpolate,length as geoLength,mercator as geoMercator,mercatorRaw as geoMercatorRaw,naturalEarth1 as geoNaturalEarth1,naturalEarth1Raw as geoNaturalEarth1Raw,orthographic as geoOrthographic,orthographicRaw as geoOrthographicRaw,index as geoPath,projection as geoProjection,projectionMutator as geoProjectionMutator,rotation as geoRotation,stereographic as geoStereographic,stereographicRaw as geoStereographicRaw,geoStream,transform as geoTransform,transverseMercator as geoTransverseMercator,transverseMercatorRaw as geoTransverseMercatorRaw};