{"version":3,"file":"index.cjs","sources":["../../../../.yarn/berry/cache/d3-array-npm-3.2.4-b427632bcc-10c0.zip/node_modules/d3-array/src/fsum.js","../../../../.yarn/berry/cache/d3-array-npm-3.2.4-b427632bcc-10c0.zip/node_modules/d3-array/src/merge.js","../../../../.yarn/berry/cache/d3-array-npm-3.2.4-b427632bcc-10c0.zip/node_modules/d3-array/src/range.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/math.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/noop.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/stream.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/cartesian.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/compose.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/rotation.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/circle.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/buffer.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/pointEqual.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/rejoin.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/polygonContains.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/index.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/antimeridian.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/circle.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/line.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/clip/rectangle.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/length.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/distance.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/contains.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/graticule.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/identity.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/area.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/bounds.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/centroid.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/context.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/measure.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/string.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/path/index.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/transform.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/fit.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/resample.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/index.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/conic.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/conicEqualArea.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/albers.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/albersUsa.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/azimuthal.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/mercator.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/conicConformal.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/equirectangular.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/conicEquidistant.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/equalEarth.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/gnomonic.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/naturalEarth1.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/orthographic.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/stereographic.js","../../../../.yarn/berry/cache/d3-geo-npm-3.1.1-6af0bd847d-10c0.zip/node_modules/d3-geo/src/projection/transverseMercator.js","../src/scales/ProjectionScale.ts","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/colors.js","../../../../.yarn/berry/cache/d3-color-npm-3.1.0-fc73fe3b15-10c0.zip/node_modules/d3-color/src/define.js","../../../../.yarn/berry/cache/d3-color-npm-3.1.0-fc73fe3b15-10c0.zip/node_modules/d3-color/src/color.js","../../../../.yarn/berry/cache/d3-color-npm-3.1.0-fc73fe3b15-10c0.zip/node_modules/d3-color/src/math.js","../../../../.yarn/berry/cache/d3-color-npm-3.1.0-fc73fe3b15-10c0.zip/node_modules/d3-color/src/cubehelix.js","../../../../.yarn/berry/cache/d3-interpolate-npm-3.0.1-77ddca7977-10c0.zip/node_modules/d3-interpolate/src/basis.js","../../../../.yarn/berry/cache/d3-interpolate-npm-3.0.1-77ddca7977-10c0.zip/node_modules/d3-interpolate/src/constant.js","../../../../.yarn/berry/cache/d3-interpolate-npm-3.0.1-77ddca7977-10c0.zip/node_modules/d3-interpolate/src/color.js","../../../../.yarn/berry/cache/d3-interpolate-npm-3.0.1-77ddca7977-10c0.zip/node_modules/d3-interpolate/src/rgb.js","../../../../.yarn/berry/cache/d3-interpolate-npm-3.0.1-77ddca7977-10c0.zip/node_modules/d3-interpolate/src/cubehelix.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/ramp.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/BrBG.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/PRGn.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/PiYG.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/PuOr.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/RdBu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/RdGy.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/diverging/Spectral.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","../../../../.yarn/berry/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-10c0.zip/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","../src/scales/LegendScale.ts","../src/scales/ColorScale.ts","../src/scales/SizeScale.ts","../src/elements/GeoFeature.ts","../src/controllers/GeoController.ts","../src/controllers/patchController.ts","../src/controllers/ChoroplethController.ts","../src/controllers/BubbleMapController.ts"],"sourcesContent":["// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n  constructor() {\n    this._partials = new Float64Array(32);\n    this._n = 0;\n  }\n  add(x) {\n    const p = this._partials;\n    let i = 0;\n    for (let j = 0; j < this._n && j < 32; j++) {\n      const y = p[j],\n        hi = x + y,\n        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n      if (lo) p[i++] = lo;\n      x = hi;\n    }\n    p[i] = x;\n    this._n = i + 1;\n    return this;\n  }\n  valueOf() {\n    const p = this._partials;\n    let n = this._n, x, y, lo, hi = 0;\n    if (n > 0) {\n      hi = p[--n];\n      while (n > 0) {\n        x = hi;\n        y = p[--n];\n        hi = x + y;\n        lo = y - (hi - x);\n        if (lo) break;\n      }\n      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n        y = lo * 2;\n        x = hi + y;\n        if (y == x - hi) hi = x;\n      }\n    }\n    return hi;\n  }\n}\n\nexport function fsum(values, valueof) {\n  const adder = new Adder();\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value = +value) {\n        adder.add(value);\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if (value = +valueof(value, ++index, values)) {\n        adder.add(value);\n      }\n    }\n  }\n  return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n  const adder = new Adder();\n  let index = -1;\n  return Float64Array.from(values, valueof === undefined\n      ? v => adder.add(+v || 0)\n      : v => adder.add(+valueof(v, ++index, values) || 0)\n  );\n}\n","function* flatten(arrays) {\n  for (const array of arrays) {\n    yield* array;\n  }\n}\n\nexport default function merge(arrays) {\n  return Array.from(flatten(arrays));\n}\n","export default function range(start, stop, step) {\n  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n  var i = -1,\n      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n      range = new Array(n);\n\n  while (++i < n) {\n    range[i] = start + i * step;\n  }\n\n  return range;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n  return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n  return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n    streamGeometryType[geometry.type](geometry, stream);\n  }\n}\n\nvar streamObjectType = {\n  Feature: function(object, stream) {\n    streamGeometry(object.geometry, stream);\n  },\n  FeatureCollection: function(object, stream) {\n    var features = object.features, i = -1, n = features.length;\n    while (++i < n) streamGeometry(features[i].geometry, stream);\n  }\n};\n\nvar streamGeometryType = {\n  Sphere: function(object, stream) {\n    stream.sphere();\n  },\n  Point: function(object, stream) {\n    object = object.coordinates;\n    stream.point(object[0], object[1], object[2]);\n  },\n  MultiPoint: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n  },\n  LineString: function(object, stream) {\n    streamLine(object.coordinates, stream, 0);\n  },\n  MultiLineString: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) streamLine(coordinates[i], stream, 0);\n  },\n  Polygon: function(object, stream) {\n    streamPolygon(object.coordinates, stream);\n  },\n  MultiPolygon: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) streamPolygon(coordinates[i], stream);\n  },\n  GeometryCollection: function(object, stream) {\n    var geometries = object.geometries, i = -1, n = geometries.length;\n    while (++i < n) streamGeometry(geometries[i], stream);\n  }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n  var i = -1, n = coordinates.length - closed, coordinate;\n  stream.lineStart();\n  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n  stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n  var i = -1, n = coordinates.length;\n  stream.polygonStart();\n  while (++i < n) streamLine(coordinates[i], stream, 1);\n  stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n  if (object && streamObjectType.hasOwnProperty(object.type)) {\n    streamObjectType[object.type](object, stream);\n  } else {\n    streamGeometry(object, stream);\n  }\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n  return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n  var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n  return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n  a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n  return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n  var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n  d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","export default function(a, b) {\n\n  function compose(x, y) {\n    return x = a(x, y), b(x[0], x[1]);\n  }\n\n  if (a.invert && b.invert) compose.invert = function(x, y) {\n    return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n  };\n\n  return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n  if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n  return [lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n  return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n    : rotationLambda(deltaLambda))\n    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n    : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n  return function(lambda, phi) {\n    lambda += deltaLambda;\n    if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n    return [lambda, phi];\n  };\n}\n\nfunction rotationLambda(deltaLambda) {\n  var rotation = forwardRotationLambda(deltaLambda);\n  rotation.invert = forwardRotationLambda(-deltaLambda);\n  return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n  var cosDeltaPhi = cos(deltaPhi),\n      sinDeltaPhi = sin(deltaPhi),\n      cosDeltaGamma = cos(deltaGamma),\n      sinDeltaGamma = sin(deltaGamma);\n\n  function rotation(lambda, phi) {\n    var cosPhi = cos(phi),\n        x = cos(lambda) * cosPhi,\n        y = sin(lambda) * cosPhi,\n        z = sin(phi),\n        k = z * cosDeltaPhi + x * sinDeltaPhi;\n    return [\n      atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n      asin(k * cosDeltaGamma + y * sinDeltaGamma)\n    ];\n  }\n\n  rotation.invert = function(lambda, phi) {\n    var cosPhi = cos(phi),\n        x = cos(lambda) * cosPhi,\n        y = sin(lambda) * cosPhi,\n        z = sin(phi),\n        k = z * cosDeltaGamma - y * sinDeltaGamma;\n    return [\n      atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n      asin(k * cosDeltaPhi - x * sinDeltaPhi)\n    ];\n  };\n\n  return rotation;\n}\n\nexport default function(rotate) {\n  rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n  function forward(coordinates) {\n    coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n  }\n\n  forward.invert = function(coordinates) {\n    coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n  };\n\n  return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n  if (!delta) return;\n  var cosRadius = cos(radius),\n      sinRadius = sin(radius),\n      step = direction * delta;\n  if (t0 == null) {\n    t0 = radius + direction * tau;\n    t1 = radius - step / 2;\n  } else {\n    t0 = circleRadius(cosRadius, t0);\n    t1 = circleRadius(cosRadius, t1);\n    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n  }\n  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n    point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n    stream.point(point[0], point[1]);\n  }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n  point = cartesian(point), point[0] -= cosRadius;\n  cartesianNormalizeInPlace(point);\n  var radius = acos(-point[1]);\n  return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n  var center = constant([0, 0]),\n      radius = constant(90),\n      precision = constant(2),\n      ring,\n      rotate,\n      stream = {point: point};\n\n  function point(x, y) {\n    ring.push(x = rotate(x, y));\n    x[0] *= degrees, x[1] *= degrees;\n  }\n\n  function circle() {\n    var c = center.apply(this, arguments),\n        r = radius.apply(this, arguments) * radians,\n        p = precision.apply(this, arguments) * radians;\n    ring = [];\n    rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n    circleStream(stream, r, p, 1);\n    c = {type: \"Polygon\", coordinates: [ring]};\n    ring = rotate = null;\n    return c;\n  }\n\n  circle.center = function(_) {\n    return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n  };\n\n  circle.radius = function(_) {\n    return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n  };\n\n  circle.precision = function(_) {\n    return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n  };\n\n  return circle;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n  var lines = [],\n      line;\n  return {\n    point: function(x, y, m) {\n      line.push([x, y, m]);\n    },\n    lineStart: function() {\n      lines.push(line = []);\n    },\n    lineEnd: noop,\n    rejoin: function() {\n      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n    },\n    result: function() {\n      var result = lines;\n      lines = [];\n      line = null;\n      return result;\n    }\n  };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n  return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n  this.x = point;\n  this.z = points;\n  this.o = other; // another intersection\n  this.e = entry; // is an entry?\n  this.v = false; // visited\n  this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n  var subject = [],\n      clip = [],\n      i,\n      n;\n\n  segments.forEach(function(segment) {\n    if ((n = segment.length - 1) <= 0) return;\n    var n, p0 = segment[0], p1 = segment[n], x;\n\n    if (pointEqual(p0, p1)) {\n      if (!p0[2] && !p1[2]) {\n        stream.lineStart();\n        for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n        stream.lineEnd();\n        return;\n      }\n      // handle degenerate cases by moving the point\n      p1[0] += 2 * epsilon;\n    }\n\n    subject.push(x = new Intersection(p0, segment, null, true));\n    clip.push(x.o = new Intersection(p0, null, x, false));\n    subject.push(x = new Intersection(p1, segment, null, false));\n    clip.push(x.o = new Intersection(p1, null, x, true));\n  });\n\n  if (!subject.length) return;\n\n  clip.sort(compareIntersection);\n  link(subject);\n  link(clip);\n\n  for (i = 0, n = clip.length; i < n; ++i) {\n    clip[i].e = startInside = !startInside;\n  }\n\n  var start = subject[0],\n      points,\n      point;\n\n  while (1) {\n    // Find first unvisited intersection.\n    var current = start,\n        isSubject = true;\n    while (current.v) if ((current = current.n) === start) return;\n    points = current.z;\n    stream.lineStart();\n    do {\n      current.v = current.o.v = true;\n      if (current.e) {\n        if (isSubject) {\n          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n        } else {\n          interpolate(current.x, current.n.x, 1, stream);\n        }\n        current = current.n;\n      } else {\n        if (isSubject) {\n          points = current.p.z;\n          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n        } else {\n          interpolate(current.x, current.p.x, -1, stream);\n        }\n        current = current.p;\n      }\n      current = current.o;\n      points = current.z;\n      isSubject = !isSubject;\n    } while (!current.v);\n    stream.lineEnd();\n  }\n}\n\nfunction link(array) {\n  if (!(n = array.length)) return;\n  var n,\n      i = 0,\n      a = array[0],\n      b;\n  while (++i < n) {\n    a.n = b = array[i];\n    b.p = a;\n    a = b;\n  }\n  a.n = b = array[0];\n  b.p = a;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n  return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n  var lambda = longitude(point),\n      phi = point[1],\n      sinPhi = sin(phi),\n      normal = [sin(lambda), -cos(lambda), 0],\n      angle = 0,\n      winding = 0;\n\n  var sum = new Adder();\n\n  if (sinPhi === 1) phi = halfPi + epsilon;\n  else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n  for (var i = 0, n = polygon.length; i < n; ++i) {\n    if (!(m = (ring = polygon[i]).length)) continue;\n    var ring,\n        m,\n        point0 = ring[m - 1],\n        lambda0 = longitude(point0),\n        phi0 = point0[1] / 2 + quarterPi,\n        sinPhi0 = sin(phi0),\n        cosPhi0 = cos(phi0);\n\n    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n      var point1 = ring[j],\n          lambda1 = longitude(point1),\n          phi1 = point1[1] / 2 + quarterPi,\n          sinPhi1 = sin(phi1),\n          cosPhi1 = cos(phi1),\n          delta = lambda1 - lambda0,\n          sign = delta >= 0 ? 1 : -1,\n          absDelta = sign * delta,\n          antimeridian = absDelta > pi,\n          k = sinPhi0 * sinPhi1;\n\n      sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n      angle += antimeridian ? delta + sign * tau : delta;\n\n      // Are the longitudes either side of the point’s meridian (lambda),\n      // and are the latitudes smaller than the parallel (phi)?\n      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n        var arc = cartesianCross(cartesian(point0), cartesian(point1));\n        cartesianNormalizeInPlace(arc);\n        var intersection = cartesianCross(normal, arc);\n        cartesianNormalizeInPlace(intersection);\n        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n          winding += antimeridian ^ delta >= 0 ? 1 : -1;\n        }\n      }\n    }\n  }\n\n  // First, determine whether the South pole is inside or outside:\n  //\n  // It is inside if:\n  // * the polygon winds around it in a clockwise direction.\n  // * the polygon does not (cumulatively) wind around it, but has a negative\n  //   (counter-clockwise) area.\n  //\n  // Second, count the (signed) number of times a segment crosses a lambda\n  // from the point to the South pole.  If it is zero, then the point is the\n  // same side as the South pole.\n\n  return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n  return function(sink) {\n    var line = clipLine(sink),\n        ringBuffer = clipBuffer(),\n        ringSink = clipLine(ringBuffer),\n        polygonStarted = false,\n        polygon,\n        segments,\n        ring;\n\n    var clip = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: function() {\n        clip.point = pointRing;\n        clip.lineStart = ringStart;\n        clip.lineEnd = ringEnd;\n        segments = [];\n        polygon = [];\n      },\n      polygonEnd: function() {\n        clip.point = point;\n        clip.lineStart = lineStart;\n        clip.lineEnd = lineEnd;\n        segments = merge(segments);\n        var startInside = polygonContains(polygon, start);\n        if (segments.length) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n        } else if (startInside) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          sink.lineStart();\n          interpolate(null, null, 1, sink);\n          sink.lineEnd();\n        }\n        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n        segments = polygon = null;\n      },\n      sphere: function() {\n        sink.polygonStart();\n        sink.lineStart();\n        interpolate(null, null, 1, sink);\n        sink.lineEnd();\n        sink.polygonEnd();\n      }\n    };\n\n    function point(lambda, phi) {\n      if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n    }\n\n    function pointLine(lambda, phi) {\n      line.point(lambda, phi);\n    }\n\n    function lineStart() {\n      clip.point = pointLine;\n      line.lineStart();\n    }\n\n    function lineEnd() {\n      clip.point = point;\n      line.lineEnd();\n    }\n\n    function pointRing(lambda, phi) {\n      ring.push([lambda, phi]);\n      ringSink.point(lambda, phi);\n    }\n\n    function ringStart() {\n      ringSink.lineStart();\n      ring = [];\n    }\n\n    function ringEnd() {\n      pointRing(ring[0][0], ring[0][1]);\n      ringSink.lineEnd();\n\n      var clean = ringSink.clean(),\n          ringSegments = ringBuffer.result(),\n          i, n = ringSegments.length, m,\n          segment,\n          point;\n\n      ring.pop();\n      polygon.push(ring);\n      ring = null;\n\n      if (!n) return;\n\n      // No intersections.\n      if (clean & 1) {\n        segment = ringSegments[0];\n        if ((m = segment.length - 1) > 0) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          sink.lineStart();\n          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n          sink.lineEnd();\n        }\n        return;\n      }\n\n      // Rejoin connected segments.\n      // TODO reuse ringBuffer.rejoin()?\n      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n      segments.push(ringSegments.filter(validSegment));\n    }\n\n    return clip;\n  };\n}\n\nfunction validSegment(segment) {\n  return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n  return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n       - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n  function() { return true; },\n  clipAntimeridianLine,\n  clipAntimeridianInterpolate,\n  [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n  var lambda0 = NaN,\n      phi0 = NaN,\n      sign0 = NaN,\n      clean; // no intersections\n\n  return {\n    lineStart: function() {\n      stream.lineStart();\n      clean = 1;\n    },\n    point: function(lambda1, phi1) {\n      var sign1 = lambda1 > 0 ? pi : -pi,\n          delta = abs(lambda1 - lambda0);\n      if (abs(delta - pi) < epsilon) { // line crosses a pole\n        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n        stream.point(sign0, phi0);\n        stream.lineEnd();\n        stream.lineStart();\n        stream.point(sign1, phi0);\n        stream.point(lambda1, phi0);\n        clean = 0;\n      } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n        if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n        if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n        stream.point(sign0, phi0);\n        stream.lineEnd();\n        stream.lineStart();\n        stream.point(sign1, phi0);\n        clean = 0;\n      }\n      stream.point(lambda0 = lambda1, phi0 = phi1);\n      sign0 = sign1;\n    },\n    lineEnd: function() {\n      stream.lineEnd();\n      lambda0 = phi0 = NaN;\n    },\n    clean: function() {\n      return 2 - clean; // if intersections, rejoin first and last segments\n    }\n  };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n  var cosPhi0,\n      cosPhi1,\n      sinLambda0Lambda1 = sin(lambda0 - lambda1);\n  return abs(sinLambda0Lambda1) > epsilon\n      ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n          - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n      : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n  var phi;\n  if (from == null) {\n    phi = direction * halfPi;\n    stream.point(-pi, phi);\n    stream.point(0, phi);\n    stream.point(pi, phi);\n    stream.point(pi, 0);\n    stream.point(pi, -phi);\n    stream.point(0, -phi);\n    stream.point(-pi, -phi);\n    stream.point(-pi, 0);\n    stream.point(-pi, phi);\n  } else if (abs(from[0] - to[0]) > epsilon) {\n    var lambda = from[0] < to[0] ? pi : -pi;\n    phi = direction * lambda / 2;\n    stream.point(-lambda, phi);\n    stream.point(0, phi);\n    stream.point(lambda, phi);\n  } else {\n    stream.point(to[0], to[1]);\n  }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n  var cr = cos(radius),\n      delta = 2 * radians,\n      smallRadius = cr > 0,\n      notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n  function interpolate(from, to, direction, stream) {\n    circleStream(stream, radius, delta, direction, from, to);\n  }\n\n  function visible(lambda, phi) {\n    return cos(lambda) * cos(phi) > cr;\n  }\n\n  // Takes a line and cuts into visible segments. Return values used for polygon\n  // clipping: 0 - there were intersections or the line was empty; 1 - no\n  // intersections 2 - there were intersections, and the first and last segments\n  // should be rejoined.\n  function clipLine(stream) {\n    var point0, // previous point\n        c0, // code for previous point\n        v0, // visibility of previous point\n        v00, // visibility of first point\n        clean; // no intersections\n    return {\n      lineStart: function() {\n        v00 = v0 = false;\n        clean = 1;\n      },\n      point: function(lambda, phi) {\n        var point1 = [lambda, phi],\n            point2,\n            v = visible(lambda, phi),\n            c = smallRadius\n              ? v ? 0 : code(lambda, phi)\n              : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n        if (!point0 && (v00 = v0 = v)) stream.lineStart();\n        if (v !== v0) {\n          point2 = intersect(point0, point1);\n          if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n            point1[2] = 1;\n        }\n        if (v !== v0) {\n          clean = 0;\n          if (v) {\n            // outside going in\n            stream.lineStart();\n            point2 = intersect(point1, point0);\n            stream.point(point2[0], point2[1]);\n          } else {\n            // inside going out\n            point2 = intersect(point0, point1);\n            stream.point(point2[0], point2[1], 2);\n            stream.lineEnd();\n          }\n          point0 = point2;\n        } else if (notHemisphere && point0 && smallRadius ^ v) {\n          var t;\n          // If the codes for two points are different, or are both zero,\n          // and there this segment intersects with the small circle.\n          if (!(c & c0) && (t = intersect(point1, point0, true))) {\n            clean = 0;\n            if (smallRadius) {\n              stream.lineStart();\n              stream.point(t[0][0], t[0][1]);\n              stream.point(t[1][0], t[1][1]);\n              stream.lineEnd();\n            } else {\n              stream.point(t[1][0], t[1][1]);\n              stream.lineEnd();\n              stream.lineStart();\n              stream.point(t[0][0], t[0][1], 3);\n            }\n          }\n        }\n        if (v && (!point0 || !pointEqual(point0, point1))) {\n          stream.point(point1[0], point1[1]);\n        }\n        point0 = point1, v0 = v, c0 = c;\n      },\n      lineEnd: function() {\n        if (v0) stream.lineEnd();\n        point0 = null;\n      },\n      // Rejoin first and last segments if there were intersections and the first\n      // and last points were visible.\n      clean: function() {\n        return clean | ((v00 && v0) << 1);\n      }\n    };\n  }\n\n  // Intersects the great circle between a and b with the clip circle.\n  function intersect(a, b, two) {\n    var pa = cartesian(a),\n        pb = cartesian(b);\n\n    // We have two planes, n1.p = d1 and n2.p = d2.\n    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n    var n1 = [1, 0, 0], // normal\n        n2 = cartesianCross(pa, pb),\n        n2n2 = cartesianDot(n2, n2),\n        n1n2 = n2[0], // cartesianDot(n1, n2),\n        determinant = n2n2 - n1n2 * n1n2;\n\n    // Two polar points.\n    if (!determinant) return !two && a;\n\n    var c1 =  cr * n2n2 / determinant,\n        c2 = -cr * n1n2 / determinant,\n        n1xn2 = cartesianCross(n1, n2),\n        A = cartesianScale(n1, c1),\n        B = cartesianScale(n2, c2);\n    cartesianAddInPlace(A, B);\n\n    // Solve |p(t)|^2 = 1.\n    var u = n1xn2,\n        w = cartesianDot(A, u),\n        uu = cartesianDot(u, u),\n        t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n    if (t2 < 0) return;\n\n    var t = sqrt(t2),\n        q = cartesianScale(u, (-w - t) / uu);\n    cartesianAddInPlace(q, A);\n    q = spherical(q);\n\n    if (!two) return q;\n\n    // Two intersection points.\n    var lambda0 = a[0],\n        lambda1 = b[0],\n        phi0 = a[1],\n        phi1 = b[1],\n        z;\n\n    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n    var delta = lambda1 - lambda0,\n        polar = abs(delta - pi) < epsilon,\n        meridian = polar || delta < epsilon;\n\n    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n    // Check that the first point is between a and b.\n    if (meridian\n        ? polar\n          ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n          : phi0 <= q[1] && q[1] <= phi1\n        : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n      var q1 = cartesianScale(u, (-w + t) / uu);\n      cartesianAddInPlace(q1, A);\n      return [q, spherical(q1)];\n    }\n  }\n\n  // Generates a 4-bit vector representing the location of a point relative to\n  // the small circle's bounding box.\n  function code(lambda, phi) {\n    var r = smallRadius ? radius : pi - radius,\n        code = 0;\n    if (lambda < -r) code |= 1; // left\n    else if (lambda > r) code |= 2; // right\n    if (phi < -r) code |= 4; // below\n    else if (phi > r) code |= 8; // above\n    return code;\n  }\n\n  return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n  var ax = a[0],\n      ay = a[1],\n      bx = b[0],\n      by = b[1],\n      t0 = 0,\n      t1 = 1,\n      dx = bx - ax,\n      dy = by - ay,\n      r;\n\n  r = x0 - ax;\n  if (!dx && r > 0) return;\n  r /= dx;\n  if (dx < 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  } else if (dx > 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  }\n\n  r = x1 - ax;\n  if (!dx && r < 0) return;\n  r /= dx;\n  if (dx < 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  } else if (dx > 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  }\n\n  r = y0 - ay;\n  if (!dy && r > 0) return;\n  r /= dy;\n  if (dy < 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  } else if (dy > 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  }\n\n  r = y1 - ay;\n  if (!dy && r < 0) return;\n  r /= dy;\n  if (dy < 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  } else if (dy > 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  }\n\n  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n  return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n  function visible(x, y) {\n    return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n  }\n\n  function interpolate(from, to, direction, stream) {\n    var a = 0, a1 = 0;\n    if (from == null\n        || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n        || comparePoint(from, to) < 0 ^ direction > 0) {\n      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n      while ((a = (a + direction + 4) % 4) !== a1);\n    } else {\n      stream.point(to[0], to[1]);\n    }\n  }\n\n  function corner(p, direction) {\n    return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n        : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n        : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n  }\n\n  function compareIntersection(a, b) {\n    return comparePoint(a.x, b.x);\n  }\n\n  function comparePoint(a, b) {\n    var ca = corner(a, 1),\n        cb = corner(b, 1);\n    return ca !== cb ? ca - cb\n        : ca === 0 ? b[1] - a[1]\n        : ca === 1 ? a[0] - b[0]\n        : ca === 2 ? a[1] - b[1]\n        : b[0] - a[0];\n  }\n\n  return function(stream) {\n    var activeStream = stream,\n        bufferStream = clipBuffer(),\n        segments,\n        polygon,\n        ring,\n        x__, y__, v__, // first point\n        x_, y_, v_, // previous point\n        first,\n        clean;\n\n    var clipStream = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: polygonStart,\n      polygonEnd: polygonEnd\n    };\n\n    function point(x, y) {\n      if (visible(x, y)) activeStream.point(x, y);\n    }\n\n    function polygonInside() {\n      var winding = 0;\n\n      for (var i = 0, n = polygon.length; i < n; ++i) {\n        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n        }\n      }\n\n      return winding;\n    }\n\n    // Buffer geometry within a polygon and then clip it en masse.\n    function polygonStart() {\n      activeStream = bufferStream, segments = [], polygon = [], clean = true;\n    }\n\n    function polygonEnd() {\n      var startInside = polygonInside(),\n          cleanInside = clean && startInside,\n          visible = (segments = merge(segments)).length;\n      if (cleanInside || visible) {\n        stream.polygonStart();\n        if (cleanInside) {\n          stream.lineStart();\n          interpolate(null, null, 1, stream);\n          stream.lineEnd();\n        }\n        if (visible) {\n          clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n        }\n        stream.polygonEnd();\n      }\n      activeStream = stream, segments = polygon = ring = null;\n    }\n\n    function lineStart() {\n      clipStream.point = linePoint;\n      if (polygon) polygon.push(ring = []);\n      first = true;\n      v_ = false;\n      x_ = y_ = NaN;\n    }\n\n    // TODO rather than special-case polygons, simply handle them separately.\n    // Ideally, coincident intersection points should be jittered to avoid\n    // clipping issues.\n    function lineEnd() {\n      if (segments) {\n        linePoint(x__, y__);\n        if (v__ && v_) bufferStream.rejoin();\n        segments.push(bufferStream.result());\n      }\n      clipStream.point = point;\n      if (v_) activeStream.lineEnd();\n    }\n\n    function linePoint(x, y) {\n      var v = visible(x, y);\n      if (polygon) ring.push([x, y]);\n      if (first) {\n        x__ = x, y__ = y, v__ = v;\n        first = false;\n        if (v) {\n          activeStream.lineStart();\n          activeStream.point(x, y);\n        }\n      } else {\n        if (v && v_) activeStream.point(x, y);\n        else {\n          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n          if (clipLine(a, b, x0, y0, x1, y1)) {\n            if (!v_) {\n              activeStream.lineStart();\n              activeStream.point(a[0], a[1]);\n            }\n            activeStream.point(b[0], b[1]);\n            if (!v) activeStream.lineEnd();\n            clean = false;\n          } else if (v) {\n            activeStream.lineStart();\n            activeStream.point(x, y);\n            clean = false;\n          }\n        }\n      }\n      x_ = x, y_ = y, v_ = v;\n    }\n\n    return clipStream;\n  };\n}\n","import {Adder} from \"d3-array\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum,\n    lambda0,\n    sinPhi0,\n    cosPhi0;\n\nvar lengthStream = {\n  sphere: noop,\n  point: noop,\n  lineStart: lengthLineStart,\n  lineEnd: noop,\n  polygonStart: noop,\n  polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n  lengthStream.point = lengthPointFirst;\n  lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n  lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n  lambda *= radians, phi *= radians;\n  lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n  lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n  lambda *= radians, phi *= radians;\n  var sinPhi = sin(phi),\n      cosPhi = cos(phi),\n      delta = abs(lambda - lambda0),\n      cosDelta = cos(delta),\n      sinDelta = sin(delta),\n      x = cosPhi * sinDelta,\n      y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n      z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n  lengthSum.add(atan2(sqrt(x * x + y * y), z));\n  lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n  lengthSum = new Adder();\n  stream(object, lengthStream);\n  return +lengthSum;\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n    object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n  coordinates[0] = a;\n  coordinates[1] = b;\n  return length(object);\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n  Feature: function(object, point) {\n    return containsGeometry(object.geometry, point);\n  },\n  FeatureCollection: function(object, point) {\n    var features = object.features, i = -1, n = features.length;\n    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n    return false;\n  }\n};\n\nvar containsGeometryType = {\n  Sphere: function() {\n    return true;\n  },\n  Point: function(object, point) {\n    return containsPoint(object.coordinates, point);\n  },\n  MultiPoint: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n    return false;\n  },\n  LineString: function(object, point) {\n    return containsLine(object.coordinates, point);\n  },\n  MultiLineString: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsLine(coordinates[i], point)) return true;\n    return false;\n  },\n  Polygon: function(object, point) {\n    return containsPolygon(object.coordinates, point);\n  },\n  MultiPolygon: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n    return false;\n  },\n  GeometryCollection: function(object, point) {\n    var geometries = object.geometries, i = -1, n = geometries.length;\n    while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n    return false;\n  }\n};\n\nfunction containsGeometry(geometry, point) {\n  return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n      ? containsGeometryType[geometry.type](geometry, point)\n      : false;\n}\n\nfunction containsPoint(coordinates, point) {\n  return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n  var ao, bo, ab;\n  for (var i = 0, n = coordinates.length; i < n; i++) {\n    bo = distance(coordinates[i], point);\n    if (bo === 0) return true;\n    if (i > 0) {\n      ab = distance(coordinates[i], coordinates[i - 1]);\n      if (\n        ab > 0 &&\n        ao <= ab &&\n        bo <= ab &&\n        (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n      )\n        return true;\n    }\n    ao = bo;\n  }\n  return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n  return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n  return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n  return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n  return (object && containsObjectType.hasOwnProperty(object.type)\n      ? containsObjectType[object.type]\n      : containsGeometry)(object, point);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n  var y = range(y0, y1 - epsilon, dy).concat(y1);\n  return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n  var x = range(x0, x1 - epsilon, dx).concat(x1);\n  return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n  var x1, x0, X1, X0,\n      y1, y0, Y1, Y0,\n      dx = 10, dy = dx, DX = 90, DY = 360,\n      x, y, X, Y,\n      precision = 2.5;\n\n  function graticule() {\n    return {type: \"MultiLineString\", coordinates: lines()};\n  }\n\n  function lines() {\n    return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n        .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n        .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n        .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n  }\n\n  graticule.lines = function() {\n    return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n  };\n\n  graticule.outline = function() {\n    return {\n      type: \"Polygon\",\n      coordinates: [\n        X(X0).concat(\n        Y(Y1).slice(1),\n        X(X1).reverse().slice(1),\n        Y(Y0).reverse().slice(1))\n      ]\n    };\n  };\n\n  graticule.extent = function(_) {\n    if (!arguments.length) return graticule.extentMinor();\n    return graticule.extentMajor(_).extentMinor(_);\n  };\n\n  graticule.extentMajor = function(_) {\n    if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n    X0 = +_[0][0], X1 = +_[1][0];\n    Y0 = +_[0][1], Y1 = +_[1][1];\n    if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n    return graticule.precision(precision);\n  };\n\n  graticule.extentMinor = function(_) {\n    if (!arguments.length) return [[x0, y0], [x1, y1]];\n    x0 = +_[0][0], x1 = +_[1][0];\n    y0 = +_[0][1], y1 = +_[1][1];\n    if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n    if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n    return graticule.precision(precision);\n  };\n\n  graticule.step = function(_) {\n    if (!arguments.length) return graticule.stepMinor();\n    return graticule.stepMajor(_).stepMinor(_);\n  };\n\n  graticule.stepMajor = function(_) {\n    if (!arguments.length) return [DX, DY];\n    DX = +_[0], DY = +_[1];\n    return graticule;\n  };\n\n  graticule.stepMinor = function(_) {\n    if (!arguments.length) return [dx, dy];\n    dx = +_[0], dy = +_[1];\n    return graticule;\n  };\n\n  graticule.precision = function(_) {\n    if (!arguments.length) return precision;\n    precision = +_;\n    x = graticuleX(y0, y1, 90);\n    y = graticuleY(x0, x1, precision);\n    X = graticuleX(Y0, Y1, 90);\n    Y = graticuleY(X0, X1, precision);\n    return graticule;\n  };\n\n  return graticule\n      .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n      .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n  return graticule()();\n}\n","export default x => x;\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n    areaRingSum = new Adder(),\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar areaStream = {\n  point: noop,\n  lineStart: noop,\n  lineEnd: noop,\n  polygonStart: function() {\n    areaStream.lineStart = areaRingStart;\n    areaStream.lineEnd = areaRingEnd;\n  },\n  polygonEnd: function() {\n    areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n    areaSum.add(abs(areaRingSum));\n    areaRingSum = new Adder();\n  },\n  result: function() {\n    var area = areaSum / 2;\n    areaSum = new Adder();\n    return area;\n  }\n};\n\nfunction areaRingStart() {\n  areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n  areaStream.point = areaPoint;\n  x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n  areaRingSum.add(y0 * x - x0 * y);\n  x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n  areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n    y0 = x0,\n    x1 = -x0,\n    y1 = x1;\n\nvar boundsStream = {\n  point: boundsPoint,\n  lineStart: noop,\n  lineEnd: noop,\n  polygonStart: noop,\n  polygonEnd: noop,\n  result: function() {\n    var bounds = [[x0, y0], [x1, y1]];\n    x1 = y1 = -(y0 = x0 = Infinity);\n    return bounds;\n  }\n};\n\nfunction boundsPoint(x, y) {\n  if (x < x0) x0 = x;\n  if (x > x1) x1 = x;\n  if (y < y0) y0 = y;\n  if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n    Y0 = 0,\n    Z0 = 0,\n    X1 = 0,\n    Y1 = 0,\n    Z1 = 0,\n    X2 = 0,\n    Y2 = 0,\n    Z2 = 0,\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar centroidStream = {\n  point: centroidPoint,\n  lineStart: centroidLineStart,\n  lineEnd: centroidLineEnd,\n  polygonStart: function() {\n    centroidStream.lineStart = centroidRingStart;\n    centroidStream.lineEnd = centroidRingEnd;\n  },\n  polygonEnd: function() {\n    centroidStream.point = centroidPoint;\n    centroidStream.lineStart = centroidLineStart;\n    centroidStream.lineEnd = centroidLineEnd;\n  },\n  result: function() {\n    var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n        : Z1 ? [X1 / Z1, Y1 / Z1]\n        : Z0 ? [X0 / Z0, Y0 / Z0]\n        : [NaN, NaN];\n    X0 = Y0 = Z0 =\n    X1 = Y1 = Z1 =\n    X2 = Y2 = Z2 = 0;\n    return centroid;\n  }\n};\n\nfunction centroidPoint(x, y) {\n  X0 += x;\n  Y0 += y;\n  ++Z0;\n}\n\nfunction centroidLineStart() {\n  centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n  centroidStream.point = centroidPointLine;\n  centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n  var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n  X1 += z * (x0 + x) / 2;\n  Y1 += z * (y0 + y) / 2;\n  Z1 += z;\n  centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n  centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n  centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n  centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n  centroidStream.point = centroidPointRing;\n  centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n  var dx = x - x0,\n      dy = y - y0,\n      z = sqrt(dx * dx + dy * dy);\n\n  X1 += z * (x0 + x) / 2;\n  Y1 += z * (y0 + y) / 2;\n  Z1 += z;\n\n  z = y0 * x - x0 * y;\n  X2 += z * (x0 + x);\n  Y2 += z * (y0 + y);\n  Z2 += z * 3;\n  centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n  this._context = context;\n}\n\nPathContext.prototype = {\n  _radius: 4.5,\n  pointRadius: function(_) {\n    return this._radius = _, this;\n  },\n  polygonStart: function() {\n    this._line = 0;\n  },\n  polygonEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line === 0) this._context.closePath();\n    this._point = NaN;\n  },\n  point: function(x, y) {\n    switch (this._point) {\n      case 0: {\n        this._context.moveTo(x, y);\n        this._point = 1;\n        break;\n      }\n      case 1: {\n        this._context.lineTo(x, y);\n        break;\n      }\n      default: {\n        this._context.moveTo(x + this._radius, y);\n        this._context.arc(x, y, this._radius, 0, tau);\n        break;\n      }\n    }\n  },\n  result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n    lengthRing,\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar lengthStream = {\n  point: noop,\n  lineStart: function() {\n    lengthStream.point = lengthPointFirst;\n  },\n  lineEnd: function() {\n    if (lengthRing) lengthPoint(x00, y00);\n    lengthStream.point = noop;\n  },\n  polygonStart: function() {\n    lengthRing = true;\n  },\n  polygonEnd: function() {\n    lengthRing = null;\n  },\n  result: function() {\n    var length = +lengthSum;\n    lengthSum = new Adder();\n    return length;\n  }\n};\n\nfunction lengthPointFirst(x, y) {\n  lengthStream.point = lengthPoint;\n  x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n  x0 -= x, y0 -= y;\n  lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n  x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","// Simple caching for constant-radius points.\nlet cacheDigits, cacheAppend, cacheRadius, cacheCircle;\n\nexport default class PathString {\n  constructor(digits) {\n    this._append = digits == null ? append : appendRound(digits);\n    this._radius = 4.5;\n    this._ = \"\";\n  }\n  pointRadius(_) {\n    this._radius = +_;\n    return this;\n  }\n  polygonStart() {\n    this._line = 0;\n  }\n  polygonEnd() {\n    this._line = NaN;\n  }\n  lineStart() {\n    this._point = 0;\n  }\n  lineEnd() {\n    if (this._line === 0) this._ += \"Z\";\n    this._point = NaN;\n  }\n  point(x, y) {\n    switch (this._point) {\n      case 0: {\n        this._append`M${x},${y}`;\n        this._point = 1;\n        break;\n      }\n      case 1: {\n        this._append`L${x},${y}`;\n        break;\n      }\n      default: {\n        this._append`M${x},${y}`;\n        if (this._radius !== cacheRadius || this._append !== cacheAppend) {\n          const r = this._radius;\n          const s = this._;\n          this._ = \"\"; // stash the old string so we can cache the circle path fragment\n          this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;\n          cacheRadius = r;\n          cacheAppend = this._append;\n          cacheCircle = this._;\n          this._ = s;\n        }\n        this._ += cacheCircle;\n        break;\n      }\n    }\n  }\n  result() {\n    const result = this._;\n    this._ = \"\";\n    return result.length ? result : null;\n  }\n}\n\nfunction append(strings) {\n  let i = 1;\n  this._ += strings[0];\n  for (const j = strings.length; i < j; ++i) {\n    this._ += arguments[i] + strings[i];\n  }\n}\n\nfunction appendRound(digits) {\n  const d = Math.floor(digits);\n  if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);\n  if (d > 15) return append;\n  if (d !== cacheDigits) {\n    const k = 10 ** d;\n    cacheDigits = d;\n    cacheAppend = function append(strings) {\n      let i = 1;\n      this._ += strings[0];\n      for (const j = strings.length; i < j; ++i) {\n        this._ += Math.round(arguments[i] * k) / k + strings[i];\n      }\n    };\n  }\n  return cacheAppend;\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n  let digits = 3,\n      pointRadius = 4.5,\n      projectionStream,\n      contextStream;\n\n  function path(object) {\n    if (object) {\n      if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n      stream(object, projectionStream(contextStream));\n    }\n    return contextStream.result();\n  }\n\n  path.area = function(object) {\n    stream(object, projectionStream(pathArea));\n    return pathArea.result();\n  };\n\n  path.measure = function(object) {\n    stream(object, projectionStream(pathMeasure));\n    return pathMeasure.result();\n  };\n\n  path.bounds = function(object) {\n    stream(object, projectionStream(pathBounds));\n    return pathBounds.result();\n  };\n\n  path.centroid = function(object) {\n    stream(object, projectionStream(pathCentroid));\n    return pathCentroid.result();\n  };\n\n  path.projection = function(_) {\n    if (!arguments.length) return projection;\n    projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream;\n    return path;\n  };\n\n  path.context = function(_) {\n    if (!arguments.length) return context;\n    contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);\n    if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n    return path;\n  };\n\n  path.pointRadius = function(_) {\n    if (!arguments.length) return pointRadius;\n    pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n    return path;\n  };\n\n  path.digits = function(_) {\n    if (!arguments.length) return digits;\n    if (_ == null) digits = null;\n    else {\n      const d = Math.floor(_);\n      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n      digits = d;\n    }\n    if (context === null) contextStream = new PathString(digits);\n    return path;\n  };\n\n  return path.projection(projection).digits(digits).context(context);\n}\n","export default function(methods) {\n  return {\n    stream: transformer(methods)\n  };\n}\n\nexport function transformer(methods) {\n  return function(stream) {\n    var s = new TransformStream;\n    for (var key in methods) s[key] = methods[key];\n    s.stream = stream;\n    return s;\n  };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n  constructor: TransformStream,\n  point: function(x, y) { this.stream.point(x, y); },\n  sphere: function() { this.stream.sphere(); },\n  lineStart: function() { this.stream.lineStart(); },\n  lineEnd: function() { this.stream.lineEnd(); },\n  polygonStart: function() { this.stream.polygonStart(); },\n  polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n  var clip = projection.clipExtent && projection.clipExtent();\n  projection.scale(150).translate([0, 0]);\n  if (clip != null) projection.clipExtent(null);\n  geoStream(object, projection.stream(boundsStream));\n  fitBounds(boundsStream.result());\n  if (clip != null) projection.clipExtent(clip);\n  return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n  return fit(projection, function(b) {\n    var w = extent[1][0] - extent[0][0],\n        h = extent[1][1] - extent[0][1],\n        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n\nexport function fitSize(projection, size, object) {\n  return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n  return fit(projection, function(b) {\n    var w = +width,\n        k = w / (b[1][0] - b[0][0]),\n        x = (w - k * (b[1][0] + b[0][0])) / 2,\n        y = -k * b[0][1];\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n  return fit(projection, function(b) {\n    var h = +height,\n        k = h / (b[1][1] - b[0][1]),\n        x = -k * b[0][0],\n        y = (h - k * (b[1][1] + b[0][1])) / 2;\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n    cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n  return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n  return transformer({\n    point: function(x, y) {\n      x = project(x, y);\n      this.stream.point(x[0], x[1]);\n    }\n  });\n}\n\nfunction resample(project, delta2) {\n\n  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n    var dx = x1 - x0,\n        dy = y1 - y0,\n        d2 = dx * dx + dy * dy;\n    if (d2 > 4 * delta2 && depth--) {\n      var a = a0 + a1,\n          b = b0 + b1,\n          c = c0 + c1,\n          m = sqrt(a * a + b * b + c * c),\n          phi2 = asin(c /= m),\n          lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n          p = project(lambda2, phi2),\n          x2 = p[0],\n          y2 = p[1],\n          dx2 = x2 - x0,\n          dy2 = y2 - y0,\n          dz = dy * dx2 - dx * dy2;\n      if (dz * dz / d2 > delta2 // perpendicular projected distance\n          || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n        stream.point(x2, y2);\n        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n      }\n    }\n  }\n  return function(stream) {\n    var lambda00, x00, y00, a00, b00, c00, // first point\n        lambda0, x0, y0, a0, b0, c0; // previous point\n\n    var resampleStream = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n    };\n\n    function point(x, y) {\n      x = project(x, y);\n      stream.point(x[0], x[1]);\n    }\n\n    function lineStart() {\n      x0 = NaN;\n      resampleStream.point = linePoint;\n      stream.lineStart();\n    }\n\n    function linePoint(lambda, phi) {\n      var c = cartesian([lambda, phi]), p = project(lambda, phi);\n      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n      stream.point(x0, y0);\n    }\n\n    function lineEnd() {\n      resampleStream.point = point;\n      stream.lineEnd();\n    }\n\n    function ringStart() {\n      lineStart();\n      resampleStream.point = ringPoint;\n      resampleStream.lineEnd = ringEnd;\n    }\n\n    function ringPoint(lambda, phi) {\n      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n      resampleStream.point = linePoint;\n    }\n\n    function ringEnd() {\n      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n      resampleStream.lineEnd = lineEnd;\n      lineEnd();\n    }\n\n    return resampleStream;\n  };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n  point: function(x, y) {\n    this.stream.point(x * radians, y * radians);\n  }\n});\n\nfunction transformRotate(rotate) {\n  return transformer({\n    point: function(x, y) {\n      var r = rotate(x, y);\n      return this.stream.point(r[0], r[1]);\n    }\n  });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n  function transform(x, y) {\n    x *= sx; y *= sy;\n    return [dx + k * x, dy - k * y];\n  }\n  transform.invert = function(x, y) {\n    return [(x - dx) / k * sx, (dy - y) / k * sy];\n  };\n  return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n  if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n  var cosAlpha = cos(alpha),\n      sinAlpha = sin(alpha),\n      a = cosAlpha * k,\n      b = sinAlpha * k,\n      ai = cosAlpha / k,\n      bi = sinAlpha / k,\n      ci = (sinAlpha * dy - cosAlpha * dx) / k,\n      fi = (sinAlpha * dx + cosAlpha * dy) / k;\n  function transform(x, y) {\n    x *= sx; y *= sy;\n    return [a * x - b * y + dx, dy - b * x - a * y];\n  }\n  transform.invert = function(x, y) {\n    return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n  };\n  return transform;\n}\n\nexport default function projection(project) {\n  return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n  var project,\n      k = 150, // scale\n      x = 480, y = 250, // translate\n      lambda = 0, phi = 0, // center\n      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n      alpha = 0, // post-rotate angle\n      sx = 1, // reflectX\n      sy = 1, // reflectX\n      theta = null, preclip = clipAntimeridian, // pre-clip angle\n      x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n      delta2 = 0.5, // precision\n      projectResample,\n      projectTransform,\n      projectRotateTransform,\n      cache,\n      cacheStream;\n\n  function projection(point) {\n    return projectRotateTransform(point[0] * radians, point[1] * radians);\n  }\n\n  function invert(point) {\n    point = projectRotateTransform.invert(point[0], point[1]);\n    return point && [point[0] * degrees, point[1] * degrees];\n  }\n\n  projection.stream = function(stream) {\n    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n  };\n\n  projection.preclip = function(_) {\n    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n  };\n\n  projection.postclip = function(_) {\n    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n  };\n\n  projection.clipAngle = function(_) {\n    return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n  };\n\n  projection.clipExtent = function(_) {\n    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n  };\n\n  projection.scale = function(_) {\n    return arguments.length ? (k = +_, recenter()) : k;\n  };\n\n  projection.translate = function(_) {\n    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n  };\n\n  projection.center = function(_) {\n    return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n  };\n\n  projection.rotate = function(_) {\n    return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n  };\n\n  projection.angle = function(_) {\n    return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n  };\n\n  projection.reflectX = function(_) {\n    return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n  };\n\n  projection.reflectY = function(_) {\n    return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n  };\n\n  projection.precision = function(_) {\n    return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n  };\n\n  projection.fitExtent = function(extent, object) {\n    return fitExtent(projection, extent, object);\n  };\n\n  projection.fitSize = function(size, object) {\n    return fitSize(projection, size, object);\n  };\n\n  projection.fitWidth = function(width, object) {\n    return fitWidth(projection, width, object);\n  };\n\n  projection.fitHeight = function(height, object) {\n    return fitHeight(projection, height, object);\n  };\n\n  function recenter() {\n    var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n        transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n    rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n    projectTransform = compose(project, transform);\n    projectRotateTransform = compose(rotate, projectTransform);\n    projectResample = resample(projectTransform, delta2);\n    return reset();\n  }\n\n  function reset() {\n    cache = cacheStream = null;\n    return projection;\n  }\n\n  return function() {\n    project = projectAt.apply(this, arguments);\n    projection.invert = project.invert && invert;\n    return recenter();\n  };\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n  var phi0 = 0,\n      phi1 = pi / 3,\n      m = projectionMutator(projectAt),\n      p = m(phi0, phi1);\n\n  p.parallels = function(_) {\n    return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n  };\n\n  return p;\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n  var cosPhi0 = cos(phi0);\n\n  function forward(lambda, phi) {\n    return [lambda * cosPhi0, sin(phi) / cosPhi0];\n  }\n\n  forward.invert = function(x, y) {\n    return [x / cosPhi0, asin(y * cosPhi0)];\n  };\n\n  return forward;\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n  var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n  // Are the parallels symmetrical around the Equator?\n  if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n  var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n  function project(x, y) {\n    var r = sqrt(c - 2 * n * sin(y)) / n;\n    return [r * sin(x *= n), r0 - r * cos(x)];\n  }\n\n  project.invert = function(x, y) {\n    var r0y = r0 - y,\n        l = atan2(x, abs(r0y)) * sign(r0y);\n    if (r0y * n < 0)\n      l -= pi * sign(x) * sign(r0y);\n    return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n  };\n\n  return project;\n}\n\nexport default function() {\n  return conicProjection(conicEqualAreaRaw)\n      .scale(155.424)\n      .center([0, 33.6442]);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n  return conicEqualArea()\n      .parallels([29.5, 45.5])\n      .scale(1070)\n      .translate([480, 250])\n      .rotate([96, 0])\n      .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n  var n = streams.length;\n  return {\n    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n  };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n  var cache,\n      cacheStream,\n      lower48 = albers(), lower48Point,\n      alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n      hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n      point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n  function albersUsa(coordinates) {\n    var x = coordinates[0], y = coordinates[1];\n    return point = null,\n        (lower48Point.point(x, y), point)\n        || (alaskaPoint.point(x, y), point)\n        || (hawaiiPoint.point(x, y), point);\n  }\n\n  albersUsa.invert = function(coordinates) {\n    var k = lower48.scale(),\n        t = lower48.translate(),\n        x = (coordinates[0] - t[0]) / k,\n        y = (coordinates[1] - t[1]) / k;\n    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n        : lower48).invert(coordinates);\n  };\n\n  albersUsa.stream = function(stream) {\n    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n  };\n\n  albersUsa.precision = function(_) {\n    if (!arguments.length) return lower48.precision();\n    lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n    return reset();\n  };\n\n  albersUsa.scale = function(_) {\n    if (!arguments.length) return lower48.scale();\n    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n    return albersUsa.translate(lower48.translate());\n  };\n\n  albersUsa.translate = function(_) {\n    if (!arguments.length) return lower48.translate();\n    var k = lower48.scale(), x = +_[0], y = +_[1];\n\n    lower48Point = lower48\n        .translate(_)\n        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n        .stream(pointStream);\n\n    alaskaPoint = alaska\n        .translate([x - 0.307 * k, y + 0.201 * k])\n        .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n        .stream(pointStream);\n\n    hawaiiPoint = hawaii\n        .translate([x - 0.205 * k, y + 0.212 * k])\n        .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n        .stream(pointStream);\n\n    return reset();\n  };\n\n  albersUsa.fitExtent = function(extent, object) {\n    return fitExtent(albersUsa, extent, object);\n  };\n\n  albersUsa.fitSize = function(size, object) {\n    return fitSize(albersUsa, size, object);\n  };\n\n  albersUsa.fitWidth = function(width, object) {\n    return fitWidth(albersUsa, width, object);\n  };\n\n  albersUsa.fitHeight = function(height, object) {\n    return fitHeight(albersUsa, height, object);\n  };\n\n  function reset() {\n    cache = cacheStream = null;\n    return albersUsa;\n  }\n\n  return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n  return function(x, y) {\n    var cx = cos(x),\n        cy = cos(y),\n        k = scale(cx * cy);\n        if (k === Infinity) return [2, 0];\n    return [\n      k * cy * sin(x),\n      k * sin(y)\n    ];\n  }\n}\n\nexport function azimuthalInvert(angle) {\n  return function(x, y) {\n    var z = sqrt(x * x + y * y),\n        c = angle(z),\n        sc = sin(c),\n        cc = cos(c);\n    return [\n      atan2(x * sc, z * cc),\n      asin(z && y * sc / z)\n    ];\n  }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n  return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n  return 2 * asin(z / 2);\n});\n\nexport default function() {\n  return projection(azimuthalEqualAreaRaw)\n      .scale(124.75)\n      .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n  return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n  return z;\n});\n\nexport default function() {\n  return projection(azimuthalEquidistantRaw)\n      .scale(79.4188)\n      .clipAngle(180 - 1e-3);\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n  return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n  return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n  return mercatorProjection(mercatorRaw)\n      .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n  var m = projection(project),\n      center = m.center,\n      scale = m.scale,\n      translate = m.translate,\n      clipExtent = m.clipExtent,\n      x0 = null, y0, x1, y1; // clip extent\n\n  m.scale = function(_) {\n    return arguments.length ? (scale(_), reclip()) : scale();\n  };\n\n  m.translate = function(_) {\n    return arguments.length ? (translate(_), reclip()) : translate();\n  };\n\n  m.center = function(_) {\n    return arguments.length ? (center(_), reclip()) : center();\n  };\n\n  m.clipExtent = function(_) {\n    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n  };\n\n  function reclip() {\n    var k = pi * scale(),\n        t = m(rotation(m.rotate()).invert([0, 0]));\n    return clipExtent(x0 == null\n        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n  }\n\n  return reclip();\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n  return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n  var cy0 = cos(y0),\n      n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n      f = cy0 * pow(tany(y0), n) / n;\n\n  if (!n) return mercatorRaw;\n\n  function project(x, y) {\n    if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n    else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n    var r = f / pow(tany(y), n);\n    return [r * sin(n * x), f - r * cos(n * x)];\n  }\n\n  project.invert = function(x, y) {\n    var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),\n      l = atan2(x, abs(fy)) * sign(fy);\n    if (fy * n < 0)\n      l -= pi * sign(x) * sign(fy);\n    return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n  };\n\n  return project;\n}\n\nexport default function() {\n  return conicProjection(conicConformalRaw)\n      .scale(109.5)\n      .parallels([30, 30]);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n  return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n  return projection(equirectangularRaw)\n      .scale(152.63);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n  var cy0 = cos(y0),\n      n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n      g = cy0 / n + y0;\n\n  if (abs(n) < epsilon) return equirectangularRaw;\n\n  function project(x, y) {\n    var gy = g - y, nx = n * x;\n    return [gy * sin(nx), g - gy * cos(nx)];\n  }\n\n  project.invert = function(x, y) {\n    var gy = g - y,\n        l = atan2(x, abs(gy)) * sign(gy);\n    if (gy * n < 0)\n      l -= pi * sign(x) * sign(gy);\n    return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n  };\n\n  return project;\n}\n\nexport default function() {\n  return conicProjection(conicEquidistantRaw)\n      .scale(131.154)\n      .center([0, 13.9389]);\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n    A2 = -0.081106,\n    A3 = 0.000893,\n    A4 = 0.003796,\n    M = sqrt(3) / 2,\n    iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n  var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n  return [\n    lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n    l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n  ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n  var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n  for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n    fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n    fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n    l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n    if (abs(delta) < epsilon2) break;\n  }\n  return [\n    M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n    asin(sin(l) / M)\n  ];\n};\n\nexport default function() {\n  return projection(equalEarthRaw)\n      .scale(177.158);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n  var cy = cos(y), k = cos(x) * cy;\n  return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n  return projection(gnomonicRaw)\n      .scale(144.049)\n      .clipAngle(60);\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n  var phi2 = phi * phi, phi4 = phi2 * phi2;\n  return [\n    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n  ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n  var phi = y, i = 25, delta;\n  do {\n    var phi2 = phi * phi, phi4 = phi2 * phi2;\n    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n  } while (abs(delta) > epsilon && --i > 0);\n  return [\n    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n    phi\n  ];\n};\n\nexport default function() {\n  return projection(naturalEarth1Raw)\n      .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n  return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n  return projection(orthographicRaw)\n      .scale(249.5)\n      .clipAngle(90 + epsilon);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n  var cy = cos(y), k = 1 + cos(x) * cy;\n  return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n  return 2 * atan(z);\n});\n\nexport default function() {\n  return projection(stereographicRaw)\n      .scale(250)\n      .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n  return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n  return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n  var m = mercatorProjection(transverseMercatorRaw),\n      center = m.center,\n      rotate = m.rotate;\n\n  m.center = function(_) {\n    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n  };\n\n  m.rotate = function(_) {\n    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n  };\n\n  return rotate([0, 0, 90])\n      .scale(159.155);\n}\n",null,"export default function(specifier) {\n  var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n  while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n  return colors;\n}\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n    B = +1.78277,\n    C = -0.29227,\n    D = -0.90649,\n    E = +1.97294,\n    ED = E * D,\n    EB = E * B,\n    BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n      bl = b - l,\n      k = (E * (g - l) - C * bl) / D,\n      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n      h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n        l = +this.l,\n        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n        cosh = Math.cos(h),\n        sinh = Math.sin(h);\n    return new Rgb(\n      255 * (l + a * (A * cosh + B * sinh)),\n      255 * (l + a * (C * cosh + D * sinh)),\n      255 * (l + a * (E * cosh)),\n      this.opacity\n    );\n  }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n  return (function cubehelixGamma(y) {\n    y = +y;\n\n    function cubehelix(start, end) {\n      var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n          s = color(start.s, end.s),\n          l = color(start.l, end.l),\n          opacity = color(start.opacity, end.opacity);\n      return function(t) {\n        start.h = h(t);\n        start.s = s(t);\n        start.l = l(Math.pow(t, y));\n        start.opacity = opacity(t);\n        return start + \"\";\n      };\n    }\n\n    cubehelix.gamma = cubehelixGamma;\n\n    return cubehelix;\n  })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"d8b365f5f5f55ab4ac\",\n  \"a6611adfc27d80cdc1018571\",\n  \"a6611adfc27df5f5f580cdc1018571\",\n  \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n  \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n  \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n  \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n  \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n  \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"af8dc3f7f7f77fbf7b\",\n  \"7b3294c2a5cfa6dba0008837\",\n  \"7b3294c2a5cff7f7f7a6dba0008837\",\n  \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n  \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n  \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n  \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n  \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n  \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e9a3c9f7f7f7a1d76a\",\n  \"d01c8bf1b6dab8e1864dac26\",\n  \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n  \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n  \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n  \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n  \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n  \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n  \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"998ec3f7f7f7f1a340\",\n  \"5e3c99b2abd2fdb863e66101\",\n  \"5e3c99b2abd2f7f7f7fdb863e66101\",\n  \"542788998ec3d8daebfee0b6f1a340b35806\",\n  \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n  \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n  \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n  \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n  \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"ef8a62f7f7f767a9cf\",\n  \"ca0020f4a58292c5de0571b0\",\n  \"ca0020f4a582f7f7f792c5de0571b0\",\n  \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n  \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n  \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n  \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n  \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n  \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"ef8a62ffffff999999\",\n  \"ca0020f4a582bababa404040\",\n  \"ca0020f4a582ffffffbababa404040\",\n  \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n  \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n  \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n  \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n  \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n  \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fc8d59ffffbf91bfdb\",\n  \"d7191cfdae61abd9e92c7bb6\",\n  \"d7191cfdae61ffffbfabd9e92c7bb6\",\n  \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n  \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n  \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n  \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n  \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n  \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fc8d59ffffbf91cf60\",\n  \"d7191cfdae61a6d96a1a9641\",\n  \"d7191cfdae61ffffbfa6d96a1a9641\",\n  \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n  \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n  \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n  \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n  \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n  \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fc8d59ffffbf99d594\",\n  \"d7191cfdae61abdda42b83ba\",\n  \"d7191cfdae61ffffbfabdda42b83ba\",\n  \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n  \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n  \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n  \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n  \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n  \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e5f5f999d8c92ca25f\",\n  \"edf8fbb2e2e266c2a4238b45\",\n  \"edf8fbb2e2e266c2a42ca25f006d2c\",\n  \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n  \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n  \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n  \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e0ecf49ebcda8856a7\",\n  \"edf8fbb3cde38c96c688419d\",\n  \"edf8fbb3cde38c96c68856a7810f7c\",\n  \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n  \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n  \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n  \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e0f3dba8ddb543a2ca\",\n  \"f0f9e8bae4bc7bccc42b8cbe\",\n  \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n  \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n  \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n  \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n  \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fee8c8fdbb84e34a33\",\n  \"fef0d9fdcc8afc8d59d7301f\",\n  \"fef0d9fdcc8afc8d59e34a33b30000\",\n  \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n  \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n  \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n  \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"ece2f0a6bddb1c9099\",\n  \"f6eff7bdc9e167a9cf02818a\",\n  \"f6eff7bdc9e167a9cf1c9099016c59\",\n  \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n  \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n  \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n  \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"ece7f2a6bddb2b8cbe\",\n  \"f1eef6bdc9e174a9cf0570b0\",\n  \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n  \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n  \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n  \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n  \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e7e1efc994c7dd1c77\",\n  \"f1eef6d7b5d8df65b0ce1256\",\n  \"f1eef6d7b5d8df65b0dd1c77980043\",\n  \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n  \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n  \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n  \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fde0ddfa9fb5c51b8a\",\n  \"feebe2fbb4b9f768a1ae017e\",\n  \"feebe2fbb4b9f768a1c51b8a7a0177\",\n  \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n  \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n  \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n  \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"edf8b17fcdbb2c7fb8\",\n  \"ffffcca1dab441b6c4225ea8\",\n  \"ffffcca1dab441b6c42c7fb8253494\",\n  \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n  \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n  \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n  \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"f7fcb9addd8e31a354\",\n  \"ffffccc2e69978c679238443\",\n  \"ffffccc2e69978c67931a354006837\",\n  \"ffffccd9f0a3addd8e78c67931a354006837\",\n  \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n  \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n  \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fff7bcfec44fd95f0e\",\n  \"ffffd4fed98efe9929cc4c02\",\n  \"ffffd4fed98efe9929d95f0e993404\",\n  \"ffffd4fee391fec44ffe9929d95f0e993404\",\n  \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n  \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n  \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"ffeda0feb24cf03b20\",\n  \"ffffb2fecc5cfd8d3ce31a1c\",\n  \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n  \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n  \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n  \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n  \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"deebf79ecae13182bd\",\n  \"eff3ffbdd7e76baed62171b5\",\n  \"eff3ffbdd7e76baed63182bd08519c\",\n  \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n  \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n  \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n  \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"e5f5e0a1d99b31a354\",\n  \"edf8e9bae4b374c476238b45\",\n  \"edf8e9bae4b374c47631a354006d2c\",\n  \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n  \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n  \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n  \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"f0f0f0bdbdbd636363\",\n  \"f7f7f7cccccc969696525252\",\n  \"f7f7f7cccccc969696636363252525\",\n  \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n  \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n  \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n  \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"efedf5bcbddc756bb1\",\n  \"f2f0f7cbc9e29e9ac86a51a3\",\n  \"f2f0f7cbc9e29e9ac8756bb154278f\",\n  \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n  \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n  \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n  \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fee0d2fc9272de2d26\",\n  \"fee5d9fcae91fb6a4acb181d\",\n  \"fee5d9fcae91fb6a4ade2d26a50f15\",\n  \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n  \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n  \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n  \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n  \"fee6cefdae6be6550d\",\n  \"feeddefdbe85fd8d3cd94701\",\n  \"feeddefdbe85fd8d3ce6550da63603\",\n  \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n  \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n  \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n  \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n  t = Math.max(0, Math.min(1, t));\n  return \"rgb(\"\n      + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n      + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n      + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n      + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n  if (t < 0 || t > 1) t -= Math.floor(t);\n  var ts = Math.abs(t - 0.5);\n  c.h = 360 * t - 100;\n  c.s = 1.5 - 1.5 * ts;\n  c.l = 0.8 - 0.9 * ts;\n  return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n    pi_1_3 = Math.PI / 3,\n    pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n  var x;\n  t = (0.5 - t) * Math.PI;\n  c.r = 255 * (x = Math.sin(t)) * x;\n  c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n  c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n  return c + \"\";\n}\n","export default function(t) {\n  t = Math.max(0, Math.min(1, t));\n  return \"rgb(\"\n      + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n      + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n      + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n      + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n  var n = range.length;\n  return function(t) {\n    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n  };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n",null,null,null,null,null,null,null,null],"names":["degrees","radians","lengthSum","lengthStream","lengthPointFirst","lengthPoint","stream","x00","y00","x0","y0","pathArea","pathMeasure","pathBounds","pathCentroid","resample","conicEqualArea","albers","lookup","Scale","cubehelix","rgb","colorRgb","basis","colorCubehelix","color","interpolateRgbBasis","scheme","ramp","interpolateCubehelixLong","c","LinearScale","LogarithmicScale","interpolateCool","interpolateInferno","interpolateMagma","interpolatePlasma","interpolateWarm","merge","drawPoint","Element","BarElement","DatasetController","valueOrDefault","geoGraticule10","geoGraticule","clipArea","unclipArea","registry","Chart","PointElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97]}