{"version":3,"sources":["webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/moment/moment.js","webpack://[name]/./node_modules/jquery/dist/jquery.js-exposed?0261","webpack://[name]/./node_modules/d3/build/package.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/ascending.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/bisect.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/bisector.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/cross.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/array.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/ticks.js","webpack://[name]/./node_modules/d3/node_modules/d3-array/src/zip.js","webpack://[name]/./node_modules/d3-axis/src/array.js","webpack://[name]/./node_modules/d3-axis/src/identity.js","webpack://[name]/./node_modules/d3-axis/src/axis.js","webpack://[name]/./node_modules/d3-dispatch/src/dispatch.js","webpack://[name]/./node_modules/d3-selection/src/selector.js","webpack://[name]/./node_modules/d3-selection/src/selectorAll.js","webpack://[name]/./node_modules/d3-selection/src/matcher.js","webpack://[name]/./node_modules/d3-selection/src/selection/sparse.js","webpack://[name]/./node_modules/d3-selection/src/selection/enter.js","webpack://[name]/./node_modules/d3-selection/src/selection/data.js","webpack://[name]/./node_modules/d3-selection/src/selection/sort.js","webpack://[name]/./node_modules/d3-selection/src/selection/call.js","webpack://[name]/./node_modules/d3-selection/src/namespaces.js","webpack://[name]/./node_modules/d3-selection/src/namespace.js","webpack://[name]/./node_modules/d3-selection/src/selection/attr.js","webpack://[name]/./node_modules/d3-selection/src/window.js","webpack://[name]/./node_modules/d3-selection/src/selection/style.js","webpack://[name]/./node_modules/d3-selection/src/selection/property.js","webpack://[name]/./node_modules/d3-selection/src/selection/classed.js","webpack://[name]/./node_modules/d3-selection/src/selection/text.js","webpack://[name]/./node_modules/d3-selection/src/selection/html.js","webpack://[name]/./node_modules/d3-selection/src/selection/raise.js","webpack://[name]/./node_modules/d3-selection/src/selection/lower.js","webpack://[name]/./node_modules/d3-selection/src/creator.js","webpack://[name]/./node_modules/d3-selection/src/selection/insert.js","webpack://[name]/./node_modules/d3-selection/src/selection/remove.js","webpack://[name]/./node_modules/d3-selection/src/selection/clone.js","webpack://[name]/./node_modules/d3-selection/src/selection/on.js","webpack://[name]/./node_modules/d3-selection/src/selection/dispatch.js","webpack://[name]/./node_modules/d3-selection/src/selection/index.js","webpack://[name]/./node_modules/d3-selection/src/selection/select.js","webpack://[name]/./node_modules/d3-selection/src/selection/selectAll.js","webpack://[name]/./node_modules/d3-selection/src/selection/filter.js","webpack://[name]/./node_modules/d3-selection/src/constant.js","webpack://[name]/./node_modules/d3-selection/src/selection/exit.js","webpack://[name]/./node_modules/d3-selection/src/selection/join.js","webpack://[name]/./node_modules/d3-selection/src/selection/merge.js","webpack://[name]/./node_modules/d3-selection/src/selection/order.js","webpack://[name]/./node_modules/d3-selection/src/selection/nodes.js","webpack://[name]/./node_modules/d3-selection/src/selection/node.js","webpack://[name]/./node_modules/d3-selection/src/selection/size.js","webpack://[name]/./node_modules/d3-selection/src/selection/empty.js","webpack://[name]/./node_modules/d3-selection/src/selection/each.js","webpack://[name]/./node_modules/d3-selection/src/selection/append.js","webpack://[name]/./node_modules/d3-selection/src/selection/datum.js","webpack://[name]/./node_modules/d3-color/src/define.js","webpack://[name]/./node_modules/d3-color/src/color.js","webpack://[name]/./node_modules/d3-interpolate/src/basis.js","webpack://[name]/./node_modules/d3-interpolate/src/constant.js","webpack://[name]/./node_modules/d3-interpolate/src/color.js","webpack://[name]/./node_modules/d3-interpolate/src/rgb.js","webpack://[name]/./node_modules/d3-interpolate/src/basisClosed.js","webpack://[name]/./node_modules/d3-interpolate/src/date.js","webpack://[name]/./node_modules/d3-interpolate/src/number.js","webpack://[name]/./node_modules/d3-interpolate/src/object.js","webpack://[name]/./node_modules/d3-interpolate/src/string.js","webpack://[name]/./node_modules/d3-timer/src/timer.js","webpack://[name]/./node_modules/d3-timer/src/timeout.js","webpack://[name]/./node_modules/d3-transition/src/transition/schedule.js","webpack://[name]/./node_modules/d3-transition/src/interrupt.js","webpack://[name]/./node_modules/d3-interpolate/src/transform/parse.js","webpack://[name]/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://[name]/./node_modules/d3-interpolate/src/transform/index.js","webpack://[name]/./node_modules/d3-transition/src/transition/tween.js","webpack://[name]/./node_modules/d3-transition/src/transition/interpolate.js","webpack://[name]/./node_modules/d3-transition/src/transition/attr.js","webpack://[name]/./node_modules/d3-transition/src/transition/attrTween.js","webpack://[name]/./node_modules/d3-transition/src/transition/delay.js","webpack://[name]/./node_modules/d3-transition/src/transition/duration.js","webpack://[name]/./node_modules/d3-transition/src/transition/ease.js","webpack://[name]/./node_modules/d3-transition/src/transition/on.js","webpack://[name]/./node_modules/d3-transition/src/transition/remove.js","webpack://[name]/./node_modules/d3-transition/src/transition/selection.js","webpack://[name]/./node_modules/d3-transition/src/transition/style.js","webpack://[name]/./node_modules/d3-transition/src/transition/styleTween.js","webpack://[name]/./node_modules/d3-transition/src/transition/textTween.js","webpack://[name]/./node_modules/d3-transition/src/transition/index.js","webpack://[name]/./node_modules/d3-transition/src/transition/select.js","webpack://[name]/./node_modules/d3-transition/src/transition/selectAll.js","webpack://[name]/./node_modules/d3-transition/src/transition/filter.js","webpack://[name]/./node_modules/d3-transition/src/transition/merge.js","webpack://[name]/./node_modules/d3-transition/src/transition/transition.js","webpack://[name]/./node_modules/d3-transition/src/transition/text.js","webpack://[name]/./node_modules/d3-transition/src/transition/end.js","webpack://[name]/./node_modules/d3-transition/src/selection/transition.js","webpack://[name]/./node_modules/d3-ease/src/cubic.js","webpack://[name]/./node_modules/d3-transition/src/selection/index.js","webpack://[name]/./node_modules/d3-transition/src/selection/interrupt.js","webpack://[name]/./node_modules/d3-brush/src/brush.js","webpack://[name]/./node_modules/d3-array/src/ascending.js","webpack://[name]/./node_modules/d3-array/src/bisector.js","webpack://[name]/./node_modules/d3-array/src/bisect.js","webpack://[name]/./node_modules/d3-array/src/cross.js","webpack://[name]/./node_modules/d3-array/src/array.js","webpack://[name]/./node_modules/d3-array/src/range.js","webpack://[name]/./node_modules/d3-array/src/ticks.js","webpack://[name]/./node_modules/d3-array/src/threshold/sturges.js","webpack://[name]/./node_modules/d3-array/src/merge.js","webpack://[name]/./node_modules/d3-chord/src/math.js","webpack://[name]/./node_modules/d3-chord/src/array.js","webpack://[name]/./node_modules/d3-chord/src/chord.js","webpack://[name]/./node_modules/d3-path/src/path.js","webpack://[name]/./node_modules/d3/node_modules/d3-collection/src/map.js","webpack://[name]/./node_modules/d3/node_modules/d3-collection/src/set.js","webpack://[name]/./node_modules/d3/node_modules/d3-color/src/define.js","webpack://[name]/./node_modules/d3/node_modules/d3-color/src/color.js","webpack://[name]/./node_modules/d3/node_modules/d3-color/src/math.js","webpack://[name]/./node_modules/d3/node_modules/d3-color/src/lab.js","webpack://[name]/./node_modules/d3/node_modules/d3-color/src/cubehelix.js","webpack://[name]/./node_modules/d3/node_modules/d3-dispatch/src/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-dispatch/src/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/on.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selector.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selectorAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/sparse.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/enter.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/data.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/sort.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/call.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/namespaces.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/namespace.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/attr.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/window.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/style.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/property.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/classed.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/text.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/html.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/raise.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/lower.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/creator.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/insert.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/remove.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/clone.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/select.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/selectAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/filter.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/matcher.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/constant.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/exit.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/join.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/merge.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/order.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/nodes.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/node.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/size.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/empty.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/each.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/append.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/node_modules/d3-selection/src/selection/datum.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/src/event.js","webpack://[name]/./node_modules/d3/node_modules/d3-drag/src/drag.js","webpack://[name]/./node_modules/d3-dsv/src/dsv.js","webpack://[name]/./node_modules/d3-dsv/src/csv.js","webpack://[name]/./node_modules/d3-dsv/src/tsv.js","webpack://[name]/./node_modules/d3/node_modules/d3-ease/src/poly.js","webpack://[name]/./node_modules/d3/node_modules/d3-ease/src/sin.js","webpack://[name]/./node_modules/d3/node_modules/d3-ease/src/back.js","webpack://[name]/./node_modules/d3/node_modules/d3-ease/src/elastic.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/add.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/cover.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/quad.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/x.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/y.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/quadtree.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/data.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/extent.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/find.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/remove.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/root.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/size.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/visit.js","webpack://[name]/./node_modules/d3-force/node_modules/d3-quadtree/src/visitAfter.js","webpack://[name]/./node_modules/d3-collection/src/map.js","webpack://[name]/./node_modules/d3-collection/src/set.js","webpack://[name]/./node_modules/d3-force/src/simulation.js","webpack://[name]/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://[name]/./node_modules/d3-format/src/formatDecimal.js","webpack://[name]/./node_modules/d3-format/src/exponent.js","webpack://[name]/./node_modules/d3-format/src/formatRounded.js","webpack://[name]/./node_modules/d3-format/src/formatTypes.js","webpack://[name]/./node_modules/d3-format/src/formatDefault.js","webpack://[name]/./node_modules/d3-format/src/formatSpecifier.js","webpack://[name]/./node_modules/d3-format/src/identity.js","webpack://[name]/./node_modules/d3-format/src/defaultLocale.js","webpack://[name]/./node_modules/d3-format/src/locale.js","webpack://[name]/./node_modules/d3-format/src/formatGroup.js","webpack://[name]/./node_modules/d3-format/src/formatNumerals.js","webpack://[name]/./node_modules/d3-format/src/precisionFixed.js","webpack://[name]/./node_modules/d3-geo/src/adder.js","webpack://[name]/./node_modules/d3-geo/src/math.js","webpack://[name]/./node_modules/d3-geo/src/noop.js","webpack://[name]/./node_modules/d3-geo/src/area.js","webpack://[name]/./node_modules/d3-geo/src/cartesian.js","webpack://[name]/./node_modules/d3-geo/src/bounds.js","webpack://[name]/./node_modules/d3-geo/src/rotation.js","webpack://[name]/./node_modules/d3-geo/src/circle.js","webpack://[name]/./node_modules/d3-geo/src/clip/buffer.js","webpack://[name]/./node_modules/d3-geo/src/pointEqual.js","webpack://[name]/./node_modules/d3-geo/src/clip/rejoin.js","webpack://[name]/./node_modules/d3-geo/src/polygonContains.js","webpack://[name]/./node_modules/d3-geo/src/clip/index.js","webpack://[name]/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://[name]/./node_modules/d3-geo/src/length.js","webpack://[name]/./node_modules/d3-geo/src/path/area.js","webpack://[name]/./node_modules/d3-geo/src/path/context.js","webpack://[name]/./node_modules/d3-geo/src/path/measure.js","webpack://[name]/./node_modules/d3-geo/src/path/string.js","webpack://[name]/./node_modules/d3-geo/src/transform.js","webpack://[name]/./node_modules/d3-geo/src/projection/resample.js","webpack://[name]/./node_modules/d3-geo/src/projection/index.js","webpack://[name]/./node_modules/d3-geo/src/projection/azimuthal.js","webpack://[name]/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://[name]/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://[name]/./node_modules/d3-geo/src/projection/mercator.js","webpack://[name]/./node_modules/d3-geo/src/projection/equirectangular.js","webpack://[name]/./node_modules/d3-geo/src/projection/gnomonic.js","webpack://[name]/./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://[name]/./node_modules/d3-geo/src/projection/orthographic.js","webpack://[name]/./node_modules/d3-geo/src/projection/stereographic.js","webpack://[name]/./node_modules/d3-geo/src/projection/transverseMercator.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://[name]/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://[name]/./node_modules/d3-hierarchy/src/array.js","webpack://[name]/./node_modules/d3-hierarchy/src/accessors.js","webpack://[name]/./node_modules/d3-hierarchy/src/constant.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://[name]/./node_modules/d3-hierarchy/src/tree.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/node_modules/d3-color/src/define.js","webpack://[name]/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/node_modules/d3-color/src/color.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/basis.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/constant.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/color.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/rgb.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/basisClosed.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/number.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/object.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/string.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/value.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/transform/parse.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/transform/decompose.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/transform/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/zoom.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/hsl.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/node_modules/d3-color/src/math.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/node_modules/d3-color/src/lab.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/hcl.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/node_modules/d3-color/src/cubehelix.js","webpack://[name]/./node_modules/d3/node_modules/d3-interpolate/src/cubehelix.js","webpack://[name]/./node_modules/d3/node_modules/d3-path/src/path.js","webpack://[name]/./node_modules/d3-quadtree/src/add.js","webpack://[name]/./node_modules/d3-quadtree/src/cover.js","webpack://[name]/./node_modules/d3-quadtree/src/quad.js","webpack://[name]/./node_modules/d3-quadtree/src/x.js","webpack://[name]/./node_modules/d3-quadtree/src/y.js","webpack://[name]/./node_modules/d3-quadtree/src/quadtree.js","webpack://[name]/./node_modules/d3-quadtree/src/data.js","webpack://[name]/./node_modules/d3-quadtree/src/extent.js","webpack://[name]/./node_modules/d3-quadtree/src/find.js","webpack://[name]/./node_modules/d3-quadtree/src/remove.js","webpack://[name]/./node_modules/d3-quadtree/src/root.js","webpack://[name]/./node_modules/d3-quadtree/src/size.js","webpack://[name]/./node_modules/d3-quadtree/src/visit.js","webpack://[name]/./node_modules/d3-quadtree/src/visitAfter.js","webpack://[name]/./node_modules/d3-queue/src/array.js","webpack://[name]/./node_modules/d3-queue/src/queue.js","webpack://[name]/./node_modules/d3-random/src/defaultSource.js","webpack://[name]/./node_modules/d3-random/src/normal.js","webpack://[name]/./node_modules/d3-random/src/uniform.js","webpack://[name]/./node_modules/d3-random/src/irwinHall.js","webpack://[name]/./node_modules/d3-random/src/logNormal.js","webpack://[name]/./node_modules/d3-request/src/request.js","webpack://[name]/./node_modules/d3-random/src/bates.js","webpack://[name]/./node_modules/d3-random/src/exponential.js","webpack://[name]/./node_modules/d3-request/src/type.js","webpack://[name]/./node_modules/d3-request/node_modules/d3-dsv/src/dsv.js","webpack://[name]/./node_modules/d3-request/src/html.js","webpack://[name]/./node_modules/d3-request/src/json.js","webpack://[name]/./node_modules/d3-request/src/text.js","webpack://[name]/./node_modules/d3-request/src/xml.js","webpack://[name]/./node_modules/d3-request/node_modules/d3-dsv/src/csv.js","webpack://[name]/./node_modules/d3-request/src/dsv.js","webpack://[name]/./node_modules/d3-request/src/csv.js","webpack://[name]/./node_modules/d3-request/node_modules/d3-dsv/src/tsv.js","webpack://[name]/./node_modules/d3-scale/src/array.js","webpack://[name]/./node_modules/d3-request/src/tsv.js","webpack://[name]/./node_modules/d3-scale/src/ordinal.js","webpack://[name]/./node_modules/d3-scale/src/band.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatSpecifier.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatDecimal.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatPrefixAuto.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/defaultLocale.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/exponent.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatRounded.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatTypes.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/identity.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/locale.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatGroup.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatNumerals.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/formatTrim.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/precisionRound.js","webpack://[name]/./node_modules/d3-scale/src/tickFormat.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/precisionPrefix.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-format/src/precisionFixed.js","webpack://[name]/./node_modules/d3-scale/src/linear.js","webpack://[name]/./node_modules/d3-scale/src/quantize.js","webpack://[name]/./node_modules/d3-time/src/interval.js","webpack://[name]/./node_modules/d3-time/src/year.js","webpack://[name]/./node_modules/d3-time/src/month.js","webpack://[name]/./node_modules/d3-time/src/week.js","webpack://[name]/./node_modules/d3-time/src/duration.js","webpack://[name]/./node_modules/d3-time/src/day.js","webpack://[name]/./node_modules/d3-time/src/hour.js","webpack://[name]/./node_modules/d3-time/src/minute.js","webpack://[name]/./node_modules/d3-time/src/second.js","webpack://[name]/./node_modules/d3-time/src/millisecond.js","webpack://[name]/./node_modules/d3-time/src/utcWeek.js","webpack://[name]/./node_modules/d3-time/src/utcDay.js","webpack://[name]/./node_modules/d3-time/src/utcYear.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-time-format/src/locale.js","webpack://[name]/./node_modules/d3-scale/node_modules/d3-time-format/src/defaultLocale.js","webpack://[name]/./node_modules/d3-scale/src/time.js","webpack://[name]/./node_modules/d3-time/src/utcMonth.js","webpack://[name]/./node_modules/d3-time/src/utcHour.js","webpack://[name]/./node_modules/d3-time/src/utcMinute.js","webpack://[name]/./node_modules/d3-scale/src/colors.js","webpack://[name]/./node_modules/d3-color/src/math.js","webpack://[name]/./node_modules/d3-scale/src/category10.js","webpack://[name]/./node_modules/d3-scale/src/category20b.js","webpack://[name]/./node_modules/d3-scale/src/category20c.js","webpack://[name]/./node_modules/d3-scale/src/category20.js","webpack://[name]/./node_modules/d3-color/src/cubehelix.js","webpack://[name]/./node_modules/d3-interpolate/src/cubehelix.js","webpack://[name]/./node_modules/d3-scale/src/cubehelix.js","webpack://[name]/./node_modules/d3-scale/src/rainbow.js","webpack://[name]/./node_modules/d3-scale/src/viridis.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/namespaces.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/namespace.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/creator.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selector.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selectorAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/matcher.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/sparse.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/enter.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/data.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/sort.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/attr.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/window.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/style.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/property.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/classed.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/text.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/html.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/raise.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/lower.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/insert.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/remove.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/clone.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/on.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/select.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/selectAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/filter.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/constant.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/exit.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/merge.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/order.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/call.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/nodes.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/node.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/size.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/empty.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/each.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/append.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/selection/datum.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/select.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/local.js","webpack://[name]/./node_modules/d3-shape/src/math.js","webpack://[name]/./node_modules/d3/node_modules/d3-selection/src/sourceEvent.js","webpack://[name]/./node_modules/d3-shape/src/curve/linear.js","webpack://[name]/./node_modules/d3-shape/src/curve/radial.js","webpack://[name]/./node_modules/d3-shape/src/array.js","webpack://[name]/./node_modules/d3-shape/src/symbol/diamond.js","webpack://[name]/./node_modules/d3-shape/src/symbol/circle.js","webpack://[name]/./node_modules/d3-shape/src/symbol/star.js","webpack://[name]/./node_modules/d3-shape/src/noop.js","webpack://[name]/./node_modules/d3-shape/src/symbol/triangle.js","webpack://[name]/./node_modules/d3-shape/src/symbol/wye.js","webpack://[name]/./node_modules/d3-shape/src/curve/basis.js","webpack://[name]/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://[name]/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://[name]/./node_modules/d3-shape/src/curve/bundle.js","webpack://[name]/./node_modules/d3-shape/src/curve/cardinal.js","webpack://[name]/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://[name]/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://[name]/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://[name]/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://[name]/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://[name]/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://[name]/./node_modules/d3-shape/src/curve/monotone.js","webpack://[name]/./node_modules/d3-shape/src/curve/natural.js","webpack://[name]/./node_modules/d3-shape/src/curve/step.js","webpack://[name]/./node_modules/d3-shape/src/order/descending.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/interval.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/millisecond.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/second.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/duration.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/minute.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/hour.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/day.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/week.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/month.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/year.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcMinute.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcHour.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcDay.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcWeek.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcMonth.js","webpack://[name]/./node_modules/d3/node_modules/d3-time/src/utcYear.js","webpack://[name]/./node_modules/d3-time-format/src/locale.js","webpack://[name]/./node_modules/d3-time-format/src/defaultLocale.js","webpack://[name]/./node_modules/d3-time-format/src/isoFormat.js","webpack://[name]/./node_modules/d3-time-format/src/isoParse.js","webpack://[name]/./node_modules/d3/node_modules/d3-timer/src/timer.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selector.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selectorAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/matcher.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/sparse.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/enter.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/data.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/sort.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/call.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/namespaces.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/namespace.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/attr.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/window.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/style.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/property.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/classed.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/text.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/html.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/raise.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/lower.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/creator.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/insert.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/remove.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/clone.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/on.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/select.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/selectAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/filter.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/constant.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/exit.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/join.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/merge.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/order.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/nodes.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/node.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/size.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/empty.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/each.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/append.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-selection/src/selection/datum.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-dispatch/src/dispatch.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-timer/src/timer.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-timer/src/timeout.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/schedule.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/interrupt.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/parse.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/number.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/decompose.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/tween.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-color/src/define.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-color/src/color.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/basis.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/constant.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/color.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/rgb.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/basisClosed.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-interpolate/src/string.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/interpolate.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/attr.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/attrTween.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/delay.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/duration.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/ease.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/on.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/remove.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/selection.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/styleTween.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/text.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/select.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/selectAll.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/filter.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/merge.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/transition.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/transition/style.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/selection/transition.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/node_modules/d3-ease/src/cubic.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/selection/index.js","webpack://[name]/./node_modules/d3/node_modules/d3-transition/src/selection/interrupt.js","webpack://[name]/./node_modules/d3-voronoi/src/RedBlackTree.js","webpack://[name]/./node_modules/d3-voronoi/src/Edge.js","webpack://[name]/./node_modules/d3-voronoi/src/Cell.js","webpack://[name]/./node_modules/d3-voronoi/src/Circle.js","webpack://[name]/./node_modules/d3-voronoi/src/Beach.js","webpack://[name]/./node_modules/d3-voronoi/src/Diagram.js","webpack://[name]/./node_modules/d3-interpolate/src/zoom.js","webpack://[name]/./node_modules/d3-zoom/src/transform.js","webpack://[name]/./app/javascript/d3Utils/index.js","webpack://[name]/(webpack)/buildin/global.js","webpack://[name]/(webpack)/buildin/module.js","webpack://[name]/./node_modules/jquery-migrate/dist/jquery-migrate.js","webpack://[name]/./node_modules/jquery/dist/jquery.js-exposed","webpack://[name]/./node_modules/jquery/dist/jquery.js","webpack://[name]/./node_modules/jquery-ujs/src/rails.js","webpack://[name]/./app/javascript/locusGrid/index.js","webpack://[name]/./node_modules/turbolinks/dist/turbolinks.js","webpack://[name]/./app/javascript/mapMarker/index.js","webpack://[name]/./node_modules/moment/locale/af.js","webpack://[name]/./node_modules/moment/locale/ar.js","webpack://[name]/./node_modules/moment/locale/ar-dz.js","webpack://[name]/./node_modules/moment/locale/ar-kw.js","webpack://[name]/./node_modules/moment/locale/ar-ly.js","webpack://[name]/./node_modules/moment/locale/ar-ma.js","webpack://[name]/./node_modules/moment/locale/ar-sa.js","webpack://[name]/./node_modules/moment/locale/ar-tn.js","webpack://[name]/./node_modules/moment/locale/az.js","webpack://[name]/./node_modules/moment/locale/be.js","webpack://[name]/./node_modules/moment/locale/bg.js","webpack://[name]/./node_modules/moment/locale/bm.js","webpack://[name]/./node_modules/moment/locale/bn.js","webpack://[name]/./node_modules/moment/locale/bn-bd.js","webpack://[name]/./node_modules/moment/locale/bo.js","webpack://[name]/./node_modules/moment/locale/br.js","webpack://[name]/./node_modules/moment/locale/bs.js","webpack://[name]/./node_modules/moment/locale/ca.js","webpack://[name]/./node_modules/moment/locale/cs.js","webpack://[name]/./node_modules/moment/locale/cv.js","webpack://[name]/./node_modules/moment/locale/cy.js","webpack://[name]/./node_modules/moment/locale/da.js","webpack://[name]/./node_modules/moment/locale/de.js","webpack://[name]/./node_modules/moment/locale/de-at.js","webpack://[name]/./node_modules/moment/locale/de-ch.js","webpack://[name]/./node_modules/moment/locale/dv.js","webpack://[name]/./node_modules/moment/locale/el.js","webpack://[name]/./node_modules/moment/locale/en-au.js","webpack://[name]/./node_modules/moment/locale/en-ca.js","webpack://[name]/./node_modules/moment/locale/en-gb.js","webpack://[name]/./node_modules/moment/locale/en-ie.js","webpack://[name]/./node_modules/moment/locale/en-il.js","webpack://[name]/./node_modules/moment/locale/en-in.js","webpack://[name]/./node_modules/moment/locale/en-nz.js","webpack://[name]/./node_modules/moment/locale/en-sg.js","webpack://[name]/./node_modules/moment/locale/eo.js","webpack://[name]/./node_modules/moment/locale/es.js","webpack://[name]/./node_modules/moment/locale/es-do.js","webpack://[name]/./node_modules/moment/locale/es-mx.js","webpack://[name]/./node_modules/moment/locale/es-us.js","webpack://[name]/./node_modules/moment/locale/et.js","webpack://[name]/./node_modules/moment/locale/eu.js","webpack://[name]/./node_modules/moment/locale/fa.js","webpack://[name]/./node_modules/moment/locale/fi.js","webpack://[name]/./node_modules/moment/locale/fil.js","webpack://[name]/./node_modules/moment/locale/fo.js","webpack://[name]/./node_modules/moment/locale/fr.js","webpack://[name]/./node_modules/moment/locale/fr-ca.js","webpack://[name]/./node_modules/moment/locale/fr-ch.js","webpack://[name]/./node_modules/moment/locale/fy.js","webpack://[name]/./node_modules/moment/locale/ga.js","webpack://[name]/./node_modules/moment/locale/gd.js","webpack://[name]/./node_modules/moment/locale/gl.js","webpack://[name]/./node_modules/moment/locale/gom-deva.js","webpack://[name]/./node_modules/moment/locale/gom-latn.js","webpack://[name]/./node_modules/moment/locale/gu.js","webpack://[name]/./node_modules/moment/locale/he.js","webpack://[name]/./node_modules/moment/locale/hi.js","webpack://[name]/./node_modules/moment/locale/hr.js","webpack://[name]/./node_modules/moment/locale/hu.js","webpack://[name]/./node_modules/moment/locale/hy-am.js","webpack://[name]/./node_modules/moment/locale/id.js","webpack://[name]/./node_modules/moment/locale/is.js","webpack://[name]/./node_modules/moment/locale/it.js","webpack://[name]/./node_modules/moment/locale/it-ch.js","webpack://[name]/./node_modules/moment/locale/ja.js","webpack://[name]/./node_modules/moment/locale/jv.js","webpack://[name]/./node_modules/moment/locale/ka.js","webpack://[name]/./node_modules/moment/locale/kk.js","webpack://[name]/./node_modules/moment/locale/km.js","webpack://[name]/./node_modules/moment/locale/kn.js","webpack://[name]/./node_modules/moment/locale/ko.js","webpack://[name]/./node_modules/moment/locale/ku.js","webpack://[name]/./node_modules/moment/locale/ky.js","webpack://[name]/./node_modules/moment/locale/lb.js","webpack://[name]/./node_modules/moment/locale/lo.js","webpack://[name]/./node_modules/moment/locale/lt.js","webpack://[name]/./node_modules/moment/locale/lv.js","webpack://[name]/./node_modules/moment/locale/me.js","webpack://[name]/./node_modules/moment/locale/mi.js","webpack://[name]/./node_modules/moment/locale/mk.js","webpack://[name]/./node_modules/moment/locale/ml.js","webpack://[name]/./node_modules/moment/locale/mn.js","webpack://[name]/./node_modules/moment/locale/mr.js","webpack://[name]/./node_modules/moment/locale/ms.js","webpack://[name]/./node_modules/moment/locale/ms-my.js","webpack://[name]/./node_modules/moment/locale/mt.js","webpack://[name]/./node_modules/moment/locale/my.js","webpack://[name]/./node_modules/moment/locale/nb.js","webpack://[name]/./node_modules/moment/locale/ne.js","webpack://[name]/./node_modules/moment/locale/nl.js","webpack://[name]/./node_modules/moment/locale/nl-be.js","webpack://[name]/./node_modules/moment/locale/nn.js","webpack://[name]/./node_modules/moment/locale/oc-lnc.js","webpack://[name]/./node_modules/moment/locale/pa-in.js","webpack://[name]/./node_modules/moment/locale/pl.js","webpack://[name]/./node_modules/moment/locale/pt.js","webpack://[name]/./node_modules/moment/locale/pt-br.js","webpack://[name]/./node_modules/moment/locale/ro.js","webpack://[name]/./node_modules/moment/locale/ru.js","webpack://[name]/./node_modules/moment/locale/sd.js","webpack://[name]/./node_modules/moment/locale/se.js","webpack://[name]/./node_modules/moment/locale/si.js","webpack://[name]/./node_modules/moment/locale/sk.js","webpack://[name]/./node_modules/moment/locale/sl.js","webpack://[name]/./node_modules/moment/locale/sq.js","webpack://[name]/./node_modules/moment/locale/sr.js","webpack://[name]/./node_modules/moment/locale/sr-cyrl.js","webpack://[name]/./node_modules/moment/locale/ss.js","webpack://[name]/./node_modules/moment/locale/sv.js","webpack://[name]/./node_modules/moment/locale/sw.js","webpack://[name]/./node_modules/moment/locale/ta.js","webpack://[name]/./node_modules/moment/locale/te.js","webpack://[name]/./node_modules/moment/locale/tet.js","webpack://[name]/./node_modules/moment/locale/tg.js","webpack://[name]/./node_modules/moment/locale/th.js","webpack://[name]/./node_modules/moment/locale/tk.js","webpack://[name]/./node_modules/moment/locale/tl-ph.js","webpack://[name]/./node_modules/moment/locale/tlh.js","webpack://[name]/./node_modules/moment/locale/tr.js","webpack://[name]/./node_modules/moment/locale/tzl.js","webpack://[name]/./node_modules/moment/locale/tzm.js","webpack://[name]/./node_modules/moment/locale/tzm-latn.js","webpack://[name]/./node_modules/moment/locale/ug-cn.js","webpack://[name]/./node_modules/moment/locale/uk.js","webpack://[name]/./node_modules/moment/locale/ur.js","webpack://[name]/./node_modules/moment/locale/uz.js","webpack://[name]/./node_modules/moment/locale/uz-latn.js","webpack://[name]/./node_modules/moment/locale/vi.js","webpack://[name]/./node_modules/moment/locale/x-pseudo.js","webpack://[name]/./node_modules/moment/locale/yo.js","webpack://[name]/./node_modules/moment/locale/zh-cn.js","webpack://[name]/./node_modules/moment/locale/zh-hk.js","webpack://[name]/./node_modules/moment/locale/zh-mo.js","webpack://[name]/./node_modules/moment/locale/zh-tw.js","webpack://[name]/./app/javascript/notifly/index.js","webpack://[name]/./app/javascript/overlay/index.js","webpack://[name]/./app/javascript/animations/index.js","webpack://[name]/./app/javascript/geoMap/index.js","webpack://[name]/./app/javascript/treeMap/index.js","webpack://[name]/./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack://[name]/./app/javascript/channels/index.js","webpack://[name]/./app/javascript/channels sync _channel\\.js$","webpack://[name]/./node_modules/chartkick/dist/chartkick.js","webpack://[name]/./node_modules/chart.js/dist/Chart.js","webpack://[name]/./node_modules/moment/locale sync ^\\.\\/.*$","webpack://[name]/./app/javascript/estimatedStaffingPatterns/index.js","webpack://[name]/./app/javascript/areas/index.js","webpack://[name]/./node_modules/ahoy.js/dist/ahoy.esm.js","webpack://[name]/./app/javascript/isElectron/index.js","webpack://[name]/./app/javascript/progressBar/index.js","webpack://[name]/./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","indexOf","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","f","ascending","compare","sqrt","translateX","translateY","scale","bandwidth","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","axis","context","ticks","domain","spacing","range","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","merge","insert","transition","getAttribute","parentNode","remove","each","_","tickSize","axisTop","axisLeft","noop","dispatch","Dispatch","parseTypenames","typenames","types","trim","type","on","typename","T","none","selector","querySelector","querySelectorAll","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","appendChild","child","insertBefore","bindIndex","group","node","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","xhtml","svg","xlink","xml","xmlns","namespaces","space","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","classedAdd","list","classedRemove","classedTrue","classedFalse","classedFunction","splice","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","cloneNode","selection_cloneDeep","filterEvents","mouseenter","mouseleave","filterContextListener","listener","contextListener","event","related","relatedTarget","compareDocumentPosition","event1","event0","onRemove","__on","removeEventListener","capture","onAdd","wrap","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","size","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareNode","sortgroups","sortgroup","nodes","getAttributeNS","classed","html","creator","before","deep","definition","Color","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","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","brighter","darker","linear","gamma","nogamma","exponential","color","start","end","rgbGamma","rgbSpline","spline","colors","reA","reB","am","bm","bs","bi","q","one","taskHead","taskTail","timeout","clockLast","clockNow","clockSkew","clock","performance","setFrame","requestAnimationFrame","setTimeout","clearNow","Timer","_call","_time","timer","delay","restart","wake","timerFlush","t0","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","TypeError","stop","elapsed","emptyOn","emptyTween","schedules","__transition","id","self","tween","state","ease","timing","init","schedule","cssNode","cssRoot","cssView","svgNode","active","degrees","PI","rotate","skewX","scaleX","scaleY","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","interpolateTransformCss","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","children","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","Promise","resolve","reject","cancel","interrupt","defaultTiming","left","lo","hi","mid","right","step","reverse","count","power","log","LN10","error","step0","step1","merged","arrays","cos","sin","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","dy","cw","da","rect","Map","has","clear","entries","Set","reHex3","reHex6","deg2rad","rad2deg","labConvert","Lab","Hcl","rgb2xyz","xyz2lab","lab2xyz","xyz2rgb","hclConvert","z","C","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cosh","sinh","DragEvent","target","subject","identifier","EOL","EOF","objectConverter","columns","JSON","stringify","reFormat","delimiter","DELIMITER","charCodeAt","parseRows","rows","N","I","eof","eol","row","formatRow","formatValue","convert","customConverter","columnSet","column","inferColumns","formatRows","csv","dsv","tsv","custom","polyIn","exponent","polyOut","polyInOut","backIn","overshoot","backOut","backInOut","asin","elasticIn","amplitude","elasticOut","elasticInOut","tree","xm","ym","xp","yp","bottom","_root","leaf","_x","_y","defaultX","defaultY","quadtree","Quadtree","addAll","leaf_copy","treeProto","cover","xz","yz","visit","extent","find","x3","y3","quads","radius","d2","retainer","removeAll","root","visitAfter","prefixExponent","toExponential","coefficient","formatDecimal","toPrecision","_p","formatRounded","re","formatSpecifier","specifier","FormatSpecifier","fill","align","symbol","zero","width","comma","precision","formatTypes","prefixes","grouping","thousands","substring","currency","decimal","numerals","formatNumerals","percent","newFormat","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","Adder","reset","_add","adder","bv","av","quarterPi","radians","exp","spherical","lambda","phi","cosPhi","cartesianCross","cartesianNormalizeInPlace","rotationIdentity","invert","lines","point","lineStart","lineEnd","rejoin","Intersection","points","entry","clip","segments","segment","p0","pointEqual","stream","compareIntersection","startInside","current","isSubject","normal","angle","winding","polygon","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","delta","absDelta","antimeridian","intersection","phiArc","sink","clipLine","ringBuffer","ringSink","polygonStarted","polygonStart","pointRing","ringStart","ringEnd","polygonEnd","polygonContains","sphere","pointVisible","pointLine","clean","ringSegments","validSegment","_clean","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","PathContext","_context","_radius","pointRadius","_line","_point","PathString","_string","_circle","transformer","methods","TransformStream","azimuthalRaw","cx","cy","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","equirectangularRaw","gnomonicRaw","naturalEarth1Raw","phi2","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","sum","hierarchy","childs","Node","valued","defaultChildren","depth","eachBefore","computeHeight","copyData","height","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","required","constantZero","TreeNode","A","squarifyRatio","ratio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","dice","squarify","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","paddingOuter","resquarify","_squarify","SQRT2","hue","hcl2lab","rgb2lrgb","lrgb2rgb","cubehelixGamma","cubehelix","noabort","Queue","_size","_error","_tasks","_waiting","_active","_ended","_start","_abort","maybeNotify","abort","concurrency","defer","results","awaitAll","random","randomUniform","sourceRandomUniform","randomNormal","mu","sigma","sourceRandomNormal","randomLogNormal","sourceRandomLogNormal","randomIrwinHall","sourceRandomIrwinHall","randomBates","irwinHall","sourceRandomBates","randomExponential","sourceRandomExponential","request","_mimeType","_response","_responseType","headers","xhr","XMLHttpRequest","_user","_password","_timeout","respond","status","responseType","response","responseText","hasResponse","XDomainRequest","url","onload","onerror","ontimeout","onreadystatechange","readyState","onprogress","header","mimeType","user","password","send","post","method","open","setRequestHeader","overrideMimeType","fixCallback","defaultMimeType","createRange","createContextualFragment","responseXML","pad","formatDate","getUTCHours","getUTCSeconds","getUTCMilliseconds","preformatBody","formatBody","responseOf","implicit","band","unknown","ordinalRange","rescale","rangeRound","pointish","Number","currencyPrefix","currencySuffix","minus","nan","formatTrim","linearish","nice","invertExtent","newInterval","floori","offseti","interval","d0","d1","setHours","setDate","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","utcWeekday","setUTCDate","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","localDate","H","S","utcDate","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","parseFullYear","parseYear","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newParse","X","utcFormat","utcParse","formatLocale","utcMonth","utcHour","utcMinute","setUTCSeconds","ramp","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","nextId","Local","Linear","areaStart","areaEnd","curveRadial","Radial","curve","_curve","radial","kr","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","_basis","_beta","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","px","py","Step","_t","newYear","newDate","value00","value0","value10","styleRemoveEnd","RedBlackTree","RedBlackNode","R","P","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","after","grandpa","uncle","sibling","createEdge","edge","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","ax","ay","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","va","vb","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","by","ha","hc","circle","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","dc","v00","v01","v11","v10","clipCells","edges","polygons","triangles","e1","_found","vx","vy","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","D3Utils","$","top","format_digit_value","d3","webpackPolyfill","paths","jQuery","jQueryVersionSince","rVersionParts","v1p","v2p","compareVersions","jquery","migrateVersion","disabledPatches","migrateDisablePatches","migrateEnablePatches","migrateIsPatchEnabled","patchCode","migrateWarnings","migrateMute","warnedAbout","migrateDeduplicateWarnings","migrateTrace","migrateWarn","code","trace","migrateWarnProp","configurable","newValue","migrateWarnFuncInternal","newFunc","origFunc","migratePatchAndWarnFunc","migratePatchFunc","migrateReset","compatMode","findProp","class2type","oldInit","oldFind","rattrHashTest","rattrHashGlob","rtrim","arg1","err1","op","err2","holdReady","uniqueSort","expr","pseudos","elem","nodeName","ajax","oldAjax","rjsonp","jQXHR","promise","done","fail","always","ajaxPrefilter","jsonp","contentType","oldRemoveAttr","removeAttr","oldToggleClass","toggleClass","rmatchNonSpace","camelCase","letter","bool","className","origFnCss","internalSwapCall","ralphaStart","rautoPx","swap","oldHook","cssHooks","options","old","Proxy","cssProps","Reflect","cssNumber","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","orphans","widows","zIndex","zoom","isAutoPx","css","camelName","origThis","origData","curData","sameKeys","hasData","intervalValue","oldTweenRun","Tween","run","linearEasing","pct","easing","hidden","oldLoad","load","oldEventAdd","originalFix","fix","props","fixHooks","originalEvent","fixHook","addProp","_migrated_","triggerHandler","trigger","special","ready","setup","off","fnOver","fnOut","rxhtmlTag","makeMarkup","doc","implementation","createHTMLDocument","body","UNSAFE_restoreLegacyHtmlPrefilter","changed","warnIfChanged","origOffset","nodeType","getBoundingClientRect","origParam","param","traditional","ajaxTraditional","ajaxSettings","addBack","Deferred","oldDeferred","tuples","Callbacks","deferred","newDeferredPipe","fns","newDefer","tuple","returned","progress","notify","exceptionHook","global","noGlobal","getProto","getPrototypeOf","flat","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","src","nonce","noModule","DOMEval","script","head","toType","isArrayLike","num","pushStack","elems","prevObject","first","eq","last","even","grep","_elem","odd","copyIsArray","isPlainObject","expando","isReady","Ctor","isEmptyObject","globalEval","makeArray","inArray","callbackExpect","guid","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","attributes","rwhitespace","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","disabled","childNodes","els","seed","nid","newSelector","newContext","getElementById","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","matchesSelector","disconnectedMatch","adown","bup","sortDetached","aup","ap","bp","elements","specified","sel","duplicates","detectDuplicates","sortStable","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","unmatched","elemLang","hash","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","image","submit","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","defaultValue","unique","isXMLDoc","escapeSelector","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","prev","targets","closest","prevAll","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","then","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","disable","lock","fireWith","pipe","onFulfilled","onRejected","onProgress","maxDepth","mightThrow","notifyWith","resolveWith","process","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","message","readyException","readyList","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","acceptData","owner","Data","uid","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","dequeue","startLength","_queueHooks","clearQueue","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","display","adjustCSS","valueParts","adjusted","maxIterations","currentValue","initial","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","optgroup","buildFragment","scripts","ignored","attached","fragment","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","origType","elemData","handle","triggered","bindType","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","hook","writable","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","altKey","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","pointerenter","pointerleave","orig","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","rnumnonpx","getStyles","opener","rboxStyle","curCSS","computed","minWidth","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","origName","isCustomProp","scrollboxSizeBuggy","margin","border","expand","expanded","propHooks","eased","scrollTop","scrollLeft","swing","fxNow","inProgress","rfxtypes","rrun","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","lastModified","etag","protocol","processData","async","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","statusText","finalText","crossDomain","host","hasContent","ifModified","beforeSend","success","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","proxy","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","jqueryUjsInit","rails","$document","linkClickSelector","buttonClickSelector","inputChangeSelector","formSubmitSelector","formInputClickSelector","disableSelector","enableSelector","requiredInputSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","csrfToken","csrfParam","CSRFProtection","refreshCSRFTokens","confirm","_confirm","element","isRemote","handleRemote","withCredentials","isCrossDomain","handleMethod","link","form","metadataInput","formElements","disableFormElements","disableFormElement","replacement","enableFormElements","enableFormElement","allowAction","answer","blankInputs","specifiedSelector","nonBlank","radiosForNameWithNoneSelected","radioName","foundInputs","requiredInputs","checkedRadioButtonNames","nonBlankInputs","stopEverything","disableElement","enableElement","metaClick","blankRequiredInputs","nonBlankFileInputs","remote","aborted","LocusGrid","$svg","main_group","max_value","default_options","scales","controls","get_axis_ticks","axis_selector","color_class","get_x_ticks","get_y_ticks","get_max_box_size","xroom","yroom","xticks","yticks","box_margin","box_size","maxv","scale_by_type","entity_count","scale_by_value","get_max_value","box_min","draw_axes","x_axis","y_axis","activity_domain","activity_domains","activity_level","resource_domain","resource_domains","resource_level","resource_y_target","labels","font_size","label","container_num","code_labels","x_axis_circle_group","selected_activity","selected_resource","resource_axes_on_mouseover","y_axis_circle_group","activity_axes_on_mouseover","create_labels","data_id","activity","resource","draw_boxes","drawable_data","box_group","has_x","has_y","half","defs","feMerge","exceeds_size","box_group_on_mouseover","grids","grid_id","get_grid_id","show_axes_tooltip","current_context","current_context_id","is_activity","grid","tooltip","counts","national_count","axes_data","current_data","national_entity_count","national","calculate_entity_and_national_count","tooltip_axes_html","tooltip_axes","national_avg_html","construct_national_avg_text","missing_stuff_html","construct_missing_count_text","ad","number_with_commas","entity_count_decimal_format","entity_count_description","e_count","show_decimals","left_position","top_position","check_tooltip_position","attribute","color_activity","color_resource","text_activity","text_resource","entity_explanation","description_lists","barcode_type","tooltip_grid_html","tooltip_grid","grid_data","formatted_num","total_national_count","area_count","total_count","agg_method_disable_national_percentage","includes","agg_method","tooltip_nat_avg","national_avg","comparison","tooltip_arrow_down","tooltip_arrow_up","auxiliary_lines","agg_method_auxiliary","missing","auxiliary","available","missing_text_format","business_text","words","business","singular","plural","title","agg_method_in_english","activity_resource_text","activity_label","resource_label","locus_code","left_offset","top_offset","outerWidth","docW","is_tooltip_div_offscreen_horizontally","set_tooltip_top_left","outerHeight","docH","is_tooltip_div_offscreen_vertically","draw_boundary_wrappers","locus_grid","max_count","boundary_points","append_label_to","draw_boundaries","points_dict","lbl_height","bottom_activity","div_activity","div_resource","x_distance","y_distance","lbl_x_center","h_sep1","h_sep2","v_sep","local_services","class","lookups","label_points","text_width","label_text_x","label_text_y","prod_and_supply","term","com_tp","com_bt","com_lr","comm_and_banking","get_three_boundary_wrapper_points","boundary_point","text_length_requirement","reduced_text","reduced_length_requirement","ellipsis_label","1","4","12","draw","full_draw","circle_offset","toggle_height","toggle_width","overrides","act_lvl_change","res_lvl_change","national_data_input","national_data","current_national_datum","merge_data_with_country_data","resizing","giveBorderToLabel","selected_product","selected_label","area_grid","Turbolinks","supported","history","pushState","controller","clearCache","setProgressBarDelay","copyObject","ELEMENT_NODE","throttle","uuid","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","createXHR","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","loaded","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","destroy","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","action","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","write","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","enabled","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","createVisit","isContentEditable","nodeIsVisitable","currentScript","hasAttribute","MapMarker","getContrastYIQ","hexcolor","latlng","singleAreaMap","html_class","cursor_class","marker_markup","lookup","area_type","country","setMap","getProjection","fromLatLngToDivPixel","marker_html","google","maps","addDomListener","backgroundColor","getPanes","overlayImage","getPosition","OverlayView","moment","symbolMap","2","3","5","6","7","8","9","numberMap","pluralForm","plurals","pluralize","str","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","relativeTimeWithSingular","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","13","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","close_notifly_message","display_notifly","overlay_fade_out","overlay_content","closest_overlay_key","closest_overlay_content","overlay_key_str","unhideAndAnimateIn","animateOutAndRemove","animateOutAndHide","GeoMap","color_scale","overlay","min_count","draw_map_controls","bucket","map_controls","container_number","num_business_jobs_radio_btn_container","legend","buckets_container","data_source","toLocaleString","create_polygon","polygon_coordinates","poly_options","lat","lng","coords","linear_ring","sub_coords","LatLng","poly","Polygon","focus_polygon","setOptions","strokeWeight","polygon_stroke_weight","polygon_options","area","polygon_counts","in_domain","strokeOpacity","fillColor","strokeColor","getBounds","bounds","LatLngBounds","getPaths","getLength","getAt","add_polygon_listeners","addListener","projection","MouseEvent","fromLatLngToContainerPixel","latLng","unfocus_polygon","country_field","area_type_field","lookup_field","new_country","new_area_type","current_country","polygon_click_listener","create_marker","area_info","geometry","company_count","scrollwheel","maxZoom","minZoom","streetViewControl","disableDefaultUI","disableDoubleClickZoom","panControl","draggable","zoomControl","singleAreaMapBackgroundColor","set_overlay_and_draw_map_control","bold_marker","unbold","bold","areas","remove_polygons","add_polygons","clickable","focus_area","fitBounds","center_map","latitude","longitude","setCenter","setZoom","set_map_for_show_area","elementType","stylers","draggableCursor","pan_map_by_container","panBy","TreeMap","draw_treemap","treemap_selector","treemap_cell_each","treemap_cell_on_click","format_treemap_text","treemap_on_mouseover","treemap_on_mousemove","treemap_on_mouseout","selected_sector","selected_sector_color","treemap_tooltip_name","tooltip_container","show_treemap_tooltip","is_selected_sector","treemap_area","is_empty","resize","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","rhex","toUtf8","unescape","hexToBinaryString","bytes","SparkMD5","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","_buff","_length","_hash","buff","_finish","getState","setState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","_this2","uploadRequestDidProgress","DirectUploadsController","inputs","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","ActiveStorage","require","webpackEmptyContext","req","variable","obj1","obj2","DATE_PATTERN","ISO8601_PATTERN","DECIMAL_SEPARATOR","toStr","toFloat","parseISO8601","toArr","jsOptionsFunc","defaultOptions","hideLegend","setTitle","setMin","setMax","setStacked","setXtitle","setYtitle","chart","chartOptions","series","negativeValues","stacked","xtitle","ytitle","library","sortByTime","sortByNumberSeries","sortByNumber","isMinute","isHour","isDay","isWeek","dayOfWeek","isMonth","isYear","byteSuffixes","pre","byteScale","suffixIdx","baseValue","zeros","seriesOption","baseOptions","maintainAspectRatio","tooltips","displayColors","callbacks","fontSize","fontColor","yAxes","maxTicksLimit","scaleLabel","xAxes","gridLines","drawOnChartArea","defaultColors","_hideLegend","setBarMin","setBarMax","labelString","notnull","setFormatOptions","chartType","formatOptions","myAxes","stepSize","datasets","datasetIndex","xLabel","yLabel","dataPoint","tooltipItem","dataLabel","valueLabel","jsOptions","createDataTable","i$1","s$1","j$1","rows2","xtype","sortedLabels","i$2","s$2","d$1","j$2","dataset","borderColor","pointBackgroundColor","borderWidth","pointHoverBackgroundColor","lineTension","pointHitRadius","xmin","xmax","ticksKey","helpers","minTime","maxTime","value$1","timeDiff","displayFormats","unitStepSize","tooltipFormat","defaultExport","renderLineChart","allZeros","drawChart","renderPieChart","donut","cutoutPercentage","renderColumnChart","barOptions","maxLabelSize","setLabelSize","renderAreaChart","renderBarChart","renderScatterChart","showLines","renderBubbleChart","ctx","defaultOptions$1","xAxis","yAxis","credits","plotOptions","areaspline","marker","hideLegend$1","verticalAlign","layout","setTitle$1","jsOptions$1","stackedValue","stacking","setFormatOptions$1","formatter","pointFormatter","defaultExport$1","pie","innerSize","categories","newSeries","renderTo","Chart","defaultOptions$2","chartArea","fontName","pointSize","textStyle","alignment","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","hideLegend$2","setTitle$2","setBarMin$1","setBarMax$1","setStacked$2","isStacked","setXtitle$2","italic","setYtitle$2","jsOptions$2","defaultExport$2","this$1","waitForLoaded","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","renderTimeline","clearChart","pack","runCallbacks","loadOptions","packages","__config","language","mapsApiKey","charts","cb","LineChart","Timeline","GeoChart","columnType","pendingRequests","runningRequests","runNext","Zepto","requestComplete","ajaxCall","textStatus","errorThrown","adapters","setText","innerText","chartError","noPrefix","errorCatcher","__render","fetchDataSource","dataSource","rawData","addEvent","fn2","detachEvent","childOf","addAdapter","product","getAdapterType","dataEmpty","renderChart","fnName","adapterName","Highcharts","__adapterObject","callAdapter","download","__downloadAttached","alt","__enterEvent","toImage","__leaveEvent","addDownloadButton","toFormattedKey","keyType","formatSeriesData","detectXTypeWithFunction","processSeries","noDatetime","copySeries","discrete","detectXType","processSimple","perfectData","elementId","Chartkick","startRefresh","getElement","getDataSource","getOptions","getChartObject","getAdapter","updateData","__updateOptions","redraw","refreshData","sep","intervalId","stopRefresh","background","canvas","tmpCanvas","tmpCtx","getContext","fillStyle","fillRect","drawImage","toDataURL","toBase64Image","updateRefresh","__processData","__chartName","__proto__","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","configure","setDefaultOptions","eachChart","chartId","use","colorName","conversions","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","smin","lmin","sl","vmin","wh","z2","hr","ansi","mult","rem","colorString","_char","integer","chroma","mg","pure","deriveBFS","fromModel","graph","models","buildGraph","adjacents","adjacent","wrapConversion","toModel","conversion","routes","route","wrappedFn","wrapRounded","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","valid","setValues","lightness","whiteness","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","mix","mixinColor","weight","w1","w2","spaces","maxes","getValues","capped","chans","sname","svalues","chartjsColor","isValidKey","isNullOrUndef","_isFinite","valueOrDefault","valueAtIndexOrDefault","thisArg","loopable","arrayEquals","ilen","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","dst","inherits","extensions","me","ChartElement","Surrogate","_deprecated","helpers_core","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clearRect","roundedRect","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","restore","beginPath","SQRT1_2","stroke","_isPointInArea","clipArea","unclipArea","flip","stepped","steppedLine","midpoint","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","font","family","fontFamily","fontStyle","toFontString","info","cacheable","exports$2","_factorize","log10","LOG10E","powerOf10","helpers_math","helpers$1","math","rtl","getRtlAdapter","rectX","setWidth","textAlign","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","Element","configuration","initialize","_type","pivot","_view","_model","actual","origin","c0","c1","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onComplete","core_animations","animations","addAnimation","lazy","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","listeners","DatasetController","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","readKey","datasetOpts","elementOptions","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","inner","borderAlign","lineWidth","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","defaultColor$2","isVertical","getBarBounds","parseBorderWidth","maxW","maxH","borderSkipped","horizontal","parseBorderSkipped","_inRange","skipX","skipY","rectangle","element_rectangle","rects","outer","boundingRects","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","curr","pixels","getTicks","getPixelForTick","computeMinSampleSize","categoryPercentage","barPercentage","chunk","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","generateLabels","onClick","legendItem","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxHeight","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","showLine","_showLine","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","bubble","polarArea","radar","getRelativePosition","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","sizes","getMargins","marginForPositions","positions","fitBoxes","boxes","refit","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","layoutOptions","availableWidth","availableHeight","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","change","handleMaxPadding","stylesheet","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerdown","pointermove","pointerup","pointerout","readUsedSize","eventListenerOptions","supports","passive","removeListener","createDiv","cls","addResizeListener","ticking","resizer","CSS_PREFIX","CSS_SIZE_MONITOR","shrink","_reset","createResizer","clientWidth","renderProxy","animationName","reflow","watchForRender","removeResizeListener","unwatchForRender","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","rootNode","containsStyles","injectCSS","acquireContext","renderHeight","renderWidth","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","proxies","fromNativeEvent","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","bodyItem","getAfterBody","getFooter","indexScale","valueScale","existingModel","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","dataPoints","combinedBodyLength","reduce","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","construct","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","_abstract","DateAdapter","configMerge","scaleMerge","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","numDecimal","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","gc","valueAt","gcLen","garbageCollect","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","majorStart","majorEnd","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","increment","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","maxSign","suggestedMin","suggestedMax","getTickLimit","maxTicks","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","getMin","getMax","interpolate$1","skey","tkey","span","toTimestamp","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","timestamp","labelsAdded","timestamps","dataLabels","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","generate","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","_format","amount","filler","propagate","mappers","boundary","decodeFill","computeBoundary","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","loop","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","alignmentOffset","blockSize","itemHeight","textWidth","realX","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","epsilon","rounded","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","srcElement","boundingRect","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","clientHeight","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","webpackContext","webpackContextResolve","activity_count","sector","new_value","loc_quotient_activity_selector","change_to_12","change_to_4","loc_val","Cookies","ttl","expires","cookieDomain","toGMTString","cookie","nameEQ","ca","urlPrefix","visitsUrl","eventsUrl","page","useBeacon","startOnReady","trackVisits","cookies","visitParams","visitDuration","visitorDuration","ahoy","Ahoy","visitId","visitorId","track","canStringify","eventQueue","canTrackNow","trackNow","navigator","sendBeacon","setCookie","getCookie","destroyCookie","setReady","onEvent","eventName","matchedElement","parentElement","generateId","saveEventQueue","sendRequest","eventData","visit_token","visitor_token","trackEvent","trackEventNow","events_json","FormData","pathname","presence","eventProperties","cleanObject","section","getClosestSection","getVisitId","getVisitorId","landing_page","screen_width","screen","screen_height","js","getVisitToken","getVisitorToken","debug","trackView","additionalProperties","propName","trackClicks","trackSubmits","trackChanges","isElectron","userAgent","startProgressBar","progress_bar","completeProgressBar"],"mappings":"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","file":"js/application-8acf90380afc3a8bd170.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 190);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (_typeof(eras[i].since)) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (_typeof(eras[i].until)) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol[\"for\"] != null) {\n proto[Symbol[\"for\"]('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (_typeof(argWithSuffix) === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (_typeof(argThresholds) === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","module.exports = global[\"$\"] = require(\"-!/app/node_modules/expose-loader/index.js?jQuery!./jquery.js\");","export var name = \"d3\";\nexport var version = \"4.13.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\", \"visualization\", \"svg\", \"animation\", \"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\n \"name\": \"Mike Bostock\",\n \"url\": \"https://bost.ocks.org/mike\"\n};\nexport var main = \"build/d3.node.js\";\nexport var unpkg = \"build/d3.min.js\";\nexport var jsdelivr = \"build/d3.min.js\";\nexport var module = \"index\";\nexport var repository = {\n \"type\": \"git\",\n \"url\": \"https://github.com/d3/d3.git\"\n};\nexport var scripts = {\n \"pretest\": \"rimraf build && mkdir build && json2module package.json > build/package.js && node rollup.node\",\n \"test\": \"tape 'test/**/*-test.js'\",\n \"prepublishOnly\": \"npm run test && rollup -c --banner \\\"$(preamble)\\\" && uglifyjs -b beautify=false,preamble=\\\"'$(preamble)'\\\" build/d3.js -c negate_iife=false -m -o build/d3.min.js\",\n \"postpublish\": \"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/build/d3.js d3.v4.js && cp ../d3/build/d3.min.js d3.v4.min.js && git add d3.v4.js d3.v4.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/build/d3.js ../d3/build/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \\\"${npm_package_version}\\\" && git tag -am \\\"${npm_package_version}\\\" v${npm_package_version} && git push && git push --tags && cd - && zip -j build/d3.zip -- LICENSE README.md API.md CHANGES.md build/d3.js build/d3.min.js\"\n};\nexport var devDependencies = {\n \"json2module\": \"0.0\",\n \"package-preamble\": \"0.1\",\n \"rimraf\": \"2\",\n \"rollup\": \"0.53\",\n \"rollup-plugin-ascii\": \"0.0\",\n \"rollup-plugin-node-resolve\": \"3\",\n \"tape\": \"4\",\n \"uglify-js\": \"3.2\"\n};\nexport var dependencies = {\n \"d3-array\": \"1.2.1\",\n \"d3-axis\": \"1.0.8\",\n \"d3-brush\": \"1.0.4\",\n \"d3-chord\": \"1.0.4\",\n \"d3-collection\": \"1.0.4\",\n \"d3-color\": \"1.0.3\",\n \"d3-dispatch\": \"1.0.3\",\n \"d3-drag\": \"1.2.1\",\n \"d3-dsv\": \"1.0.8\",\n \"d3-ease\": \"1.0.3\",\n \"d3-force\": \"1.1.0\",\n \"d3-format\": \"1.2.2\",\n \"d3-geo\": \"1.9.1\",\n \"d3-hierarchy\": \"1.1.5\",\n \"d3-interpolate\": \"1.1.6\",\n \"d3-path\": \"1.0.5\",\n \"d3-polygon\": \"1.0.3\",\n \"d3-quadtree\": \"1.0.3\",\n \"d3-queue\": \"3.0.7\",\n \"d3-random\": \"1.1.0\",\n \"d3-request\": \"1.0.6\",\n \"d3-scale\": \"1.0.7\",\n \"d3-selection\": \"1.3.0\",\n \"d3-shape\": \"1.2.0\",\n \"d3-time\": \"1.0.8\",\n \"d3-time-format\": \"2.1.1\",\n \"d3-timer\": \"1.0.7\",\n \"d3-transition\": \"1.1.1\",\n \"d3-voronoi\": \"1.1.2\",\n \"d3-zoom\": \"1.7.1\"\n};","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\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 start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\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 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\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;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","import transpose from \"./transpose\";\nexport default function () {\n return transpose(arguments);\n}","export var slice = Array.prototype.slice;","export default function (x) {\n return x;\n}","import { slice } from \"./array\";\nimport identity from \"./identity\";\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function (d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n\n if (scale.round()) offset = Math.round(offset);\n return function (d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues,\n format = tickFormat == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n path = path.merge(path.enter().insert(\"path\", \".tick\").attr(\"class\", \"domain\").attr(\"stroke\", \"#000\"));\n tick = tick.merge(tickEnter);\n line = line.merge(tickEnter.append(\"line\").attr(\"stroke\", \"#000\").attr(x + \"2\", k * tickSizeInner));\n text = text.merge(tickEnter.append(\"text\").attr(\"fill\", \"#000\").attr(x, k * spacing).attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n tickExit = tickExit.transition(context).attr(\"opacity\", epsilon).attr(\"transform\", function (d) {\n return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\");\n });\n tickEnter.attr(\"opacity\", epsilon).attr(\"transform\", function (d) {\n var p = this.parentNode.__axis;\n return transform(p && isFinite(p = p(d)) ? p : position(d));\n });\n }\n\n tickExit.remove();\n path.attr(\"d\", orient === left || orient == right ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter);\n tick.attr(\"opacity\", 1).attr(\"transform\", function (d) {\n return transform(position(d));\n });\n line.attr(x + \"2\", k * tickSizeInner);\n text.attr(x, k * spacing).text(format);\n selection.filter(entering).attr(\"fill\", \"none\").attr(\"font-size\", 10).attr(\"font-family\", \"sans-serif\").attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n selection.each(function () {\n this.__axis = position;\n });\n }\n\n axis.scale = function (_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function () {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function (_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function (_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function (_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function (_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function (_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function (_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function (_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\nexport function axisRight(scale) {\n return axis(right, scale);\n}\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\nexport function axisLeft(scale) {\n return axis(left, scale);\n}","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","var filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // 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;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (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;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\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 brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\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 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,\n color;\n\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\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);","import { basis } from \"./basis.js\";\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}","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}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\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) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\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,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = (typeof performance === \"undefined\" ? \"undefined\" : _typeof(performance)) === \"object\" && performance.now ? performance : Date,\n setFrame = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n } // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n\n\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n } // Dispatch the end event.\n\n\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}","import decompose, { identity } from \"./decompose.js\";\nvar cssNode, cssRoot, cssView, svgNode;\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","import { get, set } from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}","import { namespace } from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function (t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function (t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import { get, set, init } from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { set } from \"./schedule.js\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = style(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n remove;\n return function () {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}","function styleInterpolate(name, i, priority) {\n return function (t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","function textInterpolate(i) {\n return function (t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, textTween(value));\n}","import { selection } from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index.js\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}","import { tweenValue } from \"./tween.js\";\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","import { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function value() {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) {\n on1 = (on0 = on).copy();\n\n on1._.cancel.push(cancel);\n\n on1._.interrupt.push(cancel);\n\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}","import { Transition, newId } from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","import { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolate } from \"d3-interpolate\";\nimport { customEvent, event, mouse, select } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant\";\nimport BrushEvent from \"./event\";\nimport noevent, { nopropagation } from \"./noevent\";\nvar MODE_DRAG = {\n name: \"drag\"\n},\n MODE_SPACE = {\n name: \"space\"\n},\n MODE_HANDLE = {\n name: \"handle\"\n},\n MODE_CENTER = {\n name: \"center\"\n};\nvar X = {\n name: \"x\",\n handles: [\"e\", \"w\"].map(type),\n input: function input(x, e) {\n return x && [[x[0], e[0][1]], [x[1], e[1][1]]];\n },\n output: function output(xy) {\n return xy && [xy[0][0], xy[1][0]];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function input(y, e) {\n return y && [[e[0][0], y[0]], [e[1][0], y[1]]];\n },\n output: function output(xy) {\n return xy && [xy[0][1], xy[1][1]];\n }\n};\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"].map(type),\n input: function input(xy) {\n return xy;\n },\n output: function output(xy) {\n return xy;\n }\n};\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {\n type: t\n };\n} // Ignore right-click, since that should open the context menu.\n\n\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n} // Like d3.local, but with the name “__brush” rather than auto-generated.\n\n\nfunction local(node) {\n while (!node.__brush) {\n if (!(node = node.parentNode)) return;\n }\n\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\nexport function brushX() {\n return brush(X);\n}\nexport function brushY() {\n return brush(Y);\n}\nexport default function () {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n listeners = dispatch(brush, \"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group.property(\"__brush\", initialize).selectAll(\".overlay\").data([type(\"overlay\")]);\n overlay.enter().append(\"rect\").attr(\"class\", \"overlay\").attr(\"pointer-events\", \"all\").attr(\"cursor\", cursors.overlay).merge(overlay).each(function () {\n var extent = local(this).extent;\n select(this).attr(\"x\", extent[0][0]).attr(\"y\", extent[0][1]).attr(\"width\", extent[1][0] - extent[0][0]).attr(\"height\", extent[1][1] - extent[0][1]);\n });\n group.selectAll(\".selection\").data([type(\"selection\")]).enter().append(\"rect\").attr(\"class\", \"selection\").attr(\"cursor\", cursors.selection).attr(\"fill\", \"#777\").attr(\"fill-opacity\", 0.3).attr(\"stroke\", \"#fff\").attr(\"shape-rendering\", \"crispEdges\");\n var handle = group.selectAll(\".handle\").data(dim.handles, function (d) {\n return d.type;\n });\n handle.exit().remove();\n handle.enter().append(\"rect\").attr(\"class\", function (d) {\n return \"handle handle--\" + d.type;\n }).attr(\"cursor\", function (d) {\n return cursors[d.type];\n });\n group.each(redraw).attr(\"fill\", \"none\").attr(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush touchstart.brush\", started);\n }\n\n brush.move = function (group, selection) {\n if (group.selection) {\n group.on(\"start.brush\", function () {\n emitter(this, arguments).beforestart().start();\n }).on(\"interrupt.brush end.brush\", function () {\n emitter(this, arguments).end();\n }).tween(\"brush\", function () {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && empty(selection1) ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 && selection1 ? tween : tween(1);\n });\n } else {\n group.each(function () {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n interrupt(that);\n state.selection = selection1 == null || empty(selection1) ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\").style(\"display\", null).attr(\"x\", selection[0][0]).attr(\"y\", selection[0][1]).attr(\"width\", selection[1][0] - selection[0][0]).attr(\"height\", selection[1][1] - selection[0][1]);\n group.selectAll(\".handle\").style(\"display\", null).attr(\"x\", function (d) {\n return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2;\n }).attr(\"y\", function (d) {\n return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2;\n }).attr(\"width\", function (d) {\n return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize;\n }).attr(\"height\", function (d) {\n return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize;\n });\n } else {\n group.selectAll(\".selection,.handle\").style(\"display\", \"none\").attr(\"x\", null).attr(\"y\", null).attr(\"width\", null).attr(\"height\", null);\n }\n }\n\n function emitter(that, args) {\n return that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function beforestart() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function start() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n return this;\n },\n brush: function brush() {\n this.emit(\"brush\");\n return this;\n },\n end: function end() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function emit(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (event.touches) {\n if (event.changedTouches.length < event.touches.length) return noevent();\n } else if (touchending) return;\n\n if (!filter.apply(this, arguments)) return;\n var that = this,\n type = event.target.__data__.type,\n mode = (event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : event.altKey ? MODE_CENTER : MODE_HANDLE,\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0],\n w0,\n w1,\n N = extent[0][1],\n n0,\n n1,\n E = extent[1][0],\n e0,\n e1,\n S = extent[1][1],\n s0,\n s1,\n dx,\n dy,\n moving,\n shifting = signX && signY && event.shiftKey,\n lockX,\n lockY,\n point0 = mouse(that),\n point = point0,\n emit = emitter(that, arguments).beforestart();\n\n if (type === \"overlay\") {\n state.selection = selection = [[w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]], [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n var group = select(that).attr(\"pointer-events\", \"none\");\n var overlay = group.selectAll(\".overlay\").attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n group.on(\"touchmove.brush\", moved, true).on(\"touchend.brush touchcancel.brush\", ended, true);\n } else {\n var view = select(event.view).on(\"keydown.brush\", keydowned, true).on(\"keyup.brush\", keyupped, true).on(\"mousemove.brush\", moved, true).on(\"mouseup.brush\", ended, true);\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = mouse(that);\n\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;else lockX = true;\n }\n\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG:\n {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n\n case MODE_HANDLE:\n {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n\n case MODE_CENTER:\n {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n\n group.on(\"touchmove.brush touchend.brush touchcancel.brush\", null);\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n shifting = signX && signY;\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx;else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy;else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent();\n }\n }\n\n function initialize() {\n var state = this.__brush || {\n selection: null\n };\n state.extent = extent.apply(this, arguments);\n state.dim = dim;\n return state;\n }\n\n brush.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;\n };\n\n brush.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.handleSize = function (_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","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 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}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\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 start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\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 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\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;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","export default function (values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}","export default function (arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) {\n j += arrays[i].length;\n }\n\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;","export var slice = Array.prototype.slice;","import { range } from \"d3-array\";\nimport { max, tau } from \"./math\";\n\nfunction compareValue(compare) {\n return function (a, b) {\n return compare(a.source.value + a.target.value, b.source.value + b.target.value);\n };\n}\n\nexport default function () {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j; // Compute the sum.\n\n k = 0, i = -1;\n\n while (++i < n) {\n x = 0, j = -1;\n\n while (++j < n) {\n x += matrix[i][j];\n }\n\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n } // Sort groups…\n\n\n if (sortGroups) groupIndex.sort(function (a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n }); // Sort subgroups…\n\n if (sortSubgroups) subgroupIndex.forEach(function (d, i) {\n d.sort(function (a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n }); // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n; // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n\n x = 0, i = -1;\n\n while (++i < n) {\n x0 = x, j = -1;\n\n while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n } // Generate chords for each (non-empty) subgroup-subgroup link.\n\n\n i = -1;\n\n while (++i < n) {\n j = i - 1;\n\n while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function (_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function (_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function (_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function (_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // 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 } // 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; // If the start tangent is not coincident with (x0,y0), line to.\n\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 arc(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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\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 } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\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 } // 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 rect(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 toString() {\n return this._;\n }\n};\nexport default path;","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function has(key) {\n return prefix + key in this;\n },\n get: function get(key) {\n return this[prefix + key];\n },\n set: function set(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function remove(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function clear() {\n for (var property in this) {\n if (property[0] === prefix) delete this[property];\n }\n },\n keys: function keys() {\n var keys = [];\n\n for (var property in this) {\n if (property[0] === prefix) keys.push(property.slice(1));\n }\n\n return keys;\n },\n values: function values() {\n var values = [];\n\n for (var property in this) {\n if (property[0] === prefix) values.push(this[property]);\n }\n\n return values;\n },\n entries: function entries() {\n var entries = [];\n\n for (var property in this) {\n if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n }\n\n return entries;\n },\n size: function size() {\n var size = 0;\n\n for (var property in this) {\n if (property[0] === prefix) ++size;\n }\n\n return size;\n },\n empty: function empty() {\n for (var property in this) {\n if (property[0] === prefix) return false;\n }\n\n return true;\n },\n each: function each(f) {\n for (var property in this) {\n if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n }\n};\n\nfunction map(object, f) {\n var map = new Map(); // Copy constructor.\n\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\n }); // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n if (f == null) while (++i < n) {\n map.set(i, object[i]);\n } else while (++i < n) {\n map.set(f(o = object[i], i, object), o);\n }\n } // Convert object to map.\n else if (object) for (var key in object) {\n map.set(key, object[key]);\n }\n return map;\n}\n\nexport default map;","import { default as map, prefix } from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function add(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set(); // Copy constructor.\n\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\n }); // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1,\n n = object.length;\n if (f == null) while (++i < n) {\n set.add(object[i]);\n } else while (++i < n) {\n set.add(f(object[i], i, object));\n }\n }\n return set;\n}\n\nexport default set;","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n toString: function toString() {\n return this.rgb() + \"\";\n }\n});\nexport default function color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb(m >> 8 & 0xf | m >> 4 & 0x0f0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n ) : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\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]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return 0 <= this.r && this.r <= 255 && 0 <= this.g && this.g <= 255 && 0 <= this.b && this.b <= 255 && 0 <= this.opacity && this.opacity <= 1;\n },\n toString: function toString() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\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 brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import define, { extend } from \"./define\";\nimport { Color, rgbConvert, Rgb } from \"./color\";\nimport { deg2rad, rad2deg } from \"./math\";\nvar Kn = 18,\n Xn = 0.950470,\n // D65 standard referent\nYn = 1,\n Zn = 1.088830,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Lab, lab, extend(Color, {\n brighter: function brighter(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function darker(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(xyz2rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z), xyz2rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z), this.opacity);\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Hcl, hcl, extend(Color, {\n brighter: function brighter(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function darker(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function rgb() {\n return labConvert(this).rgb();\n }\n}));","import define, { extend } from \"./define\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color\";\nimport { deg2rad, rad2deg } from \"./math\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","var filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function () {\n var value = this._.on.apply(this._, arguments);\n\n return value === this._ ? this : value;\n};","import { dispatch } from \"d3-dispatch\";\nimport { event, customEvent, select, mouse, touch } from \"d3-selection\";\nimport nodrag, { yesdrag } from \"./nodrag\";\nimport noevent, { nopropagation } from \"./noevent\";\nimport constant from \"./constant\";\nimport DragEvent from \"./event\"; // Ignore right-click, since that should open the context menu.\n\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {\n x: event.x,\n y: event.y\n } : d;\n}\n\nfunction defaultTouchable() {\n return \"ontouchstart\" in this;\n}\n\nexport default function () {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection.on(\"mousedown.drag\", mousedowned).filter(touchable).on(\"touchstart.drag\", touchstarted).on(\"touchmove.drag\", touchmoved).on(\"touchend.drag touchcancel.drag\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n\n if (!mousemoving) {\n var dx = event.clientX - mousedownx,\n dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length,\n i,\n gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length,\n i,\n gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length,\n i,\n gesture;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id),\n s,\n dx,\n dy,\n sublisteners = listeners.copy();\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function () {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n return function gesture(type) {\n var p0 = p,\n n;\n\n switch (type) {\n case \"start\":\n gestures[id] = gesture, n = active++;\n break;\n\n case \"end\":\n delete gestures[id], --active;\n // nobreak\n\n case \"drag\":\n p = point(container, id), n = active;\n break;\n }\n\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function (_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function (_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function (_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function (name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function (row, i) {\n return f(object(row), i, columns);\n };\n} // Compute unique columns in order of discovery.\n\n\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n rows.forEach(function (row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n return columns;\n}\n\nexport default function (delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert,\n columns,\n rows = parseRows(text, function (row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [],\n // output rows\n N = text.length,\n I = 0,\n // current character index\n n = 0,\n // current line number\n t,\n // current token\n eof = N <= 0,\n // current token followed by EOF?\n eol = false; // current token followed by EOL?\n // Strip the trailing newline.\n\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL; // Unescape quotes.\n\n var i,\n j = I,\n c;\n\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE) {\n ;\n }\n\n if ((i = I) >= N) eof = true;else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n } // Find next delimiter or newline.\n\n\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n } else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n } // Return last token before EOF.\n\n\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n\n while (t !== EOL && t !== EOF) {\n row.push(t), t = token();\n }\n\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(rows.map(function (row) {\n return columns.map(function (column) {\n return formatValue(row[column]);\n }).join(delimiter);\n })).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(text) {\n return text == null ? \"\" : reFormat.test(text += \"\") ? \"\\\"\" + text.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\" : text;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatRows: formatRows\n };\n}","import dsv from \"./dsv\";\nvar csv = dsv(\",\");\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatRows = csv.formatRows;","import dsv from \"./dsv\";\nvar tsv = dsv(\"\\t\");\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatRows = tsv.formatRows;","var exponent = 3;\nexport var polyIn = function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n return polyIn;\n}(exponent);\nexport var polyOut = function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n return polyOut;\n}(exponent);\nexport var polyInOut = function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n return polyInOut;\n}(exponent);","var pi = Math.PI,\n halfPi = pi / 2;\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}","var overshoot = 1.70158;\nexport var backIn = function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n return backIn;\n}(overshoot);\nexport var backOut = function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n return backOut;\n}(overshoot);\nexport var backInOut = function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n return backInOut;\n}(overshoot);","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\nexport var elasticIn = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticIn.period = function (p) {\n return custom(a, p);\n };\n\n return elasticIn;\n}(amplitude, period);\nexport var elasticOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticOut;\n}(amplitude, period);\nexport var elasticInOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0 ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p) : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticInOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticInOut;\n}(amplitude, period);","export default function (d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {\n data: d\n },\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.\n\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n } // Is the new point is exactly coincident with the existing point?\n\n\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.\n\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));\n\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d,\n i,\n n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity; // Compute the points and their extent.\n\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n } // If there were no (valid) points, abort.\n\n\n if (x0 > x1 || y0 > y1) return this; // Expand the tree to cover the new points.\n\n this.cover(x0, y0).cover(x1, y1); // Add the new points.\n\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}","export default function (x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1; // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n } // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | x < x0;\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n\n switch (i) {\n case 0:\n x1 = x0 + z, y1 = y0 + z;\n break;\n\n case 1:\n x0 = x1 - z, y1 = y0 + z;\n break;\n\n case 2:\n x1 = x0 + z, y0 = y1 - z;\n break;\n\n case 3:\n x0 = x1 - z, y0 = y1 - z;\n break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}","export default function (node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}","export function defaultX(d) {\n return d[0];\n}\nexport default function (_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}","export function defaultY(d) {\n return d[1];\n}\nexport default function (_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}","import tree_add, { addAll as tree_addAll } from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, { removeAll as tree_removeAll } from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, { defaultX } from \"./x.js\";\nimport tree_y, { defaultY } from \"./y.js\";\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {\n data: leaf.data\n },\n next = copy;\n\n while (leaf = leaf.next) {\n next = next.next = {\n data: leaf.data\n };\n }\n\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function () {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n if (!node) return copy;\n if (!node.length) return copy._root = leaf_copy(node), copy;\n nodes = [{\n source: node,\n target: copy._root = new Array(4)\n }];\n\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({\n source: child,\n target: node.target[i] = new Array(4)\n });else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;","export default function () {\n var data = [];\n this.visit(function (node) {\n if (!node.length) do {\n data.push(node.data);\n } while (node = node.next);\n });\n return data;\n}","export default function (_) {\n return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}","import Quad from \"./quad.js\";\nexport default function (x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant.\n\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n quads.push(new Quad(node[3], xm, ym, x2, y2), new Quad(node[2], x1, ym, xm, y2), new Quad(node[1], xm, y1, x2, ym), new Quad(node[0], x1, y1, xm, ym)); // Visit the closest quadrant first.\n\n if (i = (y >= ym) << 1 | x >= xm) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n } // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}","export default function (d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return this; // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;\n } // Find the point to remove.\n\n while (node.data !== d) {\n if (!(previous = node, node = node.next)) return this;\n }\n\n if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.\n\n if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.\n\n if (!parent) return this._root = next, this; // Remove this leaf.\n\n next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.\n\n if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {\n if (retainer) retainer[j] = node;else this._root = node;\n }\n\n return this;\n}\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) {\n this.remove(data[i]);\n }\n\n return this;\n}","export default function () {\n return this._root;\n}","export default function () {\n var size = 0;\n this.visit(function (node) {\n if (!node.length) do {\n ++size;\n } while (node = node.next);\n });\n return size;\n}","import Quad from \"./quad.js\";\nexport default function (callback) {\n var quads = [],\n q,\n node = this._root,\n child,\n x0,\n y0,\n x1,\n y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n\n return this;\n}","import Quad from \"./quad.js\";\nexport default function (callback) {\n var quads = [],\n next = [],\n q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n var node = q.node;\n\n if (node.length) {\n var child,\n x0 = q.x0,\n y0 = q.y0,\n x1 = q.x1,\n y1 = q.y1,\n xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n\n next.push(q);\n }\n\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n\n return this;\n}","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function has(key) {\n return prefix + key in this;\n },\n get: function get(key) {\n return this[prefix + key];\n },\n set: function set(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function remove(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function clear() {\n for (var property in this) {\n if (property[0] === prefix) delete this[property];\n }\n },\n keys: function keys() {\n var keys = [];\n\n for (var property in this) {\n if (property[0] === prefix) keys.push(property.slice(1));\n }\n\n return keys;\n },\n values: function values() {\n var values = [];\n\n for (var property in this) {\n if (property[0] === prefix) values.push(this[property]);\n }\n\n return values;\n },\n entries: function entries() {\n var entries = [];\n\n for (var property in this) {\n if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n }\n\n return entries;\n },\n size: function size() {\n var size = 0;\n\n for (var property in this) {\n if (property[0] === prefix) ++size;\n }\n\n return size;\n },\n empty: function empty() {\n for (var property in this) {\n if (property[0] === prefix) return false;\n }\n\n return true;\n },\n each: function each(f) {\n for (var property in this) {\n if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n }\n};\n\nfunction map(object, f) {\n var map = new Map(); // Copy constructor.\n\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\n }); // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n if (f == null) while (++i < n) {\n map.set(i, object[i]);\n } else while (++i < n) {\n map.set(f(o = object[i], i, object), o);\n }\n } // Convert object to map.\n else if (object) for (var key in object) {\n map.set(key, object[key]);\n }\n return map;\n}\n\nexport default map;","import { default as map, prefix } from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function add(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set(); // Copy constructor.\n\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\n }); // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1,\n n = object.length;\n if (f == null) while (++i < n) {\n set.add(object[i]);\n } else while (++i < n) {\n set.add(f(object[i], i, object));\n }\n }\n return set;\n}\n\nexport default set;","import { dispatch } from \"d3-dispatch\";\nimport { map } from \"d3-collection\";\nimport { timer } from \"d3-timer\";\nexport function x(d) {\n return d.x;\n}\nexport function y(d) {\n return d.y;\n}\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\nexport default function (_nodes) {\n var simulation,\n _alpha = 1,\n _alphaMin = 0.001,\n _alphaDecay = 1 - Math.pow(_alphaMin, 1 / 300),\n _alphaTarget = 0,\n _velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (_nodes == null) _nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n\n if (_alpha < _alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick() {\n var i,\n n = _nodes.length,\n node;\n _alpha += (_alphaTarget - _alpha) * _alphaDecay;\n forces.each(function (force) {\n force(_alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = _nodes[i];\n if (node.fx == null) node.x += node.vx *= _velocityDecay;else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= _velocityDecay;else node.y = node.fy, node.vy = 0;\n }\n }\n\n function initializeNodes() {\n for (var i = 0, n = _nodes.length, node; i < n; ++i) {\n node = _nodes[i], node.index = i;\n\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i),\n angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(_nodes);\n return force;\n }\n\n initializeNodes();\n return simulation = {\n tick: tick,\n restart: function restart() {\n return stepper.restart(step), simulation;\n },\n stop: function stop() {\n return stepper.stop(), simulation;\n },\n nodes: function nodes(_) {\n return arguments.length ? (_nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : _nodes;\n },\n alpha: function alpha(_) {\n return arguments.length ? (_alpha = +_, simulation) : _alpha;\n },\n alphaMin: function alphaMin(_) {\n return arguments.length ? (_alphaMin = +_, simulation) : _alphaMin;\n },\n alphaDecay: function alphaDecay(_) {\n return arguments.length ? (_alphaDecay = +_, simulation) : +_alphaDecay;\n },\n alphaTarget: function alphaTarget(_) {\n return arguments.length ? (_alphaTarget = +_, simulation) : _alphaTarget;\n },\n velocityDecay: function velocityDecay(_) {\n return arguments.length ? (_velocityDecay = 1 - _, simulation) : 1 - _velocityDecay;\n },\n force: function force(name, _) {\n return arguments.length > 1 ? (_ == null ? forces.remove(name) : forces.set(name, initializeForce(_)), simulation) : forces.get(name);\n },\n find: function find(x, y, radius) {\n var i = 0,\n n = _nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n if (radius == null) radius = Infinity;else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = _nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n on: function on(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}","import formatDecimal from \"./formatDecimal\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function (x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // 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\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import formatDecimal from \"./formatDecimal\";\nexport default function (x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}","import formatDecimal from \"./formatDecimal\";\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDefault from \"./formatDefault\";\nimport formatPrefixAuto from \"./formatPrefixAuto\";\nimport formatRounded from \"./formatRounded\";\nexport default {\n \"\": formatDefault,\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": function d(x) {\n return Math.round(x).toString(10);\n },\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x, p) {\n x = x.toPrecision(p);\n\n out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (x[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n case \"e\":\n break out;\n\n default:\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n}","import formatTypes from \"./formatTypes\"; // [[fill]align][sign][symbol][0][width][,][.precision][type]\n\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\"; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // Map invalid types to the default format.\n else if (!formatTypes[type]) type = \"\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\";\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width == null ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0)) + this.type;\n};","export default function (x) {\n return x;\n}","import formatLocale from \"./locale\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import exponent from \"./exponent\";\nimport formatGroup from \"./formatGroup\";\nimport formatNumerals from \"./formatNumerals\";\nimport formatSpecifier from \"./formatSpecifier\";\nimport formatTypes from \"./formatTypes\";\nimport { prefixExponent } from \"./formatPrefixAuto\";\nimport identity from \"./identity\";\nvar prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\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 type = specifier.type; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = !type || /[defgprs%]/.test(type); // 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\n precision = precision == null ? type ? 6 : 12 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Perform the initial formatting.\n\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision); // If a negative value rounds to zero during formatting, treat as positive.\n\n if (valueNegative && +value === 0) valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : \"-\" : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\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 } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n 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}","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}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","import exponent from \"./exponent\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\nexport default function () {\n return new Adder();\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function add(y) {\n _add(temp, y, this.t);\n\n _add(this, temp.s, this.s);\n\n if (this.s) this.t += temp.t;else this.s = temp.t;\n },\n valueOf: function valueOf() {\n return this.s;\n }\n};\nvar temp = new Adder();\n\nfunction _add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = a - av + (b - bv);\n}","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","export default function noop() {}","import adder from \"./adder\";\nimport { atan2, cos, quarterPi, radians, sin, tau } from \"./math\";\nimport noop from \"./noop\";\nimport stream from \"./stream\";\nexport var areaRingSum = adder();\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function sphere() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u)); // Advance the previous points.\n\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function (object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}","import { asin, atan2, cos, sin, sqrt } from \"./math\";\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\nexport function cartesian(spherical) {\n var lambda = spherical[0],\n phi = spherical[1],\n cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n} // TODO return a\n\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n} // TODO return d\n\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}","import adder from \"./adder\";\nimport { areaStream, areaRingSum } from \"./area\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace, spherical } from \"./cartesian\";\nimport { abs, degrees, epsilon, radians } from \"./math\";\nimport stream from \"./stream\";\nvar lambda0,\n phi0,\n lambda1,\n phi1,\n // bounds\nlambda2,\n // previous lambda-coordinate\nlambda00,\n phi00,\n // first point\np0,\n // previous 3D point\ndeltaSum = adder(),\n ranges,\n range;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function polygonStart() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);else if (deltaSum > epsilon) phi1 = 90;else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n} // Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\n\n\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function (feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream); // First, sort ranges by their minimum longitudes.\n\n if (n = ranges.length) {\n ranges.sort(rangeCompare); // Then, merge any ranges that overlap.\n\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n } // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n\n\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n return lambda0 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0, phi0], [lambda1, phi1]];\n}","import compose from \"./compose\";\nimport { asin, atan2, cos, degrees, pi, radians, sin, tau } from \"./math\";\n\nfunction rotationIdentity(lambda, phi) {\n return [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function (lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), asin(k * cosDeltaGamma + y * sinDeltaGamma)];\n }\n\n rotation.invert = function (lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), asin(k * cosDeltaPhi - x * sinDeltaPhi)];\n };\n\n return rotation;\n}\n\nexport default function (rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function (coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}","import { cartesian, cartesianNormalizeInPlace, spherical } from \"./cartesian\";\nimport constant from \"./constant\";\nimport { acos, cos, degrees, epsilon, radians, sin, tau } from \"./math\";\nimport { rotateRadians } from \"./rotation\"; // Generates a circle centered at [0°, 0°], with a given radius and precision.\n\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n} // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\n\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function () {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {\n point: point\n };\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {\n type: \"Polygon\",\n coordinates: [ring]\n };\n ring = rotate = null;\n return c;\n }\n\n circle.center = function (_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function (_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function (_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}","import noop from \"../noop\";\nexport default function () {\n var lines = [],\n line;\n return {\n point: function point(x, y) {\n line.push([x, y]);\n },\n lineStart: function lineStart() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function rejoin() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function result() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}","import { abs, epsilon } from \"./math\";\nexport default function (a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}","import pointEqual from \"../pointEqual\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n\n this.e = entry; // is an entry?\n\n this.v = false; // visited\n\n this.n = this.p = null; // next & previous\n} // A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\n\n\nexport default function (segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n segments.forEach(function (segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n,\n p0 = segment[0],\n p1 = segment[n],\n x; // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n\n for (i = 0; i < n; ++i) {\n stream.point((p0 = segment[i])[0], p0[1]);\n }\n\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n\n while (current.v) {\n if ((current = current.n) === start) return;\n }\n\n points = current.z;\n stream.lineStart();\n\n do {\n current.v = current.o.v = true;\n\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n\n for (i = points.length - 1; i >= 0; --i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n\n current = current.p;\n }\n\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n\n a.n = b = array[0];\n b.p = a;\n}","import adder from \"./adder\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace } from \"./cartesian\";\nimport { asin, atan2, cos, epsilon, pi, quarterPi, sin, tau } from \"./math\";\nvar sum = adder();\nexport default function (polygon, point) {\n var lambda = point[0],\n phi = point[1],\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n sum.reset();\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = point0[0],\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = point1[0],\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta; // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n } // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ winding & 1;\n}","import clipBuffer from \"./buffer\";\nimport clipRejoin from \"./rejoin\";\nimport { epsilon, halfPi } from \"../math\";\nimport polygonContains from \"../polygonContains\";\nimport { merge } from \"d3-array\";\nexport default function (pointVisible, clipLine, interpolate, start) {\n return function (sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function polygonEnd() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function sphere() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i,\n n = ringSegments.length,\n m,\n segment,\n point;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return; // No intersections.\n\n if (clean & 1) {\n segment = ringSegments[0];\n\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n\n for (i = 0; i < m; ++i) {\n sink.point((point = segment[i])[0], point[1]);\n }\n\n sink.lineEnd();\n }\n\n return;\n } // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n\n\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n} // Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\n\n\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}","import clip from \"./index\";\nimport { abs, atan, cos, epsilon, halfPi, pi, sin } from \"../math\";\nexport default clip(function () {\n return true;\n}, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]); // Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\n\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n stream.lineStart();\n _clean = 1;\n },\n point: function point(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n\n if (abs(delta - pi) < epsilon) {\n // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n _clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n _clean = 0;\n }\n\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function lineEnd() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function clean() {\n return 2 - _clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1) - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0)) / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}","import adder from \"./adder\";\nimport { abs, atan2, cos, radians, sin, sqrt } from \"./math\";\nimport noop from \"./noop\";\nimport stream from \"./stream\";\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function (object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}","import adder from \"../adder\";\nimport { abs } from \"../math\";\nimport noop from \"../noop\";\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function result() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;","import { tau } from \"../math\";\nimport noop from \"../noop\";\nexport default function PathContext(context) {\n this._context = context;\n}\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\n break;\n }\n }\n },\n result: noop\n};","import adder from \"../adder\";\nimport { sqrt } from \"../math\";\nimport noop from \"../noop\";\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\nvar lengthStream = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;","export default function PathString() {\n this._string = [];\n}\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n}","export default function (methods) {\n return {\n stream: transformer(methods)\n };\n}\nexport function transformer(methods) {\n return function (stream) {\n var s = new TransformStream();\n\n for (var key in methods) {\n s[key] = methods[key];\n }\n\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function point(x, y) {\n this.stream.point(x, y);\n },\n sphere: function sphere() {\n this.stream.sphere();\n },\n lineStart: function lineStart() {\n this.stream.lineStart();\n },\n lineEnd: function lineEnd() {\n this.stream.lineEnd();\n },\n polygonStart: function polygonStart() {\n this.stream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n this.stream.polygonEnd();\n }\n};","import { cartesian } from \"../cartesian\";\nimport { abs, asin, atan2, cos, epsilon, radians, sqrt } from \"../math\";\nimport { transformer } from \"../transform\";\nvar maxDepth = 16,\n // maximum depth of subdivision\ncosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function (project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function point(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n\n return function (stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function polygonEnd() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]),\n p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}","import clipAntimeridian from \"../clip/antimeridian\";\nimport clipCircle from \"../clip/circle\";\nimport clipRectangle from \"../clip/rectangle\";\nimport compose from \"../compose\";\nimport identity from \"../identity\";\nimport { degrees, radians, sqrt } from \"../math\";\nimport { rotateRadians } from \"../rotation\";\nimport { transformer } from \"../transform\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit\";\nimport resample from \"./resample\";\nvar transformRadians = transformer({\n point: function point(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function point(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nexport default function projection(project) {\n return projectionMutator(function () {\n return project;\n })();\n}\nexport function projectionMutator(projectAt) {\n var project,\n k = 150,\n // scale\n x = 480,\n y = 250,\n // translate\n dx,\n dy,\n lambda = 0,\n phi = 0,\n // center\n deltaLambda = 0,\n deltaPhi = 0,\n deltaGamma = 0,\n rotate,\n projectRotate,\n // rotate\n theta = null,\n preclip = clipAntimeridian,\n // clip angle\n x0 = null,\n y0,\n x1,\n y1,\n postclip = identity,\n // clip extent\n delta2 = 0.5,\n projectResample = resample(projectTransform, delta2),\n // precision\n cache,\n cacheStream;\n\n function projection(point) {\n point = projectRotate(point[0] * radians, point[1] * radians);\n return [point[0] * k + dx, dy - point[1] * k];\n }\n\n function invert(point) {\n point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n function projectTransform(x, y) {\n return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];\n }\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function (_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function (_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function (_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function (_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.precision = function (_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);\n var center = project(lambda, phi);\n dx = x - center[0] * k;\n dy = y + center[1] * k;\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function () {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}","import { asin, atan2, cos, sin, sqrt } from \"../math\";\nexport function azimuthalRaw(scale) {\n return function (x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [k * cy * sin(x), k * sin(y)];\n };\n}\nexport function azimuthalInvert(angle) {\n return function (x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [atan2(x * sc, z * cc), asin(z && y * sc / z)];\n };\n}","import { asin, sqrt } from \"../math\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal\";\nimport projection from \"./index\";\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function (cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function (z) {\n return 2 * asin(z / 2);\n});\nexport default function () {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n}","import { acos, sin } from \"../math\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal\";\nimport projection from \"./index\";\nexport var azimuthalEquidistantRaw = azimuthalRaw(function (c) {\n return (c = acos(c)) && c / sin(c);\n});\nazimuthalEquidistantRaw.invert = azimuthalInvert(function (z) {\n return z;\n});\nexport default function () {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n}","import { atan, exp, halfPi, log, pi, tan, tau } from \"../math\";\nimport rotation from \"../rotation\";\nimport projection from \"./index\";\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function (x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function () {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n}\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null,\n y0,\n x1,\n y1; // clip extent\n\n m.scale = function (_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function (_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function (_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function (_) {\n return arguments.length ? (_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}","import projection from \"./index\";\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\nequirectangularRaw.invert = equirectangularRaw;\nexport default function () {\n return projection(equirectangularRaw).scale(152.63);\n}","import { atan, cos, sin } from \"../math\";\nimport { azimuthalInvert } from \"./azimuthal\";\nimport projection from \"./index\";\nexport function gnomonicRaw(x, y) {\n var cy = cos(y),\n k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\ngnomonicRaw.invert = azimuthalInvert(atan);\nexport default function () {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n}","import projection from \"./index\";\nimport { abs, epsilon } from \"../math\";\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n return [lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))];\n}\n\nnaturalEarth1Raw.invert = function (x, y) {\n var phi = y,\n i = 25,\n delta;\n\n do {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n\n return [x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), phi];\n};\n\nexport default function () {\n return projection(naturalEarth1Raw).scale(175.295);\n}","import { asin, cos, epsilon, sin } from \"../math\";\nimport { azimuthalInvert } from \"./azimuthal\";\nimport projection from \"./index\";\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\northographicRaw.invert = azimuthalInvert(asin);\nexport default function () {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n}","import { atan, cos, sin } from \"../math\";\nimport { azimuthalInvert } from \"./azimuthal\";\nimport projection from \"./index\";\nexport function stereographicRaw(x, y) {\n var cy = cos(y),\n k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\nstereographicRaw.invert = azimuthalInvert(function (z) {\n return 2 * atan(z);\n});\nexport default function () {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n}","import { atan, exp, halfPi, log, tan } from \"../math\";\nimport { mercatorProjection } from \"./mercator\";\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function (x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function () {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function (_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function (_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90]).scale(159.155);\n}","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;else while (--i >= 0) {\n sum += children[i].value;\n }\n node.value = sum;\n}\n\nexport default function () {\n return this.eachAfter(count);\n}","import node_count from \"./count\";\nimport node_each from \"./each\";\nimport node_eachBefore from \"./eachBefore\";\nimport node_eachAfter from \"./eachAfter\";\nimport node_sum from \"./sum\";\nimport node_sort from \"./sort\";\nimport node_path from \"./path\";\nimport node_ancestors from \"./ancestors\";\nimport node_descendants from \"./descendants\";\nimport node_leaves from \"./leaves\";\nimport node_links from \"./links\";\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n\n do {\n node.height = height;\n } while ((node = node.parent) && node.height < ++height);\n}\nexport function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n}\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};","export default function (callback) {\n var node = this,\n current,\n next = [node],\n children,\n i,\n n;\n\n do {\n current = next.reverse(), next = [];\n\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n next = [],\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n\n while (node = next.pop()) {\n callback(node);\n }\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n children,\n i;\n\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n\n return this;\n}","export default function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n\n while (--i >= 0) {\n sum += children[i].value;\n }\n\n node.value = sum;\n });\n}","export default function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}","export default function (end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n\n var k = nodes.length;\n\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n\n return c;\n}","export default function () {\n var node = this,\n nodes = [node];\n\n while (node = node.parent) {\n nodes.push(node);\n }\n\n return nodes;\n}","export default function () {\n var nodes = [];\n this.each(function (node) {\n nodes.push(node);\n });\n return nodes;\n}","export default function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}","export default function () {\n var root = this,\n links = [];\n root.each(function (node) {\n if (node !== root) {\n // Don’t include the root’s parent, if any.\n links.push({\n source: node.parent,\n target: node\n });\n }\n });\n return links;\n}","export var slice = Array.prototype.slice;\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}","export function optional(f) {\n return f == null ? null : required(f);\n}\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error();\n return f;\n}","export function constantZero() {\n return 0;\n}\nexport default function (x) {\n return function () {\n return x;\n };\n}","export default function (node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}","import { Node } from \"./hierarchy/index\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n} // function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\n\n\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n} // This function works analogously to nextLeft.\n\n\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n} // Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\n\n\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n} // All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\n\n\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n} // If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\n\n\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n\n this.a = this; // ancestor\n\n this.z = 0; // prelim\n\n this.m = 0; // mod\n\n this.c = 0; // change\n\n this.s = 0; // shift\n\n this.t = null; // thread\n\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n} // Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\n\n\nexport default function () {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root); // Compute the layout using Buchheim et al.’s algorithm.\n\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk); // If a fixed node size is specified, scale x and y.\n\n if (nodeSize) root.eachBefore(sizeNode); // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function (node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function (node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return root;\n } // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n\n\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n } // Computes all real x-coordinates by summing up the modifiers recursively.\n\n\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n } // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n\n\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function (x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function (x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : nodeSize ? null : [dx, dy];\n };\n\n tree.nodeSize = function (x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : nodeSize ? [dx, dy] : null;\n };\n\n return tree;\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}","import treemapDice from \"./dice\";\nimport treemapSlice from \"./slice\";\nexport var phi = (1 + Math.sqrt(5)) / 2;\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx,\n dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0; // Find the next non-empty node.\n\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\n\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue); // Keep adding nodes while the aspect ratio maintains or improves.\n\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n\n minRatio = newRatio;\n } // Position and record the row orientation.\n\n\n rows.push(row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1)\n });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\nexport default (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);","import roundNode from \"./round\";\nimport squarify from \"./squarify\";\nimport { required } from \"../accessors\";\nimport constant, { constantZero } from \"../constant\";\nexport default function () {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 = root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function (x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function (x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function (x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function (x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function (x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function (x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function (x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function (x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function (x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import treemapDice from \"./dice\";\nimport treemapSlice from \"./slice\";\nimport { phi, squarifyRatio } from \"./squarify\";\nexport default (function custom(ratio) {\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n\n for (i = row.value = 0, n = nodes.length; i < n; ++i) {\n row.value += nodes[i].value;\n }\n\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // 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;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (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;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\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 brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant\";\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}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, { gamma } from \"./color\";\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 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,\n color;\n\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\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);","import { basis } from \"./basis\";\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}","export default function (a, b) {\n return a = +a, b -= a, function (t) {\n return a + b * t;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport value from \"./value\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\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) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number\";\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,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { color } from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\nexport default function (a, b) {\n var t = _typeof(b),\n c;\n\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : Array.isArray(b) ? array : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","import decompose, { identity } from \"./decompose\";\nvar cssNode, cssRoot, cssView, svgNode;\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import number from \"../number\";\nimport { parseCss, parseSvg } from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n} // p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n\n\nexport default function (p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000;\n return i;\n}","import { hsl as colorHsl } from \"d3-color\";\nimport color, { hue } from \"./color\";\n\nfunction hsl(hue) {\n return function (start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\"; // https://observablehq.com/@mbostock/lab-and-rgb\n\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn),\n x,\n z;\n if (r === g && g === b) x = z = y;else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Lab, lab, extend(Color, {\n brighter: function brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z), lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z), this.opacity);\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function rgb() {\n return hcl2lab(this).rgb();\n }\n}));","import { hcl as colorHcl } from \"d3-color\";\nimport color, { hue } from \"./color\";\n\nfunction hcl(hue) {\n return function (start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","import { cubehelix as colorCubehelix } from \"d3-color\";\nimport color, { hue } from \"./color\";\n\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) {} // 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 } // 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; // If the start tangent is not coincident with (x0,y0), line to.\n\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 arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\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 } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\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 } // 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 rect(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 toString() {\n return this._;\n }\n};\nexport default path;","export default function (d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {\n data: d\n },\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.\n\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n } // Is the new point is exactly coincident with the existing point?\n\n\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.\n\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));\n\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d,\n i,\n n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity; // Compute the points and their extent.\n\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n } // If there were no (valid) points, inherit the existing extent.\n\n\n if (x1 < x0) x0 = this._x0, x1 = this._x1;\n if (y1 < y0) y0 = this._y0, y1 = this._y1; // Expand the tree to cover the new points.\n\n this.cover(x0, y0).cover(x1, y1); // Add the new points.\n\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}","export default function (x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1; // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n } // Otherwise, double repeatedly to cover.\n else if (x0 > x || x > x1 || y0 > y || y > y1) {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n switch (i = (y < (y0 + y1) / 2) << 1 | x < (x0 + x1) / 2) {\n case 0:\n {\n do {\n parent = new Array(4), parent[i] = node, node = parent;\n } while ((z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1));\n\n break;\n }\n\n case 1:\n {\n do {\n parent = new Array(4), parent[i] = node, node = parent;\n } while ((z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1));\n\n break;\n }\n\n case 2:\n {\n do {\n parent = new Array(4), parent[i] = node, node = parent;\n } while ((z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y));\n\n break;\n }\n\n case 3:\n {\n do {\n parent = new Array(4), parent[i] = node, node = parent;\n } while ((z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y));\n\n break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n } // If the quadtree covers the point already, just return.\n else return this;\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}","export default function (node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}","export function defaultX(d) {\n return d[0];\n}\nexport default function (_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}","export function defaultY(d) {\n return d[1];\n}\nexport default function (_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}","import tree_add, { addAll as tree_addAll } from \"./add\";\nimport tree_cover from \"./cover\";\nimport tree_data from \"./data\";\nimport tree_extent from \"./extent\";\nimport tree_find from \"./find\";\nimport tree_remove, { removeAll as tree_removeAll } from \"./remove\";\nimport tree_root from \"./root\";\nimport tree_size from \"./size\";\nimport tree_visit from \"./visit\";\nimport tree_visitAfter from \"./visitAfter\";\nimport tree_x, { defaultX } from \"./x\";\nimport tree_y, { defaultY } from \"./y\";\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {\n data: leaf.data\n },\n next = copy;\n\n while (leaf = leaf.next) {\n next = next.next = {\n data: leaf.data\n };\n }\n\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function () {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n if (!node) return copy;\n if (!node.length) return copy._root = leaf_copy(node), copy;\n nodes = [{\n source: node,\n target: copy._root = new Array(4)\n }];\n\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({\n source: child,\n target: node.target[i] = new Array(4)\n });else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;","export default function () {\n var data = [];\n this.visit(function (node) {\n if (!node.length) do {\n data.push(node.data);\n } while (node = node.next);\n });\n return data;\n}","export default function (_) {\n return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}","import Quad from \"./quad\";\nexport default function (x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant.\n\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n quads.push(new Quad(node[3], xm, ym, x2, y2), new Quad(node[2], x1, ym, xm, y2), new Quad(node[1], xm, y1, x2, ym), new Quad(node[0], x1, y1, xm, ym)); // Visit the closest quadrant first.\n\n if (i = (y >= ym) << 1 | x >= xm) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n } // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}","export default function (d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return this; // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;\n } // Find the point to remove.\n\n while (node.data !== d) {\n if (!(previous = node, node = node.next)) return this;\n }\n\n if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.\n\n if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.\n\n if (!parent) return this._root = next, this; // Remove this leaf.\n\n next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.\n\n if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {\n if (retainer) retainer[j] = node;else this._root = node;\n }\n\n return this;\n}\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) {\n this.remove(data[i]);\n }\n\n return this;\n}","export default function () {\n return this._root;\n}","export default function () {\n var size = 0;\n this.visit(function (node) {\n if (!node.length) do {\n ++size;\n } while (node = node.next);\n });\n return size;\n}","import Quad from \"./quad\";\nexport default function (callback) {\n var quads = [],\n q,\n node = this._root,\n child,\n x0,\n y0,\n x1,\n y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n\n return this;\n}","import Quad from \"./quad\";\nexport default function (callback) {\n var quads = [],\n next = [],\n q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n var node = q.node;\n\n if (node.length) {\n var child,\n x0 = q.x0,\n y0 = q.y0,\n x1 = q.x1,\n y1 = q.y1,\n xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n\n next.push(q);\n }\n\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n\n return this;\n}","export var slice = [].slice;","import { slice } from \"./array\";\nvar noabort = {};\n\nfunction Queue(size) {\n this._size = size;\n this._call = this._error = null;\n this._tasks = [];\n this._data = [];\n this._waiting = this._active = this._ended = this._start = 0; // inside a synchronous task callback?\n}\n\nQueue.prototype = queue.prototype = {\n constructor: Queue,\n defer: function defer(callback) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback\");\n if (this._call) throw new Error(\"defer after await\");\n if (this._error != null) return this;\n var t = slice.call(arguments, 1);\n t.push(callback);\n ++this._waiting, this._tasks.push(t);\n poke(this);\n return this;\n },\n abort: function abort() {\n if (this._error == null) _abort(this, new Error(\"abort\"));\n return this;\n },\n \"await\": function _await(callback) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback\");\n if (this._call) throw new Error(\"multiple await\");\n\n this._call = function (error, results) {\n callback.apply(null, [error].concat(results));\n };\n\n maybeNotify(this);\n return this;\n },\n awaitAll: function awaitAll(callback) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback\");\n if (this._call) throw new Error(\"multiple await\");\n this._call = callback;\n maybeNotify(this);\n return this;\n }\n};\n\nfunction poke(q) {\n if (!q._start) {\n try {\n start(q);\n } // let the current task complete\n catch (e) {\n if (q._tasks[q._ended + q._active - 1]) _abort(q, e); // task errored synchronously\n else if (!q._data) throw e; // await callback errored synchronously\n }\n }\n}\n\nfunction start(q) {\n while (q._start = q._waiting && q._active < q._size) {\n var i = q._ended + q._active,\n t = q._tasks[i],\n j = t.length - 1,\n c = t[j];\n t[j] = end(q, i);\n --q._waiting, ++q._active;\n t = c.apply(null, t);\n if (!q._tasks[i]) continue; // task finished synchronously\n\n q._tasks[i] = t || noabort;\n }\n}\n\nfunction end(q, i) {\n return function (e, r) {\n if (!q._tasks[i]) return; // ignore multiple callbacks\n\n --q._active, ++q._ended;\n q._tasks[i] = null;\n if (q._error != null) return; // ignore secondary errors\n\n if (e != null) {\n _abort(q, e);\n } else {\n q._data[i] = r;\n if (q._waiting) poke(q);else maybeNotify(q);\n }\n };\n}\n\nfunction _abort(q, e) {\n var i = q._tasks.length,\n t;\n q._error = e; // ignore active callbacks\n\n q._data = undefined; // allow gc\n\n q._waiting = NaN; // prevent starting\n\n while (--i >= 0) {\n if (t = q._tasks[i]) {\n q._tasks[i] = null;\n\n if (t.abort) {\n try {\n t.abort();\n } catch (e) {\n /* ignore */\n }\n }\n }\n }\n\n q._active = NaN; // allow notification\n\n maybeNotify(q);\n}\n\nfunction maybeNotify(q) {\n if (!q._active && q._call) {\n var d = q._data;\n q._data = undefined; // allow gc\n\n q._call(q._error, d);\n }\n}\n\nexport default function queue(concurrency) {\n if (concurrency == null) concurrency = Infinity;else if (!((concurrency = +concurrency) >= 1)) throw new Error(\"invalid concurrency\");\n return new Queue(concurrency);\n}","export default function () {\n return Math.random();\n}","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function () {\n var y; // If available, use the second previously-generated uniform random.\n\n if (x != null) y = x, x = null; // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n return randomNormal;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;else max -= min;\n return function () {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n return randomUniform;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function () {\n for (var sum = 0, i = 0; i < n; ++i) {\n sum += source();\n }\n\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n return randomIrwinHall;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function () {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n return randomLogNormal;\n})(defaultSource);","import { map } from \"d3-collection\";\nimport { dispatch } from \"d3-dispatch\";\nexport default function (url, callback) {\n var request,\n event = dispatch(\"beforesend\", \"progress\", \"load\", \"error\"),\n _mimeType,\n headers = map(),\n xhr = new XMLHttpRequest(),\n _user = null,\n _password = null,\n _response,\n _responseType,\n _timeout = 0; // If IE does not support CORS, use XDomainRequest.\n\n\n if (typeof XDomainRequest !== \"undefined\" && !(\"withCredentials\" in xhr) && /^(http(s)?:)?\\/\\//.test(url)) xhr = new XDomainRequest();\n \"onload\" in xhr ? xhr.onload = xhr.onerror = xhr.ontimeout = respond : xhr.onreadystatechange = function (o) {\n xhr.readyState > 3 && respond(o);\n };\n\n function respond(o) {\n var status = xhr.status,\n result;\n\n if (!status && hasResponse(xhr) || status >= 200 && status < 300 || status === 304) {\n if (_response) {\n try {\n result = _response.call(request, xhr);\n } catch (e) {\n event.call(\"error\", request, e);\n return;\n }\n } else {\n result = xhr;\n }\n\n event.call(\"load\", request, result);\n } else {\n event.call(\"error\", request, o);\n }\n }\n\n xhr.onprogress = function (e) {\n event.call(\"progress\", request, e);\n };\n\n request = {\n header: function header(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers.get(name);\n if (value == null) headers.remove(name);else headers.set(name, value + \"\");\n return request;\n },\n // If mimeType is non-null and no Accept header is set, a default is used.\n mimeType: function mimeType(value) {\n if (!arguments.length) return _mimeType;\n _mimeType = value == null ? null : value + \"\";\n return request;\n },\n // Specifies what type the response value should take;\n // for instance, arraybuffer, blob, document, or text.\n responseType: function responseType(value) {\n if (!arguments.length) return _responseType;\n _responseType = value;\n return request;\n },\n timeout: function timeout(value) {\n if (!arguments.length) return _timeout;\n _timeout = +value;\n return request;\n },\n user: function user(value) {\n return arguments.length < 1 ? _user : (_user = value == null ? null : value + \"\", request);\n },\n password: function password(value) {\n return arguments.length < 1 ? _password : (_password = value == null ? null : value + \"\", request);\n },\n // Specify how to convert the response content to a specific type;\n // changes the callback value on \"load\" events.\n response: function response(value) {\n _response = value;\n return request;\n },\n // Alias for send(\"GET\", …).\n get: function get(data, callback) {\n return request.send(\"GET\", data, callback);\n },\n // Alias for send(\"POST\", …).\n post: function post(data, callback) {\n return request.send(\"POST\", data, callback);\n },\n // If callback is non-null, it will be used for error and load events.\n send: function send(method, data, callback) {\n xhr.open(method, url, true, _user, _password);\n if (_mimeType != null && !headers.has(\"accept\")) headers.set(\"accept\", _mimeType + \",*/*\");\n if (xhr.setRequestHeader) headers.each(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n if (_mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(_mimeType);\n if (_responseType != null) xhr.responseType = _responseType;\n if (_timeout > 0) xhr.timeout = _timeout;\n if (callback == null && typeof data === \"function\") callback = data, data = null;\n if (callback != null && callback.length === 1) callback = fixCallback(callback);\n if (callback != null) request.on(\"error\", callback).on(\"load\", function (xhr) {\n callback(null, xhr);\n });\n event.call(\"beforesend\", request, xhr);\n xhr.send(data == null ? null : data);\n return request;\n },\n abort: function abort() {\n xhr.abort();\n return request;\n },\n on: function on() {\n var value = event.on.apply(event, arguments);\n return value === event ? request : value;\n }\n };\n\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return request.get(callback);\n }\n\n return request;\n}\n\nfunction fixCallback(callback) {\n return function (error, xhr) {\n callback(error == null ? xhr : null);\n };\n}\n\nfunction hasResponse(xhr) {\n var type = xhr.responseType;\n return type && type !== \"text\" ? xhr.response // null on error\n : xhr.responseText; // \"\" on error\n}","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function () {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n return randomBates;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function () {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n return randomExponential;\n})(defaultSource);","import request from \"./request\";\nexport default function (defaultMimeType, response) {\n return function (url, callback) {\n var r = request(url).mimeType(defaultMimeType).response(response);\n\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return r.get(callback);\n }\n\n return r;\n };\n}","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function (name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function (row, i) {\n return f(object(row), i, columns);\n };\n} // Compute unique columns in order of discovery.\n\n\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n rows.forEach(function (row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\",\n length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6) : year > 9999 ? \"+\" + pad(year, 6) : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\" : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2) + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\" : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\" : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\" : \"\");\n}\n\nexport default function (delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert,\n columns,\n rows = parseRows(text, function (row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [],\n // output rows\n N = text.length,\n I = 0,\n // current character index\n n = 0,\n // current line number\n t,\n // current token\n eof = N <= 0,\n // current token followed by EOF?\n eol = false; // current token followed by EOL?\n // Strip the trailing newline.\n\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL; // Unescape quotes.\n\n var i,\n j = I,\n c;\n\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE) {\n ;\n }\n\n if ((i = I) >= N) eof = true;else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n } // Find next delimiter or newline.\n\n\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;else if (c === RETURN) {\n eol = true;\n if (text.charCodeAt(I) === NEWLINE) ++I;\n } else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n } // Return last token before EOF.\n\n\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n\n while (t !== EOL && t !== EOF) {\n row.push(t), t = token();\n }\n\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function (row) {\n return columns.map(function (column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\" : value instanceof Date ? formatDate(value) : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\" : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}","import type from \"./type\";\nexport default type(\"text/html\", function (xhr) {\n return document.createRange().createContextualFragment(xhr.responseText);\n});","import type from \"./type\";\nexport default type(\"application/json\", function (xhr) {\n return JSON.parse(xhr.responseText);\n});","import type from \"./type\";\nexport default type(\"text/plain\", function (xhr) {\n return xhr.responseText;\n});","import type from \"./type\";\nexport default type(\"application/xml\", function (xhr) {\n var xml = xhr.responseXML;\n if (!xml) throw new Error(\"parse error\");\n return xml;\n});","import dsv from \"./dsv.js\";\nvar csv = dsv(\",\");\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;","import request from \"./request\";\nexport default function (defaultMimeType, parse) {\n return function (url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var r = request(url).mimeType(defaultMimeType);\n\n r.row = function (_) {\n return arguments.length ? r.response(responseOf(parse, row = _)) : row;\n };\n\n r.row(row);\n return callback ? r.get(callback) : r;\n };\n}\n\nfunction responseOf(parse, row) {\n return function (request) {\n return parse(request.responseText, row);\n };\n}","import { csvParse } from \"d3-dsv\";\nimport dsv from \"./dsv\";\nexport default dsv(\"text/csv\", csvParse);","import dsv from \"./dsv.js\";\nvar tsv = dsv(\"\\t\");\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;","var array = Array.prototype;\nexport var map = array.map;\nexport var slice = array.slice;","import { tsvParse } from \"d3-dsv\";\nimport dsv from \"./dsv\";\nexport default dsv(\"text/tab-separated-values\", tsvParse);","import { map } from \"d3-collection\";\nimport { slice } from \"./array\";\nexport var implicit = {\n name: \"implicit\"\n};\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1,\n n = _.length,\n d,\n key;\n\n while (++i < n) {\n if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), 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(domain).range(range).unknown(unknown);\n };\n\n return scale;\n}","import { range as sequence } from \"d3-array\";\nimport ordinal from \"./ordinal\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\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) {\n return start + step * i;\n });\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 ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = [+_[0], +_[1]], 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 = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), 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(domain()).range(range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\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().paddingInner(1));\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\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}\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 + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function (x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // 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\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import formatDecimal from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import formatDecimal from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}","import formatDecimal from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": function d(x) {\n return Math.round(x).toString(10);\n },\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\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\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\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 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; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // 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\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // 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\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Perform the initial formatting.\n\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero during formatting, treat as positive.\n\n if (valueNegative && +value === 0) valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\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 } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n 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}","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}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\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 \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import exponent from \"./exponent.js\";\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}","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function (domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\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\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\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\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return format(specifier);\n}","import exponent from \"./exponent.js\";\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}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\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 return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}","import { bisect } from \"d3-array\";\nimport { slice } from \"./array\";\nimport { linearish } from \"./linear\";\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1];\n\n function scale(x) {\n if (x <= x) return range[bisect(domain, x, 0, n)];\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n\n while (++i < n) {\n domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n }\n\n return scale;\n }\n\n scale.domain = function (_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function (_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : i < 1 ? [x0, domain[0]] : i >= n ? [domain[n - 1], x1] : [domain[i - 1], domain[i]];\n };\n\n scale.copy = function () {\n return quantize().domain([x0, x1]).range(range);\n };\n\n return linearish(scale);\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } 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\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\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 {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\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 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 var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\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 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);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,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\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)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\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 } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\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\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\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});\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}","import { bisector, tickStep } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport { map } from \"./array\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport nice from \"./nice\";\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\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(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\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 var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10; // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function (i) {\n return i[2];\n }).right(tickIntervals, target);\n\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step)) ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\nexport default function () {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","export default function (s) {\n return s.match(/.{6}/g).map(function (x) {\n return \"#\" + x;\n });\n}","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import colors from \"./colors\";\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");","import colors from \"./colors\";\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");","import colors from \"./colors\";\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");","import colors from \"./colors\";\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","import { cubehelix as colorCubehelix } from \"d3-color\";\nimport color, { hue } from \"./color.js\";\n\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nvar rainbow = cubehelix();\nexport default function (t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}","import colors from \"./colors\";\n\nfunction ramp(range) {\n var n = range.length;\n return function (t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","var matcher = function matcher(selector) {\n return function () {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector;\n\n matcher = function matcher(selector) {\n return function () {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nexport default matcher;","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);\n}\n\nfunction selection_cloneDeep() {\n return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","var filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","import { Selection, root } from \"./selection/index\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","var nextId = 0;\nexport default function local() {\n return new Local();\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function get(node) {\n var id = this._;\n\n while (!(id in node)) {\n if (!(node = node.parentNode)) return;\n }\n\n return node[id];\n },\n set: function set(node, value) {\n return node[this._] = value;\n },\n remove: function remove(node) {\n return this._ in node && delete node[this._];\n },\n toString: function toString() {\n return this._;\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;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","import { event } from \"./selection/on\";\nexport default function () {\n var current = event,\n source;\n\n while (source = current.sourceEvent) {\n current = source;\n }\n\n return current;\n}","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","import curveLinear from \"./linear\";\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function areaStart() {\n this._curve.areaStart();\n },\n areaEnd: function areaEnd() {\n this._curve.areaEnd();\n },\n lineStart: function lineStart() {\n this._curve.lineStart();\n },\n lineEnd: function lineEnd() {\n this._curve.lineEnd();\n },\n point: function point(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\nexport default function curveRadial(curve) {\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n return radial;\n}","export var slice = Array.prototype.slice;","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\nexport default {\n draw: function draw(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};","import { pi, tau } from \"../math\";\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};","import { pi, tau } from \"../math\";\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;\nexport default {\n draw: function draw(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\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\n context.closePath();\n }\n};","export default function () {}","var sqrt3 = Math.sqrt(3);\nexport default {\n draw: function draw(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};","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\nexport default {\n draw: function draw(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};","function _point(that, x, y) {\n that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);\n}\n\nexport { _point as point };\nexport function Basis(context) {\n this._context = context;\n}\nBasis.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 3:\n _point(this, this._x1, this._y1);\n\n // proceed\n\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new Basis(context);\n}","import noop from \"../noop\";\nimport { point as _point } from \"./basis\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x2, this._y2);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\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 point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisClosed(context);\n}","import { point as _point } from \"./basis\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x) / 6,\n y0 = (this._y0 + 4 * this._y1 + y) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisOpen(context);\n}","import { Basis } from \"./basis\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n\n this._basis.lineStart();\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n\n this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));\n }\n }\n\n this._x = this._y = null;\n\n this._basis.lineEnd();\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n};\nexport default (function custom(beta) {\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function (beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);","function _point(that, x, y) {\n that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);\n}\n\nexport { _point as point };\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinal.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n _point(this, this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n this._x1 = x, this._y1 = y;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import noop from \"../noop\";\nimport { point as _point } from \"./cardinal\";\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { point as _point } from \"./cardinal\";\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { epsilon } from \"../math\";\nimport { Cardinal } from \"./cardinal\";\n\nfunction _point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nexport { _point as point };\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalClosed } from \"./cardinalClosed\";\nimport noop from \"../noop\";\nimport { point as _point } from \"./catmullRom\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalOpen } from \"./cardinalOpen\";\nimport { point as _point } from \"./catmullRom\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import noop from \"../noop\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._point) this._context.closePath();\n },\n point: function point(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);\n }\n};\nexport default function (context) {\n return new LinearClosed(context);\n}","function sign(x) {\n return x < 0 ? -1 : 1;\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.\n\n\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} // Calculate a one-sided slope.\n\n\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\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\".\n\n\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\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 areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n var t1 = NaN;\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n\n break;\n\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n\n 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 moveTo(x, y) {\n this._context.moveTo(y, x);\n },\n closePath: function closePath() {\n this._context.closePath();\n },\n lineTo: function lineTo(x, y) {\n this._context.lineTo(y, x);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y, x);\n }\n};\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function lineEnd() {\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\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n\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 point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n}; // See https://www.particleincell.com/2012/bezier-splines/ for derivation.\n\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\n for (i = 1; i < n - 1; ++i) {\n a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n }\n\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n\n for (i = 1; i < n; ++i) {\n m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n }\n\n a[n - 1] = r[n - 1] / b[n - 1];\n\n for (i = n - 2; i >= 0; --i) {\n a[i] = (r[i] - a[i + 1]) / b[i];\n }\n\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n\n for (i = 0; i < n - 1; ++i) {\n b[i] = 2 * x[i + 1] - a[i + 1];\n }\n\n return [a, b];\n}\n\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\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 point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n\n this._context.lineTo(x1, this._y);\n\n this._context.lineTo(x1, y);\n }\n\n break;\n }\n }\n\n this._x = x, this._y = y;\n }\n};\nexport default function (context) {\n return new Step(context, 0.5);\n}\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\nexport function stepAfter(context) {\n return new Step(context, 1);\n}","import ascending from \"./ascending\";\nexport default function (series) {\n return ascending(series).reverse();\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval\";\nimport { durationSecond } from \"./duration\";\nvar second = interval(function (date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval\";\nimport { durationMinute } from \"./duration\";\nvar minute = interval(function (date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval\";\nimport { durationHour, durationMinute } from \"./duration\";\nvar hour = interval(function (date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval\";\nimport { durationDay, durationMinute } from \"./duration\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval\";\nimport { durationMinute, durationWeek } from \"./duration\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval\";\nimport { durationMinute } from \"./duration\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval\";\nimport { durationHour } from \"./duration\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval\";\nimport { durationDay } from \"./duration\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval\";\nimport { durationWeek } from \"./duration\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } 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\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\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {\n y: y,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\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 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 var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": 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 var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": 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 var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": 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 }; // These recursive directive definitions must be deferred.\n\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 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);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, newDate) {\n return function (string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q); // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), 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 = newDate(newYear(d.y)), 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(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).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 } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return newDate(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\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function 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 return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", localDate);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier, utcDate);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction 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.Q = +n[0] * 1000, 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), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + 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), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\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});\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}","import { utcFormat } from \"./defaultLocale\";\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString ? formatIsoNative : utcFormat(isoSpecifier);\nexport default formatIso;","import { isoSpecifier } from \"./isoFormat\";\nimport { utcParse } from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\") ? parseIsoNative : utcParse(isoSpecifier);\nexport default parseIso;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = (typeof performance === \"undefined\" ? \"undefined\" : _typeof(performance)) === \"object\" && performance.now ? performance : Date,\n setFrame = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","var filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = (typeof performance === \"undefined\" ? \"undefined\" : _typeof(performance)) === \"object\" && performance.now ? performance : Date,\n setFrame = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTING) throw new Error(\"too late; already started\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n } // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n\n\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n } // Dispatch the end event.\n\n\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import { STARTING, ENDING, ENDED } from \"./transition/schedule\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}","import decompose, { identity } from \"./decompose.js\";\nvar cssNode, cssRoot, cssView, svgNode;\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","import { get, set } from \"./schedule\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // 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;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (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;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\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 brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\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 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,\n color;\n\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\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);","import { basis } from \"./basis.js\";\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}","import number from \"./number.js\";\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,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var value00, interpolate0;\n return function () {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null : value0 === value00 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var value00, interpolate0;\n return function () {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null : value0 === value00 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var value00, value10, interpolate0;\n return function () {\n var value0,\n value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var value00, value10, interpolate0;\n return function () {\n var value0,\n value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n}","import { namespace } from \"d3-selection\";\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this,\n i = value.apply(node, arguments);\n return i && function (t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this,\n i = value.apply(node, arguments);\n return i && function (t) {\n node.setAttribute(name, i(t));\n };\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule\";\n\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule\";\n\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import { get, set, init } from \"./schedule\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","function styleTween(name, value, priority) {\n function tween() {\n var node = this,\n i = value.apply(node, arguments);\n return i && function (t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","import { tweenValue } from \"./tween\";\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","import { selection } from \"d3-selection\";\nimport transition_attr from \"./attr\";\nimport transition_attrTween from \"./attrTween\";\nimport transition_delay from \"./delay\";\nimport transition_duration from \"./duration\";\nimport transition_ease from \"./ease\";\nimport transition_filter from \"./filter\";\nimport transition_merge from \"./merge\";\nimport transition_on from \"./on\";\nimport transition_remove from \"./remove\";\nimport transition_select from \"./select\";\nimport transition_selectAll from \"./selectAll\";\nimport transition_selection from \"./selection\";\nimport transition_style from \"./style\";\nimport transition_styleTween from \"./styleTween\";\nimport transition_text from \"./text\";\nimport transition_transition from \"./transition\";\nimport transition_tween from \"./tween\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index\";\nimport schedule, { get } from \"./schedule\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index\";\nimport schedule, { get } from \"./schedule\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { Transition, newId } from \"./index\";\nimport schedule, { get } from \"./schedule\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { tweenValue } from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction styleRemove(name, interpolate) {\n var value00, value10, interpolate0;\n return function () {\n var value0 = style(this, name),\n value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var value00, interpolate0;\n return function () {\n var value0 = style(this, name);\n return value0 === value1 ? null : value0 === value00 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var value00, value10, interpolate0;\n return function () {\n var value0 = style(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null : value0 === value00 && value1 === value10 ? interpolate0 : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleRemove(name, i)).on(\"end.style.\" + name, styleRemoveEnd(name)) : this.styleTween(name, typeof value === \"function\" ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value)) : styleConstant(name, i, value + \"\"), priority);\n}","import { Transition, newId } from \"../transition/index\";\nimport schedule from \"../transition/schedule\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt\";\nimport selection_transition from \"./transition\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n insert: function insert(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n\n if (after.R) {\n after = after.R;\n\n while (after.L) {\n after = after.L;\n }\n\n after.L = node;\n } else {\n after.R = node;\n }\n\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n\n while (parent && parent.C) {\n grandpa = parent.U;\n\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n\n parent = after.U;\n }\n\n this._.C = false;\n },\n remove: function remove(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n if (!left) next = right;else if (!right) next = left;else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n\n if (node && node.C) {\n node.C = false;\n return;\n }\n\n do {\n if (node === this._) break;\n\n if (node === parent.L) {\n sibling = parent.R;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) {\n node = node.L;\n }\n\n return node;\n}\n\nexport default RedBlackTree;","import { cells, edges, epsilon } from \"./Diagram\";\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n} // Liang–Barsky line clipping.\n\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1) || !clipEdge(edge, x0, y0, x1, y1) || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}","import { createBorderEdge } from \"./Edge\";\nimport { cells, edges, epsilon } from \"./Diagram\";\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n\n for (j = 0; j < m; ++j) {\n index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n }\n\n index.sort(function (i, j) {\n return array[j] - array[i];\n });\n\n for (j = 0; j < m; ++j) {\n array[j] = halfedges[index[j]];\n }\n\n for (j = 0; j < m; ++j) {\n halfedges[j] = array[j];\n }\n }\n }\n}\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length; // Remove any dangling clipped edges.\n\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n } // Insert any border edges as necessary.\n\n\n iHalfedge = 0, nHalfedges = halfedges.length;\n\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end, Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1] : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1] : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0] : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0] : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n } // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n\n\n if (cover) {\n var dx,\n dy,\n d2,\n dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0],\n v01 = [x0, y1],\n v11 = [x1, y1],\n v10 = [x1, y0];\n cover.halfedges.push(edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1, edges.push(createBorderEdge(site, v01, v11)) - 1, edges.push(createBorderEdge(site, v11, v10)) - 1, edges.push(createBorderEdge(site, v10, v00)) - 1);\n }\n } // Lastly delete any cells with no edges; these were entirely clipped.\n\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { circles, epsilon2 } from \"./Diagram\";\nvar circlePool = [];\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n var circle = circlePool.pop() || new Circle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;else {\n before = node;\n break;\n }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\nexport function detachCircle(arc) {\n var circle = arc.circle;\n\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { createCell } from \"./Cell\";\nimport { attachCircle, detachCircle } from \"./Circle\";\nimport { createEdge, setEdgeEnd } from \"./Edge\";\nimport { beaches, epsilon } from \"./Diagram\";\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge = this.site = this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach();\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n detachBeach(beach);\n var lArc = previous;\n\n while (lArc.circle && Math.abs(x - lArc.circle.x) < epsilon && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n var rArc = next;\n\n while (rArc.circle && Math.abs(x - rArc.circle.x) < epsilon && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n var nArcs = disappearing.length,\n iArc;\n\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L;else {\n dxr = x - rightBreakPoint(node, directrix);\n\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) {\n // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n } // else lArc !== rArc\n\n\n detachCircle(lArc);\n detachCircle(rArc);\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}","import { addBeach, removeBeach } from \"./Beach\";\nimport { sortCellHalfedges, cellHalfedgeStart, clipCells } from \"./Cell\";\nimport { firstCircle } from \"./Circle\";\nimport { clipEdges } from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1] || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree();\n circles = new RedBlackTree();\n\n while (true) {\n circle = firstCircle;\n\n if (site && (!circle || site[1] < circle.y || site[1] === circle.y && site[0] < circle.x)) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n beaches = circles = edges = cells = null;\n}\nDiagram.prototype = {\n constructor: Diagram,\n polygons: function polygons() {\n var edges = this.edges;\n return this.cells.map(function (cell) {\n var polygon = cell.halfedges.map(function (i) {\n return cellHalfedgeStart(cell, edges[i]);\n });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n triangles: function triangles() {\n var triangles = [],\n edges = this.edges;\n this.cells.forEach(function (cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n return triangles;\n },\n links: function links() {\n return this.edges.filter(function (edge) {\n return edge.right;\n }).map(function (edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n find: function find(x, y, radius) {\n var that = this,\n i0,\n i1 = that._found || 0,\n n = that.cells.length,\n cell; // Use the previously-found cell, or start with an arbitrary one.\n\n while (!(cell = that.cells[i1])) {\n if (++i1 >= n) return null;\n }\n\n var dx = x - cell.site[0],\n dy = y - cell.site[1],\n d2 = dx * dx + dy * dy; // Traverse the half-edges to find a closer cell, if any.\n\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function (e) {\n var edge = that.edges[e],\n v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0],\n vy = y - v[1],\n v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n};","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n} // p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n\n\nexport default function (p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000;\n return i;\n}","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function scale(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function translate(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function apply(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function applyX(x) {\n return x * this.k + this.x;\n },\n applyY: function applyY(y) {\n return y * this.k + this.y;\n },\n invert: function invert(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function invertX(x) {\n return (x - this.x) / this.k;\n },\n invertY: function invertY(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function rescaleX(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function rescaleY(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function toString() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nexport var identity = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nexport default function transform(node) {\n return node.__zoom || identity;\n}","import * as d3 from 'd3'\nconst D3Utils = {\n // Accepts an object containing any combination of top, left, rotate,\n // and scale.\n // Applies the transformations in the correct order.\n transform: function (t) {\n var defaults = {\n top: 0,\n left: 0,\n rotate: 0,\n scale: 1\n };\n t = $.extend({}, defaults, t);\n\n return 'rotate(' + t.rotate + ') scale(' + t.scale + ') ' +\n 'translate(' + t.left + ', ' + t.top + ')';\n },\n // In case if digit has many digit, we'll format it using scientific notation. For instance,\n // '10000000' will be '1e7', '100000000' will be '1e8', '0.0000007' will be '1e-7' so on...\n format_digit_value: function (d) {\n return d.toString().length > 7 ? d3.format(\".0e\")(d) : d;\n }\n}\nexport default D3Utils","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * jQuery Migrate - v3.4.0 - 2022-03-24T16:30Z\n * Copyright OpenJS Foundation and other contributors\n */\n(function (factory) {\n \"use strict\";\n\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"jquery\"], function (jQuery) {\n return factory(jQuery, window);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n // Node/CommonJS\n // eslint-disable-next-line no-undef\n module.exports = factory(require(\"jquery\"), window);\n } else {\n // Browser globals\n factory(jQuery, window);\n }\n})(function (jQuery, window) {\n \"use strict\";\n\n jQuery.migrateVersion = \"3.4.0\"; // Returns 0 if v1 == v2, -1 if v1 < v2, 1 if v1 > v2\n\n function compareVersions(v1, v2) {\n var i,\n rVersionParts = /^(\\d+)\\.(\\d+)\\.(\\d+)/,\n v1p = rVersionParts.exec(v1) || [],\n v2p = rVersionParts.exec(v2) || [];\n\n for (i = 1; i <= 3; i++) {\n if (+v1p[i] > +v2p[i]) {\n return 1;\n }\n\n if (+v1p[i] < +v2p[i]) {\n return -1;\n }\n }\n\n return 0;\n }\n\n function jQueryVersionSince(version) {\n return compareVersions(jQuery.fn.jquery, version) >= 0;\n } // A map from disabled patch codes to `true`. This should really\n // be a `Set` but those are unsupported in IE.\n\n\n var disabledPatches = Object.create(null); // Don't apply patches for specified codes. Helpful for code bases\n // where some Migrate warnings have been addressed and it's desirable\n // to avoid needless patches or false positives.\n\n jQuery.migrateDisablePatches = function () {\n var i;\n\n for (i = 0; i < arguments.length; i++) {\n disabledPatches[arguments[i]] = true;\n }\n }; // Allow enabling patches disabled via `jQuery.migrateDisablePatches`.\n // Helpful if you want to disable a patch only for some code that won't\n // be updated soon to be able to focus on other warnings - and enable it\n // immediately after such a call:\n // ```js\n // jQuery.migrateDisablePatches( \"workaroundA\" );\n // elem.pluginViolatingWarningA( \"pluginMethod\" );\n // jQuery.migrateEnablePatches( \"workaroundA\" );\n // ```\n\n\n jQuery.migrateEnablePatches = function () {\n var i;\n\n for (i = 0; i < arguments.length; i++) {\n delete disabledPatches[arguments[i]];\n }\n };\n\n jQuery.migrateIsPatchEnabled = function (patchCode) {\n return !disabledPatches[patchCode];\n };\n\n (function () {\n // Support: IE9 only\n // IE9 only creates console object when dev tools are first opened\n // IE9 console is a host object, callable but doesn't have .apply()\n if (!window.console || !window.console.log) {\n return;\n } // Need jQuery 3.0.0+ and no older Migrate loaded\n\n\n if (!jQuery || !jQueryVersionSince(\"3.0.0\")) {\n window.console.log(\"JQMIGRATE: jQuery 3.0.0+ REQUIRED\");\n }\n\n if (jQuery.migrateWarnings) {\n window.console.log(\"JQMIGRATE: Migrate plugin loaded multiple times\");\n } // Show a message on the console so devs know we're active\n\n\n window.console.log(\"JQMIGRATE: Migrate is installed\" + (jQuery.migrateMute ? \"\" : \" with logging active\") + \", version \" + jQuery.migrateVersion);\n })();\n\n var warnedAbout = {}; // By default each warning is only reported once.\n\n jQuery.migrateDeduplicateWarnings = true; // List of warnings already given; public read only\n\n jQuery.migrateWarnings = []; // Set to false to disable traces that appear with warnings\n\n if (jQuery.migrateTrace === undefined) {\n jQuery.migrateTrace = true;\n } // Forget any warnings we've already given; public\n\n\n jQuery.migrateReset = function () {\n warnedAbout = {};\n jQuery.migrateWarnings.length = 0;\n };\n\n function migrateWarn(code, msg) {\n var console = window.console;\n\n if (jQuery.migrateIsPatchEnabled(code) && (!jQuery.migrateDeduplicateWarnings || !warnedAbout[msg])) {\n warnedAbout[msg] = true;\n jQuery.migrateWarnings.push(msg + \" [\" + code + \"]\");\n\n if (console && console.warn && !jQuery.migrateMute) {\n console.warn(\"JQMIGRATE: \" + msg);\n\n if (jQuery.migrateTrace && console.trace) {\n console.trace();\n }\n }\n }\n }\n\n function migrateWarnProp(obj, prop, value, code, msg) {\n Object.defineProperty(obj, prop, {\n configurable: true,\n enumerable: true,\n get: function get() {\n migrateWarn(code, msg);\n return value;\n },\n set: function set(newValue) {\n migrateWarn(code, msg);\n value = newValue;\n }\n });\n }\n\n function migrateWarnFuncInternal(obj, prop, newFunc, code, msg) {\n var finalFunc,\n origFunc = obj[prop];\n\n obj[prop] = function () {\n // If `msg` not provided, do not warn; more sophisticated warnings\n // logic is most likely embedded in `newFunc`, in that case here\n // we just care about the logic choosing the proper implementation\n // based on whether the patch is disabled or not.\n if (msg) {\n migrateWarn(code, msg);\n } // Since patches can be disabled & enabled dynamically, we\n // need to decide which implementation to run on each invocation.\n\n\n finalFunc = jQuery.migrateIsPatchEnabled(code) ? newFunc : // The function may not have existed originally so we need a fallback.\n origFunc || jQuery.noop;\n return finalFunc.apply(this, arguments);\n };\n }\n\n function migratePatchAndWarnFunc(obj, prop, newFunc, code, msg) {\n if (!msg) {\n throw new Error(\"No warning message provided\");\n }\n\n return migrateWarnFuncInternal(obj, prop, newFunc, code, msg);\n }\n\n function migratePatchFunc(obj, prop, newFunc, code) {\n return migrateWarnFuncInternal(obj, prop, newFunc, code);\n }\n\n if (window.document.compatMode === \"BackCompat\") {\n // jQuery has never supported or tested Quirks Mode\n migrateWarn(\"quirks\", \"jQuery is not compatible with Quirks Mode\");\n }\n\n var findProp,\n class2type = {},\n oldInit = jQuery.fn.init,\n oldFind = jQuery.find,\n rattrHashTest = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/,\n rattrHashGlob = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/g,\n // Support: Android <=4.0 only\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n migratePatchFunc(jQuery.fn, \"init\", function (arg1) {\n var args = Array.prototype.slice.call(arguments);\n\n if (jQuery.migrateIsPatchEnabled(\"selector-empty-id\") && typeof arg1 === \"string\" && arg1 === \"#\") {\n // JQuery( \"#\" ) is a bogus ID selector, but it returned an empty set\n // before jQuery 3.0\n migrateWarn(\"selector-empty-id\", \"jQuery( '#' ) is not a valid selector\");\n args[0] = [];\n }\n\n return oldInit.apply(this, args);\n }, \"selector-empty-id\"); // This is already done in Core but the above patch will lose this assignment\n // so we need to redo it. It doesn't matter whether the patch is enabled or not\n // as the method is always going to be a Migrate-created wrapper.\n\n jQuery.fn.init.prototype = jQuery.fn;\n migratePatchFunc(jQuery, \"find\", function (selector) {\n var args = Array.prototype.slice.call(arguments); // Support: PhantomJS 1.x\n // String#match fails to match when used with a //g RegExp, only on some strings\n\n if (typeof selector === \"string\" && rattrHashTest.test(selector)) {\n // The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0\n // First see if qS thinks it's a valid selector, if so avoid a false positive\n try {\n window.document.querySelector(selector);\n } catch (err1) {\n // Didn't *look* valid to qSA, warn and try quoting what we think is the value\n selector = selector.replace(rattrHashGlob, function (_, attr, op, value) {\n return \"[\" + attr + op + \"\\\"\" + value + \"\\\"]\";\n }); // If the regexp *may* have created an invalid selector, don't update it\n // Note that there may be false alarms if selector uses jQuery extensions\n\n try {\n window.document.querySelector(selector);\n migrateWarn(\"selector-hash\", \"Attribute selector with '#' must be quoted: \" + args[0]);\n args[0] = selector;\n } catch (err2) {\n migrateWarn(\"selector-hash\", \"Attribute selector with '#' was not fixed: \" + args[0]);\n }\n }\n }\n\n return oldFind.apply(this, args);\n }, \"selector-hash\"); // Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)\n\n for (findProp in oldFind) {\n if (Object.prototype.hasOwnProperty.call(oldFind, findProp)) {\n jQuery.find[findProp] = oldFind[findProp];\n }\n } // The number of elements contained in the matched element set\n\n\n migratePatchAndWarnFunc(jQuery.fn, \"size\", function () {\n return this.length;\n }, \"size\", \"jQuery.fn.size() is deprecated and removed; use the .length property\");\n migratePatchAndWarnFunc(jQuery, \"parseJSON\", function () {\n return JSON.parse.apply(null, arguments);\n }, \"parseJSON\", \"jQuery.parseJSON is deprecated; use JSON.parse\");\n migratePatchAndWarnFunc(jQuery, \"holdReady\", jQuery.holdReady, \"holdReady\", \"jQuery.holdReady is deprecated\");\n migratePatchAndWarnFunc(jQuery, \"unique\", jQuery.uniqueSort, \"unique\", \"jQuery.unique is deprecated; use jQuery.uniqueSort\"); // Now jQuery.expr.pseudos is the standard incantation\n\n migrateWarnProp(jQuery.expr, \"filters\", jQuery.expr.pseudos, \"expr-pre-pseudos\", \"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos\");\n migrateWarnProp(jQuery.expr, \":\", jQuery.expr.pseudos, \"expr-pre-pseudos\", \"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos\"); // Prior to jQuery 3.1.1 there were internal refs so we don't warn there\n\n if (jQueryVersionSince(\"3.1.1\")) {\n migratePatchAndWarnFunc(jQuery, \"trim\", function (text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n }, \"trim\", \"jQuery.trim is deprecated; use String.prototype.trim\");\n } // Prior to jQuery 3.2 there were internal refs so we don't warn there\n\n\n if (jQueryVersionSince(\"3.2.0\")) {\n migratePatchAndWarnFunc(jQuery, \"nodeName\", function (elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }, \"nodeName\", \"jQuery.nodeName is deprecated\");\n migratePatchAndWarnFunc(jQuery, \"isArray\", Array.isArray, \"isArray\", \"jQuery.isArray is deprecated; use Array.isArray\");\n }\n\n if (jQueryVersionSince(\"3.3.0\")) {\n migratePatchAndWarnFunc(jQuery, \"isNumeric\", function (obj) {\n // As of jQuery 3.0, isNumeric is limited to\n // strings and numbers (primitives or objects)\n // that can be coerced to finite numbers (gh-2662)\n var type = _typeof(obj);\n\n return (type === \"number\" || type === \"string\") && // parseFloat NaNs numeric-cast false positives (\"\")\n // ...but misinterprets leading-number strings, e.g. hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n !isNaN(obj - parseFloat(obj));\n }, \"isNumeric\", \"jQuery.isNumeric() is deprecated\"); // Populate the class2type map\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n migratePatchAndWarnFunc(jQuery, \"type\", function (obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[Object.prototype.toString.call(obj)] || \"object\" : _typeof(obj);\n }, \"type\", \"jQuery.type is deprecated\");\n migratePatchAndWarnFunc(jQuery, \"isFunction\", function (obj) {\n return typeof obj === \"function\";\n }, \"isFunction\", \"jQuery.isFunction() is deprecated\");\n migratePatchAndWarnFunc(jQuery, \"isWindow\", function (obj) {\n return obj != null && obj === obj.window;\n }, \"isWindow\", \"jQuery.isWindow() is deprecated\");\n } // Support jQuery slim which excludes the ajax module\n\n\n if (jQuery.ajax) {\n var oldAjax = jQuery.ajax,\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n migratePatchFunc(jQuery, \"ajax\", function () {\n var jQXHR = oldAjax.apply(this, arguments); // Be sure we got a jQXHR (e.g., not sync)\n\n if (jQXHR.promise) {\n migratePatchAndWarnFunc(jQXHR, \"success\", jQXHR.done, \"jqXHR-methods\", \"jQXHR.success is deprecated and removed\");\n migratePatchAndWarnFunc(jQXHR, \"error\", jQXHR.fail, \"jqXHR-methods\", \"jQXHR.error is deprecated and removed\");\n migratePatchAndWarnFunc(jQXHR, \"complete\", jQXHR.always, \"jqXHR-methods\", \"jQXHR.complete is deprecated and removed\");\n }\n\n return jQXHR;\n }, \"jqXHR-methods\"); // Only trigger the logic in jQuery <4 as the JSON-to-JSONP auto-promotion\n // behavior is gone in jQuery 4.0 and as it has security implications, we don't\n // want to restore the legacy behavior.\n\n if (!jQueryVersionSince(\"4.0.0\")) {\n // Register this prefilter before the jQuery one. Otherwise, a promoted\n // request is transformed into one with the script dataType and we can't\n // catch it anymore.\n jQuery.ajaxPrefilter(\"+json\", function (s) {\n // Warn if JSON-to-JSONP auto-promotion happens.\n if (s.jsonp !== false && (rjsonp.test(s.url) || typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data))) {\n migrateWarn(\"jsonp-promotion\", \"JSON-to-JSONP auto-promotion is deprecated\");\n }\n });\n }\n }\n\n var oldRemoveAttr = jQuery.fn.removeAttr,\n oldToggleClass = jQuery.fn.toggleClass,\n rmatchNonSpace = /\\S+/g;\n migratePatchFunc(jQuery.fn, \"removeAttr\", function (name) {\n var self = this;\n jQuery.each(name.match(rmatchNonSpace), function (_i, attr) {\n if (jQuery.expr.match.bool.test(attr)) {\n migrateWarn(\"removeAttr-bool\", \"jQuery.fn.removeAttr no longer sets boolean properties: \" + attr);\n self.prop(attr, false);\n }\n });\n return oldRemoveAttr.apply(this, arguments);\n }, \"removeAttr-bool\");\n migratePatchFunc(jQuery.fn, \"toggleClass\", function (state) {\n // Only deprecating no-args or single boolean arg\n if (state !== undefined && typeof state !== \"boolean\") {\n return oldToggleClass.apply(this, arguments);\n }\n\n migrateWarn(\"toggleClass-bool\", \"jQuery.fn.toggleClass( boolean ) is deprecated\"); // Toggle entire class name of each element\n\n return this.each(function () {\n var className = this.getAttribute && this.getAttribute(\"class\") || \"\";\n\n if (className) {\n jQuery.data(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || state === false ? \"\" : jQuery.data(this, \"__className__\") || \"\");\n }\n });\n }, \"toggleClass-bool\");\n\n function camelCase(string) {\n return string.replace(/-([a-z])/g, function (_, letter) {\n return letter.toUpperCase();\n });\n }\n\n var origFnCss,\n internalSwapCall = false,\n ralphaStart = /^[a-z]/,\n // The regex visualized:\n //\n // /----------\\\n // | | /-------\\\n // | / Top \\ | | |\n // /--- Border ---+-| Right |-+---+- Width -+---\\\n // | | Bottom | |\n // | \\ Left / |\n // | |\n // | /----------\\ |\n // | /-------------\\ | | |- END\n // | | | | / Top \\ | |\n // | | / Margin \\ | | | Right | | |\n // |---------+-| |-+---+-| Bottom |-+----|\n // | \\ Padding / \\ Left / |\n // BEGIN -| |\n // | /---------\\ |\n // | | | |\n // | | / Min \\ | / Width \\ |\n // \\--------------+-| |-+---| |---/\n // \\ Max / \\ Height /\n rautoPx = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/; // If this version of jQuery has .swap(), don't false-alarm on internal uses\n\n if (jQuery.swap) {\n jQuery.each([\"height\", \"width\", \"reliableMarginRight\"], function (_, name) {\n var oldHook = jQuery.cssHooks[name] && jQuery.cssHooks[name].get;\n\n if (oldHook) {\n jQuery.cssHooks[name].get = function () {\n var ret;\n internalSwapCall = true;\n ret = oldHook.apply(this, arguments);\n internalSwapCall = false;\n return ret;\n };\n }\n });\n }\n\n migratePatchFunc(jQuery, \"swap\", function (elem, options, callback, args) {\n var ret,\n name,\n old = {};\n\n if (!internalSwapCall) {\n migrateWarn(\"swap\", \"jQuery.swap() is undocumented and deprecated\");\n } // Remember the old values, and insert the new ones\n\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.apply(elem, args || []); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n }, \"swap\");\n\n if (jQueryVersionSince(\"3.4.0\") && typeof Proxy !== \"undefined\") {\n jQuery.cssProps = new Proxy(jQuery.cssProps || {}, {\n set: function set() {\n migrateWarn(\"cssProps\", \"jQuery.cssProps is deprecated\");\n return Reflect.set.apply(this, arguments);\n }\n });\n } // In jQuery >=4 where jQuery.cssNumber is missing fill it with the latest 3.x version:\n // https://github.com/jquery/jquery/blob/3.6.0/src/css.js#L212-L233\n // This way, number values for the CSS properties below won't start triggering\n // Migrate warnings when jQuery gets updated to >=4.0.0 (gh-438).\n\n\n if (jQueryVersionSince(\"4.0.0\") && typeof Proxy !== \"undefined\") {\n jQuery.cssNumber = new Proxy({\n animationIterationCount: true,\n columnCount: true,\n fillOpacity: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n widows: true,\n zIndex: true,\n zoom: true\n }, {\n get: function get() {\n migrateWarn(\"css-number\", \"jQuery.cssNumber is deprecated\");\n return Reflect.get.apply(this, arguments);\n },\n set: function set() {\n migrateWarn(\"css-number\", \"jQuery.cssNumber is deprecated\");\n return Reflect.set.apply(this, arguments);\n }\n });\n }\n\n function isAutoPx(prop) {\n // The first test is used to ensure that:\n // 1. The prop starts with a lowercase letter (as we uppercase it for the second regex).\n // 2. The prop is not empty.\n return ralphaStart.test(prop) && rautoPx.test(prop[0].toUpperCase() + prop.slice(1));\n }\n\n origFnCss = jQuery.fn.css;\n migratePatchFunc(jQuery.fn, \"css\", function (name, value) {\n var camelName,\n origThis = this;\n\n if (name && _typeof(name) === \"object\" && !Array.isArray(name)) {\n jQuery.each(name, function (n, v) {\n jQuery.fn.css.call(origThis, n, v);\n });\n return this;\n }\n\n if (typeof value === \"number\") {\n camelName = camelCase(name);\n\n if (!isAutoPx(camelName) && !jQuery.cssNumber[camelName]) {\n migrateWarn(\"css-number\", \"Number-typed values are deprecated for jQuery.fn.css( \\\"\" + name + \"\\\", value )\");\n }\n }\n\n return origFnCss.apply(this, arguments);\n }, \"css-number\");\n var origData = jQuery.data;\n migratePatchFunc(jQuery, \"data\", function (elem, name, value) {\n var curData, sameKeys, key; // Name can be an object, and each entry in the object is meant to be set as data\n\n if (name && _typeof(name) === \"object\" && arguments.length === 2) {\n curData = jQuery.hasData(elem) && origData.call(this, elem);\n sameKeys = {};\n\n for (key in name) {\n if (key !== camelCase(key)) {\n migrateWarn(\"data-camelCase\", \"jQuery.data() always sets/gets camelCased names: \" + key);\n curData[key] = name[key];\n } else {\n sameKeys[key] = name[key];\n }\n }\n\n origData.call(this, elem, sameKeys);\n return name;\n } // If the name is transformed, look for the un-transformed name in the data object\n\n\n if (name && typeof name === \"string\" && name !== camelCase(name)) {\n curData = jQuery.hasData(elem) && origData.call(this, elem);\n\n if (curData && name in curData) {\n migrateWarn(\"data-camelCase\", \"jQuery.data() always sets/gets camelCased names: \" + name);\n\n if (arguments.length > 2) {\n curData[name] = value;\n }\n\n return curData[name];\n }\n }\n\n return origData.apply(this, arguments);\n }, \"data-camelCase\"); // Support jQuery slim which excludes the effects module\n\n if (jQuery.fx) {\n var intervalValue,\n intervalMsg,\n oldTweenRun = jQuery.Tween.prototype.run,\n linearEasing = function linearEasing(pct) {\n return pct;\n };\n\n migratePatchFunc(jQuery.Tween.prototype, \"run\", function () {\n if (jQuery.easing[this.easing].length > 1) {\n migrateWarn(\"easing-one-arg\", \"'jQuery.easing.\" + this.easing.toString() + \"' should use only one argument\");\n jQuery.easing[this.easing] = linearEasing;\n }\n\n oldTweenRun.apply(this, arguments);\n }, \"easing-one-arg\");\n intervalValue = jQuery.fx.interval;\n intervalMsg = \"jQuery.fx.interval is deprecated\"; // Support: IE9, Android <=4.4\n // Avoid false positives on browsers that lack rAF\n // Don't warn if document is hidden, jQuery uses setTimeout (#292)\n\n if (window.requestAnimationFrame) {\n Object.defineProperty(jQuery.fx, \"interval\", {\n configurable: true,\n enumerable: true,\n get: function get() {\n if (!window.document.hidden) {\n migrateWarn(\"fx-interval\", intervalMsg);\n } // Only fallback to the default if patch is enabled\n\n\n if (!jQuery.migrateIsPatchEnabled(\"fx-interval\")) {\n return intervalValue;\n }\n\n return intervalValue === undefined ? 13 : intervalValue;\n },\n set: function set(newValue) {\n migrateWarn(\"fx-interval\", intervalMsg);\n intervalValue = newValue;\n }\n });\n }\n }\n\n var oldLoad = jQuery.fn.load,\n oldEventAdd = jQuery.event.add,\n originalFix = jQuery.event.fix;\n jQuery.event.props = [];\n jQuery.event.fixHooks = {};\n migrateWarnProp(jQuery.event.props, \"concat\", jQuery.event.props.concat, \"event-old-patch\", \"jQuery.event.props.concat() is deprecated and removed\");\n migratePatchFunc(jQuery.event, \"fix\", function (originalEvent) {\n var event,\n type = originalEvent.type,\n fixHook = this.fixHooks[type],\n props = jQuery.event.props;\n\n if (props.length) {\n migrateWarn(\"event-old-patch\", \"jQuery.event.props are deprecated and removed: \" + props.join());\n\n while (props.length) {\n jQuery.event.addProp(props.pop());\n }\n }\n\n if (fixHook && !fixHook._migrated_) {\n fixHook._migrated_ = true;\n migrateWarn(\"event-old-patch\", \"jQuery.event.fixHooks are deprecated and removed: \" + type);\n\n if ((props = fixHook.props) && props.length) {\n while (props.length) {\n jQuery.event.addProp(props.pop());\n }\n }\n }\n\n event = originalFix.call(this, originalEvent);\n return fixHook && fixHook.filter ? fixHook.filter(event, originalEvent) : event;\n }, \"event-old-patch\");\n migratePatchFunc(jQuery.event, \"add\", function (elem, types) {\n // This misses the multiple-types case but that seems awfully rare\n if (elem === window && types === \"load\" && window.document.readyState === \"complete\") {\n migrateWarn(\"load-after-event\", \"jQuery(window).on('load'...) called after load event occurred\");\n }\n\n return oldEventAdd.apply(this, arguments);\n }, \"load-after-event\");\n jQuery.each([\"load\", \"unload\", \"error\"], function (_, name) {\n migratePatchFunc(jQuery.fn, name, function () {\n var args = Array.prototype.slice.call(arguments, 0); // If this is an ajax load() the first arg should be the string URL;\n // technically this could also be the \"Anything\" arg of the event .load()\n // which just goes to show why this dumb signature has been deprecated!\n // jQuery custom builds that exclude the Ajax module justifiably die here.\n\n if (name === \"load\" && typeof args[0] === \"string\") {\n return oldLoad.apply(this, args);\n }\n\n migrateWarn(\"shorthand-removed-v3\", \"jQuery.fn.\" + name + \"() is deprecated\");\n args.splice(0, 0, name);\n\n if (arguments.length) {\n return this.on.apply(this, args);\n } // Use .triggerHandler here because:\n // - load and unload events don't need to bubble, only applied to window or image\n // - error event should not bubble to window, although it does pre-1.7\n // See http://bugs.jquery.com/ticket/11820\n\n\n this.triggerHandler.apply(this, args);\n return this;\n }, \"shorthand-removed-v3\");\n });\n jQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup contextmenu\").split(\" \"), function (_i, name) {\n // Handle event binding\n migratePatchAndWarnFunc(jQuery.fn, name, function (data, fn) {\n return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n }, \"shorthand-deprecated-v3\", \"jQuery.fn.\" + name + \"() event shorthand is deprecated\");\n }); // Trigger \"ready\" event only once, on document ready\n\n jQuery(function () {\n jQuery(window.document).triggerHandler(\"ready\");\n });\n jQuery.event.special.ready = {\n setup: function setup() {\n if (this === window.document) {\n migrateWarn(\"ready-event\", \"'ready' event is deprecated\");\n }\n }\n };\n migratePatchAndWarnFunc(jQuery.fn, \"bind\", function (types, data, fn) {\n return this.on(types, null, data, fn);\n }, \"pre-on-methods\", \"jQuery.fn.bind() is deprecated\");\n migratePatchAndWarnFunc(jQuery.fn, \"unbind\", function (types, fn) {\n return this.off(types, null, fn);\n }, \"pre-on-methods\", \"jQuery.fn.unbind() is deprecated\");\n migratePatchAndWarnFunc(jQuery.fn, \"delegate\", function (selector, types, data, fn) {\n return this.on(types, selector, data, fn);\n }, \"pre-on-methods\", \"jQuery.fn.delegate() is deprecated\");\n migratePatchAndWarnFunc(jQuery.fn, \"undelegate\", function (selector, types, fn) {\n return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n }, \"pre-on-methods\", \"jQuery.fn.undelegate() is deprecated\");\n migratePatchAndWarnFunc(jQuery.fn, \"hover\", function (fnOver, fnOut) {\n return this.on(\"mouseenter\", fnOver).on(\"mouseleave\", fnOut || fnOver);\n }, \"pre-on-methods\", \"jQuery.fn.hover() is deprecated\");\n\n var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n makeMarkup = function makeMarkup(html) {\n var doc = window.document.implementation.createHTMLDocument(\"\");\n doc.body.innerHTML = html;\n return doc.body && doc.body.innerHTML;\n },\n warnIfChanged = function warnIfChanged(html) {\n var changed = html.replace(rxhtmlTag, \"<$1>\");\n\n if (changed !== html && makeMarkup(html) !== makeMarkup(changed)) {\n migrateWarn(\"self-closed-tags\", \"HTML tags must be properly nested and closed: \" + html);\n }\n };\n /**\n * Deprecated, please use `jQuery.migrateDisablePatches( \"self-closed-tags\" )` instead.\n * @deprecated\n */\n\n\n jQuery.UNSAFE_restoreLegacyHtmlPrefilter = function () {\n jQuery.migrateEnablePatches(\"self-closed-tags\");\n };\n\n migratePatchFunc(jQuery, \"htmlPrefilter\", function (html) {\n warnIfChanged(html);\n return html.replace(rxhtmlTag, \"<$1>\");\n }, \"self-closed-tags\"); // This patch needs to be disabled by default as it re-introduces\n // security issues (CVE-2020-11022, CVE-2020-11023).\n\n jQuery.migrateDisablePatches(\"self-closed-tags\");\n var origOffset = jQuery.fn.offset;\n migratePatchFunc(jQuery.fn, \"offset\", function () {\n var elem = this[0];\n\n if (elem && (!elem.nodeType || !elem.getBoundingClientRect)) {\n migrateWarn(\"offset-valid-elem\", \"jQuery.fn.offset() requires a valid DOM element\");\n return arguments.length ? this : undefined;\n }\n\n return origOffset.apply(this, arguments);\n }, \"offset-valid-elem\"); // Support jQuery slim which excludes the ajax module\n // The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional`\n // so it doesn't make sense for the slim build.\n\n if (jQuery.ajax) {\n var origParam = jQuery.param;\n migratePatchFunc(jQuery, \"param\", function (data, traditional) {\n var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\n if (traditional === undefined && ajaxTraditional) {\n migrateWarn(\"param-ajax-traditional\", \"jQuery.param() no longer uses jQuery.ajaxSettings.traditional\");\n traditional = ajaxTraditional;\n }\n\n return origParam.call(this, data, traditional);\n }, \"param-ajax-traditional\");\n }\n\n migratePatchAndWarnFunc(jQuery.fn, \"andSelf\", jQuery.fn.addBack, \"andSelf\", \"jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()\"); // Support jQuery slim which excludes the deferred module in jQuery 4.0+\n\n if (jQuery.Deferred) {\n var oldDeferred = jQuery.Deferred,\n tuples = [// Action, add listener, callbacks, .then handlers, final state\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\")]];\n migratePatchFunc(jQuery, \"Deferred\", function (func) {\n var deferred = oldDeferred(),\n promise = deferred.promise();\n\n function\n /* fnDone, fnFail, fnProgress */\n newDeferredPipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = typeof fns[i] === \"function\" && fns[i]; // Deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && typeof returned.promise === \"function\") {\n returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);\n } else {\n newDefer[tuple[0] + \"With\"](this === promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n }\n\n migratePatchAndWarnFunc(deferred, \"pipe\", newDeferredPipe, \"deferred-pipe\", \"deferred.pipe() is deprecated\");\n migratePatchAndWarnFunc(promise, \"pipe\", newDeferredPipe, \"deferred-pipe\", \"deferred.pipe() is deprecated\");\n\n if (func) {\n func.call(deferred, deferred);\n }\n\n return deferred;\n }, \"deferred-pipe\"); // Preserve handler of uncaught exceptions in promise chains\n\n jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;\n }\n\n return jQuery;\n});","module.exports = global[\"jQuery\"] = require(\"-!./jquery.js\");","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"