Skip to content

Instantly share code, notes, and snippets.

@gabrielflorit
Last active September 13, 2019 12:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gabrielflorit/70bace15a196959075ccc2effbeb6064 to your computer and use it in GitHub Desktop.
Save gabrielflorit/70bace15a196959075ccc2effbeb6064 to your computer and use it in GitHub Desktop.
Speedy Racer
// We want:
// DONE: position
// DONE: status
// DONE: GAP
// DONE: INT
// DONE: recent lap time
// DONE: lap count
// : is better lap
// : is better GAP
// : is better INT
const formatGap = x => (x / 1000).toFixed(1)
const calculateMetrics = ({ car, raceElapsed, cars, index }) => {
const { elapsed, isNewLap, laps, measures, number, gap, status, int } = car
const leader = cars[0]
// Set defaults.
let previousLap = null
let newElapsed = elapsed
let newGap = gap
let newStatus = status
let newInt = int
// If the leader started a new lap,
// set this car's status to yellow.
if (leader.isNewLap) {
newStatus = 'yellow'
}
// If we started a new lap,
if (isNewLap) {
// do a number of things.
// Set our status to white.
newStatus = 'white'
// Calculate the previous lap time.
// To do this, do race elapsed - previous elapsed.
previousLap = raceElapsed - elapsed
// And set car's elapsed to race elapsed.
newElapsed = raceElapsed
// Every time you start a new lap,
// calculate GAP and INT.
// GAP = distance to the leader.
// INT = distance to the previous car.
// If we're the leader, ignore.
if (number === leader.number) {
newGap = 'LAP'
newInt = '--'
} else {
// If we're not the leader,
// calculate the lap count differences to leader and previous car.
const leaderLapDelta =
Math.floor(_.last(leader.measures).pct) -
Math.floor(_.last(measures).pct)
const previousCarLapDelta =
Math.floor(_.last(cars[index - 1].measures).pct) -
Math.floor(_.last(measures).pct)
// If we're on the same lap as leader, show time gap.
if (leaderLapDelta === 0) {
newGap = formatGap(newElapsed - leader.elapsed)
} else {
// If we're NOT on the same lap, just show the lap count delta.
newGap = `${leaderLapDelta}L`
}
// If we're on the same lap as previous, show time gap.
if (previousCarLapDelta === 0) {
newInt = formatGap(newElapsed - cars[index - 1].elapsed)
} else {
// If we're NOT on the same lap, just show the lap count delta.
newInt = `${previousCarLapDelta}L`
}
}
}
return {
...car,
elapsed: newElapsed,
laps: [...laps, previousLap].filter(d => d),
gap: newGap,
isNewLap,
status: newStatus,
int: newInt,
position: index + 1
}
}
export default calculateMetrics
import constants from './constants.js'
const setup = container => {
const margins = { top: 45, right: 5, bottom: 20, left: 40 }
const width = container.node().offsetWidth - margins.right - margins.left
const height = width / 3.5
const svg = container
.append('svg')
.attr('width', width + margins.right + margins.left)
.attr('height', height + margins.top + margins.bottom)
const g = svg
.append('g')
.attr('transform', `translate(${margins.left}, ${margins.top})`)
const x = d3
.scaleLinear()
.range([0, width])
.domain([0, 1])
const y = d3
.scaleLinear()
.range([height, 0])
.domain([0, constants.MAX])
.nice()
const line = d3
.line()
.curve(d3.curveBasis)
.x(d => x(d.pct % 1))
.y(d => y(d.speed))
const xAxis = g
.append('g')
.attr('class', 'axis axis--x')
.attr('transform', `translate(0, ${height})`)
.call(
d3
.axisBottom(x)
.tickSize(0)
.ticks([])
)
xAxis
.append('text')
.text('Start')
.attr('x', x(0))
.attr('text-anchor', 'start')
.attr('dy', 14)
xAxis
.append('text')
.text('Finish')
.attr('x', x(1))
.attr('text-anchor', 'end')
.attr('dy', 14)
const yAxis = g
.append('g')
.attr('class', 'axis axis--y')
.call(
d3
.axisLeft(y)
.tickSize(0)
.ticks(5)
)
yAxis
.append('text')
.text('(MPH)')
.attr('dx', -3)
.attr('dy', 6 - 18)
.attr('text-anchor', 'end')
yAxis
.append('text')
.text('Speed')
.attr('dx', -3)
.attr('dy', 6 - 18 - 18)
.attr('text-anchor', 'end')
return {
g,
x,
y,
line
}
}
const clean = measures => {
const lastTwo = measures.slice(-2).map(d => d.pct % 1)
return lastTwo[1] < lastTwo[0]
? measures.slice(0, measures.length - 1)
: measures
}
// _.last(measures).pct % 1 <
// measures.length === 2 ? measures.slice(-1) : measures
const getTransform = ({ d, x, y }) => {
const last = _.last(d.measures)
return `translate(${x(last.pct % 1)}, ${y(last.speed)})`
}
const update = ({ g, x, y, line, cars }) => {
// join
const paths = g.selectAll('path.car').data(cars, d => d.number)
// update
paths.attr('d', d => line(clean(d.measures)))
// enter
paths
.enter()
.append('path')
.attr('class', 'car')
.attr('d', d => line(clean(d.measures)))
// remove
paths.exit().remove()
// join
const gJoin = g.selectAll('g.car').data(cars, d => d.number)
// update
gJoin
.attr('class', d => (d.position === 1 ? 'car leader' : 'car'))
.attr('transform', d => getTransform({ d, x, y }))
// enter
const gEnter = gJoin
.enter()
.append('g')
.attr('class', d => (d.position === 1 ? 'car leader' : 'car'))
.attr('transform', d => getTransform({ d, x, y }))
gEnter
.append('circle')
.attr('cx', 0)
.attr('cy', 0)
.attr('r', 9)
gEnter
.append('text')
.text(d => d.number)
.attr('dy', 4)
// remove
gJoin.exit().remove()
}
const chart = {
setup,
update
}
export default chart
var circuitTracks = [[{"x":443.228,"y":767.843},{"x":344.262,"y":650.742},{"x":272.858,"y":566.064},{"x":266.244,"y":554.3629999999999},{"x":276.766,"y":534.8309999999999},{"x":287.20000000000005,"y":511.6859999999999},{"x":283.53900000000004,"y":479.45199999999994},{"x":271.04900000000004,"y":456.22599999999994},{"x":259.73600000000005,"y":443.26499999999993},{"x":229.10500000000005,"y":411.5609999999999},{"x":166.44600000000005,"y":332.8409999999999},{"x":155.34900000000005,"y":316.96699999999987},{"x":114.31000000000004,"y":245.19999999999987},{"x":101.68900000000005,"y":220.53999999999988},{"x":81.755,"y":173.87},{"x":82.49199999999999,"y":160.77700000000002},{"x":91.05799999999999,"y":154.20600000000002},{"x":106.36999999999999,"y":150.157},{"x":130.642,"y":143.84400000000002},{"x":153.562,"y":128.00500000000002},{"x":169.347,"y":107.99100000000003},{"x":174.518,"y":85.32600000000002},{"x":176.597,"y":44.60900000000002},{"x":177.851,"y":13.376000000000023},{"x":179.59,"y":3.4290000000000234},{"x":190.939,"y":-9.77},{"x":259.484,"y":-54.373999999999995},{"x":298.674,"y":-69.042},{"x":355.69899999999996,"y":-83.89},{"x":372.395,"y":-91.402},{"x":372.395,"y":-91.402},{"x":415.74699999999996,"y":-113.13},{"x":430.794,"y":-112.423},{"x":445.654,"y":-97.397},{"x":465.537,"y":-83.04700000000001},{"x":490.55199999999996,"y":-73.26500000000001},{"x":529.573,"y":-65.96700000000001},{"x":555.677,"y":-52.18400000000001},{"x":577.996,"y":-34.920000000000016},{"x":595.054,"y":-14.523000000000017},{"x":606.543,"y":8.311999999999983},{"x":617.91,"y":64.207},{"x":623.972,"y":130.718},{"x":631.156,"y":190.213},{"x":629.722,"y":199.44299999999998},{"x":623.076,"y":203.91699999999997},{"x":593.46,"y":210.93899999999996},{"x":583.4530000000001,"y":220.95099999999996},{"x":578.368,"y":227.55699999999996},{"x":578.495,"y":227.25499999999997},{"x":563.846,"y":267.66999999999996},{"x":542.207,"y":366.37699999999995},{"x":540.608,"y":409.70399999999995},{"x":549.015,"y":456.9429999999999},{"x":554.847,"y":473.29799999999994},{"x":577.5649999999999,"y":518.7489999999999},{"x":603.151,"y":550.6719999999999},{"x":643.168,"y":592.4039999999999},{"x":661.867,"y":609.7969999999999},{"x":679.4359999999999,"y":626.2509999999999},{"x":689.324,"y":629.8999999999999},{"x":703.2339999999999,"y":627.4009999999998},{"x":734.5669999999999,"y":625.8339999999998},{"x":754.4119999999999,"y":625.2149999999998},{"x":763.559,"y":628.2469999999998},{"x":777.419,"y":642.3229999999999},{"x":868.066,"y":733.7429999999998},{"x":894.437,"y":771.6259999999999},{"x":909.019,"y":815.1649999999998},{"x":943.467,"y":973.4109999999998},{"x":945.495,"y":998.3149999999998},{"x":940.492,"y":1002.2329999999998},{"x":832.6419999999999,"y":1035.859},{"x":797.757,"y":1044.83},{"x":774.962,"y":1038.224},{"x":761.908,"y":1024.6989999999998},{"x":709.3770000000001,"y":914.1779999999999},{"x":703.0240000000001,"y":908.0019999999998},{"x":692.4970000000001,"y":908.9619999999999},{"x":675.537,"y":926.6699999999998},{"x":647.7900000000001,"y":953.0809999999999},{"x":639.003,"y":957.2599999999999},{"x":623.2990000000001,"y":957.0019999999998},{"x":612.6860000000001,"y":957.0049999999999},{"x":600.8950000000001,"y":949.3949999999999},{"x":571.5680000000001,"y":918.7779999999999},{"x":502.4270000000001,"y":837.7559999999999},{"x":443.228,"y":767.843},{"x":443.228,"y":767.843}],[{"x":2554.335,"y":43.062},{"x":2571.909,"y":54.171},{"x":2594.98,"y":79.132},{"x":2607.829,"y":105.744},{"x":2605.356,"y":131.048},{"x":2599.579,"y":139.69},{"x":2579.4750000000004,"y":157.504},{"x":2442.2870000000003,"y":229.58999999999997},{"x":2131.5580000000004,"y":382.628},{"x":2002.9600000000005,"y":446.312},{"x":1907.1290000000006,"y":495.15000000000003},{"x":1892.5300000000007,"y":496.42400000000004},{"x":1877.4260000000006,"y":488.83500000000004},{"x":1857.2110000000007,"y":430.41100000000006},{"x":1854.5550000000007,"y":402.46500000000003},{"x":1880.5810000000008,"y":65.26300000000003},{"x":1907.6030000000007,"y":-263.63899999999995},{"x":1941.2240000000008,"y":-646.6419999999999},{"x":1948.4490000000008,"y":-727.6099999999999},{"x":1959.3020000000008,"y":-732.983},{"x":1970.1950000000008,"y":-731.425},{"x":1981.664000000001,"y":-718.161},{"x":2024.5330000000008,"y":-674.184},{"x":2035.4950000000008,"y":-669.783},{"x":2048.4770000000008,"y":-670.566},{"x":2131.797000000001,"y":-694.642},{"x":2152.080000000001,"y":-696.061},{"x":2183.424000000001,"y":-690.5540000000001},{"x":2274.6620000000007,"y":-670.8000000000001},{"x":2472.877000000001,"y":-627.4280000000001},{"x":2700.891000000001,"y":-575.2160000000001},{"x":2720.659000000001,"y":-566.9140000000001},{"x":2725.221000000001,"y":-553.9260000000002},{"x":2726.156000000001,"y":-539.0420000000001},{"x":2719.212000000001,"y":-520.4190000000001},{"x":2707.791000000001,"y":-504.69900000000007},{"x":2690.249000000001,"y":-491.07400000000007},{"x":2664.210000000001,"y":-477.5470000000001},{"x":2641.140000000001,"y":-461.87700000000007},{"x":2586.649000000001,"y":-413.9200000000001},{"x":2554.7110000000007,"y":-383.8130000000001},{"x":2533.294000000001,"y":-360.8270000000001},{"x":2520.7060000000006,"y":-335.1260000000001},{"x":2507.2730000000006,"y":-303.1970000000001},{"x":2496.091000000001,"y":-290.29200000000014},{"x":2476.913000000001,"y":-279.6440000000001},{"x":2459.206000000001,"y":-275.17000000000013},{"x":2432.365000000001,"y":-278.08800000000014},{"x":2401.180000000001,"y":-285.4730000000001},{"x":2375.9550000000013,"y":-288.88600000000014},{"x":2352.146000000001,"y":-283.0430000000001},{"x":2334.262000000001,"y":-269.1340000000001},{"x":2301.353000000001,"y":-234.14100000000013},{"x":2238.126000000001,"y":-157.63800000000015},{"x":2199.8410000000013,"y":-113.18200000000014},{"x":2187.135000000001,"y":-106.39000000000014},{"x":2172.949000000001,"y":-109.96300000000014},{"x":2166.950000000001,"y":-120.87000000000013},{"x":2164.711000000001,"y":-135.23800000000014},{"x":2167.4640000000013,"y":-156.42200000000014},{"x":2224.6980000000012,"y":-447.00500000000017},{"x":2222.720000000001,"y":-475.52500000000015},{"x":2214.162000000001,"y":-497.04600000000016},{"x":2198.715000000001,"y":-515.3740000000001},{"x":2169.623000000001,"y":-539.9050000000001},{"x":2158.041000000001,"y":-548.1370000000001},{"x":2149.410000000001,"y":-546.6690000000001},{"x":2144.0710000000013,"y":-535.7850000000001},{"x":2123.7550000000015,"y":-423.17500000000007},{"x":2119.7010000000014,"y":-390.4460000000001},{"x":2073.2120000000014,"y":161.8719999999999},{"x":2076.7210000000014,"y":179.8099999999999},{"x":2087.3310000000015,"y":192.0559999999999},{"x":2112.0480000000016,"y":201.4089999999999},{"x":2141.337000000002,"y":205.1679999999999},{"x":2165.039000000002,"y":200.5749999999999},{"x":2188.409000000002,"y":192.4889999999999},{"x":2204.478000000002,"y":185.0389999999999},{"x":2223.325000000002,"y":170.8989999999999},{"x":2244.6340000000023,"y":150.0369999999999},{"x":2263.850000000002,"y":120.4909999999999},{"x":2286.8710000000024,"y":64.8109999999999},{"x":2296.6630000000023,"y":42.334999999999894},{"x":2317.0160000000024,"y":17.927999999999894},{"x":2341.6610000000023,"y":-1.3910000000001048},{"x":2364.1460000000025,"y":-10.181000000000104},{"x":2396.8710000000024,"y":-17.156000000000105},{"x":2419.080000000002,"y":-19.041000000000107},{"x":2448.1010000000024,"y":-12.154000000000106},{"x":2500.0490000000023,"y":14.011999999999894},{"x":2554.335,"y":43.062},{"x":2554.335,"y":43.062},{"x":2554.335,"y":43.062}],[{"x":1083.435,"y":-880.632},{"x":1037.081,"y":-940.2529999999999},{"x":1018.8629999999999,"y":-945.8609999999999},{"x":1007.6959999999999,"y":-932.8089999999999},{"x":988.6189999999999,"y":-905.7499999999999},{"x":958.598,"y":-908.8289999999998},{"x":935.891,"y":-936.8799999999999},{"x":926.0799999999999,"y":-977.3859999999999},{"x":934.8589999999999,"y":-1008.9089999999999},{"x":961.2969999999999,"y":-1033.54},{"x":999.0329999999999,"y":-1042.258},{"x":1035.319,"y":-1039.52},{"x":1072.4669999999999,"y":-1018.6659999999999},{"x":1138.3549999999998,"y":-942.06},{"x":1735.7849999999999,"y":-221.923},{"x":1740.2989999999998,"y":-204.823},{"x":1721.6629999999998,"y":-203.11700000000002},{"x":1665.1509999999998,"y":-236.805},{"x":1610.484,"y":-296.613},{"x":1518.81,"y":-396.641},{"x":1498.732,"y":-406.42},{"x":1471.93,"y":-395.40700000000004},{"x":1152.903,"y":-280.18000000000006},{"x":868.2,"y":-185.55200000000008},{"x":829.5400000000001,"y":-189.1670000000001},{"x":797.6830000000001,"y":-214.45600000000007},{"x":779.0390000000001,"y":-253.2870000000001},{"x":784.8700000000001,"y":-289.3030000000001},{"x":806.4930000000002,"y":-312.35000000000014},{"x":838.1350000000002,"y":-317.59300000000013},{"x":860.9960000000002,"y":-304.00600000000014},{"x":858.2890000000002,"y":-270.61300000000017},{"x":859.2270000000002,"y":-240.68500000000017},{"x":877.2190000000002,"y":-229.97500000000016},{"x":900.9040000000001,"y":-235.91600000000017},{"x":915.1270000000001,"y":-260.95000000000016},{"x":919.6030000000001,"y":-294.18800000000016},{"x":905.9150000000001,"y":-328.57500000000016},{"x":855.1490000000001,"y":-374.4540000000002},{"x":743.304,"y":-475.584},{"x":718.906,"y":-504.674},{"x":657.8209999999999,"y":-632.071},{"x":648.2099999999999,"y":-653.4200000000001},{"x":638.9189999999999,"y":-682.075},{"x":650.3649999999999,"y":-695.7710000000001},{"x":666.1239999999999,"y":-692.6070000000001},{"x":708.3129999999999,"y":-665.7410000000001},{"x":743.7469999999998,"y":-627.8870000000001},{"x":818.9949999999999,"y":-525.96},{"x":851.2569999999998,"y":-487.494},{"x":893.5149999999999,"y":-463.96500000000003},{"x":928.3129999999999,"y":-462.02500000000003},{"x":966.9969999999998,"y":-476.449},{"x":1000.8549999999998,"y":-504.439},{"x":1021.7479999999998,"y":-542.028},{"x":1040.3619999999999,"y":-601.867},{"x":1055.3759999999997,"y":-630.8399999999999},{"x":1085.6829999999998,"y":-651.3459999999999},{"x":1122.9709999999998,"y":-649.8559999999999},{"x":1162.2429999999997,"y":-630.3759999999999},{"x":1194.5659999999998,"y":-572.3039999999999},{"x":1214.0699999999997,"y":-553.4439999999998},{"x":1235.0249999999996,"y":-558.7319999999999},{"x":1258.9349999999997,"y":-595.1659999999998},{"x":1273.8639999999998,"y":-625.7069999999999},{"x":1265.2019999999998,"y":-646.2889999999999},{"x":1230.5589999999997,"y":-688.0819999999999},{"x":1083.435,"y":-880.632},{"x":1083.435,"y":-880.632},{"x":1083.435,"y":-880.632}],[{"x":125.89,"y":286.762},{"x":125.492,"y":302.683},{"x":120.209,"y":500.073},{"x":120.426,"y":525.504},{"x":122.176,"y":536.136},{"x":139.725,"y":613.2819999999999},{"x":143.35899999999998,"y":619.304},{"x":161.802,"y":635.563},{"x":168.537,"y":646.2429999999999},{"x":183.133,"y":689.587},{"x":190.23100000000002,"y":701.322},{"x":209.32100000000003,"y":721.03},{"x":214.62600000000003,"y":728.4879999999999},{"x":212.44800000000004,"y":737.382},{"x":181.14200000000002,"y":762.983},{"x":156.35600000000002,"y":782.718},{"x":151.723,"y":787.352},{"x":142.655,"y":788.869},{"x":119.85900000000001,"y":779.8140000000001},{"x":93.94,"y":769.333},{"x":80.8,"y":759.38},{"x":58.866,"y":739.223},{"x":52.236,"y":725.223},{"x":49.696,"y":650.3879999999999},{"x":51.443999999999996,"y":639.084},{"x":53.672,"y":636.651},{"x":61.724999999999994,"y":635.641},{"x":66.746,"y":636.1999999999999},{"x":70.63199999999999,"y":633.218},{"x":72.64599999999999,"y":626.6949999999999},{"x":77.83399999999999,"y":622.05},{"x":78.63399999999999,"y":620.675},{"x":82.56499999999998,"y":616.367},{"x":88.09599999999999,"y":616.448},{"x":121.54199999999999,"y":620.459},{"x":123.83899999999998,"y":620.6189999999999},{"x":117.74199999999999,"y":607.1739999999999},{"x":118.39999999999999,"y":603.2629999999999},{"x":118.761,"y":598.699},{"x":109.453,"y":557.2189999999999},{"x":105.031,"y":536.1709999999999},{"x":101.256,"y":536.1679999999999},{"x":92.425,"y":528.6889999999999},{"x":88.133,"y":500.6949999999998},{"x":85.96499999999999,"y":452.81899999999985},{"x":85.66099999999999,"y":396.54499999999985},{"x":85.41899999999998,"y":393.0169999999998},{"x":83.44799999999998,"y":391.2749999999998},{"x":65.423,"y":391.3},{"x":39.144000000000005,"y":391.808},{"x":30.776000000000003,"y":383.278},{"x":32.359,"y":316.074},{"x":34.649,"y":252.09500000000003},{"x":34.968,"y":246.72100000000003},{"x":43.003,"y":239.45700000000002},{"x":56.311,"y":239.48200000000003},{"x":113.089,"y":239.47900000000004},{"x":122.597,"y":240.52400000000003},{"x":126.911,"y":246.23900000000003},{"x":126.583,"y":259.511},{"x":125.89,"y":286.762},{"x":126.425,"y":265.987},{"x":125.89,"y":286.762},{"x":125.89,"y":286.762}],[{"x":780.498,"y":-309.866},{"x":809.38,"y":-340.18199999999996},{"x":844.425,"y":-353.11499999999995},{"x":881.093,"y":-341.35999999999996},{"x":903.281,"y":-310.77},{"x":910.098,"y":-264.11199999999997},{"x":893.8499999999999,"y":-214.98299999999998},{"x":757.238,"y":-64.981},{"x":746.293,"y":-39.303},{"x":762.697,"y":-10.553999999999998},{"x":802.212,"y":-6.816999999999998},{"x":949.265,"y":-50.145},{"x":1019.411,"y":-89.916},{"x":1098.346,"y":-171.2},{"x":1073.409,"y":-246.221},{"x":1047.5980000000002,"y":-287.619},{"x":1005.7090000000002,"y":-480.13800000000003},{"x":1015.3660000000002,"y":-526.839},{"x":1042.0890000000002,"y":-558.316},{"x":1100.3730000000003,"y":-585.764},{"x":1466.2820000000002,"y":-688.971},{"x":1550.7300000000002,"y":-714.176},{"x":1555.6180000000002,"y":-755.345},{"x":1461.132,"y":-797.409},{"x":1426.736,"y":-788.577},{"x":1370.2900000000002,"y":-775.386},{"x":1342.4210000000003,"y":-791.726},{"x":1326.0170000000003,"y":-830.685},{"x":1335.0160000000003,"y":-869.145},{"x":1360.5370000000003,"y":-889.513},{"x":1471.0270000000003,"y":-946.965},{"x":1515.3170000000002,"y":-953.1030000000001},{"x":1589.0590000000002,"y":-869.0630000000001},{"x":1616.8640000000003,"y":-874.0840000000001},{"x":1645.9850000000004,"y":-877.839},{"x":1699.0880000000004,"y":-824.028},{"x":1723.8390000000004,"y":-773.163},{"x":1701.0050000000003,"y":-695.695},{"x":1449.6410000000003,"y":-427.09000000000003},{"x":977.746,"y":78.166},{"x":905.556,"y":81.31},{"x":817.409,"y":62.56400000000001},{"x":729.5029999999999,"y":103.096},{"x":683.5409999999999,"y":104.418},{"x":640.7969999999999,"y":88.158},{"x":606.641,"y":52.86},{"x":586.831,"y":-4.849},{"x":596.219,"y":-80.26100000000001},{"x":630.5920000000001,"y":-146.464},{"x":780.498,"y":-309.866},{"x":780.498,"y":-309.866}],[{"x":1975.127,"y":823.062},{"x":1970.779,"y":812.143},{"x":1936.898,"y":712.245},{"x":1931.2569999999998,"y":632.1320000000001},{"x":1931.1299999999999,"y":597.61},{"x":1924.37,"y":570.37},{"x":1930.337,"y":552.61},{"x":1954.977,"y":547.3580000000001},{"x":2077.3340000000003,"y":482.994},{"x":2174.7400000000002,"y":424.58500000000004},{"x":2260.143,"y":389.552},{"x":2358.148,"y":314.005},{"x":2452.656,"y":268.008},{"x":2507.1549999999997,"y":213.97899999999998},{"x":2521.3619999999996,"y":165.464},{"x":2508.787,"y":132.622},{"x":2482.1609999999996,"y":103.82600000000002},{"x":2441.278,"y":77.92000000000002},{"x":2417.682,"y":47.80300000000001},{"x":2411.6949999999997,"y":12.89800000000001},{"x":2423.9489999999996,"y":-33.97899999999999},{"x":2487.0139999999997,"y":-187.42499999999998},{"x":2502.8279999999995,"y":-221.581},{"x":2517.2659999999996,"y":-226.242},{"x":2543.0059999999994,"y":-214.53},{"x":2555.7889999999993,"y":-182.822},{"x":2583.638999999999,"y":-149.618},{"x":2617.7439999999992,"y":-115.01499999999999},{"x":2633.2829999999994,"y":-121.80299999999998},{"x":2630.5429999999997,"y":-136.97199999999998},{"x":2582.0869999999995,"y":-177.36199999999997},{"x":2569.3549999999996,"y":-197.52699999999996},{"x":2586.3759999999997,"y":-225.11199999999997},{"x":2654.169,"y":-255.35599999999997},{"x":2672.977,"y":-242.84999999999997},{"x":2683.9739999999997,"y":-172.22099999999995},{"x":2692.8289999999997,"y":-56.54099999999994},{"x":2695.225,"y":29.619000000000057},{"x":2673.774,"y":109.16500000000006},{"x":2625.7329999999997,"y":192.71300000000008},{"x":2548.1429999999996,"y":272.76400000000007},{"x":2485.6429999999996,"y":325.18600000000004},{"x":2393.9379999999996,"y":380.47600000000006},{"x":2329.3369999999995,"y":410.54400000000004},{"x":2329.1889999999994,"y":434.76800000000003},{"x":2297.3819999999996,"y":449.817},{"x":2278.6059999999998,"y":447.265},{"x":2017.3529999999998,"y":558.257},{"x":2000.2789999999998,"y":577.569},{"x":1993.0969999999998,"y":628.509},{"x":1998.8649999999998,"y":696.87},{"x":2015.0869999999998,"y":744.27},{"x":2032.9879999999998,"y":758.389},{"x":2057.6879999999996,"y":769.7330000000001},{"x":2075.6489999999994,"y":792.369},{"x":2121.4199999999996,"y":892.6700000000001},{"x":2134.5559999999996,"y":924.099},{"x":2130.2069999999994,"y":942.7170000000001},{"x":2116.2209999999995,"y":957.7760000000001},{"x":2126.1139999999996,"y":989.4060000000001},{"x":2172.8029999999994,"y":1045.0700000000002},{"x":2221.2229999999995,"y":1080.9820000000002},{"x":2255.6059999999993,"y":1092.9710000000002},{"x":2277.7629999999995,"y":1095.1140000000003},{"x":2293.3249999999994,"y":1113.6690000000003},{"x":2285.3869999999993,"y":1131.9720000000004},{"x":2248.3809999999994,"y":1153.0310000000004},{"x":2213.1929999999993,"y":1172.5630000000003},{"x":2192.9359999999992,"y":1166.2630000000004},{"x":2183.5789999999993,"y":1149.1580000000004},{"x":2176.5459999999994,"y":1135.0950000000003},{"x":2129.0769999999993,"y":1100.0450000000003},{"x":2078.4249999999993,"y":1032.7030000000002},{"x":2026.9429999999993,"y":954.4720000000002},{"x":1995.5279999999993,"y":876.1490000000002},{"x":1975.127,"y":823.062},{"x":1975.127,"y":823.062},{"x":1975.127,"y":823.062}],[{"x":364.792,"y":52.645},{"x":357.215,"y":26.577},{"x":356.782,"y":19.224000000000004},{"x":364.941,"y":15.456000000000003},{"x":370.477,"y":15.336000000000004},{"x":377.181,"y":21.665000000000003},{"x":383.526,"y":41.929},{"x":383.313,"y":56.043000000000006},{"x":387.762,"y":80.837},{"x":394.516,"y":95.13},{"x":415.877,"y":135.028},{"x":448.15700000000004,"y":215.733},{"x":468.95900000000006,"y":268.25},{"x":477.2420000000001,"y":293.736},{"x":500.41600000000005,"y":393.815},{"x":543.6,"y":571.681},{"x":557.996,"y":656.359},{"x":554.7429999999999,"y":663.197},{"x":545.05,"y":669.418},{"x":542.762,"y":676.347},{"x":546.862,"y":694.61},{"x":560.1139999999999,"y":746.241},{"x":575.4569999999999,"y":801.484},{"x":595.3959999999998,"y":881.6990000000001},{"x":605.6389999999999,"y":925.7310000000001},{"x":608.9879999999999,"y":960.3310000000001},{"x":605.6489999999999,"y":1015.5720000000001},{"x":603.8429999999998,"y":1037.8180000000002},{"x":606.8739999999998,"y":1046.88},{"x":619.3969999999998,"y":1055.228},{"x":635.1339999999998,"y":1058.847},{"x":641.9149999999997,"y":1067.782},{"x":639.7239999999997,"y":1078.781},{"x":632.2759999999997,"y":1087.004},{"x":622.1859999999997,"y":1090.587},{"x":605.2679999999997,"y":1089.1299999999999},{"x":569.4359999999997,"y":1071.3639999999998},{"x":555.4719999999996,"y":1064.504},{"x":526.2809999999996,"y":1045.301},{"x":468.5629999999996,"y":996.5609999999999},{"x":466.3129999999996,"y":989.5229999999999},{"x":472.2409999999996,"y":968.3199999999999},{"x":467.6789999999996,"y":954.886},{"x":426.4119999999996,"y":907.3979999999999},{"x":396.2939999999996,"y":885.9939999999999},{"x":382.3199999999996,"y":869.06},{"x":372.1279999999996,"y":844.852},{"x":368.5709999999996,"y":780.177},{"x":365.96399999999954,"y":741.043},{"x":361.2079999999995,"y":731.327},{"x":352.1559999999995,"y":725.749},{"x":341.1699999999995,"y":726.8100000000001},{"x":329.9949999999995,"y":727.508},{"x":312.1889999999995,"y":721.741},{"x":300.3049999999995,"y":708.419},{"x":292.3769999999995,"y":691.309},{"x":289.3249999999995,"y":671.216},{"x":280.3679999999995,"y":584.904},{"x":280.2119999999995,"y":544.112},{"x":280.48899999999946,"y":510.67199999999997},{"x":287.45399999999944,"y":456.59},{"x":301.7339999999994,"y":397.35999999999996},{"x":306.6979999999994,"y":376.066},{"x":311.2179999999994,"y":367.88899999999995},{"x":320.7709999999994,"y":366.52899999999994},{"x":332.8759999999994,"y":363.95099999999996},{"x":341.8109999999994,"y":357.171},{"x":349.7069999999994,"y":340.868},{"x":361.9789999999994,"y":297.53},{"x":376.5559999999994,"y":213.147},{"x":381.2749999999994,"y":157.064},{"x":379.64899999999943,"y":129.939},{"x":375.10499999999945,"y":94.25099999999999},{"x":364.792,"y":52.645},{"x":364.792,"y":52.645},{"x":364.792,"y":52.645}],[{"x":834.259,"y":581.535},{"x":502.866,"y":327.308},{"x":466.377,"y":311.157},{"x":382.93100000000004,"y":311.755},{"x":342.55400000000003,"y":302.483},{"x":278.84700000000004,"y":259.115},{"x":235.77800000000002,"y":232.79500000000002},{"x":178.353,"y":208.86800000000002},{"x":119.73100000000001,"y":169.38800000000003},{"x":120.927,"y":132.30100000000004},{"x":105.37400000000001,"y":108.67300000000004},{"x":43.46300000000001,"y":107.17700000000005},{"x":36.88300000000001,"y":95.81100000000005},{"x":52.735000000000014,"y":48.55500000000005},{"x":69.483,"y":30.61},{"x":89.821,"y":30.61},{"x":120.926,"y":48.555},{"x":149.34,"y":79.66},{"x":184.632,"y":142.768},{"x":763.373,"y":362.002},{"x":781.917,"y":389.219},{"x":802.854,"y":400.28499999999997},{"x":829.4730000000001,"y":392.21},{"x":856.69,"y":368.282},{"x":882.711,"y":356.618},{"x":913.816,"y":388.32099999999997},{"x":981.111,"y":438.568},{"x":1016.703,"y":456.214},{"x":1336.133,"y":573.7570000000001},{"x":1369.93,"y":597.086},{"x":1404.923,"y":653.913},{"x":1407.017,"y":826.788},{"x":1386.3790000000001,"y":866.866},{"x":1347.199,"y":883.615},{"x":1301.736,"y":871.651},{"x":1280.202,"y":840.5459999999999},{"x":1294.558,"y":801.0669999999999},{"x":1355.573,"y":720.9109999999998},{"x":1363.0510000000002,"y":692.1979999999999},{"x":1355.573,"y":662.2889999999999},{"x":1338.824,"y":650.3249999999998},{"x":1316.094,"y":655.1109999999998},{"x":1269.4360000000001,"y":677.8409999999998},{"x":1219.188,"y":685.0189999999998},{"x":1165.352,"y":675.4489999999997},{"x":1115.104,"y":644.3439999999997},{"x":1082.803,"y":612.0419999999997},{"x":1052.894,"y":608.4529999999996},{"x":1026.873,"y":621.0149999999996},{"x":1011.0210000000001,"y":639.8579999999996},{"x":1009.825,"y":686.5159999999996},{"x":992.1790000000001,"y":699.6759999999996},{"x":834.259,"y":581.535},{"x":834.259,"y":581.535},{"x":834.259,"y":581.535}],[{"x":548.069,"y":374.589},{"x":403.667,"y":411.131},{"x":307.49199999999996,"y":434.98699999999997},{"x":295.95,"y":435.635},{"x":288.222,"y":421.493},{"x":262.42199999999997,"y":386.03999999999996},{"x":241.85799999999998,"y":357.13599999999997},{"x":172.24699999999996,"y":218.36499999999998},{"x":97.33899999999996,"y":132.34599999999998},{"x":101.94399999999996,"y":118.44699999999997},{"x":166.62599999999998,"y":116.84599999999998},{"x":211.79399999999998,"y":125.42799999999997},{"x":278.921,"y":137.67999999999998},{"x":340.408,"y":143.88699999999997},{"x":404.279,"y":148.80799999999996},{"x":413.391,"y":168.14899999999997},{"x":352.35400000000004,"y":210.72699999999998},{"x":296.42600000000004,"y":205.527},{"x":249.23400000000004,"y":202.153},{"x":229.22700000000003,"y":234.06199999999998},{"x":233.04100000000003,"y":246.41299999999998},{"x":263.708,"y":303.339},{"x":306.41200000000003,"y":308.286},{"x":336.35900000000004,"y":276.998},{"x":370.201,"y":265.123},{"x":519.578,"y":265.456},{"x":555.481,"y":265.474},{"x":575.01,"y":278.716},{"x":591.49,"y":340.932},{"x":583.7090000000001,"y":357.56600000000003},{"x":548.069,"y":374.589},{"x":548.069,"y":374.589},{"x":548.069,"y":374.589}],[{"x":339.661,"y":59.385},{"x":380.839,"y":47.281},{"x":394.17,"y":48.801},{"x":407.03000000000003,"y":59.94},{"x":424.514,"y":92.253},{"x":435.942,"y":126.689},{"x":443.708,"y":157.154},{"x":456.96000000000004,"y":174.685},{"x":460.64300000000003,"y":186.208},{"x":458.242,"y":202.619},{"x":459.096,"y":217.325},{"x":467.412,"y":228.81},{"x":475.779,"y":237.125},{"x":477.763,"y":248.268},{"x":473.938,"y":257.51},{"x":458.86699999999996,"y":272.11699999999996},{"x":450.667,"y":289.76199999999994},{"x":420.86899999999997,"y":397.53399999999993},{"x":401.871,"y":452.33699999999993},{"x":392.28799999999995,"y":463.4629999999999},{"x":378.25199999999995,"y":465.41399999999993},{"x":366.12299999999993,"y":458.85799999999995},{"x":348.99799999999993,"y":437.82099999999997},{"x":303.61699999999996,"y":404.15299999999996},{"x":295.35499999999996,"y":404.48499999999996},{"x":289.23299999999995,"y":412.58199999999994},{"x":275.44999999999993,"y":413.74299999999994},{"x":263.21399999999994,"y":404.41299999999995},{"x":258.90199999999993,"y":388.53899999999993},{"x":265.73599999999993,"y":368.39399999999995},{"x":303.35599999999994,"y":274.42699999999996},{"x":325.47999999999996,"y":267.241},{"x":360.13699999999994,"y":265.78},{"x":386.1259999999999,"y":236.77999999999997},{"x":397.64899999999994,"y":215.86199999999997},{"x":410.1259999999999,"y":228.36199999999997},{"x":430.1049999999999,"y":230.87899999999996},{"x":417.1539999999999,"y":186.49399999999997},{"x":286.592,"y":122.01},{"x":277.03999999999996,"y":121.87700000000001},{"x":273.60799999999995,"y":131.542},{"x":275.4309999999999,"y":147.651},{"x":271.3759999999999,"y":156.085},{"x":261.5449999999999,"y":159.913},{"x":252.3609999999999,"y":154.775},{"x":251.25599999999991,"y":140.8},{"x":261.9199999999999,"y":103.45400000000001},{"x":279.0219999999999,"y":81.108},{"x":339.661,"y":59.385},{"x":339.661,"y":59.385},{"x":339.661,"y":59.385},{"x":339.661,"y":59.385}],[{"x":106.774,"y":405.761},{"x":78.066,"y":344.151},{"x":49.519000000000005,"y":290.606},{"x":49.196000000000005,"y":287.219},{"x":50.164,"y":283.348},{"x":54.357,"y":274.801},{"x":71.937,"y":236.576},{"x":79.679,"y":224.319},{"x":92.259,"y":208.029},{"x":111.786,"y":183.947},{"x":156.649,"y":136.986},{"x":214.672,"y":75.29299999999999},{"x":222.792,"y":67.56299999999999},{"x":227.213,"y":65.17099999999999},{"x":232.802,"y":65.65499999999999},{"x":238.93099999999998,"y":70.72099999999999},{"x":244.993,"y":79.74199999999999},{"x":247.41299999999998,"y":88.196},{"x":248.219,"y":95.292},{"x":248.541,"y":114.162},{"x":251.12199999999999,"y":122.226},{"x":255.63799999999998,"y":128.839},{"x":270.676,"y":140.451},{"x":307.087,"y":162.224},{"x":341.279,"y":180.60999999999999},{"x":376.6,"y":194.803},{"x":423.048,"y":208.996},{"x":451.275,"y":214.318},{"x":477.241,"y":217.705},{"x":513.369,"y":219.317},{"x":541.754,"y":218.18800000000002},{"x":571.753,"y":213.18800000000002},{"x":597.235,"y":206.41500000000002},{"x":711.2620000000001,"y":164.48100000000002},{"x":768.033,"y":142.22400000000002},{"x":783.354,"y":136.741},{"x":787.8710000000001,"y":136.90200000000002},{"x":790.6120000000001,"y":138.99900000000002},{"x":792.5480000000001,"y":142.70800000000003},{"x":792.3860000000001,"y":145.93400000000003},{"x":790.4510000000001,"y":148.83700000000002},{"x":738.6800000000002,"y":182.86800000000002},{"x":630.1360000000002,"y":254.47700000000003},{"x":617.0730000000002,"y":262.70300000000003},{"x":609.4930000000002,"y":265.92900000000003},{"x":602.8800000000001,"y":266.57500000000005},{"x":591.2680000000001,"y":265.60600000000005},{"x":474.8220000000001,"y":248.67100000000005},{"x":469.01600000000013,"y":248.50900000000004},{"x":466.5960000000001,"y":250.28400000000005},{"x":465.1450000000001,"y":253.99300000000005},{"x":463.3710000000001,"y":262.38000000000005},{"x":463.2100000000001,"y":274.15400000000005},{"x":464.5010000000001,"y":284.63700000000006},{"x":467.2420000000001,"y":297.3790000000001},{"x":471.75900000000007,"y":306.5710000000001},{"x":479.66100000000006,"y":318.0230000000001},{"x":482.56300000000005,"y":323.0220000000001},{"x":484.016,"y":329.9570000000001},{"x":483.53200000000004,"y":336.0860000000001},{"x":479.821,"y":346.56900000000013},{"x":472.915,"y":356.4850000000001},{"x":463.37100000000004,"y":366.67400000000015},{"x":449.15600000000006,"y":377.14100000000013},{"x":374.1820000000001,"y":425.74400000000014},{"x":323.3380000000001,"y":457.93300000000016},{"x":311.6050000000001,"y":461.40200000000016},{"x":298.70200000000006,"y":461.72500000000014},{"x":287.8960000000001,"y":459.14500000000015},{"x":277.73500000000007,"y":453.6610000000002},{"x":271.44500000000005,"y":447.85400000000016},{"x":197.57800000000003,"y":359.79400000000015},{"x":189.19100000000003,"y":353.66600000000017},{"x":180.96500000000003,"y":352.0520000000002},{"x":173.86800000000002,"y":353.8260000000002},{"x":168.06300000000002,"y":357.6970000000002},{"x":164.19100000000003,"y":362.6970000000002},{"x":161.61000000000004,"y":370.5980000000002},{"x":161.44900000000004,"y":377.5350000000002},{"x":172.57700000000006,"y":416.4030000000002},{"x":177.91600000000005,"y":425.5970000000002},{"x":187.25400000000005,"y":432.2100000000002},{"x":208.54300000000006,"y":441.2410000000002},{"x":219.05400000000006,"y":450.0170000000002},{"x":239.34800000000007,"y":480.11000000000024},{"x":240.66600000000008,"y":489.92000000000024},{"x":237.27900000000008,"y":500.08100000000024},{"x":224.02600000000007,"y":511.72200000000026},{"x":195.96300000000008,"y":528.9790000000003},{"x":185.47900000000007,"y":530.2690000000002},{"x":177.89900000000006,"y":529.3000000000002},{"x":169.51300000000006,"y":524.9460000000001},{"x":157.73200000000006,"y":511.5020000000001},{"x":113.22500000000005,"y":419.1450000000001},{"x":106.774,"y":405.761},{"x":106.774,"y":405.761},{"x":106.774,"y":405.761}],[{"x":375.089,"y":717.346},{"x":170.855,"y":717.014},{"x":156.208,"y":707.343},{"x":154.273,"y":694.077},{"x":164.165,"y":680.65},{"x":199.697,"y":654.5699999999999},{"x":230.59,"y":638.9899999999999},{"x":267.714,"y":631.9729999999998},{"x":404.265,"y":629.8229999999999},{"x":426.416,"y":625.2329999999998},{"x":440.504,"y":604.0719999999999},{"x":437.30100000000004,"y":582.7979999999999},{"x":420.17900000000003,"y":566.1699999999998},{"x":349.841,"y":537.3279999999999},{"x":339.284,"y":517.9879999999998},{"x":332.102,"y":480.5149999999998},{"x":322.48699999999997,"y":434.44199999999984},{"x":291.102,"y":283.2649999999999},{"x":289.77599999999995,"y":230.2209999999999},{"x":276.95799999999997,"y":215.1919999999999},{"x":196.50699999999998,"y":157.7269999999999},{"x":183.24499999999998,"y":131.2049999999999},{"x":188.54999999999998,"y":108.2189999999999},{"x":208.884,"y":90.5379999999999},{"x":245.13099999999997,"y":83.46499999999989},{"x":368.018,"y":98.49399999999989},{"x":379.51099999999997,"y":108.21899999999988},{"x":379.51099999999997,"y":123.24899999999988},{"x":384.207,"y":133.80799999999988},{"x":459.18399999999997,"y":186.79599999999988},{"x":479.417,"y":190.38899999999987},{"x":534.5559999999999,"y":159.66499999999988},{"x":557.5409999999999,"y":161.10099999999989},{"x":577.5429999999999,"y":183.36599999999987},{"x":614.6739999999999,"y":255.85999999999987},{"x":644.7329999999998,"y":278.8459999999999},{"x":723.4159999999998,"y":304.48399999999987},{"x":741.0979999999998,"y":328.35399999999987},{"x":731.7559999999999,"y":572.1519999999998},{"x":719.8109999999998,"y":586.8429999999998},{"x":642.0819999999998,"y":578.5459999999998},{"x":585.2749999999997,"y":579.4299999999998},{"x":571.2389999999998,"y":590.2619999999998},{"x":568.9199999999998,"y":608.8799999999999},{"x":578.5349999999999,"y":624.1849999999998},{"x":595.2249999999999,"y":631.5909999999998},{"x":676.5609999999999,"y":631.1489999999998},{"x":704.9069999999999,"y":640.1559999999997},{"x":721.0959999999999,"y":665.7379999999997},{"x":717.2279999999998,"y":689.9399999999997},{"x":698.6619999999998,"y":710.2739999999997},{"x":668.8199999999998,"y":715.8579999999996},{"x":375.089,"y":717.346},{"x":375.089,"y":717.346},{"x":375.089,"y":717.346},{"x":375.089,"y":717.346}],[{"x":663.171,"y":220.235},{"x":617.452,"y":131.995},{"x":611.33,"y":118.706},{"x":611.4820000000001,"y":113.608},{"x":615.2370000000001,"y":111.95700000000001},{"x":625.5910000000001,"y":116.992},{"x":667.7190000000002,"y":142.534},{"x":686.8000000000002,"y":157.73499999999999},{"x":709.3260000000001,"y":185.42},{"x":729.9350000000002,"y":210.452},{"x":744.4300000000002,"y":227.737},{"x":757.5910000000001,"y":237.26},{"x":765.7620000000002,"y":246.17499999999998},{"x":770.8850000000002,"y":259.27299999999997},{"x":773.2000000000003,"y":277.35699999999997},{"x":779.2330000000003,"y":290.092},{"x":792.2190000000003,"y":311.31399999999996},{"x":805.4690000000003,"y":333.46299999999997},{"x":815.0200000000003,"y":350.77399999999994},{"x":818.9120000000004,"y":359.0419999999999},{"x":823.2930000000003,"y":372.1909999999999},{"x":831.5070000000004,"y":407.78599999999994},{"x":867.5930000000004,"y":541.6869999999999},{"x":874.4690000000004,"y":570.0589999999999},{"x":874.2100000000004,"y":576.1689999999999},{"x":869.5060000000004,"y":583.2179999999998},{"x":862.6070000000004,"y":588.0299999999999},{"x":859.3960000000004,"y":590.5939999999998},{"x":856.9680000000004,"y":595.4519999999998},{"x":856.7150000000004,"y":600.2849999999997},{"x":861.4110000000004,"y":616.2319999999997},{"x":863.4340000000004,"y":625.8079999999998},{"x":862.9680000000004,"y":633.4399999999997},{"x":858.4990000000004,"y":640.0719999999997},{"x":808.3810000000003,"y":675.7069999999997},{"x":794.3690000000004,"y":685.2219999999996},{"x":788.4810000000003,"y":688.3619999999996},{"x":780.2320000000003,"y":689.2759999999996},{"x":774.4400000000003,"y":685.9829999999996},{"x":771.1320000000003,"y":681.3259999999996},{"x":769.9750000000003,"y":675.5869999999995},{"x":770.7140000000003,"y":670.6179999999995},{"x":774.1310000000003,"y":665.4399999999995},{"x":781.3270000000003,"y":660.1489999999994},{"x":807.8410000000003,"y":643.4929999999995},{"x":811.2700000000003,"y":637.1529999999995},{"x":811.5950000000004,"y":630.4109999999995},{"x":807.4830000000004,"y":618.0789999999995},{"x":802.5330000000004,"y":600.6209999999995},{"x":797.2240000000004,"y":580.8529999999995},{"x":793.1340000000004,"y":558.9429999999995},{"x":787.4190000000003,"y":517.9749999999996},{"x":785.1100000000004,"y":505.9689999999996},{"x":781.2060000000004,"y":497.49899999999957},{"x":775.9420000000003,"y":491.6179999999996},{"x":766.8510000000003,"y":487.8839999999996},{"x":758.0820000000003,"y":486.47199999999964},{"x":747.6330000000004,"y":485.68999999999966},{"x":734.8280000000004,"y":487.07999999999964},{"x":724.6190000000005,"y":490.78899999999965},{"x":719.0030000000005,"y":495.39399999999966},{"x":713.9400000000005,"y":501.47199999999964},{"x":708.8030000000006,"y":508.9869999999996},{"x":696.6480000000006,"y":540.2469999999996},{"x":679.1880000000006,"y":581.5089999999996},{"x":672.4480000000005,"y":595.7609999999995},{"x":667.6200000000006,"y":600.9869999999995},{"x":661.0120000000006,"y":604.1659999999995},{"x":653.4080000000006,"y":604.0839999999995},{"x":646.0330000000006,"y":601.2629999999995},{"x":633.8900000000006,"y":595.5019999999995},{"x":625.9320000000006,"y":594.8659999999995},{"x":617.8590000000006,"y":597.4699999999996},{"x":615.0370000000006,"y":599.9869999999996},{"x":600.7220000000005,"y":620.1729999999997},{"x":581.9,"y":648.389},{"x":575.1709999999999,"y":652.797},{"x":568.1949999999999,"y":653.469},{"x":560.213,"y":649.532},{"x":536.468,"y":629.3470000000001},{"x":531.3199999999999,"y":621.7230000000001},{"x":529.4399999999999,"y":613.9820000000001},{"x":530.6679999999999,"y":602.7110000000001},{"x":538.1699999999998,"y":582.1850000000002},{"x":547.9699999999998,"y":564.4920000000002},{"x":565.5649999999998,"y":544.3790000000001},{"x":585.8079999999999,"y":526.6710000000002},{"x":616.0189999999999,"y":508.52800000000013},{"x":641.2829999999999,"y":495.3750000000001},{"x":658.959,"y":482.63600000000014},{"x":670.3009999999999,"y":466.61400000000015},{"x":680.482,"y":448.7520000000001},{"x":692.3689999999999,"y":417.4060000000001},{"x":694.8179999999999,"y":404.4000000000001},{"x":692.4809999999999,"y":391.3680000000001},{"x":684.1089999999999,"y":370.74200000000013},{"x":673.208,"y":341.85000000000014},{"x":670.2339999999999,"y":326.84200000000016},{"x":668.2879999999999,"y":311.29400000000015},{"x":663.334,"y":260.75300000000016},{"x":666.804,"y":256.77900000000017},{"x":670.331,"y":257.2780000000002},{"x":677.612,"y":258.5550000000002},{"x":681.001,"y":256.7370000000002},{"x":682.0649999999999,"y":253.9080000000002},{"x":680.419,"y":248.87600000000018},{"x":663.171,"y":220.235},{"x":663.171,"y":220.235},{"x":663.171,"y":220.235},{"x":663.171,"y":220.235}],[{"x":566.793,"y":376.639},{"x":580.339,"y":248.736},{"x":589.8290000000001,"y":240.51},{"x":584.8750000000001,"y":199.789},{"x":592.4350000000001,"y":159.59699999999998},{"x":608.4280000000001,"y":138.783},{"x":634.7860000000001,"y":124.64599999999999},{"x":689.056,"y":118.44999999999999},{"x":733.561,"y":116.42399999999999},{"x":743.909,"y":107.05799999999999},{"x":792.981,"y":91.70899999999999},{"x":814.312,"y":90.36699999999999},{"x":822.854,"y":102.904},{"x":826.243,"y":154.457},{"x":821.067,"y":160.89499999999998},{"x":750.71,"y":200.05499999999998},{"x":700.476,"y":241.33399999999997},{"x":647.026,"y":287.279},{"x":645.016,"y":307.709},{"x":638.7239999999999,"y":318.278},{"x":632.2429999999999,"y":324.40700000000004},{"x":629.156,"y":338.28600000000006},{"x":606.2159999999999,"y":524.539},{"x":585.9729999999998,"y":541.951},{"x":573.0279999999998,"y":536.3430000000001},{"x":560.1959999999998,"y":515.4340000000001},{"x":557.8439999999998,"y":477.40100000000007},{"x":566.793,"y":376.639},{"x":566.793,"y":376.639},{"x":566.793,"y":376.639},{"x":566.793,"y":376.639}],[{"x":890.598,"y":376.573},{"x":848.103,"y":85.173},{"x":846.8259999999999,"y":79.422},{"x":843.3089999999999,"y":77.185},{"x":831.8779999999998,"y":76.921},{"x":817.2689999999998,"y":73.99000000000001},{"x":805.9259999999998,"y":67.91900000000001},{"x":796.3399999999998,"y":58.01400000000001},{"x":789.6309999999999,"y":48.42900000000001},{"x":783.2409999999999,"y":44.275000000000006},{"x":774.0289999999999,"y":43.504000000000005},{"x":767.3419999999999,"y":47.487},{"x":763.4309999999999,"y":56.418},{"x":760.2339999999999,"y":93.162},{"x":761.8319999999999,"y":109.45700000000001},{"x":767.2649999999999,"y":127.989},{"x":784.8379999999999,"y":176.236},{"x":794.1039999999998,"y":209.46499999999997},{"x":797.6199999999998,"y":230.23399999999998},{"x":795.5869999999998,"y":248.63299999999998},{"x":789.6869999999998,"y":261.46799999999996},{"x":777.7319999999997,"y":271.412},{"x":762.7929999999998,"y":274.965},{"x":591.8519999999997,"y":267.29699999999997},{"x":532.1039999999997,"y":262.18499999999995},{"x":520.2809999999997,"y":258.98999999999995},{"x":356.68799999999976,"y":168.56599999999995},{"x":346.46299999999974,"y":164.41299999999995},{"x":337.85899999999975,"y":168.88599999999997},{"x":327.61099999999976,"y":183.26399999999995},{"x":299.81399999999974,"y":227.35799999999995},{"x":282.87899999999973,"y":263.78299999999996},{"x":279.20499999999976,"y":267.29699999999997},{"x":274.89199999999977,"y":266.33899999999994},{"x":227.28399999999976,"y":215.53599999999994},{"x":208.75199999999975,"y":201.15699999999995},{"x":193.41499999999976,"y":198.28199999999995},{"x":181.27299999999977,"y":200.83799999999997},{"x":169.77099999999976,"y":212.02099999999996},{"x":111.29899999999975,"y":324.48999999999995},{"x":82.32799999999975,"y":379.53},{"x":73.54899999999975,"y":393.779},{"x":64.50899999999976,"y":407.632},{"x":70.84399999999975,"y":422.814},{"x":81.55699999999975,"y":435.82300000000004},{"x":98.07999999999974,"y":450.57800000000003},{"x":105.72599999999974,"y":455.845},{"x":115.54099999999974,"y":458.10600000000005},{"x":116.41899999999974,"y":478.91200000000003},{"x":122.94199999999974,"y":494.591},{"x":133.69699999999975,"y":506.556},{"x":176.68999999999974,"y":541.124},{"x":198.44599999999974,"y":575.655},{"x":205.66299999999976,"y":577.87},{"x":211.94299999999976,"y":574.674},{"x":214.49999999999974,"y":567.9639999999999},{"x":237.82499999999973,"y":432.4889999999999},{"x":242.93699999999973,"y":400.5379999999999},{"x":254.11999999999972,"y":359.9599999999999},{"x":283.51599999999974,"y":285.83199999999994},{"x":287.02999999999975,"y":281.99799999999993},{"x":292.14299999999974,"y":282.95699999999994},{"x":313.23099999999977,"y":296.05699999999996},{"x":355.72699999999975,"y":331.52299999999997},{"x":399.81999999999977,"y":366.351},{"x":415.79599999999976,"y":372.101},{"x":441.6769999999998,"y":374.978},{"x":456.6949999999998,"y":375.296},{"x":459.25199999999984,"y":377.054},{"x":459.89099999999985,"y":382.64599999999996},{"x":460.21099999999984,"y":406.92799999999994},{"x":463.08599999999984,"y":416.8329999999999},{"x":470.1159999999998,"y":424.5009999999999},{"x":485.29299999999984,"y":428.6559999999999},{"x":587.2189999999998,"y":432.8089999999999},{"x":591.6929999999999,"y":431.05099999999993},{"x":593.7689999999999,"y":424.81999999999994},{"x":600.161,"y":391.59099999999995},{"x":603.675,"y":386.15899999999993},{"x":611.024,"y":382.00699999999995},{"x":666.78,"y":384.24299999999994},{"x":682.2769999999999,"y":385.5199999999999},{"x":687.709,"y":388.87499999999994},{"x":690.904,"y":396.7029999999999},{"x":691.223,"y":411.08199999999994},{"x":695.376,"y":421.94399999999996},{"x":706.239,"y":428.655},{"x":721.2570000000001,"y":431.53},{"x":852.5790000000001,"y":437.59999999999997},{"x":860.0050000000001,"y":433.67299999999994},{"x":886.767,"y":391.2699999999999},{"x":889.642,"y":383.92099999999994},{"x":890.598,"y":376.573},{"x":890.598,"y":376.573},{"x":890.598,"y":376.573},{"x":890.598,"y":376.573}],[{"x":456.22,"y":312.849},{"x":488.249,"y":289.519},{"x":555.8770000000001,"y":186.99200000000002},{"x":558.5060000000001,"y":174.025},{"x":528.1920000000001,"y":162.404},{"x":514.9710000000001,"y":170.291},{"x":477.8230000000001,"y":224.51999999999998},{"x":468.41300000000007,"y":240.94099999999997},{"x":471.29600000000005,"y":250.78399999999996},{"x":480.821,"y":256.30799999999994},{"x":480.821,"y":266.78599999999994},{"x":462.41900000000004,"y":291.78},{"x":436.76500000000004,"y":304.03499999999997},{"x":421.82900000000006,"y":279.29499999999996},{"x":346.13800000000003,"y":283.96899999999994},{"x":273.761,"y":255.59699999999992},{"x":204.59700000000004,"y":241.37299999999993},{"x":129.97200000000004,"y":254.93599999999992},{"x":125.41300000000004,"y":262.6449999999999},{"x":148.84500000000003,"y":323.36299999999994},{"x":143.35900000000004,"y":347.5559999999999},{"x":134.96400000000003,"y":351.7729999999999},{"x":62.130000000000024,"y":361.9969999999999},{"x":53.748000000000026,"y":367.7749999999999},{"x":49.163000000000025,"y":409.54599999999994},{"x":69.12700000000002,"y":455.86199999999997},{"x":84.78600000000003,"y":457.56399999999996},{"x":175.55300000000003,"y":413.876},{"x":181.687,"y":401.58299999999997},{"x":168.69500000000002,"y":375.09099999999995},{"x":189.53500000000003,"y":309.79999999999995},{"x":257.848,"y":324.126},{"x":276.44100000000003,"y":343.82399999999996},{"x":287.16,"y":355.92799999999994},{"x":456.22,"y":312.849},{"x":456.22,"y":312.849},{"x":456.22,"y":312.849}],[{"x":511.395,"y":487.942},{"x":504.633,"y":465.406},{"x":478.815,"y":371.584},{"x":480.586,"y":354.81},{"x":497.27000000000004,"y":304.939},{"x":494.84100000000007,"y":295.87100000000004},{"x":488.2200000000001,"y":291.514},{"x":479.6780000000001,"y":292.979},{"x":474.2170000000001,"y":298.87199999999996},{"x":465.1030000000001,"y":319.26399999999995},{"x":450.46000000000015,"y":348.88599999999997},{"x":436.91700000000014,"y":372.361},{"x":420.01200000000017,"y":391.007},{"x":404.8960000000002,"y":400.634},{"x":390.7160000000002,"y":406.023},{"x":366.0480000000002,"y":410.944},{"x":336.79200000000014,"y":410.99},{"x":317.14600000000013,"y":408.528},{"x":285.41700000000014,"y":400.731},{"x":256.95300000000015,"y":389.468},{"x":232.13700000000014,"y":373.571},{"x":214.77900000000014,"y":356.36600000000004},{"x":202.60500000000013,"y":339.73900000000003},{"x":164.47700000000015,"y":264.37},{"x":153.73200000000014,"y":254.51600000000002},{"x":137.84900000000013,"y":249.734},{"x":116.04300000000013,"y":251.467},{"x":93.88000000000014,"y":259.128},{"x":80.75300000000014,"y":269.462},{"x":73.75700000000015,"y":286.887},{"x":75.49500000000015,"y":298.827},{"x":81.67100000000015,"y":311.562},{"x":95.70100000000015,"y":325.70300000000003},{"x":121.03400000000015,"y":343.63100000000003},{"x":150.06300000000016,"y":362.574},{"x":177.73200000000017,"y":378.276},{"x":217.44900000000018,"y":397.547},{"x":266.9970000000002,"y":415.053},{"x":319.6860000000002,"y":429.775},{"x":380.18500000000023,"y":447.12899999999996},{"x":442.7770000000002,"y":463.62399999999997},{"x":537.3400000000003,"y":486.54999999999995},{"x":548.0110000000003,"y":485.99299999999994},{"x":579.4510000000004,"y":472.7699999999999},{"x":604.5690000000004,"y":456.4769999999999},{"x":648.8470000000004,"y":411.8999999999999},{"x":684.8200000000004,"y":370.4169999999999},{"x":708.4950000000003,"y":353.3359999999999},{"x":713.3960000000003,"y":353.5099999999999},{"x":728.8370000000003,"y":366.6709999999999},{"x":736.3880000000004,"y":366.7899999999999},{"x":749.7930000000003,"y":354.7019999999999},{"x":767.6470000000004,"y":342.5709999999999},{"x":779.1620000000004,"y":338.50499999999994},{"x":791.2430000000004,"y":336.96799999999996},{"x":806.7710000000004,"y":337.81199999999995},{"x":820.4070000000004,"y":342.36699999999996},{"x":848.5990000000004,"y":357.10599999999994},{"x":864.2840000000003,"y":368.90099999999995},{"x":876.6320000000003,"y":380.62699999999995},{"x":990.0730000000003,"y":502.7819999999999},{"x":1065.2080000000003,"y":581.0769999999999},{"x":1118.2110000000002,"y":638.3189999999998},{"x":1126.4200000000003,"y":650.5369999999998},{"x":1131.6930000000002,"y":662.4069999999998},{"x":1133.8250000000003,"y":677.0609999999998},{"x":1131.2430000000002,"y":697.3879999999998},{"x":1124.5280000000002,"y":715.2139999999998},{"x":1116.7910000000002,"y":722.9899999999998},{"x":1105.6050000000002,"y":728.3879999999998},{"x":1094.0310000000002,"y":728.0759999999998},{"x":1083.2120000000002,"y":724.5529999999998},{"x":1074.7060000000001,"y":717.9229999999998},{"x":1063.8110000000001,"y":703.9879999999998},{"x":1021.2170000000001,"y":646.6719999999998},{"x":1013.474,"y":640.7059999999998},{"x":1001.7510000000001,"y":636.3149999999998},{"x":989.8370000000001,"y":635.9439999999998},{"x":974.3000000000001,"y":638.0939999999998},{"x":963.4350000000001,"y":635.7959999999998},{"x":952.48,"y":629.0749999999998},{"x":946.471,"y":621.3049999999998},{"x":941.171,"y":611.5459999999998},{"x":930.4000000000001,"y":580.1919999999998},{"x":924.3620000000001,"y":567.6579999999998},{"x":915.143,"y":559.1369999999998},{"x":902.979,"y":553.2579999999998},{"x":892.3330000000001,"y":551.7039999999998},{"x":864.662,"y":552.7389999999998},{"x":852.028,"y":550.4759999999998},{"x":840.27,"y":544.3179999999998},{"x":831.5459999999999,"y":536.9409999999998},{"x":823.7159999999999,"y":526.5529999999998},{"x":820.71,"y":515.8},{"x":820.671,"y":507.15999999999997},{"x":824.3240000000001,"y":492.66099999999994},{"x":830.017,"y":474.65099999999995},{"x":833.6940000000001,"y":458.04299999999995},{"x":831.061,"y":442.24299999999994},{"x":826.445,"y":432.6069999999999},{"x":818.2120000000001,"y":422.4989999999999},{"x":802.5830000000001,"y":413.3559999999999},{"x":780.6410000000001,"y":405.0219999999999},{"x":758.787,"y":401.10899999999987},{"x":743.1370000000001,"y":400.94899999999984},{"x":723.658,"y":403.45099999999985},{"x":709.077,"y":409.12099999999987},{"x":694.73,"y":416.4179999999999},{"x":680.701,"y":425.8869999999999},{"x":666.542,"y":439.0329999999999},{"x":652.0450000000001,"y":458.9889999999999},{"x":614.291,"y":513.3679999999999},{"x":606.283,"y":517.7499999999999},{"x":534.554,"y":530.6279999999999},{"x":527.165,"y":528.5999999999999},{"x":522.155,"y":523.122},{"x":511.395,"y":487.942},{"x":511.395,"y":487.942},{"x":511.395,"y":487.942}],[{"x":1217.167,"y":801.019},{"x":1203.2179999999998,"y":795.817},{"x":1183.8149999999998,"y":786.973},{"x":1133.273,"y":763.639},{"x":1096.242,"y":759.446},{"x":1057.608,"y":778.221},{"x":1057.8509999999999,"y":778.017},{"x":1021.9259999999999,"y":838.7710000000001},{"x":1021.9179999999999,"y":838.8270000000001},{"x":1007.7499999999999,"y":886.6410000000001},{"x":981.3809999999999,"y":905.32},{"x":971.6949999999998,"y":908.7900000000001},{"x":971.6879999999999,"y":908.767},{"x":951.9389999999999,"y":917.8560000000001},{"x":925.7569999999998,"y":955.5870000000001},{"x":925.7489999999998,"y":955.6040000000002},{"x":905.7869999999998,"y":994.5310000000002},{"x":887.3849999999998,"y":1008.9640000000002},{"x":887.0669999999998,"y":1009.1680000000001},{"x":774.6279999999998,"y":1077.9840000000002},{"x":732.5479999999998,"y":1172.3400000000001},{"x":753.8399999999998,"y":1231.527},{"x":753.8569999999999,"y":1231.575},{"x":773.1409999999998,"y":1284.195},{"x":778.3899999999999,"y":1299.0549999999998},{"x":770.9899999999999,"y":1326.733},{"x":744.2639999999999,"y":1329.118},{"x":723.6979999999999,"y":1313.288},{"x":255.94,"y":939.242},{"x":239.013,"y":925.693},{"x":234.62800000000001,"y":905.7529999999999},{"x":254.822,"y":891.5089999999999},{"x":260.055,"y":888.9889999999999},{"x":435.021,"y":812.5719999999999},{"x":463.56100000000004,"y":808.5159999999998},{"x":481.99800000000005,"y":821.4159999999998},{"x":482.201,"y":821.6539999999999},{"x":555.6410000000001,"y":918.1739999999999},{"x":555.7710000000001,"y":918.3569999999999},{"x":573.306,"y":945.1319999999998},{"x":573.331,"y":945.1639999999999},{"x":617.761,"y":973.8919999999998},{"x":663.387,"y":982.3969999999998},{"x":663.41,"y":982.3889999999998},{"x":686.8679999999999,"y":974.4889999999998},{"x":686.924,"y":974.4559999999998},{"x":729.228,"y":954.7319999999997},{"x":729.284,"y":954.6989999999997},{"x":749.112,"y":937.0109999999997},{"x":763.083,"y":897.5589999999997},{"x":756.387,"y":854.6739999999998},{"x":756.338,"y":854.6109999999998},{"x":689.0079999999999,"y":736.7179999999997},{"x":688.9999999999999,"y":736.6939999999997},{"x":686.1079999999998,"y":718.6009999999998},{"x":699.6849999999998,"y":707.6729999999998},{"x":706.0039999999998,"y":707.0709999999998},{"x":731.3429999999998,"y":710.4719999999998},{"x":737.1309999999999,"y":711.9409999999998},{"x":756.6839999999999,"y":726.7009999999998},{"x":756.9349999999998,"y":726.9629999999997},{"x":777.6179999999998,"y":750.2649999999998},{"x":778.0739999999998,"y":750.8859999999997},{"x":789.0019999999998,"y":769.3289999999997},{"x":791.2279999999998,"y":775.7849999999997},{"x":795.1029999999998,"y":786.8889999999998},{"x":795.1689999999999,"y":787.0809999999998},{"x":802.2329999999998,"y":800.9149999999997},{"x":815.9069999999998,"y":807.0779999999997},{"x":816.1799999999998,"y":807.0919999999998},{"x":858.2589999999998,"y":809.7229999999997},{"x":859.5209999999997,"y":809.7899999999997},{"x":870.6039999999997,"y":804.3079999999998},{"x":870.3329999999997,"y":789.6929999999998},{"x":869.3729999999997,"y":787.9969999999997},{"x":789.1059999999998,"y":669.2749999999997},{"x":782.5069999999997,"y":662.0159999999997},{"x":778.2879999999997,"y":655.7299999999998},{"x":778.6899999999997,"y":645.2979999999998},{"x":785.9379999999998,"y":638.9509999999998},{"x":811.1739999999998,"y":634.8369999999998},{"x":868.6919999999998,"y":628.3649999999998},{"x":995.3859999999997,"y":615.3139999999997},{"x":995.3859999999997,"y":615.3139999999997},{"x":995.2729999999997,"y":615.3749999999998},{"x":1098.8419999999996,"y":602.5229999999998},{"x":1098.5129999999997,"y":602.6369999999998},{"x":1280.9629999999997,"y":572.3899999999999},{"x":1390.8559999999998,"y":548.3909999999998},{"x":1499.0549999999998,"y":522.0579999999999},{"x":1726.5569999999998,"y":450.2839999999999},{"x":1726.5889999999997,"y":450.2599999999999},{"x":1726.5979999999997,"y":450.2829999999999},{"x":1747.6719999999998,"y":448.9939999999999},{"x":1747.6719999999998,"y":448.9939999999999},{"x":1758.2979999999998,"y":456.4129999999999},{"x":1757.5359999999998,"y":485.7829999999999},{"x":1757.3449999999998,"y":486.0089999999999},{"x":1711.6709999999998,"y":538.8989999999999},{"x":1562.4119999999998,"y":719.3169999999999},{"x":1562.3159999999998,"y":719.4289999999999},{"x":1542.1129999999998,"y":732.5659999999998},{"x":1533.1499999999999,"y":735.2949999999998},{"x":1400.9629999999997,"y":763.4779999999998},{"x":1400.7229999999997,"y":763.5199999999999},{"x":1378.9729999999997,"y":760.7839999999999},{"x":1366.5559999999998,"y":743.8219999999999},{"x":1331.5779999999997,"y":719.9899999999999},{"x":1293.6029999999998,"y":740.8929999999999},{"x":1238.9319999999998,"y":793.9089999999999},{"x":1216.745,"y":800.8239999999998}],[{"x":207.674,"y":74.756},{"x":432.791,"y":106.277},{"x":519.23,"y":121.447},{"x":529.537,"y":132.333},{"x":526.855,"y":149.627},{"x":533.2180000000001,"y":158.411},{"x":537.797,"y":164.922},{"x":525.4,"y":203.206},{"x":517.208,"y":217.308},{"x":461.48199999999997,"y":306.793},{"x":429.541,"y":352.60900000000004},{"x":427.234,"y":357.98400000000004},{"x":441.108,"y":367.93800000000005},{"x":444.665,"y":374.47200000000004},{"x":439.858,"y":379.574},{"x":413.564,"y":397.846},{"x":409.473,"y":398.675},{"x":404.245,"y":395.584},{"x":403.041,"y":390.494},{"x":416.518,"y":297.53100000000006},{"x":412.28,"y":287.90600000000006},{"x":396.43899999999996,"y":277.78200000000004},{"x":383.99699999999996,"y":258.975},{"x":366.657,"y":241.442},{"x":329.74899999999997,"y":235.02200000000002},{"x":312.16999999999996,"y":221.818},{"x":307.09099999999995,"y":206.83},{"x":297.94399999999996,"y":198.80800000000002},{"x":262.78599999999994,"y":179.80900000000003},{"x":236.00299999999993,"y":171.44500000000002},{"x":141.34799999999993,"y":156.09300000000002},{"x":129.29099999999994,"y":144.71800000000002},{"x":125.54099999999994,"y":103.93500000000002},{"x":122.07599999999994,"y":96.93500000000002},{"x":116.38299999999994,"y":98.21900000000002},{"x":110.37199999999994,"y":105.71900000000002},{"x":101.45199999999994,"y":106.77600000000002},{"x":92.53199999999994,"y":102.40100000000002},{"x":73.12299999999993,"y":100.31000000000003},{"x":67.6,"y":93.472},{"x":68.975,"y":87.586},{"x":86.338,"y":64.984},{"x":111.746,"y":59.88199999999999},{"x":207.674,"y":74.756},{"x":207.674,"y":74.756},{"x":207.674,"y":74.756}],[{"x":77.156,"y":353.219},{"x":87.964,"y":353.29699999999997},{"x":96.406,"y":358.719},{"x":101.64500000000001,"y":377.603},{"x":113.703,"y":398.394},{"x":134.068,"y":414.865},{"x":157.156,"y":420.969},{"x":173.994,"y":418.489},{"x":203.721,"y":403.936},{"x":349.623,"y":330.811},{"x":391.324,"y":307.424},{"x":396.113,"y":302.322},{"x":396.408,"y":285.026},{"x":365.71700000000004,"y":236.791},{"x":348.43100000000004,"y":229.984},{"x":285.487,"y":235.723},{"x":204.40700000000004,"y":237.967},{"x":192.34000000000003,"y":229.733},{"x":181.90700000000004,"y":194.217},{"x":227.65700000000004,"y":144.467},{"x":233.21900000000005,"y":148.13600000000002},{"x":237.69000000000005,"y":173.45300000000003},{"x":242.68500000000006,"y":183.06400000000002},{"x":250.40800000000007,"y":186.84400000000002},{"x":265.6570000000001,"y":179.717},{"x":273.4090000000001,"y":169.622},{"x":273.9070000000001,"y":133.717},{"x":292.5950000000001,"y":103.21700000000001},{"x":302.3960000000001,"y":92.96500000000002},{"x":310.9080000000001,"y":94.96700000000001},{"x":310.6580000000001,"y":152.24800000000002},{"x":320.45000000000005,"y":172.52700000000002},{"x":341.658,"y":184.216},{"x":407.72,"y":175.654},{"x":422.57000000000005,"y":169.664},{"x":427.4080000000001,"y":162.21699999999998},{"x":426.53100000000006,"y":152.992},{"x":413.4080000000001,"y":119.96699999999998},{"x":405.34600000000006,"y":112.17399999999998},{"x":347.5,"y":76.5},{"x":338.108,"y":73.607},{"x":308.406,"y":72.719},{"x":190.156,"y":136.969},{"x":77.031,"y":299.469},{"x":67.668,"y":314.334},{"x":60.446000000000005,"y":333.716},{"x":60.812000000000005,"y":347.094},{"x":68.04,"y":352.384},{"x":77.156,"y":353.219},{"x":77.156,"y":353.219},{"x":77.156,"y":353.219}],[{"x":71.613,"y":369.268},{"x":82.523,"y":375.38699999999994},{"x":89.127,"y":375.86499999999995},{"x":109.78899999999999,"y":360.9789999999999},{"x":112.73999999999998,"y":349.41399999999993},{"x":68.37799999999999,"y":298.95899999999995},{"x":63.460999999999984,"y":290.16399999999993},{"x":62.91999999999999,"y":262.76699999999994},{"x":65.35899999999998,"y":253.09199999999993},{"x":84.41699999999997,"y":235.97799999999992},{"x":98.92899999999997,"y":247.48599999999993},{"x":110.96399999999997,"y":254.14599999999993},{"x":132.14299999999997,"y":239.99999999999994},{"x":135.99699999999999,"y":231.61199999999994},{"x":128.51799999999997,"y":216.16999999999993},{"x":90.792,"y":174.7},{"x":87.123,"y":163.59099999999998},{"x":102.66000000000001,"y":132.74599999999998},{"x":108.665,"y":124.07899999999998},{"x":123.415,"y":121.14399999999998},{"x":211.666,"y":219.551},{"x":226.232,"y":222.48899999999998},{"x":259.89300000000003,"y":191.438},{"x":267.872,"y":174.743},{"x":261.62600000000003,"y":150.765},{"x":264.379,"y":126.37099999999998},{"x":298.341,"y":105.76999999999998},{"x":330.396,"y":88.77599999999998},{"x":368.487,"y":53.72399999999998},{"x":364.879,"y":44.33499999999998},{"x":367.409,"y":38.53599999999998},{"x":391.931,"y":32.44399999999998},{"x":398.251,"y":24.755999999999982},{"x":389.58,"y":21.647999999999982},{"x":166,"y":80},{"x":134.14,"y":91.6},{"x":79.69999999999999,"y":106.526},{"x":74.22899999999998,"y":112.859},{"x":81.49399999999999,"y":121.725},{"x":82.68799999999999,"y":130.059},{"x":64.50299999999999,"y":155.703},{"x":45.31599999999999,"y":248.293},{"x":44.481999999999985,"y":309.082},{"x":55.47999999999998,"y":370.221},{"x":71.613,"y":369.268},{"x":71.613,"y":369.268},{"x":71.613,"y":369.268}]];
const multiplier = 1
const constants = {
MIN: 60 * multiplier,
AVERAGE: 140 * multiplier,
MAX: 194 * multiplier
}
export default constants
// https://d3js.org Version 4.12.0. Copyright 2017 Mike Bostock.
(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t,n){return[t,n]}function e(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Ra?10:o>=La?5:o>=qa?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Ra?10:o>=La?5:o>=qa?2:1)}function r(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Ra?i*=10:o>=La?i*=5:o>=qa&&(i*=2),n<t?-i:i}function i(t){return t.length}function o(){return!this.__axis}function u(t,n){function e(e){var p=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,d=null==u?n.tickFormat?n.tickFormat.apply(n,r):Ha:u,v=Math.max(a,0)+s,g=n.range(),_=+g[0]+.5,y=+g[g.length-1]+.5,m=(n.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}:function(t){return function(n){return+t(n)}})(n.copy()),x=e.selection?e.selection():e,b=x.selectAll(".domain").data([null]),w=x.selectAll(".tick").data(p,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),N=w.select("line"),k=w.select("text");b=b.merge(b.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),w=w.merge(T),N=N.merge(T.append("line").attr("stroke","#000").attr(l+"2",f*a)),k=k.merge(T.append("text").attr("fill","#000").attr(l,f*v).attr("dy",t===ja?"0em":t===Va?"0.71em":"0.32em")),e!==x&&(b=b.transition(e),w=w.transition(e),N=N.transition(e),k=k.transition(e),M=M.transition(e).attr("opacity",Wa).attr("transform",function(t){return isFinite(t=m(t))?h(t):this.getAttribute("transform")}),T.attr("opacity",Wa).attr("transform",function(t){var n=this.parentNode.__axis;return h(n&&isFinite(n=n(t))?n:m(t))})),M.remove(),b.attr("d",t===$a||t==Xa?"M"+f*c+","+_+"H0.5V"+y+"H"+f*c:"M"+_+","+f*c+"V0.5H"+y+"V"+f*c),w.attr("opacity",1).attr("transform",function(t){return h(m(t))}),N.attr(l+"2",f*a),k.attr(l,f*v).text(d),x.filter(o).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Xa?"start":t===$a?"end":"middle"),x.each(function(){this.__axis=m})}var r=[],i=null,u=null,a=6,c=6,s=3,f=t===ja||t===$a?-1:1,l=t===$a||t===Xa?"x":"y",h=t===ja||t===Va?function(t){return"translate("+(t+.5)+",0)"}:function(t){return"translate(0,"+(t+.5)+")"};return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=Ba.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:Ba.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:Ba.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(u=t,e):u},e.tickSize=function(t){return arguments.length?(a=c=+t,e):a},e.tickSizeInner=function(t){return arguments.length?(a=+t,e):a},e.tickSizeOuter=function(t){return arguments.length?(c=+t,e):c},e.tickPadding=function(t){return arguments.length?(s=+t,e):s},e}function a(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new c(r)}function c(t){this._=t}function s(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Za,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function f(){return new l}function l(){this._="@"+(++tc).toString(36)}function h(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function p(t,n,e){var r=oc.hasOwnProperty(t.type)?function(t,n,e){return t=h(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}:h;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function d(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function v(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function g(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function _(t,n){return t.style.getPropertyValue(n)||pc(t).getComputedStyle(t,null).getPropertyValue(n)}function y(t){return t.trim().split(/^|\s+/)}function m(t){return t.classList||new x(t)}function x(t){this._node=t,this._names=y(t.getAttribute("class")||"")}function b(t,n){for(var e=m(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function w(t,n){for(var e=m(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function M(){this.nextSibling&&this.parentNode.appendChild(this)}function T(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function N(){var t=this.parentNode;t&&t.removeChild(this)}function k(t,n,e){var r=pc(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function S(t,n){this._groups=t,this._parents=n}function E(){return new S([[document.documentElement]],dc)}function A(){t.event.stopImmediatePropagation()}function C(t,n){var e=t.document.documentElement,r=vc(t).on("dragstart.drag",null);n&&(r.on("click.drag",_c,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function z(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function P(){return!t.event.button}function R(){return this.parentNode}function L(n){return null==n?{x:t.event.x,y:t.event.y}:n}function q(){return"ontouchstart"in this}function D(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function U(){}function O(t){var n;return t=(t+"").trim().toLowerCase(),(n=Tc.exec(t))?(n=parseInt(n[1],16),new H(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Nc.exec(t))?F(parseInt(n[1],16)):(n=kc.exec(t))?new H(n[1],n[2],n[3],1):(n=Sc.exec(t))?new H(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ec.exec(t))?I(n[1],n[2],n[3],n[4]):(n=Ac.exec(t))?I(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Cc.exec(t))?j(n[1],n[2]/100,n[3]/100,1):(n=zc.exec(t))?j(n[1],n[2]/100,n[3]/100,n[4]):Pc.hasOwnProperty(t)?F(Pc[t]):"transparent"===t?new H(NaN,NaN,NaN,0):null}function F(t){return new H(t>>16&255,t>>8&255,255&t,1)}function I(t,n,e,r){return r<=0&&(t=n=e=NaN),new H(t,n,e,r)}function Y(t){return t instanceof U||(t=O(t)),t?(t=t.rgb(),new H(t.r,t.g,t.b,t.opacity)):new H}function B(t,n,e,r){return 1===arguments.length?Y(t):new H(t,n,e,null==r?1:r)}function H(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function j(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new V(t,n,e,r)}function X(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof V)return new V(t.h,t.s,t.l,t.opacity);if(t instanceof U||(t=O(t)),!t)return new V;if(t instanceof V)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new V(u,a,c,t.opacity)}(t):new V(t,n,e,null==r?1:r)}function V(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function $(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function W(t){if(t instanceof G)return new G(t.l,t.a,t.b,t.opacity);if(t instanceof et){var n=t.h*Rc;return new G(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof H||(t=Y(t));var e=tt(t.r),r=tt(t.g),i=tt(t.b),o=Q((.4124564*e+.3575761*r+.1804375*i)/qc),u=Q((.2126729*e+.7151522*r+.072175*i)/Dc);return new G(116*u-16,500*(o-u),200*(u-Q((.0193339*e+.119192*r+.9503041*i)/Uc)),t.opacity)}function Z(t,n,e,r){return 1===arguments.length?W(t):new G(t,n,e,null==r?1:r)}function G(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Q(t){return t>Yc?Math.pow(t,1/3):t/Ic+Oc}function J(t){return t>Fc?t*t*t:Ic*(t-Oc)}function K(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function tt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.c,t.l,t.opacity);t instanceof G||(t=W(t));var n=Math.atan2(t.b,t.a)*Lc;return new et(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new et(t,n,e,null==r?1:r)}function et(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function rt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof it)return new it(t.h,t.s,t.l,t.opacity);t instanceof H||(t=Y(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Zc*r+$c*n-Wc*e)/(Zc+$c-Wc),o=r-i,u=(Vc*(e-i)-jc*o)/Xc,a=Math.sqrt(u*u+o*o)/(Vc*i*(1-i)),c=a?Math.atan2(u,o)*Lc-120:NaN;return new it(c<0?c+360:c,a,i,t.opacity)}(t):new it(t,n,e,null==r?1:r)}function it(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ot(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function ut(t,n){return function(e){return t+e*n}}function at(t,n){var e=n-t;return e?ut(t,e>180||e<-180?e-360*Math.round(e/360):e):is(isNaN(t)?n:t)}function ct(t){return 1==(t=+t)?st:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):is(isNaN(n)?e:n)}}function st(t,n){var e=n-t;return e?ut(t,e):is(isNaN(t)?n:t)}function ft(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=B(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}function lt(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,u){var a=[],c=[];return o=t(o),u=t(u),function(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push("translate(",null,n,null,e);a.push({i:c-4,x:fs(t,i)},{i:c-2,x:fs(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}(o.translateX,o.translateY,u.translateX,u.translateY,a,c),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:fs(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,u.rotate,a,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:fs(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,u.skewX,a,c),function(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:fs(t,e)},{i:a-2,x:fs(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,u.scaleX,u.scaleY,a,c),o=u=null,function(t){for(var n,e=-1,r=c.length;++e<r;)a[(n=c[e]).i]=n.x(t);return a.join("")}}}function ht(t){return((t=Math.exp(t))+1/t)/2}function pt(t){return function(n,e){var r=t((n=X(n)).h,(e=X(e)).h),i=st(n.s,e.s),o=st(n.l,e.l),u=st(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function dt(t){return function(n,e){var r=t((n=nt(n)).h,(e=nt(e)).h),i=st(n.c,e.c),o=st(n.l,e.l),u=st(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function vt(t){return function n(e){function r(n,r){var i=t((n=rt(n)).h,(r=rt(r)).h),o=st(n.s,r.s),u=st(n.l,r.l),a=st(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+""}}return e=+e,r.gamma=n,r}(1)}function gt(){return qs||(Os(_t),qs=Us.now()+Ds)}function _t(){qs=0}function yt(){this._call=this._time=this._next=null}function mt(t,n,e){var r=new yt;return r.restart(t,n,e),r}function xt(){gt(),++Cs;for(var t,n=ts;n;)(t=qs-n._time)>=0&&n._call.call(null,t),n=n._next;--Cs}function bt(){qs=(Ls=Us.now())+Ds,Cs=zs=0;try{xt()}finally{Cs=0,function(){var t,n,e=ts,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ts=n);ns=t,Mt(r)}(),qs=0}}function wt(){var t=Us.now(),n=t-Ls;n>Rs&&(Ds-=n,Ls=t)}function Mt(t){if(!Cs){zs&&(zs=clearTimeout(zs));t-qs>24?(t<1/0&&(zs=setTimeout(bt,t-Us.now()-Ds)),Ps&&(Ps=clearInterval(Ps))):(Ps||(Ls=Us.now(),Ps=setInterval(wt,Rs)),Cs=1,Os(bt))}}function Tt(t,n){var e=kt(t,n);if(e.state>Bs)throw new Error("too late; already scheduled");return e}function Nt(t,n){var e=kt(t,n);if(e.state>js)throw new Error("too late; already started");return e}function kt(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function St(t,n,e){var r=t._id;return t.each(function(){var t=Nt(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return kt(t,r).value[n]}}function Et(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function At(t){return E().transition(t)}function Ct(){return++Ks}function zt(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function Pt(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function Rt(t){return(1-Math.cos(of*t))/2}function Lt(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function qt(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function Dt(t){return(t=+t)<af?gf*t*t:t<sf?gf*(t-=cf)*t+ff:t<hf?gf*(t-=lf)*t+pf:gf*(t-=df)*t+vf}function Ut(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return Tf.time=gt(),Tf;return e}function Ot(){t.event.stopImmediatePropagation()}function Ft(t){return{type:t}}function It(){return!t.event.button}function Yt(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Bt(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Ht(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function jt(n){function e(t){var e=t.property("__brush",c).selectAll(".overlay").data([Ft("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Df.overlay).merge(e).each(function(){var t=Bt(this).extent;vc(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Ft("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Df.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return Df[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function r(){var t=vc(this),n=Bt(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-p/2:n[0][0]-p/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-p/2:n[0][1]-p/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+p:p}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+p:p})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=cc(w);!q||x||b||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?b=!0:x=!0),U=t,m=!0,Ef(),o()}function o(){var t;switch(_=U[0]-D[0],y=U[1]-D[1],T){case Cf:case Af:N&&(_=Math.max(z-a,Math.min(R-p,_)),c=a+_,d=p+_),k&&(y=Math.max(P-f,Math.min(L-v,y)),h=f+y,g=v+y);break;case zf:N<0?(_=Math.max(z-a,Math.min(R-a,_)),c=a+_,d=p):N>0&&(_=Math.max(z-p,Math.min(R-p,_)),c=a,d=p+_),k<0?(y=Math.max(P-f,Math.min(L-f,y)),h=f+y,g=v):k>0&&(y=Math.max(P-v,Math.min(L-v,y)),h=f,g=v+y);break;case Pf:N&&(c=Math.max(z,Math.min(R,a-_*N)),d=Math.max(z,Math.min(R,p+_*N))),k&&(h=Math.max(P,Math.min(L,f-y*k)),g=Math.max(P,Math.min(L,v+y*k)))}d<c&&(N*=-1,t=a,a=p,p=t,t=c,c=d,d=t,M in Uf&&I.attr("cursor",Df[M=Uf[M]])),g<h&&(k*=-1,t=f,f=v,v=t,t=h,h=g,g=t,M in Of&&I.attr("cursor",Df[M=Of[M]])),S.selection&&(A=S.selection),x&&(c=A[0][0],d=A[1][0]),b&&(h=A[0][1],g=A[1][1]),A[0][0]===c&&A[0][1]===h&&A[1][0]===d&&A[1][1]===g||(S.selection=[[c,h],[d,g]],r.call(w),O.brush())}function u(){if(Ot(),t.event.touches){if(t.event.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500),F.on("touchmove.brush touchend.brush touchcancel.brush",null)}else C(t.event.view,m),Y.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);F.attr("pointer-events","all"),I.attr("cursor",Df.overlay),S.selection&&(A=S.selection),Ht(A)&&(S.selection=null,r.call(w)),O.end()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return Ef()}else if(s)return;if(l.apply(this,arguments)){var a,c,f,h,p,d,v,g,_,y,m,x,b,w=this,M=t.event.target.__data__.type,T="selection"===(t.event.metaKey?M="overlay":M)?Af:t.event.altKey?Pf:zf,N=n===Lf?null:Ff[M],k=n===Rf?null:If[M],S=Bt(w),E=S.extent,A=S.selection,z=E[0][0],P=E[0][1],R=E[1][0],L=E[1][1],q=N&&k&&t.event.shiftKey,D=cc(w),U=D,O=i(w,arguments).beforestart();"overlay"===M?S.selection=A=[[a=n===Lf?z:D[0],f=n===Rf?P:D[1]],[p=n===Lf?R:a,v=n===Rf?L:f]]:(a=A[0][0],f=A[0][1],p=A[1][0],v=A[1][1]),c=a,h=f,d=p,g=v;var F=vc(w).attr("pointer-events","none"),I=F.selectAll(".overlay").attr("cursor",Df[M]);if(t.event.touches)F.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",u,!0);else{var Y=vc(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:q=N&&k;break;case 18:T===zf&&(N&&(p=d-_*N,a=c+_*N),k&&(v=g-y*k,f=h+y*k),T=Pf,o());break;case 32:T!==zf&&T!==Pf||(N<0?p=d-_:N>0&&(a=c-_),k<0?v=g-y:k>0&&(f=h-y),T=Cf,I.attr("cursor",Df.selection),o());break;default:return}Ef()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:q&&(x=b=q=!1,o());break;case 18:T===Pf&&(N<0?p=d:N>0&&(a=c),k<0?v=g:k>0&&(f=h),T=zf,o());break;case 32:T===Cf&&(t.event.altKey?(N&&(p=d-_*N,a=c+_*N),k&&(v=g-y*k,f=h+y*k),T=Pf):(N<0?p=d:N>0&&(a=c),k<0?v=g:k>0&&(f=h),T=zf),I.attr("cursor",Df[M]),o());break;default:return}Ef()},!0).on("mousemove.brush",e,!0).on("mouseup.brush",u,!0);yc(t.event.view)}Ot(),Gs(w),r.call(w),O.start()}}function c(){var t=this.__brush||{selection:null};return t.extent=f.apply(this,arguments),t.dim=n,t}var s,f=Yt,l=It,h=a(e,"start","brush","end"),p=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){u.selection=1===t&&Ht(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input("function"==typeof e?e.apply(this,arguments):e,u.extent),f=vs(c,s);return c&&s?t:t(1)}):t.each(function(){var t=arguments,o=this.__brush,u=n.input("function"==typeof e?e.apply(this,t):e,o.extent),a=i(this,t).beforestart();Gs(this),o.selection=null==u||Ht(u)?null:u,r.call(this),a.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){d(new Sf(e,t,n.output(this.state.selection)),h.apply,h,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(f="function"==typeof t?t:kf([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):f},e.filter=function(t){return arguments.length?(l="function"==typeof t?t:kf(!!t),e):l},e.handleSize=function(t){return arguments.length?(p=+t,e):p},e.on=function(){var t=h.on.apply(h,arguments);return t===h?e:t},e}function Xt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Vt(){return new Xt}function $t(t){return t.source}function Wt(t){return t.target}function Zt(t){return t.radius}function Gt(t){return t.startAngle}function Qt(t){return t.endAngle}function Jt(){}function Kt(t,n){var e=new Jt;if(t instanceof Jt)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function tn(){return{}}function nn(t,n,e){t[n]=e}function en(){return Kt()}function rn(t,n,e){t.set(n,e)}function on(){}function un(t,n){var e=new on;if(t instanceof on)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function an(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function cn(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,g=t._y0,_=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+_)/2))?v=o:_=o,(f=e>=(u=(g+y)/2))?g=u:y=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+_)/2))?v=o:_=o,(f=e>=(u=(g+y)/2))?g=u:y=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function sn(t,n,e){var r=new fn(null==n?function(t){return t[0]}:n,null==e?function(t){return t[1]}:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function fn(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function ln(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function hn(t){return t.x+t.vx}function pn(t){return t.y+t.vy}function dn(t){return t.index}function vn(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function gn(t){return t.x}function _n(t){return t.y}function yn(t){return new mn(t)}function mn(t){if(!(n=kl.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Nl[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function xn(n){return Sl=Cl(n),t.format=Sl.format,t.formatPrefix=Sl.formatPrefix,Sl}function bn(){this.reset()}function wn(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function Mn(t){return t>1?0:t<-1?dh:Math.acos(t)}function Tn(t){return t>1?vh:t<-1?-vh:Math.asin(t)}function Nn(t){return(t=Eh(t/2))*t}function kn(){}function Sn(t,n){t&&Rh.hasOwnProperty(t.type)&&Rh[t.type](t,n)}function En(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function An(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)En(t[e],n,1);n.polygonEnd()}function Cn(){Uh.point=Pn}function zn(){Rn(ql,Dl)}function Pn(t,n){Uh.point=Rn,ql=t,Dl=n,Ul=t*=mh,Ol=Mh(n=(n*=mh)/2+gh),Fl=Eh(n)}function Rn(t,n){n=(n*=mh)/2+gh;var e=(t*=mh)-Ul,r=e>=0?1:-1,i=r*e,o=Mh(n),u=Eh(n),a=Fl*u,c=Ol*o+a*Mh(i),s=a*r*Eh(i);qh.add(wh(s,c)),Ul=t,Ol=o,Fl=u}function Ln(t){return[wh(t[1],t[0]),Tn(t[2])]}function qn(t){var n=t[0],e=t[1],r=Mh(e);return[r*Mh(n),r*Eh(n),Eh(e)]}function Dn(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Un(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function On(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Fn(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function In(t){var n=Ch(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Yn(t,n){Wl.push(Zl=[Il=t,Bl=t]),n<Yl&&(Yl=n),n>Hl&&(Hl=n)}function Bn(t,n){var e=qn([t*mh,n*mh]);if($l){var r=Un($l,e),i=Un([r[1],-r[0],0],r);In(i),i=Ln(i);var o,u=t-jl,a=u>0?1:-1,c=i[0]*yh*a,s=xh(u)>180;s^(a*jl<c&&c<a*t)?(o=i[1]*yh)>Hl&&(Hl=o):(c=(c+360)%360-180,s^(a*jl<c&&c<a*t)?(o=-i[1]*yh)<Yl&&(Yl=o):(n<Yl&&(Yl=n),n>Hl&&(Hl=n))),s?t<jl?Wn(Il,t)>Wn(Il,Bl)&&(Bl=t):Wn(t,Bl)>Wn(Il,Bl)&&(Il=t):Bl>=Il?(t<Il&&(Il=t),t>Bl&&(Bl=t)):t>jl?Wn(Il,t)>Wn(Il,Bl)&&(Bl=t):Wn(t,Bl)>Wn(Il,Bl)&&(Il=t)}else Wl.push(Zl=[Il=t,Bl=t]);n<Yl&&(Yl=n),n>Hl&&(Hl=n),$l=e,jl=t}function Hn(){Fh.point=Bn}function jn(){Zl[0]=Il,Zl[1]=Bl,Fh.point=Yn,$l=null}function Xn(t,n){if($l){var e=t-jl;Oh.add(xh(e)>180?e+(e>0?360:-360):e)}else Xl=t,Vl=n;Uh.point(t,n),Bn(t,n)}function Vn(){Uh.lineStart()}function $n(){Xn(Xl,Vl),Uh.lineEnd(),xh(Oh)>ph&&(Il=-(Bl=180)),Zl[0]=Il,Zl[1]=Bl,$l=null}function Wn(t,n){return(n-=t)<0?n+360:n}function Zn(t,n){return t[0]-n[0]}function Gn(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Qn(t,n){t*=mh;var e=Mh(n*=mh);Jn(e*Mh(t),e*Eh(t),Eh(n))}function Jn(t,n,e){Jl+=(t-Jl)/++Gl,Kl+=(n-Kl)/Gl,th+=(e-th)/Gl}function Kn(){Ih.point=te}function te(t,n){t*=mh;var e=Mh(n*=mh);sh=e*Mh(t),fh=e*Eh(t),lh=Eh(n),Ih.point=ne,Jn(sh,fh,lh)}function ne(t,n){t*=mh;var e=Mh(n*=mh),r=e*Mh(t),i=e*Eh(t),o=Eh(n),u=wh(Ch((u=fh*o-lh*i)*u+(u=lh*r-sh*o)*u+(u=sh*i-fh*r)*u),sh*r+fh*i+lh*o);Ql+=u,nh+=u*(sh+(sh=r)),eh+=u*(fh+(fh=i)),rh+=u*(lh+(lh=o)),Jn(sh,fh,lh)}function ee(){Ih.point=Qn}function re(){Ih.point=oe}function ie(){ue(ah,ch),Ih.point=Qn}function oe(t,n){ah=t,ch=n,t*=mh,n*=mh,Ih.point=ue;var e=Mh(n);sh=e*Mh(t),fh=e*Eh(t),lh=Eh(n),Jn(sh,fh,lh)}function ue(t,n){t*=mh;var e=Mh(n*=mh),r=e*Mh(t),i=e*Eh(t),o=Eh(n),u=fh*o-lh*i,a=lh*r-sh*o,c=sh*i-fh*r,s=Ch(u*u+a*a+c*c),f=Tn(s),l=s&&-f/s;ih+=l*u,oh+=l*a,uh+=l*c,Ql+=f,nh+=f*(sh+(sh=r)),eh+=f*(fh+(fh=i)),rh+=f*(lh+(lh=o)),Jn(sh,fh,lh)}function ae(t,n){return[t>dh?t-_h:t<-dh?t+_h:t,n]}function ce(t,n,e){return(t%=_h)?n||e?Bh(fe(t),le(n,e)):fe(t):n||e?le(n,e):ae}function se(t){return function(n,e){return n+=t,[n>dh?n-_h:n<-dh?n+_h:n,e]}}function fe(t){var n=se(t);return n.invert=se(-t),n}function le(t,n){function e(t,n){var e=Mh(n),a=Mh(t)*e,c=Eh(t)*e,s=Eh(n),f=s*r+a*i;return[wh(c*o-f*u,a*r-s*i),Tn(f*o+c*u)]}var r=Mh(t),i=Eh(t),o=Mh(n),u=Eh(n);return e.invert=function(t,n){var e=Mh(n),a=Mh(t)*e,c=Eh(t)*e,s=Eh(n),f=s*o-c*u;return[wh(c*o+s*u,a*r+f*i),Tn(f*r-a*i)]},e}function he(t,n,e,r,i,o){if(e){var u=Mh(n),a=Eh(n),c=r*e;null==i?(i=n+r*_h,o=n-c/2):(i=pe(u,i),o=pe(u,o),(r>0?i<o:i>o)&&(i+=r*_h));for(var s,f=i;r>0?f>o:f<o;f-=c)s=Ln([u,-a*Mh(f),-a*Eh(f)]),t.point(s[0],s[1])}}function pe(t,n){(n=qn(n))[0]-=t,In(n);var e=Mn(-n[1]);return((-n[2]<0?-e:e)+_h-ph)%_h}function de(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function ve(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function ge(t){return t.length>1}function _e(t,n){return((t=t.x)[0]<0?t[1]-vh-ph:vh-t[1])-((n=n.x)[0]<0?n[1]-vh-ph:vh-n[1])}function ye(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0)do{s.point(0===f||3===f?t:e,f>1?r:n)}while((f=(f+a+4)%4)!==l);else s.point(o[0],o[1])}function u(r,i){return xh(r[0]-t)<ph?i>0?0:3:xh(r[0]-e)<ph?i>0?2:1:xh(r[1]-n)<ph?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&b.point(t,n)}function s(o,u){var a=i(o,u);if(l&&h.push([o,u]),m)p=o,d=u,v=a,m=!1,a&&(b.lineStart(),b.point(o,u));else if(a&&y)b.point(o,u);else{var c=[g=Math.max(lp,Math.min(fp,g)),_=Math.max(lp,Math.min(fp,_))],s=[o=Math.max(lp,Math.min(fp,o)),u=Math.max(lp,Math.min(fp,u))];sp(c,s,t,n,e,r)?(y||(b.lineStart(),b.point(c[0],c[1])),b.point(s[0],s[1]),a||b.lineEnd(),x=!1):a&&(b.lineStart(),b.point(o,u),x=!1)}g=o,_=u,y=a}var f,l,h,p,d,v,g,_,y,m,x,b=u,w=np(),M={point:c,lineStart:function(){M.point=s,l&&l.push(h=[]),m=!0,y=!1,g=_=NaN},lineEnd:function(){f&&(s(p,d),v&&y&&w.rejoin(),f.push(w.result())),M.point=c,y&&b.lineEnd()},polygonStart:function(){b=w,f=[],l=[],x=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=l.length;e<i;++e)for(var o,u,a=l[e],c=1,s=a.length,f=a[0],h=f[0],p=f[1];c<s;++c)o=h,u=p,h=(f=a[c])[0],p=f[1],u<=r?p>r&&(h-o)*(r-u)>(p-u)*(t-o)&&++n:p<=r&&(h-o)*(r-u)<(p-u)*(t-o)&&--n;return n}(),e=x&&n,i=(f=Fa(f)).length;(e||i)&&(u.polygonStart(),e&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),i&&rp(f,a,n,o,u),u.polygonEnd()),b=u,f=l=h=null}};return M}}function me(){pp.point=pp.lineEnd=kn}function xe(t,n){Hh=t*=mh,jh=Eh(n*=mh),Xh=Mh(n),pp.point=be}function be(t,n){t*=mh;var e=Eh(n*=mh),r=Mh(n),i=xh(t-Hh),o=Mh(i),u=r*Eh(i),a=Xh*e-jh*r*o,c=jh*e+Xh*r*o;hp.add(wh(Ch(u*u+a*a),c)),Hh=t,jh=e,Xh=r}function we(t,n){return!(!t||!mp.hasOwnProperty(t.type))&&mp[t.type](t,n)}function Me(t,n){return 0===_p(t,n)}function Te(t,n){var e=_p(t[0],t[1]);return _p(t[0],n)+_p(n,t[1])<=e+ph}function Ne(t,n){return!!op(t.map(ke),Se(n))}function ke(t){return(t=t.map(Se)).pop(),t}function Se(t){return[t[0]*mh,t[1]*mh]}function Ee(t,n,e){var r=Pa(t,n-ph,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function Ae(t,n,e){var r=Pa(t,n-ph,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Ce(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Pa(Th(o/g)*g,i,g).map(h).concat(Pa(Th(s/_)*_,c,_).map(p)).concat(Pa(Th(r/d)*d,e,d).filter(function(t){return xh(t%g)>ph}).map(f)).concat(Pa(Th(a/v)*v,u,v).filter(function(t){return xh(t%_)>ph}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,g=90,_=360,y=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(y)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(y)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(g=+n[0],_=+n[1],t):[g,_]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(y=+n,f=Ee(a,u,90),l=Ae(r,e,y),h=Ee(s,c,90),p=Ae(o,i,y),t):y},t.extentMajor([[-180,-90+ph],[180,90-ph]]).extentMinor([[-180,-80-ph],[180,80+ph]])}function ze(){Mp.point=Pe}function Pe(t,n){Mp.point=Re,Vh=Wh=t,$h=Zh=n}function Re(t,n){wp.add(Zh*t-Wh*n),Wh=t,Zh=n}function Le(){Re(Vh,$h)}function qe(t,n){Ap+=t,Cp+=n,++zp}function De(){Op.point=Ue}function Ue(t,n){Op.point=Oe,qe(Jh=t,Kh=n)}function Oe(t,n){var e=t-Jh,r=n-Kh,i=Ch(e*e+r*r);Pp+=i*(Jh+t)/2,Rp+=i*(Kh+n)/2,Lp+=i,qe(Jh=t,Kh=n)}function Fe(){Op.point=qe}function Ie(){Op.point=Be}function Ye(){He(Gh,Qh)}function Be(t,n){Op.point=He,qe(Gh=Jh=t,Qh=Kh=n)}function He(t,n){var e=t-Jh,r=n-Kh,i=Ch(e*e+r*r);Pp+=i*(Jh+t)/2,Rp+=i*(Kh+n)/2,Lp+=i,qp+=(i=Kh*t-Jh*n)*(Jh+t),Dp+=i*(Kh+n),Up+=3*i,qe(Jh=t,Kh=n)}function je(t){this._context=t}function Xe(t,n){Xp.point=Ve,Ip=Bp=t,Yp=Hp=n}function Ve(t,n){Bp-=t,Hp-=n,jp.add(Ch(Bp*Bp+Hp*Hp)),Bp=t,Hp=n}function $e(){this._string=[]}function We(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Ze(t){return function(n){var e=new Ge;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ge(){}function Qe(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Lh(e,t.stream(Ep)),n(Ep.result()),null!=r&&t.clipExtent(r),t}function Je(t,n,e){return Qe(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),u=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,a=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([u,a])},e)}function Ke(t,n,e){return Je(t,[[0,0],n],e)}function tr(t,n,e){return Qe(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,u=-i*e[0][1];t.scale(150*i).translate([o,u])},e)}function nr(t,n,e){return Qe(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],u=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,u])},e)}function er(t){return rr(function(){return t})()}function rr(t){function n(t){return t=s(t[0]*mh,t[1]*mh),[t[0]*v+u,a-t[1]*v]}function e(t,n){return t=o(t,n),[t[0]*v+u,a-t[1]*v]}function r(){s=Bh(c=ce(x,b,w),o);var t=o(y,m);return u=g-t[0]*v,a=_+t[1]*v,i()}function i(){return p=d=null,n}var o,u,a,c,s,f,l,h,p,d,v=150,g=480,_=250,y=0,m=0,x=0,b=0,w=0,M=null,T=ap,N=null,k=xp,S=.5,E=Wp(e,S);return n.stream=function(t){return p&&d===t?p:p=Zp(function(t){return Ze({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(c)(T(E(k(d=t)))))},n.preclip=function(t){return arguments.length?(T=t,M=void 0,i()):T},n.postclip=function(t){return arguments.length?(k=t,N=f=l=h=null,i()):k},n.clipAngle=function(t){return arguments.length?(T=+t?cp(M=t*mh):(M=null,ap),i()):M*yh},n.clipExtent=function(t){return arguments.length?(k=null==t?(N=f=l=h=null,xp):ye(N=+t[0][0],f=+t[0][1],l=+t[1][0],h=+t[1][1]),i()):null==N?null:[[N,f],[l,h]]},n.scale=function(t){return arguments.length?(v=+t,r()):v},n.translate=function(t){return arguments.length?(g=+t[0],_=+t[1],r()):[g,_]},n.center=function(t){return arguments.length?(y=t[0]%360*mh,m=t[1]%360*mh,r()):[y*yh,m*yh]},n.rotate=function(t){return arguments.length?(x=t[0]%360*mh,b=t[1]%360*mh,w=t.length>2?t[2]%360*mh:0,r()):[x*yh,b*yh,w*yh]},n.precision=function(t){return arguments.length?(E=Wp(e,S=t*t),i()):Ch(S)},n.fitExtent=function(t,e){return Je(n,t,e)},n.fitSize=function(t,e){return Ke(n,t,e)},n.fitWidth=function(t,e){return tr(n,t,e)},n.fitHeight=function(t,e){return nr(n,t,e)},function(){return o=t.apply(this,arguments),n.invert=o.invert&&function(t){return(t=s.invert((t[0]-u)/v,(a-t[1])/v))&&[t[0]*yh,t[1]*yh]},r()}}function ir(t){var n=0,e=dh/3,r=rr(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*mh,e=t[1]*mh):[n*yh,e*yh]},i}function or(t,n){function e(t,n){var e=Ch(o-2*i*Eh(n))/i;return[e*Eh(t*=i),u-e*Mh(t)]}var r=Eh(t),i=(r+Eh(n))/2;if(xh(i)<ph)return function(t){function n(t,n){return[t*e,Eh(n)/e]}var e=Mh(t);return n.invert=function(t,n){return[t/e,Tn(n*e)]},n}(t);var o=1+r*(2*i-r),u=Ch(o)/i;return e.invert=function(t,n){var e=u-n;return[wh(t,xh(e))/i*Ah(e),Tn((o-(t*t+e*e)*i*i)/(2*i))]},e}function ur(t){return function(n,e){var r=Mh(n),i=Mh(e),o=t(r*i);return[o*i*Eh(n),o*Eh(e)]}}function ar(t){return function(n,e){var r=Ch(n*n+e*e),i=t(r),o=Eh(i),u=Mh(i);return[wh(n*o,r*u),Tn(r&&e*o/r)]}}function cr(t,n){return[t,kh(zh((vh+n)/2))]}function sr(t){function n(){var n=dh*a(),u=o(tp(o.rotate()).invert([0,0]));return s(null==f?[[u[0]-n,u[1]-n],[u[0]+n,u[1]+n]]:t===cr?[[Math.max(u[0]-n,f),e],[Math.min(u[0]+n,r),i]]:[[f,Math.max(u[1]-n,e)],[r,Math.min(u[1]+n,i)]])}var e,r,i,o=er(t),u=o.center,a=o.scale,c=o.translate,s=o.clipExtent,f=null;return o.scale=function(t){return arguments.length?(a(t),n()):a()},o.translate=function(t){return arguments.length?(c(t),n()):c()},o.center=function(t){return arguments.length?(u(t),n()):u()},o.clipExtent=function(t){return arguments.length?(null==t?f=e=r=i=null:(f=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==f?null:[[f,e],[r,i]]},n()}function fr(t){return zh((vh+t)/2)}function lr(t,n){function e(t,n){o>0?n<-vh+ph&&(n=-vh+ph):n>vh-ph&&(n=vh-ph);var e=o/Sh(fr(n),i);return[e*Eh(i*t),o-e*Mh(i*t)]}var r=Mh(t),i=t===n?Eh(t):kh(r/Mh(n))/kh(fr(n)/fr(t)),o=r*Sh(fr(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=Ah(i)*Ch(t*t+e*e);return[wh(t,xh(e))/i*Ah(e),2*bh(Sh(o/r,1/i))-vh]},e):cr}function hr(t,n){return[t,n]}function pr(t,n){function e(t,n){var e=o-n,r=i*t;return[e*Eh(r),o-e*Mh(r)]}var r=Mh(t),i=t===n?Eh(t):(r-Mh(n))/(n-t),o=r/i+t;return xh(i)<ph?hr:(e.invert=function(t,n){var e=o-n;return[wh(t,xh(e))/i*Ah(e),o-Ah(i)*Ch(t*t+e*e)]},e)}function dr(t,n){var e=Mh(n),r=Mh(t)*e;return[e*Eh(t)/r,Eh(n)/r]}function vr(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?xp:Ze({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function gr(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function _r(t,n){return[Mh(n)*Eh(t),Eh(n)]}function yr(t,n){var e=Mh(n),r=1+Mh(t)*e;return[e*Eh(t)/r,Eh(n)/r]}function mr(t,n){return[kh(zh((vh+n)/2)),-t]}function xr(t,n){return t.parent===n.parent?1:2}function br(t,n){return t+n.x}function wr(t,n){return Math.max(t,n.y)}function Mr(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Tr(t,n){var e,r,i,o,u,a=new Er(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=Nr);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new Er(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(Sr)}function Nr(t){return t.children}function kr(t){t.data=t.data.data}function Sr(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Er(t){this.data=t,this.depth=this.height=0,this.parent=null}function Ar(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function Cr(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function zr(t,n){for(var e=0;e<n.length;++e)if(!Cr(t,n[e]))return!1;return!0}function Pr(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Rr(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=r-u,p=r-s,d=i-a,v=i-f,g=c-o,_=l-o,y=r*r+i*i-o*o,m=y-u*u-a*a+c*c,x=y-s*s-f*f+l*l,b=p*d-h*v,w=(d*x-v*m)/(2*b)-r,M=(v*g-d*_)/b,T=(p*m-h*x)/(2*b)-i,N=(h*_-p*g)/b,k=M*M+N*N-1,S=2*(o+w*M+T*N),E=w*w+T*T-o*o,A=-(k?(S+Math.sqrt(S*S-4*k*E))/(2*k):E/S);return{x:r+w+M*A,y:i+T+N*A,r:A}}function Lr(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function qr(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function Dr(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Ur(t){this._=t,this.next=null,this.previous=null}function Or(t){if(!(i=t.length))return 0;var n,e,r,i,o,u,a,c,s,f,l;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Lr(e,n,r=t[2]),n=new Ur(n),e=new Ur(e),r=new Ur(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){Lr(n._,e._,r=t[a]),r=new Ur(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do{if(f<=l){if(qr(c._,r._)){e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(qr(s._,r._)){(n=s).next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=Dr(n);(r=r.next)!==e;)(u=Dr(r))<o&&(n=r,o=u);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=nd(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function Fr(t){if("function"!=typeof t)throw new Error;return t}function Ir(){return 0}function Yr(t){return Math.sqrt(t.value)}function Br(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Hr(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Or(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function jr(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Xr(t){return t.id}function Vr(t){return t.parentId}function $r(t,n){return t.parent===n.parent?1:2}function Wr(t){var n=t.children;return n?n[0]:t.t}function Zr(t){var n=t.children;return n?n[n.length-1]:t.t}function Gr(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Qr(t,n,e){return t.a.parent===n.parent?t.a:e}function Jr(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Kr(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,g,_=[],y=n.children,m=0,x=0,b=y.length,w=n.value;m<b;){c=i-e,s=o-r;do{f=y[x++].value}while(!f&&x<b);for(l=h=f,g=f*f*(v=Math.max(s/c,c/s)/(w*t)),d=Math.max(h/g,g/l);x<b;++x){if(f+=a=y[x].value,a<l&&(l=a),a>h&&(h=a),g=f*f*v,(p=Math.max(h/g,g/l))>d){f-=a;break}d=p}_.push(u={value:f,dice:c<s,children:y.slice(m,x)}),u.dice?id(u,e,r,i,w?r+=s*f/w:o):cd(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return _}function ti(t,n){return t[0]-n[0]||t[1]-n[1]}function ni(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&hd(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function ei(t){this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function ri(t){if(!t._start)try{(function(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=function(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?ii(t,e):(t._data[n]=r,t._waiting?ri(t):oi(t))))}}(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||dd)}})(t)}catch(n){if(t._tasks[t._ended+t._active-1])ii(t,n);else if(!t._data)throw n}}function ii(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(n){}t._active=NaN,oi(t)}function oi(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function ui(t){if(null==t)t=1/0;else if(!((t=+t)>=1))throw new Error("invalid concurrency");return new ei(t)}function ai(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==Ld)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=Kt(),r=[],i=Ld;return t=null==t?[]:Rd.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=Kt();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Rd.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return ai().domain(r).range(t).unknown(i)},n}function ci(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=Pa(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=ai().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return ci().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function si(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return si(n())},t}function fi(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:qd(n)}function li(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function hi(t,n){function e(){return i=Math.min(a.length,c.length)>2?function(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=ba(t,n,1,i)-1;return u[e](o[e](n))}}:function(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}},o=u=null,r}function r(n){return(o||(o=i(a,c,f?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,s)))(+n)}var i,o,u,a=Ud,c=Ud,s=vs,f=!1;return r.invert=function(t){return(u||(u=i(c,a,fi,f?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Pd.call(t,Dd),e()):a.slice()},r.range=function(t){return arguments.length?(c=Rd.call(t),e()):c.slice()},r.rangeRound=function(t){return c=Rd.call(t),s=gs,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function pi(t){var n=t.domain;return t.ticks=function(t){var e=n();return Da(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Od(n(),t,e)},t.nice=function(r){null==r&&(r=10);var i,o=n(),u=0,a=o.length-1,c=o[u],s=o[a];return s<c&&(i=c,c=s,s=i,i=u,u=a,a=i),(i=e(c,s,r))>0?i=e(c=Math.floor(c/i)*i,s=Math.ceil(s/i)*i,r):i<0&&(i=e(c=Math.ceil(c*i)/i,s=Math.floor(s*i)/i,r)),i>0?(o[u]=Math.floor(c/i)*i,o[a]=Math.ceil(s/i)*i,n(o)):i<0&&(o[u]=Math.ceil(c*i)/i,o[a]=Math.floor(s*i)/i,n(o)),t},t}function di(){var t=hi(fi,fs);return t.copy=function(){return li(t,di())},pi(t)}function vi(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Pd.call(e,Dd),t):n.slice()},t.copy=function(){return vi().domain(n)},pi(t)}function gi(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:qd(n)}function _i(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function yi(t){return 10===t?function(t){return isFinite(t)?+("1e"+t):t<0?0:t}:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function mi(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function xi(t){return function(n){return-t(-n)}}function bi(){function n(){return o=mi(i),u=yi(i),r()[0]<0&&(o=xi(o),u=xi(u)),e}var e=hi(gi,_i).domain([1,10]),r=e.domain,i=10,o=mi(10),u=yi(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else v=Da(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):""}},e.nice=function(){return r(Fd(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return li(e,bi().base(i))},e}function wi(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Mi(){var t=1,n=hi(function(n,e){return(e=wi(e,t)-(n=wi(n,t)))?function(r){return(wi(r,t)-n)/e}:qd(e)},function(n,e){return e=wi(e,t)-(n=wi(n,t)),function(r){return wi(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return li(n,Mi().exponent(t))},pi(n)}function Ti(){function t(){var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=Oa(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[ba(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)null==(r=n[i])||isNaN(r=+r)||e.push(r);return e.sort(ya),t()},n.range=function(n){return arguments.length?(r=Rd.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return Ti().domain(e).range(r)},n}function Ni(){function t(t){if(t<=t)return u[ba(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=Rd.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Ni().domain([e,r]).range(u)},pi(t)}function ki(){function t(t){if(t<=t)return e[ba(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Rd.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Rd.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return ki().domain(n).range(e)},t}function Si(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u,a=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return a;do{a.push(u=new Date(+e)),n(e,o),t(e)}while(u<e&&e<r);return a},i.filter=function(e){return Si(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Id.setTime(+n),Yd.setTime(+r),t(Id),t(Yd),Math.floor(e(Id,Yd))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function Ei(t){return Si(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*jd)/Xd})}function Ai(t){return Si(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Xd})}function Ci(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function zi(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Pi(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Ri(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=Hv[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join("")}}function e(t,n){return function(e){var i,o,u=Pi(1900);if(r(u,t,e+="",0)!=e.length)return null;if("Q"in u)return new Date(u.Q);if("p"in u&&(u.H=u.H%12+12*u.p),"V"in u){if(u.V<1||u.V>53)return null;"w"in u||(u.w=1),"Z"in u?(i=(o=(i=zi(Pi(u.y))).getUTCDay())>4||0===o?Nv.ceil(i):Nv(i),i=wv.offset(i,7*(u.V-1)),u.y=i.getUTCFullYear(),u.m=i.getUTCMonth(),u.d=i.getUTCDate()+(u.w+6)%7):(i=(o=(i=n(Pi(u.y))).getDay())>4||0===o?nv.ceil(i):nv(i),i=Jd.offset(i,7*(u.V-1)),u.y=i.getFullYear(),u.m=i.getMonth(),u.d=i.getDate()+(u.w+6)%7)}else("W"in u||"U"in u)&&("w"in u||(u.w="u"in u?u.u%7:"W"in u?1:0),o="Z"in u?zi(Pi(u.y)).getUTCDay():n(Pi(u.y)).getDay(),u.m=0,u.d="W"in u?(u.w+6)%7+7*u.W-(o+5)%7:u.w+7*u.U-(o+6)%7);return"Z"in u?(u.H+=u.Z/100|0,u.M+=u.Z%100,zi(u)):n(u)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(o=T[i in Hv?n.charAt(u++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}var i=t.dateTime,o=t.date,u=t.time,a=t.periods,c=t.days,s=t.shortDays,f=t.months,l=t.shortMonths,h=Di(a),p=Ui(a),d=Di(c),v=Ui(c),g=Di(s),_=Ui(s),y=Di(f),m=Ui(f),x=Di(l),b=Ui(l),w={a:function(t){return s[t.getDay()]},A:function(t){return c[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return f[t.getMonth()]},c:null,d:ro,e:ro,f:co,H:io,I:oo,j:uo,L:ao,m:so,M:fo,p:function(t){return a[+(t.getHours()>=12)]},Q:Fo,s:Io,S:lo,u:ho,U:po,V:vo,w:go,W:_o,x:null,X:null,y:yo,Y:mo,Z:xo,"%":Oo},M={a:function(t){return s[t.getUTCDay()]},A:function(t){return c[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return f[t.getUTCMonth()]},c:null,d:bo,e:bo,f:ko,H:wo,I:Mo,j:To,L:No,m:So,M:Eo,p:function(t){return a[+(t.getUTCHours()>=12)]},Q:Fo,s:Io,S:Ao,u:Co,U:zo,V:Po,w:Ro,W:Lo,x:null,X:null,y:qo,Y:Do,Z:Uo,"%":Oo},T={a:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.w=_[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=v[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=x.exec(n.slice(e));return r?(t.m=b[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=y.exec(n.slice(e));return r?(t.m=m[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,n,e){return r(t,i,n,e)},d:$i,e:$i,f:Ki,H:Zi,I:Zi,j:Wi,L:Ji,m:Vi,M:Gi,p:function(t,n,e){var r=h.exec(n.slice(e));return r?(t.p=p[r[0].toLowerCase()],e+r[0].length):-1},Q:no,s:eo,S:Qi,u:Fi,U:Ii,V:Yi,w:Oi,W:Bi,x:function(t,n,e){return r(t,o,n,e)},X:function(t,n,e){return r(t,u,n,e)},y:ji,Y:Hi,Z:Xi,"%":to};return w.x=n(o,w),w.X=n(u,w),w.c=n(i,w),M.x=n(o,M),M.X=n(u,M),M.c=n(i,M),{format:function(t){var e=n(t+="",w);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Ci);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",M);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,zi);return n.toString=function(){return t},n}}}function Li(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function qi(t){return t.replace(Vv,"\\$&")}function Di(t){return new RegExp("^(?:"+t.map(qi).join("|")+")","i")}function Ui(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Oi(t,n,e){var r=jv.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Fi(t,n,e){var r=jv.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function Ii(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function Yi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function Bi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function Hi(t,n,e){var r=jv.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ji(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function Xi(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Vi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function $i(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function Wi(t,n,e){var r=jv.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Zi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Gi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Qi(t,n,e){var r=jv.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Ji(t,n,e){var r=jv.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Ki(t,n,e){var r=jv.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function to(t,n,e){var r=Xv.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function no(t,n,e){var r=jv.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function eo(t,n,e){var r=jv.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function ro(t,n){return Li(t.getDate(),n,2)}function io(t,n){return Li(t.getHours(),n,2)}function oo(t,n){return Li(t.getHours()%12||12,n,2)}function uo(t,n){return Li(1+Jd.count(gv(t),t),n,3)}function ao(t,n){return Li(t.getMilliseconds(),n,3)}function co(t,n){return ao(t,n)+"000"}function so(t,n){return Li(t.getMonth()+1,n,2)}function fo(t,n){return Li(t.getMinutes(),n,2)}function lo(t,n){return Li(t.getSeconds(),n,2)}function ho(t){var n=t.getDay();return 0===n?7:n}function po(t,n){return Li(tv.count(gv(t),t),n,2)}function vo(t,n){var e=t.getDay();return t=e>=4||0===e?iv(t):iv.ceil(t),Li(iv.count(gv(t),t)+(4===gv(t).getDay()),n,2)}function go(t){return t.getDay()}function _o(t,n){return Li(nv.count(gv(t),t),n,2)}function yo(t,n){return Li(t.getFullYear()%100,n,2)}function mo(t,n){return Li(t.getFullYear()%1e4,n,4)}function xo(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Li(n/60|0,"0",2)+Li(n%60,"0",2)}function bo(t,n){return Li(t.getUTCDate(),n,2)}function wo(t,n){return Li(t.getUTCHours(),n,2)}function Mo(t,n){return Li(t.getUTCHours()%12||12,n,2)}function To(t,n){return Li(1+wv.count(Iv(t),t),n,3)}function No(t,n){return Li(t.getUTCMilliseconds(),n,3)}function ko(t,n){return No(t,n)+"000"}function So(t,n){return Li(t.getUTCMonth()+1,n,2)}function Eo(t,n){return Li(t.getUTCMinutes(),n,2)}function Ao(t,n){return Li(t.getUTCSeconds(),n,2)}function Co(t){var n=t.getUTCDay();return 0===n?7:n}function zo(t,n){return Li(Tv.count(Iv(t),t),n,2)}function Po(t,n){var e=t.getUTCDay();return t=e>=4||0===e?Ev(t):Ev.ceil(t),Li(Ev.count(Iv(t),t)+(4===Iv(t).getUTCDay()),n,2)}function Ro(t){return t.getUTCDay()}function Lo(t,n){return Li(Nv.count(Iv(t),t),n,2)}function qo(t,n){return Li(t.getUTCFullYear()%100,n,2)}function Do(t,n){return Li(t.getUTCFullYear()%1e4,n,4)}function Uo(){return"+0000"}function Oo(){return"%"}function Fo(t){return+t}function Io(t){return Math.floor(+t/1e3)}function Yo(n){return Yv=Ri(n),t.timeFormat=Yv.format,t.timeParse=Yv.parse,t.utcFormat=Yv.utcFormat,t.utcParse=Yv.utcParse,Yv}function Bo(t){return new Date(t)}function Ho(t){return t instanceof Date?+t:+new Date(+t)}function jo(t,n,e,i,o,u,a,c,s){function f(n,e,i,o){if(null==n&&(n=10),"number"==typeof n){var u=Math.abs(i-e)/n,a=ma(function(t){return t[2]}).right(w,u);a===w.length?(o=r(e/ng,i/ng,n),n=t):a?(o=(a=w[u/w[a-1][2]<w[a][2]/u?a-1:a])[1],n=a[0]):(o=Math.max(r(e,i,n),1),n=c)}return null==o?n:n.every(o)}var l=hi(fi,fs),h=l.invert,p=l.domain,d=s(".%L"),v=s(":%S"),g=s("%I:%M"),_=s("%I %p"),y=s("%a %d"),m=s("%b %d"),x=s("%B"),b=s("%Y"),w=[[a,1,Zv],[a,5,5*Zv],[a,15,15*Zv],[a,30,30*Zv],[u,1,Gv],[u,5,5*Gv],[u,15,15*Gv],[u,30,30*Gv],[o,1,Qv],[o,3,3*Qv],[o,6,6*Qv],[o,12,12*Qv],[i,1,Jv],[i,2,2*Jv],[e,1,Kv],[n,1,tg],[n,3,3*tg],[t,1,ng]];return l.invert=function(t){return new Date(h(t))},l.domain=function(t){return arguments.length?p(Pd.call(t,Ho)):p().map(Bo)},l.ticks=function(t,n){var e,r=p(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=f(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},l.tickFormat=function(r,c){return null==c?function(r){return(a(r)<r?d:u(r)<r?v:o(r)<r?g:i(r)<r?_:n(r)<r?e(r)<r?y:m:t(r)<r?x:b)(r)}:s(c)},l.nice=function(t,n){var e=p();return(t=f(t,e[0],e[e.length-1],n))?p(Fd(e,t)):l},l.copy=function(){return li(l,jo(t,n,e,i,o,u,a,c,s))},l}function Xo(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function Vo(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Vo(t).domain([e,r]).clamp(i)},pi(n)}function $o(t){return t>=1?Ng:t<=-1?-Ng:Math.asin(t)}function Wo(t){return t.innerRadius}function Zo(t){return t.outerRadius}function Go(t){return t.startAngle}function Qo(t){return t.endAngle}function Jo(t){return t&&t.padAngle}function Ko(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/wg(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,g=(h+d)/2,_=(p+v)/2,y=d-h,m=v-p,x=y*y+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*wg(mg(0,b*b*x-w*w)),T=(w*m-y*M)/x,N=(-w*y-m*M)/x,k=(w*m+y*M)/x,S=(-w*y+m*M)/x,E=T-g,A=N-_,C=k-g,z=S-_;return E*E+A*A>C*C+z*z&&(T=k,N=S),{cx:T,cy:N,x01:-f,y01:-l,x11:T*(i/b-1),y11:N*(i/b-1)}}function tu(t){this._context=t}function nu(t){return t[0]}function eu(t){return t[1]}function ru(t){this._curve=t}function iu(t){function n(n){return new ru(t(n))}return n._curve=t,n}function ou(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(iu(t)):n()._curve},t}function uu(t){return t.source}function au(t){return t.target}function cu(t){function n(){var n,a=Dg.call(arguments),c=e.apply(this,a),s=r.apply(this,a);if(u||(u=n=Vt()),t(u,+i.apply(this,(a[0]=c,a)),+o.apply(this,a),+i.apply(this,(a[0]=s,a)),+o.apply(this,a)),n)return u=null,n+""||null}var e=uu,r=au,i=nu,o=eu,u=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:vg(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:vg(+t),n):o},n.context=function(t){return arguments.length?(u=null==t?null:t,n):u},n}function su(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function fu(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function lu(t,n,e,r,i){var o=qg(n,e),u=qg(n,e=(e+i)/2),a=qg(r,e),c=qg(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(u[0],u[1],a[0],a[1],c[0],c[1])}function hu(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function pu(t){this._context=t}function du(t){this._context=t}function vu(t){this._context=t}function gu(t,n){this._basis=new pu(t),this._beta=n}function _u(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function yu(t,n){this._context=t,this._k=(1-n)/6}function mu(t,n){this._context=t,this._k=(1-n)/6}function xu(t,n){this._context=t,this._k=(1-n)/6}function bu(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>Mg){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Mg){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function wu(t,n){this._context=t,this._alpha=n}function Mu(t,n){this._context=t,this._alpha=n}function Tu(t,n){this._context=t,this._alpha=n}function Nu(t){this._context=t}function ku(t){return t<0?-1:1}function Su(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(ku(o)+ku(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function Eu(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Au(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function Cu(t){this._context=t}function zu(t){this._context=new Pu(t)}function Pu(t){this._context=t}function Ru(t){this._context=t}function Lu(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function qu(t,n){this._context=t,this._t=n}function Du(t,n){return t[n]}function Uu(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function Ou(t){return t[0]}function Fu(t){return t[1]}function Iu(){this._=null}function Yu(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Bu(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Hu(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function ju(t){for(;t.L;)t=t.L;return t}function Xu(t,n,e,r){var i=[null,null],o=__.push(i)-1;return i.left=t,i.right=n,e&&$u(i,t,n,e),r&&$u(i,n,t,r),v_[t.index].halfedges.push(o),v_[n.index].halfedges.push(o),i}function Vu(t,n,e){var r=[n,e];return r.left=t,r}function $u(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Wu(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=0,l=1,h=a[0]-c,p=a[1]-s;if(o=n-c,h||!(o>0)){if(o/=h,h<0){if(o<f)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>f&&(f=o)}if(o=r-c,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>f&&(f=o)}else if(h>0){if(o<f)return;o<l&&(l=o)}if(o=e-s,p||!(o>0)){if(o/=p,p<0){if(o<f)return;o<l&&(l=o)}else if(p>0){if(o>l)return;o>f&&(f=o)}if(o=i-s,p||!(o<0)){if(o/=p,p<0){if(o>l)return;o>f&&(f=o)}else if(p>0){if(o<f)return;o<l&&(l=o)}return!(f>0||l<1)||(f>0&&(t[0]=[c+f*h,s+f*p]),l<1&&(t[1]=[c+l*h,s+l*p]),!0)}}}}}function Zu(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,g=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=g-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function Gu(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Qu(t,n){return n[+(n.left!==t.site)]}function Ju(t,n){return n[+(n.left===t.site)]}function Ku(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-b_)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,g=(c*d-f*p)/h,_=y_.pop()||new function(){Yu(this),this.x=this.y=this.arc=this.site=this.cy=null};_.arc=t,_.site=i,_.x=v+u,_.y=(_.cy=g+a)+Math.sqrt(v*v+g*g),t.circle=_;for(var y=null,m=g_._;m;)if(_.y<m.y||_.y===m.y&&_.x<=m.x){if(!m.L){y=m.P;break}m=m.L}else{if(!m.R){y=m;break}m=m.R}g_.insert(y,_),y||(p_=_)}}}}function ta(t){var n=t.circle;n&&(n.P||(p_=n.N),g_.remove(n),y_.push(n),Yu(n),t.circle=null)}function na(t){var n=m_.pop()||new function(){Yu(this),this.edge=this.site=this.circle=null};return n.site=t,n}function ea(t){ta(t),d_.remove(t),m_.push(t),Yu(t)}function ra(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];ea(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<x_&&Math.abs(r-c.circle.cy)<x_;)o=c.P,a.unshift(c),ea(c),c=o;a.unshift(c),ta(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<x_&&Math.abs(r-s.circle.cy)<x_;)u=s.N,a.push(s),ea(s),s=u;a.push(s),ta(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],$u(s.edge,c.site,s.site,i);c=a[0],(s=a[l-1]).edge=Xu(c.site,s.site,null,i),Ku(c),Ku(s)}function ia(t){for(var n,e,r,i,o=t[0],u=t[1],a=d_._;a;)if((r=oa(a,u)-o)>x_)a=a.L;else{if(!((i=o-function(t,n){var e=t.N;if(e)return oa(e,n);var r=t.site;return r[1]===n?r[0]:1/0}(a,u))>x_)){r>-x_?(n=a.P,e=a):i>-x_?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}(function(t){v_[t.index]={site:t,halfedges:[]}})(t);var c=na(t);if(d_.insert(n,c),n||e){if(n===e)return ta(n),e=na(n.site),d_.insert(c,e),c.edge=e.edge=Xu(n.site,c.site),Ku(n),void Ku(e);if(e){ta(n),ta(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,g=d[1]-l,_=2*(h*g-p*v),y=h*h+p*p,m=v*v+g*g,x=[(g*y-p*m)/_+f,(h*m-v*y)/_+l];$u(e.edge,s,d,x),c.edge=Xu(s,t,null,x),e.edge=Xu(t,d,null,x),Ku(n),Ku(e)}else c.edge=Xu(n.site,c.site)}}function oa(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-1/0;var a=(e=u.site)[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function ua(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function aa(t,n){return n[1]-t[1]||n[0]-t[0]}function ca(t,n){var e,r,i,o=t.sort(aa).pop();for(__=[],v_=new Array(t.length),d_=new Iu,g_=new Iu;;)if(i=p_,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(ia(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;ra(i.arc)}if(function(){for(var t,n,e,r,i=0,o=v_.length;i<o;++i)if((t=v_[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=Gu(t,__[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];(function(t,n,e,r){for(var i,o=__.length;o--;)Zu(i=__[o],t,n,e,r)&&Wu(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>x_||Math.abs(i[0][1]-i[1][1])>x_)||delete __[o]})(u,a,c,s),function(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,g=v_.length,_=!0;for(i=0;i<g;++i)if(o=v_[i]){for(u=o.site,a=(c=o.halfedges).length;a--;)__[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)d=(p=Ju(o,__[c[a]]))[0],v=p[1],l=(f=Qu(o,__[c[++a%s]]))[0],h=f[1],(Math.abs(d-l)>x_||Math.abs(v-h)>x_)&&(c.splice(a,0,__.push(Vu(u,p,Math.abs(d-t)<x_&&r-v>x_?[t,Math.abs(l-t)<x_?h:r]:Math.abs(v-r)<x_&&e-d>x_?[Math.abs(h-r)<x_?l:e,r]:Math.abs(d-e)<x_&&v-n>x_?[e,Math.abs(l-e)<x_?h:n]:Math.abs(v-n)<x_&&d-t>x_?[Math.abs(h-n)<x_?l:t,n]:null))-1),++s);s&&(_=!1)}if(_){var y,m,x,b=1/0;for(i=0,_=null;i<g;++i)(o=v_[i])&&(x=(y=(u=o.site)[0]-t)*y+(m=u[1]-n)*m)<b&&(b=x,_=o);if(_){var w=[t,n],M=[t,r],T=[e,r],N=[e,n];_.halfedges.push(__.push(Vu(u=_.site,w,M))-1,__.push(Vu(u,M,T))-1,__.push(Vu(u,T,N))-1,__.push(Vu(u,N,w))-1)}}for(i=0;i<g;++i)(o=v_[i])&&(o.halfedges.length||delete v_[i])}(u,a,c,s)}this.edges=__,this.cells=v_,d_=g_=__=v_=null}function sa(t,n,e){this.k=t,this.x=n,this.y=e}function fa(t){return t.__zoom||M_}function la(){t.event.stopImmediatePropagation()}function ha(){return!t.event.button}function pa(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function da(){return this.__zoom||M_}function va(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function ga(){return"ontouchstart"in this}function _a(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],u=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),u>o?(o+u)/2:Math.min(0,o)||Math.max(0,u))}var ya=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},ma=function(t){return 1===t.length&&(t=function(t){return function(n,e){return ya(t(n),e)}}(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},xa=ma(ya),ba=xa.right,wa=xa.left,Ma=function(t){return null===t?NaN:+t},Ta=function(t,n){var e,r,i=t.length,o=0,u=-1,a=0,c=0;if(null==n)for(;++u<i;)isNaN(e=Ma(t[u]))||(c+=(r=e-a)*(e-(a+=r/++o)));else for(;++u<i;)isNaN(e=Ma(n(t[u],u,t)))||(c+=(r=e-a)*(e-(a+=r/++o)));if(o>1)return c/(o-1)},Na=function(t,n){var e=Ta(t,n);return e?Math.sqrt(e):e},ka=function(t,n){var e,r,i,o=t.length,u=-1;if(null==n){for(;++u<o;)if(null!=(e=t[u])&&e>=e)for(r=i=e;++u<o;)null!=(e=t[u])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++u<o;)if(null!=(e=n(t[u],u,t))&&e>=e)for(r=i=e;++u<o;)null!=(e=n(t[u],u,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]},Sa=Array.prototype,Ea=Sa.slice,Aa=Sa.map,Ca=function(t){return function(){return t}},za=function(t){return t},Pa=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},Ra=Math.sqrt(50),La=Math.sqrt(10),qa=Math.sqrt(2),Da=function(t,n,r){var i,o,u,a,c=-1;if(n=+n,t=+t,r=+r,t===n&&r>0)return[t];if((i=n<t)&&(o=t,t=n,n=o),0===(a=e(t,n,r))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),u=new Array(o=Math.ceil(n-t+1));++c<o;)u[c]=(t+c)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),u=new Array(o=Math.ceil(t-n+1));++c<o;)u[c]=(t-c)/a;return i&&u.reverse(),u},Ua=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},Oa=function(t,n,e){if(null==e&&(e=Ma),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t);return u+(+e(t[o+1],o+1,t)-u)*(i-o)}},Fa=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--u]=r[n];return e},Ia=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r},Ya=function(t){if(!(o=t.length))return[];for(var n=-1,e=Ia(t,i),r=new Array(e);++n<e;)for(var o,u=-1,a=r[n]=new Array(o);++u<o;)a[u]=t[u][n];return r},Ba=Array.prototype.slice,Ha=function(t){return t},ja=1,Xa=2,Va=3,$a=4,Wa=1e-6,Za={value:function(){}};c.prototype=a.prototype={constructor:c,on:function(t,n){var e,r=this._,i=function(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}(t+"",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=s(r[e],t.name,n);else if(null==n)for(e in r)r[e]=s(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new c(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var Ga="http://www.w3.org/1999/xhtml",Qa={svg:"http://www.w3.org/2000/svg",xhtml:Ga,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Ja=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Qa.hasOwnProperty(n)?{space:Qa[n],local:t}:t},Ka=function(t){var n=Ja(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Ga&&n.documentElement.namespaceURI===Ga?n.createElement(t):n.createElementNS(e,t)}})(n)},tc=0;l.prototype=f.prototype={constructor:l,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var nc=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var ec=document.documentElement;if(!ec.matches){var rc=ec.webkitMatchesSelector||ec.msMatchesSelector||ec.mozMatchesSelector||ec.oMatchesSelector;nc=function(t){return function(){return rc.call(this,t)}}}}var ic=nc,oc={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||(oc={mouseenter:"mouseover",mouseleave:"mouseout"})}var uc=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},ac=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},cc=function(t){var n=uc();return n.changedTouches&&(n=n.changedTouches[0]),ac(t,n)},sc=function(t){return null==t?function(){}:function(){return this.querySelector(t)}},fc=function(t){return null==t?function(){return[]}:function(){return this.querySelectorAll(t)}},lc=function(t){return new Array(t.length)};v.prototype={constructor:v,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var hc="$",pc=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};x.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var dc=[null];S.prototype=E.prototype={constructor:S,select:function(t){"function"!=typeof t&&(t=sc(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&("__data__"in o&&(u.__data__=o.__data__),s[f]=u);return new S(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=fc(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new S(r,i)},filter:function(t){"function"!=typeof t&&(t=ic(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new S(r,this._parents)},data:function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?function(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=hc+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)(c=f[s=hc+u.call(t,o[a],a,o)])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new v(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}:function(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new v(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)},r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,g=a[s]=new Array(d),_=u[s]=new Array(d);e(f,l,g,_,c[s]=new Array(h),p,n);for(var y,m,x=0,b=0;x<d;++x)if(y=g[x]){for(x>=b&&(b=x+1);!(m=_[b])&&++b<d;);y._next=m||null}}return u=new S(u,r),u._enter=a,u._exit=c,u},enter:function(){return new S(this._enter||this._groups.map(lc),this._parents)},exit:function(){return new S(this._exit||this._groups.map(lc),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new S(u,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=g);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],c=a.length,s=i[o]=new Array(c),f=0;f<c;++f)(u=a[f])&&(s[f]=u);s.sort(n)}return new S(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},attr:function(t,n){var e=Ja(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):_(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=y(t+"");if(arguments.length<2){for(var r=m(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?b:w)(this,t)}}:n?function(t){return function(){b(this,t)}}:function(t){return function(){w(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?function(){this.textContent=""}:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?function(){this.innerHTML=""}:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(M)},lower:function(){return this.each(T)},append:function(t){var n="function"==typeof t?t:Ka(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:Ka(t),r=null==n?function(){return null}:"function"==typeof n?n:sc(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(N)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),u=o.length;{if(!(arguments.length<2)){for(a=n?p:function(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}},null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return k(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return k(this,t,n)}})(t,n))}};var vc=function(t){return"string"==typeof t?new S([[document.querySelector(t)]],[document.documentElement]):new S([[t]],dc)},gc=function(t,n,e){arguments.length<3&&(e=n,n=uc().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return ac(t,r);return null},_c=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},yc=function(t){var n=t.document.documentElement,e=vc(t).on("dragstart.drag",_c,!0);"onselectstart"in n?e.on("selectstart.drag",_c,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")},mc=function(t){return function(){return t}};z.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var xc=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},bc="\\s*([+-]?\\d+)\\s*",wc="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mc="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Tc=/^#([0-9a-f]{3})$/,Nc=/^#([0-9a-f]{6})$/,kc=new RegExp("^rgb\\("+[bc,bc,bc]+"\\)$"),Sc=new RegExp("^rgb\\("+[Mc,Mc,Mc]+"\\)$"),Ec=new RegExp("^rgba\\("+[bc,bc,bc,wc]+"\\)$"),Ac=new RegExp("^rgba\\("+[Mc,Mc,Mc,wc]+"\\)$"),Cc=new RegExp("^hsl\\("+[wc,Mc,Mc]+"\\)$"),zc=new RegExp("^hsla\\("+[wc,Mc,Mc,wc]+"\\)$"),Pc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};xc(U,O,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),xc(H,B,D(U,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){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},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"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))+(1===t?")":", "+t+")")}})),xc(V,X,D(U,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new V(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new V(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new H($(t>=240?t-240:t+120,i,r),$(t,i,r),$(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Rc=Math.PI/180,Lc=180/Math.PI,qc=.95047,Dc=1,Uc=1.08883,Oc=4/29,Fc=6/29,Ic=3*Fc*Fc,Yc=Fc*Fc*Fc;xc(G,Z,D(U,{brighter:function(t){return new G(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new G(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=Dc*J(t),n=qc*J(n),e=Uc*J(e),new H(K(3.2404542*n-1.5371385*t-.4985314*e),K(-.969266*n+1.8760108*t+.041556*e),K(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),xc(et,nt,D(U,{brighter:function(t){return new et(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new et(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return W(this).rgb()}}));var Bc=-.14861,Hc=1.78277,jc=-.29227,Xc=-.90649,Vc=1.97294,$c=Vc*Xc,Wc=Vc*Hc,Zc=Hc*jc-Xc*Bc;xc(it,rt,D(U,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new it(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new it(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Rc,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new H(255*(n+e*(Bc*r+Hc*i)),255*(n+e*(jc*r+Xc*i)),255*(n+e*(Vc*r)),this.opacity)}}));var Gc,Qc,Jc,Kc,ts,ns,es=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return ot((e-r/n)*n,u,i,o,a)}},rs=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return ot((e-r/n)*n,i,o,u,a)}},is=function(t){return function(){return t}},os=function t(n){function e(t,n){var e=r((t=B(t)).r,(n=B(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=st(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}var r=ct(n);return e.gamma=t,e}(1),us=ft(es),as=ft(rs),cs=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),u=new Array(r);for(e=0;e<i;++e)o[e]=vs(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},ss=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},fs=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},ls=function(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=vs(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},hs=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ps=new RegExp(hs.source,"g"),ds=function(t,n){var e,r,i,o=hs.lastIndex=ps.lastIndex=0,u=-1,a=[],c=[];for(t+="",n+="";(e=hs.exec(t))&&(r=ps.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:fs(e,r)})),o=ps.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join("")})},vs=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?is(n):("number"===r?fs:"string"===r?(e=O(n))?(n=e,os):ds:n instanceof O?os:n instanceof Date?ss:Array.isArray(n)?cs:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ls:fs)(t,n)},gs=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},_s=180/Math.PI,ys={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},ms=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*_s,skewX:Math.atan(c)*_s,scaleX:u,scaleY:a}},xs=lt(function(t){return"none"===t?ys:(Gc||(Gc=document.createElement("DIV"),Qc=document.documentElement,Jc=document.defaultView),Gc.style.transform=t,t=Jc.getComputedStyle(Qc.appendChild(Gc),null).getPropertyValue("transform"),Qc.removeChild(Gc),t=t.slice(7,-1).split(","),ms(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),bs=lt(function(t){return null==t?ys:(Kc||(Kc=document.createElementNS("http://www.w3.org/2000/svg","g")),Kc.setAttribute("transform",t),(t=Kc.transform.baseVal.consolidate())?(t=t.matrix,ms(t.a,t.b,t.c,t.d,t.e,t.f)):ys)},", ",")",")"),ws=Math.SQRT2,Ms=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<1e-12)r=Math.log(s/u)/ws,e=function(t){return[i+t*f,o+t*l,u*Math.exp(ws*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+4*h)/(2*u*2*p),v=(s*s-u*u-4*h)/(2*s*2*p),g=Math.log(Math.sqrt(d*d+1)-d),_=Math.log(Math.sqrt(v*v+1)-v);r=(_-g)/ws,e=function(t){var n=t*r,e=ht(g),a=u/(2*p)*(e*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(ws*n+g)-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+a*f,o+a*l,u*e/ht(ws*n+g)]}}return e.duration=1e3*r,e},Ts=pt(at),Ns=pt(st),ks=dt(at),Ss=dt(st),Es=vt(at),As=vt(st),Cs=0,zs=0,Ps=0,Rs=1e3,Ls=0,qs=0,Ds=0,Us="object"==typeof performance&&performance.now?performance:Date,Os="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};yt.prototype=mt.prototype={constructor:yt,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?gt():+e)+(null==n?0:+n),this._next||ns===this||(ns?ns._next=this:ts=this,ns=this),this._call=t,this._time=e,Mt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Mt())}};var Fs=function(t,n,e){var r=new yt;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},Is=a("start","end","interrupt"),Ys=[],Bs=0,Hs=1,js=2,Xs=3,Vs=4,$s=5,Ws=6,Zs=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};(function(t,n,e){function r(c){var s,f,l,h;if(e.state!==Hs)return o();for(s in a)if((h=a[s]).name===e.name){if(h.state===Xs)return Fs(r);h.state===Vs?(h.state=Ws,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[s]):+s<n&&(h.state=Ws,h.timer.stop(),delete a[s])}if(Fs(function(){e.state===Xs&&(e.state=Vs,e.timer.restart(i,e.delay,e.time),i(c))}),e.state=js,e.on.call("start",t,t.__data__,e.index,e.group),e.state===js){for(e.state=Xs,u=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(u[++f]=h);u.length=f+1}}function i(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(o),e.state=$s,1),i=-1,a=u.length;++i<a;)u[i].call(null,r);e.state===$s&&(e.on.call("end",t,t.__data__,e.index,e.group),o())}function o(){e.state=Ws,e.timer.stop(),delete a[n];for(var r in a)return;delete t.__transition}var u,a=t.__transition;a[n]=e,e.timer=mt(function(t){e.state=Hs,e.timer.restart(r,e.delay,e.time),e.delay<=t&&r(t-e.delay)},0,e.time)})(t,e,{name:n,index:r,group:i,on:Is,tween:Ys,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Bs})},Gs=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>js&&e.state<$s,e.state=Ws,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},Qs=function(t,n){var e;return("number"==typeof n?fs:n instanceof O?os:(e=O(n))?(n=e,os):ds)(t,n)},Js=E.prototype.constructor,Ks=0,tf=E.prototype;Et.prototype=At.prototype={constructor:Et,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=sc(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&("__data__"in a&&(c.__data__=a.__data__),l[h]=c,Zs(l[h],n,e,h,l,kt(a,e)));return new Et(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=fc(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=kt(c,e),v=0,g=p.length;v<g;++v)(h=p[v])&&Zs(h,n,e,v,p,d);o.push(p),u.push(c)}return new Et(o,u,n,e)},filter:function(t){"function"!=typeof t&&(t=ic(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new Et(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new Et(u,this._parents,this._name,this._id)},selection:function(){return new Js(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Ct(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=kt(u,n);Zs(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Et(r,this._parents,t,e)},call:tf.call,nodes:tf.nodes,node:tf.node,size:tf.size,empty:tf.empty,each:tf.each,on:function(t,n){var e=this._id;return arguments.length<2?kt(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?Tt:Nt;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}(e,t,n))},attr:function(t,n){var e=Ja(t),r="transform"===e?bs:Qs;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var u,a=e(this);if(null!=a)return(u=this.getAttributeNS(t.space,t.local))===a?null:u===r&&a===i?o:o=n(r=u,i=a);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var u,a=e(this);if(null!=a)return(u=this.getAttribute(t))===a?null:u===r&&a===i?o:o=n(r=u,i=a);this.removeAttribute(t)}})(e,r,St(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Ja(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?xs:Qs;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=_(this,t),u=(this.style.removeProperty(t),_(this,t));return o===u?null:o===e&&u===r?i:i=n(e=o,r=u)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,o;return function(){var u=_(this,t),a=e(this);return null==a&&(this.style.removeProperty(t),a=_(this,t)),u===a?null:u===r&&a===i?o:o=n(r=u,i=a)}}(t,r,St(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var o=_(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(St(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=kt(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=Nt(this,t),o=i.tween;if(o!==e)for(var u=0,a=(r=e=o).length;u<a;++u)if(r[u].name===n){(r=r.slice()).splice(u,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Nt(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Tt(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Tt(this,t).delay=n}})(n,t)):kt(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Nt(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Nt(this,t).duration=n}})(n,t)):kt(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Nt(this,t).ease=n}}(n,t)):kt(this.node(),n).ease}};var nf=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),ef=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),rf=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),of=Math.PI,uf=of/2,af=4/11,cf=6/11,sf=8/11,ff=.75,lf=9/11,hf=10/11,pf=.9375,df=21/22,vf=63/64,gf=1/af/af,_f=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),yf=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),mf=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),xf=2*Math.PI,bf=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=xf);return r.amplitude=function(n){return t(n,e*xf)},r.period=function(e){return t(n,e)},r}(1,.3),wf=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=xf);return r.amplitude=function(n){return t(n,e*xf)},r.period=function(e){return t(n,e)},r}(1,.3),Mf=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=xf);return r.amplitude=function(n){return t(n,e*xf)},r.period=function(e){return t(n,e)},r}(1,.3),Tf={time:null,delay:0,duration:250,ease:Pt};E.prototype.interrupt=function(t){return this.each(function(){Gs(this,t)})},E.prototype.transition=function(t){var n,e;t instanceof Et?(n=t._id,t=t._name):(n=Ct(),(e=Tf).time=gt(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&Zs(u,t,n,s,a,e||Ut(u,n));return new Et(r,this._parents,t,n)};var Nf=[null],kf=function(t){return function(){return t}},Sf=function(t,n,e){this.target=t,this.type=n,this.selection=e},Ef=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Af={name:"drag"},Cf={name:"space"},zf={name:"handle"},Pf={name:"center"},Rf={name:"x",handles:["e","w"].map(Ft),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Lf={name:"y",handles:["n","s"].map(Ft),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qf={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Ft),input:function(t){return t},output:function(t){return t}},Df={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Uf={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Of={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ff={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},If={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},Yf=Math.cos,Bf=Math.sin,Hf=Math.PI,jf=Hf/2,Xf=2*Hf,Vf=Math.max,$f=Array.prototype.slice,Wf=function(t){return function(){return t}},Zf=Math.PI,Gf=2*Zf,Qf=Gf-1e-6;Xt.prototype=Vt.prototype={constructor:Xt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(f*a-c*s)>1e-6&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,g=Math.sqrt(d),_=Math.sqrt(l),y=i*Math.tan((Zf-Math.acos((d+l-v)/(2*g*_)))/2),m=y/_,x=y/g;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(n+m*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>s*p)+","+(this._x1=t+x*a)+","+(this._y1=n+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var u=(e=+e)*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+s:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+="L"+c+","+s),e&&(l<0&&(l=l%Gf+Gf),l>Qf?this._+="A"+e+","+e+",0,1,"+f+","+(t-u)+","+(n-a)+"A"+e+","+e+",0,1,"+f+","+(this._x1=c)+","+(this._y1=s):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=Zf)+","+f+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};Jt.prototype=Kt.prototype={constructor:Jt,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Jf=Kt.prototype;on.prototype=un.prototype={constructor:on,has:Jf.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Jf.remove,clear:Jf.clear,values:Jf.keys,size:Jf.size,empty:Jf.empty,each:Jf.each};var Kf={},tl={},nl=34,el=10,rl=13,il=function(t){function n(t,n){function e(){if(s)return tl;if(f)return f=!1,Kf;var n,e,r=a;if(t.charCodeAt(r)===nl){for(;a++<u&&t.charCodeAt(a)!==nl||t.charCodeAt(++a)===nl;);return(n=a)>=u?s=!0:(e=t.charCodeAt(a++))===el?f=!0:e===rl&&(f=!0,t.charCodeAt(a)===el&&++a),t.slice(r+1,n-1).replace(/""/g,'"')}for(;a<u;){if((e=t.charCodeAt(n=a++))===el)f=!0;else if(e===rl)f=!0,t.charCodeAt(a)===el&&++a;else if(e!==o)continue;return t.slice(r,n)}return s=!0,t.slice(r,u)}var r,i=[],u=t.length,a=0,c=0,s=u<=0,f=!1;for(t.charCodeAt(u-1)===el&&--u,t.charCodeAt(u-1)===rl&&--u;(r=e())!==tl;){for(var l=[];r!==Kf&&r!==tl;)l.push(r),r=e();n&&null==(l=n(l,c++))||i.push(l)}return i}function e(n){return n.map(r).join(t)}function r(t){return null==t?"":i.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}var i=new RegExp('["'+t+"\n\r]"),o=t.charCodeAt(0);return{parse:function(t,e){var r,i,o=n(t,function(t,n){if(r)return r(t,n-1);i=t,r=e?function(t,n){var e=an(t);return function(r,i){return n(e(r),i,t)}}(t,e):an(t)});return o.columns=i||[],o},parseRows:n,format:function(n,e){return null==e&&(e=function(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}(n)),[e.map(r).join(t)].concat(n.map(function(n){return e.map(function(t){return r(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(e).join("\n")}}},ol=il(","),ul=ol.parse,al=ol.parseRows,cl=ol.format,sl=ol.formatRows,fl=il("\t"),ll=fl.parse,hl=fl.parseRows,pl=fl.format,dl=fl.formatRows,vl=function(t){return function(){return t}},gl=function(){return 1e-6*(Math.random()-.5)},_l=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},yl=sn.prototype=fn.prototype;yl.copy=function(){var t,n,e=new fn(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=ln(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=ln(n));return e},yl.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return cn(this.cover(n,e),n,e,t)},yl.addAll=function(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)cn(this,u[e],a[e],t[e]);return this},yl.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},yl.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},yl.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},yl.find=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new _l(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var g=(i+u)/2,_=(o+a)/2;d.push(new _l(v[3],g,_,u,a),new _l(v[2],i,_,g,a),new _l(v[1],g,o,u,_),new _l(v[0],i,o,g,_)),(s=(n>=_)<<1|t>=g)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var y=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=y*y+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},yl.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,g=this._x1,_=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+g)/2))?d=a:g=a,(f=u>=(c=(v+_)/2))?v=c:_=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},yl.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},yl.root=function(){return this._root},yl.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},yl.visit=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new _l(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new _l(e,s,f,o,u)),(e=c[2])&&a.push(new _l(e,r,f,s,u)),(e=c[1])&&a.push(new _l(e,s,i,o,f)),(e=c[0])&&a.push(new _l(e,r,i,s,f))}return this},yl.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new _l(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new _l(o,u,a,f,l)),(o=i[1])&&e.push(new _l(o,f,a,c,l)),(o=i[2])&&e.push(new _l(o,u,l,f,s)),(o=i[3])&&e.push(new _l(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},yl.x=function(t){return arguments.length?(this._x=t,this):this._x},yl.y=function(t){return arguments.length?(this._y=t,this):this._y};var ml,xl=10,bl=Math.PI*(3-Math.sqrt(5)),wl=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},Ml=function(t){return(t=wl(Math.abs(t)))?t[1]:NaN},Tl=function(t,n){var e=wl(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Nl={"":function(t,n){t:for(var e,r=(t=t.toPrecision(n)).length,i=1,o=-1;i<r;++i)switch(t[i]){case".":o=e=i;break;case"0":0===o&&(o=i),e=i;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return Tl(100*t,n)},r:Tl,s:function(t,n){var e=wl(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ml=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+wl(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},kl=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;yn.prototype=mn.prototype,mn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Sl,El=function(t){return t},Al=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Cl=function(t){function n(t){function n(t){var n,r,u,f=g,x=_;if("c"===v)x=y(t)+x,t="";else{var b=(t=+t)<0;if(t=y(Math.abs(t),d),b&&0==+t&&(b=!1),f=(b?"("===s?s:"-":"-"===s||"("===s?"":s)+f,x=x+("s"===v?Al[8+ml/3]:"")+(b&&"("===s?")":""),m)for(n=-1,r=t.length;++n<r;)if(48>(u=t.charCodeAt(n))||u>57){x=(46===u?i+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}p&&!l&&(t=e(t,1/0));var w=f.length+t.length+x.length,M=w<h?new Array(h-w+1).join(a):"";switch(p&&l&&(t=e(M+t,M.length?h-x.length:1/0),M=""),c){case"<":t=f+t+x+M;break;case"=":t=f+M+t+x;break;case"^":t=M.slice(0,w=M.length>>1)+f+t+x+M.slice(w);break;default:t=M+f+t+x}return o(t)}var a=(t=yn(t)).fill,c=t.align,s=t.sign,f=t.symbol,l=t.zero,h=t.width,p=t.comma,d=t.precision,v=t.type,g="$"===f?r[0]:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",_="$"===f?r[1]:/[%p]/.test(v)?u:"",y=Nl[v],m=!v||/[defgprs%]/.test(v);return d=null==d?v?6:12:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),n.toString=function(){return t+""},n}var e=t.grouping&&t.thousands?function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}}(t.grouping,t.thousands):El,r=t.currency,i=t.decimal,o=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):El,u=t.percent||"%";return{format:n,formatPrefix:function(t,e){var r=n((t=yn(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Ml(e)/3))),o=Math.pow(10,-i),u=Al[8+i/3];return function(t){return r(o*t)+u}}}};xn({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var zl=function(t){return Math.max(0,-Ml(Math.abs(t)))},Pl=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ml(n)/3)))-Ml(Math.abs(t)))},Rl=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Ml(n)-Ml(t))+1},Ll=function(){return new bn};bn.prototype={constructor:bn,reset:function(){this.s=this.t=0},add:function(t){wn(hh,t,this.t),wn(this,hh.s,this.s),this.s?this.t+=hh.t:this.s=hh.t},valueOf:function(){return this.s}};var ql,Dl,Ul,Ol,Fl,Il,Yl,Bl,Hl,jl,Xl,Vl,$l,Wl,Zl,Gl,Ql,Jl,Kl,th,nh,eh,rh,ih,oh,uh,ah,ch,sh,fh,lh,hh=new bn,ph=1e-6,dh=Math.PI,vh=dh/2,gh=dh/4,_h=2*dh,yh=180/dh,mh=dh/180,xh=Math.abs,bh=Math.atan,wh=Math.atan2,Mh=Math.cos,Th=Math.ceil,Nh=Math.exp,kh=Math.log,Sh=Math.pow,Eh=Math.sin,Ah=Math.sign||function(t){return t>0?1:t<0?-1:0},Ch=Math.sqrt,zh=Math.tan,Ph={Feature:function(t,n){Sn(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)Sn(e[r].geometry,n)}},Rh={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){En(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)En(e[r],n,0)},Polygon:function(t,n){An(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)An(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)Sn(e[r],n)}},Lh=function(t,n){t&&Ph.hasOwnProperty(t.type)?Ph[t.type](t,n):Sn(t,n)},qh=Ll(),Dh=Ll(),Uh={point:kn,lineStart:kn,lineEnd:kn,polygonStart:function(){qh.reset(),Uh.lineStart=Cn,Uh.lineEnd=zn},polygonEnd:function(){var t=+qh;Dh.add(t<0?_h+t:t),this.lineStart=this.lineEnd=this.point=kn},sphere:function(){Dh.add(_h)}},Oh=Ll(),Fh={point:Yn,lineStart:Hn,lineEnd:jn,polygonStart:function(){Fh.point=Xn,Fh.lineStart=Vn,Fh.lineEnd=$n,Oh.reset(),Uh.polygonStart()},polygonEnd:function(){Uh.polygonEnd(),Fh.point=Yn,Fh.lineStart=Hn,Fh.lineEnd=jn,qh<0?(Il=-(Bl=180),Yl=-(Hl=90)):Oh>ph?Hl=90:Oh<-ph&&(Yl=-90),Zl[0]=Il,Zl[1]=Bl}},Ih={sphere:kn,point:Qn,lineStart:Kn,lineEnd:ee,polygonStart:function(){Ih.lineStart=re,Ih.lineEnd=ie},polygonEnd:function(){Ih.lineStart=Kn,Ih.lineEnd=ee}},Yh=function(t){return function(){return t}},Bh=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e};ae.invert=ae;var Hh,jh,Xh,Vh,$h,Wh,Zh,Gh,Qh,Jh,Kh,tp=function(t){function n(n){return n=t(n[0]*mh,n[1]*mh),n[0]*=yh,n[1]*=yh,n}return t=ce(t[0]*mh,t[1]*mh,t.length>2?t[2]*mh:0),n.invert=function(n){return n=t.invert(n[0]*mh,n[1]*mh),n[0]*=yh,n[1]*=yh,n},n},np=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:kn,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},ep=function(t,n){return xh(t[0]-n[0])<ph&&xh(t[1]-n[1])<ph},rp=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(ep(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else a.push(e=new de(r,t,null,!0)),c.push(e.o=new de(r,null,e,!1)),a.push(e=new de(u,t,null,!1)),c.push(e.o=new de(u,null,e,!0))}}),a.length){for(c.sort(n),ve(a),ve(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}s=(h=h.o).z,p=!p}while(!h.v);i.lineEnd()}}},ip=Ll(),op=function(t,n){var e=n[0],r=n[1],i=[Eh(e),-Mh(e),0],o=0,u=0;ip.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+gh,d=Eh(p),v=Mh(p),g=0;g<f;++g,h=y,d=x,v=b,l=_){var _=s[g],y=_[0],m=_[1]/2+gh,x=Eh(m),b=Mh(m),w=y-h,M=w>=0?1:-1,T=M*w,N=T>dh,k=d*x;if(ip.add(wh(k*M*Eh(T),v*b+k*Mh(T))),o+=N?w+M*_h:w,N^h>=e^y>=e){var S=Un(qn(l),qn(_));In(S);var E=Un(i,S);In(E);var A=(N^w>=0?-1:1)*Tn(E[2]);(r>A||r===A&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-ph||o<ph&&ip<-ph)^1&u},up=function(t,n,e,r){return function(i){function o(n,e){t(n,e)&&i.point(n,e)}function u(t,n){v.point(t,n)}function a(){m.point=u,v.lineStart()}function c(){m.point=o,v.lineEnd()}function s(t,n){d.push([t,n]),_.point(t,n)}function f(){_.lineStart(),d=[]}function l(){s(d[0][0],d[0][1]),_.lineEnd();var t,n,e,r,o=_.clean(),u=g.result(),a=u.length;if(d.pop(),h.push(d),d=null,a)if(1&o){if(e=u[0],(n=e.length-1)>0){for(y||(i.polygonStart(),y=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else a>1&&2&o&&u.push(u.pop().concat(u.shift())),p.push(u.filter(ge))}var h,p,d,v=n(i),g=np(),_=n(g),y=!1,m={point:o,lineStart:a,lineEnd:c,polygonStart:function(){m.point=s,m.lineStart=f,m.lineEnd=l,p=[],h=[]},polygonEnd:function(){m.point=o,m.lineStart=a,m.lineEnd=c,p=Fa(p);var t=op(h,r);p.length?(y||(i.polygonStart(),y=!0),rp(p,_e,t,e,i)):t&&(y||(i.polygonStart(),y=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),y&&(i.polygonEnd(),y=!1),p=h=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};return m}},ap=up(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?dh:-dh,c=xh(o-e);xh(c-dh)<ph?(t.point(e,r=(r+u)/2>0?vh:-vh),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=dh&&(xh(e-i)<ph&&(e-=i*ph),xh(o-a)<ph&&(o-=a*ph),r=function(t,n,e,r){var i,o,u=Eh(t-e);return xh(u)>ph?bh((Eh(n)*(o=Mh(r))*Eh(e)-Eh(r)*(i=Mh(n))*Eh(t))/(i*o*u)):(n+r)/2}(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*vh,r.point(-dh,i),r.point(0,i),r.point(dh,i),r.point(dh,0),r.point(dh,-i),r.point(0,-i),r.point(-dh,-i),r.point(-dh,0),r.point(-dh,i);else if(xh(t[0]-n[0])>ph){var o=t[0]<n[0]?dh:-dh;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-dh,-vh]),cp=function(t){function n(t,n){return Mh(t)*Mh(n)>i}function e(t,n,e){var r=[1,0,0],o=Un(qn(t),qn(n)),u=Dn(o,o),a=o[0],c=u-a*a;if(!c)return!e&&t;var s=i*u/c,f=-i*a/c,l=Un(r,o),h=Fn(r,s);On(h,Fn(o,f));var p=l,d=Dn(h,p),v=Dn(p,p),g=d*d-v*(Dn(h,h)-1);if(!(g<0)){var _=Ch(g),y=Fn(p,(-d-_)/v);if(On(y,h),y=Ln(y),!e)return y;var m,x=t[0],b=n[0],w=t[1],M=n[1];b<x&&(m=x,x=b,b=m);var T=b-x,N=xh(T-dh)<ph;if(!N&&M<w&&(m=w,w=M,M=m),N||T<ph?N?w+M>0^y[1]<(xh(y[0]-x)<ph?w:M):w<=y[1]&&y[1]<=M:T>dh^(x<=y[0]&&y[0]<=b)){var k=Fn(p,(-d+_)/v);return On(k,h),[y,Ln(k)]}}}function r(n,e){var r=u?t:dh-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var i=Mh(t),o=6*mh,u=i>0,a=xh(i)>ph;return up(n,function(t){var i,o,c,s,f;return{lineStart:function(){s=c=!1,f=1},point:function(l,h){var p,d=[l,h],v=n(l,h),g=u?v?0:r(l,h):v?r(l+(l<0?dh:-dh),h):0;if(!i&&(s=c=v)&&t.lineStart(),v!==c&&(!(p=e(i,d))||ep(i,p)||ep(d,p))&&(d[0]+=ph,d[1]+=ph,v=n(d[0],d[1])),v!==c)f=0,v?(t.lineStart(),p=e(d,i),t.point(p[0],p[1])):(p=e(i,d),t.point(p[0],p[1]),t.lineEnd()),i=p;else if(a&&i&&u^v){var _;g&o||!(_=e(d,i,!0))||(f=0,u?(t.lineStart(),t.point(_[0][0],_[0][1]),t.point(_[1][0],_[1][1]),t.lineEnd()):(t.point(_[1][0],_[1][1]),t.lineEnd(),t.lineStart(),t.point(_[0][0],_[0][1])))}!v||i&&ep(i,d)||t.point(d[0],d[1]),i=d,c=v,o=g},lineEnd:function(){c&&t.lineEnd(),i=null},clean:function(){return f|(s&&c)<<1}}},function(n,e,r,i){he(i,t,o,r,n,e)},u?[0,-t]:[-dh,t-dh])},sp=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=0,f=1,l=n[0]-a,h=n[1]-c;if(u=e-a,l||!(u>0)){if(u/=l,l<0){if(u<s)return;u<f&&(f=u)}else if(l>0){if(u>f)return;u>s&&(s=u)}if(u=i-a,l||!(u<0)){if(u/=l,l<0){if(u>f)return;u>s&&(s=u)}else if(l>0){if(u<s)return;u<f&&(f=u)}if(u=r-c,h||!(u>0)){if(u/=h,h<0){if(u<s)return;u<f&&(f=u)}else if(h>0){if(u>f)return;u>s&&(s=u)}if(u=o-c,h||!(u<0)){if(u/=h,h<0){if(u>f)return;u>s&&(s=u)}else if(h>0){if(u<s)return;u<f&&(f=u)}return s>0&&(t[0]=a+s*l,t[1]=c+s*h),f<1&&(n[0]=a+f*l,n[1]=c+f*h),!0}}}}},fp=1e9,lp=-fp,hp=Ll(),pp={sphere:kn,point:kn,lineStart:function(){pp.point=xe,pp.lineEnd=me},lineEnd:kn,polygonStart:kn,polygonEnd:kn},dp=function(t){return hp.reset(),Lh(t,pp),+hp},vp=[null,null],gp={type:"LineString",coordinates:vp},_p=function(t,n){return vp[0]=t,vp[1]=n,dp(gp)},yp={Feature:function(t,n){return we(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(we(e[r].geometry,n))return!0;return!1}},mp={Sphere:function(){return!0},Point:function(t,n){return Me(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Me(e[r],n))return!0;return!1},LineString:function(t,n){return Te(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Te(e[r],n))return!0;return!1},Polygon:function(t,n){return Ne(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ne(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(we(e[r],n))return!0;return!1}},xp=function(t){return t},bp=Ll(),wp=Ll(),Mp={point:kn,lineStart:kn,lineEnd:kn,polygonStart:function(){Mp.lineStart=ze,Mp.lineEnd=Le},polygonEnd:function(){Mp.lineStart=Mp.lineEnd=Mp.point=kn,bp.add(xh(wp)),wp.reset()},result:function(){var t=bp/2;return bp.reset(),t}},Tp=1/0,Np=Tp,kp=-Tp,Sp=kp,Ep={point:function(t,n){t<Tp&&(Tp=t),t>kp&&(kp=t),n<Np&&(Np=n),n>Sp&&(Sp=n)},lineStart:kn,lineEnd:kn,polygonStart:kn,polygonEnd:kn,result:function(){var t=[[Tp,Np],[kp,Sp]];return kp=Sp=-(Np=Tp=1/0),t}},Ap=0,Cp=0,zp=0,Pp=0,Rp=0,Lp=0,qp=0,Dp=0,Up=0,Op={point:qe,lineStart:De,lineEnd:Fe,polygonStart:function(){Op.lineStart=Ie,Op.lineEnd=Ye},polygonEnd:function(){Op.point=qe,Op.lineStart=De,Op.lineEnd=Fe},result:function(){var t=Up?[qp/Up,Dp/Up]:Lp?[Pp/Lp,Rp/Lp]:zp?[Ap/zp,Cp/zp]:[NaN,NaN];return Ap=Cp=zp=Pp=Rp=Lp=qp=Dp=Up=0,t}};je.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,_h)}},result:kn};var Fp,Ip,Yp,Bp,Hp,jp=Ll(),Xp={point:kn,lineStart:function(){Xp.point=Xe},lineEnd:function(){Fp&&Ve(Ip,Yp),Xp.point=kn},polygonStart:function(){Fp=!0},polygonEnd:function(){Fp=null},result:function(){var t=+jp;return jp.reset(),t}};$e.prototype={_radius:4.5,_circle:We(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=We(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};Ge.prototype={constructor:Ge,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Vp=16,$p=Mh(30*mh),Wp=function(t,n){return+n?function(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,g){var _=s-r,y=f-i,m=_*_+y*y;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=Ch(x*x+b*b+w*w),T=Tn(w/=M),N=xh(xh(w)-1)<ph||xh(o-l)<ph?(o+l)/2:wh(b,x),k=t(N,T),S=k[0],E=k[1],A=S-r,C=E-i,z=y*A-_*C;(z*z/m>n||xh((_*A+y*C)/m-.5)>.3||u*h+a*p+c*d<$p)&&(e(r,i,o,u,a,c,S,E,N,x/=M,b/=M,w,v,g),g.point(S,E),e(S,E,N,x,b,w,s,f,l,h,p,d,v,g))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){_=NaN,w.point=o,n.lineStart()}function o(r,i){var o=qn([r,i]),u=t(r,i);e(_,y,g,m,x,b,_=u[0],y=u[1],g=r,m=o[0],x=o[1],b=o[2],Vp,n),n.point(_,y)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=_,h=y,p=m,d=x,v=b,w.point=o}function s(){e(_,y,g,m,x,b,l,h,f,p,d,v,Vp,n),w.lineEnd=u,u()}var f,l,h,p,d,v,g,_,y,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}(t,n):function(t){return Ze({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)},Zp=Ze({point:function(t,n){this.stream.point(t*mh,n*mh)}}),Gp=function(){return ir(or).scale(155.424).center([0,33.6442])},Qp=function(){return Gp().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},Jp=ur(function(t){return Ch(2/(1+t))});Jp.invert=ar(function(t){return 2*Tn(t/2)});var Kp=ur(function(t){return(t=Mn(t))&&t/Eh(t)});Kp.invert=ar(function(t){return t});cr.invert=function(t,n){return[t,2*bh(Nh(n))-vh]};hr.invert=hr;dr.invert=ar(bh);gr.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,u=o*o;r-=e=(r*(1.007226+o*(.015085+u*(.028874*o-.044475-.005916*u)))-n)/(1.007226+o*(.045255+u*(.259866*o-.311325-.005916*11*u)))}while(xh(e)>ph&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]};_r.invert=ar(Tn);yr.invert=ar(function(t){return 2*bh(t)});mr.invert=function(t,n){return[-n,2*bh(Nh(t))-vh]};Er.prototype=Tr.prototype={constructor:Er,count:function(){return this.eachAfter(Mr)},each:function(t){var n,e,r,i,o=this,u=[o];do{for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Tr(this).eachBefore(kr)}};var td=Array.prototype.slice,nd=function(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(td.call(t))).length,o=[];r<i;)n=t[r],e&&Cr(e,n)?++r:(e=function(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return Pr(t[0],t[1]);case 3:return Rr(t[0],t[1],t[2])}}(o=function(t,n){var e,r;if(zr(n,t))return[n];for(e=0;e<t.length;++e)if(Ar(n,t[e])&&zr(Pr(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(Ar(Pr(t[e],t[r]),n)&&Ar(Pr(t[e],n),t[r])&&Ar(Pr(t[r],n),t[e])&&zr(Rr(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}(o,n)),r=0);return e},ed=function(t){return function(){return t}},rd=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},id=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)(o=u[a]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},od="$",ud={depth:-1},ad={};Jr.prototype=Object.create(Er.prototype);var cd=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)(o=u[a]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},sd=(1+Math.sqrt(5))/2,fd=function t(n){function e(t,e,r,i,o){Kr(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(sd),ld=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(c=(a=u[l]).children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?id(a,e,r,i,r+=(o-r)*a.value/p):cd(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=Kr(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(sd),hd=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},pd=[].slice,dd={};ei.prototype=ui.prototype={constructor:ei,defer:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("defer after await");if(null!=this._error)return this;var n=pd.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),ri(this),this},abort:function(){return null==this._error&&ii(this,new Error("abort")),this},await:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=function(n,e){t.apply(null,[n].concat(e))},oi(this),this},awaitAll:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=t,oi(this),this}};var vd=function(){return Math.random()},gd=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(vd),_d=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(vd),yd=function t(n){function e(){var t=_d.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(vd),md=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(vd),xd=function t(n){function e(t){var e=md.source(n)(t);return function(){return e()/t}}return e.source=t,e}(vd),bd=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(vd),wd=function(t,n){function e(t){var n,e=f.status;if(!e&&function(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}(f)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,f)}catch(t){return void c.call("error",r,t)}else n=f;c.call("load",r,n)}else c.call("error",r,t)}var r,i,o,u,c=a("beforesend","progress","load","error"),s=Kt(),f=new XMLHttpRequest,l=null,h=null,p=0;if("undefined"==typeof XDomainRequest||"withCredentials"in f||!/^(http(s)?:)?\/\//.test(t)||(f=new XDomainRequest),"onload"in f?f.onload=f.onerror=f.ontimeout=e:f.onreadystatechange=function(t){f.readyState>3&&e(t)},f.onprogress=function(t){c.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?s.get(t):(null==n?s.remove(t):s.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(p=+t,r):p},user:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},password:function(t){return arguments.length<1?h:(h=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return f.open(n,t,!0,l,h),null==i||s.has("accept")||s.set("accept",i+",*/*"),f.setRequestHeader&&s.each(function(t,n){f.setRequestHeader(n,t)}),null!=i&&f.overrideMimeType&&f.overrideMimeType(i),null!=u&&(f.responseType=u),p>0&&(f.timeout=p),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=function(t){return function(n,e){t(null==n?e:null)}}(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),c.call("beforesend",r,f),f.send(null==e?null:e),r},abort:function(){return f.abort(),r},on:function(){var t=c.on.apply(c,arguments);return t===c?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},Md=function(t,n){return function(e,r){var i=wd(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},Td=Md("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),Nd=Md("application/json",function(t){return JSON.parse(t.responseText)}),kd=Md("text/plain",function(t){return t.responseText}),Sd=Md("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),Ed=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=wd(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(function(t,n){return function(e){return t(e.responseText,n)}}(n,r=t)):r},o.row(r),i?o.get(i):o}},Ad=Ed("text/csv",ul),Cd=Ed("text/tab-separated-values",ll),zd=Array.prototype,Pd=zd.map,Rd=zd.slice,Ld={name:"implicit"},qd=function(t){return function(){return t}},Dd=function(t){return+t},Ud=[0,1],Od=function(n,e,i){var o,u=n[0],a=n[n.length-1],c=r(u,a,null==e?10:e);switch((i=yn(null==i?",f":i)).type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=Pl(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Rl(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=zl(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},Fd=function(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},Id=new Date,Yd=new Date,Bd=Si(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Bd.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Si(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Bd:null};var Hd=Bd.range,jd=6e4,Xd=6048e5,Vd=Si(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),$d=Vd.range,Wd=Si(function(t){t.setTime(Math.floor(t/jd)*jd)},function(t,n){t.setTime(+t+n*jd)},function(t,n){return(n-t)/jd},function(t){return t.getMinutes()}),Zd=Wd.range,Gd=Si(function(t){var n=t.getTimezoneOffset()*jd%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Qd=Gd.range,Jd=Si(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*jd)/864e5},function(t){return t.getDate()-1}),Kd=Jd.range,tv=Ei(0),nv=Ei(1),ev=Ei(2),rv=Ei(3),iv=Ei(4),ov=Ei(5),uv=Ei(6),av=tv.range,cv=nv.range,sv=ev.range,fv=rv.range,lv=iv.range,hv=ov.range,pv=uv.range,dv=Si(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),vv=dv.range,gv=Si(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});gv.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Si(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var _v=gv.range,yv=Si(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*jd)},function(t,n){return(n-t)/jd},function(t){return t.getUTCMinutes()}),mv=yv.range,xv=Si(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),bv=xv.range,wv=Si(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),Mv=wv.range,Tv=Ai(0),Nv=Ai(1),kv=Ai(2),Sv=Ai(3),Ev=Ai(4),Av=Ai(5),Cv=Ai(6),zv=Tv.range,Pv=Nv.range,Rv=kv.range,Lv=Sv.range,qv=Ev.range,Dv=Av.range,Uv=Cv.range,Ov=Si(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Fv=Ov.range,Iv=Si(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Iv.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Si(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Yv,Bv=Iv.range,Hv={"-":"",_:" ",0:"0"},jv=/^\s*\d+/,Xv=/^%/,Vv=/[\\^$*+?|[\]().{}]/g;Yo({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var $v=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Wv=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Zv=1e3,Gv=60*Zv,Qv=60*Gv,Jv=24*Qv,Kv=7*Jv,tg=30*Jv,ng=365*Jv,eg=function(t){return t.match(/.{6}/g).map(function(t){return"#"+t})},rg=eg("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),ig=eg("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),og=eg("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),ug=eg("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),ag=As(rt(300,.5,0),rt(-240,.5,1)),cg=As(rt(-100,.75,.35),rt(80,1.5,.8)),sg=As(rt(260,.75,.35),rt(80,1.5,.8)),fg=rt(),lg=Xo(eg("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),hg=Xo(eg("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),pg=Xo(eg("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),dg=Xo(eg("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),vg=function(t){return function(){return t}},gg=Math.abs,_g=Math.atan2,yg=Math.cos,mg=Math.max,xg=Math.min,bg=Math.sin,wg=Math.sqrt,Mg=1e-12,Tg=Math.PI,Ng=Tg/2,kg=2*Tg;tu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Sg=function(t){return new tu(t)},Eg=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=Vt())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}var n=nu,e=eu,r=vg(!0),i=null,o=Sg,u=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:vg(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:vg(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:vg(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},Ag=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,g=new Array(d),_=new Array(d);for(null==a&&(s=c(p=Vt())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(g[l],_[l]);s.lineEnd(),s.areaEnd()}v&&(g[n]=+e(h,n,t),_[n]=+i(h,n,t),s.point(r?+r(h,n,t):g[n],o?+o(h,n,t):_[n]))}if(p)return s=null,p+""||null}function n(){return Eg().defined(u).curve(c).context(a)}var e=nu,r=null,i=vg(0),o=eu,u=vg(!0),a=null,c=Sg,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:vg(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:vg(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:vg(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:vg(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:vg(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:vg(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:vg(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},Cg=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},zg=function(t){return t},Pg=iu(Sg);ru.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Rg=function(){return ou(Eg().curve(Pg))},Lg=function(){var t=Ag().curve(Pg),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return ou(e())},delete t.lineX0,t.lineEndAngle=function(){return ou(r())},delete t.lineX1,t.lineInnerRadius=function(){return ou(i())},delete t.lineY0,t.lineOuterRadius=function(){return ou(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(iu(t)):n()._curve},t},qg=function(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]},Dg=Array.prototype.slice,Ug={draw:function(t,n){var e=Math.sqrt(n/Tg);t.moveTo(e,0),t.arc(0,0,e,0,kg)}},Og={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Fg=Math.sqrt(1/3),Ig=2*Fg,Yg={draw:function(t,n){var e=Math.sqrt(n/Ig),r=e*Fg;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Bg=Math.sin(Tg/10)/Math.sin(7*Tg/10),Hg=Math.sin(kg/10)*Bg,jg=-Math.cos(kg/10)*Bg,Xg={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Hg*e,i=jg*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=kg*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Vg={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},$g=Math.sqrt(3),Wg={draw:function(t,n){var e=-Math.sqrt(n/(3*$g));t.moveTo(0,2*e),t.lineTo(-$g*e,-e),t.lineTo($g*e,-e),t.closePath()}},Zg=-.5,Gg=Math.sqrt(3)/2,Qg=1/Math.sqrt(12),Jg=3*(Qg/2+1),Kg={draw:function(t,n){var e=Math.sqrt(n/Jg),r=e/2,i=e*Qg,o=r,u=e*Qg+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Zg*r-Gg*i,Gg*r+Zg*i),t.lineTo(Zg*o-Gg*u,Gg*o+Zg*u),t.lineTo(Zg*a-Gg*c,Gg*a+Zg*c),t.lineTo(Zg*r+Gg*i,Zg*i-Gg*r),t.lineTo(Zg*o+Gg*u,Zg*u-Gg*o),t.lineTo(Zg*a+Gg*c,Zg*c-Gg*a),t.closePath()}},t_=[Ug,Og,Yg,Vg,Xg,Wg,Kg],n_=function(){};pu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hu(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};du.prototype={areaStart:n_,areaEnd:n_,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:hu(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};vu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:hu(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};gu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var e_=function t(n){function e(t){return 1===n?new pu(t):new gu(t,n)}return e.beta=function(n){return t(+n)},e}(.85);yu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:_u(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:_u(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var r_=function t(n){function e(t){return new yu(t,n)}return e.tension=function(n){return t(+n)},e}(0);mu.prototype={areaStart:n_,areaEnd:n_,lineStart:function(){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,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:_u(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var i_=function t(n){function e(t){return new mu(t,n)}return e.tension=function(n){return t(+n)},e}(0);xu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:_u(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var o_=function t(n){function e(t){return new xu(t,n)}return e.tension=function(n){return t(+n)},e}(0);wu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:bu(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var u_=function t(n){function e(t){return n?new wu(t,n):new yu(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Mu.prototype={areaStart:n_,areaEnd:n_,lineStart:function(){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,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bu(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var a_=function t(n){function e(t){return n?new Mu(t,n):new mu(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Tu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bu(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var c_=function t(n){function e(t){return n?new Tu(t,n):new xu(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Nu.prototype={areaStart:n_,areaEnd:n_,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};Cu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Au(this,this._t0,Eu(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,Au(this,Eu(this,e=Su(this,t,n)),e);break;default:Au(this,this._t0,e=Su(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(zu.prototype=Object.create(Cu.prototype)).point=function(t,n){Cu.prototype.point.call(this,n,t)},Pu.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Ru.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=Lu(t),i=Lu(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};qu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var s_=function(t,n){if((i=t.length)>1)for(var e,r,i,o=1,u=t[n[0]],a=u.length;o<i;++o)for(r=u,u=t[n[o]],e=0;e<a;++e)u[e][1]+=u[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]},f_=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},l_=function(t){var n=t.map(Uu);return f_(t).sort(function(t,e){return n[t]-n[e]})},h_=function(t){return function(){return t}};Iu.prototype={constructor:Iu,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=ju(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(Bu(this,e),e=(t=e).U),e.C=!1,r.C=!0,Hu(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(Hu(this,e),e=(t=e).U),e.C=!1,r.C=!0,Bu(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?ju(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,Bu(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,Hu(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,Bu(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,Hu(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,Bu(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,Hu(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var p_,d_,v_,g_,__,y_=[],m_=[],x_=1e-6,b_=1e-12;ca.prototype={constructor:ca,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return Qu(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,f=(s=n[i[c]]).left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&ua(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do{i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}})}while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var w_=function(t){return function(){return t}};sa.prototype={constructor:sa,scale:function(t){return 1===t?this:new sa(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new sa(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var M_=new sa(1,0,0);fa.prototype=sa.prototype;var T_=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()};t.version="4.12.0",t.bisect=ba,t.bisectRight=ba,t.bisectLeft=wa,t.ascending=ya,t.bisector=ma,t.cross=function(t,e,r){var i,o,u,a,c=t.length,s=e.length,f=new Array(c*s);for(null==r&&(r=n),i=u=0;i<c;++i)for(a=t[i],o=0;o<s;++o,++u)f[u]=r(a,e[o]);return f},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=Na,t.extent=ka,t.histogram=function(){function t(t){var o,u,a=t.length,c=new Array(a);for(o=0;o<a;++o)c[o]=n(t[o],o,t);var s=e(c),f=s[0],l=s[1],h=i(c,f,l);Array.isArray(h)||(h=r(f,l,h),h=Pa(Math.ceil(f/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=f;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var d,v=new Array(p+1);for(o=0;o<=p;++o)(d=v[o]=[]).x0=o>0?h[o-1]:f,d.x1=o<p?h[o]:l;for(o=0;o<a;++o)f<=(u=c[o])&&u<=l&&v[ba(h,u,0,p)].push(t[o]);return v}var n=za,e=ka,i=Ua;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:Ca(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:Ca([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(i="function"==typeof n?n:Ca(Array.isArray(n)?Ea.call(n):n),t):i},t},t.thresholdFreedmanDiaconis=function(t,n,e){return t=Aa.call(t,Ma).sort(ya),Math.ceil((e-n)/(2*(Oa(t,.75)-Oa(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*Na(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=Ua,t.max=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r},t.mean=function(t,n){var e,r=t.length,i=r,o=-1,u=0;if(null==n)for(;++o<r;)isNaN(e=Ma(t[o]))?--i:u+=e;else for(;++o<r;)isNaN(e=Ma(n(t[o],o,t)))?--i:u+=e;if(i)return u/i},t.median=function(t,n){var e,r=t.length,i=-1,o=[];if(null==n)for(;++i<r;)isNaN(e=Ma(t[i]))||o.push(e);else for(;++i<r;)isNaN(e=Ma(n(t[i],i,t)))||o.push(e);return Oa(o.sort(ya),.5)},t.merge=Fa,t.min=Ia,t.pairs=function(t,e){null==e&&(e=n);for(var r=0,i=t.length-1,o=t[0],u=new Array(i<0?0:i);r<i;)u[r]=e(o,o=t[++r]);return u},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=Oa,t.range=Pa,t.scan=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(null==n&&(n=ya);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=Da,t.tickIncrement=e,t.tickStep=r,t.transpose=Ya,t.variance=Ta,t.zip=function(){return Ya(arguments)},t.axisTop=function(t){return u(ja,t)},t.axisRight=function(t){return u(Xa,t)},t.axisBottom=function(t){return u(Va,t)},t.axisLeft=function(t){return u($a,t)},t.brush=function(){return jt(qf)},t.brushX=function(){return jt(Rf)},t.brushY=function(){return jt(Lf)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=Pa(l),d=[],v=[],g=v.groups=new Array(l),_=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(Pa(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),c=(o=Vf(0,Xf-n*l)/o)?n:Xf/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var y=p[s],m=d[y][f],x=t[y][m],b=u,w=u+=x*o;_[m*l+y]={index:y,subindex:m,startAngle:b,endAngle:w,value:x}}g[y]={index:y,startAngle:a,endAngle:u,value:h[y]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=_[f*l+s],T=_[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Vf(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=function(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}(n))._=n,t):i&&i._},t},t.ribbon=function(){function t(){var t,a=$f.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-jf,h=o.apply(this,a)-jf,p=f*Yf(l),d=f*Bf(l),v=+r.apply(this,(a[0]=s,a)),g=i.apply(this,a)-jf,_=o.apply(this,a)-jf;if(u||(u=t=Vt()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===g&&h===_||(u.quadraticCurveTo(0,0,v*Yf(g),v*Bf(g)),u.arc(0,0,v,g,_)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+""||null}var n=$t,e=Wt,r=Zt,i=Gt,o=Qt,u=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:Wf(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:Wf(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:Wf(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t},t.nest=function(){function t(n,i,u,a){if(i>=o.length)return null!=e&&n.sort(e),null!=r?r(n):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=Kt(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+""))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,tn,nn)},map:function(n){return t(n,0,en,rn)},entries:function(e){return n(t(e,0,en,rn),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},t.set=un,t.map=Kt,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=O,t.rgb=B,t.hsl=X,t.lab=Z,t.hcl=nt,t.cubehelix=rt,t.dispatch=a,t.drag=function(){function n(t){t.on("mousedown.drag",e).filter(y).on("touchstart.drag",o).on("touchmove.drag",u).on("touchend.drag touchcancel.drag",c).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!p&&v.apply(this,arguments)){var n=s("mouse",g.apply(this,arguments),cc,this,arguments);n&&(vc(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),yc(t.event.view),A(),h=!1,f=t.event.clientX,l=t.event.clientY,n("start"))}}function r(){if(_c(),!h){var n=t.event.clientX-f,e=t.event.clientY-l;h=n*n+e*e>w}m.mouse("drag")}function i(){vc(t.event.view).on("mousemove.drag mouseup.drag",null),C(t.event.view,h),_c(),m.mouse("end")}function o(){if(v.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=g.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=s(r[n].identifier,i,gc,this,arguments))&&(A(),e("start"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=m[r[n].identifier])&&(_c(),e("drag"))}function c(){var n,e,r=t.event.changedTouches,i=r.length;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),n=0;n<i;++n)(e=m[r[n].identifier])&&(A(),e("end"))}function s(e,r,i,o,u){var a,c,s,f=i(r,e),l=x.copy();if(d(new z(n,"beforestart",a,e,b,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=_.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,v=f;switch(h){case"start":m[e]=t,p=b++;break;case"end":delete m[e],--b;case"drag":f=i(r,e),p=b}d(new z(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-v[0],f[1]-v[1],l),l.apply,l,[h,o,u])}}var f,l,h,p,v=P,g=R,_=L,y=q,m={},x=a("start","drag","end"),b=0,w=0;return n.filter=function(t){return arguments.length?(v="function"==typeof t?t:mc(!!t),n):v},n.container=function(t){return arguments.length?(g="function"==typeof t?t:mc(t),n):g},n.subject=function(t){return arguments.length?(_="function"==typeof t?t:mc(t),n):_},n.touchable=function(t){return arguments.length?(y="function"==typeof t?t:mc(!!t),n):y},n.on=function(){var t=x.on.apply(x,arguments);return t===x?n:t},n.clickDistance=function(t){return arguments.length?(w=(t=+t)*t,n):Math.sqrt(w)},n},t.dragDisable=yc,t.dragEnable=C,t.dsvFormat=il,t.csvParse=ul,t.csvParseRows=al,t.csvFormat=cl,t.csvFormatRows=sl,t.tsvParse=ll,t.tsvParseRows=hl,t.tsvFormat=pl,t.tsvFormatRows=dl,t.easeLinear=function(t){return+t},t.easeQuad=zt,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=zt,t.easeCubic=Pt,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=Pt,t.easePoly=rf,t.easePolyIn=nf,t.easePolyOut=ef,t.easePolyInOut=rf,t.easeSin=Rt,t.easeSinIn=function(t){return 1-Math.cos(t*uf)},t.easeSinOut=function(t){return Math.sin(t*uf)},t.easeSinInOut=Rt,t.easeExp=Lt,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=Lt,t.easeCircle=qt,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=qt,t.easeBounce=Dt,t.easeBounceIn=function(t){return 1-Dt(1-t)},t.easeBounceOut=Dt,t.easeBounceInOut=function(t){return((t*=2)<=1?1-Dt(1-t):Dt(t-1)+1)/2},t.easeBack=mf,t.easeBackIn=_f,t.easeBackOut=yf,t.easeBackInOut=mf,t.easeElastic=wf,t.easeElasticIn=bf,t.easeElasticOut=wf,t.easeElasticInOut=Mf,t.forceCenter=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)u+=(i=r[e]).x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)(i=r[e]).x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},t.forceCollide=function(t){function n(){for(var t,n,r,c,s,f,l,h=i.length,p=0;p<a;++p)for(n=sn(i,hn,pn).visitAfter(e),t=0;t<h;++t)r=i[t],f=o[r.index],l=f*f,c=r.x+r.vx,s=r.y+r.vy,n.visit(function(t,n,e,i,o){var a=t.data,h=t.r,p=f+h;if(!a)return n>c+p||i<c-p||e>s+p||o<s-p;if(a.index>r.index){var d=c-a.x-a.vx,v=s-a.y-a.vy,g=d*d+v*v;g<p*p&&(0===d&&(d=gl(),g+=d*d),0===v&&(v=gl(),g+=v*v),g=(p-(g=Math.sqrt(g)))/g*u,r.vx+=(d*=g)*(p=(h*=h)/(l+h)),r.vy+=(v*=g)*p,a.vx-=d*(p=1-p),a.vy-=v*p)}})}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1;return"function"!=typeof t&&(t=vl(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:vl(+e),r(),n):t},n},t.forceLink=function(t){function n(n){for(var e=0,r=t.length;e<p;++e)for(var i,a,c,f,l,h,d,v=0;v<r;++v)a=(i=t[v]).source,f=(c=i.target).x+c.vx-a.x-a.vx||gl(),l=c.y+c.vy-a.y-a.vy||gl(),f*=h=((h=Math.sqrt(f*f+l*l))-u[v])/h*n*o[v],l*=h,c.vx-=f*(d=s[v]),c.vy-=l*d,a.vx+=f*(d=1-d),a.vy+=l*d}function e(){if(a){var n,e,l=a.length,h=t.length,p=Kt(a,f);for(n=0,c=new Array(l);n<h;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=vn(p,e.source)),"object"!=typeof e.target&&(e.target=vn(p,e.target)),c[e.source.index]=(c[e.source.index]||0)+1,c[e.target.index]=(c[e.target.index]||0)+1;for(n=0,s=new Array(h);n<h;++n)e=t[n],s[n]=c[e.source.index]/(c[e.source.index]+c[e.target.index]);o=new Array(h),r(),u=new Array(h),i()}}function r(){if(a)for(var n=0,e=t.length;n<e;++n)o[n]=+l(t[n],n,t)}function i(){if(a)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}var o,u,a,c,s,f=dn,l=function(t){return 1/Math.min(c[t.source.index],c[t.target.index])},h=vl(30),p=1;return null==t&&(t=[]),n.initialize=function(t){a=t,e()},n.links=function(r){return arguments.length?(t=r,e(),n):t},n.id=function(t){return arguments.length?(f=t,n):f},n.iterations=function(t){return arguments.length?(p=+t,n):p},n.strength=function(t){return arguments.length?(l="function"==typeof t?t:vl(+t),r(),n):l},n.distance=function(t){return arguments.length?(h="function"==typeof t?t:vl(+t),i(),n):h},n},t.forceManyBody=function(){function t(t){var n,a=i.length,c=sn(i,gn,_n).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0,c=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(u+=n.value,c+=e,r+=e*n.x,i+=e*n.y);t.x=r/c,t.y=i/c}else{(n=t).x=n.data.x,n.y=n.data.y;do{u+=a[n.data.index]}while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=gl(),p+=i*i),0===c&&(c=gl(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=gl(),p+=i*i),0===c&&(c=gl(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do{t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h)}while(t=t.next)}}var i,o,u,a,c=vl(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c="function"==typeof e?e:vl(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},t.forceRadial=function(t,n,e){function r(t){for(var r=0,i=o.length;r<i;++r){var c=o[r],s=c.x-n||1e-6,f=c.y-e||1e-6,l=Math.sqrt(s*s+f*f),h=(a[r]-l)*u[r]*t/l;c.vx+=s*h,c.vy+=f*h}}function i(){if(o){var n,e=o.length;for(u=new Array(e),a=new Array(e),n=0;n<e;++n)a[n]=+t(o[n],n,o),u[n]=isNaN(a[n])?0:+c(o[n],n,o)}}var o,u,a,c=vl(.1);return"function"!=typeof t&&(t=vl(+t)),null==n&&(n=0),null==e&&(e=0),r.initialize=function(t){o=t,i()},r.strength=function(t){return arguments.length?(c="function"==typeof t?t:vl(+t),i(),r):c},r.radius=function(n){return arguments.length?(t="function"==typeof n?n:vl(+n),i(),r):t},r.x=function(t){return arguments.length?(n=+t,r):n},r.y=function(t){return arguments.length?(e=+t,r):e},r},t.forceSimulation=function(t){function n(){e(),d.call("tick",o),u<c&&(p.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(u+=(f-u)*s,h.each(function(t){t(u)}),n=0;n<r;++n)null==(e=t[n]).fx?e.x+=e.vx*=l:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=l:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=xl*Math.sqrt(e),o=e*bl;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,c=.001,s=1-Math.pow(c,1/300),f=0,l=.6,h=Kt(),p=mt(n),d=a("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return p.restart(n),o},stop:function(){return p.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),h.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(c=+t,o):c},alphaDecay:function(t){return arguments.length?(s=+t,o):+s},alphaTarget:function(t){return arguments.length?(f=+t,o):f},velocityDecay:function(t){return arguments.length?(l=1-t,o):1-l},force:function(t,n){return arguments.length>1?(null==n?h.remove(t):h.set(t,i(n)),o):h.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)(u=(i=n-(a=t[s]).x)*i+(o=e-a.y)*o)<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},t.forceX=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)(n=r[e]).vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=vl(.1);return"function"!=typeof t&&(t=vl(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:vl(+t),e(),n):u},n.x=function(r){return arguments.length?(t="function"==typeof r?r:vl(+r),e(),n):t},n},t.forceY=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)(n=r[e]).vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=vl(.1);return"function"!=typeof t&&(t=vl(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:vl(+t),e(),n):u},n.y=function(r){return arguments.length?(t="function"==typeof r?r:vl(+r),e(),n):t},n},t.formatDefaultLocale=xn,t.formatLocale=Cl,t.formatSpecifier=yn,t.precisionFixed=zl,t.precisionPrefix=Pl,t.precisionRound=Rl,t.geoArea=function(t){return Dh.reset(),Lh(t,Uh),2*Dh},t.geoBounds=function(t){var n,e,r,i,o,u,a;if(Hl=Bl=-(Il=Yl=1/0),Wl=[],Lh(t,Fh),e=Wl.length){for(Wl.sort(Zn),n=1,o=[r=Wl[0]];n<e;++n)Gn(r,(i=Wl[n])[0])||Gn(r,i[1])?(Wn(r[0],i[1])>Wn(r[0],r[1])&&(r[1]=i[1]),Wn(i[0],r[1])>Wn(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(a=Wn(r[1],i[0]))>u&&(u=a,Il=i[0],Bl=r[1])}return Wl=Zl=null,Il===1/0||Yl===1/0?[[NaN,NaN],[NaN,NaN]]:[[Il,Yl],[Bl,Hl]]},t.geoCentroid=function(t){Gl=Ql=Jl=Kl=th=nh=eh=rh=ih=oh=uh=0,Lh(t,Ih);var n=ih,e=oh,r=uh,i=n*n+e*e+r*r;return i<1e-12&&(n=nh,e=eh,r=rh,Ql<ph&&(n=Jl,e=Kl,r=th),(i=n*n+e*e+r*r)<1e-12)?[NaN,NaN]:[wh(e,n)*yh,Tn(r/Ch(i))*yh]},t.geoCircle=function(){function t(){var t=r.apply(this,arguments),a=i.apply(this,arguments)*mh,c=o.apply(this,arguments)*mh;return n=[],e=ce(-t[0]*mh,-t[1]*mh,0).invert,he(u,a,c,1),t={type:"Polygon",coordinates:[n]},n=e=null,t}var n,e,r=Yh([0,0]),i=Yh(90),o=Yh(6),u={point:function(t,r){n.push(t=e(t,r)),t[0]*=yh,t[1]*=yh}};return t.center=function(n){return arguments.length?(r="function"==typeof n?n:Yh([+n[0],+n[1]]),t):r},t.radius=function(n){return arguments.length?(i="function"==typeof n?n:Yh(+n),t):i},t.precision=function(n){return arguments.length?(o="function"==typeof n?n:Yh(+n),t):o},t},t.geoClipAntimeridian=ap,t.geoClipCircle=cp,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=ye(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},t.geoClipRectangle=ye,t.geoContains=function(t,n){return(t&&yp.hasOwnProperty(t.type)?yp[t.type]:we)(t,n)},t.geoDistance=_p,t.geoGraticule=Ce,t.geoGraticule10=function(){return Ce()()},t.geoInterpolate=function(t,n){var e=t[0]*mh,r=t[1]*mh,i=n[0]*mh,o=n[1]*mh,u=Mh(r),a=Eh(r),c=Mh(o),s=Eh(o),f=u*Mh(e),l=u*Eh(e),h=c*Mh(i),p=c*Eh(i),d=2*Tn(Ch(Nn(o-r)+u*c*Nn(i-e))),v=Eh(d),g=d?function(t){var n=Eh(t*=d)/v,e=Eh(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[wh(i,r)*yh,wh(o,Ch(r*r+i*i))*yh]}:function(){return[e*yh,r*yh]};return g.distance=d,g},t.geoLength=dp,t.geoPath=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Lh(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return Lh(t,r(Mp)),Mp.result()},e.measure=function(t){return Lh(t,r(Xp)),Xp.result()},e.bounds=function(t){return Lh(t,r(Ep)),Ep.result()},e.centroid=function(t){return Lh(t,r(Op)),Op.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,xp):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new $e):new je(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},t.geoAlbers=Qp,t.geoAlbersUsa=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=Qp(),s=Gp().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=Gp().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=function(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+ph,a+.12*e+ph],[r-.214*e-ph,a+.234*e-ph]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+ph,a+.166*e+ph],[r-.115*e-ph,a+.234*e-ph]]).stream(l),n()},t.fitExtent=function(n,e){return Je(t,n,e)},t.fitSize=function(n,e){return Ke(t,n,e)},t.fitWidth=function(n,e){return tr(t,n,e)},t.fitHeight=function(n,e){return nr(t,n,e)},t.scale(1070)},t.geoAzimuthalEqualArea=function(){return er(Jp).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=Jp,t.geoAzimuthalEquidistant=function(){return er(Kp).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=Kp,t.geoConicConformal=function(){return ir(lr).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=lr,t.geoConicEqualArea=Gp,t.geoConicEqualAreaRaw=or,t.geoConicEquidistant=function(){return ir(pr).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=pr,t.geoEquirectangular=function(){return er(hr).scale(152.63)},t.geoEquirectangularRaw=hr,t.geoGnomonic=function(){return er(dr).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=dr,t.geoIdentity=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=xp,p=null,d=xp;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},postclip:function(i){return arguments.length?(d=i,p=n=e=r=null,t()):d},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,xp):ye(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=vr((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=vr(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=vr(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=vr(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Je(u,t,n)},fitSize:function(t,n){return Ke(u,t,n)},fitWidth:function(t,n){return tr(u,t,n)},fitHeight:function(t,n){return nr(u,t,n)}}},t.geoProjection=er,t.geoProjectionMutator=rr,t.geoMercator=function(){return sr(cr).scale(961/_h)},t.geoMercatorRaw=cr,t.geoNaturalEarth1=function(){return er(gr).scale(175.295)},t.geoNaturalEarth1Raw=gr,t.geoOrthographic=function(){return er(_r).scale(249.5).clipAngle(90+ph)},t.geoOrthographicRaw=_r,t.geoStereographic=function(){return er(yr).scale(250).clipAngle(142)},t.geoStereographicRaw=yr,t.geoTransverseMercator=function(){var t=sr(mr),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=mr,t.geoRotation=tp,t.geoStream=Lh,t.geoTransform=function(t){return{stream:Ze(t)}},t.cluster=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=function(t){return t.reduce(br,0)/t.length}(e),t.y=function(t){return 1+t.reduce(wr,0)}(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=function(t){for(var n;n=t.children;)t=n[0];return t}(t),c=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=xr,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},t.hierarchy=Tr,t.pack=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Br(n)).eachAfter(Hr(i,.5)).eachBefore(jr(1)):t.eachBefore(Br(Yr)).eachAfter(Hr(Ir,1)).eachAfter(Hr(i,t.r/Math.min(e,r))).eachBefore(jr(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Ir;return t.radius=function(e){return arguments.length?(n=null==e?null:Fr(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:ed(+n),t):i},t},t.packSiblings=function(t){return Or(t),t},t.packEnclose=nd,t.partition=function(){function t(t){var o=t.height+1;return t.x0=t.y0=r,t.x1=n,t.y1=e/o,t.eachBefore(function(t,n){return function(e){e.children&&id(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var i=e.x0,o=e.y0,u=e.x1-r,a=e.y1-r;u<i&&(i=u=(i+u)/2),a<o&&(o=a=(o+a)/2),e.x0=i,e.y0=o,e.x1=u,e.y1=a}}(e,o)),i&&t.eachBefore(rd),t}var n=1,e=1,r=0,i=!1;return t.round=function(n){return arguments.length?(i=!!n,t):i},t.size=function(r){return arguments.length?(n=+r[0],e=+r[1],t):[n,e]},t.padding=function(n){return arguments.length?(r=+n,t):r},t},t.stratify=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new Er(r),null!=(c=n(r,i,t))&&(c+="")&&(h[s=od+(a.id=c)]=s in h?ad:a);for(i=0;i<f;++i)if(a=l[i],null!=(c=e(t[i],i,t))&&(c+="")){if(!(u=h[od+c]))throw new Error("missing: "+c);if(u===ad)throw new Error("ambiguous: "+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error("multiple roots");o=a}if(!o)throw new Error("no root");if(o.parent=ud,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(Sr),o.parent=null,f>0)throw new Error("cycle");return o}var n=Xr,e=Vr;return t.id=function(e){return arguments.length?(n=Fr(e),t):n},t.parentId=function(n){return arguments.length?(e=Fr(n),t):e},t},t.tree=function(){function t(t){var c=function(t){for(var n,e,r,i,o,u=new Jr(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new Jr(r[i],i)),e.parent=n;return(u.parent=new Jr(null,0)).children=[u],u}(t);if(c.eachAfter(n),c.parent.m=-c.z,c.eachBefore(e),a)t.eachBefore(r);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:i(s,f)/2,p=h-s.x,d=o/(f.x+h+p),v=u/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,r=t.i?e[t.i-1]:null;if(n){(function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)})(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+i(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+i(t._,r._));t.parent.A=function(t,n,e){if(n){for(var r,o=t,u=t,a=n,c=o.parent.children[0],s=o.m,f=u.m,l=a.m,h=c.m;a=Zr(a),o=Wr(o),a&&o;)c=Wr(c),(u=Zr(u)).a=t,(r=a.z+l-o.z-s+i(a._,o._))>0&&(Gr(Qr(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=o.m,h+=c.m,f+=u.m;a&&!Zr(u)&&(u.t=a,u.m+=l-f),o&&!Wr(c)&&(c.t=o,c.m+=s-h,e=t)}return e}(t,r,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t){t.x*=o,t.y=t.depth*u}var i=$r,o=1,u=1,a=null;return t.separation=function(n){return arguments.length?(i=n,t):i},t.size=function(n){return arguments.length?(a=!1,o=+n[0],u=+n[1],t):a?null:[o,u]},t.nodeSize=function(n){return arguments.length?(a=!0,o=+n[0],u=+n[1],t):a?[o,u]:null},t},t.treemap=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(rd),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=fd,r=!1,i=1,o=1,u=[0],a=Ir,c=Ir,s=Ir,f=Ir,l=Ir;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Fr(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a="function"==typeof n?n:ed(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c="function"==typeof n?n:ed(+n),t):c},t.paddingRight=function(n){return arguments.length?(s="function"==typeof n?n:ed(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f="function"==typeof n?n:ed(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:ed(+n),t):l},t},t.treemapBinary=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,void(s.y1=a)}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}h-f[p-1]<f[p]-h&&t+1<p&&--p;var g=f[p]-l,_=e-g;if(u-r>a-i){var y=(r*_+u*g)/e;o(t,p,g,r,i,y,a),o(p,n,_,y,i,u,a)}else{var m=(i*_+a*g)/e;o(t,p,g,r,i,u,m),o(p,n,_,r,m,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)},t.treemapDice=id,t.treemapSlice=cd,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?cd:id)(t,n,e,r,i)},t.treemapSquarify=fd,t.treemapResquarify=ld,t.interpolate=vs,t.interpolateArray=cs,t.interpolateBasis=es,t.interpolateBasisClosed=rs,t.interpolateDate=ss,t.interpolateNumber=fs,t.interpolateObject=ls,t.interpolateRound=gs,t.interpolateString=ds,t.interpolateTransformCss=xs,t.interpolateTransformSvg=bs,t.interpolateZoom=Ms,t.interpolateRgb=os,t.interpolateRgbBasis=us,t.interpolateRgbBasisClosed=as,t.interpolateHsl=Ts,t.interpolateHslLong=Ns,t.interpolateLab=function(t,n){var e=st((t=Z(t)).l,(n=Z(n)).l),r=st(t.a,n.a),i=st(t.b,n.b),o=st(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=ks,t.interpolateHclLong=Ss,t.interpolateCubehelix=Es,t.interpolateCubehelixLong=As,t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=Vt,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(ti),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=ni(r),u=ni(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,n-=u=(o=t[r])[0],e-=a=o[1],c+=Math.sqrt(n*n+e*e);return c},t.quadtree=sn,t.queue=ui,t.randomUniform=gd,t.randomNormal=_d,t.randomLogNormal=yd,t.randomBates=xd,t.randomIrwinHall=md,t.randomExponential=bd,t.request=wd,t.html=Td,t.json=Nd,t.text=kd,t.xml=Sd,t.csv=Ad,t.tsv=Cd,t.scaleBand=ci,t.scalePoint=function(){return si(ci().paddingInner(1))},t.scaleIdentity=vi,t.scaleLinear=di,t.scaleLog=bi,t.scaleOrdinal=ai,t.scaleImplicit=Ld,t.scalePow=Mi,t.scaleSqrt=function(){return Mi().exponent(.5)},t.scaleQuantile=Ti,t.scaleQuantize=Ni,t.scaleThreshold=ki,t.scaleTime=function(){return jo(gv,dv,tv,Jd,Gd,Wd,Vd,Bd,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return jo(Iv,Ov,Tv,wv,xv,yv,Vd,Bd,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.schemeCategory10=rg,t.schemeCategory20b=ig,t.schemeCategory20c=og,t.schemeCategory20=ug,t.interpolateCubehelixDefault=ag,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return fg.h=360*t-100,fg.s=1.5-1.5*n,fg.l=.8-.9*n,fg+""},t.interpolateWarm=cg,t.interpolateCool=sg,t.interpolateViridis=lg,t.interpolateMagma=hg,t.interpolateInferno=pg,t.interpolatePlasma=dg,t.scaleSequential=Vo,t.creator=Ka,t.local=f,t.matcher=ic,t.mouse=cc,t.namespace=Ja,t.namespaces=Qa,t.clientPoint=ac,t.select=vc,t.selectAll=function(t){return"string"==typeof t?new S([document.querySelectorAll(t)],[document.documentElement]):new S([null==t?[]:t],dc)},t.selection=E,t.selector=sc,t.selectorAll=fc,t.style=_,t.touch=gc,t.touches=function(t,n){null==n&&(n=uc().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=ac(t,n[e]);return i},t.window=pc,t.customEvent=d,t.arc=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-Ng,p=u.apply(this,arguments)-Ng,d=gg(p-h),v=p>h;if(c||(c=t=Vt()),l<f&&(s=l,l=f,f=s),l>Mg)if(d>kg-Mg)c.moveTo(l*yg(h),l*bg(h)),c.arc(0,0,l,h,p,!v),f>Mg&&(c.moveTo(f*yg(p),f*bg(p)),c.arc(0,0,f,p,h,v));else{var g,_,y=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>Mg&&(i?+i.apply(this,arguments):wg(f*f+l*l)),k=xg(gg(l-f)/2,+r.apply(this,arguments)),S=k,E=k;if(N>Mg){var A=$o(N/f*bg(T)),C=$o(N/l*bg(T));(w-=2*A)>Mg?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>Mg?(C*=v?1:-1,y+=C,m-=C):(M=0,y=m=(h+p)/2)}var z=l*yg(y),P=l*bg(y),R=f*yg(b),L=f*bg(b);if(k>Mg){var q=l*yg(m),D=l*bg(m),U=f*yg(x),O=f*bg(x);if(d<Tg){var F=w>Mg?function(t,n,e,r,i,o,u,a){var c=U-z,s=O-P,f=u-q,l=a-D,h=(f*(P-D)-l*(z-q))/(l*c-f*s);return[z+h*c,P+h*s]}(0,0,0,0,0,0,R,L):[R,L],I=z-F[0],Y=P-F[1],B=q-F[0],H=D-F[1],j=1/bg(function(t){return t>1?0:t<-1?Tg:Math.acos(t)}((I*B+Y*H)/(wg(I*I+Y*Y)*wg(B*B+H*H)))/2),X=wg(F[0]*F[0]+F[1]*F[1]);S=xg(k,(f-X)/(j-1)),E=xg(k,(l-X)/(j+1))}}M>Mg?E>Mg?(g=Ko(U,O,z,P,l,E,v),_=Ko(q,D,R,L,l,E,v),c.moveTo(g.cx+g.x01,g.cy+g.y01),E<k?c.arc(g.cx,g.cy,E,_g(g.y01,g.x01),_g(_.y01,_.x01),!v):(c.arc(g.cx,g.cy,E,_g(g.y01,g.x01),_g(g.y11,g.x11),!v),c.arc(0,0,l,_g(g.cy+g.y11,g.cx+g.x11),_g(_.cy+_.y11,_.cx+_.x11),!v),c.arc(_.cx,_.cy,E,_g(_.y11,_.x11),_g(_.y01,_.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,y,m,!v)):c.moveTo(z,P),f>Mg&&w>Mg?S>Mg?(g=Ko(R,L,q,D,f,-S,v),_=Ko(z,P,U,O,f,-S,v),c.lineTo(g.cx+g.x01,g.cy+g.y01),S<k?c.arc(g.cx,g.cy,S,_g(g.y01,g.x01),_g(_.y01,_.x01),!v):(c.arc(g.cx,g.cy,S,_g(g.y01,g.x01),_g(g.y11,g.x11),!v),c.arc(0,0,f,_g(g.cy+g.y11,g.cx+g.x11),_g(_.cy+_.y11,_.cx+_.x11),v),c.arc(_.cx,_.cy,S,_g(_.y11,_.x11),_g(_.y01,_.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(R,L)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+""||null}var n=Wo,e=Zo,r=vg(0),i=null,o=Go,u=Qo,a=Jo,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-Tg/2;return[yg(r)*t,bg(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:vg(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:vg(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:vg(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:vg(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:vg(+n),t):o},t.endAngle=function(n){return arguments.length?(u="function"==typeof n?n:vg(+n),t):u},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:vg(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t},t.area=Ag,t.line=Eg,t.pie=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),g=+i.apply(this,arguments),_=Math.min(kg,Math.max(-kg,o.apply(this,arguments)-g)),y=Math.min(Math.abs(_)/h,u.apply(this,arguments)),m=y*(_<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(_-h*m)/p:0;a<h;++a,g=f)c=d[a],f=g+((l=v[c])>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:g,endAngle:f,padAngle:y};return v}var n=zg,e=Cg,r=null,i=vg(0),o=vg(kg),u=vg(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:vg(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:vg(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:vg(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:vg(+n),t):u},t},t.areaRadial=Lg,t.radialArea=Lg,t.lineRadial=Rg,t.radialLine=Rg,t.pointRadial=qg,t.linkHorizontal=function(){return cu(su)},t.linkVertical=function(){return cu(fu)},t.linkRadial=function(){var t=cu(lu);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){function t(){var t;if(r||(r=t=Vt()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=vg(Ug),e=vg(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:vg(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:vg(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},t.symbols=t_,t.symbolCircle=Ug,t.symbolCross=Og,t.symbolDiamond=Yg,t.symbolSquare=Vg,t.symbolStar=Xg,t.symbolTriangle=Wg,t.symbolWye=Kg,t.curveBasisClosed=function(t){return new du(t)},t.curveBasisOpen=function(t){return new vu(t)},t.curveBasis=function(t){return new pu(t)},t.curveBundle=e_,t.curveCardinalClosed=i_,t.curveCardinalOpen=o_,t.curveCardinal=r_,t.curveCatmullRomClosed=a_,t.curveCatmullRomOpen=c_,t.curveCatmullRom=u_,t.curveLinearClosed=function(t){return new Nu(t)},t.curveLinear=Sg,t.curveMonotoneX=function(t){return new Cu(t)},t.curveMonotoneY=function(t){return new zu(t)},t.curveNatural=function(t){return new Ru(t)},t.curveStep=function(t){return new qu(t,.5)},t.curveStepAfter=function(t){return new qu(t,1)},t.curveStepBefore=function(t){return new qu(t,0)},t.stack=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=vg([]),e=f_,r=s_,i=Du;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:vg(Dg.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:vg(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?f_:"function"==typeof n?n:vg(Dg.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?s_:n,t):r},t},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}s_(t,n)}},t.stackOffsetDiverging=function(t,n){if((a=t.length)>1)for(var e,r,i,o,u,a,c=0,s=t[n[0]].length;c<s;++c)for(o=u=0,e=0;e<a;++e)(i=(r=t[n[e]][c])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=u,r[0]=u+=i):r[0]=o},t.stackOffsetNone=s_,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}s_(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=(l-(f[u-1][1]||0))/2,p=0;p<a;++p){var d=t[n[p]];h+=(d[u][1]||0)-(d[u-1][1]||0)}c+=l,s+=h*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,s_(t,n)}},t.stackOrderAscending=l_,t.stackOrderDescending=function(t){return l_(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(Uu),o=f_(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},t.stackOrderNone=f_,t.stackOrderReverse=function(t){return f_(t).reverse()},t.timeInterval=Si,t.timeMillisecond=Bd,t.timeMilliseconds=Hd,t.utcMillisecond=Bd,t.utcMilliseconds=Hd,t.timeSecond=Vd,t.timeSeconds=$d,t.utcSecond=Vd,t.utcSeconds=$d,t.timeMinute=Wd,t.timeMinutes=Zd,t.timeHour=Gd,t.timeHours=Qd,t.timeDay=Jd,t.timeDays=Kd,t.timeWeek=tv,t.timeWeeks=av,t.timeSunday=tv,t.timeSundays=av,t.timeMonday=nv,t.timeMondays=cv,t.timeTuesday=ev,t.timeTuesdays=sv,t.timeWednesday=rv,t.timeWednesdays=fv,t.timeThursday=iv,t.timeThursdays=lv,t.timeFriday=ov,t.timeFridays=hv,t.timeSaturday=uv,t.timeSaturdays=pv,t.timeMonth=dv,t.timeMonths=vv,t.timeYear=gv,t.timeYears=_v,t.utcMinute=yv,t.utcMinutes=mv,t.utcHour=xv,t.utcHours=bv,t.utcDay=wv,t.utcDays=Mv,t.utcWeek=Tv,t.utcWeeks=zv,t.utcSunday=Tv,t.utcSundays=zv,t.utcMonday=Nv,t.utcMondays=Pv,t.utcTuesday=kv,t.utcTuesdays=Rv,t.utcWednesday=Sv,t.utcWednesdays=Lv,t.utcThursday=Ev,t.utcThursdays=qv,t.utcFriday=Av,t.utcFridays=Dv,t.utcSaturday=Cv,t.utcSaturdays=Uv,t.utcMonth=Ov,t.utcMonths=Fv,t.utcYear=Iv,t.utcYears=Bv,t.timeFormatDefaultLocale=Yo,t.timeFormatLocale=Ri,t.isoFormat=$v,t.isoParse=Wv,t.now=gt,t.timer=mt,t.timerFlush=xt,t.timeout=Fs,t.interval=function(t,n,e){var r=new yt,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?gt():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},t.transition=At,t.active=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Hs&&e.name===n)return new Et([[t]],Nf,n,+r)}return null},t.interrupt=Gs,t.voronoi=function(){function t(t){return new ca(t.map(function(r,i){var o=[Math.round(n(r,i,t)/x_)*x_,Math.round(e(r,i,t)/x_)*x_];return o.index=i,o.data=r,o}),r)}var n=Ou,e=Fu,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:h_(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:h_(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},t.zoom=function(){function n(t){t.property("__zoom",da).on("wheel.zoom",s).on("mousedown.zoom",f).on("dblclick.zoom",l).filter(w).on("touchstart.zoom",h).on("touchmove.zoom",p).on("touchend.zoom touchcancel.zoom",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(t,n){return(n=Math.max(M[0],Math.min(M[1],n)))===t.k?t:new sa(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new sa(t.k,r,i)}function i(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function o(t,n,e){t.on("start.zoom",function(){u(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){u(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=u(this,t),o=m.apply(this,t),a=e||i(o),c=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),s=this.__zoom,f="function"==typeof n?n.apply(this,t):n,l=k(s.invert(a).concat(c/s.k),f.invert(a).concat(c/f.k));return function(t){if(1===t)t=f;else{var n=l(t),e=c/n[2];t=new sa(e,a[0]-n[0]*e,a[1]-n[1]*e)}r.zoom(null,t)}})}function u(t,n){for(var e,r=0,i=S.length;r<i;++r)if((e=S[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){if(y.apply(this,arguments)){var t=u(this,arguments),n=this.__zoom,i=Math.max(M[0],Math.min(M[1],n.k*Math.pow(2,b.apply(this,arguments)))),o=cc(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=n.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(n.k===i)return;t.mouse=[o,n.invert(o)],Gs(this),t.start()}T_(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},z),t.zoom("mouse",x(r(e(n,i),t.mouse[0],t.mouse[1]),t.extent,T))}}function f(){if(!_&&y.apply(this,arguments)){var n=u(this,arguments),e=vc(t.event.view).on("mousemove.zoom",function(){if(T_(),!n.moved){var e=t.event.clientX-o,i=t.event.clientY-a;n.moved=e*e+i*i>P}n.zoom("mouse",x(r(n.that.__zoom,n.mouse[0]=cc(n.that),n.mouse[1]),n.extent,T))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),C(t.event.view,n.moved),T_(),n.end()},!0),i=cc(this),o=t.event.clientX,a=t.event.clientY;yc(t.event.view),la(),n.mouse=[i,this.__zoom.invert(i)],Gs(this),n.start()}}function l(){if(y.apply(this,arguments)){var i=this.__zoom,u=cc(this),a=i.invert(u),c=i.k*(t.event.shiftKey?.5:2),s=x(r(e(i,c),u,a),m.apply(this,arguments),T);T_(),N>0?vc(this).transition().duration(N).call(o,s,u):vc(this).call(n.transform,s)}}function h(){if(y.apply(this,arguments)){var n,e,r,i,o=u(this,arguments),a=t.event.changedTouches,c=a.length;for(la(),e=0;e<c;++e)r=a[e],i=[i=gc(this,a,r.identifier),this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(g&&(g=clearTimeout(g),!o.touch1))return o.end(),void((i=vc(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(g=setTimeout(function(){g=null},A),Gs(this),o.start())}}function p(){var n,i,o,a,c=u(this,arguments),s=t.event.changedTouches,f=s.length;for(T_(),g&&(g=clearTimeout(g)),n=0;n<f;++n)i=s[n],o=gc(this,s,i.identifier),c.touch0&&c.touch0[2]===i.identifier?c.touch0[0]=o:c.touch1&&c.touch1[2]===i.identifier&&(c.touch1[0]=o);if(i=c.that.__zoom,c.touch1){var l=c.touch0[0],h=c.touch0[1],p=c.touch1[0],d=c.touch1[1],v=(v=p[0]-l[0])*v+(v=p[1]-l[1])*v,_=(_=d[0]-h[0])*_+(_=d[1]-h[1])*_;i=e(i,Math.sqrt(v/_)),o=[(l[0]+p[0])/2,(l[1]+p[1])/2],a=[(h[0]+d[0])/2,(h[1]+d[1])/2]}else{if(!c.touch0)return;o=c.touch0[0],a=c.touch0[1]}c.zoom("touch",x(r(i,o,a),c.extent,T))}function v(){var n,e,r=u(this,arguments),i=t.event.changedTouches,o=i.length;for(la(),_&&clearTimeout(_),_=setTimeout(function(){_=null},A),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var g,_,y=ha,m=pa,x=_a,b=va,w=ga,M=[0,1/0],T=[[-1/0,-1/0],[1/0,1/0]],N=250,k=Ms,S=[],E=a("start","zoom","end"),A=500,z=150,P=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",da),t!==e?o(t,n):e.interrupt().each(function(){u(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,o){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,u=i(t),a=n.invert(u),c="function"==typeof o?o.apply(this,arguments):o;return x(r(e(n,c),u,a),t,T)})},n.translateBy=function(t,e,r){n.transform(t,function(){return x(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments),T)})},n.translateTo=function(t,e,r){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,o=i(t);return x(M_.translate(o[0],o[1]).scale(n.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof r?-r.apply(this,arguments):-r),t,T)})},c.prototype={start:function(){return 1==++this.active&&(this.index=S.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(S.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){d(new function(t,n,e){this.target=t,this.type=n,this.transform=e}(n,t,this.that.__zoom),E.apply,E,[t,this.that,this.args])}},n.wheelDelta=function(t){return arguments.length?(b="function"==typeof t?t:w_(+t),n):b},n.filter=function(t){return arguments.length?(y="function"==typeof t?t:w_(!!t),n):y},n.touchable=function(t){return arguments.length?(w="function"==typeof t?t:w_(!!t),n):w},n.extent=function(t){return arguments.length?(m="function"==typeof t?t:w_([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(M[0]=+t[0],M[1]=+t[1],n):[M[0],M[1]]},n.translateExtent=function(t){return arguments.length?(T[0][0]=+t[0][0],T[1][0]=+t[1][0],T[0][1]=+t[0][1],T[1][1]=+t[1][1],n):[[T[0][0],T[0][1]],[T[1][0],T[1][1]]]},n.constrain=function(t){return arguments.length?(x=t,n):x},n.duration=function(t){return arguments.length?(N=+t,n):N},n.interpolate=function(t){return arguments.length?(k=t,n):k},n.on=function(){var t=E.on.apply(E,arguments);return t===E?n:t},n.clickDistance=function(t){return arguments.length?(P=(t=+t)*t,n):Math.sqrt(P)},n},t.zoomTransform=fa,t.zoomIdentity=M_,Object.defineProperty(t,"__esModule",{value:!0})});
*{box-sizing:border-box}html{background:rgba(1,11,20,.5);padding:0;margin:0}body{background:#010b14;font-family:VT323,monospace;overflow:hidden;margin:0 auto;padding:0;position:relative;width:960px;height:500px}svg{display:block}h1{color:#dacbed;text-shadow:0 0 14px rgba(218,203,237,.75);text-transform:uppercase;font-weight:400;font-style:italic;position:absolute;width:100%;text-align:center;padding:0;margin:0;font-size:2.5em}.chart{width:50%;position:absolute;bottom:1em;right:.75em}.chart svg{shape-rendering:crispEdges;-webkit-filter:drop-shadow(0 0 14px rgba(15,208,254,.35));filter:drop-shadow(0 0 14px rgba(15,208,254,.35))}.chart svg path.car{fill:none;stroke:#0fd0fe}.chart svg g.car.leader circle{stroke:#fa6354}.chart svg g.car.leader text{fill:#fa6354}.chart svg g.car circle{fill:none;fill:#010b14;stroke:#dacbed}.chart svg g.car text{font-size:.9em;text-anchor:middle;fill:#dacbed}.chart svg .axis path{stroke:#018dae;stroke-dasharray:1 10}.chart svg .axis text{font-size:1.75em;font-family:VT323,monospace;fill:#018dae}.circuit{width:50%;position:relative;margin:0;padding:.5em 0 0 0}.circuit svg{margin:0 auto;shape-rendering:crispEdges;-webkit-filter:drop-shadow(0 0 14px rgba(15,208,254,.35));filter:drop-shadow(0 0 14px rgba(15,208,254,.35))}.circuit svg path.track{fill:none;stroke:#0fd0fe}.circuit svg .finish-line{stroke:#0fd0fe;stroke-width:2px}.circuit svg g.car.leader path{stroke:#fa6354}.circuit svg g.car.leader text{fill:#fa6354}.circuit svg g.car path{fill:#010b14;stroke:#dacbed}.circuit svg g.car text{font-size:1.125em;text-anchor:middle;fill:#dacbed}button{display:none}table{position:absolute;table-layout:fixed;font-size:1.125em;top:1.5em;right:1em;z-index:1;color:#0fd0fe;text-align:right;padding:.5em}table td,table th{padding:0 .75em}table th{font-weight:400}table td{color:#f6df83;text-shadow:0 0 14px rgba(246,223,131,.75)}table .leader{color:#fa6354;text-shadow:0 0 14px rgba(250,99,84,.75)}table .cyan{color:#018dae;text-shadow:0 0 14px rgba(1,141,174,.75)}table .white{color:#dacbed;text-shadow:0 0 14px rgba(218,203,237,.75)}table tbody tr td:nth-child(1){color:#018dae;text-shadow:0 0 14px rgba(1,141,174,.75);width:2.5em}table tbody tr td:nth-child(2){width:2.5em}table tbody tr td:nth-child(3){text-align:left;text-transform:uppercase;width:3.5em}table tbody tr td:nth-child(4){width:4em}table tbody tr td:nth-child(5){width:4em}table tbody tr td:nth-child(6){width:6em}table tbody tr td:nth-child(7){width:2.5em}
!function(n){function t(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return n[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var e={};t.m=n,t.c=e,t.i=function(n){return n},t.d=function(n,e,a){t.o(n,e)||Object.defineProperty(n,e,{configurable:!1,enumerable:!0,get:a})},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=9)}([function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nvar multiplier = 1;\n\nvar constants = {\n MIN: 60 * multiplier,\n AVERAGE: 140 * multiplier,\n MAX: 194 * multiplier\n};\n\nexports.default = constants;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9jb25zdGFudHMuanM/ODg5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0aXBsaWVyID0gMVxuXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIE1JTjogNjAgKiBtdWx0aXBsaWVyLFxuICBBVkVSQUdFOiAxNDAgKiBtdWx0aXBsaWVyLFxuICBNQVg6IDE5NCAqIG11bHRpcGxpZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uc3RhbnRzXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gY29uc3RhbnRzLmpzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBQ0E7QUFLQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0\n')},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// We want:\n// DONE: position\n// DONE: status\n// DONE: GAP\n// DONE: INT\n// DONE: recent lap time\n// DONE: lap count\n// : is better lap\n// : is better GAP\n// : is better INT\n\nvar formatGap = function formatGap(x) {\n return (x / 1000).toFixed(1);\n};\n\nvar calculateMetrics = function calculateMetrics(_ref) {\n var car = _ref.car,\n raceElapsed = _ref.raceElapsed,\n cars = _ref.cars,\n index = _ref.index;\n var elapsed = car.elapsed,\n isNewLap = car.isNewLap,\n laps = car.laps,\n measures = car.measures,\n number = car.number,\n gap = car.gap,\n status = car.status,\n int = car.int;\n\n var leader = cars[0];\n\n // Set defaults.\n var previousLap = null;\n var newElapsed = elapsed;\n var newGap = gap;\n var newStatus = status;\n var newInt = int;\n\n // If the leader started a new lap,\n // set this car's status to yellow.\n if (leader.isNewLap) {\n newStatus = 'yellow';\n }\n\n // If we started a new lap,\n if (isNewLap) {\n // do a number of things.\n\n // Set our status to white.\n newStatus = 'white';\n\n // Calculate the previous lap time.\n // To do this, do race elapsed - previous elapsed.\n previousLap = raceElapsed - elapsed;\n\n // And set car's elapsed to race elapsed.\n newElapsed = raceElapsed;\n\n // Every time you start a new lap,\n // calculate GAP and INT.\n // GAP = distance to the leader.\n // INT = distance to the previous car.\n // If we're the leader, ignore.\n if (number === leader.number) {\n newGap = 'LAP';\n newInt = '--';\n } else {\n // If we're not the leader,\n // calculate the lap count differences to leader and previous car.\n var leaderLapDelta = Math.floor(_.last(leader.measures).pct) - Math.floor(_.last(measures).pct);\n var previousCarLapDelta = Math.floor(_.last(cars[index - 1].measures).pct) - Math.floor(_.last(measures).pct);\n\n // If we're on the same lap as leader, show time gap.\n if (leaderLapDelta === 0) {\n newGap = formatGap(newElapsed - leader.elapsed);\n } else {\n // If we're NOT on the same lap, just show the lap count delta.\n newGap = leaderLapDelta + 'L';\n }\n\n // If we're on the same lap as previous, show time gap.\n if (previousCarLapDelta === 0) {\n newInt = formatGap(newElapsed - cars[index - 1].elapsed);\n } else {\n // If we're NOT on the same lap, just show the lap count delta.\n newInt = previousCarLapDelta + 'L';\n }\n }\n }\n\n return _extends({}, car, {\n elapsed: newElapsed,\n laps: [].concat(_toConsumableArray(laps), [previousLap]).filter(function (d) {\n return d;\n }),\n gap: newGap,\n isNewLap: isNewLap,\n status: newStatus,\n int: newInt,\n position: index + 1\n });\n};\n\nexports.default = calculateMetrics;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9jYWxjdWxhdGVNZXRyaWNzLmpzPzkyOGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gV2Ugd2FudDpcbi8vIERPTkU6IHBvc2l0aW9uXG4vLyBET05FOiBzdGF0dXNcbi8vIERPTkU6IEdBUFxuLy8gRE9ORTogSU5UXG4vLyBET05FOiByZWNlbnQgbGFwIHRpbWVcbi8vIERPTkU6IGxhcCBjb3VudFxuLy8gICAgIDogaXMgYmV0dGVyIGxhcFxuLy8gICAgIDogaXMgYmV0dGVyIEdBUFxuLy8gICAgIDogaXMgYmV0dGVyIElOVFxuXG5jb25zdCBmb3JtYXRHYXAgPSB4ID0+ICh4IC8gMTAwMCkudG9GaXhlZCgxKVxuXG5jb25zdCBjYWxjdWxhdGVNZXRyaWNzID0gKHsgY2FyLCByYWNlRWxhcHNlZCwgY2FycywgaW5kZXggfSkgPT4ge1xuICBjb25zdCB7IGVsYXBzZWQsIGlzTmV3TGFwLCBsYXBzLCBtZWFzdXJlcywgbnVtYmVyLCBnYXAsIHN0YXR1cywgaW50IH0gPSBjYXJcbiAgY29uc3QgbGVhZGVyID0gY2Fyc1swXVxuXG4gIC8vIFNldCBkZWZhdWx0cy5cbiAgbGV0IHByZXZpb3VzTGFwID0gbnVsbFxuICBsZXQgbmV3RWxhcHNlZCA9IGVsYXBzZWRcbiAgbGV0IG5ld0dhcCA9IGdhcFxuICBsZXQgbmV3U3RhdHVzID0gc3RhdHVzXG4gIGxldCBuZXdJbnQgPSBpbnRcblxuICAvLyBJZiB0aGUgbGVhZGVyIHN0YXJ0ZWQgYSBuZXcgbGFwLFxuICAvLyBzZXQgdGhpcyBjYXIncyBzdGF0dXMgdG8geWVsbG93LlxuICBpZiAobGVhZGVyLmlzTmV3TGFwKSB7XG4gICAgbmV3U3RhdHVzID0gJ3llbGxvdydcbiAgfVxuXG4gIC8vIElmIHdlIHN0YXJ0ZWQgYSBuZXcgbGFwLFxuICBpZiAoaXNOZXdMYXApIHtcbiAgICAvLyBkbyBhIG51bWJlciBvZiB0aGluZ3MuXG5cbiAgICAvLyBTZXQgb3VyIHN0YXR1cyB0byB3aGl0ZS5cbiAgICBuZXdTdGF0dXMgPSAnd2hpdGUnXG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIHByZXZpb3VzIGxhcCB0aW1lLlxuICAgIC8vIFRvIGRvIHRoaXMsIGRvIHJhY2UgZWxhcHNlZCAtIHByZXZpb3VzIGVsYXBzZWQuXG4gICAgcHJldmlvdXNMYXAgPSByYWNlRWxhcHNlZCAtIGVsYXBzZWRcblxuICAgIC8vIEFuZCBzZXQgY2FyJ3MgZWxhcHNlZCB0byByYWNlIGVsYXBzZWQuXG4gICAgbmV3RWxhcHNlZCA9IHJhY2VFbGFwc2VkXG5cbiAgICAvLyBFdmVyeSB0aW1lIHlvdSBzdGFydCBhIG5ldyBsYXAsXG4gICAgLy8gY2FsY3VsYXRlIEdBUCBhbmQgSU5ULlxuICAgIC8vIEdBUCA9IGRpc3RhbmNlIHRvIHRoZSBsZWFkZXIuXG4gICAgLy8gSU5UID0gZGlzdGFuY2UgdG8gdGhlIHByZXZpb3VzIGNhci5cbiAgICAvLyBJZiB3ZSdyZSB0aGUgbGVhZGVyLCBpZ25vcmUuXG4gICAgaWYgKG51bWJlciA9PT0gbGVhZGVyLm51bWJlcikge1xuICAgICAgbmV3R2FwID0gJ0xBUCdcbiAgICAgIG5ld0ludCA9ICctLSdcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgd2UncmUgbm90IHRoZSBsZWFkZXIsXG4gICAgICAvLyBjYWxjdWxhdGUgdGhlIGxhcCBjb3VudCBkaWZmZXJlbmNlcyB0byBsZWFkZXIgYW5kIHByZXZpb3VzIGNhci5cbiAgICAgIGNvbnN0IGxlYWRlckxhcERlbHRhID1cbiAgICAgICAgTWF0aC5mbG9vcihfLmxhc3QobGVhZGVyLm1lYXN1cmVzKS5wY3QpIC1cbiAgICAgICAgTWF0aC5mbG9vcihfLmxhc3QobWVhc3VyZXMpLnBjdClcbiAgICAgIGNvbnN0IHByZXZpb3VzQ2FyTGFwRGVsdGEgPVxuICAgICAgICBNYXRoLmZsb29yKF8ubGFzdChjYXJzW2luZGV4IC0gMV0ubWVhc3VyZXMpLnBjdCkgLVxuICAgICAgICBNYXRoLmZsb29yKF8ubGFzdChtZWFzdXJlcykucGN0KVxuXG4gICAgICAvLyBJZiB3ZSdyZSBvbiB0aGUgc2FtZSBsYXAgYXMgbGVhZGVyLCBzaG93IHRpbWUgZ2FwLlxuICAgICAgaWYgKGxlYWRlckxhcERlbHRhID09PSAwKSB7XG4gICAgICAgIG5ld0dhcCA9IGZvcm1hdEdhcChuZXdFbGFwc2VkIC0gbGVhZGVyLmVsYXBzZWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSdyZSBOT1Qgb24gdGhlIHNhbWUgbGFwLCBqdXN0IHNob3cgdGhlIGxhcCBjb3VudCBkZWx0YS5cbiAgICAgICAgbmV3R2FwID0gYCR7bGVhZGVyTGFwRGVsdGF9TGBcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UncmUgb24gdGhlIHNhbWUgbGFwIGFzIHByZXZpb3VzLCBzaG93IHRpbWUgZ2FwLlxuICAgICAgaWYgKHByZXZpb3VzQ2FyTGFwRGVsdGEgPT09IDApIHtcbiAgICAgICAgbmV3SW50ID0gZm9ybWF0R2FwKG5ld0VsYXBzZWQgLSBjYXJzW2luZGV4IC0gMV0uZWxhcHNlZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIHdlJ3JlIE5PVCBvbiB0aGUgc2FtZSBsYXAsIGp1c3Qgc2hvdyB0aGUgbGFwIGNvdW50IGRlbHRhLlxuICAgICAgICBuZXdJbnQgPSBgJHtwcmV2aW91c0NhckxhcERlbHRhfUxgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jYXIsXG4gICAgZWxhcHNlZDogbmV3RWxhcHNlZCxcbiAgICBsYXBzOiBbLi4ubGFwcywgcHJldmlvdXNMYXBdLmZpbHRlcihkID0+IGQpLFxuICAgIGdhcDogbmV3R2FwLFxuICAgIGlzTmV3TGFwLFxuICAgIHN0YXR1czogbmV3U3RhdHVzLFxuICAgIGludDogbmV3SW50LFxuICAgIHBvc2l0aW9uOiBpbmRleCArIDFcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjYWxjdWxhdGVNZXRyaWNzXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gY2FsY3VsYXRlTWV0cmljcy5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFVQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar setup = function setup(container) {\n var margins = { top: 45, right: 5, bottom: 20, left: 40 };\n var width = container.node().offsetWidth - margins.right - margins.left;\n var height = width / 3.5;\n\n var svg = container.append('svg').attr('width', width + margins.right + margins.left).attr('height', height + margins.top + margins.bottom);\n\n var g = svg.append('g').attr('transform', 'translate(' + margins.left + ', ' + margins.top + ')');\n\n var x = d3.scaleLinear().range([0, width]).domain([0, 1]);\n\n var y = d3.scaleLinear().range([height, 0]).domain([0, _constants2.default.MAX]).nice();\n\n var line = d3.line().curve(d3.curveBasis).x(function (d) {\n return x(d.pct % 1);\n }).y(function (d) {\n return y(d.speed);\n });\n\n var xAxis = g.append('g').attr('class', 'axis axis--x').attr('transform', 'translate(0, ' + height + ')').call(d3.axisBottom(x).tickSize(0).ticks([]));\n\n xAxis.append('text').text('Start').attr('x', x(0)).attr('text-anchor', 'start').attr('dy', 14);\n\n xAxis.append('text').text('Finish').attr('x', x(1)).attr('text-anchor', 'end').attr('dy', 14);\n\n var yAxis = g.append('g').attr('class', 'axis axis--y').call(d3.axisLeft(y).tickSize(0).ticks(5));\n\n yAxis.append('text').text('(MPH)').attr('dx', -3).attr('dy', 6 - 18).attr('text-anchor', 'end');\n\n yAxis.append('text').text('Speed').attr('dx', -3).attr('dy', 6 - 18 - 18).attr('text-anchor', 'end');\n\n return {\n g: g,\n x: x,\n y: y,\n line: line\n };\n};\n\nvar clean = function clean(measures) {\n var lastTwo = measures.slice(-2).map(function (d) {\n return d.pct % 1;\n });\n\n return lastTwo[1] < lastTwo[0] ? measures.slice(0, measures.length - 1) : measures;\n};\n// _.last(measures).pct % 1 <\n// measures.length === 2 ? measures.slice(-1) : measures\n\nvar getTransform = function getTransform(_ref) {\n var d = _ref.d,\n x = _ref.x,\n y = _ref.y;\n\n var last = _.last(d.measures);\n return 'translate(' + x(last.pct % 1) + ', ' + y(last.speed) + ')';\n};\n\nvar update = function update(_ref2) {\n var g = _ref2.g,\n x = _ref2.x,\n y = _ref2.y,\n line = _ref2.line,\n cars = _ref2.cars;\n\n // join\n var paths = g.selectAll('path.car').data(cars, function (d) {\n return d.number;\n });\n\n // update\n paths.attr('d', function (d) {\n return line(clean(d.measures));\n });\n\n // enter\n paths.enter().append('path').attr('class', 'car').attr('d', function (d) {\n return line(clean(d.measures));\n });\n\n // remove\n paths.exit().remove();\n\n // join\n var gJoin = g.selectAll('g.car').data(cars, function (d) {\n return d.number;\n });\n\n // update\n gJoin.attr('class', function (d) {\n return d.position === 1 ? 'car leader' : 'car';\n }).attr('transform', function (d) {\n return getTransform({ d: d, x: x, y: y });\n });\n\n // enter\n var gEnter = gJoin.enter().append('g').attr('class', function (d) {\n return d.position === 1 ? 'car leader' : 'car';\n }).attr('transform', function (d) {\n return getTransform({ d: d, x: x, y: y });\n });\n\n gEnter.append('circle').attr('cx', 0).attr('cy', 0).attr('r', 9);\n\n gEnter.append('text').text(function (d) {\n return d.number;\n }).attr('dy', 4);\n\n // remove\n gJoin.exit().remove();\n};\n\nvar chart = {\n setup: setup,\n update: update\n};\n\nexports.default = chart;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9jaGFydC5qcz9lNThjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnXG5cbmNvbnN0IHNldHVwID0gY29udGFpbmVyID0+IHtcbiAgY29uc3QgbWFyZ2lucyA9IHsgdG9wOiA0NSwgcmlnaHQ6IDUsIGJvdHRvbTogMjAsIGxlZnQ6IDQwIH1cbiAgY29uc3Qgd2lkdGggPSBjb250YWluZXIubm9kZSgpLm9mZnNldFdpZHRoIC0gbWFyZ2lucy5yaWdodCAtIG1hcmdpbnMubGVmdFxuICBjb25zdCBoZWlnaHQgPSB3aWR0aCAvIDMuNVxuXG4gIGNvbnN0IHN2ZyA9IGNvbnRhaW5lclxuICAgIC5hcHBlbmQoJ3N2ZycpXG4gICAgLmF0dHIoJ3dpZHRoJywgd2lkdGggKyBtYXJnaW5zLnJpZ2h0ICsgbWFyZ2lucy5sZWZ0KVxuICAgIC5hdHRyKCdoZWlnaHQnLCBoZWlnaHQgKyBtYXJnaW5zLnRvcCArIG1hcmdpbnMuYm90dG9tKVxuXG4gIGNvbnN0IGcgPSBzdmdcbiAgICAuYXBwZW5kKCdnJylcbiAgICAuYXR0cigndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke21hcmdpbnMubGVmdH0sICR7bWFyZ2lucy50b3B9KWApXG5cbiAgY29uc3QgeCA9IGQzXG4gICAgLnNjYWxlTGluZWFyKClcbiAgICAucmFuZ2UoWzAsIHdpZHRoXSlcbiAgICAuZG9tYWluKFswLCAxXSlcblxuICBjb25zdCB5ID0gZDNcbiAgICAuc2NhbGVMaW5lYXIoKVxuICAgIC5yYW5nZShbaGVpZ2h0LCAwXSlcbiAgICAuZG9tYWluKFswLCBjb25zdGFudHMuTUFYXSlcbiAgICAubmljZSgpXG5cbiAgY29uc3QgbGluZSA9IGQzXG4gICAgLmxpbmUoKVxuICAgIC5jdXJ2ZShkMy5jdXJ2ZUJhc2lzKVxuICAgIC54KGQgPT4geChkLnBjdCAlIDEpKVxuICAgIC55KGQgPT4geShkLnNwZWVkKSlcblxuICBjb25zdCB4QXhpcyA9IGdcbiAgICAuYXBwZW5kKCdnJylcbiAgICAuYXR0cignY2xhc3MnLCAnYXhpcyBheGlzLS14JylcbiAgICAuYXR0cigndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgwLCAke2hlaWdodH0pYClcbiAgICAuY2FsbChcbiAgICAgIGQzXG4gICAgICAgIC5heGlzQm90dG9tKHgpXG4gICAgICAgIC50aWNrU2l6ZSgwKVxuICAgICAgICAudGlja3MoW10pXG4gICAgKVxuXG4gIHhBeGlzXG4gICAgLmFwcGVuZCgndGV4dCcpXG4gICAgLnRleHQoJ1N0YXJ0JylcbiAgICAuYXR0cigneCcsIHgoMCkpXG4gICAgLmF0dHIoJ3RleHQtYW5jaG9yJywgJ3N0YXJ0JylcbiAgICAuYXR0cignZHknLCAxNClcblxuICB4QXhpc1xuICAgIC5hcHBlbmQoJ3RleHQnKVxuICAgIC50ZXh0KCdGaW5pc2gnKVxuICAgIC5hdHRyKCd4JywgeCgxKSlcbiAgICAuYXR0cigndGV4dC1hbmNob3InLCAnZW5kJylcbiAgICAuYXR0cignZHknLCAxNClcblxuICBjb25zdCB5QXhpcyA9IGdcbiAgICAuYXBwZW5kKCdnJylcbiAgICAuYXR0cignY2xhc3MnLCAnYXhpcyBheGlzLS15JylcbiAgICAuY2FsbChcbiAgICAgIGQzXG4gICAgICAgIC5heGlzTGVmdCh5KVxuICAgICAgICAudGlja1NpemUoMClcbiAgICAgICAgLnRpY2tzKDUpXG4gICAgKVxuXG4gIHlBeGlzXG4gICAgLmFwcGVuZCgndGV4dCcpXG4gICAgLnRleHQoJyhNUEgpJylcbiAgICAuYXR0cignZHgnLCAtMylcbiAgICAuYXR0cignZHknLCA2IC0gMTgpXG4gICAgLmF0dHIoJ3RleHQtYW5jaG9yJywgJ2VuZCcpXG5cbiAgeUF4aXNcbiAgICAuYXBwZW5kKCd0ZXh0JylcbiAgICAudGV4dCgnU3BlZWQnKVxuICAgIC5hdHRyKCdkeCcsIC0zKVxuICAgIC5hdHRyKCdkeScsIDYgLSAxOCAtIDE4KVxuICAgIC5hdHRyKCd0ZXh0LWFuY2hvcicsICdlbmQnKVxuXG4gIHJldHVybiB7XG4gICAgZyxcbiAgICB4LFxuICAgIHksXG4gICAgbGluZVxuICB9XG59XG5cbmNvbnN0IGNsZWFuID0gbWVhc3VyZXMgPT4ge1xuICBjb25zdCBsYXN0VHdvID0gbWVhc3VyZXMuc2xpY2UoLTIpLm1hcChkID0+IGQucGN0ICUgMSlcblxuICByZXR1cm4gbGFzdFR3b1sxXSA8IGxhc3RUd29bMF1cbiAgICA/IG1lYXN1cmVzLnNsaWNlKDAsIG1lYXN1cmVzLmxlbmd0aCAtIDEpXG4gICAgOiBtZWFzdXJlc1xufVxuLy8gXy5sYXN0KG1lYXN1cmVzKS5wY3QgJSAxIDxcbi8vIG1lYXN1cmVzLmxlbmd0aCA9PT0gMiA/IG1lYXN1cmVzLnNsaWNlKC0xKSA6IG1lYXN1cmVzXG5cbmNvbnN0IGdldFRyYW5zZm9ybSA9ICh7IGQsIHgsIHkgfSkgPT4ge1xuICBjb25zdCBsYXN0ID0gXy5sYXN0KGQubWVhc3VyZXMpXG4gIHJldHVybiBgdHJhbnNsYXRlKCR7eChsYXN0LnBjdCAlIDEpfSwgJHt5KGxhc3Quc3BlZWQpfSlgXG59XG5cbmNvbnN0IHVwZGF0ZSA9ICh7IGcsIHgsIHksIGxpbmUsIGNhcnMgfSkgPT4ge1xuICAvLyBqb2luXG4gIGNvbnN0IHBhdGhzID0gZy5zZWxlY3RBbGwoJ3BhdGguY2FyJykuZGF0YShjYXJzLCBkID0+IGQubnVtYmVyKVxuXG4gIC8vIHVwZGF0ZVxuICBwYXRocy5hdHRyKCdkJywgZCA9PiBsaW5lKGNsZWFuKGQubWVhc3VyZXMpKSlcblxuICAvLyBlbnRlclxuICBwYXRoc1xuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZCgncGF0aCcpXG4gICAgLmF0dHIoJ2NsYXNzJywgJ2NhcicpXG4gICAgLmF0dHIoJ2QnLCBkID0+IGxpbmUoY2xlYW4oZC5tZWFzdXJlcykpKVxuXG4gIC8vIHJlbW92ZVxuICBwYXRocy5leGl0KCkucmVtb3ZlKClcblxuICAvLyBqb2luXG4gIGNvbnN0IGdKb2luID0gZy5zZWxlY3RBbGwoJ2cuY2FyJykuZGF0YShjYXJzLCBkID0+IGQubnVtYmVyKVxuXG4gIC8vIHVwZGF0ZVxuICBnSm9pblxuICAgIC5hdHRyKCdjbGFzcycsIGQgPT4gKGQucG9zaXRpb24gPT09IDEgPyAnY2FyIGxlYWRlcicgOiAnY2FyJykpXG4gICAgLmF0dHIoJ3RyYW5zZm9ybScsIGQgPT4gZ2V0VHJhbnNmb3JtKHsgZCwgeCwgeSB9KSlcblxuICAvLyBlbnRlclxuICBjb25zdCBnRW50ZXIgPSBnSm9pblxuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZCgnZycpXG4gICAgLmF0dHIoJ2NsYXNzJywgZCA9PiAoZC5wb3NpdGlvbiA9PT0gMSA/ICdjYXIgbGVhZGVyJyA6ICdjYXInKSlcbiAgICAuYXR0cigndHJhbnNmb3JtJywgZCA9PiBnZXRUcmFuc2Zvcm0oeyBkLCB4LCB5IH0pKVxuXG4gIGdFbnRlclxuICAgIC5hcHBlbmQoJ2NpcmNsZScpXG4gICAgLmF0dHIoJ2N4JywgMClcbiAgICAuYXR0cignY3knLCAwKVxuICAgIC5hdHRyKCdyJywgOSlcblxuICBnRW50ZXJcbiAgICAuYXBwZW5kKCd0ZXh0JylcbiAgICAudGV4dChkID0+IGQubnVtYmVyKVxuICAgIC5hdHRyKCdkeScsIDQpXG5cbiAgLy8gcmVtb3ZlXG4gIGdKb2luLmV4aXQoKS5yZW1vdmUoKVxufVxuXG5jb25zdCBjaGFydCA9IHtcbiAgc2V0dXAsXG4gIHVwZGF0ZVxufVxuXG5leHBvcnQgZGVmYXVsdCBjaGFydFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGNoYXJ0LmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBS0E7QUFHQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFNQTtBQUNBO0FBTUE7QUFDQTtBQVNBO0FBQ0E7QUFNQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUVBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFDQTtBQUlBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar formatTime = d3.timeFormat('%-M:%S.%L');\n\nvar rowCells = function rowCells(d) {\n return [['', d.position], [d.position === 1 ? 'leader' : d.status, d.number], [d.position === 1 ? 'leader' : d.status, d.name], ['', d.gap || ''], ['', d.int || ''], ['', _.last(d.laps) ? formatTime(_.last(d.laps)) : ''], ['', Math.floor(_.last(d.measures).pct) || '']];\n};\n\nvar drawBoard = function drawBoard(_ref) {\n var cars = _ref.cars,\n setup = _ref.setup;\n\n // console.log(JSON.stringify(cars, null, 2))\n\n // Only draw the board when a car starts a new lap.\n if (cars.filter(function (d) {\n return d.isNewLap;\n }).length || setup) {\n var tbody = d3.select('table.board tbody');\n\n // join\n var trJoin = tbody.selectAll('tr').data(cars);\n\n // update\n trJoin.selectAll('td').data(rowCells).attr('class', function (d) {\n return d[0];\n });\n\n // immediately display non-new laps\n trJoin.transition().duration(0).filter(function (d) {\n return !d.isNewLap;\n }).selectAll('td').text(function (d) {\n return d[1];\n }).style('visibility', 'visible');\n\n // stagger display new laps\n trJoin.transition().duration(0).filter(function (d) {\n return d.isNewLap;\n }).selectAll('td').text(function (d) {\n return d[1];\n }).style('visibility', 'hidden').transition().delay(function (d, i) {\n return 125 + i * 125;\n }).style('visibility', 'visible');\n\n // enter\n var trEnter = trJoin.enter().append('tr');\n\n trEnter.selectAll('td').data(rowCells).enter().append('td').attr('class', function (d) {\n return d[0];\n }).text(function (d) {\n return d[1];\n });\n }\n};\n\nexports.default = drawBoard;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9kcmF3Qm9hcmQuanM/YjQ2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmb3JtYXRUaW1lID0gZDMudGltZUZvcm1hdCgnJS1NOiVTLiVMJylcblxuY29uc3Qgcm93Q2VsbHMgPSBkID0+IFtcbiAgWycnLCBkLnBvc2l0aW9uXSxcbiAgW2QucG9zaXRpb24gPT09IDEgPyAnbGVhZGVyJyA6IGQuc3RhdHVzLCBkLm51bWJlcl0sXG4gIFtkLnBvc2l0aW9uID09PSAxID8gJ2xlYWRlcicgOiBkLnN0YXR1cywgZC5uYW1lXSxcbiAgWycnLCBkLmdhcCB8fCAnJ10sXG4gIFsnJywgZC5pbnQgfHwgJyddLFxuICBbJycsIF8ubGFzdChkLmxhcHMpID8gZm9ybWF0VGltZShfLmxhc3QoZC5sYXBzKSkgOiAnJ10sXG4gIFsnJywgTWF0aC5mbG9vcihfLmxhc3QoZC5tZWFzdXJlcykucGN0KSB8fCAnJ11cbl1cblxuY29uc3QgZHJhd0JvYXJkID0gKHsgY2Fycywgc2V0dXAgfSkgPT4ge1xuICAvLyBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShjYXJzLCBudWxsLCAyKSlcblxuICAvLyBPbmx5IGRyYXcgdGhlIGJvYXJkIHdoZW4gYSBjYXIgc3RhcnRzIGEgbmV3IGxhcC5cbiAgaWYgKGNhcnMuZmlsdGVyKGQgPT4gZC5pc05ld0xhcCkubGVuZ3RoIHx8IHNldHVwKSB7XG4gICAgY29uc3QgdGJvZHkgPSBkMy5zZWxlY3QoJ3RhYmxlLmJvYXJkIHRib2R5JylcblxuICAgIC8vIGpvaW5cbiAgICBjb25zdCB0ckpvaW4gPSB0Ym9keS5zZWxlY3RBbGwoJ3RyJykuZGF0YShjYXJzKVxuXG4gICAgLy8gdXBkYXRlXG4gICAgdHJKb2luXG4gICAgICAuc2VsZWN0QWxsKCd0ZCcpXG4gICAgICAuZGF0YShyb3dDZWxscylcbiAgICAgIC5hdHRyKCdjbGFzcycsIGQgPT4gZFswXSlcblxuICAgIC8vIGltbWVkaWF0ZWx5IGRpc3BsYXkgbm9uLW5ldyBsYXBzXG4gICAgdHJKb2luXG4gICAgICAudHJhbnNpdGlvbigpXG4gICAgICAuZHVyYXRpb24oMClcbiAgICAgIC5maWx0ZXIoZCA9PiAhZC5pc05ld0xhcClcbiAgICAgIC5zZWxlY3RBbGwoJ3RkJylcbiAgICAgIC50ZXh0KGQgPT4gZFsxXSlcbiAgICAgIC5zdHlsZSgndmlzaWJpbGl0eScsICd2aXNpYmxlJylcblxuICAgIC8vIHN0YWdnZXIgZGlzcGxheSBuZXcgbGFwc1xuICAgIHRySm9pblxuICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgLmR1cmF0aW9uKDApXG4gICAgICAuZmlsdGVyKGQgPT4gZC5pc05ld0xhcClcbiAgICAgIC5zZWxlY3RBbGwoJ3RkJylcbiAgICAgIC50ZXh0KGQgPT4gZFsxXSlcbiAgICAgIC5zdHlsZSgndmlzaWJpbGl0eScsICdoaWRkZW4nKVxuICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgLmRlbGF5KChkLCBpKSA9PiAxMjUgKyBpICogMTI1KVxuICAgICAgLnN0eWxlKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKVxuXG4gICAgLy8gZW50ZXJcbiAgICBjb25zdCB0ckVudGVyID0gdHJKb2luLmVudGVyKCkuYXBwZW5kKCd0cicpXG5cbiAgICB0ckVudGVyXG4gICAgICAuc2VsZWN0QWxsKCd0ZCcpXG4gICAgICAuZGF0YShyb3dDZWxscylcbiAgICAgIC5lbnRlcigpXG4gICAgICAuYXBwZW5kKCd0ZCcpXG4gICAgICAuYXR0cignY2xhc3MnLCBkID0+IGRbMF0pXG4gICAgICAudGV4dChkID0+IGRbMV0pXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZHJhd0JvYXJkXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gZHJhd0JvYXJkLmpzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQVNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUFBO0FBRUE7QUFBQTtBQUdBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getTriangleTransform = function getTriangleTransform(d) {\n return 'rotate(' + (-d.coords.angle + 90) + ' 0 0) scale(1 1.2)';\n};\n\nvar getGTransform = function getGTransform(d) {\n return 'translate(' + d.coords + ')';\n};\n\nvar drawCars = function drawCars(_ref) {\n var g = _ref.g,\n cars = _ref.cars,\n getCoords = _ref.getCoords;\n\n var data = cars.map(function (car) {\n return _extends({}, car, {\n coords: getCoords(_.last(car.measures).pct)\n });\n });\n\n // join\n var gJoin = g.selectAll('g.car').data(data, function (d) {\n return d.number;\n });\n\n // update\n gJoin.attr('class', function (d) {\n return d.position === 1 ? 'car leader' : 'car';\n }).attr('transform', getGTransform).select('path').attr('transform', getTriangleTransform);\n\n // enter\n var gEnter = gJoin.enter().append('g').attr('class', function (d) {\n return d.position === 1 ? 'car leader' : 'car';\n }).attr('transform', getGTransform);\n\n gEnter.append('path').attr('d', function (d) {\n return d3.symbol().type(d3.symbolTriangle).size(400)();\n }).attr('transform', getTriangleTransform);\n\n gEnter.append('text').text(function (d) {\n return d.number;\n }).attr('dy', 5);\n\n // remove\n gJoin.exit().remove();\n};\n\nexports.default = drawCars;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9kcmF3Q2Fycy5qcz9hMDAwIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldFRyaWFuZ2xlVHJhbnNmb3JtID0gZCA9PlxuICBgcm90YXRlKCR7LWQuY29vcmRzLmFuZ2xlICsgOTB9IDAgMCkgc2NhbGUoMSAxLjIpYFxuXG5jb25zdCBnZXRHVHJhbnNmb3JtID0gZCA9PiBgdHJhbnNsYXRlKCR7ZC5jb29yZHN9KWBcblxuY29uc3QgZHJhd0NhcnMgPSAoeyBnLCBjYXJzLCBnZXRDb29yZHMgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gY2Fycy5tYXAoY2FyID0+ICh7XG4gICAgLi4uY2FyLFxuICAgIGNvb3JkczogZ2V0Q29vcmRzKF8ubGFzdChjYXIubWVhc3VyZXMpLnBjdClcbiAgfSkpXG5cbiAgLy8gam9pblxuICBjb25zdCBnSm9pbiA9IGcuc2VsZWN0QWxsKCdnLmNhcicpLmRhdGEoZGF0YSwgZCA9PiBkLm51bWJlcilcblxuICAvLyB1cGRhdGVcbiAgZ0pvaW5cbiAgICAuYXR0cignY2xhc3MnLCBkID0+IChkLnBvc2l0aW9uID09PSAxID8gJ2NhciBsZWFkZXInIDogJ2NhcicpKVxuICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBnZXRHVHJhbnNmb3JtKVxuICAgIC5zZWxlY3QoJ3BhdGgnKVxuICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBnZXRUcmlhbmdsZVRyYW5zZm9ybSlcblxuICAvLyBlbnRlclxuICBjb25zdCBnRW50ZXIgPSBnSm9pblxuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZCgnZycpXG4gICAgLmF0dHIoJ2NsYXNzJywgZCA9PiAoZC5wb3NpdGlvbiA9PT0gMSA/ICdjYXIgbGVhZGVyJyA6ICdjYXInKSlcbiAgICAuYXR0cigndHJhbnNmb3JtJywgZ2V0R1RyYW5zZm9ybSlcblxuICBnRW50ZXJcbiAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAuYXR0cignZCcsIGQgPT5cbiAgICAgIGQzXG4gICAgICAgIC5zeW1ib2woKVxuICAgICAgICAudHlwZShkMy5zeW1ib2xUcmlhbmdsZSlcbiAgICAgICAgLnNpemUoNDAwKSgpXG4gICAgKVxuICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBnZXRUcmlhbmdsZVRyYW5zZm9ybSlcblxuICBnRW50ZXJcbiAgICAuYXBwZW5kKCd0ZXh0JylcbiAgICAudGV4dChkID0+IGQubnVtYmVyKVxuICAgIC5hdHRyKCdkeScsIDUpXG5cbiAgLy8gcmVtb3ZlXG4gIGdKb2luLmV4aXQoKS5yZW1vdmUoKVxufVxuXG5leHBvcnQgZGVmYXVsdCBkcmF3Q2Fyc1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGRyYXdDYXJzLmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBRkE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBRUE7QUFFQTtBQUFBO0FBQ0E7QUFPQTtBQUVBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _getAngle = __webpack_require__(7);\n\nvar _getAngle2 = _interopRequireDefault(_getAngle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar drawTrack = function drawTrack(_ref) {\n var container = _ref.container,\n track = _ref.track;\n\n var margin = 20;\n var dimension = container.node().offsetWidth - margin * 2;\n\n var xExtent = d3.extent(track, function (d) {\n return d.x;\n });\n var x = d3.scaleLinear().domain(xExtent);\n\n var yExtent = d3.extent(track, function (d) {\n return d.y;\n });\n var y = d3.scaleLinear().domain(yExtent);\n\n var aspect = (xExtent[1] - xExtent[0]) / (yExtent[1] - yExtent[0]);\n\n var width = Math.min(dimension * aspect, dimension);\n var height = Math.min(dimension / aspect, dimension);\n\n x.range([0, width]);\n y.range([0, height]);\n\n var svg = container.append('svg').attr('width', width + 2 * margin).attr('height', height + 2 * margin);\n\n var g = svg.append('g').attr('transform', 'translate(' + margin + ', ' + margin + ')');\n\n var line = d3.line()\n // .curve(d3.curveBasis)\n .x(function (d) {\n return x(d.x);\n }).y(function (d) {\n return y(d.y);\n });\n\n var path = g.append('path').attr('class', 'track').datum(track).attr('d', line).node();\n\n var totalLength = path.getTotalLength();\n\n var getCoords = function getCoords(pct) {\n var length = totalLength * (pct % 1);\n var delta = 1;\n var offset = length + 1 > totalLength ? -delta : delta;\n var axy = path.getPointAtLength(length);\n var bxy = path.getPointAtLength(length + offset);\n var a = [axy.x, axy.y];\n var b = [bxy.x, bxy.y];\n\n var angle = (0, _getAngle2.default)([a, b]);\n\n var array = [].concat(a);\n array.angle = angle;\n\n return array;\n };\n\n var delta = 0.01;\n var before = getCoords(1 - delta);\n var zero = getCoords(0);\n var after = getCoords(delta);\n\n g.append('line').attr('class', 'finish-line').attr('x1', before[0]).attr('y1', before[1]).attr('x2', after[0]).attr('y2', after[1]).attr('transform', 'rotate(90, ' + zero + ')');\n\n return { g: g, getCoords: getCoords };\n};\n\nexports.default = drawTrack;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9kcmF3VHJhY2suanM/MTY1OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0QW5nbGUgZnJvbSAnLi9nZXRBbmdsZS5qcydcblxuY29uc3QgZHJhd1RyYWNrID0gKHsgY29udGFpbmVyLCB0cmFjayB9KSA9PiB7XG4gIGNvbnN0IG1hcmdpbiA9IDIwXG4gIGNvbnN0IGRpbWVuc2lvbiA9IGNvbnRhaW5lci5ub2RlKCkub2Zmc2V0V2lkdGggLSBtYXJnaW4gKiAyXG5cbiAgY29uc3QgeEV4dGVudCA9IGQzLmV4dGVudCh0cmFjaywgZCA9PiBkLngpXG4gIGNvbnN0IHggPSBkMy5zY2FsZUxpbmVhcigpLmRvbWFpbih4RXh0ZW50KVxuXG4gIGNvbnN0IHlFeHRlbnQgPSBkMy5leHRlbnQodHJhY2ssIGQgPT4gZC55KVxuICBjb25zdCB5ID0gZDMuc2NhbGVMaW5lYXIoKS5kb21haW4oeUV4dGVudClcblxuICBjb25zdCBhc3BlY3QgPSAoeEV4dGVudFsxXSAtIHhFeHRlbnRbMF0pIC8gKHlFeHRlbnRbMV0gLSB5RXh0ZW50WzBdKVxuXG4gIGNvbnN0IHdpZHRoID0gTWF0aC5taW4oZGltZW5zaW9uICogYXNwZWN0LCBkaW1lbnNpb24pXG4gIGNvbnN0IGhlaWdodCA9IE1hdGgubWluKGRpbWVuc2lvbiAvIGFzcGVjdCwgZGltZW5zaW9uKVxuXG4gIHgucmFuZ2UoWzAsIHdpZHRoXSlcbiAgeS5yYW5nZShbMCwgaGVpZ2h0XSlcblxuICBjb25zdCBzdmcgPSBjb250YWluZXJcbiAgICAuYXBwZW5kKCdzdmcnKVxuICAgIC5hdHRyKCd3aWR0aCcsIHdpZHRoICsgMiAqIG1hcmdpbilcbiAgICAuYXR0cignaGVpZ2h0JywgaGVpZ2h0ICsgMiAqIG1hcmdpbilcblxuICBjb25zdCBnID0gc3ZnLmFwcGVuZCgnZycpLmF0dHIoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHttYXJnaW59LCAke21hcmdpbn0pYClcblxuICBjb25zdCBsaW5lID0gZDNcbiAgICAubGluZSgpXG4gICAgLy8gLmN1cnZlKGQzLmN1cnZlQmFzaXMpXG4gICAgLngoZCA9PiB4KGQueCkpXG4gICAgLnkoZCA9PiB5KGQueSkpXG5cbiAgY29uc3QgcGF0aCA9IGdcbiAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAuYXR0cignY2xhc3MnLCAndHJhY2snKVxuICAgIC5kYXR1bSh0cmFjaylcbiAgICAuYXR0cignZCcsIGxpbmUpXG4gICAgLm5vZGUoKVxuXG4gIGNvbnN0IHRvdGFsTGVuZ3RoID0gcGF0aC5nZXRUb3RhbExlbmd0aCgpXG5cbiAgY29uc3QgZ2V0Q29vcmRzID0gcGN0ID0+IHtcbiAgICBjb25zdCBsZW5ndGggPSB0b3RhbExlbmd0aCAqIChwY3QgJSAxKVxuICAgIGNvbnN0IGRlbHRhID0gMVxuICAgIGNvbnN0IG9mZnNldCA9IGxlbmd0aCArIDEgPiB0b3RhbExlbmd0aCA/IC1kZWx0YSA6IGRlbHRhXG4gICAgY29uc3QgYXh5ID0gcGF0aC5nZXRQb2ludEF0TGVuZ3RoKGxlbmd0aClcbiAgICBjb25zdCBieHkgPSBwYXRoLmdldFBvaW50QXRMZW5ndGgobGVuZ3RoICsgb2Zmc2V0KVxuICAgIGNvbnN0IGEgPSBbYXh5LngsIGF4eS55XVxuICAgIGNvbnN0IGIgPSBbYnh5LngsIGJ4eS55XVxuXG4gICAgY29uc3QgYW5nbGUgPSBnZXRBbmdsZShbYSwgYl0pXG5cbiAgICBjb25zdCBhcnJheSA9IFsuLi5hXVxuICAgIGFycmF5LmFuZ2xlID0gYW5nbGVcblxuICAgIHJldHVybiBhcnJheVxuICB9XG5cbiAgY29uc3QgZGVsdGEgPSAwLjAxXG4gIGNvbnN0IGJlZm9yZSA9IGdldENvb3JkcygxIC0gZGVsdGEpXG4gIGNvbnN0IHplcm8gPSBnZXRDb29yZHMoMClcbiAgY29uc3QgYWZ0ZXIgPSBnZXRDb29yZHMoZGVsdGEpXG5cbiAgZ1xuICAgIC5hcHBlbmQoJ2xpbmUnKVxuICAgIC5hdHRyKCdjbGFzcycsICdmaW5pc2gtbGluZScpXG4gICAgLmF0dHIoJ3gxJywgYmVmb3JlWzBdKVxuICAgIC5hdHRyKCd5MScsIGJlZm9yZVsxXSlcbiAgICAuYXR0cigneDInLCBhZnRlclswXSlcbiAgICAuYXR0cigneTInLCBhZnRlclsxXSlcbiAgICAuYXR0cigndHJhbnNmb3JtJywgYHJvdGF0ZSg5MCwgJHt6ZXJvfSlgKVxuXG4gIHJldHVybiB7IGcsIGdldENvb3JkcyB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRyYXdUcmFja1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGRyYXdUcmFjay5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7Ozs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUZBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///5\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _getRandomArbitrary = __webpack_require__(8);\n\nvar _getRandomArbitrary2 = _interopRequireDefault(_getRandomArbitrary);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar moveCar = function moveCar(_ref) {\n var car = _ref.car,\n delta = _ref.delta;\n var measures = car.measures;\n\n var random = 0.02;\n\n var lastTwo = measures.slice(-2);\n\n // Figure out if we started a new lap.\n var isNewLap = Math.floor(lastTwo[0].pct) !== Math.floor(lastTwo[1].pct);\n\n // Calculate new speed.\n var newSpeed = _.clamp(lastTwo[1].speed * (0, _getRandomArbitrary2.default)(1 - random, 1 + random), _constants2.default.MIN, _constants2.default.MAX);\n\n // Calculate new pct.\n var newPct = lastTwo[1].pct + delta * lastTwo[1].speed / 3600000;\n\n return _extends({}, car, {\n isNewLap: isNewLap,\n measures: [].concat(_toConsumableArray(measures), [{\n pct: newPct,\n speed: newSpeed\n }]).slice(isNewLap ? -2 : 0)\n });\n};\n\nexports.default = moveCar;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9tb3ZlQ2FyLmpzP2RlNzkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnN0YW50cyBmcm9tICcuL2NvbnN0YW50cy5qcydcbmltcG9ydCBnZXRSYW5kb21BcmJpdHJhcnkgZnJvbSAnLi9nZXRSYW5kb21BcmJpdHJhcnkuanMnXG5cbmNvbnN0IG1vdmVDYXIgPSAoeyBjYXIsIGRlbHRhIH0pID0+IHtcbiAgY29uc3QgeyBtZWFzdXJlcyB9ID0gY2FyXG4gIGNvbnN0IHJhbmRvbSA9IDAuMDJcblxuICBjb25zdCBsYXN0VHdvID0gbWVhc3VyZXMuc2xpY2UoLTIpXG5cbiAgLy8gRmlndXJlIG91dCBpZiB3ZSBzdGFydGVkIGEgbmV3IGxhcC5cbiAgY29uc3QgaXNOZXdMYXAgPSBNYXRoLmZsb29yKGxhc3RUd29bMF0ucGN0KSAhPT0gTWF0aC5mbG9vcihsYXN0VHdvWzFdLnBjdClcblxuICAvLyBDYWxjdWxhdGUgbmV3IHNwZWVkLlxuICBjb25zdCBuZXdTcGVlZCA9IF8uY2xhbXAoXG4gICAgbGFzdFR3b1sxXS5zcGVlZCAqIGdldFJhbmRvbUFyYml0cmFyeSgxIC0gcmFuZG9tLCAxICsgcmFuZG9tKSxcbiAgICBjb25zdGFudHMuTUlOLFxuICAgIGNvbnN0YW50cy5NQVhcbiAgKVxuXG4gIC8vIENhbGN1bGF0ZSBuZXcgcGN0LlxuICBjb25zdCBuZXdQY3QgPSBsYXN0VHdvWzFdLnBjdCArIGRlbHRhICogbGFzdFR3b1sxXS5zcGVlZCAvIDM2MDAwMDBcblxuICByZXR1cm4ge1xuICAgIC4uLmNhcixcbiAgICBpc05ld0xhcCxcbiAgICBtZWFzdXJlczogW1xuICAgICAgLi4ubWVhc3VyZXMsXG4gICAgICB7XG4gICAgICAgIHBjdDogbmV3UGN0LFxuICAgICAgICBzcGVlZDogbmV3U3BlZWRcbiAgICAgIH1cbiAgICBdLnNsaWNlKGlzTmV3TGFwID8gLTIgOiAwKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1vdmVDYXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBtb3ZlQ2FyLmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7Ozs7Ozs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBRkE7QUFMQTtBQVdBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n')},function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();\n\nvar getAngle = function getAngle(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n a = _ref2[0],\n b = _ref2[1];\n\n var x = b[0] - a[0];\n var y = -(b[1] - a[1]);\n var angle = Math.atan2(y, x) * 180 / Math.PI;\n return angle;\n};\n\nexports.default = getAngle;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9nZXRBbmdsZS5qcz8yYTJkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldEFuZ2xlID0gKFthLCBiXSkgPT4ge1xuICBjb25zdCB4ID0gYlswXSAtIGFbMF1cbiAgY29uc3QgeSA9IC0oYlsxXSAtIGFbMV0pXG4gIGNvbnN0IGFuZ2xlID0gTWF0aC5hdGFuMih5LCB4KSAqIDE4MCAvIE1hdGguUElcbiAgcmV0dXJuIGFuZ2xlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldEFuZ2xlXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gZ2V0QW5nbGUuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n')},function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nvar getRandomArbitrary = function getRandomArbitrary(min, max) {\n return Math.random() * (max - min) + min;\n};\n\nexports.default = getRandomArbitrary;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9nZXRSYW5kb21BcmJpdHJhcnkuanM/OWY2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRSYW5kb21BcmJpdHJhcnkgPSAobWluLCBtYXgpID0+IE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pblxuXG5leHBvcnQgZGVmYXVsdCBnZXRSYW5kb21BcmJpdHJhcnlcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBnZXRSYW5kb21BcmJpdHJhcnkuanMiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8\n')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _drawTrack2 = __webpack_require__(5);\n\nvar _drawTrack3 = _interopRequireDefault(_drawTrack2);\n\nvar _drawCars = __webpack_require__(4);\n\nvar _drawCars2 = _interopRequireDefault(_drawCars);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _drawBoard = __webpack_require__(3);\n\nvar _drawBoard2 = _interopRequireDefault(_drawBoard);\n\nvar _chart = __webpack_require__(2);\n\nvar _chart2 = _interopRequireDefault(_chart);\n\nvar _moveCar = __webpack_require__(6);\n\nvar _moveCar2 = _interopRequireDefault(_moveCar);\n\nvar _calculateMetrics = __webpack_require__(1);\n\nvar _calculateMetrics2 = _interopRequireDefault(_calculateMetrics);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Draw the track.\nvar _drawTrack = (0, _drawTrack3.default)({\n container: d3.select('.circuit'),\n track: circuitTracks[0]\n}),\n gCircuit = _drawTrack.g,\n getCoords = _drawTrack.getCoords;\n\n// Setup the chart.\n\n\nvar chartBits = _chart2.default.setup(d3.select('.chart'));\n\n// Create the state.\nvar dx = 0.015;\nvar state = {\n cars: _(drivers).sortBy('standing').slice(0, 10).map(function (d, i, array) {\n return {\n number: d.number,\n name: d.name.split(' ')[1].slice(0, 3),\n measures: [{\n speed: _constants2.default.AVERAGE,\n pct: 0\n }, {\n speed: _constants2.default.AVERAGE,\n pct: dx * array.length - (i + 1) * dx\n }],\n elapsed: 0,\n laps: [],\n status: 'yellow',\n position: i + 1\n };\n }).value()\n};\n\nvar draw = function draw(setup) {\n // Draw the cars.\n (0, _drawCars2.default)({ g: gCircuit, getCoords: getCoords, cars: state.cars });\n\n // Draw the board.\n (0, _drawBoard2.default)({ cars: state.cars, setup: setup });\n\n // Update the chart.\n _chart2.default.update(_extends({ cars: state.cars }, chartBits));\n};\n\ndraw(true);\n\nvar now = 0;\nvar timer = d3.interval(function (elapsed) {\n var delta = elapsed - now;\n\n // Move the cars (and also keep them sorted by position).\n state = _extends({}, state, {\n cars: _(state.cars).map(function (car) {\n return (0, _moveCar2.default)({ car: car, delta: delta });\n }).sortBy(function (d) {\n return -_.last(d.measures).pct;\n }).value()\n\n // Calculate metrics.\n });state = _extends({}, state, {\n cars: state.cars.map(function (car, index, cars) {\n return (0, _calculateMetrics2.default)({ car: car, raceElapsed: elapsed, index: index, cars: cars });\n })\n\n // Draw everything.\n });draw();\n\n now = elapsed;\n\n // Stop when the leader gets to 10 laps.\n if (_.last(state.cars[0].measures).pct >= 10) {\n timer.stop();\n }\n}, 0);\n\n// document.querySelector('button.slow').addEventListener('click', () => {\n// state.cars[0].speed = state.cars[0].speed * 0.9\n// })\n\n// document.querySelector('button.fast').addEventListener('click', () => {\n// state.cars[0].speed = state.cars[0].speed * 1.01\n// })\n\ndocument.querySelector('button.stop').addEventListener('click', function () {\n timer.stop();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9zY3JpcHQuanM/OWE5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHJhd1RyYWNrIGZyb20gJy4vZHJhd1RyYWNrLmpzJ1xuaW1wb3J0IGRyYXdDYXJzIGZyb20gJy4vZHJhd0NhcnMuanMnXG5pbXBvcnQgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IGRyYXdCb2FyZCBmcm9tICcuL2RyYXdCb2FyZC5qcydcbmltcG9ydCBjaGFydCBmcm9tICcuL2NoYXJ0LmpzJ1xuaW1wb3J0IG1vdmVDYXIgZnJvbSAnLi9tb3ZlQ2FyLmpzJ1xuaW1wb3J0IGNhbGN1bGF0ZU1ldHJpY3MgZnJvbSAnLi9jYWxjdWxhdGVNZXRyaWNzLmpzJ1xuXG4vLyBEcmF3IHRoZSB0cmFjay5cbmNvbnN0IHsgZzogZ0NpcmN1aXQsIGdldENvb3JkcyB9ID0gZHJhd1RyYWNrKHtcbiAgY29udGFpbmVyOiBkMy5zZWxlY3QoJy5jaXJjdWl0JyksXG4gIHRyYWNrOiBjaXJjdWl0VHJhY2tzWzBdXG59KVxuXG4vLyBTZXR1cCB0aGUgY2hhcnQuXG5jb25zdCBjaGFydEJpdHMgPSBjaGFydC5zZXR1cChkMy5zZWxlY3QoJy5jaGFydCcpKVxuXG4vLyBDcmVhdGUgdGhlIHN0YXRlLlxuY29uc3QgZHggPSAwLjAxNVxubGV0IHN0YXRlID0ge1xuICBjYXJzOiBfKGRyaXZlcnMpXG4gICAgLnNvcnRCeSgnc3RhbmRpbmcnKVxuICAgIC5zbGljZSgwLCAxMClcbiAgICAubWFwKChkLCBpLCBhcnJheSkgPT4gKHtcbiAgICAgIG51bWJlcjogZC5udW1iZXIsXG4gICAgICBuYW1lOiBkLm5hbWUuc3BsaXQoJyAnKVsxXS5zbGljZSgwLCAzKSxcbiAgICAgIG1lYXN1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzcGVlZDogY29uc3RhbnRzLkFWRVJBR0UsXG4gICAgICAgICAgcGN0OiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzcGVlZDogY29uc3RhbnRzLkFWRVJBR0UsXG4gICAgICAgICAgcGN0OiBkeCAqIGFycmF5Lmxlbmd0aCAtIChpICsgMSkgKiBkeFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZWxhcHNlZDogMCxcbiAgICAgIGxhcHM6IFtdLFxuICAgICAgc3RhdHVzOiAneWVsbG93JyxcbiAgICAgIHBvc2l0aW9uOiBpICsgMVxuICAgIH0pKVxuICAgIC52YWx1ZSgpXG59XG5cbmNvbnN0IGRyYXcgPSBzZXR1cCA9PiB7XG4gIC8vIERyYXcgdGhlIGNhcnMuXG4gIGRyYXdDYXJzKHsgZzogZ0NpcmN1aXQsIGdldENvb3JkcywgY2Fyczogc3RhdGUuY2FycyB9KVxuXG4gIC8vIERyYXcgdGhlIGJvYXJkLlxuICBkcmF3Qm9hcmQoeyBjYXJzOiBzdGF0ZS5jYXJzLCBzZXR1cCB9KVxuXG4gIC8vIFVwZGF0ZSB0aGUgY2hhcnQuXG4gIGNoYXJ0LnVwZGF0ZSh7IGNhcnM6IHN0YXRlLmNhcnMsIC4uLmNoYXJ0Qml0cyB9KVxufVxuXG5kcmF3KHRydWUpXG5cbmxldCBub3cgPSAwXG5jb25zdCB0aW1lciA9IGQzLmludGVydmFsKGVsYXBzZWQgPT4ge1xuICBjb25zdCBkZWx0YSA9IGVsYXBzZWQgLSBub3dcblxuICAvLyBNb3ZlIHRoZSBjYXJzIChhbmQgYWxzbyBrZWVwIHRoZW0gc29ydGVkIGJ5IHBvc2l0aW9uKS5cbiAgc3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgY2FyczogXyhzdGF0ZS5jYXJzKVxuICAgICAgLm1hcChjYXIgPT4gbW92ZUNhcih7IGNhciwgZGVsdGEgfSkpXG4gICAgICAuc29ydEJ5KGQgPT4gLV8ubGFzdChkLm1lYXN1cmVzKS5wY3QpXG4gICAgICAudmFsdWUoKVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIG1ldHJpY3MuXG4gIHN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGNhcnM6IHN0YXRlLmNhcnMubWFwKChjYXIsIGluZGV4LCBjYXJzKSA9PlxuICAgICAgY2FsY3VsYXRlTWV0cmljcyh7IGNhciwgcmFjZUVsYXBzZWQ6IGVsYXBzZWQsIGluZGV4LCBjYXJzIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gRHJhdyBldmVyeXRoaW5nLlxuICBkcmF3KClcblxuICBub3cgPSBlbGFwc2VkXG5cbiAgLy8gU3RvcCB3aGVuIHRoZSBsZWFkZXIgZ2V0cyB0byAxMCBsYXBzLlxuICBpZiAoXy5sYXN0KHN0YXRlLmNhcnNbMF0ubWVhc3VyZXMpLnBjdCA+PSAxMCkge1xuICAgIHRpbWVyLnN0b3AoKVxuICB9XG59LCAwKVxuXG4vLyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24uc2xvdycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuLy8gICBzdGF0ZS5jYXJzWzBdLnNwZWVkID0gc3RhdGUuY2Fyc1swXS5zcGVlZCAqIDAuOVxuLy8gfSlcblxuLy8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uLmZhc3QnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbi8vICAgc3RhdGUuY2Fyc1swXS5zcGVlZCA9IHN0YXRlLmNhcnNbMF0uc3BlZWQgKiAxLjAxXG4vLyB9KVxuXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24uc3RvcCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICB0aW1lci5zdG9wKClcbn0pXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc2NyaXB0LmpzIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQUFBO0FBSkE7QUFDQTtBQXdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBUkE7QUFXQTtBQUFBO0FBQUE7QUFDQTtBQUlBO0FBUEE7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n")}]);
const formatTime = d3.timeFormat('%-M:%S.%L')
const rowCells = d => [
['', d.position],
[d.position === 1 ? 'leader' : d.status, d.number],
[d.position === 1 ? 'leader' : d.status, d.name],
['', d.gap || ''],
['', d.int || ''],
['', _.last(d.laps) ? formatTime(_.last(d.laps)) : ''],
['', Math.floor(_.last(d.measures).pct) || '']
]
const drawBoard = ({ cars, setup }) => {
// console.log(JSON.stringify(cars, null, 2))
// Only draw the board when a car starts a new lap.
if (cars.filter(d => d.isNewLap).length || setup) {
const tbody = d3.select('table.board tbody')
// join
const trJoin = tbody.selectAll('tr').data(cars)
// update
trJoin
.selectAll('td')
.data(rowCells)
.attr('class', d => d[0])
// immediately display non-new laps
trJoin
.transition()
.duration(0)
.filter(d => !d.isNewLap)
.selectAll('td')
.text(d => d[1])
.style('visibility', 'visible')
// stagger display new laps
trJoin
.transition()
.duration(0)
.filter(d => d.isNewLap)
.selectAll('td')
.text(d => d[1])
.style('visibility', 'hidden')
.transition()
.delay((d, i) => 125 + i * 125)
.style('visibility', 'visible')
// enter
const trEnter = trJoin.enter().append('tr')
trEnter
.selectAll('td')
.data(rowCells)
.enter()
.append('td')
.attr('class', d => d[0])
.text(d => d[1])
}
}
export default drawBoard
const getTriangleTransform = d =>
`rotate(${-d.coords.angle + 90} 0 0) scale(1 1.2)`
const getGTransform = d => `translate(${d.coords})`
const drawCars = ({ g, cars, getCoords }) => {
const data = cars.map(car => ({
...car,
coords: getCoords(_.last(car.measures).pct)
}))
// join
const gJoin = g.selectAll('g.car').data(data, d => d.number)
// update
gJoin
.attr('class', d => (d.position === 1 ? 'car leader' : 'car'))
.attr('transform', getGTransform)
.select('path')
.attr('transform', getTriangleTransform)
// enter
const gEnter = gJoin
.enter()
.append('g')
.attr('class', d => (d.position === 1 ? 'car leader' : 'car'))
.attr('transform', getGTransform)
gEnter
.append('path')
.attr('d', d =>
d3
.symbol()
.type(d3.symbolTriangle)
.size(400)()
)
.attr('transform', getTriangleTransform)
gEnter
.append('text')
.text(d => d.number)
.attr('dy', 5)
// remove
gJoin.exit().remove()
}
export default drawCars
import getAngle from './getAngle.js'
const drawTrack = ({ container, track }) => {
const margin = 20
const dimension = container.node().offsetWidth - margin * 2
const xExtent = d3.extent(track, d => d.x)
const x = d3.scaleLinear().domain(xExtent)
const yExtent = d3.extent(track, d => d.y)
const y = d3.scaleLinear().domain(yExtent)
const aspect = (xExtent[1] - xExtent[0]) / (yExtent[1] - yExtent[0])
const width = Math.min(dimension * aspect, dimension)
const height = Math.min(dimension / aspect, dimension)
x.range([0, width])
y.range([0, height])
const svg = container
.append('svg')
.attr('width', width + 2 * margin)
.attr('height', height + 2 * margin)
const g = svg.append('g').attr('transform', `translate(${margin}, ${margin})`)
const line = d3
.line()
// .curve(d3.curveBasis)
.x(d => x(d.x))
.y(d => y(d.y))
const path = g
.append('path')
.attr('class', 'track')
.datum(track)
.attr('d', line)
.node()
const totalLength = path.getTotalLength()
const getCoords = pct => {
const length = totalLength * (pct % 1)
const delta = 1
const offset = length + 1 > totalLength ? -delta : delta
const axy = path.getPointAtLength(length)
const bxy = path.getPointAtLength(length + offset)
const a = [axy.x, axy.y]
const b = [bxy.x, bxy.y]
const angle = getAngle([a, b])
const array = [...a]
array.angle = angle
return array
}
const delta = 0.01
const before = getCoords(1 - delta)
const zero = getCoords(0)
const after = getCoords(delta)
g
.append('line')
.attr('class', 'finish-line')
.attr('x1', before[0])
.attr('y1', before[1])
.attr('x2', after[0])
.attr('y2', after[1])
.attr('transform', `rotate(90, ${zero})`)
return { g, getCoords }
}
export default drawTrack
var drivers = [
{
entrant: 'Scuderia Ferrari',
constructor: 'Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '5',
standing: 2,
name: 'Sebastian Vettel'
},
{
entrant: 'Scuderia Ferrari',
constructor: 'Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '7',
standing: 4,
name: 'Kimi Räikkönen'
},
{
entrant: 'Sahara Force India F1 Team',
constructor: 'Force India-Mercedes',
chassis: 'TBA',
power: 'Mercedes',
tyres: 'P',
number: '11',
standing: 7,
name: 'Sergio Pérez'
},
{
entrant: 'Sahara Force India F1 Team',
constructor: 'Force India-Mercedes',
chassis: 'TBA',
power: 'Mercedes',
tyres: 'P',
number: '31',
standing: 8,
name: 'Esteban Ocon'
},
{
entrant: 'Haas F1 Team',
constructor: 'Haas-Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '8',
standing: 13,
name: 'Romain Grosjean'
},
{
entrant: 'Haas F1 Team',
constructor: 'Haas-Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '20',
standing: 14,
name: 'Kevin Magnussen'
},
{
entrant: 'McLaren F1 Team',
constructor: 'McLaren-Renault',
chassis: 'TBA',
power: 'Renault',
tyres: 'P',
number: '2',
standing: 16,
name: 'Stoffel Vandoorne'
},
{
entrant: 'McLaren F1 Team',
constructor: 'McLaren-Renault',
chassis: 'TBA',
power: 'Renault',
tyres: 'P',
number: '14',
standing: 15,
name: 'Fernando Alonso'
},
{
entrant: 'Mercedes AMG Petronas Motorsport',
constructor: 'Mercedes',
chassis: 'TBA',
power: 'Mercedes',
tyres: 'P',
number: '44',
standing: 1,
name: 'Lewis Hamilton'
},
{
entrant: 'Mercedes AMG Petronas Motorsport',
constructor: 'Mercedes',
chassis: 'TBA',
power: 'Mercedes',
tyres: 'P',
number: '77',
standing: 3,
name: 'Valtteri Bottas'
},
{
entrant: 'Aston Martin Red Bull Racing',
constructor: 'Red Bull Racing-TAG Heuer',
chassis: 'RB14',
power: 'TAG Heuer',
tyres: 'P',
number: '3',
standing: 5,
name: 'Daniel Ricciardo'
},
{
entrant: 'Aston Martin Red Bull Racing',
constructor: 'Red Bull Racing-TAG Heuer',
chassis: 'RB14',
power: 'TAG Heuer',
tyres: 'P',
number: '33',
standing: 6,
name: 'Max Verstappen'
},
{
entrant: 'Renault Sport Formula One Team',
constructor: 'Renault',
chassis: 'TBA',
power: 'Renault',
tyres: 'P',
number: '27',
standing: 10,
name: 'Nico Hülkenberg'
},
{
entrant: 'Renault Sport Formula One Team',
constructor: 'Renault',
chassis: 'TBA',
power: 'Renault',
tyres: 'P',
number: '55',
standing: 9,
name: 'Carlos Sainz Jr.'
},
{
entrant: 'Alfa Romeo Sauber F1 Team',
constructor: 'Sauber-Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '9',
standing: 20,
name: 'Marcus Ericsson'
},
{
entrant: 'Alfa Romeo Sauber F1 Team',
constructor: 'Sauber-Ferrari',
chassis: 'TBA',
power: 'Ferrari',
tyres: 'P',
number: '16',
standing: 26,
name: 'Charles Leclerc'
},
{
entrant: 'Red Bull Toro Rosso Honda',
constructor: 'Scuderia Toro Rosso-Honda',
chassis: 'TBA',
power: 'Honda',
tyres: 'P',
number: '10',
standing: 21,
name: 'Pierre Gasly'
},
{
entrant: 'Red Bull Toro Rosso Honda',
constructor: 'Scuderia Toro Rosso-Honda',
chassis: 'TBA',
power: 'Honda',
tyres: 'P',
number: '28',
standing: 23,
name: 'Brendon Hartley'
},
{
entrant: 'Williams Martini Racing',
constructor: 'Williams-Mercedes',
chassis: 'TBA',
power: 'Mercedes',
tyres: 'P',
number: '18',
standing: 12,
name: 'Lance Stroll'
}
]
const getAngle = ([a, b]) => {
const x = b[0] - a[0]
const y = -(b[1] - a[1])
const angle = Math.atan2(y, x) * 180 / Math.PI
return angle
}
export default getAngle
const getRandomArbitrary = (min, max) => Math.random() * (max - min) + min
export default getRandomArbitrary
<!DOCTYPE html>
<title>blockup</title>
<link href='https://fonts.googleapis.com/css?family=VT323' rel='stylesheet'>
<link href='dist.css' rel='stylesheet' />
<body>
<h1>speedy racer</h1>
<div class='circuit'></div>
<table class='board'>
<thead>
<tr>
<td></td>
<td></td>
<td></td>
<td class='cyan'>GAP</td>
<td class='cyan'>INT</td>
<td></td>
<td></td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<div class='chart'></div>
<button class='slow'>slow</button>
<button class='fast'>fast</button>
<button class='stop'>stop</button>
<script src='lodash.min.js'></script>
<script src='d3.v4.min.js'></script>
<script src='drivers.js'></script>
<script src='circuitTracks.js'></script>
<script src='dist.js'></script>
</body>
/**
* @license
* Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
*/
;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function i(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n););
return n}function o(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function f(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function c(n,t){return!(null==n||!n.length)&&-1<d(n,t,0)}function a(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function l(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function s(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];
return n}function h(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function p(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function _(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function g(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function d(n,t,r){if(t===t)n:{
--r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=g(n,b,r);return n}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n){return n!==n}function x(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:P}function j(n){return function(t){return null==t?F:t[n]}}function w(n){return function(t){return null==n?F:n[t]}}function m(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;
return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function O(n,t){return l(t,function(t){return[t,n[t]]})}function S(n){return function(t){return n(t)}}function I(n,t){return l(t,function(t){return n[t]})}function R(n,t){return n.has(t)}function z(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function W(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function B(n){
return"\\"+Tn[n]}function L(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function U(n,t){return function(r){return n(t(r))}}function C(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&"__lodash_placeholder__"!==o||(n[r]="__lodash_placeholder__",i[u++]=r)}return i}function D(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function T(n){if(Bn.test(n)){
for(var t=zn.lastIndex=0;zn.test(n);)++t;n=t}else n=tt(n);return n}function $(n){return Bn.test(n)?n.match(zn)||[]:n.split("")}var F,N=1/0,P=NaN,Z=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],q=/\b__p\+='';/g,V=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,H=/[&<>"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/^\./,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hn=/\{\n\/\* \[wrapped with (.+)\] \*/,pn=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vn=/\\(\\)?/g,gn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dn=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\d*)$/,mn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,An=/($^)/,kn=/['\n\r\u2028\u2029\\]/g,En="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",On="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+En,Sn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",In=RegExp("['\u2019]","g"),Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),zn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Sn+En,"g"),Wn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+",On].join("|"),"g"),Bn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={};
Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object DataView]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false;
var Dn={};Dn["[object Arguments]"]=Dn["[object Array]"]=Dn["[object ArrayBuffer]"]=Dn["[object DataView]"]=Dn["[object Boolean]"]=Dn["[object Date]"]=Dn["[object Float32Array]"]=Dn["[object Float64Array]"]=Dn["[object Int8Array]"]=Dn["[object Int16Array]"]=Dn["[object Int32Array]"]=Dn["[object Map]"]=Dn["[object Number]"]=Dn["[object Object]"]=Dn["[object RegExp]"]=Dn["[object Set]"]=Dn["[object String]"]=Dn["[object Symbol]"]=Dn["[object Uint8Array]"]=Dn["[object Uint8ClampedArray]"]=Dn["[object Uint16Array]"]=Dn["[object Uint32Array]"]=true,
Dn["[object Error]"]=Dn["[object Function]"]=Dn["[object WeakMap]"]=false;var Mn,Tn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$n=parseFloat,Fn=parseInt,Nn=typeof global=="object"&&global&&global.Object===Object&&global,Pn=typeof self=="object"&&self&&self.Object===Object&&self,Zn=Nn||Pn||Function("return this")(),qn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vn=qn&&typeof module=="object"&&module&&!module.nodeType&&module,Kn=Vn&&Vn.exports===qn,Gn=Kn&&Nn.process;
n:{try{Mn=Gn&&Gn.binding&&Gn.binding("util");break n}catch(n){}Mn=void 0}var Hn=Mn&&Mn.isArrayBuffer,Jn=Mn&&Mn.isDate,Yn=Mn&&Mn.isMap,Qn=Mn&&Mn.isRegExp,Xn=Mn&&Mn.isSet,nt=Mn&&Mn.isTypedArray,tt=j("length"),rt=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I",
"\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C",
"\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i",
"\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S",
"\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe",
"\u0149":"'n","\u017f":"s"}),et=w({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),ut=w({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),it=function w(En){function On(n){if(xu(n)&&!af(n)&&!(n instanceof Mn)){if(n instanceof zn)return n;if(ci.call(n,"__wrapped__"))return Pe(n)}return new zn(n)}function Sn(){}function zn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=F}function Mn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,
this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Nn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Pn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function qn(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new Pn;++t<r;)this.add(n[t])}function Vn(n){
this.size=(this.__data__=new Nn(n)).size}function Gn(n,t){var r,e=af(n),u=!e&&cf(n),i=!e&&!u&&sf(n),o=!e&&!u&&!i&&gf(n),u=(e=e||u||i||o)?E(n.length,ri):[],f=u.length;for(r in n)!t&&!ci.call(n,r)||e&&("length"==r||i&&("offset"==r||"parent"==r)||o&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||Re(r,f))||u.push(r);return u}function tt(n){var t=n.length;return t?n[cr(0,t-1)]:F}function ot(n,t){return Te(Mr(n),gt(t,0,n.length))}function ft(n){return Te(Mr(n))}function ct(n,t,r){(r===F||hu(n[t],r))&&(r!==F||t in n)||_t(n,t,r);
}function at(n,t,r){var e=n[t];ci.call(n,t)&&hu(e,r)&&(r!==F||t in n)||_t(n,t,r)}function lt(n,t){for(var r=n.length;r--;)if(hu(n[r][0],t))return r;return-1}function st(n,t,r,e){return oo(n,function(n,u,i){t(e,n,r(n),i)}),e}function ht(n,t){return n&&Tr(t,Lu(t),n)}function pt(n,t){return n&&Tr(t,Uu(t),n)}function _t(n,t,r){"__proto__"==t&&Ei?Ei(n,t,{configurable:true,enumerable:true,value:r,writable:true}):n[t]=r}function vt(n,t){for(var r=-1,e=t.length,u=Hu(e),i=null==n;++r<e;)u[r]=i?F:Wu(n,t[r]);return u;
}function gt(n,t,r){return n===n&&(r!==F&&(n=n<=r?n:r),t!==F&&(n=n>=t?n:t)),n}function dt(n,t,r,e,i,o){var f,c=1&t,a=2&t,l=4&t;if(r&&(f=i?r(n,e,i,o):r(n)),f!==F)return f;if(!bu(n))return n;if(e=af(n)){if(f=Ee(n),!c)return Mr(n,f)}else{var s=yo(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(sf(n))return Wr(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Oe(n),!c)return a?Fr(n,pt(f,n)):$r(n,ht(f,n))}else{if(!Dn[s])return i?n:{};f=Se(n,s,dt,c)}}if(o||(o=new Vn),
i=o.get(n))return i;o.set(n,f);var a=l?a?ye:de:a?Uu:Lu,p=e?F:a(n);return u(p||n,function(e,u){p&&(u=e,e=n[u]),at(f,u,dt(e,t,r,u,n,o))}),f}function yt(n){var t=Lu(n);return function(r){return bt(r,n,t)}}function bt(n,t,r){var e=r.length;if(null==n)return!e;for(n=ni(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===F&&!(u in n)||!i(o))return false}return true}function xt(n,t,r){if(typeof n!="function")throw new ei("Expected a function");return jo(function(){n.apply(F,r)},t)}function jt(n,t,r,e){var u=-1,i=c,o=true,f=n.length,s=[],h=t.length;
if(!f)return s;r&&(t=l(t,S(r))),e?(i=a,o=false):200<=t.length&&(i=R,o=false,t=new qn(t));n:for(;++u<f;){var p=n[u],_=null==r?p:r(p),p=e||0!==p?p:0;if(o&&_===_){for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else i(t,_,e)||s.push(p)}return s}function wt(n,t){var r=true;return oo(n,function(n,e,u){return r=!!t(n,e,u)}),r}function mt(n,t,r){for(var e=-1,u=n.length;++e<u;){var i=n[e],o=t(i);if(null!=o&&(f===F?o===o&&!Au(o):r(o,f)))var f=o,c=i}return c}function At(n,t){var r=[];return oo(n,function(n,e,u){
t(n,e,u)&&r.push(n)}),r}function kt(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=Ie),u||(u=[]);++i<o;){var f=n[i];0<t&&r(f)?1<t?kt(f,t-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function Et(n,t){return n&&co(n,t,Lu)}function Ot(n,t){return n&&ao(n,t,Lu)}function St(n,t){return f(t,function(t){return gu(n[t])})}function It(n,t){t=Rr(t,n);for(var r=0,e=t.length;null!=n&&r<e;)n=n[$e(t[r++])];return r&&r==e?n:F}function Rt(n,t,r){return t=t(n),af(n)?t:s(t,r(n))}function zt(n){if(null==n)n=n===F?"[object Undefined]":"[object Null]";else if(ki&&ki in ni(n)){
var t=ci.call(n,ki),r=n[ki];try{n[ki]=F;var e=true}catch(n){}var u=si.call(n);e&&(t?n[ki]=r:delete n[ki]),n=u}else n=si.call(n);return n}function Wt(n,t){return n>t}function Bt(n,t){return null!=n&&ci.call(n,t)}function Lt(n,t){return null!=n&&t in ni(n)}function Ut(n,t,r){for(var e=r?a:c,u=n[0].length,i=n.length,o=i,f=Hu(i),s=1/0,h=[];o--;){var p=n[o];o&&t&&(p=l(p,S(t))),s=Mi(p.length,s),f[o]=!r&&(t||120<=u&&120<=p.length)?new qn(o&&p):F}var p=n[0],_=-1,v=f[0];n:for(;++_<u&&h.length<s;){var g=p[_],d=t?t(g):g,g=r||0!==g?g:0;
if(v?!R(v,d):!e(h,d,r)){for(o=i;--o;){var y=f[o];if(y?!R(y,d):!e(n[o],d,r))continue n}v&&v.push(d),h.push(g)}}return h}function Ct(n,t,r){var e={};return Et(n,function(n,u,i){t(e,r(n),u,i)}),e}function Dt(n,t,e){return t=Rr(t,n),n=2>t.length?n:It(n,vr(t,0,-1)),t=null==n?n:n[$e(Ge(t))],null==t?F:r(t,n,e)}function Mt(n){return xu(n)&&"[object Arguments]"==zt(n)}function Tt(n){return xu(n)&&"[object ArrayBuffer]"==zt(n)}function $t(n){return xu(n)&&"[object Date]"==zt(n)}function Ft(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!xu(n)&&!xu(t))t=n!==n&&t!==t;else n:{
var i=af(n),o=af(t),f=i?"[object Array]":yo(n),c=o?"[object Array]":yo(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&sf(n)){if(!sf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Vn),t=i||gf(n)?_e(n,t,r,e,Ft,u):ve(n,t,f,r,e,Ft,u);else{if(!(1&r)&&(i=a&&ci.call(n,"__wrapped__"),f=o&&ci.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Vn),t=Ft(n,t,r,e,u);break n}if(c)t:if(u||(u=new Vn),
i=1&r,f=de(n),o=f.length,c=de(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ci.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++a<o;){var l=f[a],h=n[l],p=t[l];if(e)var _=i?e(p,h,l,t,n,u):e(h,p,l,n,t,u);if(_===F?h!==p&&!Ft(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),
u.delete(n),u.delete(t),t=c}}else t=false;else t=false}}return t}function Nt(n){return xu(n)&&"[object Map]"==yo(n)}function Pt(n,t,r,e){var u=r.length,i=u,o=!e;if(null==n)return!i;for(n=ni(n);u--;){var f=r[u];if(o&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<i;){var f=r[u],c=f[0],a=n[c],l=f[1];if(o&&f[2]){if(a===F&&!(c in n))return false}else{if(f=new Vn,e)var s=e(a,l,c,n,t,f);if(s===F?!Ft(l,a,3,e,f):!s)return false}}return true}function Zt(n){return!(!bu(n)||li&&li in n)&&(gu(n)?_i:xn).test(Fe(n))}function qt(n){
return xu(n)&&"[object RegExp]"==zt(n)}function Vt(n){return xu(n)&&"[object Set]"==yo(n)}function Kt(n){return xu(n)&&yu(n.length)&&!!Cn[zt(n)]}function Gt(n){return typeof n=="function"?n:null==n?Nu:typeof n=="object"?af(n)?Xt(n[0],n[1]):Qt(n):Vu(n)}function Ht(n){if(!Le(n))return Ci(n);var t,r=[];for(t in ni(n))ci.call(n,t)&&"constructor"!=t&&r.push(t);return r}function Jt(n,t){return n<t}function Yt(n,t){var r=-1,e=pu(n)?Hu(n.length):[];return oo(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function Qt(n){
var t=me(n);return 1==t.length&&t[0][2]?Ue(t[0][0],t[0][1]):function(r){return r===n||Pt(r,n,t)}}function Xt(n,t){return We(n)&&t===t&&!bu(t)?Ue($e(n),t):function(r){var e=Wu(r,n);return e===F&&e===t?Bu(r,n):Ft(t,e,3)}}function nr(n,t,r,e,u){n!==t&&co(t,function(i,o){if(bu(i)){u||(u=new Vn);var f=u,c=n[o],a=t[o],l=f.get(a);if(l)ct(n,o,l);else{var l=e?e(c,a,o+"",n,t,f):F,s=l===F;if(s){var h=af(a),p=!h&&sf(a),_=!h&&!p&&gf(a),l=a;h||p||_?af(c)?l=c:_u(c)?l=Mr(c):p?(s=false,l=Wr(a,true)):_?(s=false,l=Lr(a,true)):l=[]:wu(a)||cf(a)?(l=c,
cf(c)?l=Ru(c):(!bu(c)||r&&gu(c))&&(l=Oe(a))):s=false}s&&(f.set(a,l),nr(l,a,r,e,f),f.delete(a)),ct(n,o,l)}}else f=e?e(n[o],i,o+"",n,t,u):F,f===F&&(f=i),ct(n,o,f)},Uu)}function tr(n,t){var r=n.length;if(r)return t+=0>t?r:0,Re(t,r)?n[t]:F}function rr(n,t,r){var e=-1;return t=l(t.length?t:[Nu],S(je())),n=Yt(n,function(n){return{a:l(t,function(t){return t(n)}),b:++e,c:n}}),A(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e<o;){var c=Ur(u[e],i[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);
break n}}e=n.b-t.b}return e})}function er(n,t){return ur(n,t,function(t,r){return Bu(n,r)})}function ur(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=It(n,o);r(f,o)&&pr(i,Rr(o,n),f)}return i}function ir(n){return function(t){return It(t,n)}}function or(n,t,r,e){var u=e?y:d,i=-1,o=t.length,f=n;for(n===t&&(t=Mr(t)),r&&(f=l(n,S(r)));++i<o;)for(var c=0,a=t[i],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==n&&wi.call(f,c,1),wi.call(n,c,1);return n}function fr(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];
if(r==e||u!==i){var i=u;Re(u)?wi.call(n,u,1):mr(n,u)}}}function cr(n,t){return n+zi(Fi()*(t-n+1))}function ar(n,t){var r="";if(!n||1>t||9007199254740991<t)return r;do t%2&&(r+=n),(t=zi(t/2))&&(n+=n);while(t);return r}function lr(n,t){return wo(Ce(n,t,Nu),n+"")}function sr(n){return tt(Du(n))}function hr(n,t){var r=Du(n);return Te(r,gt(t,0,r.length))}function pr(n,t,r,e){if(!bu(n))return n;t=Rr(t,n);for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++u<i;){var c=$e(t[u]),a=r;if(u!=o){var l=f[c],a=e?e(l,c,f):F;
a===F&&(a=bu(l)?l:Re(t[u+1])?[]:{})}at(f,c,a),f=f[c]}return n}function _r(n){return Te(Du(n))}function vr(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Hu(u);++e<u;)r[e]=n[e+t];return r}function gr(n,t){var r;return oo(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function dr(n,t,r){var e=0,u=null==n?e:n.length;if(typeof t=="number"&&t===t&&2147483647>=u){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!Au(o)&&(r?o<=t:o<t)?e=i+1:u=i}return u}return yr(n,t,Nu,r);
}function yr(n,t,r,e){t=r(t);for(var u=0,i=null==n?0:n.length,o=t!==t,f=null===t,c=Au(t),a=t===F;u<i;){var l=zi((u+i)/2),s=r(n[l]),h=s!==F,p=null===s,_=s===s,v=Au(s);(o?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?s<=t:s<t)?u=l+1:i=l}return Mi(i,4294967294)}function br(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r],f=t?t(o):o;if(!r||!hu(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function xr(n){return typeof n=="number"?n:Au(n)?P:+n}function jr(n){if(typeof n=="string")return n;
if(af(n))return l(n,jr)+"";if(Au(n))return uo?uo.call(n):"";var t=n+"";return"0"==t&&1/n==-N?"-0":t}function wr(n,t,r){var e=-1,u=c,i=n.length,o=true,f=[],l=f;if(r)o=false,u=a;else if(200<=i){if(u=t?null:po(n))return D(u);o=false,u=R,l=new qn}else l=t?[]:f;n:for(;++e<i;){var s=n[e],h=t?t(s):s,s=r||0!==s?s:0;if(o&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function mr(n,t){return t=Rr(t,n),n=2>t.length?n:It(n,vr(t,0,-1)),
null==n||delete n[$e(Ge(t))]}function Ar(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););return r?vr(n,e?0:i,e?i+1:u):vr(n,e?i+1:0,e?u:i)}function kr(n,t){var r=n;return r instanceof Mn&&(r=r.value()),h(t,function(n,t){return t.func.apply(t.thisArg,s([n],t.args))},r)}function Er(n,t,r){var e=n.length;if(2>e)return e?wr(n[0]):[];for(var u=-1,i=Hu(e);++u<e;)for(var o=n[u],f=-1;++f<e;)f!=u&&(i[u]=jt(i[u]||o,n[f],t,r));return wr(kt(i,1),t,r)}function Or(n,t,r){for(var e=-1,u=n.length,i=t.length,o={};++e<u;)r(o,n[e],e<i?t[e]:F);
return o}function Sr(n){return _u(n)?n:[]}function Ir(n){return typeof n=="function"?n:Nu}function Rr(n,t){return af(n)?n:We(n,t)?[n]:mo(zu(n))}function zr(n,t,r){var e=n.length;return r=r===F?e:r,!t&&r>=e?n:vr(n,t,r)}function Wr(n,t){if(t)return n.slice();var r=n.length,r=yi?yi(r):new n.constructor(r);return n.copy(r),r}function Br(n){var t=new n.constructor(n.byteLength);return new di(t).set(new di(n)),t}function Lr(n,t){return new n.constructor(t?Br(n.buffer):n.buffer,n.byteOffset,n.length)}function Ur(n,t){
if(n!==t){var r=n!==F,e=null===n,u=n===n,i=Au(n),o=t!==F,f=null===t,c=t===t,a=Au(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n<t||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Cr(n,t,r,e){var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Di(i-o,0),l=Hu(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<o;)(e||u<i)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l}function Dr(n,t,r,e){var u=-1,i=n.length,o=-1,f=r.length,c=-1,a=t.length,l=Di(i-f,0),s=Hu(l+a);
for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++o<f;)(e||u<i)&&(s[l+r[o]]=n[u++]);return s}function Mr(n,t){var r=-1,e=n.length;for(t||(t=Hu(e));++r<e;)t[r]=n[r];return t}function Tr(n,t,r,e){var u=!r;r||(r={});for(var i=-1,o=t.length;++i<o;){var f=t[i],c=e?e(r[f],n[f],f,r,n):F;c===F&&(c=n[f]),u?_t(r,f,c):at(r,f,c)}return r}function $r(n,t){return Tr(n,vo(n),t)}function Fr(n,t){return Tr(n,go(n),t)}function Nr(n,t){return function(r,u){var i=af(r)?e:st,o=t?t():{};return i(r,n,je(u,2),o);
}}function Pr(n){return lr(function(t,r){var e=-1,u=r.length,i=1<u?r[u-1]:F,o=2<u?r[2]:F,i=3<n.length&&typeof i=="function"?(u--,i):F;for(o&&ze(r[0],r[1],o)&&(i=3>u?F:i,u=1),t=ni(t);++e<u;)(o=r[e])&&n(t,o,e,i);return t})}function Zr(n,t){return function(r,e){if(null==r)return r;if(!pu(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=ni(r);(t?i--:++i<u)&&false!==e(o[i],i,o););return r}}function qr(n){return function(t,r,e){var u=-1,i=ni(t);e=e(t);for(var o=e.length;o--;){var f=e[n?o:++u];if(false===r(i[f],f,i))break;
}return t}}function Vr(n,t,r){function e(){return(this&&this!==Zn&&this instanceof e?i:n).apply(u?r:this,arguments)}var u=1&t,i=Hr(n);return e}function Kr(n){return function(t){t=zu(t);var r=Bn.test(t)?$(t):F,e=r?r[0]:t.charAt(0);return t=r?zr(r,1).join(""):t.slice(1),e[n]()+t}}function Gr(n){return function(t){return h($u(Tu(t).replace(In,"")),n,"")}}function Hr(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:
return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=io(n.prototype),t=n.apply(r,t);return bu(t)?t:r}}function Jr(n,t,e){function u(){for(var o=arguments.length,f=Hu(o),c=o,a=xe(u);c--;)f[c]=arguments[c];return c=3>o&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,o<e?fe(n,t,Xr,u.placeholder,F,f,c,F,F,e-o):r(this&&this!==Zn&&this instanceof u?i:n,this,f);
}var i=Hr(n);return u}function Yr(n){return function(t,r,e){var u=ni(t);if(!pu(t)){var i=je(r,3);t=Lu(t),r=function(n){return i(u[n],n,u)}}return r=n(t,r,e),-1<r?u[i?t[r]:r]:F}}function Qr(n){return ge(function(t){var r=t.length,e=r,u=zn.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if(typeof i!="function")throw new ei("Expected a function");if(u&&!o&&"wrapper"==be(i))var o=new zn([],true)}for(e=o?e:r;++e<r;)var i=t[e],u=be(i),f="wrapper"==u?_o(i):F,o=f&&Be(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?o[be(f[0])].apply(o,f[3]):1==i.length&&Be(i)?o[u]():o.thru(i);
return function(){var n=arguments,e=n[0];if(o&&1==n.length&&af(e))return o.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function Xr(n,t,r,e,u,i,o,f,c,a){function l(){for(var d=arguments.length,y=Hu(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=xe(l),b=y.length;for(x=0;b--;)y[b]===j&&++x}if(e&&(y=Cr(y,e,u,_)),i&&(y=Dr(y,i,o,_)),d-=x,_&&d<a)return j=C(y,j),fe(n,t,Xr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[n]:n,d=y.length,f){x=y.length;for(var w=Mi(f.length,x),m=Mr(y);w--;){
var A=f[w];y[w]=Re(A,x)?m[A]:F}}else v&&1<d&&y.reverse();return s&&c<d&&(y.length=c),this&&this!==Zn&&this instanceof l&&(b=g||Hr(b)),b.apply(j,y)}var s=128&t,h=1&t,p=2&t,_=24&t,v=512&t,g=p?F:Hr(n);return l}function ne(n,t){return function(r,e){return Ct(r,n,t(e))}}function te(n,t){return function(r,e){var u;if(r===F&&e===F)return t;if(r!==F&&(u=r),e!==F){if(u===F)return e;typeof r=="string"||typeof e=="string"?(r=jr(r),e=jr(e)):(r=xr(r),e=xr(e)),u=n(r,e)}return u}}function re(n){return ge(function(t){
return t=l(t,S(je())),lr(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function ee(n,t){t=t===F?" ":jr(t);var r=t.length;return 2>r?r?ar(t,n):t:(r=ar(t,Ri(n/T(t))),Bn.test(t)?zr($(r),0,n).join(""):r.slice(0,n))}function ue(n,t,e,u){function i(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Hu(l+c),h=this&&this!==Zn&&this instanceof i?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,o?e:this,s)}var o=1&t,f=Hr(n);return i}function ie(n){return function(t,r,e){
e&&typeof e!="number"&&ze(t,r,e)&&(r=e=F),t=Eu(t),r===F?(r=t,t=0):r=Eu(r),e=e===F?t<r?1:-1:Eu(e);var u=-1;r=Di(Ri((r-t)/(e||1)),0);for(var i=Hu(r);r--;)i[n?r:++u]=t,t+=e;return i}}function oe(n){return function(t,r){return typeof t=="string"&&typeof r=="string"||(t=Iu(t),r=Iu(r)),n(t,r)}}function fe(n,t,r,e,u,i,o,f,c,a){var l=8&t,s=l?o:F;o=l?F:o;var h=l?i:F;return i=l?F:i,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),u=[n,t,u,h,s,i,o,f,c,a],r=r.apply(F,u),Be(n)&&xo(r,u),r.placeholder=e,De(r,n,t)}function ce(n){
var t=Xu[n];return function(n,r){if(n=Iu(n),r=null==r?0:Mi(Ou(r),292)){var e=(zu(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(zu(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function ae(n){return function(t){var r=yo(t);return"[object Map]"==r?L(t):"[object Set]"==r?M(t):O(t,n(t))}}function le(n,t,r,e,u,i,o,f){var c=2&t;if(!c&&typeof n!="function")throw new ei("Expected a function");var a=e?e.length:0;if(a||(t&=-97,e=u=F),o=o===F?o:Di(Ou(o),0),f=f===F?f:Ou(f),a-=u?u.length:0,64&t){
var l=e,s=u;e=u=F}var h=c?F:_o(n);return i=[n,t,r,e,u,l,s,i,o,f],h&&(r=i[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&i[7].length<=h[8]||384==n&&h[7].length<=h[8]&&8==r,131>t||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Cr(e,r,h[4]):r,i[4]=e?C(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Dr(e,r,h[6]):r,i[6]=e?C(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Mi(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],
r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===F?c?0:n.length:Di(i[9]-a,0),!f&&24&t&&(t&=-25),De((h?lo:xo)(t&&1!=t?8==t||16==t?Jr(n,t,f):32!=t&&33!=t||u.length?Xr.apply(F,i):ue(n,t,r,e):Vr(n,t,r),i),n,t)}function se(n,t,r,e){return n===F||hu(n,ii[r])&&!ci.call(e,r)?t:n}function he(n,t,r,e,u,i){return bu(n)&&bu(t)&&(i.set(t,n),nr(n,t,F,he,i),i.delete(t)),n}function pe(n){return wu(n)?F:n}function _e(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new qn:F;
for(i.set(n,t),i.set(t,n);++c<f;){var s=n[c],h=t[c];if(e)var p=o?e(h,s,c,t,n,i):e(s,h,c,n,t,i);if(p!==F){if(p)continue;a=false;break}if(l){if(!_(t,function(n,t){if(!R(l,t)&&(s===n||u(s,n,r,e,i)))return l.push(t)})){a=false;break}}else if(s!==h&&!u(s,h,r,e,i)){a=false;break}}return i.delete(n),i.delete(t),a}function ve(n,t,r,e,u,i,o){switch(r){case"[object DataView]":if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!i(new di(n),new di(t)))break;
return true;case"[object Boolean]":case"[object Date]":case"[object Number]":return hu(+n,+t);case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var f=L;case"[object Set]":if(f||(f=D),n.size!=t.size&&!(1&e))break;return(r=o.get(n))?r==t:(e|=2,o.set(n,t),t=_e(f(n),f(t),e,u,i,o),o.delete(n),t);case"[object Symbol]":if(eo)return eo.call(n)==eo.call(t)}return false}function ge(n){return wo(Ce(n,F,Ve),n+"")}function de(n){
return Rt(n,Lu,vo)}function ye(n){return Rt(n,Uu,go)}function be(n){for(var t=n.name+"",r=Ji[t],e=ci.call(Ji,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function xe(n){return(ci.call(On,"placeholder")?On:n).placeholder}function je(){var n=On.iteratee||Pu,n=n===Pu?Gt:n;return arguments.length?n(arguments[0],arguments[1]):n}function we(n,t){var r=n.__data__,e=typeof t;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t)?r[typeof t=="string"?"string":"hash"]:r.map;
}function me(n){for(var t=Lu(n),r=t.length;r--;){var e=t[r],u=n[e];t[r]=[e,u,u===u&&!bu(u)]}return t}function Ae(n,t){var r=null==n?F:n[t];return Zt(r)?r:F}function ke(n,t,r){t=Rr(t,n);for(var e=-1,u=t.length,i=false;++e<u;){var o=$e(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:(u=null==n?0:n.length,!!u&&yu(u)&&Re(o,u)&&(af(n)||cf(n)))}function Ee(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&ci.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function Oe(n){
return typeof n.constructor!="function"||Le(n)?{}:io(bi(n))}function Se(r,e,u,i){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Br(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object DataView]":return e=i?Br(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":
case"[object Uint16Array]":case"[object Uint32Array]":return Lr(r,i);case"[object Map]":return e=i?u(L(r),1):L(r),h(e,n,new r.constructor);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return e=new r.constructor(r.source,dn.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=i?u(D(r),1):D(r),h(e,t,new r.constructor);case"[object Symbol]":return eo?ni(eo.call(r)):{}}}function Ie(n){return af(n)||cf(n)||!!(mi&&n&&n[mi])}function Re(n,t){return t=null==t?9007199254740991:t,
!!t&&(typeof n=="number"||wn.test(n))&&-1<n&&0==n%1&&n<t}function ze(n,t,r){if(!bu(r))return false;var e=typeof t;return!!("number"==e?pu(r)&&Re(t,r.length):"string"==e&&t in r)&&hu(r[t],n)}function We(n,t){if(af(n))return false;var r=typeof n;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=n&&!Au(n))||(rn.test(n)||!tn.test(n)||null!=t&&n in ni(t))}function Be(n){var t=be(n),r=On[t];return typeof r=="function"&&t in Mn.prototype&&(n===r||(t=_o(r),!!t&&n===t[0]))}function Le(n){var t=n&&n.constructor;
return n===(typeof t=="function"&&t.prototype||ii)}function Ue(n,t){return function(r){return null!=r&&(r[n]===t&&(t!==F||n in ni(r)))}}function Ce(n,t,e){return t=Di(t===F?n.length-1:t,0),function(){for(var u=arguments,i=-1,o=Di(u.length-t,0),f=Hu(o);++i<o;)f[i]=u[t+i];for(i=-1,o=Hu(t+1);++i<t;)o[i]=u[i];return o[t]=e(f),r(n,this,o)}}function De(n,t,r){var e=t+"";t=wo;var u,i=Ne;return u=(u=e.match(hn))?u[1].split(pn):[],r=i(u,r),(i=r.length)&&(u=i-1,r[u]=(1<i?"& ":"")+r[u],r=r.join(2<i?", ":" "),
e=e.replace(sn,"{\n/* [wrapped with "+r+"] */\n")),t(n,e)}function Me(n){var t=0,r=0;return function(){var e=Ti(),u=16-(e-r);if(r=e,0<u){if(800<=++t)return arguments[0]}else t=0;return n.apply(F,arguments)}}function Te(n,t){var r=-1,e=n.length,u=e-1;for(t=t===F?e:t;++r<t;){var e=cr(r,u),i=n[e];n[e]=n[r],n[r]=i}return n.length=t,n}function $e(n){if(typeof n=="string"||Au(n))return n;var t=n+"";return"0"==t&&1/n==-N?"-0":t}function Fe(n){if(null!=n){try{return fi.call(n)}catch(n){}return n+""}return"";
}function Ne(n,t){return u(Z,function(r){var e="_."+r[0];t&r[1]&&!c(n,e)&&n.push(e)}),n.sort()}function Pe(n){if(n instanceof Mn)return n.clone();var t=new zn(n.__wrapped__,n.__chain__);return t.__actions__=Mr(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Ze(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Ou(r),0>r&&(r=Di(e+r,0)),g(n,je(t,3),r)):-1}function qe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==F&&(u=Ou(r),u=0>r?Di(e+u,0):Mi(u,e-1)),
g(n,je(t,3),u,true)}function Ve(n){return(null==n?0:n.length)?kt(n,1):[]}function Ke(n){return n&&n.length?n[0]:F}function Ge(n){var t=null==n?0:n.length;return t?n[t-1]:F}function He(n,t){return n&&n.length&&t&&t.length?or(n,t):n}function Je(n){return null==n?n:Ni.call(n)}function Ye(n){if(!n||!n.length)return[];var t=0;return n=f(n,function(n){if(_u(n))return t=Di(n.length,t),true}),E(t,function(t){return l(n,j(t))})}function Qe(n,t){if(!n||!n.length)return[];var e=Ye(n);return null==t?e:l(e,function(n){
return r(t,F,n)})}function Xe(n){return n=On(n),n.__chain__=true,n}function nu(n,t){return t(n)}function tu(){return this}function ru(n,t){return(af(n)?u:oo)(n,je(t,3))}function eu(n,t){return(af(n)?i:fo)(n,je(t,3))}function uu(n,t){return(af(n)?l:Yt)(n,je(t,3))}function iu(n,t,r){return t=r?F:t,t=n&&null==t?n.length:t,le(n,128,F,F,F,F,t)}function ou(n,t){var r;if(typeof t!="function")throw new ei("Expected a function");return n=Ou(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=F),
r}}function fu(n,t,r){return t=r?F:t,n=le(n,8,F,F,F,F,F,t),n.placeholder=fu.placeholder,n}function cu(n,t,r){return t=r?F:t,n=le(n,16,F,F,F,F,F,t),n.placeholder=cu.placeholder,n}function au(n,t,r){function e(t){var r=c,e=a;return c=a=F,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===F||r>=t||0>r||g&&n>=l}function i(){var n=Jo();if(u(n))return o(n);var r,e=jo;r=n-_,n=t-(n-p),r=g?Mi(n,l-r):n,h=e(i,r)}function o(n){return h=F,d&&c?e(n):(c=a=F,s)}function f(){var n=Jo(),r=u(n);if(c=arguments,
a=this,p=n,r){if(h===F)return _=n=p,h=jo(i,t),v?e(n):s;if(g)return h=jo(i,t),e(p)}return h===F&&(h=jo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ei("Expected a function");return t=Iu(t)||0,bu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Di(Iu(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==F&&ho(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Jo())},f}function lu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),
r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ei("Expected a function");return r.cache=new(lu.Cache||Pn),r}function su(n){if(typeof n!="function")throw new ei("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function hu(n,t){return n===t||n!==n&&t!==t}function pu(n){return null!=n&&yu(n.length)&&!gu(n);
}function _u(n){return xu(n)&&pu(n)}function vu(n){if(!xu(n))return false;var t=zt(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!wu(n)}function gu(n){return!!bu(n)&&(n=zt(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function du(n){return typeof n=="number"&&n==Ou(n)}function yu(n){return typeof n=="number"&&-1<n&&0==n%1&&9007199254740991>=n}function bu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t);
}function xu(n){return null!=n&&typeof n=="object"}function ju(n){return typeof n=="number"||xu(n)&&"[object Number]"==zt(n)}function wu(n){return!(!xu(n)||"[object Object]"!=zt(n))&&(n=bi(n),null===n||(n=ci.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&fi.call(n)==hi))}function mu(n){return typeof n=="string"||!af(n)&&xu(n)&&"[object String]"==zt(n)}function Au(n){return typeof n=="symbol"||xu(n)&&"[object Symbol]"==zt(n)}function ku(n){if(!n)return[];if(pu(n))return mu(n)?$(n):Mr(n);
if(Ai&&n[Ai]){n=n[Ai]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=yo(n),("[object Map]"==t?L:"[object Set]"==t?D:Du)(n)}function Eu(n){return n?(n=Iu(n),n===N||n===-N?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Ou(n){n=Eu(n);var t=n%1;return n===n?t?n-t:n:0}function Su(n){return n?gt(Ou(n),0,4294967295):0}function Iu(n){if(typeof n=="number")return n;if(Au(n))return P;if(bu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=bu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;
n=n.replace(cn,"");var t=bn.test(n);return t||jn.test(n)?Fn(n.slice(2),t?2:8):yn.test(n)?P:+n}function Ru(n){return Tr(n,Uu(n))}function zu(n){return null==n?"":jr(n)}function Wu(n,t,r){return n=null==n?F:It(n,t),n===F?r:n}function Bu(n,t){return null!=n&&ke(n,t,Lt)}function Lu(n){return pu(n)?Gn(n):Ht(n)}function Uu(n){if(pu(n))n=Gn(n,true);else if(bu(n)){var t,r=Le(n),e=[];for(t in n)("constructor"!=t||!r&&ci.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in ni(n))t.push(r);n=t}return n}function Cu(n,t){
if(null==n)return{};var r=l(ye(n),function(n){return[n]});return t=je(t),ur(n,r,function(n,r){return t(n,r[0])})}function Du(n){return null==n?[]:I(n,Lu(n))}function Mu(n){return Nf(zu(n).toLowerCase())}function Tu(n){return(n=zu(n))&&n.replace(mn,rt).replace(Rn,"")}function $u(n,t,r){return n=zu(n),t=r?F:t,t===F?Ln.test(n)?n.match(Wn)||[]:n.match(_n)||[]:n.match(t)||[]}function Fu(n){return function(){return n}}function Nu(n){return n}function Pu(n){return Gt(typeof n=="function"?n:dt(n,1))}function Zu(n,t,r){
var e=Lu(t),i=St(t,e);null!=r||bu(t)&&(i.length||!e.length)||(r=t,t=n,n=this,i=St(t,Lu(t)));var o=!(bu(r)&&"chain"in r&&!r.chain),f=gu(n);return u(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Mr(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,s([this.value()],arguments))})}),n}function qu(){}function Vu(n){return We(n)?j($e(n)):ir(n)}function Ku(){return[]}function Gu(){
return false}En=null==En?Zn:it.defaults(Zn.Object(),En,it.pick(Zn,Un));var Hu=En.Array,Ju=En.Date,Yu=En.Error,Qu=En.Function,Xu=En.Math,ni=En.Object,ti=En.RegExp,ri=En.String,ei=En.TypeError,ui=Hu.prototype,ii=ni.prototype,oi=En["__core-js_shared__"],fi=Qu.prototype.toString,ci=ii.hasOwnProperty,ai=0,li=function(){var n=/[^.]+$/.exec(oi&&oi.keys&&oi.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),si=ii.toString,hi=fi.call(ni),pi=Zn._,_i=ti("^"+fi.call(ci).replace(on,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vi=Kn?En.Buffer:F,gi=En.Symbol,di=En.Uint8Array,yi=vi?vi.f:F,bi=U(ni.getPrototypeOf,ni),xi=ni.create,ji=ii.propertyIsEnumerable,wi=ui.splice,mi=gi?gi.isConcatSpreadable:F,Ai=gi?gi.iterator:F,ki=gi?gi.toStringTag:F,Ei=function(){
try{var n=Ae(ni,"defineProperty");return n({},"",{}),n}catch(n){}}(),Oi=En.clearTimeout!==Zn.clearTimeout&&En.clearTimeout,Si=Ju&&Ju.now!==Zn.Date.now&&Ju.now,Ii=En.setTimeout!==Zn.setTimeout&&En.setTimeout,Ri=Xu.ceil,zi=Xu.floor,Wi=ni.getOwnPropertySymbols,Bi=vi?vi.isBuffer:F,Li=En.isFinite,Ui=ui.join,Ci=U(ni.keys,ni),Di=Xu.max,Mi=Xu.min,Ti=Ju.now,$i=En.parseInt,Fi=Xu.random,Ni=ui.reverse,Pi=Ae(En,"DataView"),Zi=Ae(En,"Map"),qi=Ae(En,"Promise"),Vi=Ae(En,"Set"),Ki=Ae(En,"WeakMap"),Gi=Ae(ni,"create"),Hi=Ki&&new Ki,Ji={},Yi=Fe(Pi),Qi=Fe(Zi),Xi=Fe(qi),no=Fe(Vi),to=Fe(Ki),ro=gi?gi.prototype:F,eo=ro?ro.valueOf:F,uo=ro?ro.toString:F,io=function(){
function n(){}return function(t){return bu(t)?xi?xi(t):(n.prototype=t,t=new n,n.prototype=F,t):{}}}();On.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:On}},On.prototype=Sn.prototype,On.prototype.constructor=On,zn.prototype=io(Sn.prototype),zn.prototype.constructor=zn,Mn.prototype=io(Sn.prototype),Mn.prototype.constructor=Mn,Tn.prototype.clear=function(){this.__data__=Gi?Gi(null):{},this.size=0},Tn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],
this.size-=n?1:0,n},Tn.prototype.get=function(n){var t=this.__data__;return Gi?(n=t[n],"__lodash_hash_undefined__"===n?F:n):ci.call(t,n)?t[n]:F},Tn.prototype.has=function(n){var t=this.__data__;return Gi?t[n]!==F:ci.call(t,n)},Tn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Gi&&t===F?"__lodash_hash_undefined__":t,this},Nn.prototype.clear=function(){this.__data__=[],this.size=0},Nn.prototype.delete=function(n){var t=this.__data__;return n=lt(t,n),!(0>n)&&(n==t.length-1?t.pop():wi.call(t,n,1),
--this.size,true)},Nn.prototype.get=function(n){var t=this.__data__;return n=lt(t,n),0>n?F:t[n][1]},Nn.prototype.has=function(n){return-1<lt(this.__data__,n)},Nn.prototype.set=function(n,t){var r=this.__data__,e=lt(r,n);return 0>e?(++this.size,r.push([n,t])):r[e][1]=t,this},Pn.prototype.clear=function(){this.size=0,this.__data__={hash:new Tn,map:new(Zi||Nn),string:new Tn}},Pn.prototype.delete=function(n){return n=we(this,n).delete(n),this.size-=n?1:0,n},Pn.prototype.get=function(n){return we(this,n).get(n);
},Pn.prototype.has=function(n){return we(this,n).has(n)},Pn.prototype.set=function(n,t){var r=we(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},qn.prototype.add=qn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},qn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.clear=function(){this.__data__=new Nn,this.size=0},Vn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Vn.prototype.get=function(n){
return this.__data__.get(n)},Vn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Nn){var e=r.__data__;if(!Zi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Pn(e)}return r.set(n,t),this.size=r.size,this};var oo=Zr(Et),fo=Zr(Ot,true),co=qr(),ao=qr(true),lo=Hi?function(n,t){return Hi.set(n,t),n}:Nu,so=Ei?function(n,t){return Ei(n,"toString",{configurable:true,enumerable:false,value:Fu(t),writable:true})}:Nu,ho=Oi||function(n){
return Zn.clearTimeout(n)},po=Vi&&1/D(new Vi([,-0]))[1]==N?function(n){return new Vi(n)}:qu,_o=Hi?function(n){return Hi.get(n)}:qu,vo=Wi?function(n){return null==n?[]:(n=ni(n),f(Wi(n),function(t){return ji.call(n,t)}))}:Ku,go=Wi?function(n){for(var t=[];n;)s(t,vo(n)),n=bi(n);return t}:Ku,yo=zt;(Pi&&"[object DataView]"!=yo(new Pi(new ArrayBuffer(1)))||Zi&&"[object Map]"!=yo(new Zi)||qi&&"[object Promise]"!=yo(qi.resolve())||Vi&&"[object Set]"!=yo(new Vi)||Ki&&"[object WeakMap]"!=yo(new Ki))&&(yo=function(n){
var t=zt(n);if(n=(n="[object Object]"==t?n.constructor:F)?Fe(n):"")switch(n){case Yi:return"[object DataView]";case Qi:return"[object Map]";case Xi:return"[object Promise]";case no:return"[object Set]";case to:return"[object WeakMap]"}return t});var bo=oi?gu:Gu,xo=Me(lo),jo=Ii||function(n,t){return Zn.setTimeout(n,t)},wo=Me(so),mo=function(n){n=lu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return en.test(n)&&t.push(""),n.replace(un,function(n,r,e,u){
t.push(e?u.replace(vn,"$1"):r||n)}),t}),Ao=lr(function(n,t){return _u(n)?jt(n,kt(t,1,_u,true)):[]}),ko=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),je(r,2)):[]}),Eo=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),F,r):[]}),Oo=lr(function(n){var t=l(n,Sr);return t.length&&t[0]===n[0]?Ut(t):[]}),So=lr(function(n){var t=Ge(n),r=l(n,Sr);return t===Ge(r)?t=F:r.pop(),r.length&&r[0]===n[0]?Ut(r,je(t,2)):[]}),Io=lr(function(n){var t=Ge(n),r=l(n,Sr);return(t=typeof t=="function"?t:F)&&r.pop(),
r.length&&r[0]===n[0]?Ut(r,F,t):[]}),Ro=lr(He),zo=ge(function(n,t){var r=null==n?0:n.length,e=vt(n,t);return fr(n,l(t,function(n){return Re(n,r)?+n:n}).sort(Ur)),e}),Wo=lr(function(n){return wr(kt(n,1,_u,true))}),Bo=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),wr(kt(n,1,_u,true),je(t,2))}),Lo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return wr(kt(n,1,_u,true),F,t)}),Uo=lr(function(n,t){return _u(n)?jt(n,t):[]}),Co=lr(function(n){return Er(f(n,_u))}),Do=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),
Er(f(n,_u),je(t,2))}),Mo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return Er(f(n,_u),F,t)}),To=lr(Ye),$o=lr(function(n){var t=n.length,t=1<t?n[t-1]:F,t=typeof t=="function"?(n.pop(),t):F;return Qe(n,t)}),Fo=ge(function(n){function t(t){return vt(t,n)}var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return!(1<r||this.__actions__.length)&&u instanceof Mn&&Re(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(F),
n})):this.thru(t)}),No=Nr(function(n,t,r){ci.call(n,r)?++n[r]:_t(n,r,1)}),Po=Yr(Ze),Zo=Yr(qe),qo=Nr(function(n,t,r){ci.call(n,r)?n[r].push(t):_t(n,r,[t])}),Vo=lr(function(n,t,e){var u=-1,i=typeof t=="function",o=pu(n)?Hu(n.length):[];return oo(n,function(n){o[++u]=i?r(t,n,e):Dt(n,t,e)}),o}),Ko=Nr(function(n,t,r){_t(n,r,t)}),Go=Nr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Ho=lr(function(n,t){if(null==n)return[];var r=t.length;return 1<r&&ze(n,t[0],t[1])?t=[]:2<r&&ze(t[0],t[1],t[2])&&(t=[t[0]]),
rr(n,kt(t,1),[])}),Jo=Si||function(){return Zn.Date.now()},Yo=lr(function(n,t,r){var e=1;if(r.length)var u=C(r,xe(Yo)),e=32|e;return le(n,e,t,r,u)}),Qo=lr(function(n,t,r){var e=3;if(r.length)var u=C(r,xe(Qo)),e=32|e;return le(t,e,n,r,u)}),Xo=lr(function(n,t){return xt(n,1,t)}),nf=lr(function(n,t,r){return xt(n,Iu(t)||0,r)});lu.Cache=Pn;var tf=lr(function(n,t){t=1==t.length&&af(t[0])?l(t[0],S(je())):l(kt(t,1),S(je()));var e=t.length;return lr(function(u){for(var i=-1,o=Mi(u.length,e);++i<o;)u[i]=t[i].call(this,u[i]);
return r(n,this,u)})}),rf=lr(function(n,t){return le(n,32,F,t,C(t,xe(rf)))}),ef=lr(function(n,t){return le(n,64,F,t,C(t,xe(ef)))}),uf=ge(function(n,t){return le(n,256,F,F,F,t)}),of=oe(Wt),ff=oe(function(n,t){return n>=t}),cf=Mt(function(){return arguments}())?Mt:function(n){return xu(n)&&ci.call(n,"callee")&&!ji.call(n,"callee")},af=Hu.isArray,lf=Hn?S(Hn):Tt,sf=Bi||Gu,hf=Jn?S(Jn):$t,pf=Yn?S(Yn):Nt,_f=Qn?S(Qn):qt,vf=Xn?S(Xn):Vt,gf=nt?S(nt):Kt,df=oe(Jt),yf=oe(function(n,t){return n<=t}),bf=Pr(function(n,t){
if(Le(t)||pu(t))Tr(t,Lu(t),n);else for(var r in t)ci.call(t,r)&&at(n,r,t[r])}),xf=Pr(function(n,t){Tr(t,Uu(t),n)}),jf=Pr(function(n,t,r,e){Tr(t,Uu(t),n,e)}),wf=Pr(function(n,t,r,e){Tr(t,Lu(t),n,e)}),mf=ge(vt),Af=lr(function(n){return n.push(F,se),r(jf,F,n)}),kf=lr(function(n){return n.push(F,he),r(Rf,F,n)}),Ef=ne(function(n,t,r){n[t]=r},Fu(Nu)),Of=ne(function(n,t,r){ci.call(n,t)?n[t].push(r):n[t]=[r]},je),Sf=lr(Dt),If=Pr(function(n,t,r){nr(n,t,r)}),Rf=Pr(function(n,t,r,e){nr(n,t,r,e)}),zf=ge(function(n,t){
var r={};if(null==n)return r;var e=false;t=l(t,function(t){return t=Rr(t,n),e||(e=1<t.length),t}),Tr(n,ye(n),r),e&&(r=dt(r,7,pe));for(var u=t.length;u--;)mr(r,t[u]);return r}),Wf=ge(function(n,t){return null==n?{}:er(n,t)}),Bf=ae(Lu),Lf=ae(Uu),Uf=Gr(function(n,t,r){return t=t.toLowerCase(),n+(r?Mu(t):t)}),Cf=Gr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Df=Gr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Mf=Kr("toLowerCase"),Tf=Gr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase();
}),$f=Gr(function(n,t,r){return n+(r?" ":"")+Nf(t)}),Ff=Gr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Nf=Kr("toUpperCase"),Pf=lr(function(n,t){try{return r(n,F,t)}catch(n){return vu(n)?n:new Yu(n)}}),Zf=ge(function(n,t){return u(t,function(t){t=$e(t),_t(n,t,Yo(n[t],n))}),n}),qf=Qr(),Vf=Qr(true),Kf=lr(function(n,t){return function(r){return Dt(r,n,t)}}),Gf=lr(function(n,t){return function(r){return Dt(n,r,t)}}),Hf=re(l),Jf=re(o),Yf=re(_),Qf=ie(),Xf=ie(true),nc=te(function(n,t){return n+t},0),tc=ce("ceil"),rc=te(function(n,t){
return n/t},1),ec=ce("floor"),uc=te(function(n,t){return n*t},1),ic=ce("round"),oc=te(function(n,t){return n-t},0);return On.after=function(n,t){if(typeof t!="function")throw new ei("Expected a function");return n=Ou(n),function(){if(1>--n)return t.apply(this,arguments)}},On.ary=iu,On.assign=bf,On.assignIn=xf,On.assignInWith=jf,On.assignWith=wf,On.at=mf,On.before=ou,On.bind=Yo,On.bindAll=Zf,On.bindKey=Qo,On.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return af(n)?n:[n]},
On.chain=Xe,On.chunk=function(n,t,r){if(t=(r?ze(n,t,r):t===F)?1:Di(Ou(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Hu(Ri(r/t));e<r;)i[u++]=vr(n,e,e+=t);return i},On.compact=function(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){var i=n[t];i&&(u[e++]=i)}return u},On.concat=function(){var n=arguments.length;if(!n)return[];for(var t=Hu(n-1),r=arguments[0];n--;)t[n-1]=arguments[n];return s(af(r)?Mr(r):[r],kt(t,1))},On.cond=function(n){var t=null==n?0:n.length,e=je();return n=t?l(n,function(n){
if("function"!=typeof n[1])throw new ei("Expected a function");return[e(n[0]),n[1]]}):[],lr(function(e){for(var u=-1;++u<t;){var i=n[u];if(r(i[0],this,e))return r(i[1],this,e)}})},On.conforms=function(n){return yt(dt(n,1))},On.constant=Fu,On.countBy=No,On.create=function(n,t){var r=io(n);return null==t?r:ht(r,t)},On.curry=fu,On.curryRight=cu,On.debounce=au,On.defaults=Af,On.defaultsDeep=kf,On.defer=Xo,On.delay=nf,On.difference=Ao,On.differenceBy=ko,On.differenceWith=Eo,On.drop=function(n,t,r){var e=null==n?0:n.length;
return e?(t=r||t===F?1:Ou(t),vr(n,0>t?0:t,e)):[]},On.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0,0>t?0:t)):[]},On.dropRightWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true,true):[]},On.dropWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true):[]},On.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&ze(n,t,r)&&(r=0,e=u),u=n.length,r=Ou(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:Ou(e),0>e&&(e+=u),e=r>e?0:Su(e);r<e;)n[r++]=t;
return n},On.filter=function(n,t){return(af(n)?f:At)(n,je(t,3))},On.flatMap=function(n,t){return kt(uu(n,t),1)},On.flatMapDeep=function(n,t){return kt(uu(n,t),N)},On.flatMapDepth=function(n,t,r){return r=r===F?1:Ou(r),kt(uu(n,t),r)},On.flatten=Ve,On.flattenDeep=function(n){return(null==n?0:n.length)?kt(n,N):[]},On.flattenDepth=function(n,t){return null!=n&&n.length?(t=t===F?1:Ou(t),kt(n,t)):[]},On.flip=function(n){return le(n,512)},On.flow=qf,On.flowRight=Vf,On.fromPairs=function(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){
var u=n[t];e[u[0]]=u[1]}return e},On.functions=function(n){return null==n?[]:St(n,Lu(n))},On.functionsIn=function(n){return null==n?[]:St(n,Uu(n))},On.groupBy=qo,On.initial=function(n){return(null==n?0:n.length)?vr(n,0,-1):[]},On.intersection=Oo,On.intersectionBy=So,On.intersectionWith=Io,On.invert=Ef,On.invertBy=Of,On.invokeMap=Vo,On.iteratee=Pu,On.keyBy=Ko,On.keys=Lu,On.keysIn=Uu,On.map=uu,On.mapKeys=function(n,t){var r={};return t=je(t,3),Et(n,function(n,e,u){_t(r,t(n,e,u),n)}),r},On.mapValues=function(n,t){
var r={};return t=je(t,3),Et(n,function(n,e,u){_t(r,e,t(n,e,u))}),r},On.matches=function(n){return Qt(dt(n,1))},On.matchesProperty=function(n,t){return Xt(n,dt(t,1))},On.memoize=lu,On.merge=If,On.mergeWith=Rf,On.method=Kf,On.methodOf=Gf,On.mixin=Zu,On.negate=su,On.nthArg=function(n){return n=Ou(n),lr(function(t){return tr(t,n)})},On.omit=zf,On.omitBy=function(n,t){return Cu(n,su(je(t)))},On.once=function(n){return ou(2,n)},On.orderBy=function(n,t,r,e){return null==n?[]:(af(t)||(t=null==t?[]:[t]),
r=e?F:r,af(r)||(r=null==r?[]:[r]),rr(n,t,r))},On.over=Hf,On.overArgs=tf,On.overEvery=Jf,On.overSome=Yf,On.partial=rf,On.partialRight=ef,On.partition=Go,On.pick=Wf,On.pickBy=Cu,On.property=Vu,On.propertyOf=function(n){return function(t){return null==n?F:It(n,t)}},On.pull=Ro,On.pullAll=He,On.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,je(r,2)):n},On.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,F,r):n},On.pullAt=zo,On.range=Qf,On.rangeRight=Xf,On.rearg=uf,On.reject=function(n,t){
return(af(n)?f:At)(n,su(je(t,3)))},On.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=je(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),u.push(e))}return fr(n,u),r},On.rest=function(n,t){if(typeof n!="function")throw new ei("Expected a function");return t=t===F?t:Ou(t),lr(n,t)},On.reverse=Je,On.sampleSize=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),(af(n)?ot:hr)(n,t)},On.set=function(n,t,r){return null==n?n:pr(n,t,r)},On.setWith=function(n,t,r,e){return e=typeof e=="function"?e:F,
null==n?n:pr(n,t,r,e)},On.shuffle=function(n){return(af(n)?ft:_r)(n)},On.slice=function(n,t,r){var e=null==n?0:n.length;return e?(r&&typeof r!="number"&&ze(n,t,r)?(t=0,r=e):(t=null==t?0:Ou(t),r=r===F?e:Ou(r)),vr(n,t,r)):[]},On.sortBy=Ho,On.sortedUniq=function(n){return n&&n.length?br(n):[]},On.sortedUniqBy=function(n,t){return n&&n.length?br(n,je(t,2)):[]},On.split=function(n,t,r){return r&&typeof r!="number"&&ze(n,t,r)&&(t=r=F),r=r===F?4294967295:r>>>0,r?(n=zu(n))&&(typeof t=="string"||null!=t&&!_f(t))&&(t=jr(t),
!t&&Bn.test(n))?zr($(n),0,r):n.split(t,r):[]},On.spread=function(n,t){if(typeof n!="function")throw new ei("Expected a function");return t=null==t?0:Di(Ou(t),0),lr(function(e){var u=e[t];return e=zr(e,0,t),u&&s(e,u),r(n,this,e)})},On.tail=function(n){var t=null==n?0:n.length;return t?vr(n,1,t):[]},On.take=function(n,t,r){return n&&n.length?(t=r||t===F?1:Ou(t),vr(n,0,0>t?0:t)):[]},On.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0>t?0:t,e)):[]},On.takeRightWhile=function(n,t){
return n&&n.length?Ar(n,je(t,3),false,true):[]},On.takeWhile=function(n,t){return n&&n.length?Ar(n,je(t,3)):[]},On.tap=function(n,t){return t(n),n},On.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ei("Expected a function");return bu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),au(n,t,{leading:e,maxWait:t,trailing:u})},On.thru=nu,On.toArray=ku,On.toPairs=Bf,On.toPairsIn=Lf,On.toPath=function(n){return af(n)?l(n,$e):Au(n)?[n]:Mr(mo(zu(n)))},On.toPlainObject=Ru,
On.transform=function(n,t,r){var e=af(n),i=e||sf(n)||gf(n);if(t=je(t,4),null==r){var o=n&&n.constructor;r=i?e?new o:[]:bu(n)&&gu(o)?io(bi(n)):{}}return(i?u:Et)(n,function(n,e,u){return t(r,n,e,u)}),r},On.unary=function(n){return iu(n,1)},On.union=Wo,On.unionBy=Bo,On.unionWith=Lo,On.uniq=function(n){return n&&n.length?wr(n):[]},On.uniqBy=function(n,t){return n&&n.length?wr(n,je(t,2)):[]},On.uniqWith=function(n,t){return t=typeof t=="function"?t:F,n&&n.length?wr(n,F,t):[]},On.unset=function(n,t){return null==n||mr(n,t);
},On.unzip=Ye,On.unzipWith=Qe,On.update=function(n,t,r){return null==n?n:pr(n,t,Ir(r)(It(n,t)),void 0)},On.updateWith=function(n,t,r,e){return e=typeof e=="function"?e:F,null!=n&&(n=pr(n,t,Ir(r)(It(n,t)),e)),n},On.values=Du,On.valuesIn=function(n){return null==n?[]:I(n,Uu(n))},On.without=Uo,On.words=$u,On.wrap=function(n,t){return rf(Ir(t),n)},On.xor=Co,On.xorBy=Do,On.xorWith=Mo,On.zip=To,On.zipObject=function(n,t){return Or(n||[],t||[],at)},On.zipObjectDeep=function(n,t){return Or(n||[],t||[],pr);
},On.zipWith=$o,On.entries=Bf,On.entriesIn=Lf,On.extend=xf,On.extendWith=jf,Zu(On,On),On.add=nc,On.attempt=Pf,On.camelCase=Uf,On.capitalize=Mu,On.ceil=tc,On.clamp=function(n,t,r){return r===F&&(r=t,t=F),r!==F&&(r=Iu(r),r=r===r?r:0),t!==F&&(t=Iu(t),t=t===t?t:0),gt(Iu(n),t,r)},On.clone=function(n){return dt(n,4)},On.cloneDeep=function(n){return dt(n,5)},On.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,5,t)},On.cloneWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,4,t)},
On.conformsTo=function(n,t){return null==t||bt(n,t,Lu(t))},On.deburr=Tu,On.defaultTo=function(n,t){return null==n||n!==n?t:n},On.divide=rc,On.endsWith=function(n,t,r){n=zu(n),t=jr(t);var e=n.length,e=r=r===F?e:gt(Ou(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},On.eq=hu,On.escape=function(n){return(n=zu(n))&&Y.test(n)?n.replace(H,et):n},On.escapeRegExp=function(n){return(n=zu(n))&&fn.test(n)?n.replace(on,"\\$&"):n},On.every=function(n,t,r){var e=af(n)?o:wt;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3));
},On.find=Po,On.findIndex=Ze,On.findKey=function(n,t){return v(n,je(t,3),Et)},On.findLast=Zo,On.findLastIndex=qe,On.findLastKey=function(n,t){return v(n,je(t,3),Ot)},On.floor=ec,On.forEach=ru,On.forEachRight=eu,On.forIn=function(n,t){return null==n?n:co(n,je(t,3),Uu)},On.forInRight=function(n,t){return null==n?n:ao(n,je(t,3),Uu)},On.forOwn=function(n,t){return n&&Et(n,je(t,3))},On.forOwnRight=function(n,t){return n&&Ot(n,je(t,3))},On.get=Wu,On.gt=of,On.gte=ff,On.has=function(n,t){return null!=n&&ke(n,t,Bt);
},On.hasIn=Bu,On.head=Ke,On.identity=Nu,On.includes=function(n,t,r,e){return n=pu(n)?n:Du(n),r=r&&!e?Ou(r):0,e=n.length,0>r&&(r=Di(e+r,0)),mu(n)?r<=e&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},On.indexOf=function(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Ou(r),0>r&&(r=Di(e+r,0)),d(n,t,r)):-1},On.inRange=function(n,t,r){return t=Eu(t),r===F?(r=t,t=0):r=Eu(r),n=Iu(n),n>=Mi(t,r)&&n<Di(t,r)},On.invoke=Sf,On.isArguments=cf,On.isArray=af,On.isArrayBuffer=lf,On.isArrayLike=pu,On.isArrayLikeObject=_u,
On.isBoolean=function(n){return true===n||false===n||xu(n)&&"[object Boolean]"==zt(n)},On.isBuffer=sf,On.isDate=hf,On.isElement=function(n){return xu(n)&&1===n.nodeType&&!wu(n)},On.isEmpty=function(n){if(null==n)return true;if(pu(n)&&(af(n)||typeof n=="string"||typeof n.splice=="function"||sf(n)||gf(n)||cf(n)))return!n.length;var t=yo(n);if("[object Map]"==t||"[object Set]"==t)return!n.size;if(Le(n))return!Ht(n).length;for(var r in n)if(ci.call(n,r))return false;return true},On.isEqual=function(n,t){return Ft(n,t);
},On.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:F)?r(n,t):F;return e===F?Ft(n,t,F,r):!!e},On.isError=vu,On.isFinite=function(n){return typeof n=="number"&&Li(n)},On.isFunction=gu,On.isInteger=du,On.isLength=yu,On.isMap=pf,On.isMatch=function(n,t){return n===t||Pt(n,t,me(t))},On.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:F,Pt(n,t,me(t),r)},On.isNaN=function(n){return ju(n)&&n!=+n},On.isNative=function(n){if(bo(n))throw new Yu("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");
return Zt(n)},On.isNil=function(n){return null==n},On.isNull=function(n){return null===n},On.isNumber=ju,On.isObject=bu,On.isObjectLike=xu,On.isPlainObject=wu,On.isRegExp=_f,On.isSafeInteger=function(n){return du(n)&&-9007199254740991<=n&&9007199254740991>=n},On.isSet=vf,On.isString=mu,On.isSymbol=Au,On.isTypedArray=gf,On.isUndefined=function(n){return n===F},On.isWeakMap=function(n){return xu(n)&&"[object WeakMap]"==yo(n)},On.isWeakSet=function(n){return xu(n)&&"[object WeakSet]"==zt(n)},On.join=function(n,t){
return null==n?"":Ui.call(n,t)},On.kebabCase=Cf,On.last=Ge,On.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==F&&(u=Ou(r),u=0>u?Di(e+u,0):Mi(u,e-1)),t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=g(n,b,u,true);return n},On.lowerCase=Df,On.lowerFirst=Mf,On.lt=df,On.lte=yf,On.max=function(n){return n&&n.length?mt(n,Nu,Wt):F},On.maxBy=function(n,t){return n&&n.length?mt(n,je(t,2),Wt):F},On.mean=function(n){return x(n,Nu)},On.meanBy=function(n,t){return x(n,je(t,2))},On.min=function(n){
return n&&n.length?mt(n,Nu,Jt):F},On.minBy=function(n,t){return n&&n.length?mt(n,je(t,2),Jt):F},On.stubArray=Ku,On.stubFalse=Gu,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return true},On.multiply=uc,On.nth=function(n,t){return n&&n.length?tr(n,Ou(t)):F},On.noConflict=function(){return Zn._===this&&(Zn._=pi),this},On.noop=qu,On.now=Jo,On.pad=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return!t||e>=t?n:(t=(t-e)/2,ee(zi(t),r)+n+ee(Ri(t),r))},On.padEnd=function(n,t,r){
n=zu(n);var e=(t=Ou(t))?T(n):0;return t&&e<t?n+ee(t-e,r):n},On.padStart=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return t&&e<t?ee(t-e,r)+n:n},On.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),$i(zu(n).replace(an,""),t||0)},On.random=function(n,t,r){if(r&&typeof r!="boolean"&&ze(n,t,r)&&(t=r=F),r===F&&(typeof t=="boolean"?(r=t,t=F):typeof n=="boolean"&&(r=n,n=F)),n===F&&t===F?(n=0,t=1):(n=Eu(n),t===F?(t=n,n=0):t=Eu(t)),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Fi(),Mi(n+r*(t-n+$n("1e-"+((r+"").length-1))),t)):cr(n,t);
},On.reduce=function(n,t,r){var e=af(n)?h:m,u=3>arguments.length;return e(n,je(t,4),r,u,oo)},On.reduceRight=function(n,t,r){var e=af(n)?p:m,u=3>arguments.length;return e(n,je(t,4),r,u,fo)},On.repeat=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),ar(zu(n),t)},On.replace=function(){var n=arguments,t=zu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},On.result=function(n,t,r){t=Rr(t,n);var e=-1,u=t.length;for(u||(u=1,n=F);++e<u;){var i=null==n?F:n[$e(t[e])];i===F&&(e=u,i=r),n=gu(i)?i.call(n):i;
}return n},On.round=ic,On.runInContext=w,On.sample=function(n){return(af(n)?tt:sr)(n)},On.size=function(n){if(null==n)return 0;if(pu(n))return mu(n)?T(n):n.length;var t=yo(n);return"[object Map]"==t||"[object Set]"==t?n.size:Ht(n).length},On.snakeCase=Tf,On.some=function(n,t,r){var e=af(n)?_:gr;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3))},On.sortedIndex=function(n,t){return dr(n,t)},On.sortedIndexBy=function(n,t,r){return yr(n,t,je(r,2))},On.sortedIndexOf=function(n,t){var r=null==n?0:n.length;if(r){
var e=dr(n,t);if(e<r&&hu(n[e],t))return e}return-1},On.sortedLastIndex=function(n,t){return dr(n,t,true)},On.sortedLastIndexBy=function(n,t,r){return yr(n,t,je(r,2),true)},On.sortedLastIndexOf=function(n,t){if(null==n?0:n.length){var r=dr(n,t,true)-1;if(hu(n[r],t))return r}return-1},On.startCase=$f,On.startsWith=function(n,t,r){return n=zu(n),r=null==r?0:gt(Ou(r),0,n.length),t=jr(t),n.slice(r,r+t.length)==t},On.subtract=oc,On.sum=function(n){return n&&n.length?k(n,Nu):0},On.sumBy=function(n,t){return n&&n.length?k(n,je(t,2)):0;
},On.template=function(n,t,r){var e=On.templateSettings;r&&ze(n,t,r)&&(t=F),n=zu(n),t=jf({},t,e,se),r=jf({},t.imports,e.imports,se);var u,i,o=Lu(r),f=I(r,o),c=0;r=t.interpolate||An;var a="__p+='";r=ti((t.escape||An).source+"|"+r.source+"|"+(r===nn?gn:An).source+"|"+(t.evaluate||An).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,o,f,l){return e||(e=o),a+=n.slice(c,l).replace(kn,B),r&&(u=true,a+="'+__e("+r+")+'"),f&&(i=true,a+="';"+f+";\n__p+='"),
e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(i?a.replace(q,""):a).replace(V,"$1").replace(K,"$1;"),a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=Pf(function(){return Qu(o,l+"return "+a).apply(F,f)}),t.source=a,vu(t))throw t;return t},On.times=function(n,t){if(n=Ou(n),1>n||9007199254740991<n)return[];
var r=4294967295,e=Mi(n,4294967295);for(t=je(t),n-=4294967295,e=E(e,t);++r<n;)t(r);return e},On.toFinite=Eu,On.toInteger=Ou,On.toLength=Su,On.toLower=function(n){return zu(n).toLowerCase()},On.toNumber=Iu,On.toSafeInteger=function(n){return n?gt(Ou(n),-9007199254740991,9007199254740991):0===n?n:0},On.toString=zu,On.toUpper=function(n){return zu(n).toUpperCase()},On.trim=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(cn,""):n&&(t=jr(t))?(n=$(n),r=$(t),t=z(n,r),r=W(n,r)+1,zr(n,t,r).join("")):n;
},On.trimEnd=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(ln,""):n&&(t=jr(t))?(n=$(n),t=W(n,$(t))+1,zr(n,0,t).join("")):n},On.trimStart=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(an,""):n&&(t=jr(t))?(n=$(n),t=z(n,$(t)),zr(n,t).join("")):n},On.truncate=function(n,t){var r=30,e="...";if(bu(t))var u="separator"in t?t.separator:u,r="length"in t?Ou(t.length):r,e="omission"in t?jr(t.omission):e;n=zu(n);var i=n.length;if(Bn.test(n))var o=$(n),i=o.length;if(r>=i)return n;if(i=r-T(e),1>i)return e;
if(r=o?zr(o,0,i).join(""):n.slice(0,i),u===F)return r+e;if(o&&(i+=r.length-i),_f(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=ti(u.source,zu(dn.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else n.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},On.unescape=function(n){return(n=zu(n))&&J.test(n)?n.replace(G,ut):n},On.uniqueId=function(n){var t=++ai;return zu(n)+t},On.upperCase=Ff,On.upperFirst=Nf,On.each=ru,On.eachRight=eu,On.first=Ke,
Zu(On,function(){var n={};return Et(On,function(t,r){ci.call(On.prototype,r)||(n[r]=t)}),n}(),{chain:false}),On.VERSION="4.17.4",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){On[n].placeholder=On}),u(["drop","take"],function(n,t){Mn.prototype[n]=function(r){r=r===F?1:Di(Ou(r),0);var e=this.__filtered__&&!t?new Mn(this):this.clone();return e.__filtered__?e.__takeCount__=Mi(r,e.__takeCount__):e.__views__.push({size:Mi(r,4294967295),type:n+(0>e.__dir__?"Right":"")}),e},Mn.prototype[n+"Right"]=function(t){
return this.reverse()[n](t).reverse()}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Mn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:je(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");Mn.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Mn.prototype[n]=function(){return this.__filtered__?new Mn(this):this[r](1);
}}),Mn.prototype.compact=function(){return this.filter(Nu)},Mn.prototype.find=function(n){return this.filter(n).head()},Mn.prototype.findLast=function(n){return this.reverse().find(n)},Mn.prototype.invokeMap=lr(function(n,t){return typeof n=="function"?new Mn(this):this.map(function(r){return Dt(r,n,t)})}),Mn.prototype.reject=function(n){return this.filter(su(je(n)))},Mn.prototype.slice=function(n,t){n=Ou(n);var r=this;return r.__filtered__&&(0<n||0>t)?new Mn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),
t!==F&&(t=Ou(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Mn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Mn.prototype.toArray=function(){return this.take(4294967295)},Et(Mn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=On[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(On.prototype[t]=function(){function t(n){return n=u.apply(On,s([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Mn,a=f[0],l=c||af(o);
l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Mn(this),o=n.apply(o,f),o.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(o,h)):a&&c?n.apply(this,f):(o=this.thru(t),a?e?o.value()[0]:o.value():o)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=ui[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);On.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){
var u=this.value();return t.apply(af(u)?u:[],n)}return this[r](function(r){return t.apply(af(r)?r:[],n)})}}),Et(Mn.prototype,function(n,t){var r=On[t];if(r){var e=r.name+"";(Ji[e]||(Ji[e]=[])).push({name:t,func:r})}}),Ji[Xr(F,2).name]=[{name:"wrapper",func:F}],Mn.prototype.clone=function(){var n=new Mn(this.__wrapped__);return n.__actions__=Mr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Mr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Mr(this.__views__),
n},Mn.prototype.reverse=function(){if(this.__filtered__){var n=new Mn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Mn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=af(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c<a;){var l=o[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=Mi(n,f+s);break;case"takeRight":f=Di(f,n-s)}}if(n={start:f,end:n},o=n.start,f=n.end,n=f-o,
o=u?f:o-1,f=this.__iteratees__,c=f.length,a=0,l=Mi(n,this.__takeCount__),!e||!u&&i==n&&l==n)return kr(t,this.__actions__);e=[];n:for(;n--&&a<l;){for(o+=r,u=-1,i=t[o];++u<c;){var h=f[u],s=h.type,h=(0,h.iteratee)(i);if(2==s)i=h;else if(!h){if(1==s)continue n;break n}}e[a++]=i}return e},On.prototype.at=Fo,On.prototype.chain=function(){return Xe(this)},On.prototype.commit=function(){return new zn(this.value(),this.__chain__)},On.prototype.next=function(){this.__values__===F&&(this.__values__=ku(this.value()));
var n=this.__index__>=this.__values__.length;return{done:n,value:n?F:this.__values__[this.__index__++]}},On.prototype.plant=function(n){for(var t,r=this;r instanceof Sn;){var e=Pe(r);e.__index__=0,e.__values__=F,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},On.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Mn?(this.__actions__.length&&(n=new Mn(this)),n=n.reverse(),n.__actions__.push({func:nu,args:[Je],thisArg:F}),new zn(n,this.__chain__)):this.thru(Je);
},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return kr(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Ai&&(On.prototype[Ai]=tu),On}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Zn._=it, define(function(){return it})):Vn?((Vn.exports=it)._=it,qn._=it):Zn._=it}).call(this);
import constants from './constants.js'
import getRandomArbitrary from './getRandomArbitrary.js'
const moveCar = ({ car, delta }) => {
const { measures } = car
const random = 0.02
const lastTwo = measures.slice(-2)
// Figure out if we started a new lap.
const isNewLap = Math.floor(lastTwo[0].pct) !== Math.floor(lastTwo[1].pct)
// Calculate new speed.
const newSpeed = _.clamp(
lastTwo[1].speed * getRandomArbitrary(1 - random, 1 + random),
constants.MIN,
constants.MAX
)
// Calculate new pct.
const newPct = lastTwo[1].pct + delta * lastTwo[1].speed / 3600000
return {
...car,
isNewLap,
measures: [
...measures,
{
pct: newPct,
speed: newSpeed
}
].slice(isNewLap ? -2 : 0)
}
}
export default moveCar
{
"standard": {
"globals": [
"drivers",
"circuitTracks",
"d3",
"_"
]
}
}
import drawTrack from './drawTrack.js'
import drawCars from './drawCars.js'
import constants from './constants.js'
import drawBoard from './drawBoard.js'
import chart from './chart.js'
import moveCar from './moveCar.js'
import calculateMetrics from './calculateMetrics.js'
// Draw the track.
const { g: gCircuit, getCoords } = drawTrack({
container: d3.select('.circuit'),
track: circuitTracks[0]
})
// Setup the chart.
const chartBits = chart.setup(d3.select('.chart'))
// Create the state.
const dx = 0.015
let state = {
cars: _(drivers)
.sortBy('standing')
.slice(0, 10)
.map((d, i, array) => ({
number: d.number,
name: d.name.split(' ')[1].slice(0, 3),
measures: [
{
speed: constants.AVERAGE,
pct: 0
},
{
speed: constants.AVERAGE,
pct: dx * array.length - (i + 1) * dx
}
],
elapsed: 0,
laps: [],
status: 'yellow',
position: i + 1
}))
.value()
}
const draw = setup => {
// Draw the cars.
drawCars({ g: gCircuit, getCoords, cars: state.cars })
// Draw the board.
drawBoard({ cars: state.cars, setup })
// Update the chart.
chart.update({ cars: state.cars, ...chartBits })
}
draw(true)
let now = 0
const timer = d3.interval(elapsed => {
const delta = elapsed - now
// Move the cars (and also keep them sorted by position).
state = {
...state,
cars: _(state.cars)
.map(car => moveCar({ car, delta }))
.sortBy(d => -_.last(d.measures).pct)
.value()
}
// Calculate metrics.
state = {
...state,
cars: state.cars.map((car, index, cars) =>
calculateMetrics({ car, raceElapsed: elapsed, index, cars })
)
}
// Draw everything.
draw()
now = elapsed
// Stop when the leader gets to 10 laps.
if (_.last(state.cars[0].measures).pct >= 10) {
timer.stop()
}
}, 0)
// document.querySelector('button.slow').addEventListener('click', () => {
// state.cars[0].speed = state.cars[0].speed * 0.9
// })
// document.querySelector('button.fast').addEventListener('click', () => {
// state.cars[0].speed = state.cars[0].speed * 1.01
// })
document.querySelector('button.stop').addEventListener('click', () => {
timer.stop()
})
$black = #010b14
$white = #dacbed
$blue = #0fd0fe
$yellow = #f6df83
$lightblue = darken($blue, 35%)
$red = lighten(#f11c07, 33%)
$text-blur-radius = 14px
$text-blur-opacity = 0.75
$svg-blur-opacity = 0.35
$font-family = 'VT323', monospace
*
box-sizing border-box
html
background alpha($black, 0.5)
padding 0
margin 0
body
background $black
font-family $font-family
overflow hidden
margin 0 auto
padding 0
position relative
width 960px
height 500px
// border solid $white 1px
svg
display block
h1
// visibility hidden
color $white
text-shadow 0 0 $text-blur-radius alpha($white, $text-blur-opacity)
text-transform uppercase
font-weight normal
font-style italic
position absolute
width 100%
text-align center
padding 0
margin 0
font-size 2.5em
.chart
width 50%
position absolute
bottom 1em
right 0.75em
svg
shape-rendering crispEdges
filter drop-shadow(0 0 $text-blur-radius alpha($blue, $svg-blur-opacity))
path.car
fill none
stroke $blue
g.car
&.leader
circle
stroke $red
text
fill $red
circle
fill none
fill $black
stroke $white
text
font-size 0.9em
text-anchor middle
fill $white
.axis
path
stroke $lightblue
stroke-dasharray 1 10
text
font-size 1.75em
font-family $font-family
fill $lightblue
.circuit
width 50%
position relative
margin 0
padding 0.5em 0 0 0
svg
margin 0 auto
shape-rendering crispEdges
filter drop-shadow(0 0 $text-blur-radius alpha($blue, $svg-blur-opacity))
path.track
fill none
stroke $blue
.finish-line
stroke $blue
stroke-width 2px
g.car
&.leader
path
stroke $red
text
fill $red
path
fill $black
stroke $white
text
font-size 1.125em
text-anchor middle
fill $white
button
display none
table
// visibility hidden
position absolute
table-layout fixed
font-size 1.125em
top 1.5em
right 1em
z-index 1
color $blue
text-align right
padding 0.5em
td, th
padding 0 0.75em
th
font-weight normal
td
color $yellow
text-shadow 0 0 $text-blur-radius alpha($yellow, $text-blur-opacity)
.leader
color $red
text-shadow 0 0 $text-blur-radius alpha($red, $text-blur-opacity)
.cyan
color $lightblue
text-shadow 0 0 $text-blur-radius alpha($lightblue, $text-blur-opacity)
.white
color $white
text-shadow 0 0 $text-blur-radius alpha($white, $text-blur-opacity)
tbody
tr
td:nth-child(1)
color $lightblue
text-shadow 0 0 $text-blur-radius alpha($lightblue, $text-blur-opacity)
width 2.5em
td:nth-child(2)
width 2.5em
td:nth-child(3)
text-align left
text-transform uppercase
width 3.5em
td:nth-child(4)
width 4em
td:nth-child(5)
width 4em
td:nth-child(6)
width 6em
td:nth-child(7)
width 2.5em
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment