Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Jan 24, 2026

Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ @​turf/buffer (7.3.1 → 7.3.2) · Repo · Changelog

Release Notes

7.3.2

Patch release with several bug fixes.

What's Changed

Bug fixes and new functionality:

  • Fixed a bug in nearestPointOnLine causing duplicate points to be returned from lineSlice by @smallsaucepan in #2951
  • turf-boolean-contains + turf-boolean-within: Fix line in polygon by @samuelarbibe in #2848
  • @turf/boolean-contains - support for multipolygon inside polygon by @MartinP-C in #2357
  • Refactor and extend properties of returned nearest point in @turf/nearest-point-on-line by @EmilJunker in #2867
  • Changed booleanCrosses with two input lines to recognise if crossing point is between vertices by @smallsaucepan in #2968
  • Improve type inference in @turf/helpers' geometry and geometryCollection by @mfedderly in #2971
  • turf-tessellate: Pass original coordinate elevations through the tessellate function. by @prozvora in #2855
  • Significantly improved performance of clustersDbscan by @smallsaucepan in #2885

Housekeeping and behind the scenes changes:

New Contributors

Full Changelog: v7.3.1...v7.3.2

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 25 commits:

⁉️ d3-array (downgrade, 3.2.4 → 1.2.4) · Repo

Release Notes

Too many releases to show here. View the full release notes.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

⁉️ d3-geo (downgrade, 3.1.1 → 1.7.1) · Repo

Commits

