{"version":3,"sources":["../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js","../../node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/expand.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/stack.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/exponent.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/natural.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/none.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisect.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/round.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatGroup.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatNumerals.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTrim.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatRounded.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTypes.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/identity.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/locale.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/defaultLocale.js","../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatDecimal.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/range.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/band.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/math.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/number.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ascending.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/array.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/noop.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/linear.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/point.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/ordinal.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/number.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/number.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basis.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/circle.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionPrefix.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionRound.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionFixed.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/tickFormat.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/identity.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/nice.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/log.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/symlog.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/pow.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/radial.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/quickselect.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/quantile.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/quantile.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/quantize.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/threshold.js","../../node_modules/.pnpm/d3-time-format@3.0.0/node_modules/d3-time-format/src/locale.js","../../node_modules/.pnpm/d3-time-format@3.0.0/node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/time.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/utcTime.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/sequential.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/piecewise.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/diverging.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/index.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/order/none.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/area.js","../../src/index.ts","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/cross.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/square.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/star.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/wye.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatSpecifier.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisector.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/line.js","../../node_modules/.pnpm/d3-path@2.0.0/node_modules/d3-path/src/path.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/step.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/init.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/constant.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/constant.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/continuous.js","../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/define.js","../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/color.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basis.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basisClosed.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/constant.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/color.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/rgb.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/numberArray.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/array.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/date.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/object.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/string.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/value.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ticks.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/monotone.js","../../node_modules/.pnpm/copy-to-clipboard@3.3.1/node_modules/copy-to-clipboard/index.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/linear.js"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","define","conversions","Math","PI","value","sourceUnit","targetUnit","precision","Error","converted","pow","parseInt","round","symbols","circle","cross","diamond","square","star","triangle","wye","type","size","context","constant","undefined","symbol","buffer","path","draw","_","series","order","n","j","m","y","none","s0","s1","s2","si","sij0","sij1","s3","k","sk","skj0","skj1","stackValue","d","stackSeries","keys","orderNone","offset","offsetNone","stack","data","sz","from","oz","array","index","BasisClosed","_context","areaStart","noop","areaEnd","lineStart","_x0","_x1","_x2","_x3","_x4","_y0","_y1","_y2","_y3","_y4","NaN","_point","lineEnd","moveTo","closePath","lineTo","point","x","BasisOpen","_line","x0","y0","formatDecimalParts","abs","LinearClosed","Natural","_x","_y","px","controlPoints","py","i0","i1","bezierCurveTo","a","b","r","isNaN","ascendingBisect","bisector","ascending","bisectRight","right","bisectLeft","left","bisectCenter","number","center","t","grouping","thousands","width","g","max","substring","reverse","numerals","replace","s","out","slice","prefixExponent","p","coefficient","exponent","min","floor","toFixed","formatDecimal","toExponential","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","specifier","formatSpecifier","fill","align","sign","zero","comma","trim","formatTypes","prefix","test","toLowerCase","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","formatTrim","charCodeAt","Infinity","padding","formatPrefix","f","e","defaultLocale","definition","formatLocale","nativeCodeString","includes","toLocaleString","indexOf","start","stop","step","ceil","range","band","scale","ordinal","unknown","domain","ordinalRange","r0","r1","bandwidth","paddingInner","paddingOuter","rescale","values","sequence","rangeRound","copy","initRange","pointish","atan2","cos","sin","sqrt","epsilon","pi","halfPi","tau","acos","asin","Linear","implicit","Symbol","Map","get","set","has","numbers","valueof","that","Basis","arc","tickFormat","count","tickStep","precisionPrefix","precisionRound","precisionFixed","invert","linearish","nice","interval","x1","transformLog","log","transformExp","exp","transformLogn","transformExpn","pow10","isFinite","powp","base","E","logp","log10","log2","reflect","loggish","transform","logs","pows","ticks","u","v","z","transformer","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","continuous","clamp","quickselect","compare","sd","newLeft","newRight","swap","quantile","Float64Array","value0","subarray","value1","quantileSorted","thresholds","threshold","bisect","invertExtent","sort","quantiles","quantize","localDate","date","Date","H","M","S","L","setFullYear","utcDate","UTC","setUTCFullYear","newDate","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","X","string","pad","pads","charAt","newParse","Z","parseSpecifier","week","day","Q","q","V","w","getUTCDay","utcMonday","utcDay","getUTCFullYear","getUTCMonth","getUTCDate","getDay","timeMonday","timeDay","getFullYear","getMonth","getDate","W","U","parse","exec","getHours","getUTCHours","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","names","RegExp","name","timeYear","getMilliseconds","getMinutes","getSeconds","timeSunday","dISO","timeThursday","getTimezoneOffset","utcYear","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","utcSunday","UTCdISO","utcThursday","timeFormat","timeParse","calendar","tickInterval","year","month","hour","minute","second","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeTicks","timeTickInterval","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcTicks","utcTickInterval","utcMonth","utcWeek","utcHour","utcMinute","utcSecond","t0","t1","k10","interpolator","interpolate","interpolateRound","source","target","sequential","initInterpolator","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","piecewise","I","x2","t2","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","o","y1","defined","curve","curveLinear","output","pointX","pointY","area","defined0","x0z","y0z","arealine","line","lineX0","lineY0","lineY1","lineX1","isElement","el","nodeType","canOverflow","overflow","skipOverflowHiddenElements","isScrollable","clientHeight","scrollHeight","clientWidth","scrollWidth","style","getComputedStyle","overflowY","overflowX","frame","ownerDocument","defaultView","frameElement","getFrameElement","isHiddenByFrame","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","options","windowWithViewport","window","scrollMode","block","inline","boundary","checkBoundary","node","TypeError","scrollingElement","document","documentElement","frames","cursor","parentElement","body","viewportWidth","visualViewport","innerWidth","viewportHeight","height","innerHeight","viewportX","scrollX","pageXOffset","viewportY","scrollY","pageYOffset","getBoundingClientRect","targetHeight","targetWidth","targetTop","top","targetRight","targetBottom","bottom","targetLeft","targetBlock","targetInline","computations","frameStyle","borderLeft","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","offsetWidth","scrollbarHeight","offsetHeight","scrollLeft","scrollTop","tan30","tan30_2","rect","ka","kr","kx","ky","sqrt3","y2","re","match","FormatSpecifier","delta","ascendingComparator","lo","hi","mid","tauEpsilon","Path","constructor","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","tan","t01","t21","a0","a1","ccw","dx","dy","cw","da","h","Step","_t","stepBefore","stepAfter","constants","unit","normalize","clamper","bimap","d0","d1","polymap","interpolateValue","untransform","input","interpolateNumber","factory","extend","parent","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHsl","color_formatHsl","formatRgb","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","Hsl","hsl","m2","m1","hsl2rgb","basis","v0","v1","v2","v3","t3","linear","exponential","hue","gamma","nogamma","rgbGamma","end","colorRgb","rgbSpline","spline","colors","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","numberArray","genericArray","nb","na","setTime","reA","reB","one","bi","lastIndex","am","bm","bs","valueOf","object","e10","e5","e2","tickIncrement","power","LN10","error","step0","step1","slope3","h0","h1","slope2","MonotoneX","_t0","MonotoneY","ReflectContext","monotoneX","monotoneY","deselectCurrent","require","clipboardToIE11Formatting","defaultMessage","message","copyKey","navigator","userAgent","text","debug","reselectPrevious","selection","mark","success","createRange","getSelection","createElement","textContent","all","position","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","preventDefault","clipboardData","console","warn","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","successful","execCommand","err","prompt","removeRange","removeAllRanges","removeChild","prestep","maxIter"],"mappings":"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","file":"static/js/vendors~main~f41a22d6.8669b02d.chunk.js","sourcesContent":["/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var conversions = {\r\n    // length\r\n    'px': {\r\n        'px': 1,\r\n        'cm': 96.0/2.54,\r\n        'mm': 96.0/25.4,\r\n        'in': 96,\r\n        'pt': 96.0/72.0,\r\n        'pc': 16\r\n    },\r\n    'cm': {\r\n        'px': 2.54/96.0,\r\n        'cm': 1,\r\n        'mm': 0.1,\r\n        'in': 2.54,\r\n        'pt': 2.54/72.0,\r\n        'pc': 2.54/6.0\r\n    },\r\n    'mm': {\r\n        'px': 25.4/96.0,\r\n        'cm': 10,\r\n        'mm': 1,\r\n        'in': 25.4,\r\n        'pt': 25.4/72.0,\r\n        'pc': 25.4/6.0\r\n    },\r\n    'in': {\r\n        'px': 1.0/96.0,\r\n        'cm': 1.0/2.54,\r\n        'mm': 1.0/25.4,\r\n        'in': 1,\r\n        'pt': 1.0/72.0,\r\n        'pc': 1.0/6.0\r\n    },\r\n    'pt': {\r\n        'px': 0.75,\r\n        'cm': 72.0/2.54,\r\n        'mm': 72.0/25.4,\r\n        'in': 72,\r\n        'pt': 1,\r\n        'pc': 12\r\n    },\r\n    'pc': {\r\n        'px': 6.0/96.0,\r\n        'cm': 6.0/2.54,\r\n        'mm': 6.0/25.4,\r\n        'in': 6,\r\n        'pt': 6.0/72.0,\r\n        'pc': 1\r\n    },\r\n    // angle\r\n    'deg': {\r\n        'deg': 1,\r\n        'grad': 0.9,\r\n        'rad': 180/Math.PI,\r\n        'turn': 360\r\n    },\r\n    'grad': {\r\n        'deg': 400/360,\r\n        'grad': 1,\r\n        'rad': 200/Math.PI,\r\n        'turn': 400\r\n    },\r\n    'rad': {\r\n        'deg': Math.PI/180,\r\n        'grad': Math.PI/200,\r\n        'rad': 1,\r\n        'turn': Math.PI*2\r\n    },\r\n    'turn': {\r\n        'deg': 1/360,\r\n        'grad': 1/400,\r\n        'rad': 0.5/Math.PI,\r\n        'turn': 1\r\n    },\r\n    // time\r\n    's': {\r\n        's': 1,\r\n        'ms': 1/1000\r\n    },\r\n    'ms': {\r\n        's': 1000,\r\n        'ms': 1\r\n    },\r\n    // frequency\r\n    'Hz': {\r\n        'Hz': 1,\r\n        'kHz': 1000\r\n    },\r\n    'kHz': {\r\n        'Hz': 1/1000,\r\n        'kHz': 1\r\n    },\r\n    // resolution\r\n    'dpi': {\r\n        'dpi': 1,\r\n        'dpcm': 1.0/2.54,\r\n        'dppx': 1/96\r\n    },\r\n    'dpcm': {\r\n        'dpi': 2.54,\r\n        'dpcm': 1,\r\n        'dppx': 2.54/96.0\r\n    },\r\n    'dppx': {\r\n        'dpi': 96,\r\n        'dpcm': 96.0/2.54,\r\n        'dppx': 1\r\n    }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n    if (!conversions.hasOwnProperty(targetUnit))\r\n        throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n    if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n        throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n    \r\n    var converted = conversions[targetUnit][sourceUnit] * value;\r\n    \r\n    if (precision !== false) {\r\n        precision = Math.pow(10, parseInt(precision) || 5);\r\n        return Math.round(converted * precision) / precision;\r\n    }\r\n    \r\n    return converted;\r\n};\r\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n  circle,\n  cross,\n  diamond,\n  square,\n  star,\n  triangle,\n  wye\n];\n\nexport default function(type, size) {\n  var context = null;\n  type = typeof type === \"function\" ? type : constant(type || circle);\n  size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n  function symbol() {\n    var buffer;\n    if (!context) context = buffer = path();\n    type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  symbol.type = function(_) {\n    return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n  };\n\n  symbol.size = function(_) {\n    return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n  };\n\n  symbol.context = function(_) {\n    return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n  };\n\n  return symbol;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n  }\n  none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n    s0[j][1] += s0[j][0] = -y / 2;\n  }\n  none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n      var si = series[order[i]],\n          sij0 = si[j][1] || 0,\n          sij1 = si[j - 1][1] || 0,\n          s3 = (sij0 - sij1) / 2;\n      for (var k = 0; k < i; ++k) {\n        var sk = series[order[k]],\n            skj0 = sk[j][1] || 0,\n            skj1 = sk[j - 1][1] || 0;\n        s3 += skj0 - skj1;\n      }\n      s1 += sij0, s2 += s3 * sij0;\n    }\n    s0[j - 1][1] += s0[j - 1][0] = y;\n    if (s1) y -= s2 / s1;\n  }\n  s0[j - 1][1] += s0[j - 1][0] = y;\n  none(series, order);\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n  return d[key];\n}\n\nfunction stackSeries(key) {\n  const series = [];\n  series.key = key;\n  return series;\n}\n\nexport default function() {\n  var keys = constant([]),\n      order = orderNone,\n      offset = offsetNone,\n      value = stackValue;\n\n  function stack(data) {\n    var sz = Array.from(keys.apply(this, arguments), stackSeries),\n        i, n = sz.length, j = -1,\n        oz;\n\n    for (const d of data) {\n      for (i = 0, ++j; i < n; ++i) {\n        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n      }\n    }\n\n    for (i = 0, oz = array(order(sz)); i < n; ++i) {\n      sz[oz[i]].index = i;\n    }\n\n    offset(sz, oz);\n    return sz;\n  }\n\n  stack.keys = function(_) {\n    return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n  };\n\n  stack.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n  };\n\n  stack.order = function(_) {\n    return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n  };\n\n  stack.offset = function(_) {\n    return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n  };\n\n  return stack;\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n  this._context = context;\n}\n\nBasisClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x2, this._y2);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x2, this._y2);\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n  this._context = context;\n}\n\nBasisOpen.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 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n      case 3: this._point = 4; // proceed\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisOpen(context);\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n  this._context = context;\n}\n\nLinearClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._point) this._context.closePath();\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    if (this._point) this._context.lineTo(x, y);\n    else this._point = 1, this._context.moveTo(x, y);\n  }\n};\n\nexport default function(context) {\n  return new LinearClosed(context);\n}\n","function Natural(context) {\n  this._context = context;\n}\n\nNatural.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        n = x.length;\n\n    if (n) {\n      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n      if (n === 2) {\n        this._context.lineTo(x[1], y[1]);\n      } else {\n        var px = controlPoints(x),\n            py = controlPoints(y);\n        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n        }\n      }\n    }\n\n    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n    this._x = this._y = null;\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n  var i,\n      n = x.length - 1,\n      m,\n      a = new Array(n),\n      b = new Array(n),\n      r = new Array(n);\n  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n  a[n - 1] = r[n - 1] / b[n - 1];\n  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n  b[n - 1] = (x[n] + a[n - 1]) / 2;\n  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n  return [a, b];\n}\n\nexport default function(context) {\n  return new Natural(context);\n}\n","export default function(series, order) {\n  if (!((n = series.length) > 1)) return;\n  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n    s0 = s1, s1 = series[order[i]];\n    for (j = 0; j < m; ++j) {\n      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n    }\n  }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return Math.round(a * (1 - t) + b * t);\n  };\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","// 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 {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimalParts(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\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimalParts(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 formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": (x, p) => (x * 100).toFixed(p),\n  \"b\": (x) => Math.round(x).toString(2),\n  \"c\": (x) => x + \"\",\n  \"d\": formatDecimal,\n  \"e\": (x, p) => x.toExponential(p),\n  \"f\": (x, p) => x.toFixed(p),\n  \"g\": (x, p) => x.toPrecision(p),\n  \"o\": (x) => Math.round(x).toString(8),\n  \"p\": (x, p) => formatRounded(x * 100, p),\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n  \"x\": (x) => 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        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\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 after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\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  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\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, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(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","export default function(start, stop, step) {\n  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n  var i = -1,\n      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n      range = new Array(n);\n\n  while (++i < n) {\n    range[i] = start + i * step;\n  }\n\n  return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n  var scale = ordinal().unknown(undefined),\n      domain = scale.domain,\n      ordinalRange = scale.range,\n      r0 = 0,\n      r1 = 1,\n      step,\n      bandwidth,\n      round = false,\n      paddingInner = 0,\n      paddingOuter = 0,\n      align = 0.5;\n\n  delete scale.unknown;\n\n  function rescale() {\n    var n = domain().length,\n        reverse = r1 < r0,\n        start = reverse ? r1 : r0,\n        stop = reverse ? r0 : r1;\n    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n    if (round) step = Math.floor(step);\n    start += (stop - start - step * (n - paddingInner)) * align;\n    bandwidth = step * (1 - paddingInner);\n    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n    var values = sequence(n).map(function(i) { return start + step * i; });\n    return ordinalRange(reverse ? values.reverse() : values);\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n  };\n\n  scale.rangeRound = function(_) {\n    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n  };\n\n  scale.bandwidth = function() {\n    return bandwidth;\n  };\n\n  scale.step = function() {\n    return step;\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, rescale()) : round;\n  };\n\n  scale.padding = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n  };\n\n  scale.paddingInner = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n  };\n\n  scale.paddingOuter = function(_) {\n    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n  };\n\n  scale.align = function(_) {\n    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n  };\n\n  scale.copy = function() {\n    return band(domain(), [r0, r1])\n        .round(round)\n        .paddingInner(paddingInner)\n        .paddingOuter(paddingOuter)\n        .align(align);\n  };\n\n  return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n  var copy = scale.copy;\n\n  scale.padding = scale.paddingOuter;\n  delete scale.paddingInner;\n  delete scale.paddingOuter;\n\n  scale.copy = function() {\n    return pointish(copy());\n  };\n\n  return scale;\n}\n\nexport function point() {\n  return pointish(band.apply(null, arguments).paddingInner(1));\n}\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","export default function number(x) {\n  return +x;\n}\n","export default function(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function() {}\n","function Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\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    x = +x, y = +y;\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; // proceed\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\nexport default function(context) {\n  return new Linear(context);\n}\n","export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n  var index = new Map(),\n      domain = [],\n      range = [],\n      unknown = implicit;\n\n  function scale(d) {\n    var key = d + \"\", i = index.get(key);\n    if (!i) {\n      if (unknown !== implicit) return unknown;\n      index.set(key, i = domain.push(d));\n    }\n    return range[(i - 1) % range.length];\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [], index = new Map();\n    for (const value of _) {\n      const key = value + \"\";\n      if (index.has(key)) continue;\n      index.set(key, domain.push(value));\n    }\n    return scale;\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), scale) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return ordinal(domain, range).unknown(unknown);\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n","export default function(x) {\n  return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n","export function point(that, x, y) {\n  that._context.bezierCurveTo(\n    (2 * that._x0 + that._x1) / 3,\n    (2 * that._y0 + that._y1) / 3,\n    (that._x0 + 2 * that._x1) / 3,\n    (that._y0 + 2 * that._y1) / 3,\n    (that._x0 + 4 * that._x1 + x) / 6,\n    (that._y0 + 4 * that._y1 + y) / 6\n  );\n}\n\nexport function Basis(context) {\n  this._context = context;\n}\n\nBasis.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 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 3: point(this, this._x1, this._y1); // proceed\n      case 2: this._context.lineTo(this._x1, this._y1); 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    x = +x, y = +y;\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; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new Basis(context);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n  draw: function(context, size) {\n    var r = Math.sqrt(size / pi);\n    context.moveTo(r, 0);\n    context.arc(0, 0, r, 0, tau);\n  }\n};\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n  return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n  var step = tickStep(start, stop, count),\n      precision;\n  specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n      return formatPrefix(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return format(specifier);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n  var unknown;\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : x;\n  }\n\n  scale.invert = scale;\n\n  scale.domain = scale.range = function(_) {\n    return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return identity(domain).unknown(unknown);\n  };\n\n  domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n  return linearish(scale);\n}\n","export default function nice(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n  return Math.log(x);\n}\n\nfunction transformExp(x) {\n  return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n  return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n  return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n  return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n  return base === 10 ? pow10\n      : base === Math.E ? Math.exp\n      : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n  return base === Math.E ? Math.log\n      : base === 10 && Math.log10\n      || base === 2 && Math.log2\n      || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n  return function(x) {\n    return -f(-x);\n  };\n}\n\nexport function loggish(transform) {\n  var scale = transform(transformLog, transformExp),\n      domain = scale.domain,\n      base = 10,\n      logs,\n      pows;\n\n  function rescale() {\n    logs = logp(base), pows = powp(base);\n    if (domain()[0] < 0) {\n      logs = reflect(logs), pows = reflect(pows);\n      transform(transformLogn, transformExpn);\n    } else {\n      transform(transformLog, transformExp);\n    }\n    return scale;\n  }\n\n  scale.base = function(_) {\n    return arguments.length ? (base = +_, rescale()) : base;\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.ticks = function(count) {\n    var d = domain(),\n        u = d[0],\n        v = d[d.length - 1],\n        r;\n\n    if (r = v < u) i = u, u = v, v = i;\n\n    var i = logs(u),\n        j = logs(v),\n        p,\n        k,\n        t,\n        n = count == null ? 10 : +count,\n        z = [];\n\n    if (!(base % 1) && j - i < n) {\n      i = Math.floor(i), j = Math.ceil(j);\n      if (u > 0) for (; i <= j; ++i) {\n        for (k = 1, p = pows(i); k < base; ++k) {\n          t = p * k;\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      } else for (; i <= j; ++i) {\n        for (k = base - 1, p = pows(i); k >= 1; --k) {\n          t = p * k;\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      }\n      if (z.length * 2 < n) z = ticks(u, v, n);\n    } else {\n      z = ticks(i, j, Math.min(j - i, n)).map(pows);\n    }\n\n    return r ? z.reverse() : z;\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n    if (typeof specifier !== \"function\") specifier = format(specifier);\n    if (count === Infinity) return specifier;\n    if (count == null) count = 10;\n    var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n    return function(d) {\n      var i = d / pows(Math.round(logs(d)));\n      if (i * base < base - 0.5) i *= base;\n      return i <= k ? specifier(d) : \"\";\n    };\n  };\n\n  scale.nice = function() {\n    return domain(nice(domain(), {\n      floor: function(x) { return pows(Math.floor(logs(x))); },\n      ceil: function(x) { return pows(Math.ceil(logs(x))); }\n    }));\n  };\n\n  return scale;\n}\n\nexport default function log() {\n  var scale = loggish(transformer()).domain([1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, log()).base(scale.base());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n  return function(x) {\n    return Math.sign(x) * Math.log1p(Math.abs(x / c));\n  };\n}\n\nfunction transformSymexp(c) {\n  return function(x) {\n    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n  };\n}\n\nexport function symlogish(transform) {\n  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n  scale.constant = function(_) {\n    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n  };\n\n  return linearish(scale);\n}\n\nexport default function symlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, symlog()).constant(scale.constant());\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n  return function(x) {\n    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n  };\n}\n\nfunction transformSqrt(x) {\n  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n  return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n  var scale = transform(identity, identity),\n      exponent = 1;\n\n  function rescale() {\n    return exponent === 1 ? transform(identity, identity)\n        : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n        : transform(transformPow(exponent), transformPow(1 / exponent));\n  }\n\n  scale.exponent = function(_) {\n    return arguments.length ? (exponent = +_, rescale()) : exponent;\n  };\n\n  return linearish(scale);\n}\n\nexport default function pow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, pow()).exponent(scale.exponent());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n\nexport function sqrt() {\n  return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n  return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n  return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n  var squared = continuous(),\n      range = [0, 1],\n      round = false,\n      unknown;\n\n  function scale(x) {\n    var y = unsquare(squared(x));\n    return isNaN(y) ? unknown : round ? Math.round(y) : y;\n  }\n\n  scale.invert = function(y) {\n    return squared.invert(square(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (squared.domain(_), scale) : squared.domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return scale.range(_).round(true);\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, scale) : round;\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return radial(squared.domain(), range)\n        .round(round)\n        .clamp(squared.clamp())\n        .unknown(unknown);\n  };\n\n  initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n","export default function max(values, valueof) {\n  let max;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  }\n  return max;\n}\n","export default function min(values, valueof) {\n  let min;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  }\n  return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n  while (right > left) {\n    if (right - left > 600) {\n      const n = right - left + 1;\n      const m = k - left + 1;\n      const z = Math.log(n);\n      const s = 0.5 * Math.exp(2 * z / 3);\n      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n      quickselect(array, k, newLeft, newRight, compare);\n    }\n\n    const t = array[k];\n    let i = left;\n    let j = right;\n\n    swap(array, left, k);\n    if (compare(array[right], t) > 0) swap(array, left, right);\n\n    while (i < j) {\n      swap(array, i, j), ++i, --j;\n      while (compare(array[i], t) < 0) ++i;\n      while (compare(array[j], t) > 0) --j;\n    }\n\n    if (compare(array[left], t) === 0) swap(array, left, j);\n    else ++j, swap(array, j, right);\n\n    if (j <= k) left = j + 1;\n    if (k <= j) right = j - 1;\n  }\n  return array;\n}\n\nfunction swap(array, i, j) {\n  const t = array[i];\n  array[i] = array[j];\n  array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n  values = Float64Array.from(numbers(values, valueof));\n  if (!(n = values.length)) return;\n  if ((p = +p) <= 0 || n < 2) return min(values);\n  if (p >= 1) return max(values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n      value1 = min(values.subarray(i0 + 1));\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n  if (!(n = values.length)) return;\n  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n  if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = +valueof(values[i0], i0, values),\n      value1 = +valueof(values[i0 + 1], i0 + 1, values);\n  return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n  var domain = [],\n      range = [],\n      thresholds = [],\n      unknown;\n\n  function rescale() {\n    var i = 0, n = Math.max(1, range.length);\n    thresholds = new Array(n - 1);\n    while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n  }\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN] : [\n      i > 0 ? thresholds[i - 1] : domain[0],\n      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n    ];\n  };\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(ascending);\n    return rescale();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.quantiles = function() {\n    return thresholds.slice();\n  };\n\n  scale.copy = function() {\n    return quantile()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n  var x0 = 0,\n      x1 = 1,\n      n = 1,\n      domain = [0.5],\n      range = [0, 1],\n      unknown;\n\n  function scale(x) {\n    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n  }\n\n  function rescale() {\n    var i = -1;\n    domain = new Array(n);\n    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n    return scale;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN]\n        : i < 1 ? [x0, domain[0]]\n        : i >= n ? [domain[n - 1], x1]\n        : [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : scale;\n  };\n\n  scale.thresholds = function() {\n    return domain.slice();\n  };\n\n  scale.copy = function() {\n    return quantize()\n        .domain([x0, x1])\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n  var domain = [0.5],\n      range = [0, 1],\n      unknown,\n      n = 1;\n\n  function scale(x) {\n    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return threshold()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(scale, arguments);\n}\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    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\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    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\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    \"g\": parseYear,\n    \"G\": parseFullYear,\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.get(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.get(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.get(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.get(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.get(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  return new Map(names.map((name, i) => [name.toLowerCase(), i]));\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 dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(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 formatYearISO(d, p) {\n  d = dISO(d);\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 formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\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 UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(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 formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\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 formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\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 {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n  var scale = continuous(),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval) {\n    var d = domain();\n    if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n    return interval ? domain(nice(d, interval)) : scale;\n  };\n\n  scale.copy = function() {\n    return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n  };\n\n  return scale;\n}\n\nexport default function time() {\n  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n  return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 1,\n      t0,\n      t1,\n      k10,\n      transform,\n      interpolator = identity,\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1;\n      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n    };\n  }\n\n  scale.range = range(interpolate);\n\n  scale.rangeRound = range(interpolateRound);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n    return scale;\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .interpolator(source.interpolator())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nexport default function sequential() {\n  var scale = linearish(transformer()(identity));\n\n  scale.copy = function() {\n    return copy(scale, sequential());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n  var scale = loggish(transformer()).domain([1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, sequentialLog()).base(scale.base());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialSymlog()).constant(scale.constant());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialPow()).exponent(scale.exponent());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n  return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n  var domain = [],\n      interpolator = identity;\n\n  function scale(x) {\n    if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(ascending);\n    return scale;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  scale.range = function() {\n    return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n  };\n\n  scale.quantiles = function(n) {\n    return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n  };\n\n  scale.copy = function() {\n    return sequentialQuantile(interpolator).domain(domain);\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n  if (values === undefined) values = interpolate, interpolate = value;\n  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n  while (i < n) I[i] = interpolate(v, v = values[++i]);\n  return function(t) {\n    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n    return I[i](t - i);\n  };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 0.5,\n      x2 = 1,\n      s = 1,\n      t0,\n      t1,\n      t2,\n      k10,\n      k21,\n      interpolator = identity,\n      transform,\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1, r2;\n      return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n    };\n  }\n\n  scale.range = range(interpolate);\n\n  scale.rangeRound = range(interpolateRound);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n    return scale;\n  };\n}\n\nexport default function diverging() {\n  var scale = linearish(transformer()(identity));\n\n  scale.copy = function() {\n    return copy(scale, diverging());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n  var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, divergingLog()).base(scale.base());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, divergingSymlog()).constant(scale.constant());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n  var scale = powish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, divergingPow()).exponent(scale.exponent());\n  };\n\n  return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n  return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export {\n  default as scaleBand,\n  point as scalePoint\n} from \"./band.js\";\n\nexport {\n  default as scaleIdentity\n} from \"./identity.js\";\n\nexport {\n  default as scaleLinear\n} from \"./linear.js\";\n\nexport {\n  default as scaleLog\n} from \"./log.js\";\n\nexport {\n  default as scaleSymlog\n} from \"./symlog.js\";\n\nexport {\n  default as scaleOrdinal,\n  implicit as scaleImplicit\n} from \"./ordinal.js\";\n\nexport {\n  default as scalePow,\n  sqrt as scaleSqrt\n} from \"./pow.js\";\n\nexport {\n  default as scaleRadial\n} from \"./radial.js\";\n\nexport {\n  default as scaleQuantile\n} from \"./quantile.js\";\n\nexport {\n  default as scaleQuantize\n} from \"./quantize.js\";\n\nexport {\n  default as scaleThreshold\n} from \"./threshold.js\";\n\nexport {\n  default as scaleTime\n} from \"./time.js\";\n\nexport {\n  default as scaleUtc\n} from \"./utcTime.js\";\n\nexport {\n  default as scaleSequential,\n  sequentialLog as scaleSequentialLog,\n  sequentialPow as scaleSequentialPow,\n  sequentialSqrt as scaleSequentialSqrt,\n  sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential.js\";\n\nexport {\n  default as scaleSequentialQuantile\n} from \"./sequentialQuantile.js\";\n\nexport {\n  default as scaleDiverging,\n  divergingLog as scaleDivergingLog,\n  divergingPow as scaleDivergingPow,\n  divergingSqrt as scaleDivergingSqrt,\n  divergingSymlog as scaleDivergingSymlog\n} from \"./diverging.js\";\n\nexport {\n  default as tickFormat\n} from \"./tickFormat.js\";\n","export default function(series) {\n  var n = series.length, o = new Array(n);\n  while (--n >= 0) o[n] = n;\n  return o;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n  var x1 = null,\n      defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null;\n\n  x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n  y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n  y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n  function area(data) {\n    var i,\n        j,\n        k,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer,\n        x0z = new Array(n),\n        y0z = new Array(n);\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) {\n          j = i;\n          output.areaStart();\n          output.lineStart();\n        } else {\n          output.lineEnd();\n          output.lineStart();\n          for (k = i - 1; k >= j; --k) {\n            output.point(x0z[k], y0z[k]);\n          }\n          output.lineEnd();\n          output.areaEnd();\n        }\n      }\n      if (defined0) {\n        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n      }\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  function arealine() {\n    return line().defined(defined).curve(curve).context(context);\n  }\n\n  area.x = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n  };\n\n  area.x0 = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n  };\n\n  area.x1 = function(_) {\n    return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n  };\n\n  area.y = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n  };\n\n  area.y0 = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n  };\n\n  area.y1 = function(_) {\n    return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n  };\n\n  area.lineX0 =\n  area.lineY0 = function() {\n    return arealine().x(x0).y(y0);\n  };\n\n  area.lineY1 = function() {\n    return arealine().x(x0).y(y1);\n  };\n\n  area.lineX1 = function() {\n    return arealine().x(x1).y(y0);\n  };\n\n  area.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n  };\n\n  area.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n  };\n\n  area.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n  };\n\n  return area;\n}\n","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n  height: number\n  width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n  block?: ScrollLogicalPosition\n  inline?: ScrollLogicalPosition\n  scrollMode?: ScrollMode\n  boundary?: CustomScrollBoundary\n  skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n  el: Element\n  top: number\n  left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n  return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n  overflow: string | null,\n  skipOverflowHiddenElements?: boolean\n) {\n  if (skipOverflowHiddenElements && overflow === 'hidden') {\n    return false\n  }\n\n  return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n  if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n    return null\n  }\n\n  try {\n    return el.ownerDocument.defaultView.frameElement\n  } catch (e) {\n    return null\n  }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n  const frame = getFrameElement(el)\n  if (!frame) {\n    return false\n  }\n\n  return (\n    frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n  )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n  if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n    const style = getComputedStyle(el, null)\n    return (\n      canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n      canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n      isHiddenByFrame(el)\n    )\n  }\n\n  return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │   frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n  scrollingEdgeStart: number,\n  scrollingEdgeEnd: number,\n  scrollingSize: number,\n  scrollingBorderStart: number,\n  scrollingBorderEnd: number,\n  elementEdgeStart: number,\n  elementEdgeEnd: number,\n  elementSize: number\n) {\n  /**\n   * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n   *\n   *          ┌──┐\n   *        ┏━│━━│━┓\n   *          │  │\n   *        ┃ │  │ ┃        do nothing\n   *          │  │\n   *        ┗━│━━│━┛\n   *          └──┘\n   *\n   *  If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n   *\n   *    ┏ ━ ━ ━ ━ ┓\n   *   ┌───────────┐\n   *   │┃         ┃│        do nothing\n   *   └───────────┘\n   *    ┗ ━ ━ ━ ━ ┛\n   */\n  if (\n    (elementEdgeStart < scrollingEdgeStart &&\n      elementEdgeEnd > scrollingEdgeEnd) ||\n    (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n  ) {\n    return 0\n  }\n\n  /**\n   * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n   *\n   *          ┌──┐\n   *        ┏━│━━│━┓         ┏━┌━━┐━┓\n   *          └──┘             │  │\n   *  from  ┃      ┃     to  ┃ └──┘ ┃\n   *\n   *        ┗━ ━━ ━┛         ┗━ ━━ ━┛\n   *\n   * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n   *\n   *        ┏━ ━━ ━┓         ┏━┌━━┐━┓\n   *                           │  │\n   *  from  ┃ ┌──┐ ┃     to  ┃ │  │ ┃\n   *          │  │             │  │\n   *        ┗━│━━│━┛         ┗━│━━│━┛\n   *          │  │             └──┘\n   *          │  │\n   *          └──┘\n   *\n   * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n   *\n   *       from                 to\n   *    ┏ ━ ━ ━ ━ ┓         ┏ ━ ━ ━ ━ ┓\n   *  ┌───┐                 ┌───┐\n   *  │ ┃ │       ┃         ┃   │     ┃\n   *  └───┘                 └───┘\n   *    ┗ ━ ━ ━ ━ ┛         ┗ ━ ━ ━ ━ ┛\n   *\n   * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n   *\n   *       from                 to\n   *    ┏ ━ ━ ━ ━ ┓         ┏ ━ ━ ━ ━ ┓\n   *        ┌───────────┐   ┌───────────┐\n   *    ┃   │     ┃     │   ┃         ┃ │\n   *        └───────────┘   └───────────┘\n   *    ┗ ━ ━ ━ ━ ┛         ┗ ━ ━ ━ ━ ┛\n   */\n  if (\n    (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n    (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n  ) {\n    return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n  }\n\n  /**\n   * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n   *\n   *        ┏━ ━━ ━┓         ┏━ ━━ ━┓\n   *\n   *  from  ┃      ┃     to  ┃ ┌──┐ ┃\n   *          ┌──┐             │  │\n   *        ┗━│━━│━┛         ┗━└━━┘━┛\n   *          └──┘\n   *\n   * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n   *\n   *          ┌──┐\n   *          │  │\n   *          │  │             ┌──┐\n   *        ┏━│━━│━┓         ┏━│━━│━┓\n   *          │  │             │  │\n   *  from  ┃ └──┘ ┃     to  ┃ │  │ ┃\n   *                           │  │\n   *        ┗━ ━━ ━┛         ┗━└━━┘━┛\n   *\n   * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n   *\n   *           from                 to\n   *        ┏ ━ ━ ━ ━ ┓         ┏ ━ ━ ━ ━ ┓\n   *  ┌───────────┐           ┌───────────┐\n   *  │     ┃     │   ┃       │ ┃         ┃\n   *  └───────────┘           └───────────┘\n   *        ┗ ━ ━ ━ ━ ┛         ┗ ━ ━ ━ ━ ┛\n   *\n   * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n   *\n   *           from                 to\n   *        ┏ ━ ━ ━ ━ ┓         ┏ ━ ━ ━ ━ ┓\n   *                ┌───┐             ┌───┐\n   *        ┃       │ ┃ │       ┃     │   ┃\n   *                └───┘             └───┘\n   *        ┗ ━ ━ ━ ━ ┛         ┗ ━ ━ ━ ━ ┛\n   *\n   */\n  if (\n    (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n    (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n  ) {\n    return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n  }\n\n  return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n  //TODO: remove this hack when microbundle will support typescript >= 4.0\n  const windowWithViewport = (window as unknown) as Window & {\n    visualViewport: visualViewport\n  }\n\n  const {\n    scrollMode,\n    block,\n    inline,\n    boundary,\n    skipOverflowHiddenElements,\n  } = options\n  // Allow using a callback to check the boundary\n  // The default behavior is to check if the current target matches the boundary element or not\n  // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n  const checkBoundary =\n    typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n  if (!isElement(target)) {\n    throw new TypeError('Invalid target')\n  }\n\n  // Used to handle the top most element that can be scrolled\n  const scrollingElement = document.scrollingElement || document.documentElement\n\n  // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n  const frames: Element[] = []\n  let cursor: Element | null = target\n  while (isElement(cursor) && checkBoundary(cursor)) {\n    // Move cursor to parent\n    cursor = cursor.parentElement\n\n    // Stop when we reach the viewport\n    if (cursor === scrollingElement) {\n      frames.push(cursor)\n      break\n    }\n\n    // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n    if (\n      cursor != null &&\n      cursor === document.body &&\n      isScrollable(cursor) &&\n      !isScrollable(document.documentElement)\n    ) {\n      continue\n    }\n\n    // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n    if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n      frames.push(cursor)\n    }\n  }\n\n  // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n  // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n  // and viewport dimensions on window.innerWidth/Height\n  // https://www.quirksmode.org/mobile/viewports2.html\n  // https://bokand.github.io/viewport/index.html\n  const viewportWidth = windowWithViewport.visualViewport\n    ? windowWithViewport.visualViewport.width\n    : innerWidth\n  const viewportHeight = windowWithViewport.visualViewport\n    ? windowWithViewport.visualViewport.height\n    : innerHeight\n\n  // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n  const viewportX = window.scrollX || pageXOffset\n  const viewportY = window.scrollY || pageYOffset\n\n  const {\n    height: targetHeight,\n    width: targetWidth,\n    top: targetTop,\n    right: targetRight,\n    bottom: targetBottom,\n    left: targetLeft,\n  } = target.getBoundingClientRect()\n\n  // These values mutate as we loop through and generate scroll coordinates\n  let targetBlock: number =\n    block === 'start' || block === 'nearest'\n      ? targetTop\n      : block === 'end'\n      ? targetBottom\n      : targetTop + targetHeight / 2 // block === 'center\n  let targetInline: number =\n    inline === 'center'\n      ? targetLeft + targetWidth / 2\n      : inline === 'end'\n      ? targetRight\n      : targetLeft // inline === 'start || inline === 'nearest\n\n  // Collect new scroll positions\n  const computations: CustomScrollAction[] = []\n  // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n  for (let index = 0; index < frames.length; index++) {\n    const frame = frames[index]\n\n    // @TODO add a shouldScroll hook here that allows userland code to take control\n\n    const {\n      height,\n      width,\n      top,\n      right,\n      bottom,\n      left,\n    } = frame.getBoundingClientRect()\n\n    // If the element is already visible we can end it here\n    // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n    if (\n      scrollMode === 'if-needed' &&\n      targetTop >= 0 &&\n      targetLeft >= 0 &&\n      targetBottom <= viewportHeight &&\n      targetRight <= viewportWidth &&\n      targetTop >= top &&\n      targetBottom <= bottom &&\n      targetLeft >= left &&\n      targetRight <= right\n    ) {\n      // Break the loop and return the computations for things that are not fully visible\n      return computations\n    }\n\n    const frameStyle = getComputedStyle(frame)\n    const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n    const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n    const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n    const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n    let blockScroll: number = 0\n    let inlineScroll: number = 0\n\n    // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n    // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n    const scrollbarWidth =\n      'offsetWidth' in frame\n        ? (frame as HTMLElement).offsetWidth -\n          (frame as HTMLElement).clientWidth -\n          borderLeft -\n          borderRight\n        : 0\n    const scrollbarHeight =\n      'offsetHeight' in frame\n        ? (frame as HTMLElement).offsetHeight -\n          (frame as HTMLElement).clientHeight -\n          borderTop -\n          borderBottom\n        : 0\n\n    if (scrollingElement === frame) {\n      // Handle viewport logic (document.documentElement or document.body)\n\n      if (block === 'start') {\n        blockScroll = targetBlock\n      } else if (block === 'end') {\n        blockScroll = targetBlock - viewportHeight\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(\n          viewportY,\n          viewportY + viewportHeight,\n          viewportHeight,\n          borderTop,\n          borderBottom,\n          viewportY + targetBlock,\n          viewportY + targetBlock + targetHeight,\n          targetHeight\n        )\n      } else {\n        // block === 'center' is the default\n        blockScroll = targetBlock - viewportHeight / 2\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - viewportWidth / 2\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - viewportWidth\n      } else {\n        // inline === 'nearest' is the default\n        inlineScroll = alignNearest(\n          viewportX,\n          viewportX + viewportWidth,\n          viewportWidth,\n          borderLeft,\n          borderRight,\n          viewportX + targetInline,\n          viewportX + targetInline + targetWidth,\n          targetWidth\n        )\n      }\n\n      // Apply scroll position offsets and ensure they are within bounds\n      // @TODO add more test cases to cover this 100%\n      blockScroll = Math.max(0, blockScroll + viewportY)\n      inlineScroll = Math.max(0, inlineScroll + viewportX)\n    } else {\n      // Handle each scrolling frame that might exist between the target and the viewport\n\n      if (block === 'start') {\n        blockScroll = targetBlock - top - borderTop\n      } else if (block === 'end') {\n        blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(\n          top,\n          bottom,\n          height,\n          borderTop,\n          borderBottom + scrollbarHeight,\n          targetBlock,\n          targetBlock + targetHeight,\n          targetHeight\n        )\n      } else {\n        // block === 'center' is the default\n        blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline - left - borderLeft\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - right + borderRight + scrollbarWidth\n      } else {\n        // inline === 'nearest' is the default\n        inlineScroll = alignNearest(\n          left,\n          right,\n          width,\n          borderLeft,\n          borderRight + scrollbarWidth,\n          targetInline,\n          targetInline + targetWidth,\n          targetWidth\n        )\n      }\n\n      const { scrollLeft, scrollTop } = frame\n      // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n      blockScroll = Math.max(\n        0,\n        Math.min(\n          scrollTop + blockScroll,\n          frame.scrollHeight - height + scrollbarHeight\n        )\n      )\n      inlineScroll = Math.max(\n        0,\n        Math.min(\n          scrollLeft + inlineScroll,\n          frame.scrollWidth - width + scrollbarWidth\n        )\n      )\n\n      // Cache the offset so that parent frames can scroll this into view correctly\n      targetBlock += scrollTop - blockScroll\n      targetInline += scrollLeft - inlineScroll\n    }\n\n    computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n  }\n\n  return computations\n}\n","export default {\n  draw: function(context, size) {\n    var r = Math.sqrt(size / 5) / 2;\n    context.moveTo(-3 * r, -r);\n    context.lineTo(-r, -r);\n    context.lineTo(-r, -3 * r);\n    context.lineTo(r, -3 * r);\n    context.lineTo(r, -r);\n    context.lineTo(3 * r, -r);\n    context.lineTo(3 * r, r);\n    context.lineTo(r, r);\n    context.lineTo(r, 3 * r);\n    context.lineTo(-r, 3 * r);\n    context.lineTo(-r, r);\n    context.lineTo(-3 * r, r);\n    context.closePath();\n  }\n};\n","var tan30 = Math.sqrt(1 / 3),\n    tan30_2 = tan30 * 2;\n\nexport default {\n  draw: function(context, size) {\n    var y = Math.sqrt(size / tan30_2),\n        x = y * tan30;\n    context.moveTo(0, -y);\n    context.lineTo(x, 0);\n    context.lineTo(0, y);\n    context.lineTo(-x, 0);\n    context.closePath();\n  }\n};\n","export default {\n  draw: function(context, size) {\n    var w = Math.sqrt(size),\n        x = -w / 2;\n    context.rect(x, x, w, w);\n  }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n    kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n    kx = Math.sin(tau / 10) * kr,\n    ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n  draw: function(context, size) {\n    var r = Math.sqrt(size * ka),\n        x = kx * r,\n        y = ky * r;\n    context.moveTo(0, -r);\n    context.lineTo(x, y);\n    for (var i = 1; i < 5; ++i) {\n      var a = tau * i / 5,\n          c = Math.cos(a),\n          s = Math.sin(a);\n      context.lineTo(s * r, -c * r);\n      context.lineTo(c * x - s * y, s * x + c * y);\n    }\n    context.closePath();\n  }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n  draw: function(context, size) {\n    var y = -Math.sqrt(size / (sqrt3 * 3));\n    context.moveTo(0, y * 2);\n    context.lineTo(-sqrt3 * y, -y);\n    context.lineTo(sqrt3 * y, -y);\n    context.closePath();\n  }\n};\n","var c = -0.5,\n    s = Math.sqrt(3) / 2,\n    k = 1 / Math.sqrt(12),\n    a = (k / 2 + 1) * 3;\n\nexport default {\n  draw: function(context, size) {\n    var r = Math.sqrt(size / a),\n        x0 = r / 2,\n        y0 = r * k,\n        x1 = x0,\n        y1 = r * k + r,\n        x2 = -x1,\n        y2 = y1;\n    context.moveTo(x0, y0);\n    context.lineTo(x1, y1);\n    context.lineTo(x2, y2);\n    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n    context.closePath();\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 ascending from \"./ascending.js\";\n\nexport default function(f) {\n  let delta = f;\n  let compare = f;\n\n  if (f.length === 1) {\n    delta = (d, x) => f(d) - x;\n    compare = ascendingComparator(f);\n  }\n\n  function left(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    while (lo < hi) {\n      const mid = (lo + hi) >>> 1;\n      if (compare(a[mid], x) < 0) lo = mid + 1;\n      else hi = mid;\n    }\n    return lo;\n  }\n\n  function right(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    while (lo < hi) {\n      const 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  function center(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    const i = left(a, x, lo, hi - 1);\n    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n  }\n\n  return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n  return (d, x) => ascending(f(d), x);\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n  var defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null;\n\n  x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n  y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n  function line(data) {\n    var i,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n}\n","const 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","function Step(context, t) {\n  this._context = context;\n  this._t = t;\n}\n\nStep.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = this._y = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\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; // proceed\n      default: {\n        if (this._t <= 0) {\n          this._context.lineTo(this._x, y);\n          this._context.lineTo(x, y);\n        } else {\n          var x1 = this._x * (1 - this._t) + x * this._t;\n          this._context.lineTo(x1, this._y);\n          this._context.lineTo(x1, y);\n        }\n        break;\n      }\n    }\n    this._x = x, this._y = y;\n  }\n};\n\nexport default function(context) {\n  return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n  return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n  return new Step(context, 1);\n}\n","export function initRange(domain, range) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: this.range(domain); break;\n    default: this.range(range).domain(domain); break;\n  }\n  return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: {\n      if (typeof domain === \"function\") this.interpolator(domain);\n      else this.range(domain);\n      break;\n    }\n    default: {\n      this.domain(domain);\n      if (typeof interpolator === \"function\") this.interpolator(interpolator);\n      else this.range(interpolator);\n      break;\n    }\n  }\n  return this;\n}\n","export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n","export default function constants(x) {\n  return function() {\n    return x;\n  };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n  return x;\n}\n\nfunction normalize(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n  var t;\n  if (a > b) t = a, a = b, b = t;\n  return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = normalize(domain[i], domain[i + 1]);\n    r[i] = interpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = bisect(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nexport function transformer() {\n  var domain = unit,\n      range = unit,\n      interpolate = interpolateValue,\n      transform,\n      untransform,\n      unknown,\n      clamp = identity,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    var n = Math.min(domain.length, range.length);\n    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n    piecewise = n > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n  }\n\n  scale.invert = function(y) {\n    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = Array.from(_), interpolate = interpolateRound, rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t, u) {\n    transform = t, untransform = u;\n    return rescale();\n  };\n}\n\nexport default function continuous() {\n  return transformer()(identity, identity);\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 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter: 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 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","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n  if (!b) b = [];\n  var n = a ? Math.min(b.length, a.length) : 0,\n      c = b.slice(),\n      i;\n  return function(t) {\n    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n    return c;\n  };\n}\n\nexport function isNumberArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n","export default function(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = value(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\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","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  var t = typeof b, c;\n  return b == null || t === \"boolean\" ? constant(b)\n      : (t === \"number\" ? number\n      : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n      : b instanceof color ? rgb\n      : b instanceof Date ? date\n      : isNumberArray(b) ? numberArray\n      : Array.isArray(b) ? genericArray\n      : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n      : number)(a, b);\n}\n","var e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n  var reverse,\n      i = -1,\n      n,\n      ticks,\n      step;\n\n  stop = +stop, start = +start, count = +count;\n  if (start === stop && count > 0) return [start];\n  if (reverse = stop < start) n = start, start = stop, stop = n;\n  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n  if (step > 0) {\n    let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n    if (r0 * step < start) ++r0;\n    if (r1 * step > stop) --r1;\n    ticks = new Array(n = r1 - r0 + 1);\n    while (++i < n) ticks[i] = (r0 + i) * step;\n  } else {\n    step = -step;\n    let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n    if (r0 / step < start) ++r0;\n    if (r1 / step > stop) --r1;\n    ticks = new Array(n = r1 - r0 + 1);\n    while (++i < n) ticks[i] = (r0 + i) / step;\n  }\n\n  if (reverse) ticks.reverse();\n\n  return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n  var step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log(step) / Math.LN10),\n      error = step / Math.pow(10, power);\n  return power >= 0\n      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n  var step0 = Math.abs(stop - start) / Math.max(0, count),\n      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n      error = step0 / step1;\n  if (error >= e10) step1 *= 10;\n  else if (error >= e5) step1 *= 5;\n  else if (error >= e2) step1 *= 2;\n  return stop < start ? -step1 : step1;\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","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n  \"text/plain\": \"Text\",\n  \"text/html\": \"Url\",\n  \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n  var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n  return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n  var debug,\n    message,\n    reselectPrevious,\n    range,\n    selection,\n    mark,\n    success = false;\n  if (!options) {\n    options = {};\n  }\n  debug = options.debug || false;\n  try {\n    reselectPrevious = deselectCurrent();\n\n    range = document.createRange();\n    selection = document.getSelection();\n\n    mark = document.createElement(\"span\");\n    mark.textContent = text;\n    // reset user styles for span element\n    mark.style.all = \"unset\";\n    // prevents scrolling to the end of the page\n    mark.style.position = \"fixed\";\n    mark.style.top = 0;\n    mark.style.clip = \"rect(0, 0, 0, 0)\";\n    // used to preserve spaces and line breaks\n    mark.style.whiteSpace = \"pre\";\n    // do not inherit user-select (it may be `none`)\n    mark.style.webkitUserSelect = \"text\";\n    mark.style.MozUserSelect = \"text\";\n    mark.style.msUserSelect = \"text\";\n    mark.style.userSelect = \"text\";\n    mark.addEventListener(\"copy\", function(e) {\n      e.stopPropagation();\n      if (options.format) {\n        e.preventDefault();\n        if (typeof e.clipboardData === \"undefined\") { // IE 11\n          debug && console.warn(\"unable to use e.clipboardData\");\n          debug && console.warn(\"trying IE specific stuff\");\n          window.clipboardData.clearData();\n          var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n          window.clipboardData.setData(format, text);\n        } else { // all other browsers\n          e.clipboardData.clearData();\n          e.clipboardData.setData(options.format, text);\n        }\n      }\n      if (options.onCopy) {\n        e.preventDefault();\n        options.onCopy(e.clipboardData);\n      }\n    });\n\n    document.body.appendChild(mark);\n\n    range.selectNodeContents(mark);\n    selection.addRange(range);\n\n    var successful = document.execCommand(\"copy\");\n    if (!successful) {\n      throw new Error(\"copy command was unsuccessful\");\n    }\n    success = true;\n  } catch (err) {\n    debug && console.error(\"unable to copy using execCommand: \", err);\n    debug && console.warn(\"trying IE specific stuff\");\n    try {\n      window.clipboardData.setData(options.format || \"text\", text);\n      options.onCopy && options.onCopy(window.clipboardData);\n      success = true;\n    } catch (err) {\n      debug && console.error(\"unable to copy using clipboardData: \", err);\n      debug && console.error(\"falling back to prompt\");\n      message = format(\"message\" in options ? options.message : defaultMessage);\n      window.prompt(message, text);\n    }\n  } finally {\n    if (selection) {\n      if (typeof selection.removeRange == \"function\") {\n        selection.removeRange(range);\n      } else {\n        selection.removeAllRanges();\n      }\n    }\n\n    if (mark) {\n      document.body.removeChild(mark);\n    }\n    reselectPrevious();\n  }\n\n  return success;\n}\n\nmodule.exports = copy;\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    var d = domain();\n    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n  };\n\n  scale.nice = function(count) {\n    if (count == null) count = 10;\n\n    var d = domain();\n    var i0 = 0;\n    var i1 = d.length - 1;\n    var start = d[i0];\n    var stop = d[i1];\n    var prestep;\n    var step;\n    var maxIter = 10;\n\n    if (stop < start) {\n      step = start, start = stop, stop = step;\n      step = i0, i0 = i1, i1 = step;\n    }\n    \n    while (maxIter-- > 0) {\n      step = tickIncrement(start, stop, count);\n      if (step === prestep) {\n        d[i0] = start\n        d[i1] = stop\n        return domain(d);\n      } else if (step > 0) {\n        start = Math.floor(start / step) * step;\n        stop = Math.ceil(stop / step) * step;\n      } else if (step < 0) {\n        start = Math.ceil(start * step) / step;\n        stop = Math.floor(stop * step) / step;\n      } else {\n        break;\n      }\n      prestep = step;\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nexport default function linear() {\n  var scale = continuous();\n\n  scale.copy = function() {\n    return copy(scale, linear());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n"],"sourceRoot":""}