{"version":3,"sources":["jsdelivr-header.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-array/src/ascending.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-array/src/bisector.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-array/src/bisect.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-dispatch/src/dispatch.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/namespaces.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/namespace.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/creator.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selector.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/select.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selectorAll.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/selectAll.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/matcher.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/filter.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/sparse.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/enter.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/constant.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/data.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/exit.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/join.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/merge.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/order.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/sort.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/call.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/nodes.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/node.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/size.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/empty.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/each.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/attr.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/window.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/style.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/property.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/classed.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/text.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/html.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/raise.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/lower.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/append.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/insert.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/remove.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/clone.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/datum.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/on.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/dispatch.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/selection/index.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/select.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/sourceEvent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/point.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/mouse.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-selection/src/touch.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-drag/src/noevent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-drag/src/nodrag.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-color/src/define.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-color/src/color.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-color/src/math.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-color/src/lab.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-color/src/cubehelix.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/basis.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/constant.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/color.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/rgb.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/number.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/string.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/transform/decompose.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/transform/parse.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/transform/index.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/zoom.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-interpolate/src/cubehelix.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-timer/src/timer.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-timer/src/timeout.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/schedule.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/interrupt.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/selection/interrupt.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/tween.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/interpolate.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/attr.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/attrTween.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/delay.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/duration.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/ease.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/filter.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/merge.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/on.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/remove.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/select.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/selectAll.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/selection.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/style.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/styleTween.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/text.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/textTween.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/transition.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/end.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/transition/index.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-ease/src/cubic.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-ease/src/sin.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-ease/src/elastic.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/selection/transition.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-transition/src/selection/index.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-chord/src/math.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-path/src/path.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-collection/src/map.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-collection/src/set.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-dsv/src/dsv.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-dsv/src/csv.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-dsv/src/tsv.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-dsv/src/autoType.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/add.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/cover.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/data.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/extent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/quad.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/find.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/remove.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/root.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/size.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/visit.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/visitAfter.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/x.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/y.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-quadtree/src/quadtree.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-force/src/simulation.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatDecimal.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/exponent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatGroup.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatNumerals.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatSpecifier.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatPrefixAuto.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatTrim.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatRounded.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/formatTypes.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/identity.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/locale.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-format/src/defaultLocale.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/adder.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/math.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/area.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/bounds.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/polygonContains.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/length.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/path/area.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-geo/src/path/measure.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/interval.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/millisecond.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/duration.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/second.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/minute.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/hour.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/day.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/week.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/month.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/year.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcMinute.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcHour.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcDay.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcWeek.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcMonth.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time/src/utcYear.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time-format/src/locale.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time-format/src/defaultLocale.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time-format/src/isoFormat.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-time-format/src/isoParse.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/colors.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/ramp.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/category10.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Accent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Dark2.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Paired.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Set1.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Set2.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Set3.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/BrBG.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/PRGn.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/PiYG.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/PuOr.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/RdBu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/RdGy.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/diverging/Spectral.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-shape/src/math.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-shape/src/curve/monotone.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-zoom/src/constant.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-zoom/src/event.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-zoom/src/transform.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-zoom/src/noevent.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/d3-zoom/src/zoom.js","/npm/@xhkz/react-seat-map@0.0.1/node_modules/style-inject/dist/style-inject.es.js","/npm/@xhkz/react-seat-map@0.0.1/src/index.js"],"names":[],"mappings":"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","file":"/npm/@xhkz/react-seat-map@0.0.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@xhkz/react-seat-map@0.0.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export default function(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n  if (compare.length === 1) compare = ascendingComparator(compare);\n  return {\n    left: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      }\n      return lo;\n    },\n    right: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) > 0) hi = mid;\n        else lo = mid + 1;\n      }\n      return lo;\n    }\n  };\n}\n\nfunction ascendingComparator(f) {\n  return function(d, x) {\n    return ascending(f(d), x);\n  };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n  svg: \"http://www.w3.org/2000/svg\",\n  xhtml: xhtml,\n  xlink: \"http://www.w3.org/1999/xlink\",\n  xml: \"http://www.w3.org/XML/1998/namespace\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n  var prefix = name += \"\", i = prefix.indexOf(\":\");\n  if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n  return function() {\n    var document = this.ownerDocument,\n        uri = this.namespaceURI;\n    return uri === xhtml && document.documentElement.namespaceURI === xhtml\n        ? document.createElement(name)\n        : document.createElementNS(uri, name);\n  };\n}\n\nfunction creatorFixed(fullname) {\n  return function() {\n    return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n  };\n}\n\nexport default function(name) {\n  var fullname = namespace(name);\n  return (fullname.local\n      ? creatorFixed\n      : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n  return selector == null ? none : function() {\n    return this.querySelector(selector);\n  };\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n","function empty() {\n  return [];\n}\n\nexport default function(selector) {\n  return selector == null ? empty : function() {\n    return this.querySelectorAll(selector);\n  };\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n  if (typeof select !== \"function\") select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        subgroups.push(select.call(node, node.__data__, i, group));\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n  return function() {\n    return this.matches(selector);\n  };\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n  return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n  return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n  this.ownerDocument = parent.ownerDocument;\n  this.namespaceURI = parent.namespaceURI;\n  this._next = null;\n  this._parent = parent;\n  this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n  constructor: EnterNode,\n  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n  querySelector: function(selector) { return this._parent.querySelector(selector); },\n  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n  return function() {\n    return x;\n  };\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n  var i = 0,\n      node,\n      groupLength = group.length,\n      dataLength = data.length;\n\n  // Put any non-null nodes that fit into update.\n  // Put any null nodes into enter.\n  // Put any remaining data into enter.\n  for (; i < dataLength; ++i) {\n    if (node = group[i]) {\n      node.__data__ = data[i];\n      update[i] = node;\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Put any non-null nodes that don’t fit into exit.\n  for (; i < groupLength; ++i) {\n    if (node = group[i]) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n  var i,\n      node,\n      nodeByKeyValue = {},\n      groupLength = group.length,\n      dataLength = data.length,\n      keyValues = new Array(groupLength),\n      keyValue;\n\n  // Compute the key for each node.\n  // If multiple nodes have the same key, the duplicates are added to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if (node = group[i]) {\n      keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n      if (keyValue in nodeByKeyValue) {\n        exit[i] = node;\n      } else {\n        nodeByKeyValue[keyValue] = node;\n      }\n    }\n  }\n\n  // Compute the key for each datum.\n  // If there a node associated with this key, join and add it to update.\n  // If there is not (or the key is a duplicate), add it to enter.\n  for (i = 0; i < dataLength; ++i) {\n    keyValue = keyPrefix + key.call(parent, data[i], i, data);\n    if (node = nodeByKeyValue[keyValue]) {\n      update[i] = node;\n      node.__data__ = data[i];\n      nodeByKeyValue[keyValue] = null;\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Add any remaining nodes that were not bound to data to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n      exit[i] = node;\n    }\n  }\n}\n\nexport default function(value, key) {\n  if (!value) {\n    data = new Array(this.size()), j = -1;\n    this.each(function(d) { data[++j] = d; });\n    return data;\n  }\n\n  var bind = key ? bindKey : bindIndex,\n      parents = this._parents,\n      groups = this._groups;\n\n  if (typeof value !== \"function\") value = constant(value);\n\n  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n    var parent = parents[j],\n        group = groups[j],\n        groupLength = group.length,\n        data = value.call(parent, parent && parent.__data__, j, parents),\n        dataLength = data.length,\n        enterGroup = enter[j] = new Array(dataLength),\n        updateGroup = update[j] = new Array(dataLength),\n        exitGroup = exit[j] = new Array(groupLength);\n\n    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n    // Now connect the enter nodes to their following update node, such that\n    // appendChild can insert the materialized enter node before this node,\n    // rather than at the end of the parent node.\n    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n      if (previous = enterGroup[i0]) {\n        if (i0 >= i1) i1 = i0 + 1;\n        while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n        previous._next = next || null;\n      }\n    }\n  }\n\n  update = new Selection(update, parents);\n  update._enter = enter;\n  update._exit = exit;\n  return update;\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n  return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n  var enter = this.enter(), update = this, exit = this.exit();\n  enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n  if (onupdate != null) update = onupdate(update);\n  if (onexit == null) exit.remove(); else onexit(exit);\n  return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Selection(merges, this._parents);\n}\n","export default function() {\n\n  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n      if (node = group[i]) {\n        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n        next = node;\n      }\n    }\n  }\n\n  return this;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n  if (!compare) compare = ascending;\n\n  function compareNode(a, b) {\n    return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n  }\n\n  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        sortgroup[i] = node;\n      }\n    }\n    sortgroup.sort(compareNode);\n  }\n\n  return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n  var callback = arguments[0];\n  arguments[0] = this;\n  callback.apply(null, arguments);\n  return this;\n}\n","export default function() {\n  var nodes = new Array(this.size()), i = -1;\n  this.each(function() { nodes[++i] = this; });\n  return nodes;\n}\n","export default function() {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n      var node = group[i];\n      if (node) return node;\n    }\n  }\n\n  return null;\n}\n","export default function() {\n  var size = 0;\n  this.each(function() { ++size; });\n  return size;\n}\n","export default function() {\n  return !this.node();\n}\n","export default function(callback) {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) callback.call(node, node.__data__, i, group);\n    }\n  }\n\n  return this;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, value) {\n  return function() {\n    this.setAttribute(name, value);\n  };\n}\n\nfunction attrConstantNS(fullname, value) {\n  return function() {\n    this.setAttributeNS(fullname.space, fullname.local, value);\n  };\n}\n\nfunction attrFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttribute(name);\n    else this.setAttribute(name, v);\n  };\n}\n\nfunction attrFunctionNS(fullname, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n    else this.setAttributeNS(fullname.space, fullname.local, v);\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name);\n\n  if (arguments.length < 2) {\n    var node = this.node();\n    return fullname.local\n        ? node.getAttributeNS(fullname.space, fullname.local)\n        : node.getAttribute(fullname);\n  }\n\n  return this.each((value == null\n      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)\n      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n      || (node.document && node) // node is a Window\n      || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, value, priority) {\n  return function() {\n    this.style.setProperty(name, value, priority);\n  };\n}\n\nfunction styleFunction(name, value, priority) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.style.removeProperty(name);\n    else this.style.setProperty(name, v, priority);\n  };\n}\n\nexport default function(name, value, priority) {\n  return arguments.length > 1\n      ? this.each((value == null\n            ? styleRemove : typeof value === \"function\"\n            ? styleFunction\n            : styleConstant)(name, value, priority == null ? \"\" : priority))\n      : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n  return node.style.getPropertyValue(name)\n      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n  return function() {\n    delete this[name];\n  };\n}\n\nfunction propertyConstant(name, value) {\n  return function() {\n    this[name] = value;\n  };\n}\n\nfunction propertyFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) delete this[name];\n    else this[name] = v;\n  };\n}\n\nexport default function(name, value) {\n  return arguments.length > 1\n      ? this.each((value == null\n          ? propertyRemove : typeof value === \"function\"\n          ? propertyFunction\n          : propertyConstant)(name, value))\n      : this.node()[name];\n}\n","function classArray(string) {\n  return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n  return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n  this._node = node;\n  this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n  add: function(name) {\n    var i = this._names.indexOf(name);\n    if (i < 0) {\n      this._names.push(name);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  remove: function(name) {\n    var i = this._names.indexOf(name);\n    if (i >= 0) {\n      this._names.splice(i, 1);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  contains: function(name) {\n    return this._names.indexOf(name) >= 0;\n  }\n};\n\nfunction classedAdd(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n  return function() {\n    classedAdd(this, names);\n  };\n}\n\nfunction classedFalse(names) {\n  return function() {\n    classedRemove(this, names);\n  };\n}\n\nfunction classedFunction(names, value) {\n  return function() {\n    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n  };\n}\n\nexport default function(name, value) {\n  var names = classArray(name + \"\");\n\n  if (arguments.length < 2) {\n    var list = classList(this.node()), i = -1, n = names.length;\n    while (++i < n) if (!list.contains(names[i])) return false;\n    return true;\n  }\n\n  return this.each((typeof value === \"function\"\n      ? classedFunction : value\n      ? classedTrue\n      : classedFalse)(names, value));\n}\n","function textRemove() {\n  this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.textContent = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? textRemove : (typeof value === \"function\"\n          ? textFunction\n          : textConstant)(value))\n      : this.node().textContent;\n}\n","function htmlRemove() {\n  this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n  return function() {\n    this.innerHTML = value;\n  };\n}\n\nfunction htmlFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.innerHTML = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? htmlRemove : (typeof value === \"function\"\n          ? htmlFunction\n          : htmlConstant)(value))\n      : this.node().innerHTML;\n}\n","function raise() {\n  if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n  return this.each(raise);\n}\n","function lower() {\n  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n  return this.each(lower);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n  var create = typeof name === \"function\" ? name : creator(name);\n  return this.select(function() {\n    return this.appendChild(create.apply(this, arguments));\n  });\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n  return null;\n}\n\nexport default function(name, before) {\n  var create = typeof name === \"function\" ? name : creator(name),\n      select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n  return this.select(function() {\n    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n  });\n}\n","function remove() {\n  var parent = this.parentNode;\n  if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n  return this.each(remove);\n}\n","function selection_cloneShallow() {\n  var clone = this.cloneNode(false), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n  var clone = this.cloneNode(true), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n  return arguments.length\n      ? this.property(\"__data__\", value)\n      : this.node().__data__;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n  var element = document.documentElement;\n  if (!(\"onmouseenter\" in element)) {\n    filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n  }\n}\n\nfunction filterContextListener(listener, index, group) {\n  listener = contextListener(listener, index, group);\n  return function(event) {\n    var related = event.relatedTarget;\n    if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n      listener.call(this, event);\n    }\n  };\n}\n\nfunction contextListener(listener, index, group) {\n  return function(event1) {\n    var event0 = event; // Events can be reentrant (e.g., focus).\n    event = event1;\n    try {\n      listener.call(this, this.__data__, index, group);\n    } finally {\n      event = event0;\n    }\n  };\n}\n\nfunction parseTypenames(typenames) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    return {type: t, name: name};\n  });\n}\n\nfunction onRemove(typename) {\n  return function() {\n    var on = this.__on;\n    if (!on) return;\n    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.capture);\n      } else {\n        on[++i] = o;\n      }\n    }\n    if (++i) on.length = i;\n    else delete this.__on;\n  };\n}\n\nfunction onAdd(typename, value, capture) {\n  var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n  return function(d, i, group) {\n    var on = this.__on, o, listener = wrap(value, i, group);\n    if (on) for (var j = 0, m = on.length; j < m; ++j) {\n      if ((o = on[j]).type === typename.type && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.capture);\n        this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n        o.value = value;\n        return;\n      }\n    }\n    this.addEventListener(typename.type, listener, capture);\n    o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n    if (!on) this.__on = [o];\n    else on.push(o);\n  };\n}\n\nexport default function(typename, value, capture) {\n  var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n  if (arguments.length < 2) {\n    var on = this.node().__on;\n    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n      for (i = 0, o = on[j]; i < n; ++i) {\n        if ((t = typenames[i]).type === o.type && t.name === o.name) {\n          return o.value;\n        }\n      }\n    }\n    return;\n  }\n\n  on = value ? onAdd : onRemove;\n  if (capture == null) capture = false;\n  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n  return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n  var event0 = event;\n  event1.sourceEvent = event;\n  event = event1;\n  try {\n    return listener.apply(that, args);\n  } finally {\n    event = event0;\n  }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n  var window = defaultView(node),\n      event = window.CustomEvent;\n\n  if (typeof event === \"function\") {\n    event = new event(type, params);\n  } else {\n    event = window.document.createEvent(\"Event\");\n    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n    else event.initEvent(type, false, false);\n  }\n\n  node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params);\n  };\n}\n\nfunction dispatchFunction(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params.apply(this, arguments));\n  };\n}\n\nexport default function(type, params) {\n  return this.each((typeof params === \"function\"\n      ? dispatchFunction\n      : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n  this._groups = groups;\n  this._parents = parents;\n}\n\nfunction selection() {\n  return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n  constructor: Selection,\n  select: selection_select,\n  selectAll: selection_selectAll,\n  filter: selection_filter,\n  data: selection_data,\n  enter: selection_enter,\n  exit: selection_exit,\n  join: selection_join,\n  merge: selection_merge,\n  order: selection_order,\n  sort: selection_sort,\n  call: selection_call,\n  nodes: selection_nodes,\n  node: selection_node,\n  size: selection_size,\n  empty: selection_empty,\n  each: selection_each,\n  attr: selection_attr,\n  style: selection_style,\n  property: selection_property,\n  classed: selection_classed,\n  text: selection_text,\n  html: selection_html,\n  raise: selection_raise,\n  lower: selection_lower,\n  append: selection_append,\n  insert: selection_insert,\n  remove: selection_remove,\n  clone: selection_clone,\n  datum: selection_datum,\n  on: selection_on,\n  dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n  return typeof selector === \"string\"\n      ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n      : new Selection([[selector]], root);\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n  var current = event, source;\n  while (source = current.sourceEvent) current = source;\n  return current;\n}\n","export default function(node, event) {\n  var svg = node.ownerSVGElement || node;\n\n  if (svg.createSVGPoint) {\n    var point = svg.createSVGPoint();\n    point.x = event.clientX, point.y = event.clientY;\n    point = point.matrixTransform(node.getScreenCTM().inverse());\n    return [point.x, point.y];\n  }\n\n  var rect = node.getBoundingClientRect();\n  return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n  var event = sourceEvent();\n  if (event.changedTouches) event = event.changedTouches[0];\n  return point(node, event);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n  if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n  for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n    if ((touch = touches[i]).identifier === identifier) {\n      return point(node, touch);\n    }\n  }\n\n  return null;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n  event.stopImmediatePropagation();\n}\n\nexport default function() {\n  event.preventDefault();\n  event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n  var root = view.document.documentElement,\n      selection = select(view).on(\"dragstart.drag\", noevent, true);\n  if (\"onselectstart\" in root) {\n    selection.on(\"selectstart.drag\", noevent, true);\n  } else {\n    root.__noselect = root.style.MozUserSelect;\n    root.style.MozUserSelect = \"none\";\n  }\n}\n\nexport function yesdrag(view, noclick) {\n  var root = view.document.documentElement,\n      selection = select(view).on(\"dragstart.drag\", null);\n  if (noclick) {\n    selection.on(\"click.drag\", noevent, true);\n    setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n  }\n  if (\"onselectstart\" in root) {\n    selection.on(\"selectstart.drag\", null);\n  } else {\n    root.style.MozUserSelect = root.__noselect;\n    delete root.__noselect;\n  }\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: function(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable: function() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\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_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 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? new Rgb((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: function(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: function(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: function() {\n    return this;\n  },\n  displayable: function() {\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  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_formatRgb() {\n  var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n  return (a === 1 ? \"rgb(\" : \"rgba(\")\n      + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n      + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n  value = Math.max(0, Math.min(255, Math.round(value) || 0));\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: function(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: function(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: function() {\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  displayable: function() {\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: function() {\n    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n    return (a === 1 ? \"hsl(\" : \"hsla(\")\n        + (this.h || 0) + \", \"\n        + (this.s || 0) * 100 + \"%, \"\n        + (this.l || 0) * 100 + \"%\"\n        + (a === 1 ? \")\" : \", \" + a + \")\");\n  }\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 var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n    Xn = 0.96422,\n    Yn = 1,\n    Zn = 0.82521,\n    t0 = 4 / 29,\n    t1 = 6 / 29,\n    t2 = 3 * t1 * t1,\n    t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n  if (o instanceof Hcl) return hcl2lab(o);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = rgb2lrgb(o.r),\n      g = rgb2lrgb(o.g),\n      b = rgb2lrgb(o.b),\n      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n  if (r === g && g === b) x = z = y; else {\n    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n  }\n  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n  this.l = +l;\n  this.a = +a;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n  brighter: function(k) {\n    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  darker: function(k) {\n    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  rgb: function() {\n    var y = (this.l + 16) / 116,\n        x = isNaN(this.a) ? y : y + this.a / 500,\n        z = isNaN(this.b) ? y : y - this.b / 200;\n    x = Xn * lab2xyz(x);\n    y = Yn * lab2xyz(y);\n    z = Zn * lab2xyz(z);\n    return new Rgb(\n      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n      this.opacity\n    );\n  }\n}));\n\nfunction xyz2lab(t) {\n  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n  return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n  if (!(o instanceof Lab)) o = labConvert(o);\n  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n  var h = Math.atan2(o.b, o.a) * rad2deg;\n  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n  this.h = +h;\n  this.c = +c;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n  var h = o.h * deg2rad;\n  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n  brighter: function(k) {\n    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n  },\n  darker: function(k) {\n    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n  },\n  rgb: function() {\n    return hcl2lab(this).rgb();\n  }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} 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) * rad2deg - 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: function(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: function(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: function() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\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 function(x) {\n  return function() {\n    return x;\n  };\n}\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","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\nexport default function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: number(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n  translateX: 0,\n  translateY: 0,\n  rotate: 0,\n  skewX: 0,\n  scaleX: 1,\n  scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n  var scaleX, scaleY, skewX;\n  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n  return {\n    translateX: e,\n    translateY: f,\n    rotate: Math.atan2(b, a) * degrees,\n    skewX: Math.atan(skewX) * degrees,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n    cssRoot,\n    cssView,\n    svgNode;\n\nexport function parseCss(value) {\n  if (value === \"none\") return identity;\n  if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n  cssNode.style.transform = value;\n  value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n  cssRoot.removeChild(cssNode);\n  value = value.slice(7, -1).split(\",\");\n  return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n  if (value == null) return identity;\n  if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  svgNode.setAttribute(\"transform\", value);\n  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n  value = value.matrix;\n  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n  function pop(s) {\n    return s.length ? s.pop() + \" \" : \"\";\n  }\n\n  function translate(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb || yb) {\n      s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n    }\n  }\n\n  function rotate(a, b, s, q) {\n    if (a !== b) {\n      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n      q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"rotate(\" + b + degParen);\n    }\n  }\n\n  function skewX(a, b, s, q) {\n    if (a !== b) {\n      q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"skewX(\" + b + degParen);\n    }\n  }\n\n  function scale(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb !== 1 || yb !== 1) {\n      s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n    }\n  }\n\n  return function(a, b) {\n    var s = [], // string constants and placeholders\n        q = []; // number interpolators\n    a = parse(a), b = parse(b);\n    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n    rotate(a.rotate, b.rotate, s, q);\n    skewX(a.skewX, b.skewX, s, q);\n    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n    a = b = null; // gc\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var rho = Math.SQRT2,\n    rho2 = 2,\n    rho4 = 4,\n    epsilon2 = 1e-12;\n\nfunction cosh(x) {\n  return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n  return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n  return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n  var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n      ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n      dx = ux1 - ux0,\n      dy = uy1 - uy0,\n      d2 = dx * dx + dy * dy,\n      i,\n      S;\n\n  // Special case for u0 ≅ u1.\n  if (d2 < epsilon2) {\n    S = Math.log(w1 / w0) / rho;\n    i = function(t) {\n      return [\n        ux0 + t * dx,\n        uy0 + t * dy,\n        w0 * Math.exp(rho * t * S)\n      ];\n    }\n  }\n\n  // General case.\n  else {\n    var d1 = Math.sqrt(d2),\n        b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n        b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n        r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n        r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n    S = (r1 - r0) / rho;\n    i = function(t) {\n      var s = t * S,\n          coshr0 = cosh(r0),\n          u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n      return [\n        ux0 + u * dx,\n        uy0 + u * dy,\n        w0 * coshr0 / cosh(rho * s + r0)\n      ];\n    }\n  }\n\n  i.duration = S * 1000;\n\n  return i;\n}\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","var frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nexport function Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nexport function timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nexport function timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n  var t = new Timer;\n  delay = delay == null ? 0 : +delay;\n  t.restart(function(elapsed) {\n    t.stop();\n    callback(elapsed + delay);\n  }, delay, time);\n  return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n  var schedules = node.__transition;\n  if (!schedules) node.__transition = {};\n  else if (id in schedules) return;\n  create(node, id, {\n    name: name,\n    index: index, // For context during callback.\n    group: group, // For context during callback.\n    on: emptyOn,\n    tween: emptyTween,\n    time: timing.time,\n    delay: timing.delay,\n    duration: timing.duration,\n    ease: timing.ease,\n    timer: null,\n    state: CREATED\n  });\n}\n\nexport function init(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n  return schedule;\n}\n\nexport function set(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n  return schedule;\n}\n\nexport function get(node, id) {\n  var schedule = node.__transition;\n  if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n  return schedule;\n}\n\nfunction create(node, id, self) {\n  var schedules = node.__transition,\n      tween;\n\n  // Initialize the self timer when the transition is created.\n  // Note the actual delay is not known until the first callback!\n  schedules[id] = self;\n  self.timer = timer(schedule, 0, self.time);\n\n  function schedule(elapsed) {\n    self.state = SCHEDULED;\n    self.timer.restart(start, self.delay, self.time);\n\n    // If the elapsed delay is less than our first sleep, start immediately.\n    if (self.delay <= elapsed) start(elapsed - self.delay);\n  }\n\n  function start(elapsed) {\n    var i, j, n, o;\n\n    // If the state is not SCHEDULED, then we previously errored on start.\n    if (self.state !== SCHEDULED) return stop();\n\n    for (i in schedules) {\n      o = schedules[i];\n      if (o.name !== self.name) continue;\n\n      // While this element already has a starting transition during this frame,\n      // defer starting an interrupting transition until that transition has a\n      // chance to tick (and possibly end); see d3/d3-transition#54!\n      if (o.state === STARTED) return timeout(start);\n\n      // Interrupt the active transition, if any.\n      if (o.state === RUNNING) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n\n      // Cancel any pre-empted transitions.\n      else if (+i < id) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n    }\n\n    // Defer the first tick to end of the current frame; see d3/d3#1576.\n    // Note the transition may be canceled after start and before the first tick!\n    // Note this must be scheduled before the start event; see d3/d3-transition#16!\n    // Assuming this is successful, subsequent callbacks go straight to tick.\n    timeout(function() {\n      if (self.state === STARTED) {\n        self.state = RUNNING;\n        self.timer.restart(tick, self.delay, self.time);\n        tick(elapsed);\n      }\n    });\n\n    // Dispatch the start event.\n    // Note this must be done before the tween are initialized.\n    self.state = STARTING;\n    self.on.call(\"start\", node, node.__data__, self.index, self.group);\n    if (self.state !== STARTING) return; // interrupted\n    self.state = STARTED;\n\n    // Initialize the tween, deleting null tween.\n    tween = new Array(n = self.tween.length);\n    for (i = 0, j = -1; i < n; ++i) {\n      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n        tween[++j] = o;\n      }\n    }\n    tween.length = j + 1;\n  }\n\n  function tick(elapsed) {\n    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n        i = -1,\n        n = tween.length;\n\n    while (++i < n) {\n      tween[i].call(node, t);\n    }\n\n    // Dispatch the end event.\n    if (self.state === ENDING) {\n      self.on.call(\"end\", node, node.__data__, self.index, self.group);\n      stop();\n    }\n  }\n\n  function stop() {\n    self.state = ENDED;\n    self.timer.stop();\n    delete schedules[id];\n    for (var i in schedules) return; // eslint-disable-line no-unused-vars\n    delete node.__transition;\n  }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n  var schedules = node.__transition,\n      schedule,\n      active,\n      empty = true,\n      i;\n\n  if (!schedules) return;\n\n  name = name == null ? null : name + \"\";\n\n  for (i in schedules) {\n    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n    active = schedule.state > STARTING && schedule.state < ENDING;\n    schedule.state = ENDED;\n    schedule.timer.stop();\n    schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n    delete schedules[i];\n  }\n\n  if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n  return this.each(function() {\n    interrupt(this, name);\n  });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n  var tween0, tween1;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we’re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = tween0 = tween;\n      for (var i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1 = tween1.slice();\n          tween1.splice(i, 1);\n          break;\n        }\n      }\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nfunction tweenFunction(id, name, value) {\n  var tween0, tween1;\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we’re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = (tween0 = tween).slice();\n      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1[i] = t;\n          break;\n        }\n      }\n      if (i === n) tween1.push(t);\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nexport default function(name, value) {\n  var id = this._id;\n\n  name += \"\";\n\n  if (arguments.length < 2) {\n    var tween = get(this.node(), id).tween;\n    for (var i = 0, n = tween.length, t; i < n; ++i) {\n      if ((t = tween[i]).name === name) {\n        return t.value;\n      }\n    }\n    return null;\n  }\n\n  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n  var id = transition._id;\n\n  transition.each(function() {\n    var schedule = set(this, id);\n    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n  });\n\n  return function(node) {\n    return get(node, id).value[name];\n  };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n  var c;\n  return (typeof b === \"number\" ? interpolateNumber\n      : b instanceof color ? interpolateRgb\n      : (c = color(b)) ? (b = c, interpolateRgb)\n      : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttribute(name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttributeNS(fullname.space, fullname.local);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttribute(name);\n    string0 = this.getAttribute(name);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n    string0 = this.getAttributeNS(fullname.space, fullname.local);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n  return this.attrTween(name, typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n  return function(t) {\n    this.setAttribute(name, i.call(this, t));\n  };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n  return function(t) {\n    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n  };\n}\n\nfunction attrTweenNS(fullname, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nfunction attrTween(name, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value) {\n  var key = \"attr.\" + name;\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  var fullname = namespace(name);\n  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n  return function() {\n    init(this, id).delay = +value.apply(this, arguments);\n  };\n}\n\nfunction delayConstant(id, value) {\n  return value = +value, function() {\n    init(this, id).delay = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? delayFunction\n          : delayConstant)(id, value))\n      : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n  return function() {\n    set(this, id).duration = +value.apply(this, arguments);\n  };\n}\n\nfunction durationConstant(id, value) {\n  return value = +value, function() {\n    set(this, id).duration = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? durationFunction\n          : durationConstant)(id, value))\n      : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    set(this, id).ease = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each(easeConstant(id, value))\n      : get(this.node(), id).ease;\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n  if (transition._id !== this._id) throw new Error;\n\n  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n  return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n    var i = t.indexOf(\".\");\n    if (i >= 0) t = t.slice(0, i);\n    return !t || t === \"start\";\n  });\n}\n\nfunction onFunction(id, name, listener) {\n  var on0, on1, sit = start(name) ? init : set;\n  return function() {\n    var schedule = sit(this, id),\n        on = schedule.on;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we’re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, listener) {\n  var id = this._id;\n\n  return arguments.length < 2\n      ? get(this.node(), id).on.on(name)\n      : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n  return function() {\n    var parent = this.parentNode;\n    for (var i in this.__transition) if (+i !== id) return;\n    if (parent) parent.removeChild(this);\n  };\n}\n\nexport default function() {\n  return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n        schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n          if (child = children[k]) {\n            schedule(child, name, id, k, children, inherit);\n          }\n        }\n        subgroups.push(children);\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n  return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        string1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, string10 = string1);\n  };\n}\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = style(this, name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction styleFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        value1 = value(this),\n        string1 = value1 + \"\";\n    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction styleMaybeRemove(id, name) {\n  var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n  return function() {\n    var schedule = set(this, id),\n        on = schedule.on,\n        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we’re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, value, priority) {\n  var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n  return value == null ? this\n      .styleTween(name, styleNull(name, i))\n      .on(\"end.style.\" + name, styleRemove(name))\n    : typeof value === \"function\" ? this\n      .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n      .each(styleMaybeRemove(this._id, name))\n    : this\n      .styleTween(name, styleConstant(name, i, value), priority)\n      .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n  return function(t) {\n    this.style.setProperty(name, i.call(this, t), priority);\n  };\n}\n\nfunction styleTween(name, value, priority) {\n  var t, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n    return t;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value, priority) {\n  var key = \"style.\" + (name += \"\");\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var value1 = value(this);\n    this.textContent = value1 == null ? \"\" : value1;\n  };\n}\n\nexport default function(value) {\n  return this.tween(\"text\", typeof value === \"function\"\n      ? textFunction(tweenValue(this, \"text\", value))\n      : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n  return function(t) {\n    this.textContent = i.call(this, t);\n  };\n}\n\nfunction textTween(value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(value) {\n  var key = \"text\";\n  if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n  var name = this._name,\n      id0 = this._id,\n      id1 = newId();\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        var inherit = get(node, id0);\n        schedule(node, name, id1, i, group, {\n          time: inherit.time + inherit.delay + inherit.duration,\n          delay: 0,\n          duration: inherit.duration,\n          ease: inherit.ease\n        });\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n  var on0, on1, that = this, id = that._id, size = that.size();\n  return new Promise(function(resolve, reject) {\n    var cancel = {value: reject},\n        end = {value: function() { if (--size === 0) resolve(); }};\n\n    that.each(function() {\n      var schedule = set(this, id),\n          on = schedule.on;\n\n      // If this node shared a dispatch with the previous node,\n      // just assign the updated shared dispatch and we’re done!\n      // Otherwise, copy-on-write.\n      if (on !== on0) {\n        on1 = (on0 = on).copy();\n        on1._.cancel.push(cancel);\n        on1._.interrupt.push(cancel);\n        on1._.end.push(end);\n      }\n\n      schedule.on = on1;\n    });\n  });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n  this._groups = groups;\n  this._parents = parents;\n  this._name = name;\n  this._id = id;\n}\n\nexport default function transition(name) {\n  return selection().transition(name);\n}\n\nexport function newId() {\n  return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n  constructor: Transition,\n  select: transition_select,\n  selectAll: transition_selectAll,\n  filter: transition_filter,\n  merge: transition_merge,\n  selection: transition_selection,\n  transition: transition_transition,\n  call: selection_prototype.call,\n  nodes: selection_prototype.nodes,\n  node: selection_prototype.node,\n  size: selection_prototype.size,\n  empty: selection_prototype.empty,\n  each: selection_prototype.each,\n  on: transition_on,\n  attr: transition_attr,\n  attrTween: transition_attrTween,\n  style: transition_style,\n  styleTween: transition_styleTween,\n  text: transition_text,\n  textTween: transition_textTween,\n  remove: transition_remove,\n  tween: transition_tween,\n  delay: transition_delay,\n  duration: transition_duration,\n  ease: transition_ease,\n  end: transition_end\n};\n","export function cubicIn(t) {\n  return t * t * t;\n}\n\nexport function cubicOut(t) {\n  return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var pi = Math.PI,\n    halfPi = pi / 2;\n\nexport function sinIn(t) {\n  return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n  return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n  return (1 - Math.cos(pi * t)) / 2;\n}\n","var tau = 2 * Math.PI,\n    amplitude = 1,\n    period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n  function elasticIn(t) {\n    return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n  }\n\n  elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n  elasticIn.period = function(p) { return custom(a, p); };\n\n  return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n  function elasticOut(t) {\n    return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n  }\n\n  elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n  elasticOut.period = function(p) { return custom(a, p); };\n\n  return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n  function elasticInOut(t) {\n    return ((t = t * 2 - 1) < 0\n        ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n        : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n  }\n\n  elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n  elasticInOut.period = function(p) { return custom(a, p); };\n\n  return elasticInOut;\n})(amplitude, period);\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n  time: null, // Set on use.\n  delay: 0,\n  duration: 250,\n  ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n  var timing;\n  while (!(timing = node.__transition) || !(timing = timing[id])) {\n    if (!(node = node.parentNode)) {\n      return defaultTiming.time = now(), defaultTiming;\n    }\n  }\n  return timing;\n}\n\nexport default function(name) {\n  var id,\n      timing;\n\n  if (name instanceof Transition) {\n    id = name._id, name = name._name;\n  } else {\n    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n  }\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        schedule(node, name, id, i, group, timing || inherit(node, id));\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","var pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction Path() {\n  this._x0 = this._y0 = // start of current subpath\n  this._x1 = this._y1 = null; // end of current subpath\n  this._ = \"\";\n}\n\nfunction path() {\n  return new Path;\n}\n\nPath.prototype = path.prototype = {\n  constructor: Path,\n  moveTo: function(x, y) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n  },\n  closePath: function() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._ += \"Z\";\n    }\n  },\n  lineTo: function(x, y) {\n    this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  quadraticCurveTo: function(x1, y1, x, y) {\n    this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n    this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  arcTo: function(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n    var x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      var x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n      }\n\n      this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n    }\n  },\n  arc: function(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n    var dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._ += \"M\" + x0 + \",\" + y0;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._ += \"L\" + x0 + \",\" + y0;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n    }\n  },\n  rect: function(x, y, w, h) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n  },\n  toString: function() {\n    return this._;\n  }\n};\n\nexport default path;\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n  constructor: Map,\n  has: function(key) {\n    return (prefix + key) in this;\n  },\n  get: function(key) {\n    return this[prefix + key];\n  },\n  set: function(key, value) {\n    this[prefix + key] = value;\n    return this;\n  },\n  remove: function(key) {\n    var property = prefix + key;\n    return property in this && delete this[property];\n  },\n  clear: function() {\n    for (var property in this) if (property[0] === prefix) delete this[property];\n  },\n  keys: function() {\n    var keys = [];\n    for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n    return keys;\n  },\n  values: function() {\n    var values = [];\n    for (var property in this) if (property[0] === prefix) values.push(this[property]);\n    return values;\n  },\n  entries: function() {\n    var entries = [];\n    for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n    return entries;\n  },\n  size: function() {\n    var size = 0;\n    for (var property in this) if (property[0] === prefix) ++size;\n    return size;\n  },\n  empty: function() {\n    for (var property in this) if (property[0] === prefix) return false;\n    return true;\n  },\n  each: function(f) {\n    for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n  }\n};\n\nfunction map(object, f) {\n  var map = new Map;\n\n  // Copy constructor.\n  if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n  // Index array by numeric index or specified key function.\n  else if (Array.isArray(object)) {\n    var i = -1,\n        n = object.length,\n        o;\n\n    if (f == null) while (++i < n) map.set(i, object[i]);\n    else while (++i < n) map.set(f(o = object[i], i, object), o);\n  }\n\n  // Convert object to map.\n  else if (object) for (var key in object) map.set(key, object[key]);\n\n  return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n  constructor: Set,\n  has: proto.has,\n  add: function(value) {\n    value += \"\";\n    this[prefix + value] = value;\n    return this;\n  },\n  remove: proto.remove,\n  clear: proto.clear,\n  values: proto.keys,\n  size: proto.size,\n  empty: proto.empty,\n  each: proto.each\n};\n\nfunction set(object, f) {\n  var set = new Set;\n\n  // Copy constructor.\n  if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n  // Otherwise, assume it’s an array.\n  else if (object) {\n    var i = -1, n = object.length;\n    if (f == null) while (++i < n) set.add(object[i]);\n    else while (++i < n) set.add(f(object[i], i, object));\n  }\n\n  return set;\n}\n\nexport default set;\n","var EOL = {},\n    EOF = {},\n    QUOTE = 34,\n    NEWLINE = 10,\n    RETURN = 13;\n\nfunction objectConverter(columns) {\n  return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n    return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n  }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n  var object = objectConverter(columns);\n  return function(row, i) {\n    return f(object(row), i, columns);\n  };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n  var columnSet = Object.create(null),\n      columns = [];\n\n  rows.forEach(function(row) {\n    for (var column in row) {\n      if (!(column in columnSet)) {\n        columns.push(columnSet[column] = column);\n      }\n    }\n  });\n\n  return columns;\n}\n\nfunction pad(value, width) {\n  var s = value + \"\", length = s.length;\n  return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n  return year < 0 ? \"-\" + pad(-year, 6)\n    : year > 9999 ? \"+\" + pad(year, 6)\n    : pad(year, 4);\n}\n\nfunction formatDate(date) {\n  var hours = date.getUTCHours(),\n      minutes = date.getUTCMinutes(),\n      seconds = date.getUTCSeconds(),\n      milliseconds = date.getUTCMilliseconds();\n  return isNaN(date) ? \"Invalid Date\"\n      : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n      + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n      : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n      : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n      : \"\");\n}\n\nexport default function(delimiter) {\n  var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n      DELIMITER = delimiter.charCodeAt(0);\n\n  function parse(text, f) {\n    var convert, columns, rows = parseRows(text, function(row, i) {\n      if (convert) return convert(row, i - 1);\n      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n    });\n    rows.columns = columns || [];\n    return rows;\n  }\n\n  function parseRows(text, f) {\n    var rows = [], // output rows\n        N = text.length,\n        I = 0, // current character index\n        n = 0, // current line number\n        t, // current token\n        eof = N <= 0, // current token followed by EOF?\n        eol = false; // current token followed by EOL?\n\n    // Strip the trailing newline.\n    if (text.charCodeAt(N - 1) === NEWLINE) --N;\n    if (text.charCodeAt(N - 1) === RETURN) --N;\n\n    function token() {\n      if (eof) return EOF;\n      if (eol) return eol = false, EOL;\n\n      // Unescape quotes.\n      var i, j = I, c;\n      if (text.charCodeAt(j) === QUOTE) {\n        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n        if ((i = I) >= N) eof = true;\n        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n        return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n      }\n\n      // Find next delimiter or newline.\n      while (I < N) {\n        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n        else if (c !== DELIMITER) continue;\n        return text.slice(j, i);\n      }\n\n      // Return last token before EOF.\n      return eof = true, text.slice(j, N);\n    }\n\n    while ((t = token()) !== EOF) {\n      var row = [];\n      while (t !== EOL && t !== EOF) row.push(t), t = token();\n      if (f && (row = f(row, n++)) == null) continue;\n      rows.push(row);\n    }\n\n    return rows;\n  }\n\n  function preformatBody(rows, columns) {\n    return rows.map(function(row) {\n      return columns.map(function(column) {\n        return formatValue(row[column]);\n      }).join(delimiter);\n    });\n  }\n\n  function format(rows, columns) {\n    if (columns == null) columns = inferColumns(rows);\n    return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n  }\n\n  function formatBody(rows, columns) {\n    if (columns == null) columns = inferColumns(rows);\n    return preformatBody(rows, columns).join(\"\\n\");\n  }\n\n  function formatRows(rows) {\n    return rows.map(formatRow).join(\"\\n\");\n  }\n\n  function formatRow(row) {\n    return row.map(formatValue).join(delimiter);\n  }\n\n  function formatValue(value) {\n    return value == null ? \"\"\n        : value instanceof Date ? formatDate(value)\n        : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n        : value;\n  }\n\n  return {\n    parse: parse,\n    parseRows: parseRows,\n    format: format,\n    formatBody: formatBody,\n    formatRows: formatRows,\n    formatRow: formatRow,\n    formatValue: formatValue\n  };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","export default function autoType(object) {\n  for (var key in object) {\n    var value = object[key].trim(), number, m;\n    if (!value) value = null;\n    else if (value === \"true\") value = true;\n    else if (value === \"false\") value = false;\n    else if (value === \"NaN\") value = NaN;\n    else if (!isNaN(number = +value)) value = number;\n    else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n      if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n      value = new Date(value);\n    }\n    else continue;\n    object[key] = value;\n  }\n  return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","export default function(d) {\n  var x = +this._x.call(null, d),\n      y = +this._y.call(null, d);\n  return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n  var parent,\n      node = tree._root,\n      leaf = {data: d},\n      x0 = tree._x0,\n      y0 = tree._y0,\n      x1 = tree._x1,\n      y1 = tree._y1,\n      xm,\n      ym,\n      xp,\n      yp,\n      right,\n      bottom,\n      i,\n      j;\n\n  // If the tree is empty, initialize the root as a leaf.\n  if (!node) return tree._root = leaf, tree;\n\n  // Find the existing leaf for the new point, or add it.\n  while (node.length) {\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n  }\n\n  // Is the new point is exactly coincident with the existing point?\n  xp = +tree._x.call(null, node.data);\n  yp = +tree._y.call(null, node.data);\n  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n  // Otherwise, split the leaf node until the old and new point are separated.\n  do {\n    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n  return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n  var d, i, n = data.length,\n      x,\n      y,\n      xz = new Array(n),\n      yz = new Array(n),\n      x0 = Infinity,\n      y0 = Infinity,\n      x1 = -Infinity,\n      y1 = -Infinity;\n\n  // Compute the points and their extent.\n  for (i = 0; i < n; ++i) {\n    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n    xz[i] = x;\n    yz[i] = 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\n  // If there were no (valid) points, abort.\n  if (x0 > x1 || y0 > y1) return this;\n\n  // Expand the tree to cover the new points.\n  this.cover(x0, y0).cover(x1, y1);\n\n  // Add the new points.\n  for (i = 0; i < n; ++i) {\n    add(this, xz[i], yz[i], data[i]);\n  }\n\n  return this;\n}\n","export default function(x, y) {\n  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n  var x0 = this._x0,\n      y0 = this._y0,\n      x1 = this._x1,\n      y1 = this._y1;\n\n  // If the quadtree has no extent, initialize them.\n  // Integer extent are necessary so that if we later double the extent,\n  // the existing quadrant boundaries don’t change due to floating point error!\n  if (isNaN(x0)) {\n    x1 = (x0 = Math.floor(x)) + 1;\n    y1 = (y0 = Math.floor(y)) + 1;\n  }\n\n  // Otherwise, double repeatedly to cover.\n  else {\n    var z = x1 - x0,\n        node = this._root,\n        parent,\n        i;\n\n    while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n      i = (y < y0) << 1 | (x < x0);\n      parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n      switch (i) {\n        case 0: x1 = x0 + z, y1 = y0 + z; break;\n        case 1: x0 = x1 - z, y1 = y0 + z; break;\n        case 2: x1 = x0 + z, y0 = y1 - z; break;\n        case 3: x0 = x1 - z, y0 = y1 - z; break;\n      }\n    }\n\n    if (this._root && this._root.length) this._root = node;\n  }\n\n  this._x0 = x0;\n  this._y0 = y0;\n  this._x1 = x1;\n  this._y1 = y1;\n  return this;\n}\n","export default function() {\n  var data = [];\n  this.visit(function(node) {\n    if (!node.length) do data.push(node.data); while (node = node.next)\n  });\n  return data;\n}\n","export default function(_) {\n  return arguments.length\n      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n  this.node = node;\n  this.x0 = x0;\n  this.y0 = y0;\n  this.x1 = x1;\n  this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n  var data,\n      x0 = this._x0,\n      y0 = this._y0,\n      x1,\n      y1,\n      x2,\n      y2,\n      x3 = this._x1,\n      y3 = this._y1,\n      quads = [],\n      node = this._root,\n      q,\n      i;\n\n  if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n  if (radius == null) radius = Infinity;\n  else {\n    x0 = x - radius, y0 = y - radius;\n    x3 = x + radius, y3 = y + radius;\n    radius *= radius;\n  }\n\n  while (q = quads.pop()) {\n\n    // Stop searching if this quadrant can’t contain a closer node.\n    if (!(node = q.node)\n        || (x1 = q.x0) > x3\n        || (y1 = q.y0) > y3\n        || (x2 = q.x1) < x0\n        || (y2 = q.y1) < y0) continue;\n\n    // Bisect the current quadrant.\n    if (node.length) {\n      var xm = (x1 + x2) / 2,\n          ym = (y1 + y2) / 2;\n\n      quads.push(\n        new Quad(node[3], xm, ym, x2, y2),\n        new Quad(node[2], x1, ym, xm, y2),\n        new Quad(node[1], xm, y1, x2, ym),\n        new Quad(node[0], x1, y1, xm, ym)\n      );\n\n      // Visit the closest quadrant first.\n      if (i = (y >= ym) << 1 | (x >= xm)) {\n        q = quads[quads.length - 1];\n        quads[quads.length - 1] = quads[quads.length - 1 - i];\n        quads[quads.length - 1 - i] = q;\n      }\n    }\n\n    // Visit this point. (Visiting coincident points isn’t necessary!)\n    else {\n      var dx = x - +this._x.call(null, node.data),\n          dy = y - +this._y.call(null, node.data),\n          d2 = dx * dx + dy * dy;\n      if (d2 < radius) {\n        var d = Math.sqrt(radius = d2);\n        x0 = x - d, y0 = y - d;\n        x3 = x + d, y3 = y + d;\n        data = node.data;\n      }\n    }\n  }\n\n  return data;\n}\n","export default function(d) {\n  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n  var parent,\n      node = this._root,\n      retainer,\n      previous,\n      next,\n      x0 = this._x0,\n      y0 = this._y0,\n      x1 = this._x1,\n      y1 = this._y1,\n      x,\n      y,\n      xm,\n      ym,\n      right,\n      bottom,\n      i,\n      j;\n\n  // If the tree is empty, initialize the root as a leaf.\n  if (!node) return this;\n\n  // Find the leaf node for the point.\n  // While descending, also retain the deepest parent with a non-removed sibling.\n  if (node.length) while (true) {\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n    if (!node.length) break;\n    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n  }\n\n  // Find the point to remove.\n  while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n  if (next = node.next) delete node.next;\n\n  // If there are multiple coincident points, remove just the point.\n  if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n  // If this is the root point, remove it.\n  if (!parent) return this._root = next, this;\n\n  // Remove this leaf.\n  next ? parent[i] = next : delete parent[i];\n\n  // If the parent now contains exactly one leaf, collapse superfluous parents.\n  if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n      && node === (parent[3] || parent[2] || parent[1] || parent[0])\n      && !node.length) {\n    if (retainer) retainer[j] = node;\n    else this._root = node;\n  }\n\n  return this;\n}\n\nexport function removeAll(data) {\n  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n  return this;\n}\n","export default function() {\n  return this._root;\n}\n","export default function() {\n  var size = 0;\n  this.visit(function(node) {\n    if (!node.length) do ++size; while (node = node.next)\n  });\n  return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n  var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n  if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n  while (q = quads.pop()) {\n    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n    }\n  }\n  return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n  var quads = [], next = [], q;\n  if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n  while (q = quads.pop()) {\n    var node = q.node;\n    if (node.length) {\n      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n    }\n    next.push(q);\n  }\n  while (q = next.pop()) {\n    callback(q.node, q.x0, q.y0, q.x1, q.y1);\n  }\n  return this;\n}\n","export function defaultX(d) {\n  return d[0];\n}\n\nexport default function(_) {\n  return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n  return d[1];\n}\n\nexport default function(_) {\n  return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n  return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n  this._x = x;\n  this._y = y;\n  this._x0 = x0;\n  this._y0 = y0;\n  this._x1 = x1;\n  this._y1 = y1;\n  this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n  var copy = {data: leaf.data}, next = copy;\n  while (leaf = leaf.next) next = next.next = {data: leaf.data};\n  return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n      node = this._root,\n      nodes,\n      child;\n\n  if (!node) return copy;\n\n  if (!node.length) return copy._root = leaf_copy(node), copy;\n\n  nodes = [{source: node, target: copy._root = new Array(4)}];\n  while (node = nodes.pop()) {\n    for (var i = 0; i < 4; ++i) {\n      if (child = node.source[i]) {\n        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n        else node.target[i] = leaf_copy(child);\n      }\n    }\n  }\n\n  return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n  return d.x;\n}\n\nexport function y(d) {\n  return d.y;\n}\n\nvar initialRadius = 10,\n    initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n  var simulation,\n      alpha = 1,\n      alphaMin = 0.001,\n      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n      alphaTarget = 0,\n      velocityDecay = 0.6,\n      forces = map(),\n      stepper = timer(step),\n      event = dispatch(\"tick\", \"end\");\n\n  if (nodes == null) nodes = [];\n\n  function step() {\n    tick();\n    event.call(\"tick\", simulation);\n    if (alpha < alphaMin) {\n      stepper.stop();\n      event.call(\"end\", simulation);\n    }\n  }\n\n  function tick(iterations) {\n    var i, n = nodes.length, node;\n\n    if (iterations === undefined) iterations = 1;\n\n    for (var k = 0; k < iterations; ++k) {\n      alpha += (alphaTarget - alpha) * alphaDecay;\n\n      forces.each(function (force) {\n        force(alpha);\n      });\n\n      for (i = 0; i < n; ++i) {\n        node = nodes[i];\n        if (node.fx == null) node.x += node.vx *= velocityDecay;\n        else node.x = node.fx, node.vx = 0;\n        if (node.fy == null) node.y += node.vy *= velocityDecay;\n        else node.y = node.fy, node.vy = 0;\n      }\n    }\n\n    return simulation;\n  }\n\n  function initializeNodes() {\n    for (var i = 0, n = nodes.length, node; i < n; ++i) {\n      node = nodes[i], node.index = i;\n      if (node.fx != null) node.x = node.fx;\n      if (node.fy != null) node.y = node.fy;\n      if (isNaN(node.x) || isNaN(node.y)) {\n        var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n        node.x = radius * Math.cos(angle);\n        node.y = radius * Math.sin(angle);\n      }\n      if (isNaN(node.vx) || isNaN(node.vy)) {\n        node.vx = node.vy = 0;\n      }\n    }\n  }\n\n  function initializeForce(force) {\n    if (force.initialize) force.initialize(nodes);\n    return force;\n  }\n\n  initializeNodes();\n\n  return simulation = {\n    tick: tick,\n\n    restart: function() {\n      return stepper.restart(step), simulation;\n    },\n\n    stop: function() {\n      return stepper.stop(), simulation;\n    },\n\n    nodes: function(_) {\n      return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n    },\n\n    alpha: function(_) {\n      return arguments.length ? (alpha = +_, simulation) : alpha;\n    },\n\n    alphaMin: function(_) {\n      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n    },\n\n    alphaDecay: function(_) {\n      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n    },\n\n    alphaTarget: function(_) {\n      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n    },\n\n    velocityDecay: function(_) {\n      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n    },\n\n    force: function(name, _) {\n      return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n    },\n\n    find: function(x, y, radius) {\n      var i = 0,\n          n = nodes.length,\n          dx,\n          dy,\n          d2,\n          node,\n          closest;\n\n      if (radius == null) radius = Infinity;\n      else radius *= radius;\n\n      for (i = 0; i < n; ++i) {\n        node = nodes[i];\n        dx = x - node.x;\n        dy = y - node.y;\n        d2 = dx * dx + dy * dy;\n        if (d2 < radius) closest = node, radius = d2;\n      }\n\n      return closest;\n    },\n\n    on: function(name, _) {\n      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n    }\n  };\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimal(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimal(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": function(x, p) { return (x * 100).toFixed(p); },\n  \"b\": function(x) { return Math.round(x).toString(2); },\n  \"c\": function(x) { return x + \"\"; },\n  \"d\": function(x) { return Math.round(x).toString(10); },\n  \"e\": function(x, p) { return x.toExponential(p); },\n  \"f\": function(x, p) { return x.toFixed(p); },\n  \"g\": function(x, p) { return x.toPrecision(p); },\n  \"o\": function(x) { return Math.round(x).toString(8); },\n  \"p\": function(x, p) { return formatRounded(x * 100, p); },\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n  \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n  return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Perform the initial formatting.\n        var valueNegative = value < 0;\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = formatTrim(value);\n\n        // If a negative value rounds to zero during formatting, treat as positive.\n        if (valueNegative && +value === 0) valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n        valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  decimal: \".\",\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"],\n  minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n  return new Adder;\n}\n\nfunction Adder() {\n  this.reset();\n}\n\nAdder.prototype = {\n  constructor: Adder,\n  reset: function() {\n    this.s = // rounded value\n    this.t = 0; // exact error\n  },\n  add: function(y) {\n    add(temp, y, this.t);\n    add(this, temp.s, this.s);\n    if (this.s) this.t += temp.t;\n    else this.s = temp.t;\n  },\n  valueOf: function() {\n    return this.s;\n  }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n  var x = adder.s = a + b,\n      bv = x - a,\n      av = x - bv;\n  adder.t = (a - av) + (b - bv);\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 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","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n    lambda00,\n    phi00,\n    lambda0,\n    cosPhi0,\n    sinPhi0;\n\nexport var areaStream = {\n  point: noop,\n  lineStart: noop,\n  lineEnd: noop,\n  polygonStart: function() {\n    areaRingSum.reset();\n    areaStream.lineStart = areaRingStart;\n    areaStream.lineEnd = areaRingEnd;\n  },\n  polygonEnd: function() {\n    var areaRing = +areaRingSum;\n    areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n    this.lineStart = this.lineEnd = this.point = noop;\n  },\n  sphere: function() {\n    areaSum.add(tau);\n  }\n};\n\nfunction areaRingStart() {\n  areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n  areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n  areaStream.point = areaPoint;\n  lambda00 = lambda, phi00 = phi;\n  lambda *= radians, phi *= radians;\n  lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n  lambda *= radians, phi *= radians;\n  phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n  // Spherical excess E for a spherical triangle with vertices: south pole,\n  // previous point, current point.  Uses a formula derived from Cagnoli’s\n  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n  var dLambda = lambda - lambda0,\n      sdLambda = dLambda >= 0 ? 1 : -1,\n      adLambda = sdLambda * dLambda,\n      cosPhi = cos(phi),\n      sinPhi = sin(phi),\n      k = sinPhi0 * sinPhi,\n      u = cosPhi0 * cosPhi + k * cos(adLambda),\n      v = k * sdLambda * sin(adLambda);\n  areaRingSum.add(atan2(v, u));\n\n  // Advance the previous points.\n  lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n  areaSum.reset();\n  stream(object, areaStream);\n  return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n    lambda2, // previous lambda-coordinate\n    lambda00, phi00, // first point\n    p0, // previous 3D point\n    deltaSum = adder(),\n    ranges,\n    range;\n\nvar boundsStream = {\n  point: boundsPoint,\n  lineStart: boundsLineStart,\n  lineEnd: boundsLineEnd,\n  polygonStart: function() {\n    boundsStream.point = boundsRingPoint;\n    boundsStream.lineStart = boundsRingStart;\n    boundsStream.lineEnd = boundsRingEnd;\n    deltaSum.reset();\n    areaStream.polygonStart();\n  },\n  polygonEnd: function() {\n    areaStream.polygonEnd();\n    boundsStream.point = boundsPoint;\n    boundsStream.lineStart = boundsLineStart;\n    boundsStream.lineEnd = boundsLineEnd;\n    if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n    else if (deltaSum > epsilon) phi1 = 90;\n    else if (deltaSum < -epsilon) phi0 = -90;\n    range[0] = lambda0, range[1] = lambda1;\n  },\n  sphere: function() {\n    lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n  }\n};\n\nfunction boundsPoint(lambda, phi) {\n  ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n  if (phi < phi0) phi0 = phi;\n  if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n  var p = cartesian([lambda * radians, phi * radians]);\n  if (p0) {\n    var normal = cartesianCross(p0, p),\n        equatorial = [normal[1], -normal[0], 0],\n        inflection = cartesianCross(equatorial, normal);\n    cartesianNormalizeInPlace(inflection);\n    inflection = spherical(inflection);\n    var delta = lambda - lambda2,\n        sign = delta > 0 ? 1 : -1,\n        lambdai = inflection[0] * degrees * sign,\n        phii,\n        antimeridian = abs(delta) > 180;\n    if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n      phii = inflection[1] * degrees;\n      if (phii > phi1) phi1 = phii;\n    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n      phii = -inflection[1] * degrees;\n      if (phii < phi0) phi0 = phii;\n    } else {\n      if (phi < phi0) phi0 = phi;\n      if (phi > phi1) phi1 = phi;\n    }\n    if (antimeridian) {\n      if (lambda < lambda2) {\n        if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n      } else {\n        if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n      }\n    } else {\n      if (lambda1 >= lambda0) {\n        if (lambda < lambda0) lambda0 = lambda;\n        if (lambda > lambda1) lambda1 = lambda;\n      } else {\n        if (lambda > lambda2) {\n          if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n        } else {\n          if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n        }\n      }\n    }\n  } else {\n    ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n  }\n  if (phi < phi0) phi0 = phi;\n  if (phi > phi1) phi1 = phi;\n  p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n  boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n  range[0] = lambda0, range[1] = lambda1;\n  boundsStream.point = boundsPoint;\n  p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n  if (p0) {\n    var delta = lambda - lambda2;\n    deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n  } else {\n    lambda00 = lambda, phi00 = phi;\n  }\n  areaStream.point(lambda, phi);\n  linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n  areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n  boundsRingPoint(lambda00, phi00);\n  areaStream.lineEnd();\n  if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n  range[0] = lambda0, range[1] = lambda1;\n  p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n  return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n  var i, n, a, b, merged, deltaMax, delta;\n\n  phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n  ranges = [];\n  stream(feature, boundsStream);\n\n  // First, sort ranges by their minimum longitudes.\n  if (n = ranges.length) {\n    ranges.sort(rangeCompare);\n\n    // Then, merge any ranges that overlap.\n    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n      b = ranges[i];\n      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n        if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n        if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n      } else {\n        merged.push(a = b);\n      }\n    }\n\n    // Finally, find the largest gap between the merged ranges.\n    // The final bounding box will be the inverse of this gap.\n    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n      b = merged[i];\n      if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n    }\n  }\n\n  ranges = range = null;\n\n  return lambda0 === Infinity || phi0 === Infinity\n      ? [[NaN, NaN], [NaN, NaN]]\n      : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n  if (abs(point[0]) <= pi)\n    return point[0];\n  else\n    return 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  sum.reset();\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 < -epsilon) ^ (winding & 1);\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\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.reset();\n  stream(object, lengthStream);\n  return +lengthSum;\n}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n    areaRingSum = 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.reset();\n  },\n  result: function() {\n    var area = areaSum / 2;\n    areaSum.reset();\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 adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = 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.reset();\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","var t0 = new Date,\n    t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = function(date) {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n  // noop\n}, function(date, step) {\n  date.setTime(+date + step);\n}, function(start, end) {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return interval(function(date) {\n    date.setTime(Math.floor(date / k) * k);\n  }, function(date, step) {\n    date.setTime(+date + step * k);\n  }, function(start, end) {\n    return (end - start) / k;\n  });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n  date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n  date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n  return (end - start) / durationSecond;\n}, function(date) {\n  return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setDate(date.getDate() + step);\n}, function(start, end) {\n  return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n  return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n  return interval(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n  return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n  date.setUTCSeconds(0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n  date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / durationDay;\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n  return interval(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n  return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  var map = {}, i = -1, n = names.length;\n  while (++i < n) map[names[i].toLowerCase()] = i;\n  return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n  return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n    ? formatIsoNative\n    : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n  var date = new Date(string);\n  return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n    ? parseIsoNative\n    : utcParse(isoSpecifier);\n\nexport default parseIso;\n","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","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n  return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\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","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","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","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\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","function sign(x) {\n  return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n  var h0 = that._x1 - that._x0,\n      h1 = x2 - that._x1,\n      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n      p = (s0 * h1 + s1 * h0) / (h0 + h1);\n  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n  var h = that._x1 - that._x0;\n  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n  var x0 = that._x0,\n      y0 = that._y0,\n      x1 = that._x1,\n      y1 = that._y1,\n      dx = (x1 - x0) / 3;\n  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n  this._context = context;\n}\n\nMonotoneX.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 =\n    this._t0 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n      case 3: point(this, this._t0, slope2(this, this._t0)); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    var t1 = NaN;\n\n    x = +x, y = +y;\n    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n      default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n    }\n\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n    this._t0 = t1;\n  }\n}\n\nfunction MonotoneY(context) {\n  this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n  MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n  this._context = context;\n}\n\nReflectContext.prototype = {\n  moveTo: function(x, y) { this._context.moveTo(y, x); },\n  closePath: function() { this._context.closePath(); },\n  lineTo: function(x, y) { this._context.lineTo(y, x); },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n  return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n  return new MonotoneY(context);\n}\n","export default function(x) {\n  return function() {\n    return x;\n  };\n}\n","export default function ZoomEvent(target, type, transform) {\n  this.target = target;\n  this.type = type;\n  this.transform = transform;\n}\n","export function Transform(k, x, y) {\n  this.k = k;\n  this.x = x;\n  this.y = y;\n}\n\nTransform.prototype = {\n  constructor: Transform,\n  scale: function(k) {\n    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n  },\n  translate: function(x, y) {\n    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n  },\n  apply: function(point) {\n    return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n  },\n  applyX: function(x) {\n    return x * this.k + this.x;\n  },\n  applyY: function(y) {\n    return y * this.k + this.y;\n  },\n  invert: function(location) {\n    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n  },\n  invertX: function(x) {\n    return (x - this.x) / this.k;\n  },\n  invertY: function(y) {\n    return (y - this.y) / this.k;\n  },\n  rescaleX: function(x) {\n    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n  },\n  rescaleY: function(y) {\n    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n  },\n  toString: function() {\n    return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n  }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n  while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n  return node.__zoom;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n  event.stopImmediatePropagation();\n}\n\nexport default function() {\n  event.preventDefault();\n  event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n  return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n  var e = this;\n  if (e instanceof SVGElement) {\n    e = e.ownerSVGElement || e;\n    if (e.hasAttribute(\"viewBox\")) {\n      e = e.viewBox.baseVal;\n      return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n    }\n    return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n  }\n  return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n  return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n  return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n  return transform.translate(\n    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n  );\n}\n\nexport default function() {\n  var filter = defaultFilter,\n      extent = defaultExtent,\n      constrain = defaultConstrain,\n      wheelDelta = defaultWheelDelta,\n      touchable = defaultTouchable,\n      scaleExtent = [0, Infinity],\n      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n      duration = 250,\n      interpolate = interpolateZoom,\n      listeners = dispatch(\"start\", \"zoom\", \"end\"),\n      touchstarting,\n      touchending,\n      touchDelay = 500,\n      wheelDelay = 150,\n      clickDistance2 = 0;\n\n  function zoom(selection) {\n    selection\n        .property(\"__zoom\", defaultTransform)\n        .on(\"wheel.zoom\", wheeled)\n        .on(\"mousedown.zoom\", mousedowned)\n        .on(\"dblclick.zoom\", dblclicked)\n      .filter(touchable)\n        .on(\"touchstart.zoom\", touchstarted)\n        .on(\"touchmove.zoom\", touchmoved)\n        .on(\"touchend.zoom touchcancel.zoom\", touchended)\n        .style(\"touch-action\", \"none\")\n        .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n  }\n\n  zoom.transform = function(collection, transform, point) {\n    var selection = collection.selection ? collection.selection() : collection;\n    selection.property(\"__zoom\", defaultTransform);\n    if (collection !== selection) {\n      schedule(collection, transform, point);\n    } else {\n      selection.interrupt().each(function() {\n        gesture(this, arguments)\n            .start()\n            .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n            .end();\n      });\n    }\n  };\n\n  zoom.scaleBy = function(selection, k, p) {\n    zoom.scaleTo(selection, function() {\n      var k0 = this.__zoom.k,\n          k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n      return k0 * k1;\n    }, p);\n  };\n\n  zoom.scaleTo = function(selection, k, p) {\n    zoom.transform(selection, function() {\n      var e = extent.apply(this, arguments),\n          t0 = this.__zoom,\n          p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n          p1 = t0.invert(p0),\n          k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n    }, p);\n  };\n\n  zoom.translateBy = function(selection, x, y) {\n    zoom.transform(selection, function() {\n      return constrain(this.__zoom.translate(\n        typeof x === \"function\" ? x.apply(this, arguments) : x,\n        typeof y === \"function\" ? y.apply(this, arguments) : y\n      ), extent.apply(this, arguments), translateExtent);\n    });\n  };\n\n  zoom.translateTo = function(selection, x, y, p) {\n    zoom.transform(selection, function() {\n      var e = extent.apply(this, arguments),\n          t = this.__zoom,\n          p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n      return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n        typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n        typeof y === \"function\" ? -y.apply(this, arguments) : -y\n      ), e, translateExtent);\n    }, p);\n  };\n\n  function scale(transform, k) {\n    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n  }\n\n  function translate(transform, p0, p1) {\n    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n  }\n\n  function centroid(extent) {\n    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n  }\n\n  function schedule(transition, transform, point) {\n    transition\n        .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n        .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n        .tween(\"zoom\", function() {\n          var that = this,\n              args = arguments,\n              g = gesture(that, args),\n              e = extent.apply(that, args),\n              p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n              a = that.__zoom,\n              b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n          return function(t) {\n            if (t === 1) t = b; // Avoid rounding error on end.\n            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n            g.zoom(null, t);\n          };\n        });\n  }\n\n  function gesture(that, args, clean) {\n    return (!clean && that.__zooming) || new Gesture(that, args);\n  }\n\n  function Gesture(that, args) {\n    this.that = that;\n    this.args = args;\n    this.active = 0;\n    this.extent = extent.apply(that, args);\n    this.taps = 0;\n  }\n\n  Gesture.prototype = {\n    start: function() {\n      if (++this.active === 1) {\n        this.that.__zooming = this;\n        this.emit(\"start\");\n      }\n      return this;\n    },\n    zoom: function(key, transform) {\n      if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n      if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n      if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n      this.that.__zoom = transform;\n      this.emit(\"zoom\");\n      return this;\n    },\n    end: function() {\n      if (--this.active === 0) {\n        delete this.that.__zooming;\n        this.emit(\"end\");\n      }\n      return this;\n    },\n    emit: function(type) {\n      customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n    }\n  };\n\n  function wheeled() {\n    if (!filter.apply(this, arguments)) return;\n    var g = gesture(this, arguments),\n        t = this.__zoom,\n        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n        p = mouse(this);\n\n    // If the mouse is in the same location as before, reuse it.\n    // If there were recent wheel events, reset the wheel idle timeout.\n    if (g.wheel) {\n      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n        g.mouse[1] = t.invert(g.mouse[0] = p);\n      }\n      clearTimeout(g.wheel);\n    }\n\n    // If this wheel event won’t trigger a transform change, ignore it.\n    else if (t.k === k) return;\n\n    // Otherwise, capture the mouse point and location at the start.\n    else {\n      g.mouse = [p, t.invert(p)];\n      interrupt(this);\n      g.start();\n    }\n\n    noevent();\n    g.wheel = setTimeout(wheelidled, wheelDelay);\n    g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n    function wheelidled() {\n      g.wheel = null;\n      g.end();\n    }\n  }\n\n  function mousedowned() {\n    if (touchending || !filter.apply(this, arguments)) return;\n    var g = gesture(this, arguments, true),\n        v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n        p = mouse(this),\n        x0 = event.clientX,\n        y0 = event.clientY;\n\n    dragDisable(event.view);\n    nopropagation();\n    g.mouse = [p, this.__zoom.invert(p)];\n    interrupt(this);\n    g.start();\n\n    function mousemoved() {\n      noevent();\n      if (!g.moved) {\n        var dx = event.clientX - x0, dy = event.clientY - y0;\n        g.moved = dx * dx + dy * dy > clickDistance2;\n      }\n      g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n    }\n\n    function mouseupped() {\n      v.on(\"mousemove.zoom mouseup.zoom\", null);\n      dragEnable(event.view, g.moved);\n      noevent();\n      g.end();\n    }\n  }\n\n  function dblclicked() {\n    if (!filter.apply(this, arguments)) return;\n    var t0 = this.__zoom,\n        p0 = mouse(this),\n        p1 = t0.invert(p0),\n        k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n    noevent();\n    if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n    else select(this).call(zoom.transform, t1);\n  }\n\n  function touchstarted() {\n    if (!filter.apply(this, arguments)) return;\n    var touches = event.touches,\n        n = touches.length,\n        g = gesture(this, arguments, event.changedTouches.length === n),\n        started, i, t, p;\n\n    nopropagation();\n    for (i = 0; i < n; ++i) {\n      t = touches[i], p = touch(this, touches, t.identifier);\n      p = [p, this.__zoom.invert(p), t.identifier];\n      if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n      else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n    }\n\n    if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n    if (started) {\n      if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n      interrupt(this);\n      g.start();\n    }\n  }\n\n  function touchmoved() {\n    if (!this.__zooming) return;\n    var g = gesture(this, arguments),\n        touches = event.changedTouches,\n        n = touches.length, i, t, p, l;\n\n    noevent();\n    if (touchstarting) touchstarting = clearTimeout(touchstarting);\n    g.taps = 0;\n    for (i = 0; i < n; ++i) {\n      t = touches[i], p = touch(this, touches, t.identifier);\n      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n    }\n    t = g.that.__zoom;\n    if (g.touch1) {\n      var p0 = g.touch0[0], l0 = g.touch0[1],\n          p1 = g.touch1[0], l1 = g.touch1[1],\n          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n      t = scale(t, Math.sqrt(dp / dl));\n      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n    }\n    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n    else return;\n    g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n  }\n\n  function touchended() {\n    if (!this.__zooming) return;\n    var g = gesture(this, arguments),\n        touches = event.changedTouches,\n        n = touches.length, i, t;\n\n    nopropagation();\n    if (touchending) clearTimeout(touchending);\n    touchending = setTimeout(function() { touchending = null; }, touchDelay);\n    for (i = 0; i < n; ++i) {\n      t = touches[i];\n      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n    }\n    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n    else {\n      g.end();\n      // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n      if (g.taps === 2) {\n        var p = select(this).on(\"dblclick.zoom\");\n        if (p) p.apply(this, arguments);\n      }\n    }\n  }\n\n  zoom.wheelDelta = function(_) {\n    return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n  };\n\n  zoom.filter = function(_) {\n    return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n  };\n\n  zoom.touchable = function(_) {\n    return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n  };\n\n  zoom.extent = function(_) {\n    return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n  };\n\n  zoom.scaleExtent = function(_) {\n    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n  };\n\n  zoom.translateExtent = function(_) {\n    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n  };\n\n  zoom.constrain = function(_) {\n    return arguments.length ? (constrain = _, zoom) : constrain;\n  };\n\n  zoom.duration = function(_) {\n    return arguments.length ? (duration = +_, zoom) : duration;\n  };\n\n  zoom.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, zoom) : interpolate;\n  };\n\n  zoom.on = function() {\n    var value = listeners.on.apply(listeners, arguments);\n    return value === listeners ? zoom : value;\n  };\n\n  zoom.clickDistance = function(_) {\n    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n  };\n\n  return zoom;\n}\n","function styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nexport default styleInject;\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport * as d3 from 'd3'\nimport styles from './styles.css'\n\nexport default class SeatMap extends React.Component {\n  static propTypes = {\n    sections: PropTypes.array,\n    seats: PropTypes.array,\n    seatClick: PropTypes.func\n  }\n\n  constructor(props) {\n    super(props)\n    this.svgRef = React.createRef()\n  }\n\n  drawSections(container, data) {\n    const sections = container.append('g')\n    sections.selectAll('path')\n      .data(data)\n      .enter()\n      .append('path')\n      .attr('fill', '#F2F2F2')\n      .attr('d', (d) => d.path)\n      .attr('transform', (d) => d.transform)\n  }\n\n  drawSeats(container, data, clickHandler) {\n    container.append('g')\n      .selectAll('circle')\n      .data(data)\n      .enter()\n      .append('circle')\n      .attr('fill', '#5499C7')\n      .attr('r', 1)\n      .attr('cx', (d) => d.x)\n      .attr('cy', (d) => d.y)\n      .on('click', (d) => clickHandler(d))\n  }\n\n  drawSvg() {\n    const selection = d3.select(this.svgRef.current)\n    const parent = selection._groups[0][0]\n\n    const width = parent.clientWidth\n    const height = parent.clientHeight\n    const xOffset = (640 - width) / 2\n    const yOffset = (480 - height) / 2\n    const defaultZoom = Math.min(width / 640, height / 480)\n\n    const params = {\n      minX: xOffset,\n      minY: yOffset,\n      scale: [0.5, 20]\n    }\n\n    const zoom = d3.zoom().scaleExtent(params.scale)\n\n    const svg = selection\n      .attr('width', '100%')\n      .attr('height', '100%')\n      .attr('viewBox', params.minX + ' ' + params.minY + ' ' + width + ' ' + height)\n      .attr('preserveAspectRatio', 'xMinYMin')\n      .call(zoom)\n      .on('dblclick.zoom', null)\n\n    svg.select('g').remove()\n    const container = svg.append('g')\n    zoom.on('zoom', function () {\n      container.attr('transform', d3.event.transform)\n    })\n\n    this.drawSections(container, this.props.sections)\n    this.drawSeats(container, this.props.seats, this.props.seatClick)\n    zoom.scaleBy(svg, defaultZoom)\n  }\n\n  componentDidUpdate() {\n    this.drawSvg()\n  }\n\n  render() {\n    return (\n      <div className={styles.mapContainer}>\n        <svg className={styles.map} ref={this.svgRef} />\n      </div>\n    )\n  }\n}\n"]}