See the full diff on Github. The new version differs by more commits than we can show here.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu bot added the depfu label Jan 24, 2026
@@ -1,2 +1,2 @@
import{InternMap as t,InternSet as n}from"internmap";export{InternMap,InternSet}from"internmap";function ascending(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function descending(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function bisector(t){let n,e,r;if(2!==t.length){n=ascending;e=(n,e)=>ascending(t(n),e);r=(n,e)=>t(n)-e}else{n=t===ascending||t===descending?t:zero;e=t;r=t}function left(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<0?o=n+1:i=n}while(o<i)}return o}function right(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<=0?o=n+1:i=n}while(o<i)}return o}function center(t,n,e=0,o=t.length){const i=left(t,n,e,o-1);return i>e&&r(t[i-1],n)>-r(t[i],n)?i-1:i}return{left:left,center:center,right:right}}function zero(){return 0}function number(t){return null===t?NaN:+t}function*numbers(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}const e=bisector(ascending);const r=e.right;const o=e.left;const i=bisector(number).center;function blur(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=blurf(n);const o=t.slice();r(t,o,0,e,1);r(o,t,0,e,1);r(t,o,0,e,1);return t}const f=Blur2(blurf);const u=Blur2(blurfImage);function Blur2(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:f}=n;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((f=Math.floor(void 0!==f?f:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!f||!e&&!r)return n;const u=e&&t(e);const l=r&&t(r);const c=o.slice();if(u&&l){blurh(u,c,o,i,f);blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}else if(u){blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurh(u,o,c,i,f)}else if(l){blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}return n}}function blurh(t,n,e,r,o){for(let i=0,f=r*o;i<f;)t(n,e,i,i+=r,1)}function blurv(t,n,e,r,o){for(let i=0,f=r*o;i<r;++i)t(n,e,i,i+f,r)}function blurfImage(t){const n=blurf(t);return(t,e,r,o,i)=>{r<<=2,o<<=2,i<<=2;n(t,e,r+0,o+0,i);n(t,e,r+1,o+1,i);n(t,e,r+2,o+2,i);n(t,e,r+3,o+3,i)}}function blurf(t){const n=Math.floor(t);if(n===t)return bluri(t);const e=t-n;const r=2*t+1;return(t,o,i,f,u)=>{if(!((f-=u)>=i))return;let l=n*o[i];const c=u*n;const s=c+u;for(let t=i,n=i+c;t<n;t+=u)l+=o[Math.min(f,t)];for(let n=i,a=f;n<=a;n+=u){l+=o[Math.min(f,n+c)];t[n]=(l+e*(o[Math.max(i,n-s)]+o[Math.min(f,n+s)]))/r;l-=o[Math.max(i,n-c)]}}}function bluri(t){const n=2*t+1;return(e,r,o,i,f)=>{if(!((i-=f)>=o))return;let u=t*r[o];const l=f*t;for(let t=o,n=o+l;t<n;t+=f)u+=r[Math.min(i,t)];for(let t=o,c=i;t<=c;t+=f){u+=r[Math.min(i,t+l)];e[t]=u/n;u-=r[Math.max(o,t-l)]}}}function count(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(o=+o)>=o&&++e}return e}function length$1(t){return 0|t.length}function empty(t){return!(t>0)}function arrayify(t){return"object"!==typeof t||"length"in t?t:Array.from(t)}function reducer(t){return n=>t(...n)}function cross(...t){const n="function"===typeof t[t.length-1]&&reducer(t.pop());t=t.map(arrayify);const e=t.map(length$1);const r=t.length-1;const o=new Array(r+1).fill(0);const i=[];if(r<0||e.some(empty))return i;while(true){i.push(o.map(((n,e)=>t[e][n])));let f=r;while(++o[f]===e[f]){if(0===f)return n?i.map(n):i;o[f--]=0}}}function cumsum(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:o=>e+=+n(o,r++,t)||0)}function variance(t,n){let e=0;let r;let o=0;let i=0;if(void 0===n){for(let n of t)if(null!=n&&(n=+n)>=n){r=n-o;o+=r/++e;i+=r*(n-o)}}else{let f=-1;for(let u of t)if(null!=(u=n(u,++f,t))&&(u=+u)>=u){r=u-o;o+=r/++e;i+=r*(u-o)}}if(e>1)return i/(e-1)}function deviation(t,n){const e=variance(t,n);return e?Math.sqrt(e):e}function extent(t,n){let e;let r;if(void 0===n){for(const n of t)if(null!=n)if(void 0===e)n>=n&&(e=r=n);else{e>n&&(e=n);r<n&&(r=n)}}else{let o=-1;for(let i of t)if(null!=(i=n(i,++o,t)))if(void 0===e)i>=i&&(e=r=i);else{e>i&&(e=i);r<i&&(r=i)}}return[e,r]}class Adder{constructor(){this._partials=new Float64Array(32);this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],i=t+o,f=Math.abs(t)<Math.abs(o)?t-(i-o):o-(i-t);f&&(n[e++]=f);t=i}n[e]=t;this._n=e+1;return this}valueOf(){const t=this._partials;let n,e,r,o=this._n,i=0;if(o>0){i=t[--o];while(o>0){n=i;e=t[--o];i=n+e;r=e-(i-n);if(r)break}if(o>0&&(r<0&&t[o-1]<0||r>0&&t[o-1]>0)){e=2*r;n=i+e;e==n-i&&(i=n)}}return i}}function fsum(t,n){const e=new Adder;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&e.add(o)}return+e}function fcumsum(t,n){const e=new Adder;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):o=>e.add(+n(o,++r,t)||0))}function identity(t){return t}function group(t,...n){return nest(t,identity,identity,n)}function groups(t,...n){return nest(t,Array.from,identity,n)}function flatten$1(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function flatGroup(t,...n){return flatten$1(groups(t,...n),n)}function flatRollup(t,n,...e){return flatten$1(rollups(t,n,...e),e)}function rollup(t,n,...e){return nest(t,identity,n,e)}function rollups(t,n,...e){return nest(t,Array.from,n,e)}function index(t,...n){return nest(t,identity,unique,n)}function indexes(t,...n){return nest(t,Array.from,unique,n)}function unique(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function nest(n,e,r,o){return function regroup(n,i){if(i>=o.length)return r(n);const f=new t;const u=o[i++];let l=-1;for(const t of n){const e=u(t,++l,n);const r=f.get(e);r?r.push(t):f.set(e,[t])}for(const[t,n]of f)f.set(t,regroup(n,i));return e(f)}(n,0)}function permute(t,n){return Array.from(n,(n=>t[n]))}function sort(t,...n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));if(n.length>1){n=n.map((n=>t.map(n)));r.sort(((t,e)=>{for(const r of n){const n=ascendingDefined(r[t],r[e]);if(n)return n}}))}else{e=t.map(e);r.sort(((t,n)=>ascendingDefined(e[t],e[n])))}return permute(t,r)}return t.sort(compareDefined(e))}function compareDefined(t=ascending){if(t===ascending)return ascendingDefined;if("function"!==typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function ascendingDefined(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}function groupSort(t,n,e){return(2!==n.length?sort(rollup(t,n,e),(([t,n],[e,r])=>ascending(n,r)||ascending(t,e))):sort(group(t,e),(([t,e],[r,o])=>n(e,o)||ascending(t,r)))).map((([t])=>t))}var l=Array.prototype;var c=l.slice;l.map;function constant(t){return()=>t}const s=Math.sqrt(50),a=Math.sqrt(10),h=Math.sqrt(2);function tickSpec(t,n,e){const r=(n-t)/Math.max(0,e),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),f=i>=s?10:i>=a?5:i>=h?2:1;let u,l,c;if(o<0){c=Math.pow(10,-o)/f;u=Math.round(t*c);l=Math.round(n*c);u/c<t&&++u;l/c>n&&--l;c=-c}else{c=Math.pow(10,o)*f;u=Math.round(t/c);l=Math.round(n/c);u*c<t&&++u;l*c>n&&--l}return l<u&&.5<=e&&e<2?tickSpec(t,n,2*e):[u,l,c]}function ticks(t,n,e){n=+n,t=+t,e=+e;if(!(e>0))return[];if(t===n)return[t];const r=n<t,[o,i,f]=r?tickSpec(n,t,e):tickSpec(t,n,e);if(!(i>=o))return[];const u=i-o+1,l=new Array(u);if(r)if(f<0)for(let t=0;t<u;++t)l[t]=(i-t)/-f;else for(let t=0;t<u;++t)l[t]=(i-t)*f;else if(f<0)for(let t=0;t<u;++t)l[t]=(o+t)/-f;else for(let t=0;t<u;++t)l[t]=(o+t)*f;return l}function tickIncrement(t,n,e){n=+n,t=+t,e=+e;return tickSpec(t,n,e)[2]}function tickStep(t,n,e){n=+n,t=+t,e=+e;const r=n<t,o=r?tickIncrement(n,t,e):tickIncrement(t,n,e);return(r?-1:1)*(o<0?1/-o:o)}function nice(t,n,e){let r;while(true){const o=tickIncrement(t,n,e);if(o===r||0===o||!isFinite(o))return[t,n];if(o>0){t=Math.floor(t/o)*o;n=Math.ceil(n/o)*o}else if(o<0){t=Math.ceil(t*o)/o;n=Math.floor(n*o)/o}r=o}}function thresholdSturges(t){return Math.max(1,Math.ceil(Math.log(count(t))/Math.LN2)+1)}function bin(){var t=identity,n=extent,e=thresholdSturges;function histogram(o){Array.isArray(o)||(o=Array.from(o));var i,f,u,l=o.length,c=new Array(l);for(i=0;i<l;++i)c[i]=t(o[i],i,o);var s=n(c),a=s[0],h=s[1],d=e(c,a,h);if(!Array.isArray(d)){const t=h,e=+d;n===extent&&([a,h]=nice(a,h,e));d=ticks(a,h,e);d[0]<=a&&(u=tickIncrement(a,h,e));if(d[d.length-1]>=h)if(t>=h&&n===extent){const t=tickIncrement(a,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}var m=d.length,p=0,g=m;while(d[p]<=a)++p;while(d[g-1]>h)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y,w=new Array(m+1);for(i=0;i<=m;++i){y=w[i]=[];y.x0=i>0?d[i-1]:a;y.x1=i<m?d[i]:h}if(isFinite(u)){if(u>0)for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[Math.min(m,Math.floor((f-a)/u))].push(o[i]);else if(u<0)for(i=0;i<l;++i)if(null!=(f=c[i])&&a<=f&&f<=h){const t=Math.floor((a-f)*u);w[Math.min(m,t+(d[t]<=f))].push(o[i])}}else for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[r(d,f,0,m)].push(o[i]);return w}histogram.value=function(n){return arguments.length?(t="function"===typeof n?n:constant(n),histogram):t};histogram.domain=function(t){return arguments.length?(n="function"===typeof t?t:constant([t[0],t[1]]),histogram):n};histogram.thresholds=function(t){return arguments.length?(e="function"===typeof t?t:constant(Array.isArray(t)?c.call(t):t),histogram):e};return histogram}function max(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e<o||void 0===e&&o>=o)&&(e=o)}return e}function maxIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e<i||void 0===e&&i>=i)&&(e=i,r=o);return r}function min(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e>o||void 0===e&&o>=o)&&(e=o)}return e}function minIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e>i||void 0===e&&i>=i)&&(e=i,r=o);return r}function quickselect(t,n,e=0,r=Infinity,o){n=Math.floor(n);e=Math.floor(Math.max(0,e));r=Math.floor(Math.min(t.length-1,r));if(!(e<=n&&n<=r))return t;o=void 0===o?ascendingDefined:compareDefined(o);while(r>e){if(r-e>600){const i=r-e+1;const f=n-e+1;const u=Math.log(i);const l=.5*Math.exp(2*u/3);const c=.5*Math.sqrt(u*l*(i-l)/i)*(f-i/2<0?-1:1);const s=Math.max(e,Math.floor(n-f*l/i+c));const a=Math.min(r,Math.floor(n+(i-f)*l/i+c));quickselect(t,n,s,a,o)}const i=t[n];let f=e;let u=r;swap(t,e,n);o(t[r],i)>0&&swap(t,e,r);while(f<u){swap(t,f,u),++f,--u;while(o(t[f],i)<0)++f;while(o(t[u],i)>0)--u}0===o(t[e],i)?swap(t,e,u):(++u,swap(t,u,r));u<=n&&(e=u+1);n<=u&&(r=u-1)}return t}function swap(t,n,e){const r=t[n];t[n]=t[e];t[e]=r}function greatest(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)>0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)>0:0===n(o,o)){e=o;r=true}return e}function quantile(t,n,e){t=Float64Array.from(numbers(t,e));if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return min(t);if(n>=1)return max(t);var r,o=(r-1)*n,i=Math.floor(o),f=max(quickselect(t,i).subarray(0,i+1)),u=min(t.subarray(i+1));return f+(u-f)*(o-i)}}function quantileSorted(t,n,e=number){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,i=Math.floor(o),f=+e(t[i],i,t),u=+e(t[i+1],i+1,t);return f+(u-f)*(o-i)}}function quantileIndex(t,n,e=number){if(!isNaN(n=+n)){r=Float64Array.from(t,((n,r)=>number(e(t[r],r,t))));if(n<=0)return minIndex(r);if(n>=1)return maxIndex(r);var r,o=Uint32Array.from(t,((t,n)=>n)),i=r.length-1,f=Math.floor(i*n);quickselect(o,f,0,i,((t,n)=>ascendingDefined(r[t],r[n])));f=greatest(o.subarray(0,f+1),(t=>r[t]));return f>=0?f:-1}}function thresholdFreedmanDiaconis(t,n,e){const r=count(t),o=quantile(t,.75)-quantile(t,.25);return r&&o?Math.ceil((e-n)/(2*o*Math.pow(r,-1/3))):1}function thresholdScott(t,n,e){const r=count(t),o=deviation(t);return r&&o?Math.ceil((e-n)*Math.cbrt(r)/(3.49*o)):1}function mean(t,n){let e=0;let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let o=-1;for(let i of t)null!=(i=n(i,++o,t))&&(i=+i)>=i&&(++e,r+=i)}if(e)return r/e}function median(t,n){return quantile(t,.5,n)}function medianIndex(t,n){return quantileIndex(t,.5,n)}function*flatten(t){for(const n of t)yield*n}function merge(t){return Array.from(flatten(t))}function mode(n,e){const r=new t;if(void 0===e)for(let t of n)null!=t&&t>=t&&r.set(t,(r.get(t)||0)+1);else{let t=-1;for(let o of n)null!=(o=e(o,++t,n))&&o>=o&&r.set(o,(r.get(o)||0)+1)}let o;let i=0;for(const[t,n]of r)if(n>i){i=n;o=t}return o}function pairs(t,n=pair){const e=[];let r;let o=false;for(const i of t){o&&e.push(n(r,i));r=i;o=true}return e}function pair(t,n){return[t,n]}function range(t,n,e){t=+t,n=+n,e=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+e;var r=-1,o=0|Math.max(0,Math.ceil((n-t)/e)),i=new Array(o);while(++r<o)i[r]=t+r*e;return i}function rank(t,n=ascending){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const r=new Float64Array(e.length);2!==n.length&&(e=e.map(n),n=ascending);const compareIndex=(t,r)=>n(e[t],e[r]);let o,i;t=Uint32Array.from(e,((t,n)=>n));t.sort(n===ascending?(t,n)=>ascendingDefined(e[t],e[n]):compareDefined(compareIndex));t.forEach(((t,n)=>{const e=compareIndex(t,void 0===o?t:o);if(e>=0){(void 0===o||e>0)&&(o=t,i=n);r[t]=i}else r[t]=NaN}));return r}function least(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)<0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)<0:0===n(o,o)){e=o;r=true}return e}function leastIndex(t,n=ascending){if(1===n.length)return minIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)<0){e=i;r=o}}return r}function greatestIndex(t,n=ascending){if(1===n.length)return maxIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)>0){e=i;r=o}}return r}function scan(t,n){const e=leastIndex(t,n);return e<0?void 0:e}var d=shuffler(Math.random);function shuffler(t){return function shuffle(n,e=0,r=n.length){let o=r-(e=+e);while(o){const r=t()*o--|0,i=n[o+e];n[o+e]=n[r+e];n[r+e]=i}return n}}function sum(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&(e+=o)}return e}function transpose(t){if(!(o=t.length))return[];for(var n=-1,e=min(t,length),r=new Array(e);++n<e;)for(var o,i=-1,f=r[n]=new Array(o);++i<o;)f[i]=t[i][n];return r}function length(t){return t.length}function zip(){return transpose(arguments)}function every(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return false;return true}function some(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return true;return false}function filter(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const o of t)n(o,++r,t)&&e.push(o);return e}function map(t,n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))}function reduce(t,n,e){if("function"!==typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let o,i,f=-1;if(arguments.length<3){({done:o,value:e}=r.next());if(o)return;++f}while(({done:o,value:i}=r.next()),!o)e=n(e,i,++f,t);return e}function reverse(t){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()}function difference(t,...e){t=new n(t);for(const n of e)for(const e of n)t.delete(e);return t}function disjoint(t,e){const r=e[Symbol.iterator](),o=new n;for(const n of t){if(o.has(n))return false;let t,e;while(({value:t,done:e}=r.next())){if(e)break;if(Object.is(n,t))return false;o.add(t)}}return true}function intersection(t,...e){t=new n(t);e=e.map(set);t:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue t}return t}function set(t){return t instanceof n?t:new n(t)}function superset(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=intern(t);if(r.has(n))continue;let o,i;while(({value:o,done:i}=e.next())){if(i)return false;const t=intern(o);r.add(t);if(Object.is(n,t))break}}return true}function intern(t){return null!==t&&"object"===typeof t?t.valueOf():t}function subset(t,n){return superset(n,t)}function union(...t){const e=new n;for(const n of t)for(const t of n)e.add(t);return e}export{Adder,ascending,bin,r as bisect,i as bisectCenter,o as bisectLeft,r as bisectRight,bisector,blur,f as blur2,u as blurImage,count,cross,cumsum,descending,deviation,difference,disjoint,every,extent,fcumsum,filter,flatGroup,flatRollup,fsum,greatest,greatestIndex,group,groupSort,groups,bin as histogram,index,indexes,intersection,least,leastIndex,map,max,maxIndex,mean,median,medianIndex,merge,min,minIndex,mode,nice,pairs,permute,quantile,quantileIndex,quantileSorted,quickselect,range,rank,reduce,reverse,rollup,rollups,scan,d as shuffle,shuffler,some,sort,subset,sum,superset,thresholdFreedmanDiaconis,thresholdScott,thresholdSturges,tickIncrement,tickStep,ticks,transpose,union,variance,zip};
var n={};(function(e,t){t(n)})(n,(function(n){function ascending(n,e){return n<e?-1:n>e?1:n>=e?0:NaN}function bisector(n){1===n.length&&(n=ascendingComparator(n));return{left:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)<0?r=a+1:i=a}return r},right:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)>0?i=a:r=a+1}return r}}}function ascendingComparator(n){return function(e,t){return ascending(n(e),t)}}var e=bisector(ascending);var t=e.right;var r=e.left;function pairs(n,e){null==e&&(e=pair);var t=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);while(t<r)a[t]=e(i,i=n[++t]);return a}function pair(n,e){return[n,e]}function cross(n,e,t){var r=n.length,i=e.length,a=new Array(r*i),l,u,o,h;null==t&&(t=pair);for(l=o=0;l<r;++l)for(h=n[l],u=0;u<i;++u,++o)a[o]=t(h,e[u]);return a}function descending(n,e){return e<n?-1:e>n?1:e>=n?0:NaN}function number(n){return null===n?NaN:+n}function variance(n,e){var t=n.length,r=0,i=-1,a=0,l,u,o=0;if(null==e){while(++i<t)if(!isNaN(l=number(n[i]))){u=l-a;a+=u/++r;o+=u*(l-a)}}else while(++i<t)if(!isNaN(l=number(e(n[i],i,n)))){u=l-a;a+=u/++r;o+=u*(l-a)}if(r>1)return o/(r-1)}function deviation(n,e){var t=variance(n,e);return t?Math.sqrt(t):t}function extent(n,e){var t=n.length,r=-1,i,a,l;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=l=i;while(++r<t)if(null!=(i=n[r])){a>i&&(a=i);l<i&&(l=i)}}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=l=i;while(++r<t)if(null!=(i=e(n[r],r,n))){a>i&&(a=i);l<i&&(l=i)}}return[a,l]}var i=Array.prototype;var a=i.slice;var l=i.map;function constant(n){return function(){return n}}function identity(n){return n}function range(n,e,t){n=+n,e=+e,t=(i=arguments.length)<2?(e=n,n=0,1):i<3?1:+t;var r=-1,i=0|Math.max(0,Math.ceil((e-n)/t)),a=new Array(i);while(++r<i)a[r]=n+r*t;return a}var u=Math.sqrt(50),o=Math.sqrt(10),h=Math.sqrt(2);function ticks(n,e,t){var r,i=-1,a,l,u;e=+e,n=+n,t=+t;if(n===e&&t>0)return[n];(r=e<n)&&(a=n,n=e,e=a);if(0===(u=tickIncrement(n,e,t))||!isFinite(u))return[];if(u>0){n=Math.ceil(n/u);e=Math.floor(e/u);l=new Array(a=Math.ceil(e-n+1));while(++i<a)l[i]=(n+i)*u}else{n=Math.floor(n*u);e=Math.ceil(e*u);l=new Array(a=Math.ceil(n-e+1));while(++i<a)l[i]=(n-i)/u}r&&l.reverse();return l}function tickIncrement(n,e,t){var r=(e-n)/Math.max(0,t),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=u?10:a>=o?5:a>=h?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=u?10:a>=o?5:a>=h?2:1)}function tickStep(n,e,t){var r=Math.abs(e-n)/Math.max(0,t),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;a>=u?i*=10:a>=o?i*=5:a>=h&&(i*=2);return e<n?-i:i}function sturges(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function histogram(){var n=identity,e=extent,r=sturges;function histogram(i){var a,l=i.length,u,o=new Array(l);for(a=0;a<l;++a)o[a]=n(i[a],a,i);var h=e(o),s=h[0],c=h[1],f=r(o,s,c);if(!Array.isArray(f)){f=tickStep(s,c,f);f=range(Math.ceil(s/f)*f,c,f)}var g=f.length;while(f[0]<=s)f.shift(),--g;while(f[g-1]>c)f.pop(),--g;var m=new Array(g+1),w;for(a=0;a<=g;++a){w=m[a]=[];w.x0=a>0?f[a-1]:s;w.x1=a<g?f[a]:c}for(a=0;a<l;++a){u=o[a];s<=u&&u<=c&&m[t(f,u,0,g)].push(i[a])}return m}histogram.value=function(e){return arguments.length?(n="function"===typeof e?e:constant(e),histogram):n};histogram.domain=function(n){return arguments.length?(e="function"===typeof n?n:constant([n[0],n[1]]),histogram):e};histogram.thresholds=function(n){return arguments.length?(r="function"===typeof n?n:Array.isArray(n)?constant(a.call(n)):constant(n),histogram):r};return histogram}function quantile(n,e,t){null==t&&(t=number);if(r=n.length){if((e=+e)<=0||r<2)return+t(n[0],0,n);if(e>=1)return+t(n[r-1],r-1,n);var r,i=(r-1)*e,a=Math.floor(i),l=+t(n[a],a,n),u=+t(n[a+1],a+1,n);return l+(u-l)*(i-a)}}function freedmanDiaconis(n,e,t){n=l.call(n,number).sort(ascending);return Math.ceil((t-e)/(2*(quantile(n,.75)-quantile(n,.25))*Math.pow(n.length,-1/3)))}function scott(n,e,t){return Math.ceil((t-e)/(3.5*deviation(n)*Math.pow(n.length,-1/3)))}function max(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&i>a&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&i>a&&(a=i)}return a}function mean(n,e){var t=n.length,r=t,i=-1,a,l=0;if(null==e)while(++i<t)isNaN(a=number(n[i]))?--r:l+=a;else while(++i<t)isNaN(a=number(e(n[i],i,n)))?--r:l+=a;if(r)return l/r}function median(n,e){var t=n.length,r=-1,i,a=[];if(null==e)while(++r<t)isNaN(i=number(n[r]))||a.push(i);else while(++r<t)isNaN(i=number(e(n[r],r,n)))||a.push(i);return quantile(a.sort(ascending),.5)}function merge(n){var e=n.length,t,r=-1,i=0,a,l;while(++r<e)i+=n[r].length;a=new Array(i);while(--e>=0){l=n[e];t=l.length;while(--t>=0)a[--i]=l[t]}return a}function min(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&a>i&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&a>i&&(a=i)}return a}function permute(n,e){var t=e.length,r=new Array(t);while(t--)r[t]=n[e[t]];return r}function scan(n,e){if(t=n.length){var t,r=0,i=0,a,l=n[i];null==e&&(e=ascending);while(++r<t)(e(a=n[r],l)<0||0!==e(l,l))&&(l=a,i=r);return 0===e(l,l)?i:void 0}}function shuffle(n,e,t){var r=(null==t?n.length:t)-(e=null==e?0:+e),i,a;while(r){a=Math.random()*r--|0;i=n[r+e];n[r+e]=n[a+e];n[a+e]=i}return n}function sum(n,e){var t=n.length,r=-1,i,a=0;if(null==e)while(++r<t)(i=+n[r])&&(a+=i);else while(++r<t)(i=+e(n[r],r,n))&&(a+=i);return a}function transpose(n){if(!(a=n.length))return[];for(var e=-1,t=min(n,length),r=new Array(t);++e<t;)for(var i=-1,a,l=r[e]=new Array(a);++i<a;)l[i]=n[i][e];return r}function length(n){return n.length}function zip(){return transpose(arguments)}n.bisect=t;n.bisectRight=t;n.bisectLeft=r;n.ascending=ascending;n.bisector=bisector;n.cross=cross;n.descending=descending;n.deviation=deviation;n.extent=extent;n.histogram=histogram;n.thresholdFreedmanDiaconis=freedmanDiaconis;n.thresholdScott=scott;n.thresholdSturges=sturges;n.max=max;n.mean=mean;n.median=median;n.merge=merge;n.min=min;n.pairs=pairs;n.permute=permute;n.quantile=quantile;n.range=range;n.scan=scan;n.shuffle=shuffle;n.sum=sum;n.ticks=ticks;n.tickIncrement=tickIncrement;n.tickStep=tickStep;n.transpose=transpose;n.variance=variance;n.zip=zip;Object.defineProperty(n,"__esModule",{value:true})}));const e=n.bisect,t=n.bisectRight,r=n.bisectLeft,i=n.ascending,a=n.bisector,l=n.cross,u=n.descending,o=n.deviation,h=n.extent,s=n.histogram,c=n.thresholdFreedmanDiaconis,f=n.thresholdScott,g=n.thresholdSturges,m=n.max,w=n.mean,v=n.median,d=n.merge,p=n.min,M=n.pairs,y=n.permute,b=n.quantile,N=n.range,x=n.scan,A=n.shuffle,k=n.sum,q=n.ticks,S=n.tickIncrement,I=n.tickStep,L=n.transpose,z=n.variance,D=n.zip,_=n.__esModule;export default n;export{_ as __esModule,i as ascending,e as bisect,r as bisectLeft,t as bisectRight,a as bisector,l as cross,u as descending,o as deviation,h as extent,s as histogram,m as max,w as mean,v as median,d as merge,p as min,M as pairs,y as permute,b as quantile,N as range,x as scan,A as shuffle,k as sum,c as thresholdFreedmanDiaconis,f as thresholdScott,g as thresholdSturges,S as tickIncrement,I as tickStep,q as ticks,L as transpose,z as variance,D as zip};
@@ -1,2 +1,2 @@
import{InternMap as t,InternSet as n}from"internmap";export{InternMap,InternSet}from"internmap";function ascending(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function descending(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function bisector(t){let n,e,r;if(2!==t.length){n=ascending;e=(n,e)=>ascending(t(n),e);r=(n,e)=>t(n)-e}else{n=t===ascending||t===descending?t:zero;e=t;r=t}function left(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<0?o=n+1:i=n}while(o<i)}return o}function right(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<=0?o=n+1:i=n}while(o<i)}return o}function center(t,n,e=0,o=t.length){const i=left(t,n,e,o-1);return i>e&&r(t[i-1],n)>-r(t[i],n)?i-1:i}return{left:left,center:center,right:right}}function zero(){return 0}function number(t){return null===t?NaN:+t}function*numbers(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}const e=bisector(ascending);const r=e.right;const o=e.left;const i=bisector(number).center;function blur(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=blurf(n);const o=t.slice();r(t,o,0,e,1);r(o,t,0,e,1);r(t,o,0,e,1);return t}const f=Blur2(blurf);const u=Blur2(blurfImage);function Blur2(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:f}=n;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((f=Math.floor(void 0!==f?f:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!f||!e&&!r)return n;const u=e&&t(e);const l=r&&t(r);const c=o.slice();if(u&&l){blurh(u,c,o,i,f);blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}else if(u){blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurh(u,o,c,i,f)}else if(l){blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}return n}}function blurh(t,n,e,r,o){for(let i=0,f=r*o;i<f;)t(n,e,i,i+=r,1)}function blurv(t,n,e,r,o){for(let i=0,f=r*o;i<r;++i)t(n,e,i,i+f,r)}function blurfImage(t){const n=blurf(t);return(t,e,r,o,i)=>{r<<=2,o<<=2,i<<=2;n(t,e,r+0,o+0,i);n(t,e,r+1,o+1,i);n(t,e,r+2,o+2,i);n(t,e,r+3,o+3,i)}}function blurf(t){const n=Math.floor(t);if(n===t)return bluri(t);const e=t-n;const r=2*t+1;return(t,o,i,f,u)=>{if(!((f-=u)>=i))return;let l=n*o[i];const c=u*n;const s=c+u;for(let t=i,n=i+c;t<n;t+=u)l+=o[Math.min(f,t)];for(let n=i,a=f;n<=a;n+=u){l+=o[Math.min(f,n+c)];t[n]=(l+e*(o[Math.max(i,n-s)]+o[Math.min(f,n+s)]))/r;l-=o[Math.max(i,n-c)]}}}function bluri(t){const n=2*t+1;return(e,r,o,i,f)=>{if(!((i-=f)>=o))return;let u=t*r[o];const l=f*t;for(let t=o,n=o+l;t<n;t+=f)u+=r[Math.min(i,t)];for(let t=o,c=i;t<=c;t+=f){u+=r[Math.min(i,t+l)];e[t]=u/n;u-=r[Math.max(o,t-l)]}}}function count(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(o=+o)>=o&&++e}return e}function length$1(t){return 0|t.length}function empty(t){return!(t>0)}function arrayify(t){return"object"!==typeof t||"length"in t?t:Array.from(t)}function reducer(t){return n=>t(...n)}function cross(...t){const n="function"===typeof t[t.length-1]&&reducer(t.pop());t=t.map(arrayify);const e=t.map(length$1);const r=t.length-1;const o=new Array(r+1).fill(0);const i=[];if(r<0||e.some(empty))return i;while(true){i.push(o.map(((n,e)=>t[e][n])));let f=r;while(++o[f]===e[f]){if(0===f)return n?i.map(n):i;o[f--]=0}}}function cumsum(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:o=>e+=+n(o,r++,t)||0)}function variance(t,n){let e=0;let r;let o=0;let i=0;if(void 0===n){for(let n of t)if(null!=n&&(n=+n)>=n){r=n-o;o+=r/++e;i+=r*(n-o)}}else{let f=-1;for(let u of t)if(null!=(u=n(u,++f,t))&&(u=+u)>=u){r=u-o;o+=r/++e;i+=r*(u-o)}}if(e>1)return i/(e-1)}function deviation(t,n){const e=variance(t,n);return e?Math.sqrt(e):e}function extent(t,n){let e;let r;if(void 0===n){for(const n of t)if(null!=n)if(void 0===e)n>=n&&(e=r=n);else{e>n&&(e=n);r<n&&(r=n)}}else{let o=-1;for(let i of t)if(null!=(i=n(i,++o,t)))if(void 0===e)i>=i&&(e=r=i);else{e>i&&(e=i);r<i&&(r=i)}}return[e,r]}class Adder{constructor(){this._partials=new Float64Array(32);this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],i=t+o,f=Math.abs(t)<Math.abs(o)?t-(i-o):o-(i-t);f&&(n[e++]=f);t=i}n[e]=t;this._n=e+1;return this}valueOf(){const t=this._partials;let n,e,r,o=this._n,i=0;if(o>0){i=t[--o];while(o>0){n=i;e=t[--o];i=n+e;r=e-(i-n);if(r)break}if(o>0&&(r<0&&t[o-1]<0||r>0&&t[o-1]>0)){e=2*r;n=i+e;e==n-i&&(i=n)}}return i}}function fsum(t,n){const e=new Adder;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&e.add(o)}return+e}function fcumsum(t,n){const e=new Adder;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):o=>e.add(+n(o,++r,t)||0))}function identity(t){return t}function group(t,...n){return nest(t,identity,identity,n)}function groups(t,...n){return nest(t,Array.from,identity,n)}function flatten$1(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function flatGroup(t,...n){return flatten$1(groups(t,...n),n)}function flatRollup(t,n,...e){return flatten$1(rollups(t,n,...e),e)}function rollup(t,n,...e){return nest(t,identity,n,e)}function rollups(t,n,...e){return nest(t,Array.from,n,e)}function index(t,...n){return nest(t,identity,unique,n)}function indexes(t,...n){return nest(t,Array.from,unique,n)}function unique(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function nest(n,e,r,o){return function regroup(n,i){if(i>=o.length)return r(n);const f=new t;const u=o[i++];let l=-1;for(const t of n){const e=u(t,++l,n);const r=f.get(e);r?r.push(t):f.set(e,[t])}for(const[t,n]of f)f.set(t,regroup(n,i));return e(f)}(n,0)}function permute(t,n){return Array.from(n,(n=>t[n]))}function sort(t,...n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));if(n.length>1){n=n.map((n=>t.map(n)));r.sort(((t,e)=>{for(const r of n){const n=ascendingDefined(r[t],r[e]);if(n)return n}}))}else{e=t.map(e);r.sort(((t,n)=>ascendingDefined(e[t],e[n])))}return permute(t,r)}return t.sort(compareDefined(e))}function compareDefined(t=ascending){if(t===ascending)return ascendingDefined;if("function"!==typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function ascendingDefined(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}function groupSort(t,n,e){return(2!==n.length?sort(rollup(t,n,e),(([t,n],[e,r])=>ascending(n,r)||ascending(t,e))):sort(group(t,e),(([t,e],[r,o])=>n(e,o)||ascending(t,r)))).map((([t])=>t))}var l=Array.prototype;var c=l.slice;l.map;function constant(t){return()=>t}const s=Math.sqrt(50),a=Math.sqrt(10),h=Math.sqrt(2);function tickSpec(t,n,e){const r=(n-t)/Math.max(0,e),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),f=i>=s?10:i>=a?5:i>=h?2:1;let u,l,c;if(o<0){c=Math.pow(10,-o)/f;u=Math.round(t*c);l=Math.round(n*c);u/c<t&&++u;l/c>n&&--l;c=-c}else{c=Math.pow(10,o)*f;u=Math.round(t/c);l=Math.round(n/c);u*c<t&&++u;l*c>n&&--l}return l<u&&.5<=e&&e<2?tickSpec(t,n,2*e):[u,l,c]}function ticks(t,n,e){n=+n,t=+t,e=+e;if(!(e>0))return[];if(t===n)return[t];const r=n<t,[o,i,f]=r?tickSpec(n,t,e):tickSpec(t,n,e);if(!(i>=o))return[];const u=i-o+1,l=new Array(u);if(r)if(f<0)for(let t=0;t<u;++t)l[t]=(i-t)/-f;else for(let t=0;t<u;++t)l[t]=(i-t)*f;else if(f<0)for(let t=0;t<u;++t)l[t]=(o+t)/-f;else for(let t=0;t<u;++t)l[t]=(o+t)*f;return l}function tickIncrement(t,n,e){n=+n,t=+t,e=+e;return tickSpec(t,n,e)[2]}function tickStep(t,n,e){n=+n,t=+t,e=+e;const r=n<t,o=r?tickIncrement(n,t,e):tickIncrement(t,n,e);return(r?-1:1)*(o<0?1/-o:o)}function nice(t,n,e){let r;while(true){const o=tickIncrement(t,n,e);if(o===r||0===o||!isFinite(o))return[t,n];if(o>0){t=Math.floor(t/o)*o;n=Math.ceil(n/o)*o}else if(o<0){t=Math.ceil(t*o)/o;n=Math.floor(n*o)/o}r=o}}function thresholdSturges(t){return Math.max(1,Math.ceil(Math.log(count(t))/Math.LN2)+1)}function bin(){var t=identity,n=extent,e=thresholdSturges;function histogram(o){Array.isArray(o)||(o=Array.from(o));var i,f,u,l=o.length,c=new Array(l);for(i=0;i<l;++i)c[i]=t(o[i],i,o);var s=n(c),a=s[0],h=s[1],d=e(c,a,h);if(!Array.isArray(d)){const t=h,e=+d;n===extent&&([a,h]=nice(a,h,e));d=ticks(a,h,e);d[0]<=a&&(u=tickIncrement(a,h,e));if(d[d.length-1]>=h)if(t>=h&&n===extent){const t=tickIncrement(a,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}var m=d.length,p=0,g=m;while(d[p]<=a)++p;while(d[g-1]>h)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y,w=new Array(m+1);for(i=0;i<=m;++i){y=w[i]=[];y.x0=i>0?d[i-1]:a;y.x1=i<m?d[i]:h}if(isFinite(u)){if(u>0)for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[Math.min(m,Math.floor((f-a)/u))].push(o[i]);else if(u<0)for(i=0;i<l;++i)if(null!=(f=c[i])&&a<=f&&f<=h){const t=Math.floor((a-f)*u);w[Math.min(m,t+(d[t]<=f))].push(o[i])}}else for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[r(d,f,0,m)].push(o[i]);return w}histogram.value=function(n){return arguments.length?(t="function"===typeof n?n:constant(n),histogram):t};histogram.domain=function(t){return arguments.length?(n="function"===typeof t?t:constant([t[0],t[1]]),histogram):n};histogram.thresholds=function(t){return arguments.length?(e="function"===typeof t?t:constant(Array.isArray(t)?c.call(t):t),histogram):e};return histogram}function max(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e<o||void 0===e&&o>=o)&&(e=o)}return e}function maxIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e<i||void 0===e&&i>=i)&&(e=i,r=o);return r}function min(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e>o||void 0===e&&o>=o)&&(e=o)}return e}function minIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e>i||void 0===e&&i>=i)&&(e=i,r=o);return r}function quickselect(t,n,e=0,r=Infinity,o){n=Math.floor(n);e=Math.floor(Math.max(0,e));r=Math.floor(Math.min(t.length-1,r));if(!(e<=n&&n<=r))return t;o=void 0===o?ascendingDefined:compareDefined(o);while(r>e){if(r-e>600){const i=r-e+1;const f=n-e+1;const u=Math.log(i);const l=.5*Math.exp(2*u/3);const c=.5*Math.sqrt(u*l*(i-l)/i)*(f-i/2<0?-1:1);const s=Math.max(e,Math.floor(n-f*l/i+c));const a=Math.min(r,Math.floor(n+(i-f)*l/i+c));quickselect(t,n,s,a,o)}const i=t[n];let f=e;let u=r;swap(t,e,n);o(t[r],i)>0&&swap(t,e,r);while(f<u){swap(t,f,u),++f,--u;while(o(t[f],i)<0)++f;while(o(t[u],i)>0)--u}0===o(t[e],i)?swap(t,e,u):(++u,swap(t,u,r));u<=n&&(e=u+1);n<=u&&(r=u-1)}return t}function swap(t,n,e){const r=t[n];t[n]=t[e];t[e]=r}function greatest(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)>0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)>0:0===n(o,o)){e=o;r=true}return e}function quantile(t,n,e){t=Float64Array.from(numbers(t,e));if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return min(t);if(n>=1)return max(t);var r,o=(r-1)*n,i=Math.floor(o),f=max(quickselect(t,i).subarray(0,i+1)),u=min(t.subarray(i+1));return f+(u-f)*(o-i)}}function quantileSorted(t,n,e=number){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,i=Math.floor(o),f=+e(t[i],i,t),u=+e(t[i+1],i+1,t);return f+(u-f)*(o-i)}}function quantileIndex(t,n,e=number){if(!isNaN(n=+n)){r=Float64Array.from(t,((n,r)=>number(e(t[r],r,t))));if(n<=0)return minIndex(r);if(n>=1)return maxIndex(r);var r,o=Uint32Array.from(t,((t,n)=>n)),i=r.length-1,f=Math.floor(i*n);quickselect(o,f,0,i,((t,n)=>ascendingDefined(r[t],r[n])));f=greatest(o.subarray(0,f+1),(t=>r[t]));return f>=0?f:-1}}function thresholdFreedmanDiaconis(t,n,e){const r=count(t),o=quantile(t,.75)-quantile(t,.25);return r&&o?Math.ceil((e-n)/(2*o*Math.pow(r,-1/3))):1}function thresholdScott(t,n,e){const r=count(t),o=deviation(t);return r&&o?Math.ceil((e-n)*Math.cbrt(r)/(3.49*o)):1}function mean(t,n){let e=0;let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let o=-1;for(let i of t)null!=(i=n(i,++o,t))&&(i=+i)>=i&&(++e,r+=i)}if(e)return r/e}function median(t,n){return quantile(t,.5,n)}function medianIndex(t,n){return quantileIndex(t,.5,n)}function*flatten(t){for(const n of t)yield*n}function merge(t){return Array.from(flatten(t))}function mode(n,e){const r=new t;if(void 0===e)for(let t of n)null!=t&&t>=t&&r.set(t,(r.get(t)||0)+1);else{let t=-1;for(let o of n)null!=(o=e(o,++t,n))&&o>=o&&r.set(o,(r.get(o)||0)+1)}let o;let i=0;for(const[t,n]of r)if(n>i){i=n;o=t}return o}function pairs(t,n=pair){const e=[];let r;let o=false;for(const i of t){o&&e.push(n(r,i));r=i;o=true}return e}function pair(t,n){return[t,n]}function range(t,n,e){t=+t,n=+n,e=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+e;var r=-1,o=0|Math.max(0,Math.ceil((n-t)/e)),i=new Array(o);while(++r<o)i[r]=t+r*e;return i}function rank(t,n=ascending){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const r=new Float64Array(e.length);2!==n.length&&(e=e.map(n),n=ascending);const compareIndex=(t,r)=>n(e[t],e[r]);let o,i;t=Uint32Array.from(e,((t,n)=>n));t.sort(n===ascending?(t,n)=>ascendingDefined(e[t],e[n]):compareDefined(compareIndex));t.forEach(((t,n)=>{const e=compareIndex(t,void 0===o?t:o);if(e>=0){(void 0===o||e>0)&&(o=t,i=n);r[t]=i}else r[t]=NaN}));return r}function least(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)<0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)<0:0===n(o,o)){e=o;r=true}return e}function leastIndex(t,n=ascending){if(1===n.length)return minIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)<0){e=i;r=o}}return r}function greatestIndex(t,n=ascending){if(1===n.length)return maxIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)>0){e=i;r=o}}return r}function scan(t,n){const e=leastIndex(t,n);return e<0?void 0:e}var d=shuffler(Math.random);function shuffler(t){return function shuffle(n,e=0,r=n.length){let o=r-(e=+e);while(o){const r=t()*o--|0,i=n[o+e];n[o+e]=n[r+e];n[r+e]=i}return n}}function sum(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&(e+=o)}return e}function transpose(t){if(!(o=t.length))return[];for(var n=-1,e=min(t,length),r=new Array(e);++n<e;)for(var o,i=-1,f=r[n]=new Array(o);++i<o;)f[i]=t[i][n];return r}function length(t){return t.length}function zip(){return transpose(arguments)}function every(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return false;return true}function some(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return true;return false}function filter(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const o of t)n(o,++r,t)&&e.push(o);return e}function map(t,n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))}function reduce(t,n,e){if("function"!==typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let o,i,f=-1;if(arguments.length<3){({done:o,value:e}=r.next());if(o)return;++f}while(({done:o,value:i}=r.next()),!o)e=n(e,i,++f,t);return e}function reverse(t){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()}function difference(t,...e){t=new n(t);for(const n of e)for(const e of n)t.delete(e);return t}function disjoint(t,e){const r=e[Symbol.iterator](),o=new n;for(const n of t){if(o.has(n))return false;let t,e;while(({value:t,done:e}=r.next())){if(e)break;if(Object.is(n,t))return false;o.add(t)}}return true}function intersection(t,...e){t=new n(t);e=e.map(set);t:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue t}return t}function set(t){return t instanceof n?t:new n(t)}function superset(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=intern(t);if(r.has(n))continue;let o,i;while(({value:o,done:i}=e.next())){if(i)return false;const t=intern(o);r.add(t);if(Object.is(n,t))break}}return true}function intern(t){return null!==t&&"object"===typeof t?t.valueOf():t}function subset(t,n){return superset(n,t)}function union(...t){const e=new n;for(const n of t)for(const t of n)e.add(t);return e}export{Adder,ascending,bin,r as bisect,i as bisectCenter,o as bisectLeft,r as bisectRight,bisector,blur,f as blur2,u as blurImage,count,cross,cumsum,descending,deviation,difference,disjoint,every,extent,fcumsum,filter,flatGroup,flatRollup,fsum,greatest,greatestIndex,group,groupSort,groups,bin as histogram,index,indexes,intersection,least,leastIndex,map,max,maxIndex,mean,median,medianIndex,merge,min,minIndex,mode,nice,pairs,permute,quantile,quantileIndex,quantileSorted,quickselect,range,rank,reduce,reverse,rollup,rollups,scan,d as shuffle,shuffler,some,sort,subset,sum,superset,thresholdFreedmanDiaconis,thresholdScott,thresholdSturges,tickIncrement,tickStep,ticks,transpose,union,variance,zip};
var n={};(function(e,t){t(n)})(n,(function(n){function ascending(n,e){return n<e?-1:n>e?1:n>=e?0:NaN}function bisector(n){1===n.length&&(n=ascendingComparator(n));return{left:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)<0?r=a+1:i=a}return r},right:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)>0?i=a:r=a+1}return r}}}function ascendingComparator(n){return function(e,t){return ascending(n(e),t)}}var e=bisector(ascending);var t=e.right;var r=e.left;function pairs(n,e){null==e&&(e=pair);var t=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);while(t<r)a[t]=e(i,i=n[++t]);return a}function pair(n,e){return[n,e]}function cross(n,e,t){var r=n.length,i=e.length,a=new Array(r*i),l,u,o,h;null==t&&(t=pair);for(l=o=0;l<r;++l)for(h=n[l],u=0;u<i;++u,++o)a[o]=t(h,e[u]);return a}function descending(n,e){return e<n?-1:e>n?1:e>=n?0:NaN}function number(n){return null===n?NaN:+n}function variance(n,e){var t=n.length,r=0,i=-1,a=0,l,u,o=0;if(null==e){while(++i<t)if(!isNaN(l=number(n[i]))){u=l-a;a+=u/++r;o+=u*(l-a)}}else while(++i<t)if(!isNaN(l=number(e(n[i],i,n)))){u=l-a;a+=u/++r;o+=u*(l-a)}if(r>1)return o/(r-1)}function deviation(n,e){var t=variance(n,e);return t?Math.sqrt(t):t}function extent(n,e){var t=n.length,r=-1,i,a,l;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=l=i;while(++r<t)if(null!=(i=n[r])){a>i&&(a=i);l<i&&(l=i)}}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=l=i;while(++r<t)if(null!=(i=e(n[r],r,n))){a>i&&(a=i);l<i&&(l=i)}}return[a,l]}var i=Array.prototype;var a=i.slice;var l=i.map;function constant(n){return function(){return n}}function identity(n){return n}function range(n,e,t){n=+n,e=+e,t=(i=arguments.length)<2?(e=n,n=0,1):i<3?1:+t;var r=-1,i=0|Math.max(0,Math.ceil((e-n)/t)),a=new Array(i);while(++r<i)a[r]=n+r*t;return a}var u=Math.sqrt(50),o=Math.sqrt(10),h=Math.sqrt(2);function ticks(n,e,t){var r,i=-1,a,l,u;e=+e,n=+n,t=+t;if(n===e&&t>0)return[n];(r=e<n)&&(a=n,n=e,e=a);if(0===(u=tickIncrement(n,e,t))||!isFinite(u))return[];if(u>0){n=Math.ceil(n/u);e=Math.floor(e/u);l=new Array(a=Math.ceil(e-n+1));while(++i<a)l[i]=(n+i)*u}else{n=Math.floor(n*u);e=Math.ceil(e*u);l=new Array(a=Math.ceil(n-e+1));while(++i<a)l[i]=(n-i)/u}r&&l.reverse();return l}function tickIncrement(n,e,t){var r=(e-n)/Math.max(0,t),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=u?10:a>=o?5:a>=h?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=u?10:a>=o?5:a>=h?2:1)}function tickStep(n,e,t){var r=Math.abs(e-n)/Math.max(0,t),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;a>=u?i*=10:a>=o?i*=5:a>=h&&(i*=2);return e<n?-i:i}function sturges(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function histogram(){var n=identity,e=extent,r=sturges;function histogram(i){var a,l=i.length,u,o=new Array(l);for(a=0;a<l;++a)o[a]=n(i[a],a,i);var h=e(o),s=h[0],c=h[1],f=r(o,s,c);if(!Array.isArray(f)){f=tickStep(s,c,f);f=range(Math.ceil(s/f)*f,c,f)}var g=f.length;while(f[0]<=s)f.shift(),--g;while(f[g-1]>c)f.pop(),--g;var m=new Array(g+1),w;for(a=0;a<=g;++a){w=m[a]=[];w.x0=a>0?f[a-1]:s;w.x1=a<g?f[a]:c}for(a=0;a<l;++a){u=o[a];s<=u&&u<=c&&m[t(f,u,0,g)].push(i[a])}return m}histogram.value=function(e){return arguments.length?(n="function"===typeof e?e:constant(e),histogram):n};histogram.domain=function(n){return arguments.length?(e="function"===typeof n?n:constant([n[0],n[1]]),histogram):e};histogram.thresholds=function(n){return arguments.length?(r="function"===typeof n?n:Array.isArray(n)?constant(a.call(n)):constant(n),histogram):r};return histogram}function quantile(n,e,t){null==t&&(t=number);if(r=n.length){if((e=+e)<=0||r<2)return+t(n[0],0,n);if(e>=1)return+t(n[r-1],r-1,n);var r,i=(r-1)*e,a=Math.floor(i),l=+t(n[a],a,n),u=+t(n[a+1],a+1,n);return l+(u-l)*(i-a)}}function freedmanDiaconis(n,e,t){n=l.call(n,number).sort(ascending);return Math.ceil((t-e)/(2*(quantile(n,.75)-quantile(n,.25))*Math.pow(n.length,-1/3)))}function scott(n,e,t){return Math.ceil((t-e)/(3.5*deviation(n)*Math.pow(n.length,-1/3)))}function max(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&i>a&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&i>a&&(a=i)}return a}function mean(n,e){var t=n.length,r=t,i=-1,a,l=0;if(null==e)while(++i<t)isNaN(a=number(n[i]))?--r:l+=a;else while(++i<t)isNaN(a=number(e(n[i],i,n)))?--r:l+=a;if(r)return l/r}function median(n,e){var t=n.length,r=-1,i,a=[];if(null==e)while(++r<t)isNaN(i=number(n[r]))||a.push(i);else while(++r<t)isNaN(i=number(e(n[r],r,n)))||a.push(i);return quantile(a.sort(ascending),.5)}function merge(n){var e=n.length,t,r=-1,i=0,a,l;while(++r<e)i+=n[r].length;a=new Array(i);while(--e>=0){l=n[e];t=l.length;while(--t>=0)a[--i]=l[t]}return a}function min(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&a>i&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&a>i&&(a=i)}return a}function permute(n,e){var t=e.length,r=new Array(t);while(t--)r[t]=n[e[t]];return r}function scan(n,e){if(t=n.length){var t,r=0,i=0,a,l=n[i];null==e&&(e=ascending);while(++r<t)(e(a=n[r],l)<0||0!==e(l,l))&&(l=a,i=r);return 0===e(l,l)?i:void 0}}function shuffle(n,e,t){var r=(null==t?n.length:t)-(e=null==e?0:+e),i,a;while(r){a=Math.random()*r--|0;i=n[r+e];n[r+e]=n[a+e];n[a+e]=i}return n}function sum(n,e){var t=n.length,r=-1,i,a=0;if(null==e)while(++r<t)(i=+n[r])&&(a+=i);else while(++r<t)(i=+e(n[r],r,n))&&(a+=i);return a}function transpose(n){if(!(a=n.length))return[];for(var e=-1,t=min(n,length),r=new Array(t);++e<t;)for(var i=-1,a,l=r[e]=new Array(a);++i<a;)l[i]=n[i][e];return r}function length(n){return n.length}function zip(){return transpose(arguments)}n.bisect=t;n.bisectRight=t;n.bisectLeft=r;n.ascending=ascending;n.bisector=bisector;n.cross=cross;n.descending=descending;n.deviation=deviation;n.extent=extent;n.histogram=histogram;n.thresholdFreedmanDiaconis=freedmanDiaconis;n.thresholdScott=scott;n.thresholdSturges=sturges;n.max=max;n.mean=mean;n.median=median;n.merge=merge;n.min=min;n.pairs=pairs;n.permute=permute;n.quantile=quantile;n.range=range;n.scan=scan;n.shuffle=shuffle;n.sum=sum;n.ticks=ticks;n.tickIncrement=tickIncrement;n.tickStep=tickStep;n.transpose=transpose;n.variance=variance;n.zip=zip;Object.defineProperty(n,"__esModule",{value:true})}));const e=n.bisect,t=n.bisectRight,r=n.bisectLeft,i=n.ascending,a=n.bisector,l=n.cross,u=n.descending,o=n.deviation,h=n.extent,s=n.histogram,c=n.thresholdFreedmanDiaconis,f=n.thresholdScott,g=n.thresholdSturges,m=n.max,w=n.mean,v=n.median,d=n.merge,p=n.min,M=n.pairs,y=n.permute,b=n.quantile,N=n.range,x=n.scan,A=n.shuffle,k=n.sum,q=n.ticks,S=n.tickIncrement,I=n.tickStep,L=n.transpose,z=n.variance,D=n.zip,_=n.__esModule;export default n;export{_ as __esModule,i as ascending,e as bisect,r as bisectLeft,t as bisectRight,a as bisector,l as cross,u as descending,o as deviation,h as extent,s as histogram,m as max,w as mean,v as median,d as merge,p as min,M as pairs,y as permute,b as quantile,N as range,x as scan,A as shuffle,k as sum,c as thresholdFreedmanDiaconis,f as thresholdScott,g as thresholdSturges,S as tickIncrement,I as tickStep,q as ticks,L as transpose,z as variance,D as zip};
@@ -1,2 +1,2 @@
import{InternMap as t,InternSet as n}from"internmap";export{InternMap,InternSet}from"internmap";function ascending(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function descending(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function bisector(t){let n,e,r;if(2!==t.length){n=ascending;e=(n,e)=>ascending(t(n),e);r=(n,e)=>t(n)-e}else{n=t===ascending||t===descending?t:zero;e=t;r=t}function left(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<0?o=n+1:i=n}while(o<i)}return o}function right(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<=0?o=n+1:i=n}while(o<i)}return o}function center(t,n,e=0,o=t.length){const i=left(t,n,e,o-1);return i>e&&r(t[i-1],n)>-r(t[i],n)?i-1:i}return{left:left,center:center,right:right}}function zero(){return 0}function number(t){return null===t?NaN:+t}function*numbers(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}const e=bisector(ascending);const r=e.right;const o=e.left;const i=bisector(number).center;function blur(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=blurf(n);const o=t.slice();r(t,o,0,e,1);r(o,t,0,e,1);r(t,o,0,e,1);return t}const f=Blur2(blurf);const u=Blur2(blurfImage);function Blur2(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:f}=n;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((f=Math.floor(void 0!==f?f:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!f||!e&&!r)return n;const u=e&&t(e);const l=r&&t(r);const c=o.slice();if(u&&l){blurh(u,c,o,i,f);blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}else if(u){blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurh(u,o,c,i,f)}else if(l){blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}return n}}function blurh(t,n,e,r,o){for(let i=0,f=r*o;i<f;)t(n,e,i,i+=r,1)}function blurv(t,n,e,r,o){for(let i=0,f=r*o;i<r;++i)t(n,e,i,i+f,r)}function blurfImage(t){const n=blurf(t);return(t,e,r,o,i)=>{r<<=2,o<<=2,i<<=2;n(t,e,r+0,o+0,i);n(t,e,r+1,o+1,i);n(t,e,r+2,o+2,i);n(t,e,r+3,o+3,i)}}function blurf(t){const n=Math.floor(t);if(n===t)return bluri(t);const e=t-n;const r=2*t+1;return(t,o,i,f,u)=>{if(!((f-=u)>=i))return;let l=n*o[i];const c=u*n;const s=c+u;for(let t=i,n=i+c;t<n;t+=u)l+=o[Math.min(f,t)];for(let n=i,a=f;n<=a;n+=u){l+=o[Math.min(f,n+c)];t[n]=(l+e*(o[Math.max(i,n-s)]+o[Math.min(f,n+s)]))/r;l-=o[Math.max(i,n-c)]}}}function bluri(t){const n=2*t+1;return(e,r,o,i,f)=>{if(!((i-=f)>=o))return;let u=t*r[o];const l=f*t;for(let t=o,n=o+l;t<n;t+=f)u+=r[Math.min(i,t)];for(let t=o,c=i;t<=c;t+=f){u+=r[Math.min(i,t+l)];e[t]=u/n;u-=r[Math.max(o,t-l)]}}}function count(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(o=+o)>=o&&++e}return e}function length$1(t){return 0|t.length}function empty(t){return!(t>0)}function arrayify(t){return"object"!==typeof t||"length"in t?t:Array.from(t)}function reducer(t){return n=>t(...n)}function cross(...t){const n="function"===typeof t[t.length-1]&&reducer(t.pop());t=t.map(arrayify);const e=t.map(length$1);const r=t.length-1;const o=new Array(r+1).fill(0);const i=[];if(r<0||e.some(empty))return i;while(true){i.push(o.map(((n,e)=>t[e][n])));let f=r;while(++o[f]===e[f]){if(0===f)return n?i.map(n):i;o[f--]=0}}}function cumsum(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:o=>e+=+n(o,r++,t)||0)}function variance(t,n){let e=0;let r;let o=0;let i=0;if(void 0===n){for(let n of t)if(null!=n&&(n=+n)>=n){r=n-o;o+=r/++e;i+=r*(n-o)}}else{let f=-1;for(let u of t)if(null!=(u=n(u,++f,t))&&(u=+u)>=u){r=u-o;o+=r/++e;i+=r*(u-o)}}if(e>1)return i/(e-1)}function deviation(t,n){const e=variance(t,n);return e?Math.sqrt(e):e}function extent(t,n){let e;let r;if(void 0===n){for(const n of t)if(null!=n)if(void 0===e)n>=n&&(e=r=n);else{e>n&&(e=n);r<n&&(r=n)}}else{let o=-1;for(let i of t)if(null!=(i=n(i,++o,t)))if(void 0===e)i>=i&&(e=r=i);else{e>i&&(e=i);r<i&&(r=i)}}return[e,r]}class Adder{constructor(){this._partials=new Float64Array(32);this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],i=t+o,f=Math.abs(t)<Math.abs(o)?t-(i-o):o-(i-t);f&&(n[e++]=f);t=i}n[e]=t;this._n=e+1;return this}valueOf(){const t=this._partials;let n,e,r,o=this._n,i=0;if(o>0){i=t[--o];while(o>0){n=i;e=t[--o];i=n+e;r=e-(i-n);if(r)break}if(o>0&&(r<0&&t[o-1]<0||r>0&&t[o-1]>0)){e=2*r;n=i+e;e==n-i&&(i=n)}}return i}}function fsum(t,n){const e=new Adder;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&e.add(o)}return+e}function fcumsum(t,n){const e=new Adder;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):o=>e.add(+n(o,++r,t)||0))}function identity(t){return t}function group(t,...n){return nest(t,identity,identity,n)}function groups(t,...n){return nest(t,Array.from,identity,n)}function flatten$1(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function flatGroup(t,...n){return flatten$1(groups(t,...n),n)}function flatRollup(t,n,...e){return flatten$1(rollups(t,n,...e),e)}function rollup(t,n,...e){return nest(t,identity,n,e)}function rollups(t,n,...e){return nest(t,Array.from,n,e)}function index(t,...n){return nest(t,identity,unique,n)}function indexes(t,...n){return nest(t,Array.from,unique,n)}function unique(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function nest(n,e,r,o){return function regroup(n,i){if(i>=o.length)return r(n);const f=new t;const u=o[i++];let l=-1;for(const t of n){const e=u(t,++l,n);const r=f.get(e);r?r.push(t):f.set(e,[t])}for(const[t,n]of f)f.set(t,regroup(n,i));return e(f)}(n,0)}function permute(t,n){return Array.from(n,(n=>t[n]))}function sort(t,...n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));if(n.length>1){n=n.map((n=>t.map(n)));r.sort(((t,e)=>{for(const r of n){const n=ascendingDefined(r[t],r[e]);if(n)return n}}))}else{e=t.map(e);r.sort(((t,n)=>ascendingDefined(e[t],e[n])))}return permute(t,r)}return t.sort(compareDefined(e))}function compareDefined(t=ascending){if(t===ascending)return ascendingDefined;if("function"!==typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function ascendingDefined(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}function groupSort(t,n,e){return(2!==n.length?sort(rollup(t,n,e),(([t,n],[e,r])=>ascending(n,r)||ascending(t,e))):sort(group(t,e),(([t,e],[r,o])=>n(e,o)||ascending(t,r)))).map((([t])=>t))}var l=Array.prototype;var c=l.slice;l.map;function constant(t){return()=>t}const s=Math.sqrt(50),a=Math.sqrt(10),h=Math.sqrt(2);function tickSpec(t,n,e){const r=(n-t)/Math.max(0,e),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),f=i>=s?10:i>=a?5:i>=h?2:1;let u,l,c;if(o<0){c=Math.pow(10,-o)/f;u=Math.round(t*c);l=Math.round(n*c);u/c<t&&++u;l/c>n&&--l;c=-c}else{c=Math.pow(10,o)*f;u=Math.round(t/c);l=Math.round(n/c);u*c<t&&++u;l*c>n&&--l}return l<u&&.5<=e&&e<2?tickSpec(t,n,2*e):[u,l,c]}function ticks(t,n,e){n=+n,t=+t,e=+e;if(!(e>0))return[];if(t===n)return[t];const r=n<t,[o,i,f]=r?tickSpec(n,t,e):tickSpec(t,n,e);if(!(i>=o))return[];const u=i-o+1,l=new Array(u);if(r)if(f<0)for(let t=0;t<u;++t)l[t]=(i-t)/-f;else for(let t=0;t<u;++t)l[t]=(i-t)*f;else if(f<0)for(let t=0;t<u;++t)l[t]=(o+t)/-f;else for(let t=0;t<u;++t)l[t]=(o+t)*f;return l}function tickIncrement(t,n,e){n=+n,t=+t,e=+e;return tickSpec(t,n,e)[2]}function tickStep(t,n,e){n=+n,t=+t,e=+e;const r=n<t,o=r?tickIncrement(n,t,e):tickIncrement(t,n,e);return(r?-1:1)*(o<0?1/-o:o)}function nice(t,n,e){let r;while(true){const o=tickIncrement(t,n,e);if(o===r||0===o||!isFinite(o))return[t,n];if(o>0){t=Math.floor(t/o)*o;n=Math.ceil(n/o)*o}else if(o<0){t=Math.ceil(t*o)/o;n=Math.floor(n*o)/o}r=o}}function thresholdSturges(t){return Math.max(1,Math.ceil(Math.log(count(t))/Math.LN2)+1)}function bin(){var t=identity,n=extent,e=thresholdSturges;function histogram(o){Array.isArray(o)||(o=Array.from(o));var i,f,u,l=o.length,c=new Array(l);for(i=0;i<l;++i)c[i]=t(o[i],i,o);var s=n(c),a=s[0],h=s[1],d=e(c,a,h);if(!Array.isArray(d)){const t=h,e=+d;n===extent&&([a,h]=nice(a,h,e));d=ticks(a,h,e);d[0]<=a&&(u=tickIncrement(a,h,e));if(d[d.length-1]>=h)if(t>=h&&n===extent){const t=tickIncrement(a,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}var m=d.length,p=0,g=m;while(d[p]<=a)++p;while(d[g-1]>h)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y,w=new Array(m+1);for(i=0;i<=m;++i){y=w[i]=[];y.x0=i>0?d[i-1]:a;y.x1=i<m?d[i]:h}if(isFinite(u)){if(u>0)for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[Math.min(m,Math.floor((f-a)/u))].push(o[i]);else if(u<0)for(i=0;i<l;++i)if(null!=(f=c[i])&&a<=f&&f<=h){const t=Math.floor((a-f)*u);w[Math.min(m,t+(d[t]<=f))].push(o[i])}}else for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[r(d,f,0,m)].push(o[i]);return w}histogram.value=function(n){return arguments.length?(t="function"===typeof n?n:constant(n),histogram):t};histogram.domain=function(t){return arguments.length?(n="function"===typeof t?t:constant([t[0],t[1]]),histogram):n};histogram.thresholds=function(t){return arguments.length?(e="function"===typeof t?t:constant(Array.isArray(t)?c.call(t):t),histogram):e};return histogram}function max(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e<o||void 0===e&&o>=o)&&(e=o)}return e}function maxIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e<i||void 0===e&&i>=i)&&(e=i,r=o);return r}function min(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e>o||void 0===e&&o>=o)&&(e=o)}return e}function minIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e>i||void 0===e&&i>=i)&&(e=i,r=o);return r}function quickselect(t,n,e=0,r=Infinity,o){n=Math.floor(n);e=Math.floor(Math.max(0,e));r=Math.floor(Math.min(t.length-1,r));if(!(e<=n&&n<=r))return t;o=void 0===o?ascendingDefined:compareDefined(o);while(r>e){if(r-e>600){const i=r-e+1;const f=n-e+1;const u=Math.log(i);const l=.5*Math.exp(2*u/3);const c=.5*Math.sqrt(u*l*(i-l)/i)*(f-i/2<0?-1:1);const s=Math.max(e,Math.floor(n-f*l/i+c));const a=Math.min(r,Math.floor(n+(i-f)*l/i+c));quickselect(t,n,s,a,o)}const i=t[n];let f=e;let u=r;swap(t,e,n);o(t[r],i)>0&&swap(t,e,r);while(f<u){swap(t,f,u),++f,--u;while(o(t[f],i)<0)++f;while(o(t[u],i)>0)--u}0===o(t[e],i)?swap(t,e,u):(++u,swap(t,u,r));u<=n&&(e=u+1);n<=u&&(r=u-1)}return t}function swap(t,n,e){const r=t[n];t[n]=t[e];t[e]=r}function greatest(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)>0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)>0:0===n(o,o)){e=o;r=true}return e}function quantile(t,n,e){t=Float64Array.from(numbers(t,e));if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return min(t);if(n>=1)return max(t);var r,o=(r-1)*n,i=Math.floor(o),f=max(quickselect(t,i).subarray(0,i+1)),u=min(t.subarray(i+1));return f+(u-f)*(o-i)}}function quantileSorted(t,n,e=number){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,i=Math.floor(o),f=+e(t[i],i,t),u=+e(t[i+1],i+1,t);return f+(u-f)*(o-i)}}function quantileIndex(t,n,e=number){if(!isNaN(n=+n)){r=Float64Array.from(t,((n,r)=>number(e(t[r],r,t))));if(n<=0)return minIndex(r);if(n>=1)return maxIndex(r);var r,o=Uint32Array.from(t,((t,n)=>n)),i=r.length-1,f=Math.floor(i*n);quickselect(o,f,0,i,((t,n)=>ascendingDefined(r[t],r[n])));f=greatest(o.subarray(0,f+1),(t=>r[t]));return f>=0?f:-1}}function thresholdFreedmanDiaconis(t,n,e){const r=count(t),o=quantile(t,.75)-quantile(t,.25);return r&&o?Math.ceil((e-n)/(2*o*Math.pow(r,-1/3))):1}function thresholdScott(t,n,e){const r=count(t),o=deviation(t);return r&&o?Math.ceil((e-n)*Math.cbrt(r)/(3.49*o)):1}function mean(t,n){let e=0;let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let o=-1;for(let i of t)null!=(i=n(i,++o,t))&&(i=+i)>=i&&(++e,r+=i)}if(e)return r/e}function median(t,n){return quantile(t,.5,n)}function medianIndex(t,n){return quantileIndex(t,.5,n)}function*flatten(t){for(const n of t)yield*n}function merge(t){return Array.from(flatten(t))}function mode(n,e){const r=new t;if(void 0===e)for(let t of n)null!=t&&t>=t&&r.set(t,(r.get(t)||0)+1);else{let t=-1;for(let o of n)null!=(o=e(o,++t,n))&&o>=o&&r.set(o,(r.get(o)||0)+1)}let o;let i=0;for(const[t,n]of r)if(n>i){i=n;o=t}return o}function pairs(t,n=pair){const e=[];let r;let o=false;for(const i of t){o&&e.push(n(r,i));r=i;o=true}return e}function pair(t,n){return[t,n]}function range(t,n,e){t=+t,n=+n,e=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+e;var r=-1,o=0|Math.max(0,Math.ceil((n-t)/e)),i=new Array(o);while(++r<o)i[r]=t+r*e;return i}function rank(t,n=ascending){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const r=new Float64Array(e.length);2!==n.length&&(e=e.map(n),n=ascending);const compareIndex=(t,r)=>n(e[t],e[r]);let o,i;t=Uint32Array.from(e,((t,n)=>n));t.sort(n===ascending?(t,n)=>ascendingDefined(e[t],e[n]):compareDefined(compareIndex));t.forEach(((t,n)=>{const e=compareIndex(t,void 0===o?t:o);if(e>=0){(void 0===o||e>0)&&(o=t,i=n);r[t]=i}else r[t]=NaN}));return r}function least(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)<0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)<0:0===n(o,o)){e=o;r=true}return e}function leastIndex(t,n=ascending){if(1===n.length)return minIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)<0){e=i;r=o}}return r}function greatestIndex(t,n=ascending){if(1===n.length)return maxIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)>0){e=i;r=o}}return r}function scan(t,n){const e=leastIndex(t,n);return e<0?void 0:e}var d=shuffler(Math.random);function shuffler(t){return function shuffle(n,e=0,r=n.length){let o=r-(e=+e);while(o){const r=t()*o--|0,i=n[o+e];n[o+e]=n[r+e];n[r+e]=i}return n}}function sum(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&(e+=o)}return e}function transpose(t){if(!(o=t.length))return[];for(var n=-1,e=min(t,length),r=new Array(e);++n<e;)for(var o,i=-1,f=r[n]=new Array(o);++i<o;)f[i]=t[i][n];return r}function length(t){return t.length}function zip(){return transpose(arguments)}function every(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return false;return true}function some(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return true;return false}function filter(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const o of t)n(o,++r,t)&&e.push(o);return e}function map(t,n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))}function reduce(t,n,e){if("function"!==typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let o,i,f=-1;if(arguments.length<3){({done:o,value:e}=r.next());if(o)return;++f}while(({done:o,value:i}=r.next()),!o)e=n(e,i,++f,t);return e}function reverse(t){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()}function difference(t,...e){t=new n(t);for(const n of e)for(const e of n)t.delete(e);return t}function disjoint(t,e){const r=e[Symbol.iterator](),o=new n;for(const n of t){if(o.has(n))return false;let t,e;while(({value:t,done:e}=r.next())){if(e)break;if(Object.is(n,t))return false;o.add(t)}}return true}function intersection(t,...e){t=new n(t);e=e.map(set);t:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue t}return t}function set(t){return t instanceof n?t:new n(t)}function superset(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=intern(t);if(r.has(n))continue;let o,i;while(({value:o,done:i}=e.next())){if(i)return false;const t=intern(o);r.add(t);if(Object.is(n,t))break}}return true}function intern(t){return null!==t&&"object"===typeof t?t.valueOf():t}function subset(t,n){return superset(n,t)}function union(...t){const e=new n;for(const n of t)for(const t of n)e.add(t);return e}export{Adder,ascending,bin,r as bisect,i as bisectCenter,o as bisectLeft,r as bisectRight,bisector,blur,f as blur2,u as blurImage,count,cross,cumsum,descending,deviation,difference,disjoint,every,extent,fcumsum,filter,flatGroup,flatRollup,fsum,greatest,greatestIndex,group,groupSort,groups,bin as histogram,index,indexes,intersection,least,leastIndex,map,max,maxIndex,mean,median,medianIndex,merge,min,minIndex,mode,nice,pairs,permute,quantile,quantileIndex,quantileSorted,quickselect,range,rank,reduce,reverse,rollup,rollups,scan,d as shuffle,shuffler,some,sort,subset,sum,superset,thresholdFreedmanDiaconis,thresholdScott,thresholdSturges,tickIncrement,tickStep,ticks,transpose,union,variance,zip};
var n={};(function(e,t){t(n)})(n,(function(n){function ascending(n,e){return n<e?-1:n>e?1:n>=e?0:NaN}function bisector(n){1===n.length&&(n=ascendingComparator(n));return{left:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)<0?r=a+1:i=a}return r},right:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)>0?i=a:r=a+1}return r}}}function ascendingComparator(n){return function(e,t){return ascending(n(e),t)}}var e=bisector(ascending);var t=e.right;var r=e.left;function pairs(n,e){null==e&&(e=pair);var t=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);while(t<r)a[t]=e(i,i=n[++t]);return a}function pair(n,e){return[n,e]}function cross(n,e,t){var r=n.length,i=e.length,a=new Array(r*i),l,u,o,h;null==t&&(t=pair);for(l=o=0;l<r;++l)for(h=n[l],u=0;u<i;++u,++o)a[o]=t(h,e[u]);return a}function descending(n,e){return e<n?-1:e>n?1:e>=n?0:NaN}function number(n){return null===n?NaN:+n}function variance(n,e){var t=n.length,r=0,i=-1,a=0,l,u,o=0;if(null==e){while(++i<t)if(!isNaN(l=number(n[i]))){u=l-a;a+=u/++r;o+=u*(l-a)}}else while(++i<t)if(!isNaN(l=number(e(n[i],i,n)))){u=l-a;a+=u/++r;o+=u*(l-a)}if(r>1)return o/(r-1)}function deviation(n,e){var t=variance(n,e);return t?Math.sqrt(t):t}function extent(n,e){var t=n.length,r=-1,i,a,l;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=l=i;while(++r<t)if(null!=(i=n[r])){a>i&&(a=i);l<i&&(l=i)}}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=l=i;while(++r<t)if(null!=(i=e(n[r],r,n))){a>i&&(a=i);l<i&&(l=i)}}return[a,l]}var i=Array.prototype;var a=i.slice;var l=i.map;function constant(n){return function(){return n}}function identity(n){return n}function range(n,e,t){n=+n,e=+e,t=(i=arguments.length)<2?(e=n,n=0,1):i<3?1:+t;var r=-1,i=0|Math.max(0,Math.ceil((e-n)/t)),a=new Array(i);while(++r<i)a[r]=n+r*t;return a}var u=Math.sqrt(50),o=Math.sqrt(10),h=Math.sqrt(2);function ticks(n,e,t){var r,i=-1,a,l,u;e=+e,n=+n,t=+t;if(n===e&&t>0)return[n];(r=e<n)&&(a=n,n=e,e=a);if(0===(u=tickIncrement(n,e,t))||!isFinite(u))return[];if(u>0){n=Math.ceil(n/u);e=Math.floor(e/u);l=new Array(a=Math.ceil(e-n+1));while(++i<a)l[i]=(n+i)*u}else{n=Math.floor(n*u);e=Math.ceil(e*u);l=new Array(a=Math.ceil(n-e+1));while(++i<a)l[i]=(n-i)/u}r&&l.reverse();return l}function tickIncrement(n,e,t){var r=(e-n)/Math.max(0,t),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=u?10:a>=o?5:a>=h?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=u?10:a>=o?5:a>=h?2:1)}function tickStep(n,e,t){var r=Math.abs(e-n)/Math.max(0,t),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;a>=u?i*=10:a>=o?i*=5:a>=h&&(i*=2);return e<n?-i:i}function sturges(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function histogram(){var n=identity,e=extent,r=sturges;function histogram(i){var a,l=i.length,u,o=new Array(l);for(a=0;a<l;++a)o[a]=n(i[a],a,i);var h=e(o),s=h[0],c=h[1],f=r(o,s,c);if(!Array.isArray(f)){f=tickStep(s,c,f);f=range(Math.ceil(s/f)*f,c,f)}var g=f.length;while(f[0]<=s)f.shift(),--g;while(f[g-1]>c)f.pop(),--g;var m=new Array(g+1),w;for(a=0;a<=g;++a){w=m[a]=[];w.x0=a>0?f[a-1]:s;w.x1=a<g?f[a]:c}for(a=0;a<l;++a){u=o[a];s<=u&&u<=c&&m[t(f,u,0,g)].push(i[a])}return m}histogram.value=function(e){return arguments.length?(n="function"===typeof e?e:constant(e),histogram):n};histogram.domain=function(n){return arguments.length?(e="function"===typeof n?n:constant([n[0],n[1]]),histogram):e};histogram.thresholds=function(n){return arguments.length?(r="function"===typeof n?n:Array.isArray(n)?constant(a.call(n)):constant(n),histogram):r};return histogram}function quantile(n,e,t){null==t&&(t=number);if(r=n.length){if((e=+e)<=0||r<2)return+t(n[0],0,n);if(e>=1)return+t(n[r-1],r-1,n);var r,i=(r-1)*e,a=Math.floor(i),l=+t(n[a],a,n),u=+t(n[a+1],a+1,n);return l+(u-l)*(i-a)}}function freedmanDiaconis(n,e,t){n=l.call(n,number).sort(ascending);return Math.ceil((t-e)/(2*(quantile(n,.75)-quantile(n,.25))*Math.pow(n.length,-1/3)))}function scott(n,e,t){return Math.ceil((t-e)/(3.5*deviation(n)*Math.pow(n.length,-1/3)))}function max(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&i>a&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&i>a&&(a=i)}return a}function mean(n,e){var t=n.length,r=t,i=-1,a,l=0;if(null==e)while(++i<t)isNaN(a=number(n[i]))?--r:l+=a;else while(++i<t)isNaN(a=number(e(n[i],i,n)))?--r:l+=a;if(r)return l/r}function median(n,e){var t=n.length,r=-1,i,a=[];if(null==e)while(++r<t)isNaN(i=number(n[r]))||a.push(i);else while(++r<t)isNaN(i=number(e(n[r],r,n)))||a.push(i);return quantile(a.sort(ascending),.5)}function merge(n){var e=n.length,t,r=-1,i=0,a,l;while(++r<e)i+=n[r].length;a=new Array(i);while(--e>=0){l=n[e];t=l.length;while(--t>=0)a[--i]=l[t]}return a}function min(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&a>i&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&a>i&&(a=i)}return a}function permute(n,e){var t=e.length,r=new Array(t);while(t--)r[t]=n[e[t]];return r}function scan(n,e){if(t=n.length){var t,r=0,i=0,a,l=n[i];null==e&&(e=ascending);while(++r<t)(e(a=n[r],l)<0||0!==e(l,l))&&(l=a,i=r);return 0===e(l,l)?i:void 0}}function shuffle(n,e,t){var r=(null==t?n.length:t)-(e=null==e?0:+e),i,a;while(r){a=Math.random()*r--|0;i=n[r+e];n[r+e]=n[a+e];n[a+e]=i}return n}function sum(n,e){var t=n.length,r=-1,i,a=0;if(null==e)while(++r<t)(i=+n[r])&&(a+=i);else while(++r<t)(i=+e(n[r],r,n))&&(a+=i);return a}function transpose(n){if(!(a=n.length))return[];for(var e=-1,t=min(n,length),r=new Array(t);++e<t;)for(var i=-1,a,l=r[e]=new Array(a);++i<a;)l[i]=n[i][e];return r}function length(n){return n.length}function zip(){return transpose(arguments)}n.bisect=t;n.bisectRight=t;n.bisectLeft=r;n.ascending=ascending;n.bisector=bisector;n.cross=cross;n.descending=descending;n.deviation=deviation;n.extent=extent;n.histogram=histogram;n.thresholdFreedmanDiaconis=freedmanDiaconis;n.thresholdScott=scott;n.thresholdSturges=sturges;n.max=max;n.mean=mean;n.median=median;n.merge=merge;n.min=min;n.pairs=pairs;n.permute=permute;n.quantile=quantile;n.range=range;n.scan=scan;n.shuffle=shuffle;n.sum=sum;n.ticks=ticks;n.tickIncrement=tickIncrement;n.tickStep=tickStep;n.transpose=transpose;n.variance=variance;n.zip=zip;Object.defineProperty(n,"__esModule",{value:true})}));const e=n.bisect,t=n.bisectRight,r=n.bisectLeft,i=n.ascending,a=n.bisector,l=n.cross,u=n.descending,o=n.deviation,h=n.extent,s=n.histogram,c=n.thresholdFreedmanDiaconis,f=n.thresholdScott,g=n.thresholdSturges,m=n.max,w=n.mean,v=n.median,d=n.merge,p=n.min,M=n.pairs,y=n.permute,b=n.quantile,N=n.range,x=n.scan,A=n.shuffle,k=n.sum,q=n.ticks,S=n.tickIncrement,I=n.tickStep,L=n.transpose,z=n.variance,D=n.zip,_=n.__esModule;export default n;export{_ as __esModule,i as ascending,e as bisect,r as bisectLeft,t as bisectRight,a as bisector,l as cross,u as descending,o as deviation,h as extent,s as histogram,m as max,w as mean,v as median,d as merge,p as min,M as pairs,y as permute,b as quantile,N as range,x as scan,A as shuffle,k as sum,c as thresholdFreedmanDiaconis,f as thresholdScott,g as thresholdSturges,S as tickIncrement,I as tickStep,q as ticks,L as transpose,z as variance,D as zip};
@@ -1,2 +1,2 @@
import{InternMap as t,InternSet as n}from"internmap";export{InternMap,InternSet}from"internmap";function ascending(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function descending(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function bisector(t){let n,e,r;if(2!==t.length){n=ascending;e=(n,e)=>ascending(t(n),e);r=(n,e)=>t(n)-e}else{n=t===ascending||t===descending?t:zero;e=t;r=t}function left(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<0?o=n+1:i=n}while(o<i)}return o}function right(t,r,o=0,i=t.length){if(o<i){if(0!==n(r,r))return i;do{const n=o+i>>>1;e(t[n],r)<=0?o=n+1:i=n}while(o<i)}return o}function center(t,n,e=0,o=t.length){const i=left(t,n,e,o-1);return i>e&&r(t[i-1],n)>-r(t[i],n)?i-1:i}return{left:left,center:center,right:right}}function zero(){return 0}function number(t){return null===t?NaN:+t}function*numbers(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}const e=bisector(ascending);const r=e.right;const o=e.left;const i=bisector(number).center;function blur(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=blurf(n);const o=t.slice();r(t,o,0,e,1);r(o,t,0,e,1);r(t,o,0,e,1);return t}const f=Blur2(blurf);const u=Blur2(blurfImage);function Blur2(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:f}=n;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((f=Math.floor(void 0!==f?f:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!f||!e&&!r)return n;const u=e&&t(e);const l=r&&t(r);const c=o.slice();if(u&&l){blurh(u,c,o,i,f);blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}else if(u){blurh(u,o,c,i,f);blurh(u,c,o,i,f);blurh(u,o,c,i,f)}else if(l){blurv(l,o,c,i,f);blurv(l,c,o,i,f);blurv(l,o,c,i,f)}return n}}function blurh(t,n,e,r,o){for(let i=0,f=r*o;i<f;)t(n,e,i,i+=r,1)}function blurv(t,n,e,r,o){for(let i=0,f=r*o;i<r;++i)t(n,e,i,i+f,r)}function blurfImage(t){const n=blurf(t);return(t,e,r,o,i)=>{r<<=2,o<<=2,i<<=2;n(t,e,r+0,o+0,i);n(t,e,r+1,o+1,i);n(t,e,r+2,o+2,i);n(t,e,r+3,o+3,i)}}function blurf(t){const n=Math.floor(t);if(n===t)return bluri(t);const e=t-n;const r=2*t+1;return(t,o,i,f,u)=>{if(!((f-=u)>=i))return;let l=n*o[i];const c=u*n;const s=c+u;for(let t=i,n=i+c;t<n;t+=u)l+=o[Math.min(f,t)];for(let n=i,a=f;n<=a;n+=u){l+=o[Math.min(f,n+c)];t[n]=(l+e*(o[Math.max(i,n-s)]+o[Math.min(f,n+s)]))/r;l-=o[Math.max(i,n-c)]}}}function bluri(t){const n=2*t+1;return(e,r,o,i,f)=>{if(!((i-=f)>=o))return;let u=t*r[o];const l=f*t;for(let t=o,n=o+l;t<n;t+=f)u+=r[Math.min(i,t)];for(let t=o,c=i;t<=c;t+=f){u+=r[Math.min(i,t+l)];e[t]=u/n;u-=r[Math.max(o,t-l)]}}}function count(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(o=+o)>=o&&++e}return e}function length$1(t){return 0|t.length}function empty(t){return!(t>0)}function arrayify(t){return"object"!==typeof t||"length"in t?t:Array.from(t)}function reducer(t){return n=>t(...n)}function cross(...t){const n="function"===typeof t[t.length-1]&&reducer(t.pop());t=t.map(arrayify);const e=t.map(length$1);const r=t.length-1;const o=new Array(r+1).fill(0);const i=[];if(r<0||e.some(empty))return i;while(true){i.push(o.map(((n,e)=>t[e][n])));let f=r;while(++o[f]===e[f]){if(0===f)return n?i.map(n):i;o[f--]=0}}}function cumsum(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:o=>e+=+n(o,r++,t)||0)}function variance(t,n){let e=0;let r;let o=0;let i=0;if(void 0===n){for(let n of t)if(null!=n&&(n=+n)>=n){r=n-o;o+=r/++e;i+=r*(n-o)}}else{let f=-1;for(let u of t)if(null!=(u=n(u,++f,t))&&(u=+u)>=u){r=u-o;o+=r/++e;i+=r*(u-o)}}if(e>1)return i/(e-1)}function deviation(t,n){const e=variance(t,n);return e?Math.sqrt(e):e}function extent(t,n){let e;let r;if(void 0===n){for(const n of t)if(null!=n)if(void 0===e)n>=n&&(e=r=n);else{e>n&&(e=n);r<n&&(r=n)}}else{let o=-1;for(let i of t)if(null!=(i=n(i,++o,t)))if(void 0===e)i>=i&&(e=r=i);else{e>i&&(e=i);r<i&&(r=i)}}return[e,r]}class Adder{constructor(){this._partials=new Float64Array(32);this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const o=n[r],i=t+o,f=Math.abs(t)<Math.abs(o)?t-(i-o):o-(i-t);f&&(n[e++]=f);t=i}n[e]=t;this._n=e+1;return this}valueOf(){const t=this._partials;let n,e,r,o=this._n,i=0;if(o>0){i=t[--o];while(o>0){n=i;e=t[--o];i=n+e;r=e-(i-n);if(r)break}if(o>0&&(r<0&&t[o-1]<0||r>0&&t[o-1]>0)){e=2*r;n=i+e;e==n-i&&(i=n)}}return i}}function fsum(t,n){const e=new Adder;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&e.add(o)}return+e}function fcumsum(t,n){const e=new Adder;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):o=>e.add(+n(o,++r,t)||0))}function identity(t){return t}function group(t,...n){return nest(t,identity,identity,n)}function groups(t,...n){return nest(t,Array.from,identity,n)}function flatten$1(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function flatGroup(t,...n){return flatten$1(groups(t,...n),n)}function flatRollup(t,n,...e){return flatten$1(rollups(t,n,...e),e)}function rollup(t,n,...e){return nest(t,identity,n,e)}function rollups(t,n,...e){return nest(t,Array.from,n,e)}function index(t,...n){return nest(t,identity,unique,n)}function indexes(t,...n){return nest(t,Array.from,unique,n)}function unique(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function nest(n,e,r,o){return function regroup(n,i){if(i>=o.length)return r(n);const f=new t;const u=o[i++];let l=-1;for(const t of n){const e=u(t,++l,n);const r=f.get(e);r?r.push(t):f.set(e,[t])}for(const[t,n]of f)f.set(t,regroup(n,i));return e(f)}(n,0)}function permute(t,n){return Array.from(n,(n=>t[n]))}function sort(t,...n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));if(n.length>1){n=n.map((n=>t.map(n)));r.sort(((t,e)=>{for(const r of n){const n=ascendingDefined(r[t],r[e]);if(n)return n}}))}else{e=t.map(e);r.sort(((t,n)=>ascendingDefined(e[t],e[n])))}return permute(t,r)}return t.sort(compareDefined(e))}function compareDefined(t=ascending){if(t===ascending)return ascendingDefined;if("function"!==typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function ascendingDefined(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}function groupSort(t,n,e){return(2!==n.length?sort(rollup(t,n,e),(([t,n],[e,r])=>ascending(n,r)||ascending(t,e))):sort(group(t,e),(([t,e],[r,o])=>n(e,o)||ascending(t,r)))).map((([t])=>t))}var l=Array.prototype;var c=l.slice;l.map;function constant(t){return()=>t}const s=Math.sqrt(50),a=Math.sqrt(10),h=Math.sqrt(2);function tickSpec(t,n,e){const r=(n-t)/Math.max(0,e),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),f=i>=s?10:i>=a?5:i>=h?2:1;let u,l,c;if(o<0){c=Math.pow(10,-o)/f;u=Math.round(t*c);l=Math.round(n*c);u/c<t&&++u;l/c>n&&--l;c=-c}else{c=Math.pow(10,o)*f;u=Math.round(t/c);l=Math.round(n/c);u*c<t&&++u;l*c>n&&--l}return l<u&&.5<=e&&e<2?tickSpec(t,n,2*e):[u,l,c]}function ticks(t,n,e){n=+n,t=+t,e=+e;if(!(e>0))return[];if(t===n)return[t];const r=n<t,[o,i,f]=r?tickSpec(n,t,e):tickSpec(t,n,e);if(!(i>=o))return[];const u=i-o+1,l=new Array(u);if(r)if(f<0)for(let t=0;t<u;++t)l[t]=(i-t)/-f;else for(let t=0;t<u;++t)l[t]=(i-t)*f;else if(f<0)for(let t=0;t<u;++t)l[t]=(o+t)/-f;else for(let t=0;t<u;++t)l[t]=(o+t)*f;return l}function tickIncrement(t,n,e){n=+n,t=+t,e=+e;return tickSpec(t,n,e)[2]}function tickStep(t,n,e){n=+n,t=+t,e=+e;const r=n<t,o=r?tickIncrement(n,t,e):tickIncrement(t,n,e);return(r?-1:1)*(o<0?1/-o:o)}function nice(t,n,e){let r;while(true){const o=tickIncrement(t,n,e);if(o===r||0===o||!isFinite(o))return[t,n];if(o>0){t=Math.floor(t/o)*o;n=Math.ceil(n/o)*o}else if(o<0){t=Math.ceil(t*o)/o;n=Math.floor(n*o)/o}r=o}}function thresholdSturges(t){return Math.max(1,Math.ceil(Math.log(count(t))/Math.LN2)+1)}function bin(){var t=identity,n=extent,e=thresholdSturges;function histogram(o){Array.isArray(o)||(o=Array.from(o));var i,f,u,l=o.length,c=new Array(l);for(i=0;i<l;++i)c[i]=t(o[i],i,o);var s=n(c),a=s[0],h=s[1],d=e(c,a,h);if(!Array.isArray(d)){const t=h,e=+d;n===extent&&([a,h]=nice(a,h,e));d=ticks(a,h,e);d[0]<=a&&(u=tickIncrement(a,h,e));if(d[d.length-1]>=h)if(t>=h&&n===extent){const t=tickIncrement(a,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}var m=d.length,p=0,g=m;while(d[p]<=a)++p;while(d[g-1]>h)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y,w=new Array(m+1);for(i=0;i<=m;++i){y=w[i]=[];y.x0=i>0?d[i-1]:a;y.x1=i<m?d[i]:h}if(isFinite(u)){if(u>0)for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[Math.min(m,Math.floor((f-a)/u))].push(o[i]);else if(u<0)for(i=0;i<l;++i)if(null!=(f=c[i])&&a<=f&&f<=h){const t=Math.floor((a-f)*u);w[Math.min(m,t+(d[t]<=f))].push(o[i])}}else for(i=0;i<l;++i)null!=(f=c[i])&&a<=f&&f<=h&&w[r(d,f,0,m)].push(o[i]);return w}histogram.value=function(n){return arguments.length?(t="function"===typeof n?n:constant(n),histogram):t};histogram.domain=function(t){return arguments.length?(n="function"===typeof t?t:constant([t[0],t[1]]),histogram):n};histogram.thresholds=function(t){return arguments.length?(e="function"===typeof t?t:constant(Array.isArray(t)?c.call(t):t),histogram):e};return histogram}function max(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e<o||void 0===e&&o>=o)&&(e=o)}return e}function maxIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e<i||void 0===e&&i>=i)&&(e=i,r=o);return r}function min(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let o of t)null!=(o=n(o,++r,t))&&(e>o||void 0===e&&o>=o)&&(e=o)}return e}function minIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n of t){++o;null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=o)}else for(let i of t)null!=(i=n(i,++o,t))&&(e>i||void 0===e&&i>=i)&&(e=i,r=o);return r}function quickselect(t,n,e=0,r=Infinity,o){n=Math.floor(n);e=Math.floor(Math.max(0,e));r=Math.floor(Math.min(t.length-1,r));if(!(e<=n&&n<=r))return t;o=void 0===o?ascendingDefined:compareDefined(o);while(r>e){if(r-e>600){const i=r-e+1;const f=n-e+1;const u=Math.log(i);const l=.5*Math.exp(2*u/3);const c=.5*Math.sqrt(u*l*(i-l)/i)*(f-i/2<0?-1:1);const s=Math.max(e,Math.floor(n-f*l/i+c));const a=Math.min(r,Math.floor(n+(i-f)*l/i+c));quickselect(t,n,s,a,o)}const i=t[n];let f=e;let u=r;swap(t,e,n);o(t[r],i)>0&&swap(t,e,r);while(f<u){swap(t,f,u),++f,--u;while(o(t[f],i)<0)++f;while(o(t[u],i)>0)--u}0===o(t[e],i)?swap(t,e,u):(++u,swap(t,u,r));u<=n&&(e=u+1);n<=u&&(r=u-1)}return t}function swap(t,n,e){const r=t[n];t[n]=t[e];t[e]=r}function greatest(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)>0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)>0:0===n(o,o)){e=o;r=true}return e}function quantile(t,n,e){t=Float64Array.from(numbers(t,e));if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return min(t);if(n>=1)return max(t);var r,o=(r-1)*n,i=Math.floor(o),f=max(quickselect(t,i).subarray(0,i+1)),u=min(t.subarray(i+1));return f+(u-f)*(o-i)}}function quantileSorted(t,n,e=number){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,i=Math.floor(o),f=+e(t[i],i,t),u=+e(t[i+1],i+1,t);return f+(u-f)*(o-i)}}function quantileIndex(t,n,e=number){if(!isNaN(n=+n)){r=Float64Array.from(t,((n,r)=>number(e(t[r],r,t))));if(n<=0)return minIndex(r);if(n>=1)return maxIndex(r);var r,o=Uint32Array.from(t,((t,n)=>n)),i=r.length-1,f=Math.floor(i*n);quickselect(o,f,0,i,((t,n)=>ascendingDefined(r[t],r[n])));f=greatest(o.subarray(0,f+1),(t=>r[t]));return f>=0?f:-1}}function thresholdFreedmanDiaconis(t,n,e){const r=count(t),o=quantile(t,.75)-quantile(t,.25);return r&&o?Math.ceil((e-n)/(2*o*Math.pow(r,-1/3))):1}function thresholdScott(t,n,e){const r=count(t),o=deviation(t);return r&&o?Math.ceil((e-n)*Math.cbrt(r)/(3.49*o)):1}function mean(t,n){let e=0;let r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let o=-1;for(let i of t)null!=(i=n(i,++o,t))&&(i=+i)>=i&&(++e,r+=i)}if(e)return r/e}function median(t,n){return quantile(t,.5,n)}function medianIndex(t,n){return quantileIndex(t,.5,n)}function*flatten(t){for(const n of t)yield*n}function merge(t){return Array.from(flatten(t))}function mode(n,e){const r=new t;if(void 0===e)for(let t of n)null!=t&&t>=t&&r.set(t,(r.get(t)||0)+1);else{let t=-1;for(let o of n)null!=(o=e(o,++t,n))&&o>=o&&r.set(o,(r.get(o)||0)+1)}let o;let i=0;for(const[t,n]of r)if(n>i){i=n;o=t}return o}function pairs(t,n=pair){const e=[];let r;let o=false;for(const i of t){o&&e.push(n(r,i));r=i;o=true}return e}function pair(t,n){return[t,n]}function range(t,n,e){t=+t,n=+n,e=(o=arguments.length)<2?(n=t,t=0,1):o<3?1:+e;var r=-1,o=0|Math.max(0,Math.ceil((n-t)/e)),i=new Array(o);while(++r<o)i[r]=t+r*e;return i}function rank(t,n=ascending){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const r=new Float64Array(e.length);2!==n.length&&(e=e.map(n),n=ascending);const compareIndex=(t,r)=>n(e[t],e[r]);let o,i;t=Uint32Array.from(e,((t,n)=>n));t.sort(n===ascending?(t,n)=>ascendingDefined(e[t],e[n]):compareDefined(compareIndex));t.forEach(((t,n)=>{const e=compareIndex(t,void 0===o?t:o);if(e>=0){(void 0===o||e>0)&&(o=t,i=n);r[t]=i}else r[t]=NaN}));return r}function least(t,n=ascending){let e;let r=false;if(1===n.length){let o;for(const i of t){const t=n(i);if(r?ascending(t,o)<0:0===ascending(t,t)){e=i;o=t;r=true}}}else for(const o of t)if(r?n(o,e)<0:0===n(o,o)){e=o;r=true}return e}function leastIndex(t,n=ascending){if(1===n.length)return minIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)<0){e=i;r=o}}return r}function greatestIndex(t,n=ascending){if(1===n.length)return maxIndex(t,n);let e;let r=-1;let o=-1;for(const i of t){++o;if(r<0?0===n(i,i):n(i,e)>0){e=i;r=o}}return r}function scan(t,n){const e=leastIndex(t,n);return e<0?void 0:e}var d=shuffler(Math.random);function shuffler(t){return function shuffle(n,e=0,r=n.length){let o=r-(e=+e);while(o){const r=t()*o--|0,i=n[o+e];n[o+e]=n[r+e];n[r+e]=i}return n}}function sum(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let o of t)(o=+n(o,++r,t))&&(e+=o)}return e}function transpose(t){if(!(o=t.length))return[];for(var n=-1,e=min(t,length),r=new Array(e);++n<e;)for(var o,i=-1,f=r[n]=new Array(o);++i<o;)f[i]=t[i][n];return r}function length(t){return t.length}function zip(){return transpose(arguments)}function every(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return false;return true}function some(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return true;return false}function filter(t,n){if("function"!==typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const o of t)n(o,++r,t)&&e.push(o);return e}function map(t,n){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))}function reduce(t,n,e){if("function"!==typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let o,i,f=-1;if(arguments.length<3){({done:o,value:e}=r.next());if(o)return;++f}while(({done:o,value:i}=r.next()),!o)e=n(e,i,++f,t);return e}function reverse(t){if("function"!==typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()}function difference(t,...e){t=new n(t);for(const n of e)for(const e of n)t.delete(e);return t}function disjoint(t,e){const r=e[Symbol.iterator](),o=new n;for(const n of t){if(o.has(n))return false;let t,e;while(({value:t,done:e}=r.next())){if(e)break;if(Object.is(n,t))return false;o.add(t)}}return true}function intersection(t,...e){t=new n(t);e=e.map(set);t:for(const n of t)for(const r of e)if(!r.has(n)){t.delete(n);continue t}return t}function set(t){return t instanceof n?t:new n(t)}function superset(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=intern(t);if(r.has(n))continue;let o,i;while(({value:o,done:i}=e.next())){if(i)return false;const t=intern(o);r.add(t);if(Object.is(n,t))break}}return true}function intern(t){return null!==t&&"object"===typeof t?t.valueOf():t}function subset(t,n){return superset(n,t)}function union(...t){const e=new n;for(const n of t)for(const t of n)e.add(t);return e}export{Adder,ascending,bin,r as bisect,i as bisectCenter,o as bisectLeft,r as bisectRight,bisector,blur,f as blur2,u as blurImage,count,cross,cumsum,descending,deviation,difference,disjoint,every,extent,fcumsum,filter,flatGroup,flatRollup,fsum,greatest,greatestIndex,group,groupSort,groups,bin as histogram,index,indexes,intersection,least,leastIndex,map,max,maxIndex,mean,median,medianIndex,merge,min,minIndex,mode,nice,pairs,permute,quantile,quantileIndex,quantileSorted,quickselect,range,rank,reduce,reverse,rollup,rollups,scan,d as shuffle,shuffler,some,sort,subset,sum,superset,thresholdFreedmanDiaconis,thresholdScott,thresholdSturges,tickIncrement,tickStep,ticks,transpose,union,variance,zip};
var n={};(function(e,t){t(n)})(n,(function(n){function ascending(n,e){return n<e?-1:n>e?1:n>=e?0:NaN}function bisector(n){1===n.length&&(n=ascendingComparator(n));return{left:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)<0?r=a+1:i=a}return r},right:function(e,t,r,i){null==r&&(r=0);null==i&&(i=e.length);while(r<i){var a=r+i>>>1;n(e[a],t)>0?i=a:r=a+1}return r}}}function ascendingComparator(n){return function(e,t){return ascending(n(e),t)}}var e=bisector(ascending);var t=e.right;var r=e.left;function pairs(n,e){null==e&&(e=pair);var t=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);while(t<r)a[t]=e(i,i=n[++t]);return a}function pair(n,e){return[n,e]}function cross(n,e,t){var r=n.length,i=e.length,a=new Array(r*i),l,u,o,h;null==t&&(t=pair);for(l=o=0;l<r;++l)for(h=n[l],u=0;u<i;++u,++o)a[o]=t(h,e[u]);return a}function descending(n,e){return e<n?-1:e>n?1:e>=n?0:NaN}function number(n){return null===n?NaN:+n}function variance(n,e){var t=n.length,r=0,i=-1,a=0,l,u,o=0;if(null==e){while(++i<t)if(!isNaN(l=number(n[i]))){u=l-a;a+=u/++r;o+=u*(l-a)}}else while(++i<t)if(!isNaN(l=number(e(n[i],i,n)))){u=l-a;a+=u/++r;o+=u*(l-a)}if(r>1)return o/(r-1)}function deviation(n,e){var t=variance(n,e);return t?Math.sqrt(t):t}function extent(n,e){var t=n.length,r=-1,i,a,l;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=l=i;while(++r<t)if(null!=(i=n[r])){a>i&&(a=i);l<i&&(l=i)}}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=l=i;while(++r<t)if(null!=(i=e(n[r],r,n))){a>i&&(a=i);l<i&&(l=i)}}return[a,l]}var i=Array.prototype;var a=i.slice;var l=i.map;function constant(n){return function(){return n}}function identity(n){return n}function range(n,e,t){n=+n,e=+e,t=(i=arguments.length)<2?(e=n,n=0,1):i<3?1:+t;var r=-1,i=0|Math.max(0,Math.ceil((e-n)/t)),a=new Array(i);while(++r<i)a[r]=n+r*t;return a}var u=Math.sqrt(50),o=Math.sqrt(10),h=Math.sqrt(2);function ticks(n,e,t){var r,i=-1,a,l,u;e=+e,n=+n,t=+t;if(n===e&&t>0)return[n];(r=e<n)&&(a=n,n=e,e=a);if(0===(u=tickIncrement(n,e,t))||!isFinite(u))return[];if(u>0){n=Math.ceil(n/u);e=Math.floor(e/u);l=new Array(a=Math.ceil(e-n+1));while(++i<a)l[i]=(n+i)*u}else{n=Math.floor(n*u);e=Math.ceil(e*u);l=new Array(a=Math.ceil(n-e+1));while(++i<a)l[i]=(n-i)/u}r&&l.reverse();return l}function tickIncrement(n,e,t){var r=(e-n)/Math.max(0,t),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=u?10:a>=o?5:a>=h?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=u?10:a>=o?5:a>=h?2:1)}function tickStep(n,e,t){var r=Math.abs(e-n)/Math.max(0,t),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;a>=u?i*=10:a>=o?i*=5:a>=h&&(i*=2);return e<n?-i:i}function sturges(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function histogram(){var n=identity,e=extent,r=sturges;function histogram(i){var a,l=i.length,u,o=new Array(l);for(a=0;a<l;++a)o[a]=n(i[a],a,i);var h=e(o),s=h[0],c=h[1],f=r(o,s,c);if(!Array.isArray(f)){f=tickStep(s,c,f);f=range(Math.ceil(s/f)*f,c,f)}var g=f.length;while(f[0]<=s)f.shift(),--g;while(f[g-1]>c)f.pop(),--g;var m=new Array(g+1),w;for(a=0;a<=g;++a){w=m[a]=[];w.x0=a>0?f[a-1]:s;w.x1=a<g?f[a]:c}for(a=0;a<l;++a){u=o[a];s<=u&&u<=c&&m[t(f,u,0,g)].push(i[a])}return m}histogram.value=function(e){return arguments.length?(n="function"===typeof e?e:constant(e),histogram):n};histogram.domain=function(n){return arguments.length?(e="function"===typeof n?n:constant([n[0],n[1]]),histogram):e};histogram.thresholds=function(n){return arguments.length?(r="function"===typeof n?n:Array.isArray(n)?constant(a.call(n)):constant(n),histogram):r};return histogram}function quantile(n,e,t){null==t&&(t=number);if(r=n.length){if((e=+e)<=0||r<2)return+t(n[0],0,n);if(e>=1)return+t(n[r-1],r-1,n);var r,i=(r-1)*e,a=Math.floor(i),l=+t(n[a],a,n),u=+t(n[a+1],a+1,n);return l+(u-l)*(i-a)}}function freedmanDiaconis(n,e,t){n=l.call(n,number).sort(ascending);return Math.ceil((t-e)/(2*(quantile(n,.75)-quantile(n,.25))*Math.pow(n.length,-1/3)))}function scott(n,e,t){return Math.ceil((t-e)/(3.5*deviation(n)*Math.pow(n.length,-1/3)))}function max(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&i>a&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&i>a&&(a=i)}return a}function mean(n,e){var t=n.length,r=t,i=-1,a,l=0;if(null==e)while(++i<t)isNaN(a=number(n[i]))?--r:l+=a;else while(++i<t)isNaN(a=number(e(n[i],i,n)))?--r:l+=a;if(r)return l/r}function median(n,e){var t=n.length,r=-1,i,a=[];if(null==e)while(++r<t)isNaN(i=number(n[r]))||a.push(i);else while(++r<t)isNaN(i=number(e(n[r],r,n)))||a.push(i);return quantile(a.sort(ascending),.5)}function merge(n){var e=n.length,t,r=-1,i=0,a,l;while(++r<e)i+=n[r].length;a=new Array(i);while(--e>=0){l=n[e];t=l.length;while(--t>=0)a[--i]=l[t]}return a}function min(n,e){var t=n.length,r=-1,i,a;if(null==e){while(++r<t)if(null!=(i=n[r])&&i>=i){a=i;while(++r<t)null!=(i=n[r])&&a>i&&(a=i)}}else while(++r<t)if(null!=(i=e(n[r],r,n))&&i>=i){a=i;while(++r<t)null!=(i=e(n[r],r,n))&&a>i&&(a=i)}return a}function permute(n,e){var t=e.length,r=new Array(t);while(t--)r[t]=n[e[t]];return r}function scan(n,e){if(t=n.length){var t,r=0,i=0,a,l=n[i];null==e&&(e=ascending);while(++r<t)(e(a=n[r],l)<0||0!==e(l,l))&&(l=a,i=r);return 0===e(l,l)?i:void 0}}function shuffle(n,e,t){var r=(null==t?n.length:t)-(e=null==e?0:+e),i,a;while(r){a=Math.random()*r--|0;i=n[r+e];n[r+e]=n[a+e];n[a+e]=i}return n}function sum(n,e){var t=n.length,r=-1,i,a=0;if(null==e)while(++r<t)(i=+n[r])&&(a+=i);else while(++r<t)(i=+e(n[r],r,n))&&(a+=i);return a}function transpose(n){if(!(a=n.length))return[];for(var e=-1,t=min(n,length),r=new Array(t);++e<t;)for(var i=-1,a,l=r[e]=new Array(a);++i<a;)l[i]=n[i][e];return r}function length(n){return n.length}function zip(){return transpose(arguments)}n.bisect=t;n.bisectRight=t;n.bisectLeft=r;n.ascending=ascending;n.bisector=bisector;n.cross=cross;n.descending=descending;n.deviation=deviation;n.extent=extent;n.histogram=histogram;n.thresholdFreedmanDiaconis=freedmanDiaconis;n.thresholdScott=scott;n.thresholdSturges=sturges;n.max=max;n.mean=mean;n.median=median;n.merge=merge;n.min=min;n.pairs=pairs;n.permute=permute;n.quantile=quantile;n.range=range;n.scan=scan;n.shuffle=shuffle;n.sum=sum;n.ticks=ticks;n.tickIncrement=tickIncrement;n.tickStep=tickStep;n.transpose=transpose;n.variance=variance;n.zip=zip;Object.defineProperty(n,"__esModule",{value:true})}));const e=n.bisect,t=n.bisectRight,r=n.bisectLeft,i=n.ascending,a=n.bisector,l=n.cross,u=n.descending,o=n.deviation,h=n.extent,s=n.histogram,c=n.thresholdFreedmanDiaconis,f=n.thresholdScott,g=n.thresholdSturges,m=n.max,w=n.mean,v=n.median,d=n.merge,p=n.min,M=n.pairs,y=n.permute,b=n.quantile,N=n.range,x=n.scan,A=n.shuffle,k=n.sum,q=n.ticks,S=n.tickIncrement,I=n.tickStep,L=n.transpose,z=n.variance,D=n.zip,_=n.__esModule;export default n;export{_ as __esModule,i as ascending,e as bisect,r as bisectLeft,t as bisectRight,a as bisector,l as cross,u as descending,o as deviation,h as extent,s as histogram,m as max,w as mean,v as median,d as merge,p as min,M as pairs,y as permute,b as quantile,N as range,x as scan,A as shuffle,k as sum,c as thresholdFreedmanDiaconis,f as thresholdScott,g as thresholdSturges,S as tickIncrement,I as tickStep,q as ticks,L as transpose,z as variance,D as zip};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@@ -1,2 +1,2 @@
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<i)streamGeometry(r[e].geometry,t)}};var M={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(++i<o)e=n[i],t.point(e[0],e[1],e[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):streamGeometry(n,t)}var b=new n;var L,x,C,q,$,_=new n;var N={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){b=new n;N.lineStart=areaRingStart$1;N.lineEnd=areaRingEnd$1},polygonEnd:function(){var n=+b;_.add(n<0?u+n:n);this.lineStart=this.lineEnd=this.point=noop},sphere:function(){_.add(u)}};function areaRingStart$1(){N.point=areaPointFirst$1}function areaRingEnd$1(){areaPoint$1(L,x)}function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n,q=h(t=t/2+c),$=y(t)}function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=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]);t<A&&(A=t);t>F&&(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*T<p&&p<u*n)){a=o[1]*l;a>F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T<p&&p<u*n)){a=-o[1]*l;a<A&&(A=a)}else{t<A&&(A=t);t>F&&(F=t)}if(g)n<T?angle(I,n)>angle(I,z)&&(z=n):angle(n,z)>angle(I,z)&&(I=n);else if(z>=I){n<I&&(I=n);n>z&&(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]);t<A&&(A=t);t>F&&(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]:t<n[0]||n[1]<t}function bounds(n){var t,r,e,i,o,a,c;F=z=-(I=A=Infinity);W=[];geoStream(n,O);if(r=W.length){W.sort(rangeCompare);for(t=1,e=W[0],o=[e];t<r;++t){i=W[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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(c<i){r=K,o=Q,a=V;Y<e&&(r=B,o=Z,a=J);c=m(r,o,a);if(c<i)return[NaN,NaN]}return[g(o,r)*l,asin(a/c)*l]}function constant(n){return function(){return n}}function compose(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose}function rotationIdentity(n,t){f(n)>o&&(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?i<o:i>o)&&(i+=e*u)}for(var s,f=i;e>0?f>o:f<o;f-=l){s=spherical([a,-c*h(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+u-e)%u}function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2),o={point:point};function point(r,e){n.push(r=t(r,e));r[0]*=l,r[1]*=l}function circle(){var a=r.apply(this,arguments),c=e.apply(this,arguments)*s,u=i.apply(this,arguments)*s;n=[];t=rotateRadians(-a[0]*s,-a[1]*s,0).invert;circleStream(o,c,u,1);a={type:"Polygon",coordinates:[n]};n=t=null;return a}circle.center=function(n){return arguments.length?(r=typeof n==="function"?n:constant([+n[0],+n[1]]),circle):r};circle.radius=function(n){return arguments.length?(e=typeof n==="function"?n:constant(+n),circle):e};circle.precision=function(n){return arguments.length?(i=typeof n==="function"?n:constant(+n),circle):i};return circle}function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,r,e])},lineStart:function(){t.push(n=[])},lineEnd:noop,rejoin:function(){t.length>1&&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])<e&&f(n[1]-t[1])<e}function Intersection(n,t,r,e){this.x=n;this.z=t;this.o=r;this.e=e;this.v=false;this.n=this.p=null}function clipRejoin(n,t,r,i,o){var a,c,u=[],l=[];n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r,i=n[0],c=n[t];if(pointEqual(i,c)){if(!i[2]&&!c[2]){o.lineStart();for(a=0;a<t;++a)o.point((i=n[a])[0],i[1]);o.lineEnd();return}c[0]+=2*e}u.push(r=new Intersection(i,n,null,true));l.push(r.o=new Intersection(i,null,r,false));u.push(r=new Intersection(c,n,null,false));l.push(r.o=new Intersection(c,null,r,true))}}));if(u.length){l.sort(t);link(u);link(l);for(a=0,c=l.length;a<c;++a)l[a].e=r=!r;var s,f,p=u[0];while(1){var g=p,h=true;while(g.v)if((g=g.n)===p)return;s=g.z;o.lineStart();do{g.v=g.o.v=true;if(g.e){if(h)for(a=0,c=s.length;a<c;++a)o.point((f=s[a])[0],f[1]);else i(g.x,g.n.x,1,o);g=g.n}else{if(h){s=g.p.z;for(a=s.length-1;a>=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<t){i.n=r=n[e];r.p=i;i=r}i.n=r=n[0];r.p=i}}function longitude(n){return f(n[0])<=o?n[0]:R(n[0])*((f(n[0])+o)%u-o)}function polygonContains(t,r){var l=longitude(r),s=r[1],f=y(s),p=[y(l),-h(l),0],d=0,v=0;var m=new n;f===1?s=a+e:f===-1&&(s=-a-e);for(var E=0,S=t.length;E<S;++E)if(w=(R=t[E]).length){var R,w,P=R[w-1],j=longitude(P),M=P[1]/2+c,b=y(M),L=h(M);for(var x=0;x<w;++x,j=q,b=_,L=N,P=C){var C=R[x],q=longitude(C),$=C[1]/2+c,_=y($),N=h($),I=q-j,A=I>=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||d<e&&m<-i)^v&1}function clip(n,r,e,i){return function(o){var a,c,u,l=r(o),s=clipBuffer(),f=r(s),p=false;var g={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){g.point=pointRing;g.lineStart=ringStart;g.lineEnd=ringEnd;c=[];a=[]},polygonEnd:function(){g.point=point;g.lineStart=lineStart;g.lineEnd=lineEnd;c=t(c);var n=polygonContains(a,i);if(c.length){p||(o.polygonStart(),p=true);clipRejoin(c,compareIntersection,n,e,o)}else if(n){p||(o.polygonStart(),p=true);o.lineStart();e(null,null,1,o);o.lineEnd()}p&&(o.polygonEnd(),p=false);c=a=null},sphere:function(){o.polygonStart();o.lineStart();e(null,null,1,o);o.lineEnd();o.polygonEnd()}};function point(t,r){n(t,r)&&o.point(t,r)}function pointLine(n,t){l.point(n,t)}function lineStart(){g.point=pointLine;l.lineStart()}function lineEnd(){g.point=point;l.lineEnd()}function pointRing(n,t){u.push([n,t]);f.point(n,t)}function ringStart(){f.lineStart();u=[]}function ringEnd(){pointRing(u[0][0],u[0][1]);f.lineEnd();var n,t,r,e,i=f.clean(),l=s.result(),g=l.length;u.pop();a.push(u);u=null;if(g)if(i&1){r=l[0];if((t=r.length-1)>0){p||(o.polygonStart(),p=true);o.lineStart();for(n=0;n<t;++n)o.point((e=r[n])[0],e[1]);o.lineEnd()}}else{g>1&&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)<e){n.point(r,i=(i+l)/2>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&&(r-=c*e);f(u-s)<e&&(u-=s*e);i=clipAntimeridianIntersect(r,i,u,l);n.point(c,i);n.lineEnd();n.lineStart();n.point(s,i);t=0}n.point(r=u,i=l);c=s},lineEnd:function(){n.lineEnd();r=i=NaN},clean:function(){return 2-t}}}function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(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]<t[0]?o:-o;c=r*u/2;i.point(-u,c);i.point(0,c);i.point(u,c)}else i.point(t[0],t[1])}function clipCircle(n){var t=h(n),r=2*s,i=t>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];x<L&&(b=L,L=x,x=b);var $=x-L,_=f($-o)<e,N=_||$<e;!_&&q<C&&(b=C,C=q,q=b);if(N?_?C+q>0^M[1]<(f(M[0]-L)<e?C:q):C<=M[1]&&M[1]<=q:$>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(a<f)return;a<p&&(p=a)}else if(g>0){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(a<f)return;a<p&&(p=a)}a=e-u;if(h||!(a>0)){a/=h;if(h<0){if(a<f)return;a<p&&(p=a)}else if(h>0){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(a<f)return;a<p&&(p=a)}f>0&&(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)<e?o>0?0:3:f(t[0]-i)<e?o>0?2:1:f(t[1]-r)<e?o>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;r<e;++r)for(var i,a,u=c[r],l=1,s=u.length,f=u[0],p=f[0],g=f[1];l<s;++l){i=p,a=g,f=u[l],p=f[0],g=f[1];a<=o?g>o&&(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Rn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&Rn[n.type](n,t)}function containsPoint(n,t){return distance(n,t)===0}function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a<c;a++){e=distance(n[a],t);if(e===0)return true;if(a>0){o=distance(n[a],n[a-1]);if(o>0&&r<=o&&e<=o&&(r+e-o)*(1-Math.pow((r-e)/o,2))<i*o)return true}r=e}return false}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*s,n[1]*s]}function contains(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)}function graticuleX(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,i){var o=r(n,t-e,i).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,i,o,a,c,u,l,s,p,g,h,v=10,m=v,E=90,S=360,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r(d(o/E)*E,i,E).map(g).concat(r(d(l/S)*S,u,S).map(h)).concat(r(d(t/v)*v,n,v).filter((function(n){return f(n%E)>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<Cn&&(Cn=n);n>$n&&($n=n);t<qn&&(qn=t);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<r;++t)this._+=arguments[t]+n[t]}function appendRound(n){const t=Math.floor(n);if(!(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<e;++r)this._+=Math.round(arguments[r]*n)/n+t[r]}}return rt}function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o==="function"&&e.pointRadius(+o.apply(this,arguments));geoStream(n,r(e))}return e.result()}path.area=function(n){geoStream(n,r(xn));return xn.result()};path.measure=function(n){geoStream(n,r(nt));return nt.result()};path.bounds=function(n){geoStream(n,r(Nn));return Nn.result()};path.centroid=function(n){geoStream(n,r(Yn));return Yn.result()};path.projection=function(t){if(!arguments.length)return n;r=t==null?(n=null,identity$1):(n=t).stream;return path};path.context=function(n){if(!arguments.length)return t;e=n==null?(t=null,new PathString(i)):new PathContext(t=n);typeof o!=="function"&&e.pointRadius(o);return path};path.pointRadius=function(n){if(!arguments.length)return o;o=typeof n==="function"?n:(e.pointRadius(+n),+n);return path};path.digits=function(n){if(!arguments.length)return i;if(n==null)i=null;else{const t=Math.floor(n);if(!(t>=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)<e||f(o-p)<e?(o+p)/2:g(j,P),C=n(x,L),q=C[0],$=C[1],_=q-r,N=$-i,I=y*_-S*N;if(I*I/R>t||f((S*_+y*N)/R-.5)>.3||a*h+c*d+u*v<at){resampleLineTo(r,i,o,a,c,u,q,$,x,P/=b,j/=b,M,m,E);E.point(q,$);resampleLineTo(q,$,x,P,j,M,l,s,p,h,d,v,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var h={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();h.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();h.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;h.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],ot,t);t.point(l,s)}function lineEnd(){h.point=point;t.lineEnd()}function ringStart(){lineStart();h.point=ringPoint;h.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;h.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,ot,t);h.lineEnd=lineEnd;lineEnd()}return h}}var ct=transformer({point:function(n,t){this.stream.point(n*s,t*s)}});function transformRotate(n){return transformer({point:function(t,r){var e=n(t,r);return this.stream.point(e[0],e[1])}})}function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;return[t+n*o,r-n*a]}transform.invert=function(o,a){return[(o-t)/n*e,(r-a)/n*i]};return transform}function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n,t,r,e,i);var a=h(o),c=y(o),u=a*n,l=c*n,s=a/n,f=c/n,p=(c*r-a*t)/n,g=(c*t+a*r)/n;function transform(n,o){n*=e;o*=i;return[u*n-l*o+t,r-l*n-u*o]}transform.invert=function(n,t){return[e*(s*n-f*t+p),i*(g-f*n-s*t)]};return transform}function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,v=0,m=0,E=0,S=0,y=0,R=0,P=1,j=1,M=null,b=sn,L=null,x=identity$1,C=.5;function projection(n){return u(n[0]*s,n[1]*s)}function invert(n){n=u.invert(n[0],n[1]);return n&&[n[0]*l,n[1]*l]}projection.stream=function(n){return f&&p===n?f:f=ct(transformRotate(r)(b(a(x(p=n)))))};projection.preclip=function(n){return arguments.length?(b=n,M=void 0,reset()):b};projection.postclip=function(n){return arguments.length?(x=n,L=e=i=o=null,reset()):x};projection.clipAngle=function(n){return arguments.length?(b=+n?clipCircle(M=n*s):(M=null,sn),reset()):M*l};projection.clipExtent=function(n){return arguments.length?(x=n==null?(L=e=i=o=null,identity$1):clipRectangle(L=+n[0][0],e=+n[0][1],i=+n[1][0],o=+n[1][1]),reset()):L==null?null:[[L,e],[i,o]]};projection.scale=function(n){return arguments.length?(g=+n,recenter()):g};projection.translate=function(n){return arguments.length?(h=+n[0],d=+n[1],recenter()):[h,d]};projection.center=function(n){return arguments.length?(v=n[0]%360*s,m=n[1]%360*s,recenter()):[v*l,m*l]};projection.rotate=function(n){return arguments.length?(E=n[0]%360*s,S=n[1]%360*s,y=n.length>2?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)<e)return cylindricalEqualAreaRaw(n);var a=1+r*(2*i-r),c=w(a)/i;function project(n,t){var r=w(a-2*i*y(t))/i;return[r*y(n*=i),c-r*h(n)]}project.invert=function(n,t){var r=c-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,asin((a-(n*n+r*r)*i*i)/(2*i))]};return project}function conicEqualArea(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])}function albers(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}function albersUsa(){var n,t,r,i,o,a,c=albers(),u=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(n,t){a=[n,t]}};function albersUsa(n){var t=n[0],e=n[1];return a=null,(r.point(t,e),a)||(i.point(t,e),a)||(o.point(t,e),a)}albersUsa.invert=function(n){var t=c.scale(),r=c.translate(),e=(n[0]-r[0])/t,i=(n[1]-r[1])/t;return(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)return equirectangularRaw;function project(n,t){var r=a-t,e=i*n;return[r*y(e),a-r*h(e)]}project.invert=function(n,t){var r=a-t,e=g(n,f(r))*R(r);r*i<0&&(e-=o*R(n)*R(r));return[e/i,a-R(i)*w(n*n+r*r)]};return project}function conicEquidistant(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])}var st=1.340264,ft=-.081106,pt=893e-6,gt=.003796,ht=w(3)/2,dt=12;function equalEarthRaw(n,t){var r=asin(ht*y(t)),e=r*r,i=e*e*e;return[n*h(r)/(ht*(st+3*ft*e+i*(7*pt+9*gt*e))),r*(st+ft*e+i*(pt+gt*e))]}equalEarthRaw.invert=function(n,t){var r=t,e=r*r,o=e*e*e;for(var a,c,u,l=0;l<dt;++l){c=r*(st+ft*e+o*(pt+gt*e))-t;u=st+3*ft*e+o*(7*pt+9*gt*e);r-=a=c/u,e=r*r,o=e*e*e;if(f(a)<i)break}return[ht*n*(st+3*ft*e+o*(7*pt+9*gt*e))/h(r),asin(y(r)/ht)]};function equalEarth(){return projection(equalEarthRaw).scale(177.158)}function gnomonicRaw(n,t){var r=h(t),e=h(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(p);function gnomonic(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)}function identity(){var n,t,r,e,i,o,a,c=1,u=0,f=0,p=1,g=1,d=0,v=null,m=1,E=1,S=transformer({point:function(n,t){var r=projection([n,t]);this.stream.point(r[0],r[1])}}),R=identity$1;function reset(){m=c*p;E=c*g;o=a=null;return projection}function projection(r){var e=r[0]*m,i=r[1]*E;if(d){var o=i*n-e*t;e=e*n+i*t;i=o}return[e+u,i+f]}projection.invert=function(r){var e=r[0]-u,i=r[1]-f;if(d){var o=i*n+e*t;e=e*n-i*t;i=o}return[e/m,i/E]};projection.stream=function(n){return o&&a===n?o:o=S(R(a=n))};projection.postclip=function(n){return arguments.length?(R=n,v=r=e=i=null,reset()):R};projection.clipExtent=function(n){return arguments.length?(R=n==null?(v=r=e=i=null,identity$1):clipRectangle(v=+n[0][0],r=+n[0][1],e=+n[1][0],i=+n[1][1]),reset()):v==null?null:[[v,r],[e,i]]};projection.scale=function(n){return arguments.length?(c=+n,reset()):c};projection.translate=function(n){return arguments.length?(u=+n[0],f=+n[1],reset()):[u,f]};projection.angle=function(r){return arguments.length?(d=r%360*s,t=y(d),n=h(d),reset()):d*l};projection.reflectX=function(n){return arguments.length?(p=n?-1:1,reset()):p<0};projection.reflectY=function(n){return arguments.length?(g=n?-1:1,reset()):g<0};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)};return projection}function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),t*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r,i=t,o=25;do{var a=i*i,c=a*a;i-=r=(i*(1.007226+a*(.015085+c*(.028874*a-.044475-.005916*c)))-t)/(1.007226+a*(.045255+c*(.259866*a-.311325-.005916*11*c)))}while(f(r)>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};
import n from"d3-array";var t="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:global;var r={};(function(t,e){e(r,n)})(r,(function(n,r){var adder=function(){return new Adder};function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){(this||t).s=(this||t).t=0},add:function(n){add(e,n,(this||t).t);add(this||t,e.s,(this||t).s);(this||t).s?(this||t).t+=e.t:(this||t).s=e.t},valueOf:function(){return(this||t).s}};var e=new Adder;function add(n,t,r){var e=n.s=t+r,i=e-t,o=e-i;n.t=t-o+(r-i)}var i=1e-6;var o=1e-12;var a=Math.PI;var c=a/2;var u=a/4;var l=2*a;var s=180/a;var f=a/180;var p=Math.abs;var g=Math.atan;var v=Math.atan2;var d=Math.cos;var h=Math.ceil;var m=Math.exp;var E=Math.log;var S=Math.pow;var y=Math.sin;var P=Math.sign||function(n){return n>0?1:n<0?-1:0};var R=Math.sqrt;var w=Math.tan;function acos(n){return n>1?0:n<-1?a:Math.acos(n)}function asin(n){return n>1?c:n<-1?-c:Math.asin(n)}function haversin(n){return(n=y(n/2))*n}function noop(){}function streamGeometry(n,t){n&&x.hasOwnProperty(n.type)&&x[n.type](n,t)}var M={Feature:function(n,t){streamGeometry(n.geometry,t)},FeatureCollection:function(n,t){var r=n.features,e=-1,i=r.length;while(++e<i)streamGeometry(r[e].geometry,t)}};var x={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates;t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){streamLine(n.coordinates,t,0)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamLine(r[e],t,0)},Polygon:function(n,t){streamPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)streamPolygon(r[e],t)},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)streamGeometry(r[e],t)}};function streamLine(n,t,r){var e=-1,i=n.length-r,o;t.lineStart();while(++e<i)o=n[e],t.point(o[0],o[1],o[2]);t.lineEnd()}function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(++r<e)streamLine(n[r],t,1);t.polygonEnd()}var geoStream=function(n,t){n&&M.hasOwnProperty(n.type)?M[n.type](n,t):streamGeometry(n,t)};var L=adder();var j=adder();var b;var C;var A;var N;var I;var _={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){L.reset();_.lineStart=areaRingStart;_.lineEnd=areaRingEnd},polygonEnd:function(){var n=+L;j.add(n<0?l+n:n);(this||t).lineStart=(this||t).lineEnd=(this||t).point=noop},sphere:function(){j.add(l)}};function areaRingStart(){_.point=areaPointFirst}function areaRingEnd(){areaPoint(b,C)}function areaPointFirst(n,t){_.point=areaPoint;b=n,C=t;n*=f,t*=f;A=n,N=d(t=t/2+u),I=y(t)}function areaPoint(n,t){n*=f,t*=f;t=t/2+u;var r=n-A,e=r>=0?1:-1,i=e*r,o=d(t),a=y(t),c=I*a,l=N*o+c*d(i),s=c*e*y(i);L.add(v(s,l));A=n,N=o,I=a}var area=function(n){j.reset();geoStream(n,_);return 2*j};function spherical(n){return[v(n[1],n[0]),asin(n[2])]}function cartesian(n){var t=n[0],r=n[1],e=d(r);return[e*d(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=R(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var $;var q;var z;var T;var G;var F;var U;var O;var k=adder();var D;var X;var Y={point:boundsPoint,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){Y.point=boundsRingPoint;Y.lineStart=boundsRingStart;Y.lineEnd=boundsRingEnd;k.reset();_.polygonStart()},polygonEnd:function(){_.polygonEnd();Y.point=boundsPoint;Y.lineStart=boundsLineStart;Y.lineEnd=boundsLineEnd;L<0?($=-(z=180),q=-(T=90)):k>i?T=90:k<-i&&(q=-90);X[0]=$,X[1]=z}};function boundsPoint(n,t){D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t)}function linePoint(n,t){var r=cartesian([n*f,t*f]);if(O){var e=cartesianCross(O,r),i=[e[1],-e[0],0],o=cartesianCross(i,e);cartesianNormalizeInPlace(o);o=spherical(o);var a=n-G,c=a>0?1:-1,u=o[0]*s*c,l,g=p(a)>180;if(g^(c*G<u&&u<c*n)){l=o[1]*s;l>T&&(T=l)}else if(u=(u+360)%360-180,g^(c*G<u&&u<c*n)){l=-o[1]*s;l<q&&(q=l)}else{t<q&&(q=t);t>T&&(T=t)}if(g)n<G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n);else if(z>=$){n<$&&($=n);n>z&&(z=n)}else n>G?angle($,n)>angle($,z)&&(z=n):angle(n,z)>angle($,z)&&($=n)}else D.push(X=[$=n,z=n]);t<q&&(q=t);t>T&&(T=t);O=r,G=n}function boundsLineStart(){Y.point=linePoint}function boundsLineEnd(){X[0]=$,X[1]=z;Y.point=boundsPoint;O=null}function boundsRingPoint(n,t){if(O){var r=n-G;k.add(p(r)>180?r+(r>0?360:-360):r)}else F=n,U=t;_.point(n,t);linePoint(n,t)}function boundsRingStart(){_.lineStart()}function boundsRingEnd(){boundsRingPoint(F,U);_.lineEnd();p(k)>i&&($=-(z=180));X[0]=$,X[1]=z;O=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]:t<n[0]||n[1]<t}var bounds=function(n){var t,r,e,i,o,a,c;T=z=-($=q=Infinity);D=[];geoStream(n,Y);if(r=D.length){D.sort(rangeCompare);for(t=1,e=D[0],o=[e];t<r;++t){i=D[t];if(rangeContains(e,i[0])||rangeContains(e,i[1])){angle(e[0],i[1])>angle(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[0],z=e[1])}}D=X=null;return Infinity===$||Infinity===q?[[NaN,NaN],[NaN,NaN]]:[[$,q],[z,T]]};var B;var Z;var H;var J;var K;var Q;var V;var W;var nn;var tn;var rn;var en;var on;var an;var cn;var un;var ln={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){ln.lineStart=centroidRingStart;ln.lineEnd=centroidRingEnd},polygonEnd:function(){ln.lineStart=centroidLineStart;ln.lineEnd=centroidLineEnd}};function centroidPoint(n,t){n*=f,t*=f;var r=d(t);centroidPointCartesian(r*d(n),r*y(n),y(t))}function centroidPointCartesian(n,t,r){++B;H+=(n-H)/B;J+=(t-J)/B;K+=(r-K)/B}function centroidLineStart(){ln.point=centroidLinePointFirst}function centroidLinePointFirst(n,t){n*=f,t*=f;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);ln.point=centroidLinePoint;centroidPointCartesian(an,cn,un)}function centroidLinePoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=v(R((a=cn*o-un*i)*a+(a=un*e-an*o)*a+(a=an*i-cn*e)*a),an*e+cn*i+un*o);Z+=a;Q+=a*(an+(an=e));V+=a*(cn+(cn=i));W+=a*(un+(un=o));centroidPointCartesian(an,cn,un)}function centroidLineEnd(){ln.point=centroidPoint}function centroidRingStart(){ln.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(en,on);ln.point=centroidPoint}function centroidRingPointFirst(n,t){en=n,on=t;n*=f,t*=f;ln.point=centroidRingPoint;var r=d(t);an=r*d(n);cn=r*y(n);un=y(t);centroidPointCartesian(an,cn,un)}function centroidRingPoint(n,t){n*=f,t*=f;var r=d(t),e=r*d(n),i=r*y(n),o=y(t),a=cn*o-un*i,c=un*e-an*o,u=an*i-cn*e,l=R(a*a+c*c+u*u),s=asin(l),p=l&&-s/l;nn+=p*a;tn+=p*c;rn+=p*u;Z+=s;Q+=s*(an+(an=e));V+=s*(cn+(cn=i));W+=s*(un+(un=o));centroidPointCartesian(an,cn,un)}var centroid=function(n){B=Z=H=J=K=Q=V=W=nn=tn=rn=0;geoStream(n,ln);var t=nn,r=tn,e=rn,a=t*t+r*r+e*e;if(a<o){t=Q,r=V,e=W;Z<i&&(t=H,r=J,e=K);a=t*t+r*r+e*e;if(a<o)return[NaN,NaN]}return[v(r,t)*s,asin(e/R(a))*s]};var constant=function(n){return function(){return n}};var compose=function(n,t){function compose(r,e){return r=n(r,e),t(r[0],r[1])}n.invert&&t.invert&&(compose.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])});return compose};function rotationIdentity(n,t){return[n>a?n-l:n<-a?n+l:n,t]}rotationIdentity.invert=rotationIdentity;function rotateRadians(n,t,r){return(n%=l)?t||r?compose(rotationLambda(n),rotationPhiGamma(t,r)):rotationLambda(n):t||r?rotationPhiGamma(t,r):rotationIdentity}function forwardRotationLambda(n){return function(t,r){return t+=n,[t>a?t-l:t<-a?t+l:t,r]}}function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwardRotationLambda(-n);return t}function rotationPhiGamma(n,t){var r=d(n),e=y(n),i=d(t),o=y(t);function rotation(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*r+c*e;return[v(u*i-s*o,c*r-l*e),asin(s*i+u*o)]}rotation.invert=function(n,t){var a=d(t),c=d(n)*a,u=y(n)*a,l=y(t),s=l*i-u*o;return[v(u*i+l*o,c*r+s*e),asin(s*r-c*e)]};return rotation}var rotation=function(n){n=rotateRadians(n[0]*f,n[1]*f,n.length>2?n[2]*f:0);function forward(t){t=n(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t}forward.invert=function(t){t=n.invert(t[0]*f,t[1]*f);return t[0]*=s,t[1]*=s,t};return forward};function circleStream(n,t,r,e,i,o){if(r){var a=d(t),c=y(t),u=e*r;if(null==i){i=t+e*l;o=t-u/2}else{i=circleRadius(a,i);o=circleRadius(a,o);(e>0?i<o:i>o)&&(i+=e*l)}for(var s,f=i;e>0?f>o:f<o;f-=u){s=spherical([a,-c*d(f),-c*y(f)]);n.point(s[0],s[1])}}}function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPlace(t);var r=acos(-t[1]);return((-t[2]<0?-r:r)+l-i)%l}var circle=function(){var n=constant([0,0]),r=constant(90),e=constant(6),i,o,a={point:point};function point(n,t){i.push(n=o(n,t));n[0]*=s,n[1]*=s}function circle(){var c=n.apply(this||t,arguments),u=r.apply(this||t,arguments)*f,l=e.apply(this||t,arguments)*f;i=[];o=rotateRadians(-c[0]*f,-c[1]*f,0).invert;circleStream(a,u,l,1);c={type:"Polygon",coordinates:[i]};i=o=null;return c}circle.center=function(t){return arguments.length?(n="function"===typeof t?t:constant([+t[0],+t[1]]),circle):n};circle.radius=function(n){return arguments.length?(r="function"===typeof n?n:constant(+n),circle):r};circle.precision=function(n){return arguments.length?(e="function"===typeof n?n:constant(+n),circle):e};return circle};var clipBuffer=function(){var n=[],t;return{point:function(n,r){t.push([n,r])},lineStart:function(){n.push(t=[])},lineEnd:noop,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;n=[];t=null;return r}}};var clipLine=function(n,t,r,e,i,o){var a=n[0],c=n[1],u=t[0],l=t[1],s=0,f=1,p=u-a,g=l-c,v;v=r-a;if(p||!(v>0)){v/=p;if(p<0){if(v<s)return;v<f&&(f=v)}else if(p>0){if(v>f)return;v>s&&(s=v)}v=i-a;if(p||!(v<0)){v/=p;if(p<0){if(v>f)return;v>s&&(s=v)}else if(p>0){if(v<s)return;v<f&&(f=v)}v=e-c;if(g||!(v>0)){v/=g;if(g<0){if(v<s)return;v<f&&(f=v)}else if(g>0){if(v>f)return;v>s&&(s=v)}v=o-c;if(g||!(v<0)){v/=g;if(g<0){if(v>f)return;v>s&&(s=v)}else if(g>0){if(v<s)return;v<f&&(f=v)}s>0&&(n[0]=a+s*p,n[1]=c+s*g);f<1&&(t[0]=a+f*p,t[1]=c+f*g);return true}}}}};var pointEqual=function(n,t){return p(n[0]-t[0])<i&&p(n[1]-t[1])<i};function Intersection(n,r,e,i){(this||t).x=n;(this||t).z=r;(this||t).o=e;(this||t).e=i;(this||t).v=false;(this||t).n=(this||t).p=null}var clipPolygon=function(n,t,r,e,i){var o=[],a=[],c,u;n.forEach((function(n){if(!((t=n.length-1)<=0)){var t,r=n[0],e=n[t],u;if(pointEqual(r,e)){i.lineStart();for(c=0;c<t;++c)i.point((r=n[c])[0],r[1]);i.lineEnd()}else{o.push(u=new Intersection(r,n,null,true));a.push(u.o=new Intersection(r,null,u,false));o.push(u=new Intersection(e,n,null,false));a.push(u.o=new Intersection(e,null,u,true))}}}));if(o.length){a.sort(t);link(o);link(a);for(c=0,u=a.length;c<u;++c)a[c].e=r=!r;var l=o[0],s,f;while(1){var p=l,g=true;while(p.v)if((p=p.n)===l)return;s=p.z;i.lineStart();do{p.v=p.o.v=true;if(p.e){if(g)for(c=0,u=s.length;c<u;++c)i.point((f=s[c])[0],f[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g){s=p.p.z;for(c=s.length-1;c>=0;--c)i.point((f=s[c])[0],f[1])}else e(p.x,p.p.x,-1,i);p=p.p}p=p.o;s=p.z;g=!g}while(!p.v);i.lineEnd()}}};function link(n){if(t=n.length){var t,r=0,e=n[0],i;while(++r<t){e.n=i=n[r];i.p=e;e=i}e.n=i=n[0];i.p=e}}var sn=1e9;var fn=-sn;function clipExtent(n,t,e,o){function visible(r,i){return n<=r&&r<=e&&t<=i&&i<=o}function interpolate(r,i,a,c){var u=0,l=0;if(null==r||(u=corner(r,a))!==(l=corner(i,a))||comparePoint(r,i)<0^a>0)do{c.point(0===u||3===u?n:e,u>1?o:t)}while((u=(u+a+4)%4)!==l);else c.point(i[0],i[1])}function corner(r,o){return p(r[0]-n)<i?o>0?0:3:p(r[0]-e)<i?o>0?2:1:p(r[1]-t)<i?o>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:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(i){var a=i,c=clipBuffer(),u,l,s,f,p,g,v,d,h,m,E;var S={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:polygonStart,polygonEnd:polygonEnd};function point(n,t){visible(n,t)&&a.point(n,t)}function polygonInside(){var t=0;for(var r=0,e=l.length;r<e;++r)for(var i=l[r],a=1,c=i.length,u=i[0],s,f,p=u[0],g=u[1];a<c;++a){s=p,f=g,u=i[a],p=u[0],g=u[1];f<=o?g>o&&(p-s)*(o-f)>(g-f)*(n-s)&&++t:g<=o&&(p-s)*(o-f)<(g-f)*(n-s)&&--t}return t}function polygonStart(){a=c,u=[],l=[],E=true}function polygonEnd(){var n=polygonInside(),t=E&&n,e=(u=r.merge(u)).length;if(t||e){i.polygonStart();if(t){i.lineStart();interpolate(null,null,1,i);i.lineEnd()}e&&clipPolygon(u,compareIntersection,n,interpolate,i);i.polygonEnd()}a=i,u=l=s=null}function lineStart(){S.point=linePoint;l&&l.push(s=[]);m=true;h=false;v=d=NaN}function lineEnd(){if(u){linePoint(f,p);g&&h&&c.rejoin();u.push(c.result())}S.point=point;h&&a.lineEnd()}function linePoint(r,i){var c=visible(r,i);l&&s.push([r,i]);if(m){f=r,p=i,g=c;m=false;if(c){a.lineStart();a.point(r,i)}}else if(c&&h)a.point(r,i);else{var u=[v=Math.max(fn,Math.min(sn,v)),d=Math.max(fn,Math.min(sn,d))],S=[r=Math.max(fn,Math.min(sn,r)),i=Math.max(fn,Math.min(sn,i))];if(clipLine(u,S,n,t,e,o)){if(!h){a.lineStart();a.point(u[0],u[1])}a.point(S[0],S[1]);c||a.lineEnd();E=false}else if(c){a.lineStart();a.point(r,i);E=false}}v=r,d=i,h=c}return S}}var extent=function(){var n=0,t=0,r=960,e=500,i,o,a;return a={stream:function(a){return i&&o===a?i:i=clipExtent(n,t,r,e)(o=a)},extent:function(c){return arguments.length?(n=+c[0][0],t=+c[0][1],r=+c[1][0],e=+c[1][1],i=o=null,a):[[n,t],[r,e]]}}};var pn=adder();var polygonContains=function(n,t){var r=t[0],e=t[1],o=[y(r),-d(r),0],c=0,s=0;pn.reset();for(var f=0,p=n.length;f<p;++f)if(h=(g=n[f]).length){var g,h,m=g[h-1],E=m[0],S=m[1]/2+u,P=y(S),R=d(S);for(var w=0;w<h;++w,E=x,P=j,R=b,m=M){var M=g[w],x=M[0],L=M[1]/2+u,j=y(L),b=d(L),C=x-E,A=C>=0?1:-1,N=A*C,I=N>a,_=P*j;pn.add(v(_*A*y(N),R*b+_*d(N)));c+=I?C+A*l:C;if(I^E>=r^x>=r){var $=cartesianCross(cartesian(m),cartesian(M));cartesianNormalizeInPlace($);var q=cartesianCross(o,$);cartesianNormalizeInPlace(q);var z=(I^C>=0?-1:1)*asin(q[2]);(e>z||e===z&&($[0]||$[1]))&&(s+=I^C>=0?1:-1)}}}return(c<-i||c<i&&pn<-i)^1&s};var gn=adder();var vn;var dn;var hn;var mn={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){mn.point=lengthPointFirst;mn.lineEnd=lengthLineEnd}function lengthLineEnd(){mn.point=mn.lineEnd=noop}function lengthPointFirst(n,t){n*=f,t*=f;vn=n,dn=y(t),hn=d(t);mn.point=lengthPoint}function lengthPoint(n,t){n*=f,t*=f;var r=y(t),e=d(t),i=p(n-vn),o=d(i),a=y(i),c=e*a,u=hn*r-dn*e*o,l=dn*r+hn*e*o;gn.add(v(R(c*c+u*u),l));vn=n,dn=r,hn=e}var length=function(n){gn.reset();geoStream(n,mn);return+gn};var En=[null,null];var Sn={type:"LineString",coordinates:En};var distance=function(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(++e<i)if(containsGeometry(r[e].geometry,t))return true;return false}};var Pn={Sphere:function(){return true},Point:function(n,t){return containsPoint(n.coordinates,t)},MultiPoint:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPoint(r[e],t))return true;return false},LineString:function(n,t){return containsLine(n.coordinates,t)},MultiLineString:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsLine(r[e],t))return true;return false},Polygon:function(n,t){return containsPolygon(n.coordinates,t)},MultiPolygon:function(n,t){var r=n.coordinates,e=-1,i=r.length;while(++e<i)if(containsPolygon(r[e],t))return true;return false},GeometryCollection:function(n,t){var r=n.geometries,e=-1,i=r.length;while(++e<i)if(containsGeometry(r[e],t))return true;return false}};function containsGeometry(n,t){return!(!n||!Pn.hasOwnProperty(n.type))&&Pn[n.type](n,t)}function containsPoint(n,t){return 0===distance(n,t)}function containsLine(n,t){var r=distance(n[0],n[1]),e=distance(n[0],t),o=distance(t,n[1]);return e+o<=r+i}function containsPolygon(n,t){return!!polygonContains(n.map(ringRadians),pointRadians(t))}function ringRadians(n){return n=n.map(pointRadians),n.pop(),n}function pointRadians(n){return[n[0]*f,n[1]*f]}var contains=function(n,t){return(n&&yn.hasOwnProperty(n.type)?yn[n.type]:containsGeometry)(n,t)};function graticuleX(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[n,t]}))}}function graticuleY(n,t,e){var o=r.range(n,t-i,e).concat(t);return function(n){return o.map((function(t){return[t,n]}))}}function graticule(){var n,t,e,o,a,c,u,l,s=10,f=s,g=90,v=360,d,m,E,S,y=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){return r.range(h(o/g)*g,e,g).map(E).concat(r.range(h(l/v)*v,u,v).map(S)).concat(r.range(h(t/s)*s,n,s).filter((function(n){return p(n%g)>i})).map(d)).concat(r.range(h(c/f)*f,a,f).filter((function(n){return p(n%v)>i})).map(m))}graticule.lines=function(){return lines().map((function(n){return{type:"LineString",coordinates:n}}))};graticule.outline=function(){return{type:"Polygon",coordinates:[E(o).concat(S(u).slice(1),E(e).reverse().slice(1),S(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],[e,u]];o=+n[0][0],e=+n[1][0];l=+n[0][1],u=+n[1][1];o>e&&(n=o,o=e,e=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[g,v];g=+n[0],v=+n[1];return graticule};graticule.stepMinor=function(n){if(!arguments.length)return[s,f];s=+n[0],f=+n[1];return graticule};graticule.precision=function(r){if(!arguments.length)return y;y=+r;d=graticuleX(c,a,90);m=graticuleY(t,n,y);E=graticuleX(l,u,90);S=graticuleY(o,e,y);return graticule};return graticule.extentMajor([[-180,-90+i],[180,90-i]]).extentMinor([[-180,-80-i],[180,80+i]])}function graticule10(){return graticule()()}var interpolate=function(n,t){var r=n[0]*f,e=n[1]*f,i=t[0]*f,o=t[1]*f,a=d(e),c=y(e),u=d(o),l=y(o),p=a*d(r),g=a*y(r),h=u*d(i),m=u*y(i),E=2*asin(R(haversin(o-e)+a*u*haversin(i-r))),S=y(E);var P=E?function(n){var t=y(n*=E)/S,r=y(E-n)/S,e=r*p+t*h,i=r*g+t*m,o=r*c+t*l;return[v(i,e)*s,v(o,R(e*e+i*i))*s]}:function(){return[r*s,e*s]};P.distance=E;return P};var identity=function(n){return n};var Rn=adder();var wn=adder();var Mn;var xn;var Ln;var jn;var bn={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){bn.lineStart=areaRingStart$1;bn.lineEnd=areaRingEnd$1},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=noop;Rn.add(p(wn));wn.reset()},result:function(){var n=Rn/2;Rn.reset();return n}};function areaRingStart$1(){bn.point=areaPointFirst$1}function areaPointFirst$1(n,t){bn.point=areaPoint$1;Mn=Ln=n,xn=jn=t}function areaPoint$1(n,t){wn.add(jn*n-Ln*t);Ln=n,jn=t}function areaRingEnd$1(){areaPoint$1(Mn,xn)}var Cn=Infinity;var An=Cn;var Nn=-Cn;var In=Nn;var _n={point:boundsPoint$1,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var n=[[Cn,An],[Nn,In]];Nn=In=-(An=Cn=Infinity);return n}};function boundsPoint$1(n,t){n<Cn&&(Cn=n);n>Nn&&(Nn=n);t<An&&(An=t);t>In&&(In=t)}var $n=0;var qn=0;var zn=0;var Tn=0;var Gn=0;var Fn=0;var Un=0;var On=0;var kn=0;var Dn;var Xn;var Yn;var Bn;var Zn={point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){Zn.lineStart=centroidRingStart$1;Zn.lineEnd=centroidRingEnd$1},polygonEnd:function(){Zn.point=centroidPoint$1;Zn.lineStart=centroidLineStart$1;Zn.lineEnd=centroidLineEnd$1},result:function(){var n=kn?[Un/kn,On/kn]:Fn?[Tn/Fn,Gn/Fn]:zn?[$n/zn,qn/zn]:[NaN,NaN];$n=qn=zn=Tn=Gn=Fn=Un=On=kn=0;return n}};function centroidPoint$1(n,t){$n+=n;qn+=t;++zn}function centroidLineStart$1(){Zn.point=centroidPointFirstLine}function centroidPointFirstLine(n,t){Zn.point=centroidPointLine;centroidPoint$1(Yn=n,Bn=t)}function centroidPointLine(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;centroidPoint$1(Yn=n,Bn=t)}function centroidLineEnd$1(){Zn.point=centroidPoint$1}function centroidRingStart$1(){Zn.point=centroidPointFirstRing}function centroidRingEnd$1(){centroidPointRing(Dn,Xn)}function centroidPointFirstRing(n,t){Zn.point=centroidPointRing;centroidPoint$1(Dn=Yn=n,Xn=Bn=t)}function centroidPointRing(n,t){var r=n-Yn,e=t-Bn,i=R(r*r+e*e);Tn+=i*(Yn+n)/2;Gn+=i*(Bn+t)/2;Fn+=i;i=Bn*n-Yn*t;Un+=i*(Yn+n);On+=i*(Bn+t);kn+=3*i;centroidPoint$1(Yn=n,Bn=t)}function PathContext(n){(this||t)._context=n}PathContext.prototype={_radius:4.5,pointRadius:function(n){return(this||t)._radius=n,this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._context.closePath();(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._context.moveTo(n,r);(this||t)._point=1;break;case 1:(this||t)._context.lineTo(n,r);break;default:(this||t)._context.moveTo(n+(this||t)._radius,r);(this||t)._context.arc(n,r,(this||t)._radius,0,l);break}},result:noop};var Hn=adder();var Jn;var Kn;var Qn;var Vn;var Wn;var nt={point:noop,lineStart:function(){nt.point=lengthPointFirst$1},lineEnd:function(){Jn&&lengthPoint$1(Kn,Qn);nt.point=noop},polygonStart:function(){Jn=true},polygonEnd:function(){Jn=null},result:function(){var n=+Hn;Hn.reset();return n}};function lengthPointFirst$1(n,t){nt.point=lengthPoint$1;Kn=Vn=n,Qn=Wn=t}function lengthPoint$1(n,t){Vn-=n,Wn-=t;Hn.add(R(Vn*Vn+Wn*Wn));Vn=n,Wn=t}function PathString(){(this||t)._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(n){(n=+n)!==(this||t)._radius&&((this||t)._radius=n,(this||t)._circle=null);return this||t},polygonStart:function(){(this||t)._line=0},polygonEnd:function(){(this||t)._line=NaN},lineStart:function(){(this||t)._point=0},lineEnd:function(){0===(this||t)._line&&(this||t)._string.push("Z");(this||t)._point=NaN},point:function(n,r){switch((this||t)._point){case 0:(this||t)._string.push("M",n,",",r);(this||t)._point=1;break;case 1:(this||t)._string.push("L",n,",",r);break;default:null==(this||t)._circle&&((this||t)._circle=circle$1((this||t)._radius));(this||t)._string.push("M",n,",",r,(this||t)._circle);break}},result:function(){if((this||t)._string.length){var n=(this||t)._string.join("");(this||t)._string=[];return n}return null}};function circle$1(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}var index=function(n,r){var e=4.5,i,o;function path(n){if(n){"function"===typeof e&&o.pointRadius(+e.apply(this||t,arguments));geoStream(n,i(o))}return o.result()}path.area=function(n){geoStream(n,i(bn));return bn.result()};path.measure=function(n){geoStream(n,i(nt));return nt.result()};path.bounds=function(n){geoStream(n,i(_n));return _n.result()};path.centroid=function(n){geoStream(n,i(Zn));return Zn.result()};path.projection=function(t){return arguments.length?(i=null==t?(n=null,identity):(n=t).stream,path):n};path.context=function(n){if(!arguments.length)return r;o=null==n?(r=null,new PathString):new PathContext(r=n);"function"!==typeof e&&o.pointRadius(e);return path};path.pointRadius=function(n){if(!arguments.length)return e;e="function"===typeof n?n:(o.pointRadius(+n),+n);return path};return path.projection(n).context(r)};var clip=function(n,t,e,i){return function(o,a){var c=t(a),u=o.invert(i[0],i[1]),l=clipBuffer(),s=t(l),f=false,p,g,v;var d={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){d.point=pointRing;d.lineStart=ringStart;d.lineEnd=ringEnd;g=[];p=[]},polygonEnd:function(){d.point=point;d.lineStart=lineStart;d.lineEnd=lineEnd;g=r.merge(g);var n=polygonContains(p,u);if(g.length){f||(a.polygonStart(),f=true);clipPolygon(g,compareIntersection,n,e,a)}else if(n){f||(a.polygonStart(),f=true);a.lineStart();e(null,null,1,a);a.lineEnd()}f&&(a.polygonEnd(),f=false);g=p=null},sphere:function(){a.polygonStart();a.lineStart();e(null,null,1,a);a.lineEnd();a.polygonEnd()}};function point(t,r){var e=o(t,r);n(t=e[0],r=e[1])&&a.point(t,r)}function pointLine(n,t){var r=o(n,t);c.point(r[0],r[1])}function lineStart(){d.point=pointLine;c.lineStart()}function lineEnd(){d.point=point;c.lineEnd()}function pointRing(n,t){v.push([n,t]);var r=o(n,t);s.point(r[0],r[1])}function ringStart(){s.lineStart();v=[]}function ringEnd(){pointRing(v[0][0],v[0][1]);s.lineEnd();var n=s.clean(),t=l.result(),r,e=t.length,i,o,c;v.pop();p.push(v);v=null;if(e)if(1&n){o=t[0];if((i=o.length-1)>0){f||(a.polygonStart(),f=true);a.lineStart();for(r=0;r<i;++r)a.point((c=o[r])[0],c[1]);a.lineEnd()}}else{e>1&&2&n&&t.push(t.pop().concat(t.shift()));g.push(t.filter(validSegment))}}return d}};function validSegment(n){return n.length>1}function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-c-i:c-n[1])-((t=t.x)[0]<0?t[1]-c-i:c-t[1])}var tt=clip((function(){return true}),clipAntimeridianLine,clipAntimeridianInterpolate,[-a,-c]);function clipAntimeridianLine(n){var t=NaN,r=NaN,e=NaN,o;return{lineStart:function(){n.lineStart();o=1},point:function(u,l){var s=u>0?a:-a,f=p(u-t);if(p(f-a)<i){n.point(t,r=(r+l)/2>0?c:-c);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);n.point(u,r);o=0}else if(e!==s&&f>=a){p(t-e)<i&&(t-=e*i);p(u-s)<i&&(u-=s*i);r=clipAntimeridianIntersect(t,r,u,l);n.point(e,r);n.lineEnd();n.lineStart();n.point(s,r);o=0}n.point(t=u,r=l);e=s},lineEnd:function(){n.lineEnd();t=r=NaN},clean:function(){return 2-o}}}function clipAntimeridianIntersect(n,t,r,e){var o,a,c=y(n-r);return p(c)>i?g((y(t)*(a=d(e))*y(r)-y(e)*(o=d(t))*y(n))/(o*a*c)):(t+e)/2}function clipAntimeridianInterpolate(n,t,r,e){var o;if(null==n){o=r*c;e.point(-a,o);e.point(0,o);e.point(a,o);e.point(a,0);e.point(a,-o);e.point(0,-o);e.point(-a,-o);e.point(-a,0);e.point(-a,o)}else if(p(n[0]-t[0])>i){var u=n[0]<t[0]?a:-a;o=r*u/2;e.point(-u,o);e.point(0,o);e.point(u,o)}else e.point(t[0],t[1])}var clipCircle=function(n,t){var r=d(n),e=r>0,o=p(r)>i;function interpolate(r,e,i,o){circleStream(o,n,t,i,r,e)}function visible(n,t){return d(n)*d(t)>r}function clipLine(n){var t,r,c,u,l;return{lineStart:function(){u=c=false;l=1},point:function(s,f){var p=[s,f],g,v=visible(s,f),d=e?v?0:code(s,f):v?code(s+(s<0?a:-a),f):0;!t&&(u=c=v)&&n.lineStart();if(v!==c){g=intersect(t,p);if(!g||pointEqual(t,g)||pointEqual(p,g)){p[0]+=i;p[1]+=i;v=visible(p[0],p[1])}}if(v!==c){l=0;if(v){n.lineStart();g=intersect(p,t);n.point(g[0],g[1])}else{g=intersect(t,p);n.point(g[0],g[1]);n.lineEnd()}t=g}else if(o&&t&&e^v){var h;if(!(d&r)&&(h=intersect(p,t,true))){l=0;if(e){n.lineStart();n.point(h[0][0],h[0][1]);n.point(h[1][0],h[1][1]);n.lineEnd()}else{n.point(h[1][0],h[1][1]);n.lineEnd();n.lineStart();n.point(h[0][0],h[0][1])}}}!v||t&&pointEqual(t,p)||n.point(p[0],p[1]);t=p,c=v,r=d},lineEnd:function(){c&&n.lineEnd();t=null},clean:function(){return l|(u&&c)<<1}}}function intersect(n,t,e){var o=cartesian(n),c=cartesian(t);var u=[1,0,0],l=cartesianCross(o,c),s=cartesianDot(l,l),f=l[0],g=s-f*f;if(!g)return!e&&n;var v=r*s/g,d=-r*f/g,h=cartesianCross(u,l),m=cartesianScale(u,v),E=cartesianScale(l,d);cartesianAddInPlace(m,E);var S=h,y=cartesianDot(m,S),P=cartesianDot(S,S),w=y*y-P*(cartesianDot(m,m)-1);if(!(w<0)){var M=R(w),x=cartesianScale(S,(-y-M)/P);cartesianAddInPlace(x,m);x=spherical(x);if(!e)return x;var L=n[0],j=t[0],b=n[1],C=t[1],A;j<L&&(A=L,L=j,j=A);var N=j-L,I=p(N-a)<i,_=I||N<i;!I&&C<b&&(A=b,b=C,C=A);if(_?I?b+C>0^x[1]<(p(x[0]-L)<i?b:C):b<=x[1]&&x[1]<=C:N>a^(L<=x[0]&&x[0]<=j)){var $=cartesianScale(S,(-y+M)/P);cartesianAddInPlace($,m);return[x,spherical($)]}}}function code(t,r){var i=e?n:a-n,o=0;t<-i?o|=1:t>i&&(o|=2);r<-i?o|=4:r>i&&(o|=8);return o}return clip(visible,clipLine,interpolate,e?[0,-n]:[-a,n-a])};var transform=function(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,r){(this||t).stream.point(n,r)},sphere:function(){(this||t).stream.sphere()},lineStart:function(){(this||t).stream.lineStart()},lineEnd:function(){(this||t).stream.lineEnd()},polygonStart:function(){(this||t).stream.polygonStart()},polygonEnd:function(){(this||t).stream.polygonEnd()}};function fitExtent(n,t,r){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1],o=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]);null!=o&&n.clipExtent(null);geoStream(r,n.stream(_n));var a=_n.result(),c=Math.min(e/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),u=+t[0][0]+(e-c*(a[1][0]+a[0][0]))/2,l=+t[0][1]+(i-c*(a[1][1]+a[0][1]))/2;null!=o&&n.clipExtent(o);return n.scale(150*c).translate([u,l])}function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)}var rt=16;var et=d(30*f);var resample=function(n,t){return+t?resample$1(n,t):resampleNone(n)};function resampleNone(n){return transformer({point:function(r,e){r=n(r,e);(this||t).stream.point(r[0],r[1])}})}function resample$1(n,t){function resampleLineTo(r,e,o,a,c,u,l,s,f,g,d,h,m,E){var S=l-r,y=s-e,P=S*S+y*y;if(P>4*t&&m--){var w=a+g,M=c+d,x=u+h,L=R(w*w+M*M+x*x),j=asin(x/=L),b=p(p(x)-1)<i||p(o-f)<i?(o+f)/2:v(M,w),C=n(b,j),A=C[0],N=C[1],I=A-r,_=N-e,$=y*I-S*_;if($*$/P>t||p((S*I+y*_)/P-.5)>.3||a*g+c*d+u*h<et){resampleLineTo(r,e,o,a,c,u,A,N,b,w/=L,M/=L,x,m,E);E.point(A,N);resampleLineTo(A,N,b,w,M,x,l,s,f,g,d,h,m,E)}}}return function(t){var r,e,i,o,a,c,u,l,s,f,p,g;var v={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){t.polygonStart();v.lineStart=ringStart},polygonEnd:function(){t.polygonEnd();v.lineStart=lineStart}};function point(r,e){r=n(r,e);t.point(r[0],r[1])}function lineStart(){l=NaN;v.point=linePoint;t.lineStart()}function linePoint(r,e){var i=cartesian([r,e]),o=n(r,e);resampleLineTo(l,s,u,f,p,g,l=o[0],s=o[1],u=r,f=i[0],p=i[1],g=i[2],rt,t);t.point(l,s)}function lineEnd(){v.point=point;t.lineEnd()}function ringStart(){lineStart();v.point=ringPoint;v.lineEnd=ringEnd}function ringPoint(n,t){linePoint(r=n,t),e=l,i=s,o=f,a=p,c=g;v.point=linePoint}function ringEnd(){resampleLineTo(l,s,u,f,p,g,e,i,r,o,a,c,rt,t);v.lineEnd=lineEnd;lineEnd()}return v}}var it=transformer({point:function(n,r){(this||t).stream.point(n*f,r*f)}});function projection(n){return projectionMutator((function(){return n}))()}function projectionMutator(n){var r,e=150,i=480,o=250,a,c,u=0,l=0,p=0,g=0,v=0,d,h,m=null,E=tt,S=null,y,P,w,M=identity,x=.5,L=resample(projectTransform,x),j,b;function projection(n){n=h(n[0]*f,n[1]*f);return[n[0]*e+a,c-n[1]*e]}function invert(n){n=h.invert((n[0]-a)/e,(c-n[1])/e);return n&&[n[0]*s,n[1]*s]}function projectTransform(n,t){return n=r(n,t),[n[0]*e+a,c-n[1]*e]}projection.stream=function(n){return j&&b===n?j:j=it(E(d,L(M(b=n))))};projection.clipAngle=function(n){return arguments.length?(E=+n?clipCircle(m=n*f,6*f):(m=null,tt),reset()):m*s};projection.clipExtent=function(n){return arguments.length?(M=null==n?(S=y=P=w=null,identity):clipExtent(S=+n[0][0],y=+n[0][1],P=+n[1][0],w=+n[1][1]),reset()):null==S?null:[[S,y],[P,w]]};projection.scale=function(n){return arguments.length?(e=+n,recenter()):e};projection.translate=function(n){return arguments.length?(i=+n[0],o=+n[1],recenter()):[i,o]};projection.center=function(n){return arguments.length?(u=n[0]%360*f,l=n[1]%360*f,recenter()):[u*s,l*s]};projection.rotate=function(n){return arguments.length?(p=n[0]%360*f,g=n[1]%360*f,v=n.length>2?n[2]%360*f:0,recenter()):[p*s,g*s,v*s]};projection.precision=function(n){return arguments.length?(L=resample(projectTransform,x=n*n),reset()):R(x)};projection.fitExtent=function(n,t){return fitExtent(projection,n,t)};projection.fitSize=function(n,t){return fitSize(projection,n,t)};function recenter(){h=compose(d=rotateRadians(p,g,v),r);var n=r(u,l);a=i-n[0]*e;c=o+n[1]*e;return reset()}function reset(){j=b=null;return projection}return function(){r=n.apply(this||t,arguments);projection.invert=r.invert&&invert;return recenter()}}function conicProjection(n){var t=0,r=a/3,e=projectionMutator(n),i=e(t,r);i.parallels=function(n){return arguments.length?e(t=n[0]*f,r=n[1]*f):[t*s,r*s]};return i}function cylindricalEqualAreaRaw(n){var t=d(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),e=(r+y(t))/2;if(p(e)<i)return cylindricalEqualAreaRaw(n);var o=1+r*(2*e-r),a=R(o)/e;function project(n,t){var r=R(o-2*e*y(t))/e;return[r*y(n*=e),a-r*d(n)]}project.invert=function(n,t){var r=a-t;return[v(n,p(r))/e*P(r),asin((o-(n*n+r*r)*e*e)/(2*e))]};return project}var conicEqualArea=function(){return conicProjection(conicEqualAreaRaw).scale(155.424).center([0,33.6442])};var albers=function(){return conicEqualArea().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function multiplex(n){var t=n.length;return{point:function(r,e){var i=-1;while(++i<t)n[i].point(r,e)},sphere:function(){var r=-1;while(++r<t)n[r].sphere()},lineStart:function(){var r=-1;while(++r<t)n[r].lineStart()},lineEnd:function(){var r=-1;while(++r<t)n[r].lineEnd()},polygonStart:function(){var r=-1;while(++r<t)n[r].polygonStart()},polygonEnd:function(){var r=-1;while(++r<t)n[r].polygonEnd()}}}var albersUsa=function(){var n,t,r=albers(),e,o=conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,c=conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,l,s={point:function(n,t){l=[n,t]}};function albersUsa(n){var t=n[0],r=n[1];return l=null,(e.point(t,r),l)||(a.point(t,r),l)||(u.point(t,r),l)}albersUsa.invert=function(n){var t=r.scale(),e=r.translate(),i=(n[0]-e[0])/t,a=(n[1]-e[1])/t;return(a>=.12&&a<.234&&i>=-.425&&i<-.214?o:a>=.166&&a<.234&&i>=-.214&&i<-.115?c:r).invert(n)};albersUsa.stream=function(e){return n&&t===e?n:n=multiplex([r.stream(t=e),o.stream(e),c.stream(e)])};albersUsa.precision=function(n){if(!arguments.length)return r.precision();r.precision(n),o.precision(n),c.precision(n);return reset()};albersUsa.scale=function(n){if(!arguments.length)return r.scale();r.scale(n),o.scale(.35*n),c.scale(n);return albersUsa.translate(r.translate())};albersUsa.translate=function(n){if(!arguments.length)return r.translate();var t=r.scale(),l=+n[0],f=+n[1];e=r.translate(n).clipExtent([[l-.455*t,f-.238*t],[l+.455*t,f+.238*t]]).stream(s);a=o.translate([l-.307*t,f+.201*t]).clipExtent([[l-.425*t+i,f+.12*t+i],[l-.214*t-i,f+.234*t-i]]).stream(s);u=c.translate([l-.205*t,f+.212*t]).clipExtent([[l-.214*t+i,f+.166*t+i],[l-.115*t-i,f+.234*t-i]]).stream(s);return reset()};albersUsa.fitExtent=function(n,t){return fitExtent(albersUsa,n,t)};albersUsa.fitSize=function(n,t){return fitSize(albersUsa,n,t)};function reset(){n=t=null;return albersUsa}return albersUsa.scale(1070)};function azimuthalRaw(n){return function(t,r){var e=d(t),i=d(r),o=n(e*i);return[o*i*y(t),o*y(r)]}}function azimuthalInvert(n){return function(t,r){var e=R(t*t+r*r),i=n(e),o=y(i),a=d(i);return[v(t*o,e*a),asin(e&&r*o/e)]}}var ot=azimuthalRaw((function(n){return R(2/(1+n))}));ot.invert=azimuthalInvert((function(n){return 2*asin(n/2)}));var azimuthalEqualArea=function(){return projection(ot).scale(124.75).clipAngle(180-.001)};var at=azimuthalRaw((function(n){return(n=acos(n))&&n/y(n)}));at.invert=azimuthalInvert((function(n){return n}));var azimuthalEquidistant=function(){return projection(at).scale(79.4188).clipAngle(180-.001)};function mercatorRaw(n,t){return[n,E(w((c+t)/2))]}mercatorRaw.invert=function(n,t){return[n,2*g(m(t))-c]};var mercator=function(){return mercatorProjection(mercatorRaw).scale(961/l)};function mercatorProjection(n){var t=projection(n),r=t.center,e=t.scale,i=t.translate,o=t.clipExtent,c=null,u,l,s;t.scale=function(n){return arguments.length?(e(n),reclip()):e()};t.translate=function(n){return arguments.length?(i(n),reclip()):i()};t.center=function(n){return arguments.length?(r(n),reclip()):r()};t.clipExtent=function(n){return arguments.length?(null==n?c=u=l=s=null:(c=+n[0][0],u=+n[0][1],l=+n[1][0],s=+n[1][1]),reclip()):null==c?null:[[c,u],[l,s]]};function reclip(){var r=a*e(),i=t(rotation(t.rotate()).invert([0,0]));return o(null==c?[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]]:n===mercatorRaw?[[Math.max(i[0]-r,c),u],[Math.min(i[0]+r,l),s]]:[[c,Math.max(i[1]-r,u)],[l,Math.min(i[1]+r,s)]])}return reclip()}function tany(n){return w((c+n)/2)}function conicConformalRaw(n,t){var r=d(n),e=n===t?y(n):E(r/d(t))/E(tany(t)/tany(n)),o=r*S(tany(n),e)/e;if(!e)return mercatorRaw;function project(n,t){o>0?t<-c+i&&(t=-c+i):t>c-i&&(t=c-i);var r=o/S(tany(t),e);return[r*y(e*n),o-r*d(e*n)]}project.invert=function(n,t){var r=o-t,i=P(e)*R(n*n+r*r);return[v(n,p(r))/e*P(r),2*g(S(o/i,1/e))-c]};return project}var conicConformal=function(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])};function equirectangularRaw(n,t){return[n,t]}equirectangularRaw.invert=equirectangularRaw;var equirectangular=function(){return projection(equirectangularRaw).scale(152.63)};function conicEquidistantRaw(n,t){var r=d(n),e=n===t?y(n):(r-d(t))/(t-n),o=r/e+n;if(p(e)<i)return equirectangularRaw;function project(n,t){var r=o-t,i=e*n;return[r*y(i),o-r*d(i)]}project.invert=function(n,t){var r=o-t;return[v(n,p(r))/e*P(r),o-P(e)*R(n*n+r*r)]};return project}var conicEquidistant=function(){return conicProjection(conicEquidistantRaw).scale(131.154).center([0,13.9389])};function gnomonicRaw(n,t){var r=d(t),e=d(n)*r;return[r*y(n)/e,y(t)/e]}gnomonicRaw.invert=azimuthalInvert(g);var gnomonic=function(){return projection(gnomonicRaw).scale(144.049).clipAngle(60)};function scaleTranslate(n,r,e,i){return 1===n&&1===r&&0===e&&0===i?identity:transformer({point:function(o,a){(this||t).stream.point(o*n+e,a*r+i)}})}var identity$1=function(){var n=1,t=0,r=0,e=1,i=1,o=identity,a=null,c,u,l,s=identity,f,p,g;function reset(){f=p=null;return g}return g={stream:function(n){return f&&p===n?f:f=o(s(p=n))},clipExtent:function(n){return arguments.length?(s=null==n?(a=c=u=l=null,identity):clipExtent(a=+n[0][0],c=+n[0][1],u=+n[1][0],l=+n[1][1]),reset()):null==a?null:[[a,c],[u,l]]},scale:function(a){return arguments.length?(o=scaleTranslate((n=+a)*e,n*i,t,r),reset()):n},translate:function(a){return arguments.length?(o=scaleTranslate(n*e,n*i,t=+a[0],r=+a[1]),reset()):[t,r]},reflectX:function(a){return arguments.length?(o=scaleTranslate(n*(e=a?-1:1),n*i,t,r),reset()):e<0},reflectY:function(a){return arguments.length?(o=scaleTranslate(n*e,n*(i=a?-1:1),t,r),reset()):i<0},fitExtent:function(n,t){return fitExtent(g,n,t)},fitSize:function(n,t){return fitSize(g,n,t)}}};function naturalEarth1Raw(n,t){var r=t*t,e=r*r;return[n*(.8707-.131979*r+e*(-.013791+e*(.003971*r-.001529*e))),t*(1.007226+r*(.015085+e*(-.044475+.028874*r-.005916*e)))]}naturalEarth1Raw.invert=function(n,t){var r=t,e=25,o;do{var a=r*r,c=a*a;r-=o=(r*(1.007226+a*(.015085+c*(-.044475+.028874*a-.005916*c)))-t)/(1.007226+a*(.015085*3+c*(-.044475*7+.028874*9*a-.005916*11*c)))}while(p(o)>i&&--e>0);return[n/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};var naturalEarth1=function(){return projection(naturalEarth1Raw).scale(175.295)};function orthographicRaw(n,t){return[d(t)*y(n),y(t)]}orthographicRaw.invert=azimuthalInvert(asin);var orthographic=function(){return projection(orthographicRaw).scale(249.5).clipAngle(90+i)};function stereographicRaw(n,t){var r=d(t),e=1+d(n)*r;return[r*y(n)/e,y(t)/e]}stereographicRaw.invert=azimuthalInvert((function(n){return 2*g(n)}));var stereographic=function(){return projection(stereographicRaw).scale(250).clipAngle(142)};function transverseMercatorRaw(n,t){return[E(w((c+t)/2)),-n]}transverseMercatorRaw.invert=function(n,t){return[-t,2*g(m(n))-c]};var transverseMercator=function(){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)};n.geoArea=area;n.geoBounds=bounds;n.geoCentroid=centroid;n.geoCircle=circle;n.geoClipExtent=extent;n.geoContains=contains;n.geoDistance=distance;n.geoGraticule=graticule;n.geoGraticule10=graticule10;n.geoInterpolate=interpolate;n.geoLength=length;n.geoPath=index;n.geoAlbers=albers;n.geoAlbersUsa=albersUsa;n.geoAzimuthalEqualArea=azimuthalEqualArea;n.geoAzimuthalEqualAreaRaw=ot;n.geoAzimuthalEquidistant=azimuthalEquidistant;n.geoAzimuthalEquidistantRaw=at;n.geoConicConformal=conicConformal;n.geoConicConformalRaw=conicConformalRaw;n.geoConicEqualArea=conicEqualArea;n.geoConicEqualAreaRaw=conicEqualAreaRaw;n.geoConicEquidistant=conicEquidistant;n.geoConicEquidistantRaw=conicEquidistantRaw;n.geoEquirectangular=equirectangular;n.geoEquirectangularRaw=equirectangularRaw;n.geoGnomonic=gnomonic;n.geoGnomonicRaw=gnomonicRaw;n.geoIdentity=identity$1;n.geoProjection=projection;n.geoProjectionMutator=projectionMutator;n.geoMercator=mercator;n.geoMercatorRaw=mercatorRaw;n.geoNaturalEarth1=naturalEarth1;n.geoNaturalEarth1Raw=naturalEarth1Raw;n.geoOrthographic=orthographic;n.geoOrthographicRaw=orthographicRaw;n.geoStereographic=stereographic;n.geoStereographicRaw=stereographicRaw;n.geoTransverseMercator=transverseMercator;n.geoTransverseMercatorRaw=transverseMercatorRaw;n.geoRotation=rotation;n.geoStream=geoStream;n.geoTransform=transform;Object.defineProperty(n,"__esModule",{value:true})}));const e=r.geoArea,i=r.geoBounds,o=r.geoCentroid,a=r.geoCircle,c=r.geoClipExtent,u=r.geoContains,l=r.geoDistance,s=r.geoGraticule,f=r.geoGraticule10,p=r.geoInterpolate,g=r.geoLength,v=r.geoPath,d=r.geoAlbers,h=r.geoAlbersUsa,m=r.geoAzimuthalEqualArea,E=r.geoAzimuthalEqualAreaRaw,S=r.geoAzimuthalEquidistant,y=r.geoAzimuthalEquidistantRaw,P=r.geoConicConformal,R=r.geoConicConformalRaw,w=r.geoConicEqualArea,M=r.geoConicEqualAreaRaw,x=r.geoConicEquidistant,L=r.geoConicEquidistantRaw,j=r.geoEquirectangular,b=r.geoEquirectangularRaw,C=r.geoGnomonic,A=r.geoGnomonicRaw,N=r.geoIdentity,I=r.geoProjection,_=r.geoProjectionMutator,$=r.geoMercator,q=r.geoMercatorRaw,z=r.geoNaturalEarth1,T=r.geoNaturalEarth1Raw,G=r.geoOrthographic,F=r.geoOrthographicRaw,U=r.geoStereographic,O=r.geoStereographicRaw,k=r.geoTransverseMercator,D=r.geoTransverseMercatorRaw,X=r.geoRotation,Y=r.geoStream,B=r.geoTransform,Z=r.__esModule;export default r;export{Z as __esModule,d as geoAlbers,h as geoAlbersUsa,e as geoArea,m as geoAzimuthalEqualArea,E as geoAzimuthalEqualAreaRaw,S as geoAzimuthalEquidistant,y as geoAzimuthalEquidistantRaw,i as geoBounds,o as geoCentroid,a as geoCircle,c as geoClipExtent,P as geoConicConformal,R as geoConicConformalRaw,w as geoConicEqualArea,M as geoConicEqualAreaRaw,x as geoConicEquidistant,L as geoConicEquidistantRaw,u as geoContains,l as geoDistance,j as geoEquirectangular,b as geoEquirectangularRaw,C as geoGnomonic,A as geoGnomonicRaw,s as geoGraticule,f as geoGraticule10,N as geoIdentity,p as geoInterpolate,g as geoLength,$ as geoMercator,q as geoMercatorRaw,z as geoNaturalEarth1,T as geoNaturalEarth1Raw,G as geoOrthographic,F as geoOrthographicRaw,v as geoPath,I as geoProjection,_ as geoProjectionMutator,X as geoRotation,U as geoStereographic,O as geoStereographicRaw,Y as geoStream,B as geoTransform,k as geoTransverseMercator,D as geoTransverseMercatorRaw};
@coveralls
Copy link

Pull Request Test Coverage Report for Build 21306418357

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 99.36%

Totals Coverage Status
Change from base Build 21306331331: 0.0%
Covered Lines: 776
Relevant Lines: 781

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants