Skip to content

Instantly share code, notes, and snippets.

@epijim
Forked from vicapow/index.js
Created April 28, 2014 20:16
Show Gist options
  • Save epijim/11382789 to your computer and use it in GitHub Desktop.
Save epijim/11382789 to your computer and use it in GitHub Desktop.
requirebin sketch
var d3 = require('d3')
, _ = require('underscore')
, w = window.innerWidth
, h = window.innerHeight - 100
, tempo = 500
// , data = {
// 'Derek Jeter' : {
// '1995' : [12, 48]
// , '1996' : [183, 582]
// }
// , 'David Justice' : {
// '1995' : [104, 411]
// , '1996' : [45, 140]
// }
// }
// , data = {
// 'Lisa' : {
// 'Week 1' : [0, 3]
// , 'Week 2' : [5, 7]
// }
// , 'Bart' : {
// 'Week 1' : [1, 7]
// , 'Week 2' : [3, 3]
// }
// }
, data = {
'Non insulin dependent' : {
'40 or younger' : [0, 15]
, 'Older than 40' : [218, 311]
}
, 'Insulin dependent' : {
'40 or younger' : [1, 129]
, 'Older than 40' : [104, 124]
}
}
// return the combined ration for a row in the data
, combined = function(row){
return _.reduce(_.toArray(data)[row], function(m, n){
return _.zip(m, n).map(function(a){ return a[0] + a[1] })
}, [0, 0])
}
, rows = _.keys(data)
, cols = _.keys(_.first(_.toArray(data)))
// max for each column
, col_maxs = (function(){
var maxs = _.map(cols, function(col){
var max_row = 0
_.reduce(_.toArray(data), function(max, row, row_ind){
var t = row[col][0] / row[col][1]
if(t > max){
max_row = row_ind
max = t
}
return max
}, 0)
return max_row
})
var max_combined_index = -1
var max_combined = _.reduce(rows, function(max, row, i){
var t = combined(i)
t = t[0] / t[1]
if(t > max){
max_combined_index = i
max = t
}
return max
}, 0)
maxs.push(max_combined_index)
return maxs
})()
, num_nodes = _.chain(data).map(function(row){
return _.map(row, function(col){
return _.last(col)
}).reduce(function(m, n){ return m + n })
}).reduce(function(m, n){ return m + n}, 0).value()
, max_nodes_per_ratio = d3.max(_.map(data, function(row){
return d3.max( _.map(row, function(col){ return _.last(col) } ) )
}))
, fill = function(d){
if(d) return 'black'
else return 'steelblue'
}
, svg = d3.select('body').append('svg')
.attr('width', w)
.attr('height', h)
, createForce = function(){
return d3.layout.force()
.nodes([])
.links([])
.gravity(0)
.size([w, h])
.linkDistance(0)
.linkStrength(2)
.friction(0.2)
.charge(function(d, i){ return d.charge })
}
, forces = _.map(rows, createForce)
, linktoFoci = function(nodes, foci){
return nodes.map(function(node){
return { source : node, target : foci }
})
}
, createNodes = function(num, denom, name){
return d3.range(denom).map(function(d){
return {
id : d < num ? 0 : 1
, x : d < num ? 0 : w
, y : Math.random() * h
, charge : -1 * 10000 / max_nodes_per_ratio
, name : name
}
})
}
, createFoci = function(x, y, name){
return { x : x, y : y, charge : 0, fixed : true, name : name }
}
, focis = {}
, rowClass = function(row){
return 'row-' + row.replace(/ /g, '').toLowerCase()
}
, colClass = function(col){
return 'col-' + col.replace(/ /g, '').toLowerCase()
}
// create all the focal points for the different nodes
_.each(rows, function(row_val, row){
_.each(cols, function(col_val, col){
var row_class = rowClass(rows[row])
, col_class = colClass(cols[col])
, x = w / (cols.length + 2) * (col + 1)
, y = h / (rows.length + 1) * ( row + 1)
, foci1 = createFoci( x, y, row_class + ' ' + col_class + ' foci foci-0')
, foci2 = createFoci( x, y, row_class + ' ' + col_class + ' foci foci-1')
if(!focis[rows[row]]) focis[rows[row]] = {}
focis[rows[row]][cols[col]] = [foci1, foci2]
forces[row].nodes().push(foci1, foci2)
})
})
function setupNodeAndLinks(force, row){
cols.forEach(function(col){
var fociSet = focis[row][col]
, num = data[row][col][0]
, den = data[row][col][1]
, row_class = rowClass(row)
, col_class = colClass(col)
, nodes = createNodes(num, den, row_class + ' ' + col_class)
force.nodes().push.apply(force.nodes(), nodes)
force.links().push.apply(force.links(), linktoFoci(nodes.filter(function(d){
return d.id === 0
}), fociSet[0] ))
force.links().push.apply(force.links(), linktoFoci(nodes.filter(function(d){
return d.id === 1
}), fociSet[1] ))
})
}
_.each(forces, function(force, i){
setupNodeAndLinks(force, rows[i] )
force.on('tick', function(e){
svg.selectAll('circle.' + rowClass(rows[i]))
.attr('cx', function(d) { return d.x })
.attr('cy', function(d) { return d.y })
})
})
svg.selectAll('circle' + '.node')
.data(_.reduce(forces
, function(nodes, force) { return nodes.concat(force.nodes()); }, []))
.enter().append('circle')
.attr('class', function(d){ return 'node ' + d.name})
.attr('cx', function(d) { return d.x })
.attr('cy', function(d) { return d.y })
.attr('r', 2 + 100 / num_nodes )
.style('fill', function(d) { return fill(d.id) })
.style('stroke', function(d) { return d3.rgb(fill(d.id)).darker(2) })
.style('stroke-width', 1)
// ensure the focal points are hidden even in `requirebin`
svg.selectAll('circle.foci')
.style('display', 'none')
_.each(forces, function(force){ force.start() })
var cl = function(row, col, fociId){
fociId = (fociId !== undefined) ? '.foci-' + fociId : ''
return '.' + rowClass(rows[row]) + '.' + colClass(cols[col] + fociId)
}
, ratioLabelPos = function(row, col){
var maxr = 0
, cx = Number(d3.select(cl(row, col, 0)).attr('cx'))
, cy = Number(d3.select(cl(row, col, 0)).attr('cy'))
d3.selectAll('.node' + cl(row, col)).each(function(d){
var r = Math.sqrt( (d.x - cx) * (d.x - cx) + (d.y - cy) * (d.y - cy))
maxr = r > maxr ? r : maxr
})
return {
x : cx + Math.cos(45) * maxr
, y : cy - Math.sin(45) * maxr
}
}
, ratioLabelFormat = function(d){
return d3.format('.0%')(d[0] / d[1]) + ' accepted'
}
, timeline = [
tempo * 2
, function(){
// show labels
var labels = []
for(row in rows){
for(col in cols){
labels.push({
foci: cl(row, col)
, text : ratioLabelFormat(data[rows[row]][cols[col]])
, row : Number(row)
, col : Number(col)
})
}
}
var ratios = svg.selectAll('text.year-ratio')
ratios.remove()
ratios.data(labels)
.enter().append('text')
.attr({
class : 'year-ratio'
, x : function(d){
return ratioLabelPos(d.row, d.col).x
}
, y : function(d){
return ratioLabelPos(d.row, d.col).y
}
})
.text(function(d){ return d.text })
.style('opacity','0.0')
.transition()
.style('opacity','1.0')
.style('font-weight', function(d){
return col_maxs[d.col] === d.row ? 'bold' : 'normal'
})
}
, tempo * 10
, function(){
var dur = 250
var ratios = svg.selectAll('text.year-ratio')
.transition()
.duration(dur)
.style('opacity','0.0')
.remove()
return dur
}
, function(){
var dur = tempo * 2
for(var row in rows){
for(var col in cols){
animFoci( cl(row, col) + '.foci-0', { x : w / (cols.length + 2) * (cols.length + 1) - 500 }, dur)
// a hack to make the combined edges a bit smoother
animFoci( cl(row, col) + '.foci-1', { x : w / (cols.length + 2) * (cols.length + 1) }, dur)
}
}
return dur
}
, tempo * 1
, function(){
var dur = tempo * 2
for(var row in rows){
for(var col in cols){
animFoci( cl(row, col) + '.foci-0', { x : w / (cols.length + 2) * (cols.length + 1) }, dur)
animFoci( cl(row, col) + '.foci-1', { x : w / (cols.length + 2) * (cols.length + 1) }, dur)
}
}
return dur
}
, tempo * 1
// show the combined ratios
, function(){
var labels = rows.map(function(row, i){
return {
text : ratioLabelFormat(combined(i))
, row : i
, col : cols.length
, foci: cl(i, 0)
}
})
var ratios = svg.selectAll('text.combined-ratio')
ratios.remove()
ratios.data(labels)
.enter().append('text')
.attr({
class : 'combined-ratio'
, x : function(d){
return ratioLabelPos(d.row, 0).x
}
, y : function(d){
return ratioLabelPos(d.row, 0).y
}
})
.text(function(d){ return d.text })
.style('opacity','0.0')
.transition()
.style('opacity','1.0')
.style('font-weight', function(d){
return col_maxs[d.col] === d.row ? 'bold' : 'normal'
})
}
, tempo * 10
// hide the combined ration labels
, function(){
var dur = 250
var ratios = svg.selectAll('text.combined-ratio')
.transition()
.duration(dur)
.style('opacity','0.0')
.remove()
return dur
}
// back to the original configuration
, function(){
var dur = tempo
_.each(rows, function(row_val, row){
_.each(cols, function(col_val, col){
animFoci( cl(row, col) + '.foci-0', { x : w / (cols.length + 2) * (1 + col) - 30 }, dur)
animFoci( cl(row, col) + '.foci-1', { x : w / (cols.length + 2) * (1 + col) + 30 }, dur)
})
})
return dur
}
, function(){
var dur = tempo
_.each(rows, function(row_val, row){
_.each(cols, function(col_val, col){
animFoci( cl(row, col) + '.foci-0', { x : w / (cols.length + 2) * (col + 1) }, dur)
animFoci( cl(row, col) + '.foci-1', { x : w / (cols.length + 2) * (col + 1) }, dur)
})
})
return dur
}
]
// loop through the timeline
, t = -1
, forward = 1
, back_and_forth = false // change to play the animation `back-and-forth`
, loop = function(){
if(back_and_forth){
if(t >= timeline.length - 1) forward = -1
else if (t <= 0) forward = 1
}
var now = timeline[t = (t + forward) % timeline.length]
if(typeof now === 'function'){
var dur = now()
if(dur === undefined) dur = tempo
setTimeout(loop, dur)
}else setTimeout(loop, now)
}
loop()
function animFoci(foci, pos, duration){
if(duration === undefined) duration = 10000
d3.selectAll(foci + '.foci')
.transition()
.duration(duration)
.ease('cubic-in-out')
.tween('dataTweet', function(d){
if(!pos.x) pos.x = d.px
if(!pos.y) pos.y = d.py
var ix = d3.interpolate(d.x, pos.x)
var iy = d3.interpolate(d.y, pos.y)
return function(t){
d.x = d.px = ix(t)
d.y = d.py = iy(t)
}
})
_.each(forces, function(force){
force.start()
})
}
// Labels
// todo: change root `em` size depending on window size
d3.select('body').style('font-size', '1em')
// column headers
svg.selectAll('text.column-label')
.data(cols.concat(['combined']))
.enter().append('text')
.attr({
x : function(d, i){ return w / (cols.length + 2) * (i + 1) }
, y : 20
, anchor : 'middle'
, class : 'column-label'
}).text(function(d){ return d})
svg.selectAll('text.row-label')
.data(rows)
.enter().append('text')
.attr({
x : 70
, y : function(d, i){ return h / (rows.length + 1) * (i + 1) }
, anchor : 'right'
, class : 'row-label'
}).text(function(d){ return d})
svg.append('text')
.text('1 ball = 1 person. ')
.attr({
x : 10
, y : h - 10
, class : 'legend-item1'
})
function setupNodeAndLinks(n,t){cols.forEach(function(r){var e=focis[t][r],u=data[t][r][0],i=data[t][r][1],o=rowClass(t),a=colClass(r),c=createNodes(u,i,o+" "+a);n.nodes().push.apply(n.nodes(),c),n.links().push.apply(n.links(),linktoFoci(c.filter(function(n){return 0===n.id}),e[0])),n.links().push.apply(n.links(),linktoFoci(c.filter(function(n){return 1===n.id}),e[1]))})}function animFoci(n,t,r){void 0===r&&(r=1e4),d3.selectAll(n+".foci").transition().duration(r).ease("cubic-in-out").tween("dataTweet",function(n){t.x||(t.x=n.px),t.y||(t.y=n.py);var r=d3.interpolate(n.x,t.x),e=d3.interpolate(n.y,t.y);return function(t){n.x=n.px=r(t),n.y=n.py=e(t)}}),_.each(forces,function(n){n.start()})}require=function e(n,t,r){function u(o,a){if(!t[o]){if(!n[o]){var c="function"==typeof require&&require;if(!a&&c)return c(o,!0);if(i)return i(o,!0);throw Error("Cannot find module '"+o+"'")}var l=t[o]={exports:{}};n[o][0].call(l.exports,function(t){var r=n[o][1][t];return u(r?r:t)},l,l.exports,e,n,t,r)}return t[o].exports}for(var i="function"==typeof require&&require,o=0;r.length>o;o++)u(r[o]);return u}({kR3BKQ:[function(n,t){!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,r,e,u){for(3>arguments.length&&(e=0),4>arguments.length&&(u=t.length);u>e;){var i=e+u>>>1;0>n(t[i],r)?e=i+1:u=i}return e},right:function(t,r,e,u){for(3>arguments.length&&(e=0),4>arguments.length&&(u=t.length);u>e;){var i=e+u>>>1;n(t[i],r)>0?u=i:e=i+1}return e}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=10;return t}function o(n,t){try{for(var r in t)Object.defineProperty(n.prototype,r,{value:t[r],enumerable:!1})}catch(e){n.prototype=t}}function a(){}function c(n){return ga+n in this}function l(n){return n=ga+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function f(){var n=0;for(var t in this)t.charCodeAt(0)===pa&&++n;return n}function h(){for(var n in this)if(n.charCodeAt(0)===pa)return!1;return!0}function g(){}function p(n,t,r){return function(){var e=r.apply(t,arguments);return e===t?n:e}}function d(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var r=0,e=da.length;e>r;++r){var u=da[r]+t;if(u in n)return u}}function v(){}function m(){}function y(n){function t(){for(var t,e=r,u=-1,i=e.length;i>++u;)(t=e[u].on)&&t.apply(this,arguments);return n}var r=[],e=new a;return t.on=function(t,u){var i,o=e.get(t);return 2>arguments.length?o&&o.on:(o&&(o.on=null,r=r.slice(0,i=r.indexOf(o)).concat(r.slice(i+1)),e.remove(t)),u&&r.push(e.set(t,{on:u})),n)},t}function x(){Ko.event.preventDefault()}function M(){for(var n,t=Ko.event;n=t.sourceEvent;)t=n;return t}function _(n){for(var t=new m,r=0,e=arguments.length;e>++r;)t[arguments[r]]=y(t);return t.of=function(r,e){return function(u){try{var i=u.sourceEvent=Ko.event;u.target=n,Ko.event=u,t[u.type].apply(r,e)}finally{Ko.event=i}}},t}function b(n){return ma(n,ba),n}function w(n){return"function"==typeof n?n:function(){return ya(n,this)}}function k(n){return"function"==typeof n?n:function(){return xa(n,this)}}function S(n,t){function r(){this.removeAttribute(n)}function e(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var r=t.apply(this,arguments);null==r?this.removeAttribute(n):this.setAttribute(n,r)}function a(){var r=t.apply(this,arguments);null==r?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,r)}return n=Ko.ns.qualify(n),null==t?n.local?e:r:"function"==typeof t?n.local?a:o:n.local?i:u}function E(n){return n.trim().replace(/\s+/g," ")}function A(n){return RegExp("(?:^|\\s+)"+Ko.requote(n)+"(?:\\s+|$)","g")}function C(n){return n.trim().split(/^|\s+/)}function N(n,t){function r(){for(var r=-1;u>++r;)n[r](this,t)}function e(){for(var r=-1,e=t.apply(this,arguments);u>++r;)n[r](this,e)}n=C(n).map(q);var u=n.length;return"function"==typeof t?e:r}function q(n){var t=A(n);return function(r,e){if(u=r.classList)return e?u.add(n):u.remove(n);var u=r.getAttribute("class")||"";e?(t.lastIndex=0,t.test(u)||r.setAttribute("class",E(u+" "+n))):r.setAttribute("class",E(u.replace(t," ")))}}function L(n,t,r){function e(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,r)}function i(){var e=t.apply(this,arguments);null==e?this.style.removeProperty(n):this.style.setProperty(n,e,r)}return null==t?e:"function"==typeof t?i:u}function T(n,t){function r(){delete this[n]}function e(){this[n]=t}function u(){var r=t.apply(this,arguments);null==r?delete this[n]:this[n]=r}return null==t?r:"function"==typeof t?u:e}function z(n){return"function"==typeof n?n:(n=Ko.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function j(n){return{__data__:n}}function R(n){return function(){return _a(this,n)}}function F(t){return arguments.length||(t=n),function(n,r){return n&&r?t(n.__data__,r.__data__):!n-!r}}function D(n,t){for(var r=0,e=n.length;e>r;r++)for(var u,i=n[r],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,r);return n}function P(n){return ma(n,ka),n}function O(n){var t,r;return function(e,u,i){var o,a=n[i].update,c=a.length;for(i!=r&&(r=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&c>++t;);return o}}function U(){var n=this.__transition__;n&&++n.active}function H(n,t,r){function e(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,na(arguments));e.call(this),this.addEventListener(n,this[o]=u,u.$=r),u._=t}function i(){var t,r=RegExp("^__on([^.]+)"+Ko.requote(n)+"$");for(var e in this)if(t=e.match(r)){var u=this[e];this.removeEventListener(t[1],u,u.$),delete this[e]}}var o="__on"+n,a=n.indexOf("."),c=I;a>0&&(n=n.substring(0,a));var l=Ea.get(n);return l&&(n=l,c=Y),a?t?u:e:t?v:i}function I(n,t){return function(r){var e=Ko.event;Ko.event=r,t[0]=this.__data__;try{n.apply(this,t)}finally{Ko.event=e}}}function Y(n,t){var r=I(n,t);return function(n){var t=this,e=n.relatedTarget;e&&(e===t||8&e.compareDocumentPosition(t))||r.call(t,n)}}function B(){var n=".dragsuppress-"+ ++Ca,t="click"+n,r=Ko.select(ea).on("touchmove"+n,x).on("dragstart"+n,x).on("selectstart"+n,x);if(Aa){var e=ra.style,u=e[Aa];e[Aa]="none"}return function(i){function o(){r.on(t,null)}r.on(n,null),Aa&&(e[Aa]=u),i&&(r.on(t,function(){x(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var e=r.createSVGPoint();return e.x=t.clientX,e.y=t.clientY,e=e.matrixTransform(n.getScreenCTM().inverse()),[e.x,e.y]}var u=n.getBoundingClientRect();return[t.clientX-u.left-n.clientLeft,t.clientY-u.top-n.clientTop]}function V(){return Ko.event.changedTouches[0].identifier}function $(){return Ko.event.target}function X(){return ea}function W(n){return n>0?1:0>n?-1:0}function J(n,t,r){return(t[0]-n[0])*(r[1]-n[1])-(t[1]-n[1])*(r[0]-n[0])}function G(n){return n>1?0:-1>n?Na:Math.acos(n)}function K(n){return n>1?La:-1>n?-La:Math.asin(n)}function Q(n){return((n=Math.exp(n))-1/n)/2}function nt(n){return((n=Math.exp(n))+1/n)/2}function tt(n){return((n=Math.exp(2*n))-1)/(n+1)}function rt(n){return(n=Math.sin(n/2))*n}function et(){}function ut(n,t,r){return new it(n,t,r)}function it(n,t,r){this.h=n,this.s=t,this.l=r}function ot(n,t,r){function e(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*e(n))}var i,o;return n=isNaN(n)?0:0>(n%=360)?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,r=0>r?0:r>1?1:r,o=.5>=r?r*(1+t):r+t-r*t,i=2*r-o,xt(u(n+120),u(n),u(n-120))}function at(n,t,r){return new ct(n,t,r)}function ct(n,t,r){this.h=n,this.c=t,this.l=r}function lt(n,t,r){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),st(r,Math.cos(n*=ja)*t,Math.sin(n)*t)}function st(n,t,r){return new ft(n,t,r)}function ft(n,t,r){this.l=n,this.a=t,this.b=r}function ht(n,t,r){var e=(n+16)/116,u=e+t/500,i=e-r/200;return u=pt(u)*Za,e=pt(e)*Va,i=pt(i)*$a,xt(vt(3.2404542*u-1.5371385*e-.4985314*i),vt(-.969266*u+1.8760108*e+.041556*i),vt(.0556434*u-.2040259*e+1.0572252*i))}function gt(n,t,r){return n>0?at(Math.atan2(r,t)*Ra,Math.sqrt(t*t+r*r),n):at(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function vt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n){return xt(n>>16,255&n>>8,255&n)}function yt(n){return mt(n)+""}function xt(n,t,r){return new Mt(n,t,r)}function Mt(n,t,r){this.r=n,this.g=t,this.b=r}function _t(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,r){var e,u,i,o=0,a=0,c=0;if(e=/([a-z]+)\((.*)\)/i.exec(n))switch(u=e[2].split(","),e[1]){case"hsl":return r(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(Et(u[0]),Et(u[1]),Et(u[2]))}return(i=Ja.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function wt(n,t,r){var e,u,i=Math.min(n/=255,t/=255,r/=255),o=Math.max(n,t,r),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),e=n==o?(t-r)/a+(r>t?6:0):t==o?(r-n)/a+2:(n-t)/a+4,e*=60):(e=0/0,u=c>0&&1>c?0:e),ut(e,u,c)}function kt(n,t,r){n=St(n),t=St(t),r=St(r);var e=dt((.4124564*n+.3575761*t+.1804375*r)/Za),u=dt((.2126729*n+.7151522*t+.072175*r)/Va),i=dt((.0193339*n+.119192*t+.9503041*r)/$a);return st(116*u-16,500*(e-u),200*(u-i))}function St(n){return.04045>=(n/=255)?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Et(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function At(n){return"function"==typeof n?n:function(){return n}}function Ct(n){return n}function Nt(n){return function(t,r,e){return 2===arguments.length&&"function"==typeof r&&(e=r,r=null),qt(t,r,n,e)}}function qt(n,t,r,e){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=r.call(i,c)}catch(e){return o.error.call(i,e),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Ko.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!ea.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Ko.event;Ko.event=n;try{o.progress.call(i,c)}finally{Ko.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),2>arguments.length?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return r=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(na(arguments)))}}),i.send=function(r,e,u){if(2===arguments.length&&"function"==typeof e&&(u=e,e=null),c.open(r,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==e?null:e),i},i.abort=function(){return c.abort(),i},Ko.rebind(i,o,"on"),null==e?i:i.get(Lt(e))}function Lt(n){return 1===n.length?function(t,r){n(null==t?r:null)}:n}function Tt(){var n=zt(),t=jt()-n;t>24?(isFinite(t)&&(clearTimeout(nc),nc=setTimeout(Tt,t)),Qa=0):(Qa=1,rc(Tt))}function zt(){var n=Date.now();for(tc=Ga;tc;)n>=tc.t&&(tc.f=tc.c(n-tc.t)),tc=tc.n;return n}function jt(){for(var n,t=Ga,r=1/0;t;)t.f?t=n?n.n=t.n:Ga=t.n:(r>t.t&&(r=t.t),t=(n=t).n);return Ka=n,r}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Ft(n,t){var r=Math.pow(10,3*ha(8-t));return{scale:t>8?function(n){return n/r}:function(n){return n*r},symbol:n}}function Dt(n){var t=n.decimal,r=n.thousands,e=n.grouping,u=n.currency,i=e?function(n){for(var t=n.length,u=[],i=0,o=e[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=e[i=(i+1)%e.length];return u.reverse().join(r)}:Ct;return function(n){var r=uc.exec(n),e=r[1]||" ",o=r[2]||">",a=r[3]||"",c=r[4]||"",l=r[5],s=+r[6],f=r[7],h=r[8],g=r[9],p=1,d="",v="",m=!1;switch(h&&(h=+h.substring(1)),(l||"0"===e&&"="===o)&&(l=e="0",o="=",f&&(s-=Math.floor((s-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,v="%",g="f";break;case"p":p=100,v="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(d="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(d=u[0],v=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=ic.get(g)||Pt;var y=l&&f;return function(n){var r=v;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Ko.formatPrefix(n,h);n=c.scale(n),r=c.symbol+v}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!l&&f&&(M=i(M));var b=d.length+M.length+_.length+(y?0:u.length),w=s>b?Array(b=s-b+1).join(e):"";return y&&(M=i(w+M)),u+=d,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+r}}}function Pt(n){return n+""}function Ot(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ut(n,t,r){function e(t){var r=n(t),e=i(r,1);return e-t>t-r?r:e}function u(r){return t(r=n(new ac(r-1)),1),r}function i(n,r){return t(n=new ac(+n),r),n}function o(n,e,i){var o=u(n),a=[];if(i>1)for(;e>o;)r(o)%i||a.push(new Date(+o)),t(o,1);else for(;e>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,r){try{ac=Ot;var e=new Ot;return e._=n,o(e,t,r)}finally{ac=Date}}n.floor=n,n.round=e,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(e),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,r){try{ac=Ot;var e=new Ot;return e._=t,n(e,r)._}finally{ac=Date}}}function It(n){function t(n){function t(t){for(var r,u,i,o=[],a=-1,c=0;e>++a;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=lc[r=n.charAt(++a)])&&(r=n.charAt(++a)),(i=C[r])&&(r=i(t,null==u?"e"===r?" ":"0":u)),o.push(r),c=a+1);return o.push(n.substring(c,a)),o.join("")}var e=n.length;return t.parse=function(t){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=r(e,n,t,0);if(u!=t.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var i=null!=e.Z&&ac!==Ot,o=new(i?Ot:ac);return"j"in e?o.setFullYear(e.y,0,e.j):"w"in e&&("W"in e||"U"in e)?(o.setFullYear(e.y,0,1),o.setFullYear(e.y,0,"W"in e?(e.w+6)%7+7*e.W-(o.getDay()+5)%7:e.w+7*e.U-(o.getDay()+6)%7)):o.setFullYear(e.y,e.m,e.d),o.setHours(e.H+Math.floor(e.Z/100),e.M+e.Z%100,e.S,e.L),i?o._:o},t.toString=function(){return n},t}function r(n,t,r,e){for(var u,i,o,a=0,c=t.length,l=r.length;c>a;){if(e>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in lc?t.charAt(a++):o],!i||0>(e=i(n,r,e)))return-1}else if(u!=r.charCodeAt(e++))return-1}return e}function e(n,t,r){b.lastIndex=0;var e=b.exec(t.substring(r));return e?(n.w=w.get(e[0].toLowerCase()),r+e[0].length):-1}function u(n,t,r){M.lastIndex=0;var e=M.exec(t.substring(r));return e?(n.w=_.get(e[0].toLowerCase()),r+e[0].length):-1}function i(n,t,r){E.lastIndex=0;var e=E.exec(t.substring(r));return e?(n.m=A.get(e[0].toLowerCase()),r+e[0].length):-1}function o(n,t,r){k.lastIndex=0;var e=k.exec(t.substring(r));return e?(n.m=S.get(e[0].toLowerCase()),r+e[0].length):-1}function a(n,t,e){return r(n,""+C.c,t,e)}function c(n,t,e){return r(n,""+C.x,t,e)}function l(n,t,e){return r(n,""+C.X,t,e)}function s(n,t,r){var e=x.get(t.substring(r,r+=2).toLowerCase());return null==e?-1:(n.p=e,r)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,d=n.days,v=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function r(n){try{ac=Ot;var t=new ac;return t._=n,e(t)}finally{ac=Date}}var e=t(n);return r.parse=function(n){try{ac=Ot;var t=e.parse(n);return t&&t._}finally{ac=Date}},r.toString=e.toString,r},t.multi=t.utc.multi=cr;var x=Ko.map(),M=Bt(d),_=Zt(d),b=Bt(v),w=Zt(v),k=Bt(m),S=Zt(m),E=Bt(y),A=Zt(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return v[n.getDay()]},A:function(n){return d[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return Yt(n.getDate(),t,2)},e:function(n,t){return Yt(n.getDate(),t,2)},H:function(n,t){return Yt(n.getHours(),t,2)},I:function(n,t){return Yt(n.getHours()%12||12,t,2)},j:function(n,t){return Yt(1+oc.dayOfYear(n),t,3)},L:function(n,t){return Yt(n.getMilliseconds(),t,3)},m:function(n,t){return Yt(n.getMonth()+1,t,2)},M:function(n,t){return Yt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return Yt(n.getSeconds(),t,2)},U:function(n,t){return Yt(oc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Yt(oc.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return Yt(n.getFullYear()%100,t,2)},Y:function(n,t){return Yt(n.getFullYear()%1e4,t,4)},Z:or,"%":function(){return"%"}},N={a:e,A:u,b:i,B:o,c:a,d:nr,e:nr,H:rr,I:rr,j:tr,L:ir,m:Qt,M:er,p:s,S:ur,U:$t,w:Vt,W:Xt,x:c,X:l,y:Jt,Y:Wt,Z:Gt,"%":ar};return t}function Yt(n,t,r){var e=0>n?"-":"",u=(e?-n:n)+"",i=u.length;return e+(r>i?Array(r-i+1).join(t)+u:u)}function Bt(n){return RegExp("^(?:"+n.map(Ko.requote).join("|")+")","i")}function Zt(n){for(var t=new a,r=-1,e=n.length;e>++r;)t.set(n[r].toLowerCase(),r);return t}function Vt(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+1));return e?(n.w=+e[0],r+e[0].length):-1}function $t(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r));return e?(n.U=+e[0],r+e[0].length):-1}function Xt(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r));return e?(n.W=+e[0],r+e[0].length):-1}function Wt(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+4));return e?(n.y=+e[0],r+e[0].length):-1}function Jt(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.y=Kt(+e[0]),r+e[0].length):-1}function Gt(n,t,r){return/^[+-]\d{4}$/.test(t=t.substring(r,r+5))?(n.Z=-t,r+5):-1}function Kt(n){return n+(n>68?1900:2e3)}function Qt(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.m=e[0]-1,r+e[0].length):-1}function nr(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.d=+e[0],r+e[0].length):-1}function tr(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+3));return e?(n.j=+e[0],r+e[0].length):-1}function rr(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.H=+e[0],r+e[0].length):-1}function er(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.M=+e[0],r+e[0].length):-1}function ur(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+2));return e?(n.S=+e[0],r+e[0].length):-1}function ir(n,t,r){sc.lastIndex=0;var e=sc.exec(t.substring(r,r+3));return e?(n.L=+e[0],r+e[0].length):-1}function or(n){var t=n.getTimezoneOffset(),r=t>0?"-":"+",e=~~(ha(t)/60),u=ha(t)%60;return r+Yt(e,"0",2)+Yt(u,"0",2)}function ar(n,t,r){fc.lastIndex=0;var e=fc.exec(t.substring(r,r+1));return e?r+e[0].length:-1}function cr(n){for(var t=n.length,r=-1;t>++r;)n[r][0]=this(n[r][0]);return function(t){for(var r=0,e=n[r];!e[1](t);)e=n[++r];return e[0](t)}}function lr(){}function sr(n,t,r){var e=r.s=n+t,u=e-n,i=e-u;r.t=n-i+(t-u)}function fr(n,t){n&&dc.hasOwnProperty(n.type)&&dc[n.type](n,t)}function hr(n,t,r){var e,u=-1,i=n.length-r;for(t.lineStart();i>++u;)e=n[u],t.point(e[0],e[1],e[2]);t.lineEnd()}function gr(n,t){var r=-1,e=n.length;for(t.polygonStart();e>++r;)hr(n[r],t,1);t.polygonEnd()}function pr(){function n(n,t){n*=ja,t=t*ja/2+Na/4;var r=n-e,o=r>=0?1:-1,a=o*r,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);mc.add(Math.atan2(h,f)),e=n,u=c,i=l}var t,r,e,u,i;yc.point=function(o,a){yc.point=n,e=(t=o)*ja,u=Math.cos(a=(r=a)*ja/2+Na/4),i=Math.sin(a)},yc.lineEnd=function(){n(t,r)}}function dr(n){var t=n[0],r=n[1],e=Math.cos(r);return[e*Math.cos(t),e*Math.sin(t),Math.sin(r)]}function vr(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mr(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function yr(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xr(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Mr(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _r(n){return[Math.atan2(n[1],n[0]),K(n[2])]}function br(n,t){return Ta>ha(n[0]-t[0])&&Ta>ha(n[1]-t[1])}function wr(n,t){n*=ja;var r=Math.cos(t*=ja);kr(r*Math.cos(n),r*Math.sin(n),Math.sin(t))}function kr(n,t,r){++xc,_c+=(n-_c)/xc,bc+=(t-bc)/xc,wc+=(r-wc)/xc}function Sr(){function n(n,u){n*=ja;var i=Math.cos(u*=ja),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=r*c-e*a)*l+(l=e*o-t*c)*l+(l=t*a-r*o)*l),t*o+r*a+e*c);Mc+=l,kc+=l*(t+(t=o)),Sc+=l*(r+(r=a)),Ec+=l*(e+(e=c)),kr(t,r,e)}var t,r,e;qc.point=function(u,i){u*=ja;var o=Math.cos(i*=ja);t=o*Math.cos(u),r=o*Math.sin(u),e=Math.sin(i),qc.point=n,kr(t,r,e)}}function Er(){qc.point=wr}function Ar(){function n(n,t){n*=ja;var r=Math.cos(t*=ja),o=r*Math.cos(n),a=r*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-e*c,f=e*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=e*o+u*a+i*c,p=h&&-G(g)/h,d=Math.atan2(h,g);Ac+=p*l,Cc+=p*s,Nc+=p*f,Mc+=d,kc+=d*(e+(e=o)),Sc+=d*(u+(u=a)),Ec+=d*(i+(i=c)),kr(e,u,i)}var t,r,e,u,i;qc.point=function(o,a){t=o,r=a,qc.point=n,o*=ja;var c=Math.cos(a*=ja);e=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),kr(e,u,i)},qc.lineEnd=function(){n(t,r),qc.lineEnd=Er,qc.point=wr}}function Cr(){return!0}function Nr(n,t,r,e,u){var i=[],o=[];if(n.forEach(function(n){if(!(0>=(t=n.length-1))){var t,r=n[0],e=n[t];if(br(r,e)){u.lineStart();for(var a=0;t>a;++a)u.point((r=n[a])[0],r[1]);return u.lineEnd(),void 0}var c=new Lr(r,n,null,!0),l=new Lr(r,null,c,!1);c.o=l,i.push(c),o.push(l),c=new Lr(e,n,null,!1),l=new Lr(e,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),qr(i),qr(o),i.length){for(var a=0,c=r,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else e(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else e(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function qr(n){if(t=n.length){for(var t,r,e=0,u=n[0];t>++e;)u.n=r=n[e],r.p=u,u=r;u.n=r=n[0],r.p=u}}function Lr(n,t,r,e){this.x=n,this.z=t,this.o=r,this.e=e,this.v=!1,this.n=this.p=null}function Tr(n,t,r,e){return function(u,i){function o(t,r){var e=u(t,r);n(t=e[0],r=e[1])&&i.point(t,r)}function a(n,t){var r=u(n,t);v.point(r[0],r[1])}function c(){y.point=a,v.lineStart()}function l(){y.point=o,v.lineEnd()}function s(n,t){d.push([n,t]);var r=u(n,t);M.point(r[0],r[1])}function f(){M.lineStart(),d=[]}function h(){s(d[0][0],d[0][1]),M.lineEnd();var n,t=M.clean(),r=x.buffer(),e=r.length;if(d.pop(),p.push(d),d=null,e)if(1&t){n=r[0];var u,e=n.length-1,o=-1;if(e>0){for(_||(i.polygonStart(),_=!0),i.lineStart();e>++o;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else e>1&&2&t&&r.push(r.pop().concat(r.shift())),g.push(r.filter(zr))}var g,p,d,v=t(i),m=u.invert(e[0],e[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=Ko.merge(g);var n=Fr(m,p);g.length?(_||(i.polygonStart(),_=!0),Nr(g,Rr,n,r,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),r(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),r(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=jr(),M=t(x),_=!1;return y}}function zr(n){return n.length>1}function jr(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,r){n.push([t,r])},lineEnd:v,buffer:function(){var r=t;return t=[],n=null,r},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Rr(n,t){return(0>(n=n.x)[0]?n[1]-La-Ta:La-n[1])-(0>(t=t.x)[0]?t[1]-La-Ta:La-t[1])}function Fr(n,t){var r=n[0],e=n[1],u=[Math.sin(r),-Math.cos(r),0],i=0,o=0;mc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+Na/4,p=Math.sin(g),d=Math.cos(g),v=1;;){v===s&&(v=0),n=l[v];var m=n[0],y=n[1]/2+Na/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,k=w>Na,S=p*x;if(mc.add(Math.atan2(S*b*Math.sin(w),d*M+S*Math.cos(w))),i+=k?_+b*qa:_,k^h>=r^m>=r){var E=mr(dr(f),dr(n));Mr(E);var A=mr(u,E);Mr(A);var C=(k^_>=0?-1:1)*K(A[2]);(e>C||e===C&&(E[0]||E[1]))&&(o+=k^_>=0?1:-1)}if(!v++)break;h=m,p=x,d=M,f=n}}return(-Ta>i||Ta>i&&0>mc)^1&o}function Dr(n){var t,r=0/0,e=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Na:-Na,c=ha(i-r);Ta>ha(c-Na)?(n.point(r,e=(e+o)/2>0?La:-La),n.point(u,e),n.lineEnd(),n.lineStart(),n.point(a,e),n.point(i,e),t=0):u!==a&&c>=Na&&(Ta>ha(r-u)&&(r-=u*Ta),Ta>ha(i-a)&&(i-=a*Ta),e=Pr(r,e,i,o),n.point(u,e),n.lineEnd(),n.lineStart(),n.point(a,e),t=0),n.point(r=i,e=o),u=a},lineEnd:function(){n.lineEnd(),r=e=0/0},clean:function(){return 2-t}}}function Pr(n,t,r,e){var u,i,o=Math.sin(n-r);return ha(o)>Ta?Math.atan((Math.sin(t)*(i=Math.cos(e))*Math.sin(r)-Math.sin(e)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+e)/2}function Or(n,t,r,e){var u;if(null==n)u=r*La,e.point(-Na,u),e.point(0,u),e.point(Na,u),e.point(Na,0),e.point(Na,-u),e.point(0,-u),e.point(-Na,-u),e.point(-Na,0),e.point(-Na,u);else if(ha(n[0]-t[0])>Ta){var i=n[0]<t[0]?Na:-Na;u=r*i/2,e.point(-i,u),e.point(0,u),e.point(i,u)}else e.point(t[0],t[1])}function Ur(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function r(n){var r,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],d=t(f,h),v=o?d?0:u(f,h):d?u(f+(0>f?Na:-Na),h):0;if(!r&&(l=c=d)&&n.lineStart(),d!==c&&(g=e(r,p),(br(r,g)||br(p,g))&&(p[0]+=Ta,p[1]+=Ta,d=t(p[0],p[1]))),d!==c)s=0,d?(n.lineStart(),g=e(p,r),n.point(g[0],g[1])):(g=e(r,p),n.point(g[0],g[1]),n.lineEnd()),r=g;else if(a&&r&&o^d){var m;v&i||!(m=e(p,r,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!d||r&&br(r,p)||n.point(p[0],p[1]),r=p,c=d,i=v},lineEnd:function(){c&&n.lineEnd(),r=null},clean:function(){return s|(l&&c)<<1}}}function e(n,t,r){var e=dr(n),u=dr(t),o=[1,0,0],a=mr(e,u),c=vr(a,a),l=a[0],s=c-l*l;if(!s)return!r&&n;var f=i*c/s,h=-i*l/s,g=mr(o,a),p=xr(o,f),d=xr(a,h);yr(p,d);var v=g,m=vr(p,v),y=vr(v,v),x=m*m-y*(vr(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=xr(v,(-m-M)/y);if(yr(_,p),_=_r(_),!r)return _;var b,w=n[0],k=t[0],S=n[1],E=t[1];w>k&&(b=w,w=k,k=b);var A=k-w,C=Ta>ha(A-Na),N=C||Ta>A;if(!C&&S>E&&(b=S,S=E,E=b),N?C?S+E>0^_[1]<(Ta>ha(_[0]-w)?S:E):_[1]>=S&&E>=_[1]:A>Na^(_[0]>=w&&k>=_[0])){var q=xr(v,(-m+M)/y);return yr(q,p),[_,_r(q)]}}}function u(t,r){var e=o?n:Na-n,u=0;return-e>t?u|=1:t>e&&(u|=2),-e>r?u|=4:r>e&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ha(i)>Ta,c=pe(n,6*ja);return Tr(t,r,c,o?[0,-n]:[-Na,n-Na])}function Hr(n,t,r,e){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,d=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=r-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,d||!(i>0)){if(i/=d,0>d){if(h>i)return;g>i&&(g=i)}else if(d>0){if(i>g)return;i>h&&(h=i)}if(i=e-l,d||!(0>i)){if(i/=d,0>d){if(i>g)return;i>h&&(h=i)}else if(d>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*d}),1>g&&(u.b={x:c+g*p,y:l+g*d}),u}}}}}}function Ir(n,t,r,e){function u(e,u){return Ta>ha(e[0]-n)?u>0?0:3:Ta>ha(e[0]-r)?u>0?2:1:Ta>ha(e[1]-t)?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var r=u(n,1),e=u(t,1);return r!==e?r-e:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,r=v.length,e=n[1],u=0;r>u;++u)for(var i,o=1,a=v[u],c=a.length,l=a[0];c>o;++o)i=a[o],e>=l[1]?i[1]>e&&J(l,i,n)>0&&++t:e>=i[1]&&0>J(l,i,n)&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||0>o(i,a)^c>0){do l.point(0===s||3===s?n:r,s>1?e:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&r>=u&&i>=t&&e>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){N.point=p,v&&v.push(m=[]),k=!0,w=!1,_=b=0/0}function g(){d&&(p(y,x),M&&w&&A.rejoin(),d.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var r=s(n,t);if(v&&m.push([n,t]),k)y=n,x=t,M=r,k=!1,r&&(a.lineStart(),a.point(n,t));else if(r&&w)a.point(n,t);else{var e={a:{x:_,y:b},b:{x:n,y:t}};C(e)?(w||(a.lineStart(),a.point(e.a.x,e.a.y)),a.point(e.b.x,e.b.y),r||a.lineEnd(),S=!1):r&&(a.lineStart(),a.point(n,t),S=!1)}_=n,b=t,w=r}var d,v,m,y,x,M,_,b,w,k,S,E=a,A=jr(),C=Hr(n,t,r,e),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,d=[],v=[],S=!0},polygonEnd:function(){a=E,d=Ko.merge(d);var t=c([n,e]),r=S&&t,u=d.length;(r||u)&&(a.polygonStart(),r&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Nr(d,i,t,l,a),a.polygonEnd()),d=v=m=null}};return N}}function Yr(n,t){function r(r,e){return r=n(r,e),t(r[0],r[1])}return n.invert&&t.invert&&(r.invert=function(r,e){return r=t.invert(r,e),r&&n.invert(r[0],r[1])}),r}function Br(n){var t=0,r=Na/3,e=oe(n),u=e(t,r);return u.parallels=function(n){return arguments.length?e(t=n[0]*Na/180,r=n[1]*Na/180):[180*(t/Na),180*(r/Na)]},u}function Zr(n,t){function r(n,t){var r=Math.sqrt(i-2*u*Math.sin(t))/u;return[r*Math.sin(n*=u),o-r*Math.cos(n)]}var e=Math.sin(n),u=(e+Math.sin(t))/2,i=1+e*(2*u-e),o=Math.sqrt(i)/u;return r.invert=function(n,t){var r=o-t;return[Math.atan2(n,r)/u,K((i-(n*n+r*r)*u*u)/(2*u))]},r}function Vr(){function n(n,t){jc+=u*n-e*t,e=n,u=t}var t,r,e,u;Oc.point=function(i,o){Oc.point=n,t=e=i,r=u=o},Oc.lineEnd=function(){n(t,r)}}function $r(n,t){Rc>n&&(Rc=n),n>Dc&&(Dc=n),Fc>t&&(Fc=t),t>Pc&&(Pc=t)}function Xr(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=r}function r(n,t){o.push("L",n,",",t)}function e(){a.point=n}function u(){o.push("Z")}var i=Wr(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:e,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=e,a.point=n},pointRadius:function(n){return i=Wr(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Wr(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Jr(n,t){_c+=n,bc+=t,++wc}function Gr(){function n(n,e){var u=n-t,i=e-r,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Sc+=o*(r+e)/2,Ec+=o,Jr(t=n,r=e)}var t,r;Hc.point=function(e,u){Hc.point=n,Jr(t=e,r=u)}}function Kr(){Hc.point=Jr}function Qr(){function n(n,t){var r=n-e,i=t-u,o=Math.sqrt(r*r+i*i);kc+=o*(e+n)/2,Sc+=o*(u+t)/2,Ec+=o,o=u*n-e*t,Ac+=o*(e+n),Cc+=o*(u+t),Nc+=3*o,Jr(e=n,u=t)}var t,r,e,u;Hc.point=function(i,o){Hc.point=n,Jr(t=e=i,r=u=o)},Hc.lineEnd=function(){n(t,r)}}function ne(n){function t(t,r){n.moveTo(t,r),n.arc(t,r,o,0,qa)}function r(t,r){n.moveTo(t,r),a.point=e}function e(t,r){n.lineTo(t,r)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=r},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function te(n){function t(n){return(a?e:r)(n)}function r(t){return ue(t,function(r,e){r=n(r,e),t.point(r[0],r[1])})}function e(t){function r(r,e){r=n(r,e),t.point(r[0],r[1])}function e(){x=0/0,k.point=i,t.lineStart()}function i(r,e){var i=dr([r,e]),o=n(r,e);u(x,M,y,_,b,w,x=o[0],M=o[1],y=r,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){k.point=r,t.lineEnd()}function c(){e(),k.point=l,k.lineEnd=s}function l(n,t){i(f=n,h=t),g=x,p=M,d=_,v=b,m=w,k.point=i}function s(){u(x,M,y,_,b,w,g,p,f,d,v,m,a,t),k.lineEnd=o,o()}var f,h,g,p,d,v,m,y,x,M,_,b,w,k={point:r,lineStart:e,lineEnd:o,polygonStart:function(){t.polygonStart(),k.lineStart=c},polygonEnd:function(){t.polygonEnd(),k.lineStart=e}};return k}function u(t,r,e,a,c,l,s,f,h,g,p,d,v,m){var y=s-t,x=f-r,M=y*y+x*x;
if(M>4*i&&v--){var _=a+g,b=c+p,w=l+d,k=Math.sqrt(_*_+b*b+w*w),S=Math.asin(w/=k),E=Ta>ha(ha(w)-1)||Ta>ha(e-h)?(e+h)/2:Math.atan2(b,_),A=n(E,S),C=A[0],N=A[1],q=C-t,L=N-r,T=x*q-y*L;(T*T/M>i||ha((y*q+x*L)/M-.5)>.3||o>a*g+c*p+l*d)&&(u(t,r,e,a,c,l,C,N,E,_/=k,b/=k,w,v,m),m.point(C,N),u(C,N,E,_,b,w,s,f,h,g,p,d,v,m))}}var i=.5,o=Math.cos(30*ja),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function re(n){var t=te(function(t,r){return n([t*Ra,r*Ra])});return function(n){return ae(t(n))}}function ee(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ie(n){return oe(function(){return n})()}function oe(n){function t(n){return n=a(n[0]*ja,n[1]*ja),[n[0]*h+c,l-n[1]*h]}function r(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Ra,n[1]*Ra]}function e(){a=Yr(o=se(m,y,x),i);var n=i(d,v);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=te(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,d=0,v=0,m=0,y=0,x=0,M=Lc,_=Ct,b=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=ae(M(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Lc):Ur((b=+n)*ja),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ir(n[0][0],n[0][1],n[1][0],n[1][1]):Ct,u()):w},t.scale=function(n){return arguments.length?(h=+n,e()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],e()):[g,p]},t.center=function(n){return arguments.length?(d=n[0]%360*ja,v=n[1]%360*ja,e()):[d*Ra,v*Ra]},t.rotate=function(n){return arguments.length?(m=n[0]%360*ja,y=n[1]%360*ja,x=n.length>2?n[2]%360*ja:0,e()):[m*Ra,y*Ra,x*Ra]},Ko.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&r,e()}}function ae(n){return ue(n,function(t,r){n.point(t*ja,r*ja)})}function ce(n,t){return[n,t]}function le(n,t){return[n>Na?n-qa:-Na>n?n+qa:n,t]}function se(n,t,r){return n?t||r?Yr(he(n),ge(t,r)):he(n):t||r?ge(t,r):le}function fe(n){return function(t,r){return t+=n,[t>Na?t-qa:-Na>t?t+qa:t,r]}}function he(n){var t=fe(n);return t.invert=fe(-n),t}function ge(n,t){function r(n,t){var r=Math.cos(t),a=Math.cos(n)*r,c=Math.sin(n)*r,l=Math.sin(t),s=l*e+a*u;return[Math.atan2(c*i-s*o,a*e-l*u),K(s*i+c*o)]}var e=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return r.invert=function(n,t){var r=Math.cos(t),a=Math.cos(n)*r,c=Math.sin(n)*r,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*e+s*u),K(s*e-a*u)]},r}function pe(n,t){var r=Math.cos(n),e=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=de(r,u),i=de(r,i),(o>0?i>u:u>i)&&(u+=o*qa)):(u=n+o*qa,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=_r([r,-e*Math.cos(s),-e*Math.sin(s)]))[0],l[1])}}function de(n,t){var r=dr(t);r[0]-=n,Mr(r);var e=G(-r[1]);return((0>-r[2]?-e:e)+2*Math.PI-Ta)%(2*Math.PI)}function ve(n,t,r){var e=Ko.range(n,t-Ta,r).concat(t);return function(n){return e.map(function(t){return[n,t]})}}function me(n,t,r){var e=Ko.range(n,t-Ta,r).concat(t);return function(n){return e.map(function(t){return[t,n]})}}function ye(n){return n.source}function xe(n){return n.target}function Me(n,t,r,e){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(e),a=Math.sin(e),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(r),f=o*Math.sin(r),h=2*Math.asin(Math.sqrt(rt(e-t)+u*o*rt(r-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,r=Math.sin(h-n)*g,e=r*c+t*s,u=r*l+t*f,o=r*i+t*a;return[Math.atan2(u,e)*Ra,Math.atan2(o,Math.sqrt(e*e+u*u))*Ra]}:function(){return[n*Ra,t*Ra]};return p.distance=h,p}function _e(){function n(n,u){var i=Math.sin(u*=ja),o=Math.cos(u),a=ha((n*=ja)-t),c=Math.cos(a);Ic+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=e*i-r*o*c)*a),r*i+e*o*c),t=n,r=i,e=o}var t,r,e;Yc.point=function(u,i){t=u*ja,r=Math.sin(i*=ja),e=Math.cos(i),Yc.point=n},Yc.lineEnd=function(){Yc.point=Yc.lineEnd=v}}function be(n,t){function r(t,r){var e=Math.cos(t),u=Math.cos(r),i=n(e*u);return[i*u*Math.sin(t),i*Math.sin(r)]}return r.invert=function(n,r){var e=Math.sqrt(n*n+r*r),u=t(e),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,e*o),Math.asin(e&&r*i/e)]},r}function we(n,t){function r(n,t){o>0?-La+Ta>t&&(t=-La+Ta):t>La-Ta&&(t=La-Ta);var r=o/Math.pow(u(t),i);return[r*Math.sin(i*n),o-r*Math.cos(i*n)]}var e=Math.cos(n),u=function(n){return Math.tan(Na/4+n/2)},i=n===t?Math.sin(n):Math.log(e/Math.cos(t))/Math.log(u(t)/u(n)),o=e*Math.pow(u(n),i)/i;return i?(r.invert=function(n,t){var r=o-t,e=W(i)*Math.sqrt(n*n+r*r);return[Math.atan2(n,r)/i,2*Math.atan(Math.pow(o/e,1/i))-La]},r):Se}function ke(n,t){function r(n,t){var r=i-t;return[r*Math.sin(u*n),i-r*Math.cos(u*n)]}var e=Math.cos(n),u=n===t?Math.sin(n):(e-Math.cos(t))/(t-n),i=e/u+n;return Ta>ha(u)?ce:(r.invert=function(n,t){var r=i-t;return[Math.atan2(n,r)/u,i-W(u)*Math.sqrt(n*n+r*r)]},r)}function Se(n,t){return[n,Math.log(Math.tan(Na/4+t/2))]}function Ee(n){var t,r=ie(n),e=r.scale,u=r.translate,i=r.clipExtent;return r.scale=function(){var n=e.apply(r,arguments);return n===r?t?r.clipExtent(null):r:n},r.translate=function(){var n=u.apply(r,arguments);return n===r?t?r.clipExtent(null):r:n},r.clipExtent=function(n){var o=i.apply(r,arguments);if(o===r){if(t=null==n){var a=Na*e(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},r.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Na/4+t/2)),-n]}function Ce(n){return n[0]}function Ne(n){return n[1]}function qe(n){for(var t=n.length,r=[0,1],e=2,u=2;t>u;u++){for(;e>1&&0>=J(n[r[e-2]],n[r[e-1]],n[u]);)--e;r[e++]=u}return r.slice(0,e)}function Le(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,r){return(r[0]-t[0])*(n[1]-t[1])<(r[1]-t[1])*(n[0]-t[0])}function ze(n,t,r,e){var u=n[0],i=r[0],o=t[0]-u,a=e[0]-i,c=n[1],l=r[1],s=t[1]-c,f=e[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function je(n){var t=n[0],r=n[n.length-1];return!(t[0]-r[0]||t[1]-r[1])}function Re(){ru(this),this.edge=this.site=this.circle=null}function Fe(n){var t=tl.pop()||new Re;return t.site=n,t}function De(n){$e(n),Kc.remove(n),tl.push(n),ru(n)}function Pe(n){var t=n.circle,r=t.x,e=t.cy,u={x:r,y:e},i=n.P,o=n.N,a=[n];De(n);for(var c=i;c.circle&&Ta>ha(r-c.circle.x)&&Ta>ha(e-c.circle.cy);)i=c.P,a.unshift(c),De(c),c=i;a.unshift(c),$e(c);for(var l=o;l.circle&&Ta>ha(r-l.circle.x)&&Ta>ha(e-l.circle.cy);)o=l.N,a.push(l),De(l),l=o;a.push(l),$e(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Qe(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Ge(c.site,l.site,null,u),Ve(c),Ve(l)}function Oe(n){for(var t,r,e,u,i=n.x,o=n.y,a=Kc._;a;)if(e=Ue(a,o)-i,e>Ta)a=a.L;else{if(u=i-He(a,o),!(u>Ta)){e>-Ta?(t=a.P,r=a):u>-Ta?(t=a,r=a.N):t=r=a;break}if(!a.R){t=a;break}a=a.R}var c=Fe(n);if(Kc.insert(t,c),t||r){if(t===r)return $e(t),r=Fe(t.site),Kc.insert(c,r),c.edge=r.edge=Ge(t.site,c.site),Ve(t),Ve(r),void 0;if(!r)return c.edge=Ge(t.site,c.site),void 0;$e(t),$e(r);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=r.site,d=p.x-s,v=p.y-f,m=2*(h*v-g*d),y=h*h+g*g,x=d*d+v*v,M={x:(v*y-g*x)/m+s,y:(h*x-d*y)/m+f};Qe(r.edge,l,p,M),c.edge=Ge(l,n,null,M),r.edge=Ge(n,p,null,M),Ve(t),Ve(r)}}function Ue(n,t){var r=n.site,e=r.x,u=r.y,i=u-t;if(!i)return e;var o=n.P;if(!o)return-1/0;r=o.site;var a=r.x,c=r.y,l=c-t;if(!l)return a;var s=a-e,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+e:(e+a)/2}function He(n,t){var r=n.N;if(r)return Ue(r,t);var e=n.site;return e.y===t?e.x:1/0}function Ie(n){this.site=n,this.edges=[]}function Ye(n){for(var t,r,e,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],d=Gc,v=d.length;v--;)if(i=d[v],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),e=s.x,u=s.y,l=a[++o%c].start(),t=l.x,r=l.y,(ha(e-t)>Ta||ha(u-r)>Ta)&&(a.splice(o,0,new nu(Ke(i.site,s,Ta>ha(e-f)&&p-u>Ta?{x:f,y:Ta>ha(t-f)?r:p}:Ta>ha(u-p)&&h-e>Ta?{x:Ta>ha(r-p)?t:h,y:p}:Ta>ha(e-h)&&u-g>Ta?{x:h,y:Ta>ha(t-h)?r:g}:Ta>ha(u-g)&&e-f>Ta?{x:Ta>ha(r-g)?t:f,y:g}:null),i.site,null)),++c)}function Be(n,t){return t.angle-n.angle}function Ze(){ru(this),this.x=this.y=this.arc=this.site=this.cy=null}function Ve(n){var t=n.P,r=n.N;if(t&&r){var e=t.site,u=n.site,i=r.site;if(e!==i){var o=u.x,a=u.y,c=e.x-o,l=e.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,d=(f*g-l*p)/h,v=(c*p-s*g)/h,f=v+a,m=rl.pop()||new Ze;m.arc=n,m.site=u,m.x=d+o,m.y=f+Math.sqrt(d*d+v*v),m.cy=f,n.circle=m;for(var y=null,x=nl._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}nl.insert(y,m),y||(Qc=m)}}}}function $e(n){var t=n.circle;t&&(t.P||(Qc=t.N),nl.remove(t),rl.push(t),ru(t),n.circle=null)}function Xe(n){for(var t,r=Jc,e=Hr(n[0][0],n[0][1],n[1][0],n[1][1]),u=r.length;u--;)t=r[u],(!We(t,n)||!e(t)||Ta>ha(t.a.x-t.b.x)&&Ta>ha(t.a.y-t.b.y))&&(t.a=t.b=null,r.splice(u,1))}function We(n,t){var r=n.b;if(r)return!0;var e,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,d=f.y,v=(h+p)/2,m=(g+d)/2;if(d===g){if(o>v||v>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:v,y:c};r={x:v,y:l}}else{if(i){if(c>i.y)return}else i={x:v,y:l};r={x:v,y:c}}}else if(e=(h-p)/(d-g),u=m-e*v,-1>e||e>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/e,y:c};r={x:(l-u)/e,y:l}}else{if(i){if(c>i.y)return}else i={x:(l-u)/e,y:l};r={x:(c-u)/e,y:c}}else if(d>g){if(i){if(i.x>=a)return}else i={x:o,y:e*o+u};r={x:a,y:e*a+u}}else{if(i){if(o>i.x)return}else i={x:a,y:e*a+u};r={x:o,y:e*o+u}}return n.a=i,n.b=r,!0}function Je(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ge(n,t,r,e){var u=new Je(n,t);return Jc.push(u),r&&Qe(u,n,t,r),e&&Qe(u,t,n,e),Gc[n.i].edges.push(new nu(u,n,t)),Gc[t.i].edges.push(new nu(u,t,n)),u}function Ke(n,t,r){var e=new Je(n,null);return e.a=t,e.b=r,Jc.push(e),e}function Qe(n,t,r,e){n.a||n.b?n.l===r?n.b=e:n.a=e:(n.a=e,n.l=t,n.r=r)}function nu(n,t,r){var e=n.a,u=n.b;this.edge=n,this.site=t,this.angle=r?Math.atan2(r.y-t.y,r.x-t.x):n.l===t?Math.atan2(u.x-e.x,e.y-u.y):Math.atan2(e.x-u.x,u.y-e.y)}function tu(){this._=null}function ru(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var r=t,e=t.R,u=r.U;u?u.L===r?u.L=e:u.R=e:n._=e,e.U=u,r.U=e,r.R=e.L,r.R&&(r.R.U=r),e.L=r}function uu(n,t){var r=t,e=t.L,u=r.U;u?u.L===r?u.L=e:u.R=e:n._=e,e.U=u,r.U=e,r.L=e.R,r.L&&(r.L.U=r),e.R=r}function iu(n){for(;n.L;)n=n.L;return n}function ou(n,t){var r,e,u,i=n.sort(au).pop();for(Jc=[],Gc=Array(n.length),Kc=new tu,nl=new tu;;)if(u=Qc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==r||i.y!==e)&&(Gc[i.i]=new Ie(i),Oe(i),r=i.x,e=i.y),i=n.pop();else{if(!u)break;Pe(u.arc)}t&&(Xe(t),Ye(t));var o={cells:Gc,edges:Jc};return Kc=nl=Jc=Gc=null,o}function au(n,t){return t.y-n.y||t.x-n.x}function cu(n,t,r){return(n.x-r.x)*(t.y-n.y)-(n.x-t.x)*(r.y-n.y)}function lu(n){return n.x}function su(n){return n.y}function fu(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function hu(n,t,r,e,u,i){if(!n(t,r,e,u,i)){var o=.5*(r+u),a=.5*(e+i),c=t.nodes;c[0]&&hu(n,c[0],r,e,o,a),c[1]&&hu(n,c[1],o,e,u,a),c[2]&&hu(n,c[2],r,a,o,i),c[3]&&hu(n,c[3],o,a,u,i)}}function gu(n,t){n=Ko.rgb(n),t=Ko.rgb(t);var r=n.r,e=n.g,u=n.b,i=t.r-r,o=t.g-e,a=t.b-u;return function(n){return"#"+_t(Math.round(r+i*n))+_t(Math.round(e+o*n))+_t(Math.round(u+a*n))}}function pu(n,t){var r,e={},u={};for(r in n)r in t?e[r]=mu(n[r],t[r]):u[r]=n[r];for(r in t)r in n||(u[r]=t[r]);return function(n){for(r in e)u[r]=e[r](n);return u}}function du(n,t){return t-=n=+n,function(r){return n+t*r}}function vu(n,t){var r,e,u,i=ul.lastIndex=il.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(r=ul.exec(n))&&(e=il.exec(t));)(u=e.index)>i&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(r=r[0])===(e=e[0])?a[o]?a[o]+=e:a[++o]=e:(a[++o]=null,c.push({i:o,x:du(r,e)})),i=il.lastIndex;return t.length>i&&(u=t.substring(i),a[o]?a[o]+=u:a[++o]=u),2>a.length?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var r,e=0;t>e;++e)a[(r=c[e]).i]=r.x(n);return a.join("")})}function mu(n,t){for(var r,e=Ko.interpolators.length;--e>=0&&!(r=Ko.interpolators[e](n,t)););return r}function yu(n,t){var r,e=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(r=0;a>r;++r)e.push(mu(n[r],t[r]));for(;i>r;++r)u[r]=n[r];for(;o>r;++r)u[r]=t[r];return function(n){for(r=0;a>r;++r)u[r]=e[r](n);return u}}function xu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function Mu(n){return function(t){return 1-n(1-t)}}function _u(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function bu(n){return n*n}function wu(n){return n*n*n}function ku(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,r=t*n;return 4*(.5>n?r:3*(n-t)+r-.75)}function Su(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*La)}function Au(n){return Math.pow(2,10*(n-1))}function Cu(n){return 1-Math.sqrt(1-n*n)}function Nu(n,t){var r;return 2>arguments.length&&(t=.45),arguments.length?r=t/qa*Math.asin(1/n):(n=1,r=t/4),function(e){return 1+n*Math.pow(2,-10*e)*Math.sin((e-r)*qa/t)}}function qu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Lu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Tu(n,t){n=Ko.hcl(n),t=Ko.hcl(t);var r=n.h,e=n.c,u=n.l,i=t.h-r,o=t.c-e,a=t.l-u;return isNaN(o)&&(o=0,e=isNaN(e)?t.c:e),isNaN(i)?(i=0,r=isNaN(r)?t.h:r):i>180?i-=360:-180>i&&(i+=360),function(n){return lt(r+i*n,e+o*n,u+a*n)+""}}function zu(n,t){n=Ko.hsl(n),t=Ko.hsl(t);var r=n.h,e=n.s,u=n.l,i=t.h-r,o=t.s-e,a=t.l-u;return isNaN(o)&&(o=0,e=isNaN(e)?t.s:e),isNaN(i)?(i=0,r=isNaN(r)?t.h:r):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(r+i*n,e+o*n,u+a*n)+""}}function ju(n,t){n=Ko.lab(n),t=Ko.lab(t);var r=n.l,e=n.a,u=n.b,i=t.l-r,o=t.a-e,a=t.b-u;return function(n){return ht(r+i*n,e+o*n,u+a*n)+""}}function Ru(n,t){return t-=n,function(r){return Math.round(n+t*r)}}function Fu(n){var t=[n.a,n.b],r=[n.c,n.d],e=Pu(t),u=Du(t,r),i=Pu(Ou(r,t,-u))||0;t[0]*r[1]<r[0]*t[1]&&(t[0]*=-1,t[1]*=-1,e*=-1,u*=-1),this.rotate=(e?Math.atan2(t[1],t[0]):Math.atan2(-r[0],r[1]))*Ra,this.translate=[n.e,n.f],this.scale=[e,i],this.skew=i?Math.atan2(u,i)*Ra:0}function Du(n,t){return n[0]*t[0]+n[1]*t[1]}function Pu(n){var t=Math.sqrt(Du(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Ou(n,t,r){return n[0]+=r*t[0],n[1]+=r*t[1],n}function Uu(n,t){var r,e=[],u=[],i=Ko.transform(n),o=Ko.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(e.push("translate(",null,",",null,")"),u.push({i:1,x:du(a[0],c[0])},{i:3,x:du(a[1],c[1])})):c[0]||c[1]?e.push("translate("+c+")"):e.push(""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:e.push(e.pop()+"rotate(",null,")")-2,x:du(l,s)})):s&&e.push(e.pop()+"rotate("+s+")"),f!=h?u.push({i:e.push(e.pop()+"skewX(",null,")")-2,x:du(f,h)}):h&&e.push(e.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(r=e.push(e.pop()+"scale(",null,",",null,")"),u.push({i:r-4,x:du(g[0],p[0])},{i:r-2,x:du(g[1],p[1])})):(1!=p[0]||1!=p[1])&&e.push(e.pop()+"scale("+p+")"),r=u.length,function(n){for(var t,i=-1;r>++i;)e[(t=u[i]).i]=t.x(n);return e.join("")}}function Hu(n,t){return t=t-(n=+n)?1/(t-n):0,function(r){return(r-n)*t}}function Iu(n,t){return t=t-(n=+n)?1/(t-n):0,function(r){return Math.max(0,Math.min(1,(r-n)*t))}}function Yu(n){for(var t=n.source,r=n.target,e=Zu(t,r),u=[t];t!==e;)t=t.parent,u.push(t);for(var i=u.length;r!==e;)u.splice(i,0,r),r=r.parent;return u}function Bu(n){for(var t=[],r=n.parent;null!=r;)t.push(n),n=r,r=r.parent;return t.push(n),t}function Zu(n,t){if(n===t)return n;for(var r=Bu(n),e=Bu(t),u=r.pop(),i=e.pop(),o=null;u===i;)o=u,u=r.pop(),i=e.pop();return o}function Vu(n){n.fixed|=2}function $u(n){n.fixed&=-7}function Xu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Wu(n){n.fixed&=-5}function Ju(n,t,r){var e=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;a>++c;)i=o[c],null!=i&&(Ju(i,t,r),n.charge+=i.charge,e+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*r[n.point.index];n.charge+=n.pointCharge=l,e+=l*n.point.x,u+=l*n.point.y}n.cx=e/n.charge,n.cy=u/n.charge}function Gu(n,t){return Ko.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ti,n}function Ku(n){return n.children}function Qu(n){return n.value}function ni(n,t){return t.value-n.value}function ti(n){return Ko.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ri(n){return n.x}function ei(n){return n.y}function ui(n,t,r){n.y0=t,n.y=r}function ii(n){return Ko.range(n.length)}function oi(n){for(var t=-1,r=n[0].length,e=[];r>++t;)e[t]=0;return e}function ai(n){for(var t,r=1,e=0,u=n[0][1],i=n.length;i>r;++r)(t=n[r][1])>u&&(e=r,u=t);return e}function ci(n){return n.reduce(li,0)}function li(n,t){return n+t[1]}function si(n,t){return fi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function fi(n,t){for(var r=-1,e=+n[0],u=(n[1]-e)/t,i=[];t>=++r;)i[r]=u*r+e;return i}function hi(n){return[Ko.min(n),Ko.max(n)]}function gi(n,t){return n.parent==t.parent?1:2}function pi(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function di(n){var t,r=n.children;return r&&(t=r.length)?r[t-1]:n._tree.thread}function vi(n,t){var r=n.children;if(r&&(u=r.length))for(var e,u,i=-1;u>++i;)t(e=vi(r[i],t),n)>0&&(n=e);return n}function mi(n,t){return n.x-t.x}function yi(n,t){return t.x-n.x}function xi(n,t){return n.depth-t.depth}function Mi(n,t){function r(n,e){var u=n.children;if(u&&(o=u.length))for(var i,o,a=null,c=-1;o>++c;)i=u[c],r(i,a),a=i;t(n,e)}r(n,null)}function _i(n){for(var t,r=0,e=0,u=n.children,i=u.length;--i>=0;)t=u[i]._tree,t.prelim+=r,t.mod+=r,r+=t.shift+(e+=t.change)}function bi(n,t,r){n=n._tree,t=t._tree;var e=r/(t.number-n.number);n.change+=e,t.change-=e,t.shift+=r,t.prelim+=r,t.mod+=r}function wi(n,t,r){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:r}function ki(n,t){return n.value-t.value}function Si(n,t){var r=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=r,r._pack_prev=t}function Ei(n,t){n._pack_next=t,t._pack_prev=n}function Ai(n,t){var r=t.x-n.x,e=t.y-n.y,u=n.r+t.r;return.999*u*u>r*r+e*e}function Ci(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((r=n.children)&&(l=r.length)){var r,e,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(r.forEach(Ni),e=r[0],e.x=-e.r,e.y=0,t(e),l>1&&(u=r[1],u.x=u.r,u.y=0,t(u),l>2))for(i=r[2],Ti(e,u,i),t(i),Si(e,i),e._pack_prev=i,Si(i,u),u=e._pack_next,o=3;l>o;o++){Ti(e,u,i=r[o]);var p=0,d=1,v=1;for(a=u._pack_next;a!==u;a=a._pack_next,d++)if(Ai(a,i)){p=1;break}if(1==p)for(c=e._pack_prev;c!==a._pack_prev&&!Ai(c,i);c=c._pack_prev,v++);p?(v>d||d==v&&u.r<e.r?Ei(e,u=a):Ei(e=c,u),o--):(Si(e,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,x=0;for(o=0;l>o;o++)i=r[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,r.forEach(qi)}}function Ni(n){n._pack_next=n._pack_prev=n}function qi(n){delete n._pack_next,delete n._pack_prev}function Li(n,t,r,e){var u=n.children;if(n.x=t+=e*n.x,n.y=r+=e*n.y,n.r*=e,u)for(var i=-1,o=u.length;o>++i;)Li(u[i],t,r,e)}function Ti(n,t,r){var e=n.r+r.r,u=t.x-n.x,i=t.y-n.y;if(e&&(u||i)){var o=t.r+r.r,a=u*u+i*i;o*=o,e*=e;var c=.5+(e-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(e+a)-(e-=a)*e-o*o))/(2*a);r.x=n.x+c*u+l*i,r.y=n.y+c*i-l*u}else r.x=n.x+e,r.y=n.y}function zi(n){return 1+Ko.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ri(n){var t=n.children;return t&&t.length?Ri(t[0]):n}function Fi(n){var t,r=n.children;return r&&(t=r.length)?Fi(r[t-1]):n}function Di(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Pi(n,t){var r=n.x+t[3],e=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(r+=u/2,u=0),0>i&&(e+=i/2,i=0),{x:r,y:e,dx:u,dy:i}}function Oi(n){var t=n[0],r=n[n.length-1];return r>t?[t,r]:[r,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Oi(n.range())}function Hi(n,t,r,e){var u=r(n[0],n[1]),i=e(t[0],t[1]);return function(n){return i(u(n))}}function Ii(n,t){var r,e=0,u=n.length-1,i=n[e],o=n[u];return i>o&&(r=e,e=u,u=r,r=i,i=o,o=r),n[e]=t.floor(i),n[u]=t.ceil(o),n}function Yi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:vl}function Bi(n,t,r,e){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());a>=++o;)u.push(r(n[o-1],n[o])),i.push(e(t[o-1],t[o]));return function(t){var r=Ko.bisect(n,t,1,a)-1;return i[r](u[r](t))}}function Zi(n,t,r,e){function u(){var u=Math.min(n.length,t.length)>2?Bi:Hi,c=e?Iu:Hu;return o=u(n,t,c,r),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Ru)},i.clamp=function(n){return arguments.length?(e=n,u()):e},i.interpolate=function(n){return arguments.length?(r=n,u()):r},i.ticks=function(t){return Wi(n,t)},i.tickFormat=function(t,r){return Ji(n,t,r)},i.nice=function(t){return $i(n,t),u()},i.copy=function(){return Zi(n,t,r,e)},u()}function Vi(n,t){return Ko.rebind(n,t,"range","rangeRound","interpolate","clamp")}function $i(n,t){return Ii(n,Yi(Xi(n,t)[2]))}function Xi(n,t){null==t&&(t=10);var r=Oi(n),e=r[1]-r[0],u=Math.pow(10,Math.floor(Math.log(e/t)/Math.LN10)),i=t/e*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),r[0]=Math.ceil(r[0]/u)*u,r[1]=Math.floor(r[1]/u)*u+.5*u,r[2]=u,r}function Wi(n,t){return Ko.range.apply(Ko,Xi(n,t))}function Ji(n,t,r){var e=Xi(n,t);if(r){var u=uc.exec(r);if(u.shift(),"s"===u[8]){var i=Ko.formatPrefix(Math.max(ha(e[0]),ha(e[1])));return u[7]||(u[7]="."+Gi(i.scale(e[2]))),u[8]="f",r=Ko.format(u.join("")),function(n){return r(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Ki(u[8],e)),r=u.join("")}else r=",."+Gi(e[2])+"f";return Ko.format(r)}function Gi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Ki(n,t){var r=Gi(t[2]);return n in ml?Math.abs(r-Gi(Math.max(ha(t[0]),ha(t[1]))))+ +("e"!==n):r-2*("%"===n)}function Qi(n,t,r,e){function u(n){return(r?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return r?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(r=t[0]>=0,n.domain((e=t.map(Number)).map(u)),o):e},o.base=function(r){return arguments.length?(t=+r,n.domain(e.map(u)),o):t},o.nice=function(){var t=Ii(e.map(u),r?Math:xl);return n.domain(t),e=t.map(i),o},o.ticks=function(){var n=Oi(e),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(r){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));s>l++;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;a>o[l];l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return yl;2>arguments.length?t=yl:"function"!=typeof t&&(t=Ko.format(t));var e,a=Math.max(.1,n/o.ticks().length),c=r?(e=1e-12,Math.ceil):(e=-1e-12,Math.floor);return function(n){return a>=n/i(c(u(n)+e))?t(n):""}},o.copy=function(){return Qi(n.copy(),t,r,e)},Vi(o,n)}function no(n,t,r){function e(t){return n(u(t))}var u=to(t),i=to(1/t);return e.invert=function(t){return i(n.invert(t))},e.domain=function(t){return arguments.length?(n.domain((r=t.map(Number)).map(u)),e):r},e.ticks=function(n){return Wi(r,n)},e.tickFormat=function(n,t){return Ji(r,n,t)},e.nice=function(n){return e.domain($i(r,n))},e.exponent=function(o){return arguments.length?(u=to(t=o),i=to(1/t),n.domain(r.map(u)),e):t},e.copy=function(){return no(n.copy(),t,r)},Vi(e,n)}function to(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ro(n,t){function r(r){return i[((u.get(r)||("range"===t.t?u.set(r,n.push(r)):0/0))-1)%i.length]}function e(t,r){return Ko.range(n.length).map(function(n){return t+r*n})}var u,i,o;return r.domain=function(e){if(!arguments.length)return n;n=[],u=new a;for(var i,o=-1,c=e.length;c>++o;)u.has(i=e[o])||u.set(i,n.push(i));return r[t.t].apply(r,t.a)},r.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},r):i},r.rangePoints=function(u,a){2>arguments.length&&(a=0);var c=u[0],l=u[1],s=(l-c)/(Math.max(1,n.length-1)+a);return i=e(2>n.length?(c+l)/2:c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},r},r.rangeBands=function(u,a,c){2>arguments.length&&(a=0),3>arguments.length&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=e(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},r},r.rangeRoundBands=function(u,a,c){2>arguments.length&&(a=0),3>arguments.length&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c)),g=f-s-(n.length-a)*h;return i=e(s+Math.round(g/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},r},r.rangeBand=function(){return o},r.rangeExtent=function(){return Oi(t.a[0])},r.copy=function(){return ro(n,t)},r.domain(n)}function eo(t,e){function u(){var n=0,r=e.length;for(o=[];r>++n;)o[n-1]=Ko.quantile(t,n/r);return i}function i(n){return isNaN(n=+n)?void 0:e[Ko.bisect(o,n)]}var o;return i.domain=function(e){return arguments.length?(t=e.filter(r).sort(n),u()):t},i.range=function(n){return arguments.length?(e=n,u()):e},i.quantiles=function(){return o},i.invertExtent=function(n){return n=e.indexOf(n),0>n?[0/0,0/0]:[n>0?o[n-1]:t[0],o.length>n?o[n]:t[t.length-1]]},i.copy=function(){return eo(t,e)},u()}function uo(n,t,r){function e(t){return r[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=r.length/(t-n),o=r.length-1,e}var i,o;return e.domain=function(r){return arguments.length?(n=+r[0],t=+r[r.length-1],u()):[n,t]},e.range=function(n){return arguments.length?(r=n,u()):r},e.invertExtent=function(t){return t=r.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},e.copy=function(){return uo(n,t,r)},u()}function io(n,t){function r(r){return r>=r?t[Ko.bisect(n,r)]:void 0}return r.domain=function(t){return arguments.length?(n=t,r):n},r.range=function(n){return arguments.length?(t=n,r):t},r.invertExtent=function(r){return r=t.indexOf(r),[n[r-1],n[r]]},r.copy=function(){return io(n,t)},r}function oo(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(r){return arguments.length?(n=r.map(t),t):n},t.ticks=function(t){return Wi(n,t)},t.tickFormat=function(t,r){return Ji(n,t,r)},t.copy=function(){return oo(n)},t}function ao(n){return n.innerRadius}function co(n){return n.outerRadius}function lo(n){return n.startAngle}function so(n){return n.endAngle}function fo(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=At(r),p=At(e);h>++f;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var r=Ce,e=Ne,u=Cr,i=ho,o=i.key,a=.7;return t.x=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(e=n,t):e},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=El.get(n)||ho).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function ho(n){return n.join("L")}function go(n){return ho(n)+"Z"}function po(n){for(var t=0,r=n.length,e=n[0],u=[e[0],",",e[1]];r>++t;)u.push("H",(e[0]+(e=n[t])[0])/2,"V",e[1]);return r>1&&u.push("H",e[0]),u.join("")}function vo(n){for(var t=0,r=n.length,e=n[0],u=[e[0],",",e[1]];r>++t;)u.push("V",(e=n[t])[1],"H",e[0]);return u.join("")}function mo(n){for(var t=0,r=n.length,e=n[0],u=[e[0],",",e[1]];r>++t;)u.push("H",(e=n[t])[0],"V",e[1]);return u.join("")}function yo(n,t){return 4>n.length?ho(n):n[1]+_o(n.slice(1,n.length-1),bo(n,t))}function xo(n,t){return 3>n.length?ho(n):n[0]+_o((n.push(n[0]),n),bo([n[n.length-2]].concat(n,[n[1]]),t))}function Mo(n,t){return 3>n.length?ho(n):n[0]+_o(n,bo(n,t))}function _o(n,t){if(1>t.length||n.length!=t.length&&n.length!=t.length+2)return ho(n);var r=n.length!=t.length,e="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(r&&(e+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,e+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;t.length>l;l++,c++)i=n[c],a=t[l],e+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(r){var s=n[c];e+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return e}function bo(n,t){for(var r,e=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;c>++a;)r=i,i=o,o=n[a],e.push([u*(o[0]-r[0]),u*(o[1]-r[1])]);return e}function wo(n){if(3>n.length)return ho(n);var t=1,r=n.length,e=n[0],u=e[0],i=e[1],o=[u,u,u,(e=n[1])[0]],a=[i,i,i,e[1]],c=[u,",",i,"L",Ao(Nl,o),",",Ao(Nl,a)];for(n.push(n[r-1]);r>=++t;)e=n[t],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Co(c,o,a);return n.pop(),c.push("L",e),c.join("")}function ko(n){if(4>n.length)return ho(n);for(var t,r=[],e=-1,u=n.length,i=[0],o=[0];3>++e;)t=n[e],i.push(t[0]),o.push(t[1]);for(r.push(Ao(Nl,i)+","+Ao(Nl,o)),--e;u>++e;)t=n[e],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Co(r,i,o);return r.join("")}function So(n){for(var t,r,e=-1,u=n.length,i=u+4,o=[],a=[];4>++e;)r=n[e%u],o.push(r[0]),a.push(r[1]);for(t=[Ao(Nl,o),",",Ao(Nl,a)],--e;i>++e;)r=n[e%u],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Co(t,o,a);return t.join("")}function Eo(n,t){var r=n.length-1;if(r)for(var e,u,i=n[0][0],o=n[0][1],a=n[r][0]-i,c=n[r][1]-o,l=-1;r>=++l;)e=n[l],u=l/r,e[0]=t*e[0]+(1-t)*(i+u*a),e[1]=t*e[1]+(1-t)*(o+u*c);return wo(n)}function Ao(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Co(n,t,r){n.push("C",Ao(Al,t),",",Ao(Al,r),",",Ao(Cl,t),",",Ao(Cl,r),",",Ao(Nl,t),",",Ao(Nl,r))}function No(n,t){return(t[1]-n[1])/(t[0]-n[0])}function qo(n){for(var t=0,r=n.length-1,e=[],u=n[0],i=n[1],o=e[0]=No(u,i);r>++t;)e[t]=(o+(o=No(u=i,i=n[t+1])))/2;return e[t]=o,e}function Lo(n){for(var t,r,e,u,i=[],o=qo(n),a=-1,c=n.length-1;c>++a;)t=No(n[a],n[a+1]),Ta>ha(t)?o[a]=o[a+1]=0:(r=o[a]/t,e=o[a+1]/t,u=r*r+e*e,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*r,o[a+1]=u*e));for(a=-1;c>=++a;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return 3>n.length?ho(n):n[0]+_o(n,Lo(n))}function zo(n){for(var t,r,e,u=-1,i=n.length;i>++u;)t=n[u],r=t[0],e=t[1]+kl,t[0]=r*Math.cos(e),t[1]=r*Math.sin(e);return n}function jo(n){function t(t){function c(){d.push("M",a(n(m),f),s,l(n(v.reverse()),f),"Z")}for(var h,g,p,d=[],v=[],m=[],y=-1,x=t.length,M=At(r),_=At(u),b=r===e?function(){return g}:At(e),w=u===i?function(){return p}:At(i);x>++y;)o.call(this,h=t[y],y)?(v.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):v.length&&(c(),v=[],m=[]);return v.length&&c(),d.length?d.join(""):null}var r=Ce,e=Ce,u=0,i=Ne,o=Cr,a=ho,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(r=e=n,t):e},t.x0=function(n){return arguments.length?(r=n,t):r},t.x1=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=El.get(n)||ho).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Ro(n){return n.radius}function Fo(n){return[n.x,n.y]}function Do(n){return function(){var t=n.apply(this,arguments),r=t[0],e=t[1]+kl;return[r*Math.cos(e),r*Math.sin(e)]}}function Po(){return 64}function Oo(){return"circle"}function Uo(n){var t=Math.sqrt(n/Na);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Ho(n,t){return ma(n,Rl),n.id=t,n}function Io(n,t,r,e){var u=n.id;return D(n,"function"==typeof r?function(n,i,o){n.__transition__[u].tween.set(t,e(r.call(n,n.__data__,i,o)))}:(r=e(r),function(n){n.__transition__[u].tween.set(t,r)}))}function Yo(n){return null==n&&(n=""),function(){this.textContent=n
}}function Bo(n,t,r,e){var u=n.__transition__||(n.__transition__={active:0,count:0}),i=u[r];if(!i){var o=e.time;i=u[r]={tween:new a,time:o,ease:e.ease,delay:e.delay,duration:e.duration},++u.count,Ko.timer(function(e){function a(e){return u.active>r?l():(u.active=r,i.event&&i.event.start.call(n,s,t),i.tween.forEach(function(r,e){(e=e.call(n,s,t))&&d.push(e)}),Ko.timer(function(){return p.c=c(e||1)?Cr:c,1},0,o),void 0)}function c(e){if(u.active!==r)return l();for(var o=e/g,a=f(o),c=d.length;c>0;)d[--c].call(n,a);return o>=1?(i.event&&i.event.end.call(n,s,t),l()):void 0}function l(){return--u.count?delete u[r]:delete n.__transition__,1}var s=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=tc,d=[];return p.t=h+o,e>=h?a(e-h):(p.c=a,void 0)},0,o)}}function Zo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function Vo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function $o(n){return n.toISOString()}function Xo(n,t,r){function e(t){return n(t)}function u(n,r){var e=n[1]-n[0],u=e/r,i=Ko.bisect(Bl,u);return i==Bl.length?[t.year,Xi(n.map(function(n){return n/31536e6}),r)[2]]:i?t[u/Bl[i-1]<Bl[i]/u?i-1:i]:[$l,Xi(n,r)[2]]}return e.invert=function(t){return Wo(n.invert(t))},e.domain=function(t){return arguments.length?(n.domain(t),e):n.domain().map(Wo)},e.nice=function(n,t){function r(r){return!isNaN(r)&&!n.range(r,Wo(+r+1),t).length}var i=e.domain(),o=Oi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),e.domain(Ii(i,t>1?{floor:function(t){for(;r(t=n.floor(t));)t=Wo(t-1);return t},ceil:function(t){for(;r(t=n.ceil(t));)t=Wo(+t+1);return t}}:n))},e.ticks=function(n,t){var r=Oi(e.domain()),i=null==n?u(r,10):"number"==typeof n?u(r,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(r[0],Wo(+r[1]+1),1>t?1:t)},e.tickFormat=function(){return r},e.copy=function(){return Xo(n.copy(),t,r)},Vi(e,n)}function Wo(n){return new Date(n)}function Jo(n){return JSON.parse(n.responseText)}function Go(n){var t=ta.createRange();return t.selectNode(ta.body),t.createContextualFragment(n.responseText)}var Ko={version:"3.4.6"};Date.now||(Date.now=function(){return+new Date});var Qo=[].slice,na=function(n){return Qo.call(n)},ta=document,ra=ta.documentElement,ea=window;try{na(ra.childNodes)[0].nodeType}catch(ua){na=function(n){for(var t=n.length,r=Array(t);t--;)r[t]=n[t];return r}}try{ta.createElement("div").style.setProperty("opacity",0,"")}catch(ia){var oa=ea.Element.prototype,aa=oa.setAttribute,ca=oa.setAttributeNS,la=ea.CSSStyleDeclaration.prototype,sa=la.setProperty;oa.setAttribute=function(n,t){aa.call(this,n,t+"")},oa.setAttributeNS=function(n,t,r){ca.call(this,n,t,r+"")},la.setProperty=function(n,t,r){sa.call(this,n,t+"",r)}}Ko.ascending=n,Ko.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Ko.min=function(n,t){var r,e,u=-1,i=n.length;if(1===arguments.length){for(;i>++u&&!(null!=(r=n[u])&&r>=r);)r=void 0;for(;i>++u;)null!=(e=n[u])&&r>e&&(r=e)}else{for(;i>++u&&!(null!=(r=t.call(n,n[u],u))&&r>=r);)r=void 0;for(;i>++u;)null!=(e=t.call(n,n[u],u))&&r>e&&(r=e)}return r},Ko.max=function(n,t){var r,e,u=-1,i=n.length;if(1===arguments.length){for(;i>++u&&!(null!=(r=n[u])&&r>=r);)r=void 0;for(;i>++u;)null!=(e=n[u])&&e>r&&(r=e)}else{for(;i>++u&&!(null!=(r=t.call(n,n[u],u))&&r>=r);)r=void 0;for(;i>++u;)null!=(e=t.call(n,n[u],u))&&e>r&&(r=e)}return r},Ko.extent=function(n,t){var r,e,u,i=-1,o=n.length;if(1===arguments.length){for(;o>++i&&!(null!=(r=u=n[i])&&r>=r);)r=u=void 0;for(;o>++i;)null!=(e=n[i])&&(r>e&&(r=e),e>u&&(u=e))}else{for(;o>++i&&!(null!=(r=u=t.call(n,n[i],i))&&r>=r);)r=void 0;for(;o>++i;)null!=(e=t.call(n,n[i],i))&&(r>e&&(r=e),e>u&&(u=e))}return[r,u]},Ko.sum=function(n,t){var r,e=0,u=n.length,i=-1;if(1===arguments.length)for(;u>++i;)isNaN(r=+n[i])||(e+=r);else for(;u>++i;)isNaN(r=+t.call(n,n[i],i))||(e+=r);return e},Ko.mean=function(n,t){var e,u=0,i=n.length,o=-1,a=i;if(1===arguments.length)for(;i>++o;)r(e=n[o])?u+=e:--a;else for(;i>++o;)r(e=t.call(n,n[o],o))?u+=e:--a;return a?u/a:void 0},Ko.quantile=function(n,t){var r=(n.length-1)*t+1,e=Math.floor(r),u=+n[e-1],i=r-e;return i?u+i*(n[e]-u):u},Ko.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(r),t.length?Ko.quantile(t.sort(n),.5):void 0};var fa=e(n);Ko.bisectLeft=fa.left,Ko.bisect=Ko.bisectRight=fa.right,Ko.bisector=function(t){return e(1===t.length?function(r,e){return n(t(r),e)}:t)},Ko.shuffle=function(n){for(var t,r,e=n.length;e;)r=0|Math.random()*e--,t=n[e],n[e]=n[r],n[r]=t;return n},Ko.permute=function(n,t){for(var r=t.length,e=Array(r);r--;)e[r]=n[t[r]];return e},Ko.pairs=function(n){for(var t,r=0,e=n.length-1,u=n[0],i=Array(0>e?0:e);e>r;)i[r]=[t=u,u=n[++r]];return i},Ko.zip=function(){if(!(e=arguments.length))return[];for(var n=-1,t=Ko.min(arguments,u),r=Array(t);t>++n;)for(var e,i=-1,o=r[n]=Array(e);e>++i;)o[i]=arguments[i][n];return r},Ko.transpose=function(n){return Ko.zip.apply(Ko,n)},Ko.keys=function(n){var t=[];for(var r in n)t.push(r);return t},Ko.values=function(n){var t=[];for(var r in n)t.push(n[r]);return t},Ko.entries=function(n){var t=[];for(var r in n)t.push({key:r,value:n[r]});return t},Ko.merge=function(n){for(var t,r,e,u=n.length,i=-1,o=0;u>++i;)o+=n[i].length;for(r=Array(o);--u>=0;)for(e=n[u],t=e.length;--t>=0;)r[--o]=e[t];return r};var ha=Math.abs;Ko.range=function(n,t,r){if(3>arguments.length&&(r=1,2>arguments.length&&(t=n,n=0)),1/0===(t-n)/r)throw Error("infinite range");var e,u=[],o=i(ha(r)),a=-1;if(n*=o,t*=o,r*=o,0>r)for(;(e=n+r*++a)>t;)u.push(e/o);else for(;t>(e=n+r*++a);)u.push(e/o);return u},Ko.map=function(n){var t=new a;if(n instanceof a)n.forEach(function(n,r){t.set(n,r)});else for(var r in n)t.set(r,n[r]);return t},o(a,{has:c,get:function(n){return this[ga+n]},set:function(n,t){return this[ga+n]=t},remove:l,keys:s,values:function(){var n=[];return this.forEach(function(t,r){n.push(r)}),n},entries:function(){var n=[];return this.forEach(function(t,r){n.push({key:t,value:r})}),n},size:f,empty:h,forEach:function(n){for(var t in this)t.charCodeAt(0)===pa&&n.call(this,t.substring(1),this[t])}});var ga="\0",pa=ga.charCodeAt(0);Ko.nest=function(){function n(t,o,c){if(c>=i.length)return e?e.call(u,o):r?o.sort(r):o;for(var l,s,f,h,g=-1,p=o.length,d=i[c++],v=new a;p>++g;)(h=v.get(l=d(s=o[g])))?h.push(s):v.set(l,[s]);return t?(s=t(),f=function(r,e){s.set(r,n(t,e,c))}):(s={},f=function(r,e){s[r]=n(t,e,c)}),v.forEach(f),s}function t(n,r){if(r>=i.length)return n;var e=[],u=o[r++];return n.forEach(function(n,u){e.push({key:n,values:t(u,r)})}),u?e.sort(function(n,t){return u(n.key,t.key)}):e}var r,e,u={},i=[],o=[];return u.map=function(t,r){return n(r,t,0)},u.entries=function(r){return t(n(Ko.map,r,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return r=n,u},u.rollup=function(n){return e=n,u},u},Ko.set=function(n){var t=new g;if(n)for(var r=0,e=n.length;e>r;++r)t.add(n[r]);return t},o(g,{has:c,add:function(n){return this[ga+n]=!0,n},remove:function(n){return n=ga+n,n in this&&delete this[n]},values:s,size:f,empty:h,forEach:function(n){for(var t in this)t.charCodeAt(0)===pa&&n.call(this,t.substring(1))}}),Ko.behavior={},Ko.rebind=function(n,t){for(var r,e=1,u=arguments.length;u>++e;)n[r=arguments[e]]=p(n,t,t[r]);return n};var da=["webkit","ms","moz","Moz","o","O"];Ko.dispatch=function(){for(var n=new m,t=-1,r=arguments.length;r>++t;)n[arguments[t]]=y(n);return n},m.prototype.on=function(n,t){var r=n.indexOf("."),e="";if(r>=0&&(e=n.substring(r+1),n=n.substring(0,r)),n)return 2>arguments.length?this[n].on(e):this[n].on(e,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(e,null);return this}},Ko.event=null,Ko.requote=function(n){return n.replace(va,"\\$&")};var va=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ma={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var r in t)n[r]=t[r]},ya=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},Ma=ra[d(ra,"matchesSelector")],_a=function(n,t){return Ma.call(n,t)};"function"==typeof Sizzle&&(ya=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,_a=Sizzle.matchesSelector),Ko.selection=function(){return Sa};var ba=Ko.selection.prototype=[];ba.select=function(n){var t,r,e,u,i=[];n=w(n);for(var o=-1,a=this.length;a>++o;){i.push(t=[]),t.parentNode=(e=this[o]).parentNode;for(var c=-1,l=e.length;l>++c;)(u=e[c])?(t.push(r=n.call(u,u.__data__,c,o)),r&&"__data__"in u&&(r.__data__=u.__data__)):t.push(null)}return b(i)},ba.selectAll=function(n){var t,r,e=[];n=k(n);for(var u=-1,i=this.length;i>++u;)for(var o=this[u],a=-1,c=o.length;c>++a;)(r=o[a])&&(e.push(t=na(n.call(r,r.__data__,a,u))),t.parentNode=r);return b(e)};var wa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Ko.ns={prefix:wa,qualify:function(n){var t=n.indexOf(":"),r=n;return t>=0&&(r=n.substring(0,t),n=n.substring(t+1)),wa.hasOwnProperty(r)?{space:wa[r],local:n}:n}},ba.attr=function(n,t){if(2>arguments.length){if("string"==typeof n){var r=this.node();return n=Ko.ns.qualify(n),n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},ba.classed=function(n,t){if(2>arguments.length){if("string"==typeof n){var r=this.node(),e=(n=C(n)).length,u=-1;if(t=r.classList){for(;e>++u;)if(!t.contains(n[u]))return!1}else for(t=r.getAttribute("class");e>++u;)if(!A(n[u]).test(t))return!1;return!0}for(t in n)this.each(N(t,n[t]));return this}return this.each(N(n,t))},ba.style=function(n,t,r){var e=arguments.length;if(3>e){if("string"!=typeof n){2>e&&(t="");for(r in n)this.each(L(r,n[r],t));return this}if(2>e)return ea.getComputedStyle(this.node(),null).getPropertyValue(n);r=""}return this.each(L(n,t,r))},ba.property=function(n,t){if(2>arguments.length){if("string"==typeof n)return this.node()[n];for(t in n)this.each(T(t,n[t]));return this}return this.each(T(n,t))},ba.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ba.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ba.append=function(n){return n=z(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ba.insert=function(n,t){return n=z(n),t=w(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ba.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ba.data=function(n,t){function r(n,r){var e,u,i,o=n.length,f=r.length,h=Math.min(o,f),g=Array(f),p=Array(f),d=Array(o);if(t){var v,m=new a,y=new a,x=[];for(e=-1;o>++e;)v=t.call(u=n[e],u.__data__,e),m.has(v)?d[e]=u:m.set(v,u),x.push(v);for(e=-1;f>++e;)v=t.call(r,i=r[e],e),(u=m.get(v))?(g[e]=u,u.__data__=i):y.has(v)||(p[e]=j(i)),y.set(v,i),m.remove(v);for(e=-1;o>++e;)m.has(x[e])&&(d[e]=n[e])}else{for(e=-1;h>++e;)u=n[e],i=r[e],u?(u.__data__=i,g[e]=u):p[e]=j(i);for(;f>e;++e)p[e]=j(r[e]);for(;o>e;++e)d[e]=n[e]}p.update=g,p.parentNode=g.parentNode=d.parentNode=n.parentNode,c.push(p),l.push(g),s.push(d)}var e,u,i=-1,o=this.length;if(!arguments.length){for(n=Array(o=(e=this[0]).length);o>++i;)(u=e[i])&&(n[i]=u.__data__);return n}var c=P([]),l=b([]),s=b([]);if("function"==typeof n)for(;o>++i;)r(e=this[i],n.call(e,e.parentNode.__data__,i));else for(;o>++i;)r(e=this[i],n);return l.enter=function(){return c},l.exit=function(){return s},l},ba.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ba.filter=function(n){var t,r,e,u=[];"function"!=typeof n&&(n=R(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(r=this[i]).parentNode;for(var a=0,c=r.length;c>a;a++)(e=r[a])&&n.call(e,e.__data__,a,i)&&t.push(e)}return b(u)},ba.order=function(){for(var n=-1,t=this.length;t>++n;)for(var r,e=this[n],u=e.length-1,i=e[u];--u>=0;)(r=e[u])&&(i&&i!==r.nextSibling&&i.parentNode.insertBefore(r,i),i=r);return this},ba.sort=function(n){n=F.apply(this,arguments);for(var t=-1,r=this.length;r>++t;)this[t].sort(n);return this.order()},ba.each=function(n){return D(this,function(t,r,e){n.call(t,t.__data__,r,e)})},ba.call=function(n){var t=na(arguments);return n.apply(t[0]=this,t),this},ba.empty=function(){return!this.node()},ba.node=function(){for(var n=0,t=this.length;t>n;n++)for(var r=this[n],e=0,u=r.length;u>e;e++){var i=r[e];if(i)return i}return null},ba.size=function(){var n=0;return this.each(function(){++n}),n};var ka=[];Ko.selection.enter=P,Ko.selection.enter.prototype=ka,ka.append=ba.append,ka.empty=ba.empty,ka.node=ba.node,ka.call=ba.call,ka.size=ba.size,ka.select=function(n){for(var t,r,e,u,i,o=[],a=-1,c=this.length;c>++a;){e=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;s>++l;)(i=u[l])?(t.push(e[l]=r=n.call(u.parentNode,i.__data__,l,a)),r.__data__=i.__data__):t.push(null)}return b(o)},ka.insert=function(n,t){return 2>arguments.length&&(t=O(this)),ba.insert.call(this,n,t)},ba.transition=function(){for(var n,t,r=Ll||++Fl,e=[],u=Tl||{time:Date.now(),ease:ku,delay:0,duration:250},i=-1,o=this.length;o>++i;){e.push(n=[]);for(var a=this[i],c=-1,l=a.length;l>++c;)(t=a[c])&&Bo(t,c,r,u),n.push(t)}return Ho(e,r)},ba.interrupt=function(){return this.each(U)},Ko.select=function(n){var t=["string"==typeof n?ya(n,ta):n];return t.parentNode=ra,b([t])},Ko.selectAll=function(n){var t=na("string"==typeof n?xa(n,ta):n);return t.parentNode=ra,b([t])};var Sa=Ko.select(ra);ba.on=function(n,t,r){var e=arguments.length;if(3>e){if("string"!=typeof n){2>e&&(t=!1);for(r in n)this.each(H(r,n[r],t));return this}if(2>e)return(e=this.node()["__on"+n])&&e._;r=!1}return this.each(H(n,t,r))};var Ea=Ko.map({mouseenter:"mouseover",mouseleave:"mouseout"});Ea.forEach(function(n){"on"+n in ta&&Ea.remove(n)});var Aa="onselectstart"in ta?null:d(ra.style,"userSelect"),Ca=0;Ko.mouse=function(n){return Z(n,M())},Ko.touches=function(n,t){return 2>arguments.length&&(t=M().touches),t?na(t).map(function(t){var r=Z(n,t);return r.identifier=t.identifier,r}):[]},Ko.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,r,e=t(h,d);e&&(n=e[0]-x[0],r=e[1]-x[1],p|=n|r,x=e,g({type:"drag",x:e[0]+l[0],y:e[1]+l[1],dx:n,dy:r}))}function c(){t(h,d)&&(m.on(i+v,null).on(o+v,null),y(p&&Ko.event.target===f),g({type:"dragend"}))}var l,s=this,f=Ko.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,d=n(),v=".drag"+(null==d?"":"-"+d),m=Ko.select(u()).on(i+v,a).on(o+v,c),y=B(),x=t(h,d);e?(l=e.apply(s,arguments),l=[l.x-x[0],l.y-x[1]]):l=[0,0],g({type:"dragstart"})}}var r=_(n,"drag","dragstart","dragend"),e=null,u=t(v,Ko.mouse,X,"mousemove","mouseup"),i=t(V,Ko.touch,$,"touchmove","touchend");return n.origin=function(t){return arguments.length?(e=t,n):e},Ko.rebind(n,r,"on")};var Na=Math.PI,qa=2*Na,La=Na/2,Ta=1e-6,za=Ta*Ta,ja=Na/180,Ra=180/Na,Fa=Math.SQRT2,Da=2,Pa=4;Ko.interpolateZoom=function(n,t){function r(n){var t=n*y;if(m){var r=nt(d),o=i/(Da*h)*(r*tt(Fa*t+d)-Q(d));return[e+o*l,u+o*s,i*r/nt(Fa*t+d)]}return[e+n*l,u+n*s,i*Math.exp(Fa*t)]}var e=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-e,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Pa*f)/(2*i*Da*h),p=(c*c-i*i-Pa*f)/(2*c*Da*h),d=Math.log(Math.sqrt(g*g+1)-g),v=Math.log(Math.sqrt(p*p+1)-p),m=v-d,y=(m||Math.log(c/i))/Fa;return r.duration=1e3*y,r},Ko.behavior.zoom=function(){function n(n){n.on(A,l).on(Ha+".zoom",f).on(C,h).on("dblclick.zoom",g).on(q,s)}function t(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function e(n){k.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function i(){M&&M.domain(y.range().map(function(n){return(n-k.x)/k.k}).map(y.invert)),w&&w.domain(b.range().map(function(n){return(n-k.y)/k.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function c(n){n({type:"zoomend"})}function l(){function n(){s=1,u(Ko.mouse(e),g),a(l)}function r(){f.on(C,ea===e?h:null).on(N,null),p(s&&Ko.event.target===i),c(l)}var e=this,i=Ko.event.target,l=L.of(e,arguments),s=0,f=Ko.select(ea).on(C,n).on(N,r),g=t(Ko.mouse(e)),p=B();U.call(e),o(l)}function s(){function n(){var n=Ko.touches(g);return h=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=t(n))}),n}function r(){for(var t=Ko.event.changedTouches,r=0,i=t.length;i>r;++r)d[t[r].identifier]=null;var o=n(),c=Date.now();if(1===o.length){if(500>c-m){var l=o[0],s=d[l.identifier];e(2*k.k),u(l,s),x(),a(p)}m=c}else if(o.length>1){var l=o[0],f=o[1],h=l[0]-f[0],g=l[1]-f[1];v=h*h+g*g}}function i(){for(var n,t,r,i,o=Ko.touches(g),c=0,l=o.length;l>c;++c,i=null)if(r=o[c],i=d[r.identifier]){if(t)break;n=r,t=i}if(i){var s=(s=r[0]-n[0])*s+(s=r[1]-n[1])*s,f=v&&Math.sqrt(s/v);n=[(n[0]+r[0])/2,(n[1]+r[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],e(f*h)}m=null,u(n,t),a(p)}function f(){if(Ko.event.touches.length){for(var t=Ko.event.changedTouches,r=0,e=t.length;e>r;++r)delete d[t[r].identifier];for(var u in d)return void n()}b.on(y,null),w.on(A,l).on(q,s),S(),c(p)}var h,g=this,p=L.of(g,arguments),d={},v=0,y=".zoom-"+Ko.event.changedTouches[0].identifier,M="touchmove"+y,_="touchend"+y,b=Ko.select(Ko.event.target).on(M,i).on(_,f),w=Ko.select(g).on(A,null).on(q,r),S=B();U.call(g),r(),o(p)}function f(){var n=L.of(this,arguments);v?clearTimeout(v):(U.call(this),o(n)),v=setTimeout(function(){v=null,c(n)},50),x();var r=d||Ko.mouse(this);p||(p=t(r)),e(Math.pow(2,.002*Oa())*k.k),u(r,p),a(n)}function h(){p=null}function g(){var n=L.of(this,arguments),r=Ko.mouse(this),i=t(r),l=Math.log(k.k)/Math.LN2;o(n),e(Math.pow(2,Ko.event.shiftKey?Math.ceil(l)-1:Math.floor(l)+1)),u(r,i),a(n),c(n)}var p,d,v,m,y,M,b,w,k={x:0,y:0,k:1},S=[960,500],E=Ua,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",q="touchstart.zoom",L=_(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=k;Ll?Ko.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var r=S[0],e=S[1],u=r/2,i=e/2,o=Ko.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,r/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,r/t.k]);return function(t){var e=o(t),c=r/e[2];this.__chart__=k={x:u-e[0]*c,y:i-e[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=k,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},i(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},i(),n):k.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Ua:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(d=t&&[+t[0],+t[1]],n):d},n.size=function(t){return arguments.length?(S=t&&[+t[0],+t[1]],n):S},n.x=function(t){return arguments.length?(M=t,y=t.copy(),k={x:0,y:0,k:1},n):M},n.y=function(t){return arguments.length?(w=t,b=t.copy(),k={x:0,y:0,k:1},n):w},Ko.rebind(n,L,"on")};var Oa,Ua=[0,1/0],Ha="onwheel"in ta?(Oa=function(){return-Ko.event.deltaY*(Ko.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ta?(Oa=function(){return Ko.event.wheelDelta},"mousewheel"):(Oa=function(){return-Ko.event.detail},"MozMousePixelScroll");et.prototype.toString=function(){return this.rgb()+""},Ko.hsl=function(n,t,r){return 1===arguments.length?n instanceof it?ut(n.h,n.s,n.l):bt(""+n,wt,ut):ut(+n,+t,+r)};var Ia=it.prototype=new et;Ia.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),ut(this.h,this.s,this.l/n)},Ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),ut(this.h,this.s,n*this.l)},Ia.rgb=function(){return ot(this.h,this.s,this.l)},Ko.hcl=function(n,t,r){return 1===arguments.length?n instanceof ct?at(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=kt((n=Ko.rgb(n)).r,n.g,n.b)).l,n.a,n.b):at(+n,+t,+r)};var Ya=ct.prototype=new et;Ya.brighter=function(n){return at(this.h,this.c,Math.min(100,this.l+Ba*(arguments.length?n:1)))},Ya.darker=function(n){return at(this.h,this.c,Math.max(0,this.l-Ba*(arguments.length?n:1)))},Ya.rgb=function(){return lt(this.h,this.c,this.l).rgb()},Ko.lab=function(n,t,r){return 1===arguments.length?n instanceof ft?st(n.l,n.a,n.b):n instanceof ct?lt(n.l,n.c,n.h):kt((n=Ko.rgb(n)).r,n.g,n.b):st(+n,+t,+r)};var Ba=18,Za=.95047,Va=1,$a=1.08883,Xa=ft.prototype=new et;Xa.brighter=function(n){return st(Math.min(100,this.l+Ba*(arguments.length?n:1)),this.a,this.b)},Xa.darker=function(n){return st(Math.max(0,this.l-Ba*(arguments.length?n:1)),this.a,this.b)},Xa.rgb=function(){return ht(this.l,this.a,this.b)},Ko.rgb=function(n,t,r){return 1===arguments.length?n instanceof Mt?xt(n.r,n.g,n.b):bt(""+n,xt,ot):xt(~~n,~~t,~~r)};var Wa=Mt.prototype=new et;Wa.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,r=this.g,e=this.b,u=30;return t||r||e?(t&&u>t&&(t=u),r&&u>r&&(r=u),e&&u>e&&(e=u),xt(Math.min(255,~~(t/n)),Math.min(255,~~(r/n)),Math.min(255,~~(e/n)))):xt(u,u,u)},Wa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),xt(~~(n*this.r),~~(n*this.g),~~(n*this.b))},Wa.hsl=function(){return wt(this.r,this.g,this.b)},Wa.toString=function(){return"#"+_t(this.r)+_t(this.g)+_t(this.b)};var Ja=Ko.map({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,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});Ja.forEach(function(n,t){Ja.set(n,mt(t))}),Ko.functor=At,Ko.xhr=Nt(Ct),Ko.dsv=function(n,t){function r(n,r,i){3>arguments.length&&(i=r,r=null);var o=qt(n,t,null==r?e:u(r),i);return o.row=function(n){return arguments.length?o.response(null==(r=n)?e:u(n)):r},o}function e(n){return r.parse(n.responseText)}function u(n){return function(t){return r.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return r.parse=function(n,t){var e;return r.parseRows(n,function(n,r){if(e)return e(n,r-1);var u=Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");e=t?function(n,r){return t(u(n),r)}:u})},r.parseRows=function(n,t){function r(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var r=t;l>r++;)if(34===n.charCodeAt(r)){if(34!==n.charCodeAt(r+1))break;++r}s=r+2;var e=n.charCodeAt(r+1);return 13===e?(u=!0,10===n.charCodeAt(r+2)&&++s):10===e&&(u=!0),n.substring(t+1,r).replace(/""/g,'"')}for(;l>s;){var e=n.charCodeAt(s++),a=1;if(10===e)u=!0;else if(13===e)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(e!==c)continue;return n.substring(t,s-a)}return n.substring(t)}for(var e,u,i={},o={},a=[],l=n.length,s=0,f=0;(e=r())!==o;){for(var h=[];e!==i&&e!==o;)h.push(e),e=r();(!t||(h=t(h,f++)))&&a.push(h)}return a},r.format=function(t){if(Array.isArray(t[0]))return r.formatRows(t);var e=new g,u=[];return t.forEach(function(n){for(var t in n)e.has(t)||u.push(e.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},r.formatRows=function(n){return n.map(i).join("\n")},r},Ko.csv=Ko.dsv(",","text/csv"),Ko.tsv=Ko.dsv(" ","text/tab-separated-values"),Ko.touch=function(n,t,r){if(3>arguments.length&&(r=t,t=M().changedTouches),t)for(var e,u=0,i=t.length;i>u;++u)if((e=t[u]).identifier===r)return Z(n,e)};var Ga,Ka,Qa,nc,tc,rc=ea[d(ea,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Ko.timer=function(n,t,r){var e=arguments.length;2>e&&(t=0),3>e&&(r=Date.now());var u=r+t,i={c:n,t:u,f:!1,n:null};Ka?Ka.n=i:Ga=i,Ka=i,Qa||(nc=clearTimeout(nc),Qa=1,rc(Tt))},Ko.timer.flush=function(){zt(),jt()},Ko.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var ec=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Ft);Ko.formatPrefix=function(n,t){var r=0;return n&&(0>n&&(n*=-1),t&&(n=Ko.round(n,Rt(n,t))),r=1+Math.floor(1e-12+Math.log(n)/Math.LN10),r=Math.max(-24,Math.min(24,3*Math.floor((r-1)/3)))),ec[8+r/3]};var uc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ic=Ko.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Ko.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),oc=Ko.time={},ac=Date;Ot.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){cc.setUTCDate.apply(this._,arguments)},setDay:function(){cc.setUTCDay.apply(this._,arguments)},setFullYear:function(){cc.setUTCFullYear.apply(this._,arguments)},setHours:function(){cc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){cc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){cc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){cc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){cc.setUTCSeconds.apply(this._,arguments)},setTime:function(){cc.setTime.apply(this._,arguments)}};var cc=Date.prototype;oc.year=Ut(function(n){return n=oc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),oc.years=oc.year.range,oc.years.utc=oc.year.utc.range,oc.day=Ut(function(n){var t=new ac(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),oc.days=oc.day.range,oc.days.utc=oc.day.utc.range,oc.dayOfYear=function(n){var t=oc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var r=oc[n]=Ut(function(n){return(n=oc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var r=oc.year(n).getDay();return Math.floor((oc.dayOfYear(n)+(r+t)%7)/7)-(r!==t)});oc[n+"s"]=r.range,oc[n+"s"].utc=r.utc.range,oc[n+"OfYear"]=function(n){var r=oc.year(n).getDay();return Math.floor((oc.dayOfYear(n)+(r+t)%7)/7)}}),oc.week=oc.sunday,oc.weeks=oc.sunday.range,oc.weeks.utc=oc.sunday.utc.range,oc.weekOfYear=oc.sundayOfYear;var lc={"-":"",_:" ",0:"0"},sc=/^\s*\d+/,fc=/^%/;Ko.locale=function(n){return{numberFormat:Dt(n),timeFormat:It(n)}};var hc=Ko.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",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"]});Ko.format=hc.numberFormat,Ko.geo={},lr.prototype={s:0,t:0,add:function(n){sr(n,this.t,gc),sr(gc.s,this.s,this),this.s?this.t+=gc.t:this.s=gc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var gc=new lr;Ko.geo.stream=function(n,t){n&&pc.hasOwnProperty(n.type)?pc[n.type](n,t):fr(n,t)};var pc={Feature:function(n,t){fr(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,e=-1,u=r.length;u>++e;)fr(r[e].geometry,t)}},dc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var r=n.coordinates,e=-1,u=r.length;u>++e;)n=r[e],t.point(n[0],n[1],n[2])},LineString:function(n,t){hr(n.coordinates,t,0)},MultiLineString:function(n,t){for(var r=n.coordinates,e=-1,u=r.length;u>++e;)hr(r[e],t,0)},Polygon:function(n,t){gr(n.coordinates,t)},MultiPolygon:function(n,t){for(var r=n.coordinates,e=-1,u=r.length;u>++e;)gr(r[e],t)},GeometryCollection:function(n,t){for(var r=n.geometries,e=-1,u=r.length;u>++e;)fr(r[e],t)}};Ko.geo.area=function(n){return vc=0,Ko.geo.stream(n,yc),vc};var vc,mc=new lr,yc={sphere:function(){vc+=4*Na},point:v,lineStart:v,lineEnd:v,polygonStart:function(){mc.reset(),yc.lineStart=pr},polygonEnd:function(){var n=2*mc;vc+=0>n?4*Na+n:n,yc.lineStart=yc.lineEnd=yc.point=v}};Ko.geo.bounds=function(){function n(n,t){x.push(M=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,r){var e=dr([t*ja,r*ja]);if(m){var u=mr(m,e),i=[u[1],-u[0],0],o=mr(i,u);Mr(o),o=_r(o);var c=t-p,l=c>0?1:-1,d=o[0]*Ra*l,v=ha(c)>180;if(v^(d>l*p&&l*t>d)){var y=o[1]*Ra;y>g&&(g=y)}else if(d=(d+360)%360-180,v^(d>l*p&&l*t>d)){var y=-o[1]*Ra;f>y&&(f=y)}else f>r&&(f=r),r>g&&(g=r);v?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)
}else n(t,r);m=e,p=t}function r(){_.point=t}function e(){M[0]=s,M[1]=h,_.point=n,m=null}function u(n,r){if(m){var e=n-p;y+=ha(e)>180?e+(e>0?360:-360):e}else d=n,v=r;yc.point(n,r),t(n,r)}function i(){yc.lineStart()}function o(){u(d,v),yc.lineEnd(),ha(y)>Ta&&(s=-(h=180)),M[0]=s,M[1]=h,m=null}function a(n,t){return 0>(t-=n)?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?n>=t[0]&&t[1]>=n:t[0]>n||n>t[1]}var s,f,h,g,p,d,v,m,y,x,M,_={point:n,lineStart:r,lineEnd:e,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,yc.polygonStart()},polygonEnd:function(){yc.polygonEnd(),_.point=n,_.lineStart=r,_.lineEnd=e,0>mc?(s=-(h=180),f=-(g=90)):y>Ta?g=90:-Ta>y&&(f=-90),M[0]=s,M[1]=h}};return function(n){g=h=-(s=f=1/0),x=[],Ko.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var r,e=1,u=x[0],i=[u];t>e;++e)r=x[e],l(r[0],u)||l(r[1],u)?(a(u[0],r[1])>a(u[0],u[1])&&(u[1]=r[1]),a(r[0],u[1])>a(u[0],u[1])&&(u[0]=r[0])):i.push(u=r);for(var o,r,p=-1/0,t=i.length-1,e=0,u=i[t];t>=e;u=r,++e)r=i[e],(o=a(u[1],r[0]))>p&&(p=o,s=r[0],h=u[1])}return x=M=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),Ko.geo.centroid=function(n){xc=Mc=_c=bc=wc=kc=Sc=Ec=Ac=Cc=Nc=0,Ko.geo.stream(n,qc);var t=Ac,r=Cc,e=Nc,u=t*t+r*r+e*e;return za>u&&(t=kc,r=Sc,e=Ec,Ta>Mc&&(t=_c,r=bc,e=wc),u=t*t+r*r+e*e,za>u)?[0/0,0/0]:[Math.atan2(r,t)*Ra,K(e/Math.sqrt(u))*Ra]};var xc,Mc,_c,bc,wc,kc,Sc,Ec,Ac,Cc,Nc,qc={sphere:v,point:wr,lineStart:Sr,lineEnd:Er,polygonStart:function(){qc.lineStart=Ar},polygonEnd:function(){qc.lineStart=Sr}},Lc=Tr(Cr,Dr,Or,[-Na,-Na/2]),Tc=1e9;Ko.geo.clipExtent=function(){var n,t,r,e,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ir(n=+a[0][0],t=+a[0][1],r=+a[1][0],e=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[r,e]]}};return o.extent([[0,0],[960,500]])},(Ko.geo.conicEqualArea=function(){return Br(Zr)}).raw=Zr,Ko.geo.albers=function(){return Ko.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Ko.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,r(i,o),t||(e(i,o),t)||u(i,o),t}var t,r,e,u,i=Ko.geo.albers(),o=Ko.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Ko.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,r){t=[n,r]}};return n.invert=function(n){var t=i.scale(),r=i.translate(),e=(n[0]-r[0])/t,u=(n[1]-r[1])/t;return(u>=.12&&.234>u&&e>=-.425&&-.214>e?o:u>=.166&&.234>u&&e>=-.214&&-.115>e?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),r=o.stream(n),e=a.stream(n);return{point:function(n,u){t.point(n,u),r.point(n,u),e.point(n,u)},sphere:function(){t.sphere(),r.sphere(),e.sphere()},lineStart:function(){t.lineStart(),r.lineStart(),e.lineStart()},lineEnd:function(){t.lineEnd(),r.lineEnd(),e.lineEnd()},polygonStart:function(){t.polygonStart(),r.polygonStart(),e.polygonStart()},polygonEnd:function(){t.polygonEnd(),r.polygonEnd(),e.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return r=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,e=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ta,f+.12*l+Ta],[s-.214*l-Ta,f+.234*l-Ta]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ta,f+.166*l+Ta],[s-.115*l-Ta,f+.234*l-Ta]]).stream(c).point,n},n.scale(1070)};var zc,jc,Rc,Fc,Dc,Pc,Oc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){jc=0,Oc.lineStart=Vr},polygonEnd:function(){Oc.lineStart=Oc.lineEnd=Oc.point=v,zc+=ha(jc/2)}},Uc={point:$r,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Hc={point:Jr,lineStart:Gr,lineEnd:Kr,polygonStart:function(){Hc.lineStart=Qr},polygonEnd:function(){Hc.point=Jr,Hc.lineStart=Gr,Hc.lineEnd=Kr}};Ko.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Ko.geo.stream(n,o)),i.result()}function t(){return o=null,n}var r,e,u,i,o,a=4.5;return n.area=function(n){return zc=0,Ko.geo.stream(n,u(Oc)),zc},n.centroid=function(n){return _c=bc=wc=kc=Sc=Ec=Ac=Cc=Nc=0,Ko.geo.stream(n,u(Hc)),Nc?[Ac/Nc,Cc/Nc]:Ec?[kc/Ec,Sc/Ec]:wc?[_c/wc,bc/wc]:[0/0,0/0]},n.bounds=function(n){return Dc=Pc=-(Rc=Fc=1/0),Ko.geo.stream(n,u(Uc)),[[Rc,Fc],[Dc,Pc]]},n.projection=function(n){return arguments.length?(u=(r=n)?n.stream||re(n):Ct,t()):r},n.context=function(n){return arguments.length?(i=null==(e=n)?new Xr:new ne(n),"function"!=typeof a&&i.pointRadius(a),t()):e},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Ko.geo.albersUsa()).context(null)},Ko.geo.transform=function(n){return{stream:function(t){var r=new ee(t);for(var e in n)r[e]=n[e];return r}}},ee.prototype={point:function(n,t){this.stream.point(n,t)},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()}},Ko.geo.projection=ie,Ko.geo.projectionMutator=oe,(Ko.geo.equirectangular=function(){return ie(ce)}).raw=ce.invert=ce,Ko.geo.rotation=function(n){function t(t){return t=n(t[0]*ja,t[1]*ja),t[0]*=Ra,t[1]*=Ra,t}return n=se(n[0]%360*ja,n[1]*ja,n.length>2?n[2]*ja:0),t.invert=function(t){return t=n.invert(t[0]*ja,t[1]*ja),t[0]*=Ra,t[1]*=Ra,t},t},le.invert=ce,Ko.geo.circle=function(){function n(){var n="function"==typeof e?e.apply(this,arguments):e,t=se(-n[0]*ja,-n[1]*ja,0).invert,u=[];return r(null,null,1,{point:function(n,r){u.push(n=t(n,r)),n[0]*=Ra,n[1]*=Ra}}),{type:"Polygon",coordinates:[u]}}var t,r,e=[0,0],u=6;return n.origin=function(t){return arguments.length?(e=t,n):e},n.angle=function(e){return arguments.length?(r=pe((t=+e)*ja,u*ja),n):t},n.precision=function(e){return arguments.length?(r=pe(t*ja,(u=+e)*ja),n):u},n.angle(90)},Ko.geo.distance=function(n,t){var r,e=(t[0]-n[0])*ja,u=n[1]*ja,i=t[1]*ja,o=Math.sin(e),a=Math.cos(e),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((r=f*o)*r+(r=l*s-c*f*a)*r),c*s+l*f*a)},Ko.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Ko.range(Math.ceil(i/v)*v,u,v).map(h).concat(Ko.range(Math.ceil(l/m)*m,c,m).map(g)).concat(Ko.range(Math.ceil(e/p)*p,r,p).filter(function(n){return ha(n%v)>Ta}).map(s)).concat(Ko.range(Math.ceil(a/d)*d,o,d).filter(function(n){return ha(n%m)>Ta}).map(f))}var r,e,u,i,o,a,c,l,s,f,h,g,p=10,d=p,v=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(e=+t[0][0],r=+t[1][0],a=+t[0][1],o=+t[1][1],e>r&&(t=e,e=r,r=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[e,a],[r,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(v=+t[0],m=+t[1],n):[v,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],n):[p,d]},n.precision=function(t){return arguments.length?(y=+t,s=ve(a,o,90),f=me(e,r,y),h=ve(l,c,90),g=me(i,u,y),n):y},n.majorExtent([[-180,-90+Ta],[180,90-Ta]]).minorExtent([[-180,-80-Ta],[180,80+Ta]])},Ko.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||e.apply(this,arguments),r||u.apply(this,arguments)]}}var t,r,e=ye,u=xe;return n.distance=function(){return Ko.geo.distance(t||e.apply(this,arguments),r||u.apply(this,arguments))},n.source=function(r){return arguments.length?(e=r,t="function"==typeof r?null:r,n):e},n.target=function(t){return arguments.length?(u=t,r="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Ko.geo.interpolate=function(n,t){return Me(n[0]*ja,n[1]*ja,t[0]*ja,t[1]*ja)},Ko.geo.length=function(n){return Ic=0,Ko.geo.stream(n,Yc),Ic};var Ic,Yc={sphere:v,point:v,lineStart:_e,lineEnd:v,polygonStart:v,polygonEnd:v},Bc=be(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Ko.geo.azimuthalEqualArea=function(){return ie(Bc)}).raw=Bc;var Zc=be(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},Ct);(Ko.geo.azimuthalEquidistant=function(){return ie(Zc)}).raw=Zc,(Ko.geo.conicConformal=function(){return Br(we)}).raw=we,(Ko.geo.conicEquidistant=function(){return Br(ke)}).raw=ke;var Vc=be(function(n){return 1/n},Math.atan);(Ko.geo.gnomonic=function(){return ie(Vc)}).raw=Vc,Se.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-La]},(Ko.geo.mercator=function(){return Ee(Se)}).raw=Se;var $c=be(function(){return 1},Math.asin);(Ko.geo.orthographic=function(){return ie($c)}).raw=$c;var Xc=be(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Ko.geo.stereographic=function(){return ie(Xc)}).raw=Xc,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-La]},(Ko.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,r=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[-n[1],n[0]])},n.rotate=function(n){return n?r([n[0],n[1],n.length>2?n[2]+90:90]):(n=r(),[n[0],n[1],n[2]-90])},n.rotate([0,0])}).raw=Ae,Ko.geom={},Ko.geom.hull=function(n){function t(n){if(3>n.length)return[];var t,u=At(r),i=At(e),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Le),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=qe(a),s=qe(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;s.length-h>t;++t)g.push(n[a[s[t]][2]]);return g}var r=Ce,e=Ne;return arguments.length?t(n):(t.x=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(e=n,t):e},t)},Ko.geom.polygon=function(n){return ma(n,Wc),n};var Wc=Ko.geom.polygon.prototype=[];Wc.area=function(){for(var n,t=-1,r=this.length,e=this[r-1],u=0;r>++t;)n=e,e=this[t],u+=n[1]*e[0]-n[0]*e[1];return.5*u},Wc.centroid=function(n){var t,r,e=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));u>++e;)t=a,a=this[e],r=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*r,o+=(t[1]+a[1])*r;return[i*n,o*n]},Wc.clip=function(n){for(var t,r,e,u,i,o,a=je(n),c=-1,l=this.length-je(this),s=this[l-1];l>++c;){for(t=n.slice(),n.length=0,u=this[c],i=t[(e=t.length-a)-1],r=-1;e>++r;)o=t[r],Te(o,s,u)?(Te(i,s,u)||n.push(ze(i,o,s,u)),n.push(o)):Te(i,s,u)&&n.push(ze(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var Jc,Gc,Kc,Qc,nl,tl=[],rl=[];Ie.prototype.prepare=function(){for(var n,t=this.edges,r=t.length;r--;)n=t[r].edge,n.b&&n.a||t.splice(r,1);return t.sort(Be),t.length},nu.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},tu.prototype={insert:function(n,t){var r,e,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;r=n}else this._?(n=iu(this._),t.P=null,t.N=n,n.P=n.L=t,r=n):(t.P=t.N=null,this._=t,r=null);for(t.L=t.R=null,t.U=r,t.C=!0,n=t;r&&r.C;)e=r.U,r===e.L?(u=e.R,u&&u.C?(r.C=u.C=!1,e.C=!0,n=e):(n===r.R&&(eu(this,r),n=r,r=n.U),r.C=!1,e.C=!0,uu(this,e))):(u=e.L,u&&u.C?(r.C=u.C=!1,e.C=!0,n=e):(n===r.L&&(uu(this,r),n=r,r=n.U),r.C=!1,e.C=!0,eu(this,e))),r=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,r,e,u=n.U,i=n.L,o=n.R;if(r=i?o?iu(o):i:o,u?u.L===n?u.L=r:u.R=r:this._=r,i&&o?(e=r.C,r.C=n.C,r.L=i,i.U=r,r!==o?(u=r.U,r.U=n.U,n=r.R,u.L=n,r.R=o,o.U=r):(r.U=u,u=r,n=r.R)):(e=n.C,n=r),n&&(n.U=u),!e){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,uu(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,uu(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,uu(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Ko.geom.voronoi=function(n){function t(n){var t=Array(n.length),e=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return ou(r(n),a).cells.forEach(function(r,a){var c=r.edges,l=r.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=e&&i>=l.x&&l.y>=u&&o>=l.y?[[e,o],[i,o],[i,u],[e,u]]:[];s.point=n[a]}),t}function r(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ta)*Ta,y:Math.round(o(n,t)/Ta)*Ta,i:t}})}var e=Ce,u=Ne,i=e,o=u,a=el;return n?t(n):(t.links=function(n){return ou(r(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ou(r(n)).cells.forEach(function(r,e){for(var u,i,o=r.site,a=r.edges.sort(Be),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;l>++c;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,i.i>e&&f.i>e&&0>cu(o,i,f)&&t.push([n[e],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=At(e=n),t):e},t.y=function(n){return arguments.length?(o=At(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?el:n,t):a===el?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===el?null:a&&a[1]},t)};var el=[[-1e6,-1e6],[1e6,1e6]];Ko.geom.delaunay=function(n){return Ko.geom.voronoi().triangles(n)},Ko.geom.quadtree=function(n,t,r,e,u){function i(n){function i(n,t,r,e,u,i,o,a){if(!isNaN(r)&&!isNaN(e))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(.01>ha(c-r)+ha(s-e))l(n,t,r,e,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,r,e,u,i,o,a)}else n.x=r,n.y=e,n.point=t}else l(n,t,r,e,u,i,o,a)}function l(n,t,r,e,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=r>=l,h=e>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=fu()),f?u=l:a=l,h?o=s:c=s,i(n,t,r,e,u,o,a,c)}var s,f,h,g,p,d,v,m,y,x=At(a),M=At(c);if(null!=t)d=t,v=r,m=e,y=u;else if(m=y=-(d=v=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],d>s.x&&(d=s.x),v>s.y&&(v=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var _=+x(s=n[g],g),b=+M(s,g);d>_&&(d=_),v>b&&(v=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-d,k=y-v;w>k?y=v+w:m=d+k;var S=fu();if(S.add=function(n){i(S,n,+x(n,++g),+M(n,g),d,v,m,y)},S.visit=function(n){hu(n,S,d,v,m,y)},g=-1,null==t){for(;p>++g;)i(S,n[g],f[g],h[g],d,v,m,y);--g}else n.forEach(S.add);return f=h=n=s=null,S}var o,a=Ce,c=Ne;return(o=arguments.length)?(a=lu,c=su,3===o&&(u=r,e=t,r=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=r=e=u=null:(t=+n[0][0],r=+n[0][1],e=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,r],[e,u]]},i.size=function(n){return arguments.length?(null==n?t=r=e=u=null:(t=r=0,e=+n[0],u=+n[1]),i):null==t?null:[e-t,u-r]},i)},Ko.interpolateRgb=gu,Ko.interpolateObject=pu,Ko.interpolateNumber=du,Ko.interpolateString=vu;var ul=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,il=RegExp(ul.source,"g");Ko.interpolate=mu,Ko.interpolators=[function(n,t){var r=typeof t;return("string"===r?Ja.has(t)||/^(#|rgb\(|hsl\()/.test(t)?gu:vu:t instanceof et?gu:Array.isArray(t)?yu:"object"===r&&isNaN(t)?pu:du)(n,t)}],Ko.interpolateArray=yu;var ol=function(){return Ct},al=Ko.map({linear:ol,poly:Su,quad:function(){return bu},cubic:function(){return wu},sin:function(){return Eu},exp:function(){return Au},circle:function(){return Cu},elastic:Nu,back:qu,bounce:function(){return Lu}}),cl=Ko.map({"in":Ct,out:Mu,"in-out":_u,"out-in":function(n){return _u(Mu(n))}});Ko.ease=function(n){var t=n.indexOf("-"),r=t>=0?n.substring(0,t):n,e=t>=0?n.substring(t+1):"in";return r=al.get(r)||ol,e=cl.get(e)||Ct,xu(e(r.apply(null,Qo.call(arguments,1))))},Ko.interpolateHcl=Tu,Ko.interpolateHsl=zu,Ko.interpolateLab=ju,Ko.interpolateRound=Ru,Ko.transform=function(n){var t=ta.createElementNS(Ko.ns.prefix.svg,"g");return(Ko.transform=function(n){if(null!=n){t.setAttribute("transform",n);var r=t.transform.baseVal.consolidate()}return new Fu(r?r.matrix:ll)})(n)},Fu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ll={a:1,b:0,c:0,d:1,e:0,f:0};Ko.interpolateTransform=Uu,Ko.layout={},Ko.layout.bundle=function(){return function(n){for(var t=[],r=-1,e=n.length;e>++r;)t.push(Yu(n[r]));return t}},Ko.layout.chord=function(){function n(){var n,l,f,h,g,p={},d=[],v=Ko.range(i),m=[];for(r=[],e=[],n=0,h=-1;i>++h;){for(l=0,g=-1;i>++g;)l+=u[h][g];d.push(l),m.push(Ko.range(i)),n+=l}for(o&&v.sort(function(n,t){return o(d[n],d[t])}),a&&m.forEach(function(n,t){n.sort(function(n,r){return a(u[t][n],u[t][r])})}),n=(qa-s*i)/n,l=0,h=-1;i>++h;){for(f=l,g=-1;i>++g;){var y=v[h],x=m[y][g],M=u[y][x],_=l,b=l+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}e[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;i>++h;)for(g=h-1;i>++g;){var w=p[h+"-"+g],k=p[g+"-"+h];(w.value||k.value)&&r.push(w.value<k.value?{source:k,target:w}:{source:w,target:k})}c&&t()}function t(){r.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var r,e,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,r=e=null,l):u},l.padding=function(n){return arguments.length?(s=n,r=e=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,r=e=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,r=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,r&&t(),l):c},l.chords=function(){return r||n(),r},l.groups=function(){return e||n(),e},l},Ko.layout.force=function(){function n(n){return function(t,r,e,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-r,c=i*i+o*o;if(c>a*a/v){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=Ko.event.x,n.py=Ko.event.y,a.resume()}var r,e,u,i,o,a={},c=Ko.dispatch("start","tick","end"),l=[1,1],s=.9,f=sl,h=fl,g=-30,p=hl,d=.1,v=.64,m=[],y=[];return a.tick=function(){if(.005>(e*=.99))return c.end({type:"end",alpha:e=0}),!0;var t,r,a,f,h,p,v,x,M,_=m.length,b=y.length;for(r=0;b>r;++r)a=y[r],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=e*i[r]*((p=Math.sqrt(p))-u[r])/p,x*=p,M*=p,h.x-=x*(v=f.weight/(h.weight+f.weight)),h.y-=M*v,f.x+=x*(v=1-v),f.y+=M*v);if((v=e*d)&&(x=l[0]/2,M=l[1]/2,r=-1,v))for(;_>++r;)a=m[r],a.x+=(x-a.x)*v,a.y+=(M-a.y)*v;if(g)for(Ju(t=Ko.geom.quadtree(m),e,o),r=-1;_>++r;)(a=m[r]).fixed||t.visit(n(a));for(r=-1;_>++r;)a=m[r],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:e})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(d=+n,a):d},a.theta=function(n){return arguments.length?(v=n*n,a):Math.sqrt(v)},a.alpha=function(n){return arguments.length?(n=+n,e?e=n>0?n:0:n>0&&(c.start({type:"start",alpha:e=n}),Ko.timer(a.tick)),a):e},a.start=function(){function n(n,e){if(!r){for(r=Array(c),a=0;c>a;++a)r[a]=[];for(a=0;l>a;++a){var u=y[a];r[u.source.index].push(u.target),r[u.target.index].push(u.source)}}for(var i,o=r[t],a=-1,l=o.length;l>++a;)if(!isNaN(i=o[a][n]))return i;return Math.random()*e}var t,r,e,c=m.length,s=y.length,p=l[0],d=l[1];for(t=0;c>t;++t)(e=m[t]).index=t,e.weight=0;for(t=0;s>t;++t)e=y[t],"number"==typeof e.source&&(e.source=m[e.source]),"number"==typeof e.target&&(e.target=m[e.target]),++e.source.weight,++e.target.weight;for(t=0;c>t;++t)e=m[t],isNaN(e.x)&&(e.x=n("x",p)),isNaN(e.y)&&(e.y=n("y",d)),isNaN(e.px)&&(e.px=e.x),isNaN(e.py)&&(e.py=e.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return r||(r=Ko.behavior.drag().origin(Ct).on("dragstart.force",Vu).on("drag.force",t).on("dragend.force",$u)),arguments.length?(this.on("mouseover.force",Xu).on("mouseout.force",Wu).call(r),void 0):r},Ko.rebind(a,c,"on")};var sl=20,fl=1,hl=1/0;Ko.layout.hierarchy=function(){function n(t,o,a){var c=u.call(r,t,o);if(t.depth=o,a.push(t),c&&(l=c.length)){for(var l,s,f=-1,h=t.children=Array(l),g=0,p=o+1;l>++f;)s=h[f]=n(c[f],p,a),s.parent=t,g+=s.value;e&&h.sort(e),i&&(t.value=g)}else delete t.children,i&&(t.value=+i.call(r,t,o)||0);return t}function t(n,e){var u=n.children,o=0;if(u&&(a=u.length))for(var a,c=-1,l=e+1;a>++c;)o+=t(u[c],l);else i&&(o=+i.call(r,n,e)||0);return i&&(n.value=o),o}function r(t){var r=[];return n(t,0,r),r}var e=ni,u=Ku,i=Qu;return r.sort=function(n){return arguments.length?(e=n,r):e},r.children=function(n){return arguments.length?(u=n,r):u},r.value=function(n){return arguments.length?(i=n,r):i},r.revalue=function(n){return t(n,0),n},r},Ko.layout.partition=function(){function n(t,r,e,u){var i=t.children;if(t.x=r,t.y=t.depth*u,t.dx=e,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(e=t.value?e/t.value:0;o>++l;)n(a=i[l],r,c=a.value*e,u),r+=c}}function t(n){var r=n.children,e=0;if(r&&(u=r.length))for(var u,i=-1;u>++i;)e=Math.max(e,t(r[i]));return 1+e}function r(r,i){var o=e.call(this,r,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var e=Ko.layout.hierarchy(),u=[1,1];return r.size=function(n){return arguments.length?(u=n,r):u},Gu(r,e)},Ko.layout.pie=function(){function n(i){var o=i.map(function(r,e){return+t.call(n,r,e)}),a=+("function"==typeof e?e.apply(this,arguments):e),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Ko.sum(o),l=Ko.range(i.length);null!=r&&l.sort(r===gl?function(n,t){return o[t]-o[n]}:function(n,t){return r(i[n],i[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),s}var t=Number,r=gl,e=0,u=qa;return n.value=function(r){return arguments.length?(t=r,n):t},n.sort=function(t){return arguments.length?(r=t,n):r},n.startAngle=function(t){return arguments.length?(e=t,n):e},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var gl={};Ko.layout.stack=function(){function n(a,c){var l=a.map(function(r,e){return t.call(n,r,e)}),s=l.map(function(t){return t.map(function(t,r){return[i.call(n,t,r),o.call(n,t,r)]})}),f=r.call(n,s,c);l=Ko.permute(l,f),s=Ko.permute(s,f);var h,g,p,d=e.call(n,s,c),v=l.length,m=l[0].length;for(g=0;m>g;++g)for(u.call(n,l[0][g],p=d[g],s[0][g][1]),h=1;v>h;++h)u.call(n,l[h][g],p+=s[h-1][g][1],s[h][g][1]);return a}var t=Ct,r=ii,e=oi,u=ui,i=ri,o=ei;return n.values=function(r){return arguments.length?(t=r,n):t},n.order=function(t){return arguments.length?(r="function"==typeof t?t:pl.get(t)||ii,n):r},n.offset=function(t){return arguments.length?(e="function"==typeof t?t:dl.get(t)||oi,n):e},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var pl=Ko.map({"inside-out":function(n){var t,r,e=n.length,u=n.map(ai),i=n.map(ci),o=Ko.range(e).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;e>t;++t)r=o[t],c>a?(a+=i[r],l.push(r)):(c+=i[r],s.push(r));return s.reverse().concat(l)},reverse:function(n){return Ko.range(n.length).reverse()},"default":ii}),dl=Ko.map({silhouette:function(n){var t,r,e,u=n.length,i=n[0].length,o=[],a=0,c=[];for(r=0;i>r;++r){for(t=0,e=0;u>t;t++)e+=n[t][r][1];e>a&&(a=e),o.push(e)}for(r=0;i>r;++r)c[r]=(a-o[r])/2;return c},wiggle:function(n){var t,r,e,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,r=1;h>r;++r){for(t=0,u=0;s>t;++t)u+=n[t][r][1];for(t=0,i=0,a=f[r][0]-f[r-1][0];s>t;++t){for(e=0,o=(n[t][r][1]-n[t][r-1][1])/(2*a);t>e;++e)o+=(n[e][r][1]-n[e][r-1][1])/a;i+=o*n[t][r][1]}g[r]=c-=u?i/u*a:0,l>c&&(l=c)}for(r=0;h>r;++r)g[r]-=l;return g},expand:function(n){var t,r,e,u=n.length,i=n[0].length,o=1/u,a=[];for(r=0;i>r;++r){for(t=0,e=0;u>t;t++)e+=n[t][r][1];if(e)for(t=0;u>t;t++)n[t][r][1]/=e;else for(t=0;u>t;t++)n[t][r][1]=o}for(r=0;i>r;++r)a[r]=0;return a},zero:oi});Ko.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(r,this),s=e.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;g>++i;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;h>++i;)a=l[i],a>=s[0]&&s[1]>=a&&(o=c[Ko.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,r=Number,e=hi,u=si;return n.value=function(t){return arguments.length?(r=t,n):r},n.range=function(t){return arguments.length?(e=At(t),n):e},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return fi(n,t)}:At(t),n):u},n.frequency=function(r){return arguments.length?(t=!!r,n):t},n},Ko.layout.tree=function(){function n(n,i){function o(n,t){var e=n.children,u=n._tree;if(e&&(i=e.length)){for(var i,a,l,s=e[0],f=s,h=-1;i>++h;)l=e[h],o(l,a),f=c(l,a,f),a=l;_i(n);var g=.5*(s._tree.prelim+l._tree.prelim);t?(u.prelim=t._tree.prelim+r(n,t),u.mod=u.prelim-g):u.prelim=g}else t&&(u.prelim=t._tree.prelim+r(n,t))}function a(n,t){n.x=n._tree.prelim+t;var r=n.children;if(r&&(e=r.length)){var e,u=-1;for(t+=n._tree.mod;e>++u;)a(r[u],t)}}function c(n,t,e){if(t){for(var u,i=n,o=n,a=t,c=n.parent.children[0],l=i._tree.mod,s=o._tree.mod,f=a._tree.mod,h=c._tree.mod;a=di(a),i=pi(i),a&&i;)c=pi(c),o=di(o),o._tree.ancestor=n,u=a._tree.prelim+f-i._tree.prelim-l+r(a,i),u>0&&(bi(wi(a,n,e),n,u),l+=u,s+=u),f+=a._tree.mod,l+=i._tree.mod,h+=c._tree.mod,s+=o._tree.mod;a&&!di(o)&&(o._tree.thread=a,o._tree.mod+=f-s),i&&!pi(c)&&(c._tree.thread=i,c._tree.mod+=l-h,e=n)}return e}var l=t.call(this,n,i),s=l[0];Mi(s,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),o(s),a(s,-s._tree.prelim);var f=vi(s,yi),h=vi(s,mi),g=vi(s,xi),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2,v=g.depth||1;return Mi(s,u?function(n){n.x*=e[0],n.y=n.depth*e[1],delete n._tree}:function(n){n.x=(n.x-p)/(d-p)*e[0],n.y=n.depth/v*e[1],delete n._tree}),l}var t=Ko.layout.hierarchy().sort(null).value(null),r=gi,e=[1,1],u=!1;return n.separation=function(t){return arguments.length?(r=t,n):r},n.size=function(t){return arguments.length?(u=null==(e=t),n):u?null:e},n.nodeSize=function(t){return arguments.length?(u=null!=(e=t),n):u?e:null},Gu(n,t)},Ko.layout.pack=function(){function n(n,i){var o=r.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Mi(a,function(n){n.r=+s(n.value)}),Mi(a,Ci),e){var f=e*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Mi(a,function(n){n.r+=f}),Mi(a,Ci),Mi(a,function(n){n.r-=f})}return Li(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,r=Ko.layout.hierarchy().sort(ki),e=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(r){return arguments.length?(t=null==r||"function"==typeof r?r:+r,n):t},n.padding=function(t){return arguments.length?(e=+t,n):e},Gu(n,r)},Ko.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Mi(c,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=zi(t)):(n.x=o?l+=r(n,o):0,n.y=0,o=n)});var s=Ri(c),f=Fi(c),h=s.x-r(s,f)/2,g=f.x+r(f,s)/2;return Mi(c,u?function(n){n.x=(n.x-c.x)*e[0],n.y=(c.y-n.y)*e[1]}:function(n){n.x=(n.x-h)/(g-h)*e[0],n.y=(1-(c.y?n.y/c.y:1))*e[1]}),a}var t=Ko.layout.hierarchy().sort(null).value(null),r=gi,e=[1,1],u=!1;return n.separation=function(t){return arguments.length?(r=t,n):r},n.size=function(t){return arguments.length?(u=null==(e=t),n):u?null:e},n.nodeSize=function(t){return arguments.length?(u=null!=(e=t),n):u?e:null},Gu(n,t)},Ko.layout.treemap=function(){function n(n,t){for(var r,e,u=-1,i=n.length;i>++u;)e=(r=n[u]).value*(0>t?0:t),r.area=isNaN(e)||0>=e?0:e}function t(r){var i=r.children;if(i&&i.length){var o,a,c,l=f(r),s=[],h=i.slice(),p=1/0,d="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&r.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/r.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||p>=(a=e(s,d))?(h.pop(),p=a):(s.area-=s.pop().area,u(s,d,l,!1),d=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,d,l,!0),s.length=s.area=0),i.forEach(t)}}function r(t){var e=t.children;if(e&&e.length){var i,o=f(t),a=e.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);e.forEach(r)}}function e(n,t){for(var r,e=n.area,u=0,i=1/0,o=-1,a=n.length;a>++o;)(r=n[o].area)&&(i>r&&(i=r),r>u&&(u=r));return e*=e,t*=t,e?Math.max(t*u*p/e,e/(t*i*p)):1/0}function u(n,t,r,e){var u,i=-1,o=n.length,a=r.x,l=r.y,s=t?c(n.area/t):0;if(t==r.dx){for((e||s>r.dy)&&(s=r.dy);o>++i;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(r.x+r.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=r.x+r.dx-a,r.y+=s,r.dy-=s}else{for((e||s>r.dx)&&(s=r.dx);o>++i;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(r.y+r.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=r.y+r.dy-l,r.x+=s,r.dx-=s}}function i(e){var u=o||a(e),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?r:t)(i),h&&(o=u),u}var o,a=Ko.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Di,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var r=n.call(i,t,t.depth);return null==r?Di(t):Pi(t,"number"==typeof r?[r,r,r,r]:r)}function r(t){return Pi(t,n)}if(!arguments.length)return s;var e;return f=null==(s=n)?Di:"function"==(e=typeof n)?t:"number"===e?(n=[n,n,n,n],r):r,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Gu(i,a)},Ko.random={normal:function(n,t){var r=arguments.length;return 2>r&&(t=1),1>r&&(n=0),function(){var r,e,u;do r=2*Math.random()-1,e=2*Math.random()-1,u=r*r+e*e;while(!u||u>1);return n+t*r*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Ko.random.normal.apply(Ko,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Ko.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,r=0;n>r;r++)t+=Math.random();return t}}},Ko.scale={};var vl={floor:Ct,ceil:Ct};Ko.scale.linear=function(){return Zi([0,1],[0,1],mu,!1)};var ml={s:1,g:1,p:1,r:1,e:1};Ko.scale.log=function(){return Qi(Ko.scale.linear().domain([0,1]),10,!0,[1,10])};var yl=Ko.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Ko.scale.pow=function(){return no(Ko.scale.linear(),1,[0,1])},Ko.scale.sqrt=function(){return Ko.scale.pow().exponent(.5)},Ko.scale.ordinal=function(){return ro([],{t:"range",a:[[]]})},Ko.scale.category10=function(){return Ko.scale.ordinal().range(Ml)},Ko.scale.category20=function(){return Ko.scale.ordinal().range(_l)},Ko.scale.category20b=function(){return Ko.scale.ordinal().range(bl)},Ko.scale.category20c=function(){return Ko.scale.ordinal().range(wl)
};var Ml=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(yt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(yt),bl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(yt),wl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(yt);Ko.scale.quantile=function(){return eo([],[])},Ko.scale.quantize=function(){return uo(0,1,[0,1])},Ko.scale.threshold=function(){return io([.5],[0,1])},Ko.scale.identity=function(){return oo([0,1])},Ko.svg={},Ko.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=r.apply(this,arguments),o=e.apply(this,arguments)+kl,a=u.apply(this,arguments)+kl,c=(o>a&&(c=o,o=a,a=c),a-o),l=Na>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=Sl?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+l+",0 "+n*s+","+n*f+"Z":"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=ao,r=co,e=lo,u=so;return n.innerRadius=function(r){return arguments.length?(t=At(r),n):t},n.outerRadius=function(t){return arguments.length?(r=At(t),n):r},n.startAngle=function(t){return arguments.length?(e=At(t),n):e},n.endAngle=function(t){return arguments.length?(u=At(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+r.apply(this,arguments))/2,i=(e.apply(this,arguments)+u.apply(this,arguments))/2+kl;return[Math.cos(i)*n,Math.sin(i)*n]},n};var kl=-La,Sl=qa-Ta;Ko.svg.line=function(){return fo(Ct)};var El=Ko.map({linear:ho,"linear-closed":go,step:po,"step-before":vo,"step-after":mo,basis:wo,"basis-open":ko,"basis-closed":So,bundle:Eo,cardinal:Mo,"cardinal-open":yo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Cl=[0,1/3,2/3,0],Nl=[0,1/6,2/3,1/6];Ko.svg.line.radial=function(){var n=fo(zo);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},vo.reverse=mo,mo.reverse=vo,Ko.svg.area=function(){return jo(Ct)},Ko.svg.area.radial=function(){var n=jo(zo);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Ko.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+e(c.r,c.p1,c.a1-c.a0)+(r(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+e(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,r,e){var u=t.call(n,r,e),i=a.call(n,u,e),o=c.call(n,u,e)+kl,s=l.call(n,u,e)+kl;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function r(n,t){return n.a0==t.a0&&n.a1==t.a1}function e(n,t,r){return"A"+n+","+n+" 0 "+ +(r>Na)+",1 "+t}function u(n,t,r,e){return"Q 0,0 "+e}var i=ye,o=xe,a=Ro,c=lo,l=so;return n.radius=function(t){return arguments.length?(a=At(t),n):a},n.source=function(t){return arguments.length?(i=At(t),n):i},n.target=function(t){return arguments.length?(o=At(t),n):o},n.startAngle=function(t){return arguments.length?(c=At(t),n):c},n.endAngle=function(t){return arguments.length?(l=At(t),n):l},n},Ko.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=r.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(e),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=ye,r=xe,e=Fo;return n.source=function(r){return arguments.length?(t=At(r),n):t},n.target=function(t){return arguments.length?(r=At(t),n):r},n.projection=function(t){return arguments.length?(e=t,n):e},n},Ko.svg.diagonal.radial=function(){var n=Ko.svg.diagonal(),t=Fo,r=n.projection;return n.projection=function(n){return arguments.length?r(Do(t=n)):t},n},Ko.svg.symbol=function(){function n(n,e){return(ql.get(t.call(this,n,e))||Uo)(r.call(this,n,e))}var t=Oo,r=Po;return n.type=function(r){return arguments.length?(t=At(r),n):t},n.size=function(t){return arguments.length?(r=At(t),n):r},n};var ql=Ko.map({circle:Uo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*jl)),r=t*jl;return"M0,"+-t+"L"+r+",0"+" 0,"+t+" "+-r+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/zl),r=t*zl/2;return"M0,"+r+"L"+t+","+-r+" "+-t+","+-r+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/zl),r=t*zl/2;return"M0,"+-r+"L"+t+","+r+" "+-t+","+r+"Z"}});Ko.svg.symbolTypes=ql.keys();var Ll,Tl,zl=Math.sqrt(3),jl=Math.tan(30*ja),Rl=[],Fl=0;Rl.call=ba.call,Rl.empty=ba.empty,Rl.node=ba.node,Rl.size=ba.size,Ko.transition=function(n){return arguments.length?Ll?n.transition():n:Sa.transition()},Ko.transition.prototype=Rl,Rl.select=function(n){var t,r,e,u=this.id,i=[];n=w(n);for(var o=-1,a=this.length;a>++o;){i.push(t=[]);for(var c=this[o],l=-1,s=c.length;s>++l;)(e=c[l])&&(r=n.call(e,e.__data__,l,o))?("__data__"in e&&(r.__data__=e.__data__),Bo(r,l,u,e.__transition__[u]),t.push(r)):t.push(null)}return Ho(i,u)},Rl.selectAll=function(n){var t,r,e,u,i,o=this.id,a=[];n=k(n);for(var c=-1,l=this.length;l>++c;)for(var s=this[c],f=-1,h=s.length;h>++f;)if(e=s[f]){i=e.__transition__[o],r=n.call(e,e.__data__,f,c),a.push(t=[]);for(var g=-1,p=r.length;p>++g;)(u=r[g])&&Bo(u,g,o,i),t.push(u)}return Ho(a,o)},Rl.filter=function(n){var t,r,e,u=[];"function"!=typeof n&&(n=R(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var r=this[i],a=0,c=r.length;c>a;a++)(e=r[a])&&n.call(e,e.__data__,a,i)&&t.push(e)}return Ho(u,this.id)},Rl.tween=function(n,t){var r=this.id;return 2>arguments.length?this.node().__transition__[r].tween.get(n):D(this,null==t?function(t){t.__transition__[r].tween.remove(n)}:function(e){e.__transition__[r].tween.set(n,t)})},Rl.attr=function(n,t){function r(){this.removeAttribute(a)}function e(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?r:(n+="",function(){var t,r=this.getAttribute(a);return r!==n&&(t=o(r,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?e:(n+="",function(){var t,r=this.getAttributeNS(a.space,a.local);return r!==n&&(t=o(r,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(2>arguments.length){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Uu:mu,a=Ko.ns.qualify(n);return Io(this,"attr."+n,t,a.local?i:u)},Rl.attrTween=function(n,t){function r(n,r){var e=t.call(this,n,r,this.getAttribute(u));return e&&function(n){this.setAttribute(u,e(n))}}function e(n,r){var e=t.call(this,n,r,this.getAttributeNS(u.space,u.local));return e&&function(n){this.setAttributeNS(u.space,u.local,e(n))}}var u=Ko.ns.qualify(n);return this.tween("attr."+n,u.local?e:r)},Rl.style=function(n,t,r){function e(){this.style.removeProperty(n)}function u(t){return null==t?e:(t+="",function(){var e,u=ea.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(e=mu(u,t),function(t){this.style.setProperty(n,e(t),r)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(r in n)this.style(r,n[r],t);return this}r=""}return Io(this,"style."+n,t,u)},Rl.styleTween=function(n,t,r){function e(e,u){var i=t.call(this,e,u,ea.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),r)}}return 3>arguments.length&&(r=""),this.tween("style."+n,e)},Rl.text=function(n){return Io(this,"text",n,Yo)},Rl.remove=function(){return this.each("end.transition",function(){var n;2>this.__transition__.count&&(n=this.parentNode)&&n.removeChild(this)})},Rl.ease=function(n){var t=this.id;return 1>arguments.length?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Ko.ease.apply(Ko,arguments)),D(this,function(r){r.__transition__[t].ease=n}))},Rl.delay=function(n){var t=this.id;return 1>arguments.length?this.node().__transition__[t].delay:D(this,"function"==typeof n?function(r,e,u){r.__transition__[t].delay=+n.call(r,r.__data__,e,u)}:(n=+n,function(r){r.__transition__[t].delay=n}))},Rl.duration=function(n){var t=this.id;return 1>arguments.length?this.node().__transition__[t].duration:D(this,"function"==typeof n?function(r,e,u){r.__transition__[t].duration=Math.max(1,n.call(r,r.__data__,e,u))}:(n=Math.max(1,n),function(r){r.__transition__[t].duration=n}))},Rl.each=function(n,t){var r=this.id;if(2>arguments.length){var e=Tl,u=Ll;Ll=r,D(this,function(t,e,u){Tl=t.__transition__[r],n.call(t,t.__data__,e,u)}),Tl=e,Ll=u}else D(this,function(e){var u=e.__transition__[r];(u.event||(u.event=Ko.dispatch("start","end"))).on(n,t)});return this},Rl.transition=function(){for(var n,t,r,e,u=this.id,i=++Fl,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],l=0,s=t.length;s>l;l++)(r=t[l])&&(e=Object.create(r.__transition__[u]),e.delay+=e.duration,Bo(r,l,i,e)),n.push(r)}return Ho(o,i)},Ko.svg.axis=function(){function n(n){n.each(function(){var n,l=Ko.select(this),s=this.__chart__||r,f=this.__chart__=r.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):Ct:t,p=l.selectAll(".tick").data(h,f),d=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ta),v=Ko.transition(p.exit()).style("opacity",Ta).remove(),m=Ko.transition(p.order()).style("opacity",1),y=Ui(f),x=l.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Ko.transition(x));d.append("line"),d.append("text");var _=d.select("line"),b=m.select("line"),w=p.select("text").text(g),k=d.select("text"),S=m.select("text");switch(e){case"bottom":n=Zo,_.attr("y2",u),k.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),S.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Zo,_.attr("y2",-u),k.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),S.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=Vo,_.attr("x2",-u),k.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),S.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=Vo,_.attr("x2",u),k.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),S.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;s=f=function(n){return E(n)+A}}else s.rangeBand?s=f:v.call(n,f);d.call(n,s),m.call(n,f)})}var t,r=Ko.scale.linear(),e=Dl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(r=t,n):r},n.orient=function(t){return arguments.length?(e=t in Pl?t+"":Dl,n):e},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(r){return arguments.length?(t=r,n):t},n.tickSize=function(t){var r=arguments.length;return r?(u=+t,i=+arguments[r-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Dl="bottom",Pl={top:1,right:1,bottom:1,left:1};Ko.svg.brush=function(){function n(i){i.each(function(){var i=Ko.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,Ct);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ol[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var s,f=Ko.transition(i),h=Ko.transition(o);c&&(s=Ui(c),h.attr("x",s[0]).attr("width",s[1]-s[0]),r(f)),l&&(s=Ui(l),h.attr("y",s[0]).attr("height",s[1]-s[0]),e(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function e(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Ko.event.keyCode&&(C||(y=null,q[0]-=s[1],q[1]-=f[1],C=2),x())}function p(){32==Ko.event.keyCode&&2==C&&(q[0]+=s[1],q[1]+=f[1],C=0,x())}function d(){var n=Ko.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Ko.event.altKey?(y||(y=[(s[0]+s[1])/2,(f[0]+f[1])/2]),q[0]=s[+(n[0]<y[0])],q[1]=f[+(n[1]<y[1])]):y=null),E&&v(n,c,0)&&(r(k),u=!0),A&&v(n,l,1)&&(e(k),u=!0),u&&(t(k),w({type:"brush",mode:C?"move":"resize"}))}function v(n,t,r){var e,u,a=Ui(t),c=a[0],l=a[1],p=q[r],d=r?f:s,v=d[1]-d[0];return C&&(c-=p,l-=v+p),e=(r?g:h)?Math.max(c,Math.min(l,n[r])):n[r],C?u=(e+=p)+v:(y&&(p=Math.max(c,Math.min(l,2*y[r]-e))),e>p?(u=e,e=p):u=p),d[0]!=e||d[1]!=u?(r?o=null:i=null,d[0]=e,d[1]=u,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Ko.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var y,M,_=this,b=Ko.select(Ko.event.target),w=a.of(_,arguments),k=Ko.select(_),S=b.datum(),E=!/^(n|s)$/.test(S)&&c,A=!/^(e|w)$/.test(S)&&l,C=b.classed("extent"),N=B(),q=Ko.mouse(_),L=Ko.select(ea).on("keydown.brush",u).on("keyup.brush",p);if(Ko.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",m):L.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)q[0]=s[0]-q[0],q[1]=f[0]-q[1];else if(S){var T=+/w$/.test(S),z=+/^n/.test(S);M=[s[1-T]-q[0],f[1-z]-q[1]],q[0]=s[T],q[1]=f[z]}else Ko.event.altKey&&(y=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),Ko.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),d()}var i,o,a=_(n,"brushstart","brush","brushend"),c=null,l=null,s=[0,0],f=[0,0],h=!0,g=!0,p=Ul[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:s,y:f,i:i,j:o},r=this.__chart__||t;this.__chart__=t,Ll?Ko.select(this).transition().each("start.brush",function(){i=r.i,o=r.j,s=r.x,f=r.y,n({type:"brushstart"})}).tween("brush:brush",function(){var r=yu(s,t.x),e=yu(f,t.y);return i=o=null,function(u){s=t.x=r(u),f=t.y=e(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=Ul[!c<<1|!l],n):c},n.y=function(t){return arguments.length?(l=t,p=Ul[!c<<1|!l],n):l},n.clamp=function(t){return arguments.length?(c&&l?(h=!!t[0],g=!!t[1]):c?h=!!t:l&&(g=!!t),n):c&&l?[h,g]:c?h:l?g:null},n.extent=function(t){var r,e,u,a,h;return arguments.length?(c&&(r=t[0],e=t[1],l&&(r=r[0],e=e[0]),i=[r,e],c.invert&&(r=c(r),e=c(e)),r>e&&(h=r,r=e,e=h),(r!=s[0]||e!=s[1])&&(s=[r,e])),l&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],l.invert&&(u=l(u),a=l(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(r=i[0],e=i[1]):(r=s[0],e=s[1],c.invert&&(r=c.invert(r),e=c.invert(e)),r>e&&(h=r,r=e,e=h))),l&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],l.invert&&(u=l.invert(u),a=l.invert(a)),u>a&&(h=u,u=a,a=h))),c&&l?[[r,u],[e,a]]:c?[r,e]:l&&[u,a])},n.clear=function(){return n.empty()||(s=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!l&&f[0]==f[1]},Ko.rebind(n,a,"on")};var Ol={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ul=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Hl=oc.format=hc.timeFormat,Il=Hl.utc,Yl=Il("%Y-%m-%dT%H:%M:%S.%LZ");Hl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?$o:Yl,$o.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},$o.toString=Yl.toString,oc.second=Ut(function(n){return new ac(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),oc.seconds=oc.second.range,oc.seconds.utc=oc.second.utc.range,oc.minute=Ut(function(n){return new ac(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),oc.minutes=oc.minute.range,oc.minutes.utc=oc.minute.utc.range,oc.hour=Ut(function(n){var t=n.getTimezoneOffset()/60;return new ac(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),oc.hours=oc.hour.range,oc.hours.utc=oc.hour.utc.range,oc.month=Ut(function(n){return n=oc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),oc.months=oc.month.range,oc.months.utc=oc.month.utc.range;var Bl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Zl=[[oc.second,1],[oc.second,5],[oc.second,15],[oc.second,30],[oc.minute,1],[oc.minute,5],[oc.minute,15],[oc.minute,30],[oc.hour,1],[oc.hour,3],[oc.hour,6],[oc.hour,12],[oc.day,1],[oc.day,2],[oc.week,1],[oc.month,1],[oc.month,3],[oc.year,1]],Vl=Hl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Cr]]),$l={range:function(n,t,r){return Ko.range(Math.ceil(n/r)*r,+t,r).map(Wo)},floor:Ct,ceil:Ct};Zl.year=oc.year,oc.scale=function(){return Xo(Ko.scale.linear(),Zl,Vl)};var Xl=Zl.map(function(n){return[n[0].utc,n[1]]}),Wl=Il.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Cr]]);Xl.year=oc.year.utc,oc.scale.utc=function(){return Xo(Ko.scale.linear(),Xl,Wl)},Ko.text=Nt(function(n){return n.responseText}),Ko.json=function(n,t){return qt(n,"application/json",Jo,t)},Ko.html=function(n,t){return qt(n,"text/html",Go,t)},Ko.xml=Nt(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Ko):"object"==typeof t&&t.exports?t.exports=Ko:this.d3=Ko}()},{}],d3:[function(n,t){t.exports=n("kR3BKQ")},{}]},{},[]),require=function e(n,t,r){function u(o,a){if(!t[o]){if(!n[o]){var c="function"==typeof require&&require;if(!a&&c)return c(o,!0);if(i)return i(o,!0);throw Error("Cannot find module '"+o+"'")}var l=t[o]={exports:{}};n[o][0].call(l.exports,function(t){var r=n[o][1][t];return u(r?r:t)},l,l.exports,e,n,t,r)}return t[o].exports}for(var i="function"==typeof require&&require,o=0;r.length>o;o++)u(r[o]);return u}({"siC2/B":[function(n,t,r){(function(){var n=this,e=n._,u={},i=Array.prototype,o=Object.prototype,a=Function.prototype,c=i.push,l=i.slice,s=i.concat,f=o.toString,h=o.hasOwnProperty,g=i.forEach,p=i.map,d=i.reduce,v=i.reduceRight,m=i.filter,y=i.every,x=i.some,M=i.indexOf,_=i.lastIndexOf,b=Array.isArray,w=Object.keys,k=a.bind,S=function(n){return n instanceof S?n:this instanceof S?(this._wrapped=n,void 0):new S(n)};r!==void 0?(t!==void 0&&t.exports&&(r=t.exports=S),r._=S):n._=S,S.VERSION="1.6.0";var E=S.each=S.forEach=function(n,t,r){if(null==n)return n;if(g&&n.forEach===g)n.forEach(t,r);else if(n.length===+n.length){for(var e=0,i=n.length;i>e;e++)if(t.call(r,n[e],e,n)===u)return}else for(var o=S.keys(n),e=0,i=o.length;i>e;e++)if(t.call(r,n[o[e]],o[e],n)===u)return;return n};S.map=S.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(E(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var A="Reduce of empty array with no initial value";S.reduce=S.foldl=S.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),d&&n.reduce===d)return e&&(t=S.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(E(n,function(n,i,o){u?r=t.call(e,r,n,i,o):(r=n,u=!0)}),!u)throw new TypeError(A);return r},S.reduceRight=S.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=S.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var o=S.keys(n);i=o.length}if(E(n,function(a,c,l){c=o?o[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(A);return r},S.find=S.detect=function(n,t,r){var e;return C(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},S.filter=S.select=function(n,t,r){var e=[];return null==n?e:m&&n.filter===m?n.filter(t,r):(E(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},S.reject=function(n,t,r){return S.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},S.every=S.all=function(n,t,r){t||(t=S.identity);var e=!0;return null==n?e:y&&n.every===y?n.every(t,r):(E(n,function(n,i,o){return(e=e&&t.call(r,n,i,o))?void 0:u}),!!e)};var C=S.some=S.any=function(n,t,r){t||(t=S.identity);var e=!1;return null==n?e:x&&n.some===x?n.some(t,r):(E(n,function(n,i,o){return e||(e=t.call(r,n,i,o))?u:void 0}),!!e)};S.contains=S.include=function(n,t){return null==n?!1:M&&n.indexOf===M?-1!=n.indexOf(t):C(n,function(n){return n===t})},S.invoke=function(n,t){var r=l.call(arguments,2),e=S.isFunction(t);return S.map(n,function(n){return(e?t:n[t]).apply(n,r)})},S.pluck=function(n,t){return S.map(n,S.property(t))},S.where=function(n,t){return S.filter(n,S.matches(t))},S.findWhere=function(n,t){return S.find(n,S.matches(t))},S.max=function(n,t,r){if(!t&&S.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);var e=-1/0,u=-1/0;return E(n,function(n,i,o){var a=t?t.call(r,n,i,o):n;a>u&&(e=n,u=a)}),e},S.min=function(n,t,r){if(!t&&S.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);var e=1/0,u=1/0;return E(n,function(n,i,o){var a=t?t.call(r,n,i,o):n;u>a&&(e=n,u=a)}),e},S.shuffle=function(n){var t,r=0,e=[];return E(n,function(n){t=S.random(r++),e[r-1]=e[t],e[t]=n}),e},S.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=S.values(n)),n[S.random(n.length-1)]):S.shuffle(n).slice(0,Math.max(0,t))};var N=function(n){return null==n?S.identity:S.isFunction(n)?n:S.property(n)};S.sortBy=function(n,t,r){return t=N(t),S.pluck(S.map(n,function(n,e,u){return{value:n,index:e,criteria:t.call(r,n,e,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||void 0===r)return 1;if(e>r||void 0===e)return-1}return n.index-t.index}),"value")};var q=function(n){return function(t,r,e){var u={};return r=N(r),E(t,function(i,o){var a=r.call(e,i,o,t);n(u,a,i)}),u}};S.groupBy=q(function(n,t,r){S.has(n,t)?n[t].push(r):n[t]=[r]}),S.indexBy=q(function(n,t,r){n[t]=r}),S.countBy=q(function(n,t){S.has(n,t)?n[t]++:n[t]=1}),S.sortedIndex=function(n,t,r,e){r=N(r);for(var u=r.call(e,t),i=0,o=n.length;o>i;){var a=i+o>>>1;u>r.call(e,n[a])?i=a+1:o=a}return i},S.toArray=function(n){return n?S.isArray(n)?l.call(n):n.length===+n.length?S.map(n,S.identity):S.values(n):[]},S.size=function(n){return null==n?0:n.length===+n.length?n.length:S.keys(n).length},S.first=S.head=S.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:l.call(n,0,t)},S.initial=function(n,t,r){return l.call(n,0,n.length-(null==t||r?1:t))},S.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:l.call(n,Math.max(n.length-t,0))},S.rest=S.tail=S.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},S.compact=function(n){return S.filter(n,S.identity)};var L=function(n,t,r){return t&&S.every(n,S.isArray)?s.apply(r,n):(E(n,function(n){S.isArray(n)||S.isArguments(n)?t?c.apply(r,n):L(n,t,r):r.push(n)}),r)};S.flatten=function(n,t){return L(n,t,[])},S.without=function(n){return S.difference(n,l.call(arguments,1))},S.partition=function(n,t){var r=[],e=[];return E(n,function(n){(t(n)?r:e).push(n)}),[r,e]},S.uniq=S.unique=function(n,t,r,e){S.isFunction(t)&&(e=r,r=t,t=!1);var u=r?S.map(n,r,e):n,i=[],o=[];return E(u,function(r,e){(t?e&&o[o.length-1]===r:S.contains(o,r))||(o.push(r),i.push(n[e]))}),i},S.union=function(){return S.uniq(S.flatten(arguments,!0))},S.intersection=function(n){var t=l.call(arguments,1);return S.filter(S.uniq(n),function(n){return S.every(t,function(t){return S.contains(t,n)})})},S.difference=function(n){var t=s.apply(i,l.call(arguments,1));return S.filter(n,function(n){return!S.contains(t,n)})},S.zip=function(){for(var n=S.max(S.pluck(arguments,"length").concat(0)),t=Array(n),r=0;n>r;r++)t[r]=S.pluck(arguments,""+r);return t},S.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},S.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=S.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(M&&n.indexOf===M)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},S.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(_&&n.lastIndexOf===_)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},S.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i};var T=function(){};S.bind=function(n,t){var r,e;if(k&&n.bind===k)return k.apply(n,l.call(arguments,1));if(!S.isFunction(n))throw new TypeError;return r=l.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(l.call(arguments)));T.prototype=n.prototype;var u=new T;T.prototype=null;var i=n.apply(u,r.concat(l.call(arguments)));return Object(i)===i?i:u}},S.partial=function(n){var t=l.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===S&&(e[u]=arguments[r++]);for(;arguments.length>r;)e.push(arguments[r++]);return n.apply(this,e)}},S.bindAll=function(n){var t=l.call(arguments,1);if(0===t.length)throw Error("bindAll must be passed function names");return E(t,function(t){n[t]=S.bind(n[t],n)}),n},S.memoize=function(n,t){var r={};return t||(t=S.identity),function(){var e=t.apply(this,arguments);return S.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},S.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},S.defer=function(n){return S.delay.apply(S,[n,1].concat(l.call(arguments,1)))},S.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:S.now(),o=null,i=n.apply(e,u),e=u=null};return function(){var l=S.now();a||r.leading!==!1||(a=l);var s=t-(l-a);return e=this,u=arguments,0>=s?(clearTimeout(o),o=null,a=l,i=n.apply(e,u),e=u=null):o||r.trailing===!1||(o=setTimeout(c,s)),i}},S.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var l=S.now()-o;t>l?e=setTimeout(c,t-l):(e=null,r||(a=n.apply(i,u),i=u=null))};return function(){i=this,u=arguments,o=S.now();var l=r&&!e;return e||(e=setTimeout(c,t)),l&&(a=n.apply(i,u),i=u=null),a}},S.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},S.wrap=function(n,t){return S.partial(t,n)},S.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},S.after=function(n,t){return function(){return 1>--n?t.apply(this,arguments):void 0}},S.keys=function(n){if(!S.isObject(n))return[];if(w)return w(n);var t=[];for(var r in n)S.has(n,r)&&t.push(r);return t},S.values=function(n){for(var t=S.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},S.pairs=function(n){for(var t=S.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},S.invert=function(n){for(var t={},r=S.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},S.functions=S.methods=function(n){var t=[];for(var r in n)S.isFunction(n[r])&&t.push(r);return t.sort()},S.extend=function(n){return E(l.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},S.pick=function(n){var t={},r=s.apply(i,l.call(arguments,1));return E(r,function(r){r in n&&(t[r]=n[r])}),t},S.omit=function(n){var t={},r=s.apply(i,l.call(arguments,1));for(var e in n)S.contains(r,e)||(t[e]=n[e]);return t},S.defaults=function(n){return E(l.call(arguments,1),function(t){if(t)for(var r in t)void 0===n[r]&&(n[r]=t[r])}),n},S.clone=function(n){return S.isObject(n)?S.isArray(n)?n.slice():S.extend({},n):n},S.tap=function(n,t){return t(n),n};var z=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof S&&(n=n._wrapped),t instanceof S&&(t=t._wrapped);var u=f.call(n);if(u!=f.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var o=n.constructor,a=t.constructor;if(o!==a&&!(S.isFunction(o)&&o instanceof o&&S.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1;r.push(n),e.push(t);var c=0,l=!0;if("[object Array]"==u){if(c=n.length,l=c==t.length)for(;c--&&(l=z(n[c],t[c],r,e)););}else{for(var s in n)if(S.has(n,s)&&(c++,!(l=S.has(t,s)&&z(n[s],t[s],r,e))))break;if(l){for(s in t)if(S.has(t,s)&&!c--)break;l=!c}}return r.pop(),e.pop(),l};S.isEqual=function(n,t){return z(n,t,[],[])},S.isEmpty=function(n){if(null==n)return!0;if(S.isArray(n)||S.isString(n))return 0===n.length;for(var t in n)if(S.has(n,t))return!1;return!0},S.isElement=function(n){return!(!n||1!==n.nodeType)},S.isArray=b||function(n){return"[object Array]"==f.call(n)},S.isObject=function(n){return n===Object(n)},E(["Arguments","Function","String","Number","Date","RegExp"],function(n){S["is"+n]=function(t){return f.call(t)=="[object "+n+"]"}}),S.isArguments(arguments)||(S.isArguments=function(n){return!(!n||!S.has(n,"callee"))}),S.isFunction=function(n){return"function"==typeof n},S.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},S.isNaN=function(n){return S.isNumber(n)&&n!=+n},S.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==f.call(n)},S.isNull=function(n){return null===n},S.isUndefined=function(n){return void 0===n},S.has=function(n,t){return h.call(n,t)},S.noConflict=function(){return n._=e,this},S.identity=function(n){return n},S.constant=function(n){return function(){return n}},S.property=function(n){return function(t){return t[n]}},S.matches=function(n){return function(t){if(t===n)return!0;for(var r in n)if(n[r]!==t[r])return!1;return!0}},S.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},S.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},S.now=Date.now||function(){return(new Date).getTime()};var j={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};j.unescape=S.invert(j.escape);
var R={escape:RegExp("["+S.keys(j.escape).join("")+"]","g"),unescape:RegExp("("+S.keys(j.unescape).join("|")+")","g")};S.each(["escape","unescape"],function(n){S[n]=function(t){return null==t?"":(""+t).replace(R[n],function(t){return j[n][t]})}}),S.result=function(n,t){if(null==n)return void 0;var r=n[t];return S.isFunction(r)?r.call(n):r},S.mixin=function(n){E(S.functions(n),function(t){var r=S[t]=n[t];S.prototype[t]=function(){var n=[this._wrapped];return c.apply(n,arguments),U.call(this,r.apply(S,n))}})};var F=0;S.uniqueId=function(n){var t=++F+"";return n?n+t:t},S.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var D=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\t|\u2028|\u2029/g;S.template=function(n,t,r){var e;r=S.defaults({},r,S.templateSettings);var u=RegExp([(r.escape||D).source,(r.interpolate||D).source,(r.evaluate||D).source].join("|")+"|$","g"),i=0,o="__p+='";n.replace(u,function(t,r,e,u,a){return o+=n.slice(i,a).replace(O,function(n){return"\\"+P[n]}),r&&(o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(o+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(o+="';\n"+u+"\n__p+='"),i=a+t.length,t}),o+="';\n",r.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{e=Function(r.variable||"obj","_",o)}catch(a){throw a.source=o,a}if(t)return e(t,S);var c=function(n){return e.call(this,n,S)};return c.source="function("+(r.variable||"obj")+"){\n"+o+"}",c},S.chain=function(n){return S(n).chain()};var U=function(n){return this._chain?S(n).chain():n};S.mixin(S),E(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=i[n];S.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],U.call(this,r)}}),E(["concat","join","slice"],function(n){var t=i[n];S.prototype[n]=function(){return U.call(this,t.apply(this._wrapped,arguments))}}),S.extend(S.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return S})}).call(this)},{}],underscore:[function(n,t){t.exports=n("siC2/B")},{}]},{},[]);var d3=require("d3"),_=require("underscore"),w=window.innerWidth,h=window.innerHeight-100,tempo=500,data={"Non insulin dependent":{"40 or younger":[0,15],"Older than 40":[218,311]},"Insulin dependent":{"40 or younger":[1,129],"Older than 40":[104,124]}},combined=function(n){return _.reduce(_.toArray(data)[n],function(n,t){return _.zip(n,t).map(function(n){return n[0]+n[1]})},[0,0])},rows=_.keys(data),cols=_.keys(_.first(_.toArray(data))),col_maxs=function(){var n=_.map(cols,function(n){var t=0;return _.reduce(_.toArray(data),function(r,e,u){var i=e[n][0]/e[n][1];return i>r&&(t=u,r=i),r},0),t}),t=-1;return _.reduce(rows,function(n,r,e){var u=combined(e);return u=u[0]/u[1],u>n&&(t=e,n=u),n},0),n.push(t),n}(),num_nodes=_.chain(data).map(function(n){return _.map(n,function(n){return _.last(n)}).reduce(function(n,t){return n+t})}).reduce(function(n,t){return n+t},0).value(),max_nodes_per_ratio=d3.max(_.map(data,function(n){return d3.max(_.map(n,function(n){return _.last(n)}))})),fill=function(n){return n?"black":"steelblue"},svg=d3.select("body").append("svg").attr("width",w).attr("height",h),createForce=function(){return d3.layout.force().nodes([]).links([]).gravity(0).size([w,h]).linkDistance(0).linkStrength(2).friction(.2).charge(function(n){return n.charge})},forces=_.map(rows,createForce),linktoFoci=function(n,t){return n.map(function(n){return{source:n,target:t}})},createNodes=function(n,t,r){return d3.range(t).map(function(t){return{id:n>t?0:1,x:n>t?0:w,y:Math.random()*h,charge:-1e4/max_nodes_per_ratio,name:r}})},createFoci=function(n,t,r){return{x:n,y:t,charge:0,fixed:!0,name:r}},focis={},rowClass=function(n){return"row-"+n.replace(/ /g,"").toLowerCase()},colClass=function(n){return"col-"+n.replace(/ /g,"").toLowerCase()};_.each(rows,function(n,t){_.each(cols,function(n,r){var e=rowClass(rows[t]),u=colClass(cols[r]),i=w/(cols.length+2)*(r+1),o=h/(rows.length+1)*(t+1),a=createFoci(i,o,e+" "+u+" foci foci-0"),c=createFoci(i,o,e+" "+u+" foci foci-1");focis[rows[t]]||(focis[rows[t]]={}),focis[rows[t]][cols[r]]=[a,c],forces[t].nodes().push(a,c)})}),_.each(forces,function(n,t){setupNodeAndLinks(n,rows[t]),n.on("tick",function(){svg.selectAll("circle."+rowClass(rows[t])).attr("cx",function(n){return n.x}).attr("cy",function(n){return n.y})})}),svg.selectAll("circle.node").data(_.reduce(forces,function(n,t){return n.concat(t.nodes())},[])).enter().append("circle").attr("class",function(n){return"node "+n.name}).attr("cx",function(n){return n.x}).attr("cy",function(n){return n.y}).attr("r",2+100/num_nodes).style("fill",function(n){return fill(n.id)}).style("stroke",function(n){return d3.rgb(fill(n.id)).darker(2)}).style("stroke-width",1),svg.selectAll("circle.foci").style("display","none"),_.each(forces,function(n){n.start()});var cl=function(n,t,r){return r=void 0!==r?".foci-"+r:"","."+rowClass(rows[n])+"."+colClass(cols[t]+r)},ratioLabelPos=function(n,t){var r=0,e=Number(d3.select(cl(n,t,0)).attr("cx")),u=Number(d3.select(cl(n,t,0)).attr("cy"));return d3.selectAll(".node"+cl(n,t)).each(function(n){var t=Math.sqrt((n.x-e)*(n.x-e)+(n.y-u)*(n.y-u));r=t>r?t:r}),{x:e+Math.cos(45)*r,y:u-Math.sin(45)*r}},ratioLabelFormat=function(n){return d3.format(".0%")(n[0]/n[1])+" accepted"},timeline=[2*tempo,function(){var n=[];for(row in rows)for(col in cols)n.push({foci:cl(row,col),text:ratioLabelFormat(data[rows[row]][cols[col]]),row:Number(row),col:Number(col)});var t=svg.selectAll("text.year-ratio");t.remove(),t.data(n).enter().append("text").attr({"class":"year-ratio",x:function(n){return ratioLabelPos(n.row,n.col).x},y:function(n){return ratioLabelPos(n.row,n.col).y}}).text(function(n){return n.text}).style("opacity","0.0").transition().style("opacity","1.0").style("font-weight",function(n){return col_maxs[n.col]===n.row?"bold":"normal"})},10*tempo,function(){var n=250;return svg.selectAll("text.year-ratio").transition().duration(n).style("opacity","0.0").remove(),n},function(){var n=2*tempo;for(var t in rows)for(var r in cols)animFoci(cl(t,r)+".foci-0",{x:w/(cols.length+2)*(cols.length+1)-500},n),animFoci(cl(t,r)+".foci-1",{x:w/(cols.length+2)*(cols.length+1)},n);return n},1*tempo,function(){var n=2*tempo;for(var t in rows)for(var r in cols)animFoci(cl(t,r)+".foci-0",{x:w/(cols.length+2)*(cols.length+1)},n),animFoci(cl(t,r)+".foci-1",{x:w/(cols.length+2)*(cols.length+1)},n);return n},1*tempo,function(){var n=rows.map(function(n,t){return{text:ratioLabelFormat(combined(t)),row:t,col:cols.length,foci:cl(t,0)}}),t=svg.selectAll("text.combined-ratio");t.remove(),t.data(n).enter().append("text").attr({"class":"combined-ratio",x:function(n){return ratioLabelPos(n.row,0).x},y:function(n){return ratioLabelPos(n.row,0).y}}).text(function(n){return n.text}).style("opacity","0.0").transition().style("opacity","1.0").style("font-weight",function(n){return col_maxs[n.col]===n.row?"bold":"normal"})},10*tempo,function(){var n=250;return svg.selectAll("text.combined-ratio").transition().duration(n).style("opacity","0.0").remove(),n},function(){var n=tempo;return _.each(rows,function(t,r){_.each(cols,function(t,e){animFoci(cl(r,e)+".foci-0",{x:w/(cols.length+2)*(1+e)-30},n),animFoci(cl(r,e)+".foci-1",{x:w/(cols.length+2)*(1+e)+30},n)})}),n},function(){var n=tempo;return _.each(rows,function(t,r){_.each(cols,function(t,e){animFoci(cl(r,e)+".foci-0",{x:w/(cols.length+2)*(e+1)},n),animFoci(cl(r,e)+".foci-1",{x:w/(cols.length+2)*(e+1)},n)})}),n}],t=-1,forward=1,back_and_forth=!1,loop=function(){back_and_forth&&(t>=timeline.length-1?forward=-1:0>=t&&(forward=1));var n=timeline[t=(t+forward)%timeline.length];if("function"==typeof n){var r=n();void 0===r&&(r=tempo),setTimeout(loop,r)}else setTimeout(loop,n)};loop(),d3.select("body").style("font-size","1em"),svg.selectAll("text.column-label").data(cols.concat(["combined"])).enter().append("text").attr({x:function(n,t){return w/(cols.length+2)*(t+1)},y:20,anchor:"middle","class":"column-label"}).text(function(n){return n}),svg.selectAll("text.row-label").data(rows).enter().append("text").attr({x:70,y:function(n,t){return h/(rows.length+1)*(t+1)},anchor:"right","class":"row-label"}).text(function(n){return n}),svg.append("text").text("1 ball = 1 person. ").attr({x:10,y:h-10,"class":"legend-item1"});
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"d3": "3.4.6",
"underscore": "1.6.0"
}
}
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment