1{"version":3,"sources":["webpack://buildbot-www/./node_modules/d3/d3.js"],"names":["__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","d3","version","d3_arraySlice","slice","d3_array","list","call","d3_document","this","document","d3_documentElement","node","ownerDocument","documentElement","d3_window","defaultView","childNodes","nodeType","e","i","length","array","Array","Date","now","createElement","style","setProperty","error","d3_element_prototype","Element","prototype","d3_element_setAttribute","setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","name","value","space","local","priority","d3_ascending","a","b","NaN","d3_number","x","d3_numeric","isNaN","d3_bisector","compare","left","lo","hi","arguments","mid","right","ascending","descending","min","f","n","max","extent","c","sum","s","mean","j","quantile","values","p","H","h","Math","floor","v","median","numbers","push","sort","variance","d","m","deviation","apply","sqrt","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","i0","i1","t","random","permute","indexes","permutes","pairs","p1","transpose","matrix","row","zip","keys","map","key","entries","merge","arrays","merged","abs","d3_class","ctor","properties","Object","defineProperty","enumerable","d3_Map","_","create","range","start","stop","step","Infinity","Error","k","d3_range_integerScale","object","forEach","set","isArray","o","d3_map_proto","d3_map_zero","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","size","d3_map_empty","d3_Set","d3_identity","d3_rebind","target","source","method","d3_vendorSymbol","charAt","toUpperCase","d3_vendorPrefixes","prefixName","has","get","remove","empty","nest","sortValues","rollup","sortKeys","mapType","depth","keyValue","setter","valuesByKey","sortKey","keyMap","order","add","behavior","rebind","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","listeners","listenerByName","event","l","z","on","listener","indexOf","concat","d3_eventPreventDefault","preventDefault","d3_eventSource","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","hasOwnProperty","requote","replace","d3_requote_re","d3_subclass","__proto__","property","d3_selection","groups","d3_selectionPrototype","d3_select","querySelector","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","matches","Sizzle","matchesSelector","selection","select","d3_selection_selector","selector","d3_selection_selectorAll","subgroup","subnode","group","subgroups","parentNode","__data__","selectAll","d3_nsXhtml","d3_nsPrefix","svg","xhtml","xlink","xml","xmlns","d3_selection_attr","ns","qualify","removeAttributeNS","removeAttribute","d3_collapse","trim","d3_selection_classedRe","RegExp","d3_selection_classes","split","d3_selection_classed","d3_selection_classedName","re","classList","getAttribute","lastIndex","test","d3_selection_style","removeProperty","d3_selection_property","d3_selection_creator","createElementNS","namespace","namespaceURI","d3_selectionRemove","parent","removeChild","d3_selection_dataNode","data","d3_selection_filter","d3_selection_each","callback","d3_selection_enter","d3_selection_enterPrototype","prefix","attr","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","textContent","html","innerHTML","append","appendChild","insert","before","insertBefore","bind","groupData","nodeData","n0","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","update","enter","exit","datum","filter","next","nextSibling","comparator","args","d3_selection_on","capture","wrap","d3_selection_onListener","d3_selection_onFilters","onRemove","removeEventListener","$","d3_selection_onFilter","addEventListener","match","upgroup","j0","nodes","mouseenter","mouseleave","related","relatedTarget","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","click","w","suppressClick","off","setTimeout","mouse","container","d3_mousePoint","d3_mouse_bug44083","navigator","userAgent","changedTouches","ownerSVGElement","createSVGPoint","point","window","scrollX","scrollY","ctm","position","top","margin","padding","border","getScreenCTM","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","drag","origin","mousedown","dragstart","touchstart","id","subject","move","end","dragOffset","correspondingElement","dragged","dragId","dragName","dragSubject","dx","dy","position1","position0","dragRestore","ε","ε2","π","PI","τ","τε","halfπ","d3_radians","d3_degrees","d3_sgn","d3_cross2d","d3_acos","acos","d3_asin","asin","d3_cosh","exp","d3_haversin","sin","ρ","SQRT2","interpolateZoom","p0","S","ux0","uy0","w0","ux1","uy1","w1","d2","log","d1","b0","b1","r0","r1","coshr0","u","d3_sinh","duration","zoom","translate0","center0","center","mousewheelTimer","touchtime","x0","x1","y0","y1","view","scaleExtent","d3_behavior_zoomInfinity","zooming","mousemove","mouseup","g","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","scaleTo","translateTo","zoomTo","that","__chart__","pow","transition","rescale","domain","invert","zoomstarted","zoomed","scale","translate","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","targets","relocate","started","moved","ended","changed","LN2","q","l0","l1","distance1","scale1","clearTimeout","d3_behavior_zoomDelta","shiftKey","ceil","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","tween","cx","cy","copy","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","color","toString","rgb","hsl","d3_hslPrototype","d3_hsl_rgb","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","r","brighter","darker","hcl","d3_hclPrototype","d3_hcl_lab","cos","d3_lab_K","lab","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_labPrototype","d3_lab_rgb","d3_xyz_rgb","d3_lab_xyz","atan2","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","format","exec","toLowerCase","parseFloat","d3_rgb_parseNumber","d3_rgb_names","parseInt","d3_rgb_xyz","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","result","status","responseText","d3_xhrHasResponse","load","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","send","open","setRequestHeader","overrideMimeType","beforesend","abort","d3_xhr_fixCallback","functor","dsv","delimiter","reFormat","delimiterCode","charCodeAt","typedResponse","parse","formatRow","formatValue","join","parseRows","Function","JSON","stringify","eol","EOL","EOF","rows","N","I","token","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","delay","then","timer","d3_timer_step","d3_timer_mark","d3_timer_sweep","isFinite","t0","t1","time","d3_format_precision","LN10","flush","d3_formatPrefixes","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","width","substring","reverse","specifier","d3_format_re","fill","align","sign","zfill","comma","precision","suffix","integer","exponent","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","after","lastIndexOf","String","fromCharCode","X","toPrecision","toExponential","toFixed","d3_time","d3_date","d3_date_utc","UTC","getDate","getUTCDate","getDay","getUTCDay","getFullYear","getUTCFullYear","getHours","getUTCHours","getMilliseconds","getUTCMilliseconds","getMinutes","getUTCMinutes","getMonth","getUTCMonth","getSeconds","getUTCSeconds","getTime","getTimezoneOffset","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setFullYear","setUTCFullYear","setHours","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","d3_time_interval","number","date","d0","offset","dt","times","utc","d3_time_interval_utc","d3_locale_timeFormat","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","d3_time_format","template","string","d3_time_formatPads","d3_time_formats","M","L","Z","d3_time_parse","localZ","W","U","d3_time_parsers","multi","d3_time_formatMulti","d3_time_periodLookup","d3_time_dayRe","d3_time_formatRe","d3_time_dayLookup","d3_time_formatLookup","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_monthRe","d3_time_monthLookup","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","A","B","d3_time_formatPad","dayOfYear","sundayOfYear","mondayOfYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","year","day","years","interval","week","sunday","weeks","weekOfYear","-","0","d3_time_numberRe","d3_time_percentRe","names","zs","zh","zm","formats","numberFormat","timeFormat","d3_locale_enUS","d3_adder","geo","d3_adderSum","d3_adderTemp","reset","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","stream","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","sphere","Point","coordinates","MultiPoint","LineString","d3_geo_streamLine","MultiLineString","Polygon","d3_geo_streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","area","d3_geo_areaSum","d3_geo_area","d3_geo_centroidW0","d3_geo_centroidW1","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_areaRingSum","d3_geo_areaRingStart","λ00","φ00","λ0","cosφ0","sinφ0","nextPoint","λ","φ","dλ","sdλ","adλ","cosφ","sinφ","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","bounds","φ0","λ1","φ1","λ_","λ__","φ__","dλSum","ranges","bound","ringPoint","ringStart","ringEnd","linePoint","normal","inflection","λi","antimeridian","φi","angle","compareRanges","withinRange","best","centroid","d3_geo_centroid","d3_geo_centroidPoint","d3_geo_centroidLineStart","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","d3_geo_centroidPointXYZ","z0","cz","d3_geo_compose","compose","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","clip","segment","d3_geo_clipPolygonIntersection","d3_geo_clipPolygonLinkCircular","entry","points","current","isSubject","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","line","rotatedClipStart","pointRing","polygon","meridian","parallel","meridianNormal","polarAngle","winding","ring","point0","arc","intersection","φarc","d3_geo_pointInPolygon","polygonStarted","d3_geo_clipSort","pointLine","buffer","d3_geo_clipBufferListener","ringListener","clean","ringSegments","pop","shift","d3_geo_clipSegmentLength1","lines","rejoin","d3_geo_clipAntimeridian","sλ0","sλ1","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianIntersect","from","to","direction","d3_geom_clipLine","ax","ay","d3_geo_clipExtentMAX","d3_geo_clipExtent","x__","y__","v__","x_","y_","v_","first","listener_","bufferListener","wn","insidePolygon","inside","visible","a1","corner","comparePoints","ca","cb","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","C","ρ0","forward","ρ0_y","clipExtent","output","valid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathAreaPolygon","d3_geo_pathBoundsX0","d3_geo_pathBoundsY0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY1","d3_geo_pathArea","d3_geo_pathAreaRingStart","x00","y00","d3_geo_pathBounds","d3_geo_pathBuffer","pointCircle","d3_geo_pathBufferCircle","pointLineStart","lineEndPolygon","pointRadius","radius","d3_geo_lengthSum","d3_geo_pathCentroid","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","δ2","cosMinDistance","maxDepth","resample","a00","b00","c00","a0","c0","resampleLineTo","d3_geo_transformPoint","c1","φ2","λ2","x2","y2","dx2","dy2","dz","d3_geo_transform","d3_geo_projection","projectRotate","δx","δy","projectResample","δλ","δφ","δγ","preclip","postclip","clipAngle","projection","d3_geo_rotation","invalidate","d3_geo_projectionRadians","cr","smallRadius","notHemisphere","v0","v00","point2","point1","code","intersect","d3_geo_circleInterpolate","two","n1","n2","n2n2","n1n2","determinant","c2","n1xn2","uu","t2","polar","q1","d3_geo_clipCircle","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","path","projectStream","contextStream","cacheStream","transform","methods","projectionMutator","equirectangular","circle","distance","Δλ","sinΔλ","cosΔλ","sinφ1","graticule","X1","X0","Y1","Y0","DX","DY","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","d3_geo_conicConformal","F","d3_geo_mercator","d3_geo_conicEquidistant","G","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","d3_geo_mercatorProjection","clipAuto","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","stereographic","transverseMercator","geom","vertices","fx","fy","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","input","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","vertex","previous","P","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","lSite","bx","by","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","d3_geom_voronoiEdge","d3_geom_voronoiHalfEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","splice","d3_geom_voronoiClipEdges","cell","iHalfEdge","halfEdges","nHalfEdges","cells","iCell","prepare","d3_geom_voronoiCloseCells","diagram","grandpa","uncle","sibling","voronoi","d3_geom_voronoiClipExtent","polygons","links","triangles","s0","s1","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","delaunay","quadtree","compat","xs","ys","x1_","y1_","x2_","y2_","leaf","nx","ny","insertChild","nPoint","xm","ym","below","root","visit","d3_geom_quadtreeVisit","sx","sy","children","find","closestPoint","minDistance2","distance2","d3_geom_quadtreeFind","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","na","nb","interpolateArray","d3_ease_default","d3_ease","linear","poly","quad","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","back","bounce","d3_ease_bounce","d3_ease_mode","in","out","d3_ease_reverse","in-out","d3_ease_reflect","out-in","d3_ease_cubicInOut","t3","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","ky","skew","ease","interpolateHcl","ah","ac","al","bh","bc","bl","interpolateHsl","as","interpolateLab","aa","ba","interpolateRound","baseVal","consolidate","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTransform","ta","tb","d3_interpolateTranslate","ra","rb","d3_interpolateRotate","wa","wb","d3_interpolateSkew","ka","kb","d3_interpolateScale","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","aNodes","d3_layout_bundleAncestors","bNodes","aNode","bNode","sharedNode","d3_layout_bundleLeastCommonAncestor","ancestors","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","interpolateTransform","layout","bundle","paths","chord","chords","sortGroups","sortSubgroups","sortChords","relayout","groupSums","groupIndex","subgroupIndex","di","dj","subindex","startAngle","endAngle","resort","force","alpha","distances","strengths","charges","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","charge","chargeDistance2","d3_layout_forceChargeDistance2","gravity","theta2","repulse","dw","dn","pointCharge","dragmove","resume","tick","weight","d3_layout_forceAccumulate","chargeDistance","theta","neighbors","dimension","candidates","d3_layout_hierarchyRebind","hierarchy","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","stack","childs","revalue","partition","pie","Number","d3_layout_pieSortByValue","padAngle","da","pa","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","bottom","tops","bottoms","default","silhouette","wiggle","s2","s3","o0","expand","zero","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","d3_layout_packUnlink","db","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeAncestor","vim","ancestor","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","bins","thresholds","pack","d3_layout_packTransform","separation","nodeSize","root0","root1","node1","queue","wrapTree","firstWalk","secondWalk","sizeNode","tx","siblings","d3_layout_treeShift","midpoint","vip","vop","vom","sip","sop","sim","som","apportion","cluster","previousNode","d3_layout_clusterX","d3_layout_clusterY","d3_layout_clusterLeft","d3_layout_clusterRight","treemap","stickies","pad","sticky","mode","ratio","squarify","score","remaining","worst","stickify","rmax","rmin","padConstant","µ","σ","logNormal","bates","irwinHall","d3_scale_polylinear","d3_scale_linearRebind","d3_scale_linearNice","d3_scale_linearTickRange","span","err","d3_scale_linearTicks","d3_scale_linearTickFormat","d3_scale_linearPrecision","d3_scale_linearFormatSignificant","d3_scale_linearFormatPrecision","d3_scale_linear","clamp","rangeRound","ticks","tickFormat","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_powPow","d3_scale_pow","powp","powb","ordinal","d3_scale_ordinal","rangeBand","steps","xi","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_zero","d3_scale_quantile","quantiles","invertExtent","quantize","d3_scale_quantize","threshold","d3_scale_threshold","identity","d3_scale_identity","innerRadius","d3_svg_arcInnerRadius","outerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","cw","rc","circleSegment","rp","ap","d3_svg_arcSweep","h1","h0","rc1","rc0","oc","kc","lc","t30","d3_svg_arcCornerTangents","t12","t03","t21","x01","y01","ox","oy","D","cx0","cx1","dx0","dy0","dx1","dy1","d3_svg_line","defined","d3_svg_lineLinear","interpolateKey","tension","d3_svg_lineInterpolators","linear-closed","d3_svg_lineLinearClosed","step-before","d3_svg_lineStepBefore","step-after","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","basis-open","pi","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","basis-closed","cardinal","d3_svg_lineHermite","d3_svg_lineCardinalTangents","cardinal-open","cardinal-closed","monotone","tangents","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","lp","p2","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","radial","curve","self","diagonal","p3","projection_","d3_svg_diagonalRadialProjection","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transitionNode","d3_transition","interrupt","d3_selection_interruptNS","lock","activeId","active","count","d3_transitionPrototype","d3_transition_tween","d3_transition_text","inherit","tweens","elapsed","cancelId","cancel","subnodes","nameNS","attrNull","attrNullNS","attrTween","styleNull","styleTween","inheritId","id0","id1","axis","tickFormat_","orient","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","tickEnter","tickExit","tickUpdate","tickSpacing","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSize","tickSubdivide","brush","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","background","resize","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","eventTarget","event_","resizing","resizingX","resizingY","dragging","keyCode","brushmove","brushend","ex","ey","altKey","move1","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","d3_time_formatIsoNative","toISOString","d3_time_scale","tickMethod","d3_time_scaleSteps","d3_time_scaleMilliseconds","d3_time_scaleDate","skip","skipped","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","d3_json","d3_html","createRange","selectNode","body","createContextualFragment","json","responseXML","undefined","exports","__webpack_require__","module"],"mappings":"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","file":"2.js","sourcesContent":["!function() {\n  var d3 = {\n    version: \"3.5.17\"\n  };\n  var d3_arraySlice = [].slice, d3_array = function(list) {\n    return d3_arraySlice.call(list);\n  };\n  var d3_document = this.document;\n  function d3_documentElement(node) {\n    return node && (node.ownerDocument || node.document || node).documentElement;\n  }\n  function d3_window(node) {\n    return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n  }\n  if (d3_document) {\n    try {\n      d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n    } catch (e) {\n      d3_array = function(list) {\n        var i = list.length, array = new Array(i);\n        while (i--) array[i] = list[i];\n        return array;\n      };\n    }\n  }\n  if (!Date.now) Date.now = function() {\n    return +new Date();\n  };\n  if (d3_document) {\n    try {\n      d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n    } catch (error) {\n      var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n      d3_element_prototype.setAttribute = function(name, value) {\n        d3_element_setAttribute.call(this, name, value + \"\");\n      };\n      d3_element_prototype.setAttributeNS = function(space, local, value) {\n        d3_element_setAttributeNS.call(this, space, local, value + \"\");\n      };\n      d3_style_prototype.setProperty = function(name, value, priority) {\n        d3_style_setProperty.call(this, name, value + \"\", priority);\n      };\n    }\n  }\n  d3.ascending = d3_ascending;\n  function d3_ascending(a, b) {\n    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n  }\n  d3.descending = function(a, b) {\n    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n  };\n  d3.min = function(array, f) {\n    var i = -1, n = array.length, a, b;\n    if (arguments.length === 1) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) {\n        a = b;\n        break;\n      }\n      while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n    } else {\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n        a = b;\n        break;\n      }\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n    }\n    return a;\n  };\n  d3.max = function(array, f) {\n    var i = -1, n = array.length, a, b;\n    if (arguments.length === 1) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) {\n        a = b;\n        break;\n      }\n      while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n    } else {\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n        a = b;\n        break;\n      }\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n    }\n    return a;\n  };\n  d3.extent = function(array, f) {\n    var i = -1, n = array.length, a, b, c;\n    if (arguments.length === 1) {\n      while (++i < n) if ((b = array[i]) != null && b >= b) {\n        a = c = b;\n        break;\n      }\n      while (++i < n) if ((b = array[i]) != null) {\n        if (a > b) a = b;\n        if (c < b) c = b;\n      }\n    } else {\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n        a = c = b;\n        break;\n      }\n      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n        if (a > b) a = b;\n        if (c < b) c = b;\n      }\n    }\n    return [ a, c ];\n  };\n  function d3_number(x) {\n    return x === null ? NaN : +x;\n  }\n  function d3_numeric(x) {\n    return !isNaN(x);\n  }\n  d3.sum = function(array, f) {\n    var s = 0, n = array.length, a, i = -1;\n    if (arguments.length === 1) {\n      while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n    } else {\n      while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n    }\n    return s;\n  };\n  d3.mean = function(array, f) {\n    var s = 0, n = array.length, a, i = -1, j = n;\n    if (arguments.length === 1) {\n      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;\n    } else {\n      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;\n    }\n    if (j) return s / j;\n  };\n  d3.quantile = function(values, p) {\n    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n    return e ? v + e * (values[h] - v) : v;\n  };\n  d3.median = function(array, f) {\n    var numbers = [], n = array.length, a, i = -1;\n    if (arguments.length === 1) {\n      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n    } else {\n      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n    }\n    if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);\n  };\n  d3.variance = function(array, f) {\n    var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n    if (arguments.length === 1) {\n      while (++i < n) {\n        if (d3_numeric(a = d3_number(array[i]))) {\n          d = a - m;\n          m += d / ++j;\n          s += d * (a - m);\n        }\n      }\n    } else {\n      while (++i < n) {\n        if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n          d = a - m;\n          m += d / ++j;\n          s += d * (a - m);\n        }\n      }\n    }\n    if (j > 1) return s / (j - 1);\n  };\n  d3.deviation = function() {\n    var v = d3.variance.apply(this, arguments);\n    return v ? Math.sqrt(v) : v;\n  };\n  function d3_bisector(compare) {\n    return {\n      left: function(a, x, lo, hi) {\n        if (arguments.length < 3) lo = 0;\n        if (arguments.length < 4) hi = a.length;\n        while (lo < hi) {\n          var mid = lo + hi >>> 1;\n          if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n        }\n        return lo;\n      },\n      right: function(a, x, lo, hi) {\n        if (arguments.length < 3) lo = 0;\n        if (arguments.length < 4) hi = a.length;\n        while (lo < hi) {\n          var mid = lo + hi >>> 1;\n          if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n        }\n        return lo;\n      }\n    };\n  }\n  var d3_bisect = d3_bisector(d3_ascending);\n  d3.bisectLeft = d3_bisect.left;\n  d3.bisect = d3.bisectRight = d3_bisect.right;\n  d3.bisector = function(f) {\n    return d3_bisector(f.length === 1 ? function(d, x) {\n      return d3_ascending(f(d), x);\n    } : f);\n  };\n  d3.shuffle = function(array, i0, i1) {\n    if ((m = arguments.length) < 3) {\n      i1 = array.length;\n      if (m < 2) i0 = 0;\n    }\n    var m = i1 - i0, t, i;\n    while (m) {\n      i = Math.random() * m-- | 0;\n      t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n    }\n    return array;\n  };\n  d3.permute = function(array, indexes) {\n    var i = indexes.length, permutes = new Array(i);\n    while (i--) permutes[i] = array[indexes[i]];\n    return permutes;\n  };\n  d3.pairs = function(array) {\n    var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n    while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n    return pairs;\n  };\n  d3.transpose = function(matrix) {\n    if (!(n = matrix.length)) return [];\n    for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n      for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n        row[j] = matrix[j][i];\n      }\n    }\n    return transpose;\n  };\n  function d3_transposeLength(d) {\n    return d.length;\n  }\n  d3.zip = function() {\n    return d3.transpose(arguments);\n  };\n  d3.keys = function(map) {\n    var keys = [];\n    for (var key in map) keys.push(key);\n    return keys;\n  };\n  d3.values = function(map) {\n    var values = [];\n    for (var key in map) values.push(map[key]);\n    return values;\n  };\n  d3.entries = function(map) {\n    var entries = [];\n    for (var key in map) entries.push({\n      key: key,\n      value: map[key]\n    });\n    return entries;\n  };\n  d3.merge = function(arrays) {\n    var n = arrays.length, m, i = -1, j = 0, merged, array;\n    while (++i < n) j += arrays[i].length;\n    merged = new Array(j);\n    while (--n >= 0) {\n      array = arrays[n];\n      m = array.length;\n      while (--m >= 0) {\n        merged[--j] = array[m];\n      }\n    }\n    return merged;\n  };\n  var abs = Math.abs;\n  d3.range = function(start, stop, step) {\n    if (arguments.length < 3) {\n      step = 1;\n      if (arguments.length < 2) {\n        stop = start;\n        start = 0;\n      }\n    }\n    if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n    var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n    start *= k, stop *= k, step *= k;\n    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n    return range;\n  };\n  function d3_range_integerScale(x) {\n    var k = 1;\n    while (x * k % 1) k *= 10;\n    return k;\n  }\n  function d3_class(ctor, properties) {\n    for (var key in properties) {\n      Object.defineProperty(ctor.prototype, key, {\n        value: properties[key],\n        enumerable: false\n      });\n    }\n  }\n  d3.map = function(object, f) {\n    var map = new d3_Map();\n    if (object instanceof d3_Map) {\n      object.forEach(function(key, value) {\n        map.set(key, value);\n      });\n    } else if (Array.isArray(object)) {\n      var i = -1, n = object.length, o;\n      if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n    } else {\n      for (var key in object) map.set(key, object[key]);\n    }\n    return map;\n  };\n  function d3_Map() {\n    this._ = Object.create(null);\n  }\n  var d3_map_proto = \"__proto__\", d3_map_zero = \"\\x00\";\n  d3_class(d3_Map, {\n    has: d3_map_has,\n    get: function(key) {\n      return this._[d3_map_escape(key)];\n    },\n    set: function(key, value) {\n      return this._[d3_map_escape(key)] = value;\n    },\n    remove: d3_map_remove,\n    keys: d3_map_keys,\n    values: function() {\n      var values = [];\n      for (var key in this._) values.push(this._[key]);\n      return values;\n    },\n    entries: function() {\n      var entries = [];\n      for (var key in this._) entries.push({\n        key: d3_map_unescape(key),\n        value: this._[key]\n      });\n      return entries;\n    },\n    size: d3_map_size,\n    empty: d3_map_empty,\n    forEach: function(f) {\n      for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n    }\n  });\n  function d3_map_escape(key) {\n    return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n  }\n  function d3_map_unescape(key) {\n    return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n  }\n  function d3_map_has(key) {\n    return d3_map_escape(key) in this._;\n  }\n  function d3_map_remove(key) {\n    return (key = d3_map_escape(key)) in this._ && delete this._[key];\n  }\n  function d3_map_keys() {\n    var keys = [];\n    for (var key in this._) keys.push(d3_map_unescape(key));\n    return keys;\n  }\n  function d3_map_size() {\n    var size = 0;\n    for (var key in this._) ++size;\n    return size;\n  }\n  function d3_map_empty() {\n    for (var key in this._) return false;\n    return true;\n  }\n  d3.nest = function() {\n    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n    function map(mapType, array, depth) {\n      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n      var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n      while (++i < n) {\n        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n          values.push(object);\n        } else {\n          valuesByKey.set(keyValue, [ object ]);\n        }\n      }\n      if (mapType) {\n        object = mapType();\n        setter = function(keyValue, values) {\n          object.set(keyValue, map(mapType, values, depth));\n        };\n      } else {\n        object = {};\n        setter = function(keyValue, values) {\n          object[keyValue] = map(mapType, values, depth);\n        };\n      }\n      valuesByKey.forEach(setter);\n      return object;\n    }\n    function entries(map, depth) {\n      if (depth >= keys.length) return map;\n      var array = [], sortKey = sortKeys[depth++];\n      map.forEach(function(key, keyMap) {\n        array.push({\n          key: key,\n          values: entries(keyMap, depth)\n        });\n      });\n      return sortKey ? array.sort(function(a, b) {\n        return sortKey(a.key, b.key);\n      }) : array;\n    }\n    nest.map = function(array, mapType) {\n      return map(mapType, array, 0);\n    };\n    nest.entries = function(array) {\n      return entries(map(d3.map, array, 0), 0);\n    };\n    nest.key = function(d) {\n      keys.push(d);\n      return nest;\n    };\n    nest.sortKeys = function(order) {\n      sortKeys[keys.length - 1] = order;\n      return nest;\n    };\n    nest.sortValues = function(order) {\n      sortValues = order;\n      return nest;\n    };\n    nest.rollup = function(f) {\n      rollup = f;\n      return nest;\n    };\n    return nest;\n  };\n  d3.set = function(array) {\n    var set = new d3_Set();\n    if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n    return set;\n  };\n  function d3_Set() {\n    this._ = Object.create(null);\n  }\n  d3_class(d3_Set, {\n    has: d3_map_has,\n    add: function(key) {\n      this._[d3_map_escape(key += \"\")] = true;\n      return key;\n    },\n    remove: d3_map_remove,\n    values: d3_map_keys,\n    size: d3_map_size,\n    empty: d3_map_empty,\n    forEach: function(f) {\n      for (var key in this._) f.call(this, d3_map_unescape(key));\n    }\n  });\n  d3.behavior = {};\n  function d3_identity(d) {\n    return d;\n  }\n  d3.rebind = function(target, source) {\n    var i = 1, n = arguments.length, method;\n    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n    return target;\n  };\n  function d3_rebind(target, source, method) {\n    return function() {\n      var value = method.apply(source, arguments);\n      return value === source ? target : value;\n    };\n  }\n  function d3_vendorSymbol(object, name) {\n    if (name in object) return name;\n    name = name.charAt(0).toUpperCase() + name.slice(1);\n    for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n      var prefixName = d3_vendorPrefixes[i] + name;\n      if (prefixName in object) return prefixName;\n    }\n  }\n  var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n  function d3_noop() {}\n  d3.dispatch = function() {\n    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n    return dispatch;\n  };\n  function d3_dispatch() {}\n  d3_dispatch.prototype.on = function(type, listener) {\n    var i = type.indexOf(\".\"), name = \"\";\n    if (i >= 0) {\n      name = type.slice(i + 1);\n      type = type.slice(0, i);\n    }\n    if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n    if (arguments.length === 2) {\n      if (listener == null) for (type in this) {\n        if (this.hasOwnProperty(type)) this[type].on(name, null);\n      }\n      return this;\n    }\n  };\n  function d3_dispatch_event(dispatch) {\n    var listeners = [], listenerByName = new d3_Map();\n    function event() {\n      var z = listeners, i = -1, n = z.length, l;\n      while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n      return dispatch;\n    }\n    event.on = function(name, listener) {\n      var l = listenerByName.get(name), i;\n      if (arguments.length < 2) return l && l.on;\n      if (l) {\n        l.on = null;\n        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n        listenerByName.remove(name);\n      }\n      if (listener) listeners.push(listenerByName.set(name, {\n        on: listener\n      }));\n      return dispatch;\n    };\n    return event;\n  }\n  d3.event = null;\n  function d3_eventPreventDefault() {\n    d3.event.preventDefault();\n  }\n  function d3_eventSource() {\n    var e = d3.event, s;\n    while (s = e.sourceEvent) e = s;\n    return e;\n  }\n  function d3_eventDispatch(target) {\n    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n    dispatch.of = function(thiz, argumentz) {\n      return function(e1) {\n        try {\n          var e0 = e1.sourceEvent = d3.event;\n          e1.target = target;\n          d3.event = e1;\n          dispatch[e1.type].apply(thiz, argumentz);\n        } finally {\n          d3.event = e0;\n        }\n      };\n    };\n    return dispatch;\n  }\n  d3.requote = function(s) {\n    return s.replace(d3_requote_re, \"\\\\$&\");\n  };\n  var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n  var d3_subclass = {}.__proto__ ? function(object, prototype) {\n    object.__proto__ = prototype;\n  } : function(object, prototype) {\n    for (var property in prototype) object[property] = prototype[property];\n  };\n  function d3_selection(groups) {\n    d3_subclass(groups, d3_selectionPrototype);\n    return groups;\n  }\n  var d3_select = function(s, n) {\n    return n.querySelector(s);\n  }, d3_selectAll = function(s, n) {\n    return n.querySelectorAll(s);\n  }, d3_selectMatches = function(n, s) {\n    var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n    d3_selectMatches = function(n, s) {\n      return d3_selectMatcher.call(n, s);\n    };\n    return d3_selectMatches(n, s);\n  };\n  if (typeof Sizzle === \"function\") {\n    d3_select = function(s, n) {\n      return Sizzle(s, n)[0] || null;\n    };\n    d3_selectAll = Sizzle;\n    d3_selectMatches = Sizzle.matchesSelector;\n  }\n  d3.selection = function() {\n    return d3.select(d3_document.documentElement);\n  };\n  var d3_selectionPrototype = d3.selection.prototype = [];\n  d3_selectionPrototype.select = function(selector) {\n    var subgroups = [], subgroup, subnode, group, node;\n    selector = d3_selection_selector(selector);\n    for (var j = -1, m = this.length; ++j < m; ) {\n      subgroups.push(subgroup = []);\n      subgroup.parentNode = (group = this[j]).parentNode;\n      for (var i = -1, n = group.length; ++i < n; ) {\n        if (node = group[i]) {\n          subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n          if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n        } else {\n          subgroup.push(null);\n        }\n      }\n    }\n    return d3_selection(subgroups);\n  };\n  function d3_selection_selector(selector) {\n    return typeof selector === \"function\" ? selector : function() {\n      return d3_select(selector, this);\n    };\n  }\n  d3_selectionPrototype.selectAll = function(selector) {\n    var subgroups = [], subgroup, node;\n    selector = d3_selection_selectorAll(selector);\n    for (var j = -1, m = this.length; ++j < m; ) {\n      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n        if (node = group[i]) {\n          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n          subgroup.parentNode = node;\n        }\n      }\n    }\n    return d3_selection(subgroups);\n  };\n  function d3_selection_selectorAll(selector) {\n    return typeof selector === \"function\" ? selector : function() {\n      return d3_selectAll(selector, this);\n    };\n  }\n  var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n  var d3_nsPrefix = {\n    svg: \"http://www.w3.org/2000/svg\",\n    xhtml: d3_nsXhtml,\n    xlink: \"http://www.w3.org/1999/xlink\",\n    xml: \"http://www.w3.org/XML/1998/namespace\",\n    xmlns: \"http://www.w3.org/2000/xmlns/\"\n  };\n  d3.ns = {\n    prefix: d3_nsPrefix,\n    qualify: function(name) {\n      var i = name.indexOf(\":\"), prefix = name;\n      if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n      return d3_nsPrefix.hasOwnProperty(prefix) ? {\n        space: d3_nsPrefix[prefix],\n        local: name\n      } : name;\n    }\n  };\n  d3_selectionPrototype.attr = function(name, value) {\n    if (arguments.length < 2) {\n      if (typeof name === \"string\") {\n        var node = this.node();\n        name = d3.ns.qualify(name);\n        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n      }\n      for (value in name) this.each(d3_selection_attr(value, name[value]));\n      return this;\n    }\n    return this.each(d3_selection_attr(name, value));\n  };\n  function d3_selection_attr(name, value) {\n    name = d3.ns.qualify(name);\n    function attrNull() {\n      this.removeAttribute(name);\n    }\n    function attrNullNS() {\n      this.removeAttributeNS(name.space, name.local);\n    }\n    function attrConstant() {\n      this.setAttribute(name, value);\n    }\n    function attrConstantNS() {\n      this.setAttributeNS(name.space, name.local, value);\n    }\n    function attrFunction() {\n      var x = value.apply(this, arguments);\n      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n    }\n    function attrFunctionNS() {\n      var x = value.apply(this, arguments);\n      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n    }\n    return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n  }\n  function d3_collapse(s) {\n    return s.trim().replace(/\\s+/g, \" \");\n  }\n  d3_selectionPrototype.classed = function(name, value) {\n    if (arguments.length < 2) {\n      if (typeof name === \"string\") {\n        var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n        if (value = node.classList) {\n          while (++i < n) if (!value.contains(name[i])) return false;\n        } else {\n          value = node.getAttribute(\"class\");\n          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n        }\n        return true;\n      }\n      for (value in name) this.each(d3_selection_classed(value, name[value]));\n      return this;\n    }\n    return this.each(d3_selection_classed(name, value));\n  };\n  function d3_selection_classedRe(name) {\n    return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n  }\n  function d3_selection_classes(name) {\n    return (name + \"\").trim().split(/^|\\s+/);\n  }\n  function d3_selection_classed(name, value) {\n    name = d3_selection_classes(name).map(d3_selection_classedName);\n    var n = name.length;\n    function classedConstant() {\n      var i = -1;\n      while (++i < n) name[i](this, value);\n    }\n    function classedFunction() {\n      var i = -1, x = value.apply(this, arguments);\n      while (++i < n) name[i](this, x);\n    }\n    return typeof value === \"function\" ? classedFunction : classedConstant;\n  }\n  function d3_selection_classedName(name) {\n    var re = d3_selection_classedRe(name);\n    return function(node, value) {\n      if (c = node.classList) return value ? c.add(name) : c.remove(name);\n      var c = node.getAttribute(\"class\") || \"\";\n      if (value) {\n        re.lastIndex = 0;\n        if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n      } else {\n        node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n      }\n    };\n  }\n  d3_selectionPrototype.style = function(name, value, priority) {\n    var n = arguments.length;\n    if (n < 3) {\n      if (typeof name !== \"string\") {\n        if (n < 2) value = \"\";\n        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n        return this;\n      }\n      if (n < 2) {\n        var node = this.node();\n        return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);\n      }\n      priority = \"\";\n    }\n    return this.each(d3_selection_style(name, value, priority));\n  };\n  function d3_selection_style(name, value, priority) {\n    function styleNull() {\n      this.style.removeProperty(name);\n    }\n    function styleConstant() {\n      this.style.setProperty(name, value, priority);\n    }\n    function styleFunction() {\n      var x = value.apply(this, arguments);\n      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n    }\n    return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n  }\n  d3_selectionPrototype.property = function(name, value) {\n    if (arguments.length < 2) {\n      if (typeof name === \"string\") return this.node()[name];\n      for (value in name) this.each(d3_selection_property(value, name[value]));\n      return this;\n    }\n    return this.each(d3_selection_property(name, value));\n  };\n  function d3_selection_property(name, value) {\n    function propertyNull() {\n      delete this[name];\n    }\n    function propertyConstant() {\n      this[name] = value;\n    }\n    function propertyFunction() {\n      var x = value.apply(this, arguments);\n      if (x == null) delete this[name]; else this[name] = x;\n    }\n    return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n  }\n  d3_selectionPrototype.text = function(value) {\n    return arguments.length ? this.each(typeof value === \"function\" ? function() {\n      var v = value.apply(this, arguments);\n      this.textContent = v == null ? \"\" : v;\n    } : value == null ? function() {\n      this.textContent = \"\";\n    } : function() {\n      this.textContent = value;\n    }) : this.node().textContent;\n  };\n  d3_selectionPrototype.html = function(value) {\n    return arguments.length ? this.each(typeof value === \"function\" ? function() {\n      var v = value.apply(this, arguments);\n      this.innerHTML = v == null ? \"\" : v;\n    } : value == null ? function() {\n      this.innerHTML = \"\";\n    } : function() {\n      this.innerHTML = value;\n    }) : this.node().innerHTML;\n  };\n  d3_selectionPrototype.append = function(name) {\n    name = d3_selection_creator(name);\n    return this.select(function() {\n      return this.appendChild(name.apply(this, arguments));\n    });\n  };\n  function d3_selection_creator(name) {\n    function create() {\n      var document = this.ownerDocument, namespace = this.namespaceURI;\n      return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);\n    }\n    function createNS() {\n      return this.ownerDocument.createElementNS(name.space, name.local);\n    }\n    return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;\n  }\n  d3_selectionPrototype.insert = function(name, before) {\n    name = d3_selection_creator(name);\n    before = d3_selection_selector(before);\n    return this.select(function() {\n      return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n    });\n  };\n  d3_selectionPrototype.remove = function() {\n    return this.each(d3_selectionRemove);\n  };\n  function d3_selectionRemove() {\n    var parent = this.parentNode;\n    if (parent) parent.removeChild(this);\n  }\n  d3_selectionPrototype.data = function(value, key) {\n    var i = -1, n = this.length, group, node;\n    if (!arguments.length) {\n      value = new Array(n = (group = this[0]).length);\n      while (++i < n) {\n        if (node = group[i]) {\n          value[i] = node.__data__;\n        }\n      }\n      return value;\n    }\n    function bind(group, groupData) {\n      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n      if (key) {\n        var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;\n        for (i = -1; ++i < n; ) {\n          if (node = group[i]) {\n            if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {\n              exitNodes[i] = node;\n            } else {\n              nodeByKeyValue.set(keyValue, node);\n            }\n            keyValues[i] = keyValue;\n          }\n        }\n        for (i = -1; ++i < m; ) {\n          if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {\n            enterNodes[i] = d3_selection_dataNode(nodeData);\n          } else if (node !== true) {\n            updateNodes[i] = node;\n            node.__data__ = nodeData;\n          }\n          nodeByKeyValue.set(keyValue, true);\n        }\n        for (i = -1; ++i < n; ) {\n          if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {\n            exitNodes[i] = group[i];\n          }\n        }\n      } else {\n        for (i = -1; ++i < n0; ) {\n          node = group[i];\n          nodeData = groupData[i];\n          if (node) {\n            node.__data__ = nodeData;\n            updateNodes[i] = node;\n          } else {\n            enterNodes[i] = d3_selection_dataNode(nodeData);\n          }\n        }\n        for (;i < m; ++i) {\n          enterNodes[i] = d3_selection_dataNode(groupData[i]);\n        }\n        for (;i < n; ++i) {\n          exitNodes[i] = group[i];\n        }\n      }\n      enterNodes.update = updateNodes;\n      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n      enter.push(enterNodes);\n      update.push(updateNodes);\n      exit.push(exitNodes);\n    }\n    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n    if (typeof value === \"function\") {\n      while (++i < n) {\n        bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n      }\n    } else {\n      while (++i < n) {\n        bind(group = this[i], value);\n      }\n    }\n    update.enter = function() {\n      return enter;\n    };\n    update.exit = function() {\n      return exit;\n    };\n    return update;\n  };\n  function d3_selection_dataNode(data) {\n    return {\n      __data__: data\n    };\n  }\n  d3_selectionPrototype.datum = function(value) {\n    return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n  };\n  d3_selectionPrototype.filter = function(filter) {\n    var subgroups = [], subgroup, group, node;\n    if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n    for (var j = 0, m = this.length; j < m; j++) {\n      subgroups.push(subgroup = []);\n      subgroup.parentNode = (group = this[j]).parentNode;\n      for (var i = 0, n = group.length; i < n; i++) {\n        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n          subgroup.push(node);\n        }\n      }\n    }\n    return d3_selection(subgroups);\n  };\n  function d3_selection_filter(selector) {\n    return function() {\n      return d3_selectMatches(this, selector);\n    };\n  }\n  d3_selectionPrototype.order = function() {\n    for (var j = -1, m = this.length; ++j < m; ) {\n      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n        if (node = group[i]) {\n          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n          next = node;\n        }\n      }\n    }\n    return this;\n  };\n  d3_selectionPrototype.sort = function(comparator) {\n    comparator = d3_selection_sortComparator.apply(this, arguments);\n    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n    return this.order();\n  };\n  function d3_selection_sortComparator(comparator) {\n    if (!arguments.length) comparator = d3_ascending;\n    return function(a, b) {\n      return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n    };\n  }\n  d3_selectionPrototype.each = function(callback) {\n    return d3_selection_each(this, function(node, i, j) {\n      callback.call(node, node.__data__, i, j);\n    });\n  };\n  function d3_selection_each(groups, callback) {\n    for (var j = 0, m = groups.length; j < m; j++) {\n      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n        if (node = group[i]) callback(node, i, j);\n      }\n    }\n    return groups;\n  }\n  d3_selectionPrototype.call = function(callback) {\n    var args = d3_array(arguments);\n    callback.apply(args[0] = this, args);\n    return this;\n  };\n  d3_selectionPrototype.empty = function() {\n    return !this.node();\n  };\n  d3_selectionPrototype.node = function() {\n    for (var j = 0, m = this.length; j < m; j++) {\n      for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n        var node = group[i];\n        if (node) return node;\n      }\n    }\n    return null;\n  };\n  d3_selectionPrototype.size = function() {\n    var n = 0;\n    d3_selection_each(this, function() {\n      ++n;\n    });\n    return n;\n  };\n  function d3_selection_enter(selection) {\n    d3_subclass(selection, d3_selection_enterPrototype);\n    return selection;\n  }\n  var d3_selection_enterPrototype = [];\n  d3.selection.enter = d3_selection_enter;\n  d3.selection.enter.prototype = d3_selection_enterPrototype;\n  d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n  d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n  d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n  d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n  d3_selection_enterPrototype.select = function(selector) {\n    var subgroups = [], subgroup, subnode, upgroup, group, node;\n    for (var j = -1, m = this.length; ++j < m; ) {\n      upgroup = (group = this[j]).update;\n      subgroups.push(subgroup = []);\n      subgroup.parentNode = group.parentNode;\n      for (var i = -1, n = group.length; ++i < n; ) {\n        if (node = group[i]) {\n          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n          subnode.__data__ = node.__data__;\n        } else {\n          subgroup.push(null);\n        }\n      }\n    }\n    return d3_selection(subgroups);\n  };\n  d3_selection_enterPrototype.insert = function(name, before) {\n    if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n    return d3_selectionPrototype.insert.call(this, name, before);\n  };\n  function d3_selection_enterInsertBefore(enter) {\n    var i0, j0;\n    return function(d, i, j) {\n      var group = enter[j].update, n = group.length, node;\n      if (j != j0) j0 = j, i0 = 0;\n      if (i >= i0) i0 = i + 1;\n      while (!(node = group[i0]) && ++i0 < n) ;\n      return node;\n    };\n  }\n  d3.select = function(node) {\n    var group;\n    if (typeof node === \"string\") {\n      group = [ d3_select(node, d3_document) ];\n      group.parentNode = d3_document.documentElement;\n    } else {\n      group = [ node ];\n      group.parentNode = d3_documentElement(node);\n    }\n    return d3_selection([ group ]);\n  };\n  d3.selectAll = function(nodes) {\n    var group;\n    if (typeof nodes === \"string\") {\n      group = d3_array(d3_selectAll(nodes, d3_document));\n      group.parentNode = d3_document.documentElement;\n    } else {\n      group = d3_array(nodes);\n      group.parentNode = null;\n    }\n    return d3_selection([ group ]);\n  };\n  d3_selectionPrototype.on = function(type, listener, capture) {\n    var n = arguments.length;\n    if (n < 3) {\n      if (typeof type !== \"string\") {\n        if (n < 2) listener = false;\n        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n        return this;\n      }\n      if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n      capture = false;\n    }\n    return this.each(d3_selection_on(type, listener, capture));\n  };\n  function d3_selection_on(type, listener, capture) {\n    var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n    if (i > 0) type = type.slice(0, i);\n    var filter = d3_selection_onFilters.get(type);\n    if (filter) type = filter, wrap = d3_selection_onFilter;\n    function onRemove() {\n      var l = this[name];\n      if (l) {\n        this.removeEventListener(type, l, l.$);\n        delete this[name];\n      }\n    }\n    function onAdd() {\n      var l = wrap(listener, d3_array(arguments));\n      onRemove.call(this);\n      this.addEventListener(type, this[name] = l, l.$ = capture);\n      l._ = listener;\n    }\n    function removeAll() {\n      var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n      for (var name in this) {\n        if (match = name.match(re)) {\n          var l = this[name];\n          this.removeEventListener(match[1], l, l.$);\n          delete this[name];\n        }\n      }\n    }\n    return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n  }\n  var d3_selection_onFilters = d3.map({\n    mouseenter: \"mouseover\",\n    mouseleave: \"mouseout\"\n  });\n  if (d3_document) {\n    d3_selection_onFilters.forEach(function(k) {\n      if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n    });\n  }\n  function d3_selection_onListener(listener, argumentz) {\n    return function(e) {\n      var o = d3.event;\n      d3.event = e;\n      argumentz[0] = this.__data__;\n      try {\n        listener.apply(this, argumentz);\n      } finally {\n        d3.event = o;\n      }\n    };\n  }\n  function d3_selection_onFilter(listener, argumentz) {\n    var l = d3_selection_onListener(listener, argumentz);\n    return function(e) {\n      var target = this, related = e.relatedTarget;\n      if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n        l.call(target, e);\n      }\n    };\n  }\n  var d3_event_dragSelect, d3_event_dragId = 0;\n  function d3_event_dragSuppress(node) {\n    var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window(node)).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n    if (d3_event_dragSelect == null) {\n      d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n    }\n    if (d3_event_dragSelect) {\n      var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n      style[d3_event_dragSelect] = \"none\";\n    }\n    return function(suppressClick) {\n      w.on(name, null);\n      if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n      if (suppressClick) {\n        var off = function() {\n          w.on(click, null);\n        };\n        w.on(click, function() {\n          d3_eventPreventDefault();\n          off();\n        }, true);\n        setTimeout(off, 0);\n      }\n    };\n  }\n  d3.mouse = function(container) {\n    return d3_mousePoint(container, d3_eventSource());\n  };\n  var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n  function d3_mousePoint(container, e) {\n    if (e.changedTouches) e = e.changedTouches[0];\n    var svg = container.ownerSVGElement || container;\n    if (svg.createSVGPoint) {\n      var point = svg.createSVGPoint();\n      if (d3_mouse_bug44083 < 0) {\n        var window = d3_window(container);\n        if (window.scrollX || window.scrollY) {\n          svg = d3.select(\"body\").append(\"svg\").style({\n            position: \"absolute\",\n            top: 0,\n            left: 0,\n            margin: 0,\n            padding: 0,\n            border: \"none\"\n          }, \"important\");\n          var ctm = svg[0][0].getScreenCTM();\n          d3_mouse_bug44083 = !(ctm.f || ctm.e);\n          svg.remove();\n        }\n      }\n      if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n      point.y = e.clientY;\n      point = point.matrixTransform(container.getScreenCTM().inverse());\n      return [ point.x, point.y ];\n    }\n    var rect = container.getBoundingClientRect();\n    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n  }\n  d3.touch = function(container, touches, identifier) {\n    if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n    if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n      if ((touch = touches[i]).identifier === identifier) {\n        return d3_mousePoint(container, touch);\n      }\n    }\n  };\n  d3.behavior.drag = function() {\n    var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n    function drag() {\n      this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n    }\n    function dragstart(id, position, subject, move, end) {\n      return function() {\n        var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n        if (origin) {\n          dragOffset = origin.apply(that, arguments);\n          dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n        } else {\n          dragOffset = [ 0, 0 ];\n        }\n        dispatch({\n          type: \"dragstart\"\n        });\n        function moved() {\n          var position1 = position(parent, dragId), dx, dy;\n          if (!position1) return;\n          dx = position1[0] - position0[0];\n          dy = position1[1] - position0[1];\n          dragged |= dx | dy;\n          position0 = position1;\n          dispatch({\n            type: \"drag\",\n            x: position1[0] + dragOffset[0],\n            y: position1[1] + dragOffset[1],\n            dx: dx,\n            dy: dy\n          });\n        }\n        function ended() {\n          if (!position(parent, dragId)) return;\n          dragSubject.on(move + dragName, null).on(end + dragName, null);\n          dragRestore(dragged);\n          dispatch({\n            type: \"dragend\"\n          });\n        }\n      };\n    }\n    drag.origin = function(x) {\n      if (!arguments.length) return origin;\n      origin = x;\n      return drag;\n    };\n    return d3.rebind(drag, event, \"on\");\n  };\n  function d3_behavior_dragTouchId() {\n    return d3.event.changedTouches[0].identifier;\n  }\n  d3.touches = function(container, touches) {\n    if (arguments.length < 2) touches = d3_eventSource().touches;\n    return touches ? d3_array(touches).map(function(touch) {\n      var point = d3_mousePoint(container, touch);\n      point.identifier = touch.identifier;\n      return point;\n    }) : [];\n  };\n  var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;\n  function d3_sgn(x) {\n    return x > 0 ? 1 : x < 0 ? -1 : 0;\n  }\n  function d3_cross2d(a, b, c) {\n    return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n  }\n  function d3_acos(x) {\n    return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n  }\n  function d3_asin(x) {\n    return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n  }\n  function d3_sinh(x) {\n    return ((x = Math.exp(x)) - 1 / x) / 2;\n  }\n  function d3_cosh(x) {\n    return ((x = Math.exp(x)) + 1 / x) / 2;\n  }\n  function d3_tanh(x) {\n    return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n  }\n  function d3_haversin(x) {\n    return (x = Math.sin(x / 2)) * x;\n  }\n  var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n  d3.interpolateZoom = function(p0, p1) {\n    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n    if (d2 < ε2) {\n      S = Math.log(w1 / w0) / ρ;\n      i = function(t) {\n        return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];\n      };\n    } else {\n      var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n      S = (r1 - r0) / ρ;\n      i = function(t) {\n        var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n        return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n      };\n    }\n    i.duration = S * 1e3;\n    return i;\n  };\n  d3.behavior.zoom = function() {\n    var view = {\n      x: 0,\n      y: 0,\n      k: 1\n    }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n    if (!d3_behavior_zoomWheel) {\n      d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n        return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n      }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n        return d3.event.wheelDelta;\n      }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n        return -d3.event.detail;\n      }, \"MozMousePixelScroll\");\n    }\n    function zoom(g) {\n      g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n    }\n    zoom.event = function(g) {\n      g.each(function() {\n        var dispatch = event.of(this, arguments), view1 = view;\n        if (d3_transitionInheritId) {\n          d3.select(this).transition().each(\"start.zoom\", function() {\n            view = this.__chart__ || {\n              x: 0,\n              y: 0,\n              k: 1\n            };\n            zoomstarted(dispatch);\n          }).tween(\"zoom:zoom\", function() {\n            var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n            return function(t) {\n              var l = i(t), k = dx / l[2];\n              this.__chart__ = view = {\n                x: cx - l[0] * k,\n                y: cy - l[1] * k,\n                k: k\n              };\n              zoomed(dispatch);\n            };\n          }).each(\"interrupt.zoom\", function() {\n            zoomended(dispatch);\n          }).each(\"end.zoom\", function() {\n            zoomended(dispatch);\n          });\n        } else {\n          this.__chart__ = view;\n          zoomstarted(dispatch);\n          zoomed(dispatch);\n          zoomended(dispatch);\n        }\n      });\n    };\n    zoom.translate = function(_) {\n      if (!arguments.length) return [ view.x, view.y ];\n      view = {\n        x: +_[0],\n        y: +_[1],\n        k: view.k\n      };\n      rescale();\n      return zoom;\n    };\n    zoom.scale = function(_) {\n      if (!arguments.length) return view.k;\n      view = {\n        x: view.x,\n        y: view.y,\n        k: null\n      };\n      scaleTo(+_);\n      rescale();\n      return zoom;\n    };\n    zoom.scaleExtent = function(_) {\n      if (!arguments.length) return scaleExtent;\n      scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n      return zoom;\n    };\n    zoom.center = function(_) {\n      if (!arguments.length) return center;\n      center = _ && [ +_[0], +_[1] ];\n      return zoom;\n    };\n    zoom.size = function(_) {\n      if (!arguments.length) return size;\n      size = _ && [ +_[0], +_[1] ];\n      return zoom;\n    };\n    zoom.duration = function(_) {\n      if (!arguments.length) return duration;\n      duration = +_;\n      return zoom;\n    };\n    zoom.x = function(z) {\n      if (!arguments.length) return x1;\n      x1 = z;\n      x0 = z.copy();\n      view = {\n        x: 0,\n        y: 0,\n        k: 1\n      };\n      return zoom;\n    };\n    zoom.y = function(z) {\n      if (!arguments.length) return y1;\n      y1 = z;\n      y0 = z.copy();\n      view = {\n        x: 0,\n        y: 0,\n        k: 1\n      };\n      return zoom;\n    };\n    function location(p) {\n      return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n    }\n    function point(l) {\n      return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n    }\n    function scaleTo(s) {\n      view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n    }\n    function translateTo(p, l) {\n      l = point(l);\n      view.x += p[0] - l[0];\n      view.y += p[1] - l[1];\n    }\n    function zoomTo(that, p, l, k) {\n      that.__chart__ = {\n        x: view.x,\n        y: view.y,\n        k: view.k\n      };\n      scaleTo(Math.pow(2, k));\n      translateTo(center0 = p, l);\n      that = d3.select(that);\n      if (duration > 0) that = that.transition().duration(duration);\n      that.call(zoom.event);\n    }\n    function rescale() {\n      if (x1) x1.domain(x0.range().map(function(x) {\n        return (x - view.x) / view.k;\n      }).map(x0.invert));\n      if (y1) y1.domain(y0.range().map(function(y) {\n        return (y - view.y) / view.k;\n      }).map(y0.invert));\n    }\n    function zoomstarted(dispatch) {\n      if (!zooming++) dispatch({\n        type: \"zoomstart\"\n      });\n    }\n    function zoomed(dispatch) {\n      rescale();\n      dispatch({\n        type: \"zoom\",\n        scale: view.k,\n        translate: [ view.x, view.y ]\n      });\n    }\n    function zoomended(dispatch) {\n      if (!--zooming) dispatch({\n        type: \"zoomend\"\n      }), center0 = null;\n    }\n    function mousedowned() {\n      var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n      d3_selection_interrupt.call(that);\n      zoomstarted(dispatch);\n      function moved() {\n        dragged = 1;\n        translateTo(d3.mouse(that), location0);\n        zoomed(dispatch);\n      }\n      function ended() {\n        subject.on(mousemove, null).on(mouseup, null);\n        dragRestore(dragged);\n        zoomended(dispatch);\n      }\n    }\n    function touchstarted() {\n      var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n      started();\n      zoomstarted(dispatch);\n      subject.on(mousedown, null).on(touchstart, started);\n      function relocate() {\n        var touches = d3.touches(that);\n        scale0 = view.k;\n        touches.forEach(function(t) {\n          if (t.identifier in locations0) locations0[t.identifier] = location(t);\n        });\n        return touches;\n      }\n      function started() {\n        var target = d3.event.target;\n        d3.select(target).on(touchmove, moved).on(touchend, ended);\n        targets.push(target);\n        var changed = d3.event.changedTouches;\n        for (var i = 0, n = changed.length; i < n; ++i) {\n          locations0[changed[i].identifier] = null;\n        }\n        var touches = relocate(), now = Date.now();\n        if (touches.length === 1) {\n          if (now - touchtime < 500) {\n            var p = touches[0];\n            zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n            d3_eventPreventDefault();\n          }\n          touchtime = now;\n        } else if (touches.length > 1) {\n          var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n          distance0 = dx * dx + dy * dy;\n        }\n      }\n      function moved() {\n        var touches = d3.touches(that), p0, l0, p1, l1;\n        d3_selection_interrupt.call(that);\n        for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n          p1 = touches[i];\n          if (l1 = locations0[p1.identifier]) {\n            if (l0) break;\n            p0 = p1, l0 = l1;\n          }\n        }\n        if (l1) {\n          var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n          p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n          l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n          scaleTo(scale1 * scale0);\n        }\n        touchtime = null;\n        translateTo(p0, l0);\n        zoomed(dispatch);\n      }\n      function ended() {\n        if (d3.event.touches.length) {\n          var changed = d3.event.changedTouches;\n          for (var i = 0, n = changed.length; i < n; ++i) {\n            delete locations0[changed[i].identifier];\n          }\n          for (var identifier in locations0) {\n            return void relocate();\n          }\n        }\n        d3.selectAll(targets).on(zoomName, null);\n        subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n        dragRestore();\n        zoomended(dispatch);\n      }\n    }\n    function mousewheeled() {\n      var dispatch = event.of(this, arguments);\n      if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), \n      translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n      mousewheelTimer = setTimeout(function() {\n        mousewheelTimer = null;\n        zoomended(dispatch);\n      }, 50);\n      d3_eventPreventDefault();\n      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n      translateTo(center0, translate0);\n      zoomed(dispatch);\n    }\n    function dblclicked() {\n      var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n      zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n    }\n    return d3.rebind(zoom, event, \"on\");\n  };\n  var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n  d3.color = d3_color;\n  function d3_color() {}\n  d3_color.prototype.toString = function() {\n    return this.rgb() + \"\";\n  };\n  d3.hsl = d3_hsl;\n  function d3_hsl(h, s, l) {\n    return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n  }\n  var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n  d3_hslPrototype.brighter = function(k) {\n    k = Math.pow(.7, arguments.length ? k : 1);\n    return new d3_hsl(this.h, this.s, this.l / k);\n  };\n  d3_hslPrototype.darker = function(k) {\n    k = Math.pow(.7, arguments.length ? k : 1);\n    return new d3_hsl(this.h, this.s, k * this.l);\n  };\n  d3_hslPrototype.rgb = function() {\n    return d3_hsl_rgb(this.h, this.s, this.l);\n  };\n  function d3_hsl_rgb(h, s, l) {\n    var m1, m2;\n    h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n    s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n    l = l < 0 ? 0 : l > 1 ? 1 : l;\n    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n    m1 = 2 * l - m2;\n    function v(h) {\n      if (h > 360) h -= 360; else if (h < 0) h += 360;\n      if (h < 60) return m1 + (m2 - m1) * h / 60;\n      if (h < 180) return m2;\n      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n      return m1;\n    }\n    function vv(h) {\n      return Math.round(v(h) * 255);\n    }\n    return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n  }\n  d3.hcl = d3_hcl;\n  function d3_hcl(h, c, l) {\n    return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n  }\n  var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n  d3_hclPrototype.brighter = function(k) {\n    return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n  };\n  d3_hclPrototype.darker = function(k) {\n    return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n  };\n  d3_hclPrototype.rgb = function() {\n    return d3_hcl_lab(this.h, this.c, this.l).rgb();\n  };\n  function d3_hcl_lab(h, c, l) {\n    if (isNaN(h)) h = 0;\n    if (isNaN(c)) c = 0;\n    return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n  }\n  d3.lab = d3_lab;\n  function d3_lab(l, a, b) {\n    return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n  }\n  var d3_lab_K = 18;\n  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n  var d3_labPrototype = d3_lab.prototype = new d3_color();\n  d3_labPrototype.brighter = function(k) {\n    return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n  };\n  d3_labPrototype.darker = function(k) {\n    return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n  };\n  d3_labPrototype.rgb = function() {\n    return d3_lab_rgb(this.l, this.a, this.b);\n  };\n  function d3_lab_rgb(l, a, b) {\n    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n    x = d3_lab_xyz(x) * d3_lab_X;\n    y = d3_lab_xyz(y) * d3_lab_Y;\n    z = d3_lab_xyz(z) * d3_lab_Z;\n    return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n  }\n  function d3_lab_hcl(l, a, b) {\n    return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n  }\n  function d3_lab_xyz(x) {\n    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n  }\n  function d3_xyz_lab(x) {\n    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n  }\n  function d3_xyz_rgb(r) {\n    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n  }\n  d3.rgb = d3_rgb;\n  function d3_rgb(r, g, b) {\n    return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n  }\n  function d3_rgbNumber(value) {\n    return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n  }\n  function d3_rgbString(value) {\n    return d3_rgbNumber(value) + \"\";\n  }\n  var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n  d3_rgbPrototype.brighter = function(k) {\n    k = Math.pow(.7, arguments.length ? k : 1);\n    var r = this.r, g = this.g, b = this.b, i = 30;\n    if (!r && !g && !b) return new d3_rgb(i, i, i);\n    if (r && r < i) r = i;\n    if (g && g < i) g = i;\n    if (b && b < i) b = i;\n    return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n  };\n  d3_rgbPrototype.darker = function(k) {\n    k = Math.pow(.7, arguments.length ? k : 1);\n    return new d3_rgb(k * this.r, k * this.g, k * this.b);\n  };\n  d3_rgbPrototype.hsl = function() {\n    return d3_rgb_hsl(this.r, this.g, this.b);\n  };\n  d3_rgbPrototype.toString = function() {\n    return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n  };\n  function d3_rgb_hex(v) {\n    return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n  }\n  function d3_rgb_parse(format, rgb, hsl) {\n    var r = 0, g = 0, b = 0, m1, m2, color;\n    m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n    if (m1) {\n      m2 = m1[2].split(\",\");\n      switch (m1[1]) {\n       case \"hsl\":\n        {\n          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n        }\n\n       case \"rgb\":\n        {\n          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n        }\n      }\n    }\n    if (color = d3_rgb_names.get(format)) {\n      return rgb(color.r, color.g, color.b);\n    }\n    if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.slice(1), 16))) {\n      if (format.length === 4) {\n        r = (color & 3840) >> 4;\n        r = r >> 4 | r;\n        g = color & 240;\n        g = g >> 4 | g;\n        b = color & 15;\n        b = b << 4 | b;\n      } else if (format.length === 7) {\n        r = (color & 16711680) >> 16;\n        g = (color & 65280) >> 8;\n        b = color & 255;\n      }\n    }\n    return rgb(r, g, b);\n  }\n  function d3_rgb_hsl(r, g, b) {\n    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n    if (d) {\n      s = l < .5 ? d / (max + min) : d / (2 - max - min);\n      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n      h *= 60;\n    } else {\n      h = NaN;\n      s = l > 0 && l < 1 ? 0 : h;\n    }\n    return new d3_hsl(h, s, l);\n  }\n  function d3_rgb_lab(r, g, b) {\n    r = d3_rgb_xyz(r);\n    g = d3_rgb_xyz(g);\n    b = d3_rgb_xyz(b);\n    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n  }\n  function d3_rgb_xyz(r) {\n    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n  }\n  function d3_rgb_parseNumber(c) {\n    var f = parseFloat(c);\n    return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n  }\n  var d3_rgb_names = d3.map({\n    aliceblue: 15792383,\n    antiquewhite: 16444375,\n    aqua: 65535,\n    aquamarine: 8388564,\n    azure: 15794175,\n    beige: 16119260,\n    bisque: 16770244,\n    black: 0,\n    blanchedalmond: 16772045,\n    blue: 255,\n    blueviolet: 9055202,\n    brown: 10824234,\n    burlywood: 14596231,\n    cadetblue: 6266528,\n    chartreuse: 8388352,\n    chocolate: 13789470,\n    coral: 16744272,\n    cornflowerblue: 6591981,\n    cornsilk: 16775388,\n    crimson: 14423100,\n    cyan: 65535,\n    darkblue: 139,\n    darkcyan: 35723,\n    darkgoldenrod: 12092939,\n    darkgray: 11119017,\n    darkgreen: 25600,\n    darkgrey: 11119017,\n    darkkhaki: 12433259,\n    darkmagenta: 9109643,\n    darkolivegreen: 5597999,\n    darkorange: 16747520,\n    darkorchid: 10040012,\n    darkred: 9109504,\n    darksalmon: 15308410,\n    darkseagreen: 9419919,\n    darkslateblue: 4734347,\n    darkslategray: 3100495,\n    darkslategrey: 3100495,\n    darkturquoise: 52945,\n    darkviolet: 9699539,\n    deeppink: 16716947,\n    deepskyblue: 49151,\n    dimgray: 6908265,\n    dimgrey: 6908265,\n    dodgerblue: 2003199,\n    firebrick: 11674146,\n    floralwhite: 16775920,\n    forestgreen: 2263842,\n    fuchsia: 16711935,\n    gainsboro: 14474460,\n    ghostwhite: 16316671,\n    gold: 16766720,\n    goldenrod: 14329120,\n    gray: 8421504,\n    green: 32768,\n    greenyellow: 11403055,\n    grey: 8421504,\n    honeydew: 15794160,\n    hotpink: 16738740,\n    indianred: 13458524,\n    indigo: 4915330,\n    ivory: 16777200,\n    khaki: 15787660,\n    lavender: 15132410,\n    lavenderblush: 16773365,\n    lawngreen: 8190976,\n    lemonchiffon: 16775885,\n    lightblue: 11393254,\n    lightcoral: 15761536,\n    lightcyan: 14745599,\n    lightgoldenrodyellow: 16448210,\n    lightgray: 13882323,\n    lightgreen: 9498256,\n    lightgrey: 13882323,\n    lightpink: 16758465,\n    lightsalmon: 16752762,\n    lightseagreen: 2142890,\n    lightskyblue: 8900346,\n    lightslategray: 7833753,\n    lightslategrey: 7833753,\n    lightsteelblue: 11584734,\n    lightyellow: 16777184,\n    lime: 65280,\n    limegreen: 3329330,\n    linen: 16445670,\n    magenta: 16711935,\n    maroon: 8388608,\n    mediumaquamarine: 6737322,\n    mediumblue: 205,\n    mediumorchid: 12211667,\n    mediumpurple: 9662683,\n    mediumseagreen: 3978097,\n    mediumslateblue: 8087790,\n    mediumspringgreen: 64154,\n    mediumturquoise: 4772300,\n    mediumvioletred: 13047173,\n    midnightblue: 1644912,\n    mintcream: 16121850,\n    mistyrose: 16770273,\n    moccasin: 16770229,\n    navajowhite: 16768685,\n    navy: 128,\n    oldlace: 16643558,\n    olive: 8421376,\n    olivedrab: 7048739,\n    orange: 16753920,\n    orangered: 16729344,\n    orchid: 14315734,\n    palegoldenrod: 15657130,\n    palegreen: 10025880,\n    paleturquoise: 11529966,\n    palevioletred: 14381203,\n    papayawhip: 16773077,\n    peachpuff: 16767673,\n    peru: 13468991,\n    pink: 16761035,\n    plum: 14524637,\n    powderblue: 11591910,\n    purple: 8388736,\n    rebeccapurple: 6697881,\n    red: 16711680,\n    rosybrown: 12357519,\n    royalblue: 4286945,\n    saddlebrown: 9127187,\n    salmon: 16416882,\n    sandybrown: 16032864,\n    seagreen: 3050327,\n    seashell: 16774638,\n    sienna: 10506797,\n    silver: 12632256,\n    skyblue: 8900331,\n    slateblue: 6970061,\n    slategray: 7372944,\n    slategrey: 7372944,\n    snow: 16775930,\n    springgreen: 65407,\n    steelblue: 4620980,\n    tan: 13808780,\n    teal: 32896,\n    thistle: 14204888,\n    tomato: 16737095,\n    turquoise: 4251856,\n    violet: 15631086,\n    wheat: 16113331,\n    white: 16777215,\n    whitesmoke: 16119285,\n    yellow: 16776960,\n    yellowgreen: 10145074\n  });\n  d3_rgb_names.forEach(function(key, value) {\n    d3_rgb_names.set(key, d3_rgbNumber(value));\n  });\n  function d3_functor(v) {\n    return typeof v === \"function\" ? v : function() {\n      return v;\n    };\n  }\n  d3.functor = d3_functor;\n  d3.xhr = d3_xhrType(d3_identity);\n  function d3_xhrType(response) {\n    return function(url, mimeType, callback) {\n      if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n      mimeType = null;\n      return d3_xhr(url, mimeType, response, callback);\n    };\n  }\n  function d3_xhr(url, mimeType, response, callback) {\n    var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n    if (this.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n    \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n      request.readyState > 3 && respond();\n    };\n    function respond() {\n      var status = request.status, result;\n      if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n        try {\n          result = response.call(xhr, request);\n        } catch (e) {\n          dispatch.error.call(xhr, e);\n          return;\n        }\n        dispatch.load.call(xhr, result);\n      } else {\n        dispatch.error.call(xhr, request);\n      }\n    }\n    request.onprogress = function(event) {\n      var o = d3.event;\n      d3.event = event;\n      try {\n        dispatch.progress.call(xhr, request);\n      } finally {\n        d3.event = o;\n      }\n    };\n    xhr.header = function(name, value) {\n      name = (name + \"\").toLowerCase();\n      if (arguments.length < 2) return headers[name];\n      if (value == null) delete headers[name]; else headers[name] = value + \"\";\n      return xhr;\n    };\n    xhr.mimeType = function(value) {\n      if (!arguments.length) return mimeType;\n      mimeType = value == null ? null : value + \"\";\n      return xhr;\n    };\n    xhr.responseType = function(value) {\n      if (!arguments.length) return responseType;\n      responseType = value;\n      return xhr;\n    };\n    xhr.response = function(value) {\n      response = value;\n      return xhr;\n    };\n    [ \"get\", \"post\" ].forEach(function(method) {\n      xhr[method] = function() {\n        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n      };\n    });\n    xhr.send = function(method, data, callback) {\n      if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n      request.open(method, url, true);\n      if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n      if (responseType != null) request.responseType = responseType;\n      if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n        callback(null, request);\n      });\n      dispatch.beforesend.call(xhr, request);\n      request.send(data == null ? null : data);\n      return xhr;\n    };\n    xhr.abort = function() {\n      request.abort();\n      return xhr;\n    };\n    d3.rebind(xhr, dispatch, \"on\");\n    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n  }\n  function d3_xhr_fixCallback(callback) {\n    return callback.length === 1 ? function(error, request) {\n      callback(error == null ? request : null);\n    } : callback;\n  }\n  function d3_xhrHasResponse(request) {\n    var type = request.responseType;\n    return type && type !== \"text\" ? request.response : request.responseText;\n  }\n  d3.dsv = function(delimiter, mimeType) {\n    var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n    function dsv(url, row, callback) {\n      if (arguments.length < 3) callback = row, row = null;\n      var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n      xhr.row = function(_) {\n        return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n      };\n      return xhr;\n    }\n    function response(request) {\n      return dsv.parse(request.responseText);\n    }\n    function typedResponse(f) {\n      return function(request) {\n        return dsv.parse(request.responseText, f);\n      };\n    }\n    dsv.parse = function(text, f) {\n      var o;\n      return dsv.parseRows(text, function(row, i) {\n        if (o) return o(row, i - 1);\n        var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n          return JSON.stringify(name) + \": d[\" + i + \"]\";\n        }).join(\",\") + \"}\");\n        o = f ? function(row, i) {\n          return f(a(row), i);\n        } : a;\n      });\n    };\n    dsv.parseRows = function(text, f) {\n      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n      function token() {\n        if (I >= N) return EOF;\n        if (eol) return eol = false, EOL;\n        var j = I;\n        if (text.charCodeAt(j) === 34) {\n          var i = j;\n          while (i++ < N) {\n            if (text.charCodeAt(i) === 34) {\n              if (text.charCodeAt(i + 1) !== 34) break;\n              ++i;\n            }\n          }\n          I = i + 2;\n          var c = text.charCodeAt(i + 1);\n          if (c === 13) {\n            eol = true;\n            if (text.charCodeAt(i + 2) === 10) ++I;\n          } else if (c === 10) {\n            eol = true;\n          }\n          return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n        }\n        while (I < N) {\n          var c = text.charCodeAt(I++), k = 1;\n          if (c === 10) eol = true; else if (c === 13) {\n            eol = true;\n            if (text.charCodeAt(I) === 10) ++I, ++k;\n          } else if (c !== delimiterCode) continue;\n          return text.slice(j, I - k);\n        }\n        return text.slice(j);\n      }\n      while ((t = token()) !== EOF) {\n        var a = [];\n        while (t !== EOL && t !== EOF) {\n          a.push(t);\n          t = token();\n        }\n        if (f && (a = f(a, n++)) == null) continue;\n        rows.push(a);\n      }\n      return rows;\n    };\n    dsv.format = function(rows) {\n      if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n      var fieldSet = new d3_Set(), fields = [];\n      rows.forEach(function(row) {\n        for (var field in row) {\n          if (!fieldSet.has(field)) {\n            fields.push(fieldSet.add(field));\n          }\n        }\n      });\n      return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n        return fields.map(function(field) {\n          return formatValue(row[field]);\n        }).join(delimiter);\n      })).join(\"\\n\");\n    };\n    dsv.formatRows = function(rows) {\n      return rows.map(formatRow).join(\"\\n\");\n    };\n    function formatRow(row) {\n      return row.map(formatValue).join(delimiter);\n    }\n    function formatValue(text) {\n      return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n    }\n    return dsv;\n  };\n  d3.csv = d3.dsv(\",\", \"text/csv\");\n  d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n  var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n    setTimeout(callback, 17);\n  };\n  d3.timer = function() {\n    d3_timer.apply(this, arguments);\n  };\n  function d3_timer(callback, delay, then) {\n    var n = arguments.length;\n    if (n < 2) delay = 0;\n    if (n < 3) then = Date.now();\n    var time = then + delay, timer = {\n      c: callback,\n      t: time,\n      n: null\n    };\n    if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n    d3_timer_queueTail = timer;\n    if (!d3_timer_interval) {\n      d3_timer_timeout = clearTimeout(d3_timer_timeout);\n      d3_timer_interval = 1;\n      d3_timer_frame(d3_timer_step);\n    }\n    return timer;\n  }\n  function d3_timer_step() {\n    var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n    if (delay > 24) {\n      if (isFinite(delay)) {\n        clearTimeout(d3_timer_timeout);\n        d3_timer_timeout = setTimeout(d3_timer_step, delay);\n      }\n      d3_timer_interval = 0;\n    } else {\n      d3_timer_interval = 1;\n      d3_timer_frame(d3_timer_step);\n    }\n  }\n  d3.timer.flush = function() {\n    d3_timer_mark();\n    d3_timer_sweep();\n  };\n  function d3_timer_mark() {\n    var now = Date.now(), timer = d3_timer_queueHead;\n    while (timer) {\n      if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n      timer = timer.n;\n    }\n    return now;\n  }\n  function d3_timer_sweep() {\n    var t0, t1 = d3_timer_queueHead, time = Infinity;\n    while (t1) {\n      if (t1.c) {\n        if (t1.t < time) time = t1.t;\n        t1 = (t0 = t1).n;\n      } else {\n        t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n      }\n    }\n    d3_timer_queueTail = t0;\n    return time;\n  }\n  function d3_format_precision(x, p) {\n    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n  }\n  d3.round = function(x, n) {\n    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n  };\n  var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n  d3.formatPrefix = function(value, precision) {\n    var i = 0;\n    if (value = +value) {\n      if (value < 0) value *= -1;\n      if (precision) value = d3.round(value, d3_format_precision(value, precision));\n      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n      i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n    }\n    return d3_formatPrefixes[8 + i / 3];\n  };\n  function d3_formatPrefix(d, i) {\n    var k = Math.pow(10, abs(8 - i) * 3);\n    return {\n      scale: i > 8 ? function(d) {\n        return d / k;\n      } : function(d) {\n        return d * k;\n      },\n      symbol: d\n    };\n  }\n  function d3_locale_numberFormat(locale) {\n    var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {\n      var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;\n      while (i > 0 && g > 0) {\n        if (length + g + 1 > width) g = Math.max(1, width - length);\n        t.push(value.substring(i -= g, i + g));\n        if ((length += g + 1) > width) break;\n        g = locale_grouping[j = (j + 1) % locale_grouping.length];\n      }\n      return t.reverse().join(locale_thousands);\n    } : d3_identity;\n    return function(specifier) {\n      var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"-\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false, exponent = true;\n      if (precision) precision = +precision.substring(1);\n      if (zfill || fill === \"0\" && align === \"=\") {\n        zfill = fill = \"0\";\n        align = \"=\";\n      }\n      switch (type) {\n       case \"n\":\n        comma = true;\n        type = \"g\";\n        break;\n\n       case \"%\":\n        scale = 100;\n        suffix = \"%\";\n        type = \"f\";\n        break;\n\n       case \"p\":\n        scale = 100;\n        suffix = \"%\";\n        type = \"r\";\n        break;\n\n       case \"b\":\n       case \"o\":\n       case \"x\":\n       case \"X\":\n        if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n       case \"c\":\n        exponent = false;\n\n       case \"d\":\n        integer = true;\n        precision = 0;\n        break;\n\n       case \"s\":\n        scale = -1;\n        type = \"r\";\n        break;\n      }\n      if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n      if (type == \"r\" && !precision) type = \"g\";\n      if (precision != null) {\n        if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n      }\n      type = d3_format_types.get(type) || d3_format_typeDefault;\n      var zcomma = zfill && comma;\n      return function(value) {\n        var fullSuffix = suffix;\n        if (integer && value % 1) return \"\";\n        var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign === \"-\" ? \"\" : sign;\n        if (scale < 0) {\n          var unit = d3.formatPrefix(value, precision);\n          value = unit.scale(value);\n          fullSuffix = unit.symbol + suffix;\n        } else {\n          value *= scale;\n        }\n        value = type(value, precision);\n        var i = value.lastIndexOf(\".\"), before, after;\n        if (i < 0) {\n          var j = exponent ? value.lastIndexOf(\"e\") : -1;\n          if (j < 0) before = value, after = \"\"; else before = value.substring(0, j), after = value.substring(j);\n        } else {\n          before = value.substring(0, i);\n          after = locale_decimal + value.substring(i + 1);\n        }\n        if (!zfill && comma) before = formatGroup(before, Infinity);\n        var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n        if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);\n        negative += prefix;\n        value = before + after;\n        return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n      };\n    };\n  }\n  var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n  var d3_format_types = d3.map({\n    b: function(x) {\n      return x.toString(2);\n    },\n    c: function(x) {\n      return String.fromCharCode(x);\n    },\n    o: function(x) {\n      return x.toString(8);\n    },\n    x: function(x) {\n      return x.toString(16);\n    },\n    X: function(x) {\n      return x.toString(16).toUpperCase();\n    },\n    g: function(x, p) {\n      return x.toPrecision(p);\n    },\n    e: function(x, p) {\n      return x.toExponential(p);\n    },\n    f: function(x, p) {\n      return x.toFixed(p);\n    },\n    r: function(x, p) {\n      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n    }\n  });\n  function d3_format_typeDefault(x) {\n    return x + \"\";\n  }\n  var d3_time = d3.time = {}, d3_date = Date;\n  function d3_date_utc() {\n    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n  }\n  d3_date_utc.prototype = {\n    getDate: function() {\n      return this._.getUTCDate();\n    },\n    getDay: function() {\n      return this._.getUTCDay();\n    },\n    getFullYear: function() {\n      return this._.getUTCFullYear();\n    },\n    getHours: function() {\n      return this._.getUTCHours();\n    },\n    getMilliseconds: function() {\n      return this._.getUTCMilliseconds();\n    },\n    getMinutes: function() {\n      return this._.getUTCMinutes();\n    },\n    getMonth: function() {\n      return this._.getUTCMonth();\n    },\n    getSeconds: function() {\n      return this._.getUTCSeconds();\n    },\n    getTime: function() {\n      return this._.getTime();\n    },\n    getTimezoneOffset: function() {\n      return 0;\n    },\n    valueOf: function() {\n      return this._.valueOf();\n    },\n    setDate: function() {\n      d3_time_prototype.setUTCDate.apply(this._, arguments);\n    },\n    setDay: function() {\n      d3_time_prototype.setUTCDay.apply(this._, arguments);\n    },\n    setFullYear: function() {\n      d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n    },\n    setHours: function() {\n      d3_time_prototype.setUTCHours.apply(this._, arguments);\n    },\n    setMilliseconds: function() {\n      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n    },\n    setMinutes: function() {\n      d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n    },\n    setMonth: function() {\n      d3_time_prototype.setUTCMonth.apply(this._, arguments);\n    },\n    setSeconds: function() {\n      d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n    },\n    setTime: function() {\n      d3_time_prototype.setTime.apply(this._, arguments);\n    }\n  };\n  var d3_time_prototype = Date.prototype;\n  function d3_time_interval(local, step, number) {\n    function round(date) {\n      var d0 = local(date), d1 = offset(d0, 1);\n      return date - d0 < d1 - date ? d0 : d1;\n    }\n    function ceil(date) {\n      step(date = local(new d3_date(date - 1)), 1);\n      return date;\n    }\n    function offset(date, k) {\n      step(date = new d3_date(+date), k);\n      return date;\n    }\n    function range(t0, t1, dt) {\n      var time = ceil(t0), times = [];\n      if (dt > 1) {\n        while (time < t1) {\n          if (!(number(time) % dt)) times.push(new Date(+time));\n          step(time, 1);\n        }\n      } else {\n        while (time < t1) times.push(new Date(+time)), step(time, 1);\n      }\n      return times;\n    }\n    function range_utc(t0, t1, dt) {\n      try {\n        d3_date = d3_date_utc;\n        var utc = new d3_date_utc();\n        utc._ = t0;\n        return range(utc, t1, dt);\n      } finally {\n        d3_date = Date;\n      }\n    }\n    local.floor = local;\n    local.round = round;\n    local.ceil = ceil;\n    local.offset = offset;\n    local.range = range;\n    var utc = local.utc = d3_time_interval_utc(local);\n    utc.floor = utc;\n    utc.round = d3_time_interval_utc(round);\n    utc.ceil = d3_time_interval_utc(ceil);\n    utc.offset = d3_time_interval_utc(offset);\n    utc.range = range_utc;\n    return local;\n  }\n  function d3_time_interval_utc(method) {\n    return function(date, k) {\n      try {\n        d3_date = d3_date_utc;\n        var utc = new d3_date_utc();\n        utc._ = date;\n        return method(utc, k)._;\n      } finally {\n        d3_date = Date;\n      }\n    };\n  }\n  d3_time.year = d3_time_interval(function(date) {\n    date = d3_time.day(date);\n    date.setMonth(0, 1);\n    return date;\n  }, function(date, offset) {\n    date.setFullYear(date.getFullYear() + offset);\n  }, function(date) {\n    return date.getFullYear();\n  });\n  d3_time.years = d3_time.year.range;\n  d3_time.years.utc = d3_time.year.utc.range;\n  d3_time.day = d3_time_interval(function(date) {\n    var day = new d3_date(2e3, 0);\n    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n    return day;\n  }, function(date, offset) {\n    date.setDate(date.getDate() + offset);\n  }, function(date) {\n    return date.getDate() - 1;\n  });\n  d3_time.days = d3_time.day.range;\n  d3_time.days.utc = d3_time.day.utc.range;\n  d3_time.dayOfYear = function(date) {\n    var year = d3_time.year(date);\n    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n  };\n  [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n    i = 7 - i;\n    var interval = d3_time[day] = d3_time_interval(function(date) {\n      (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n      return date;\n    }, function(date, offset) {\n      date.setDate(date.getDate() + Math.floor(offset) * 7);\n    }, function(date) {\n      var day = d3_time.year(date).getDay();\n      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n    });\n    d3_time[day + \"s\"] = interval.range;\n    d3_time[day + \"s\"].utc = interval.utc.range;\n    d3_time[day + \"OfYear\"] = function(date) {\n      var day = d3_time.year(date).getDay();\n      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n    };\n  });\n  d3_time.week = d3_time.sunday;\n  d3_time.weeks = d3_time.sunday.range;\n  d3_time.weeks.utc = d3_time.sunday.utc.range;\n  d3_time.weekOfYear = d3_time.sundayOfYear;\n  function d3_locale_timeFormat(locale) {\n    var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n    function d3_time_format(template) {\n      var n = template.length;\n      function format(date) {\n        var string = [], i = -1, j = 0, c, p, f;\n        while (++i < n) {\n          if (template.charCodeAt(i) === 37) {\n            string.push(template.slice(j, i));\n            if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n            if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n            string.push(c);\n            j = i + 1;\n          }\n        }\n        string.push(template.slice(j, i));\n        return string.join(\"\");\n      }\n      format.parse = function(string) {\n        var d = {\n          y: 1900,\n          m: 0,\n          d: 1,\n          H: 0,\n          M: 0,\n          S: 0,\n          L: 0,\n          Z: null\n        }, i = d3_time_parse(d, template, string, 0);\n        if (i != string.length) return null;\n        if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n        var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n        if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"W\" in d || \"U\" in d) {\n          if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n          date.setFullYear(d.y, 0, 1);\n          date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n        } else date.setFullYear(d.y, d.m, d.d);\n        date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);\n        return localZ ? date._ : date;\n      };\n      format.toString = function() {\n        return template;\n      };\n      return format;\n    }\n    function d3_time_parse(date, template, string, j) {\n      var c, p, t, i = 0, n = template.length, m = string.length;\n      while (i < n) {\n        if (j >= m) return -1;\n        c = template.charCodeAt(i++);\n        if (c === 37) {\n          t = template.charAt(i++);\n          p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n          if (!p || (j = p(date, string, j)) < 0) return -1;\n        } else if (c != string.charCodeAt(j++)) {\n          return -1;\n        }\n      }\n      return j;\n    }\n    d3_time_format.utc = function(template) {\n      var local = d3_time_format(template);\n      function format(date) {\n        try {\n          d3_date = d3_date_utc;\n          var utc = new d3_date();\n          utc._ = date;\n          return local(utc);\n        } finally {\n          d3_date = Date;\n        }\n      }\n      format.parse = function(string) {\n        try {\n          d3_date = d3_date_utc;\n          var date = local.parse(string);\n          return date && date._;\n        } finally {\n          d3_date = Date;\n        }\n      };\n      format.toString = local.toString;\n      return format;\n    };\n    d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n    var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n    locale_periods.forEach(function(p, i) {\n      d3_time_periodLookup.set(p.toLowerCase(), i);\n    });\n    var d3_time_formats = {\n      a: function(d) {\n        return locale_shortDays[d.getDay()];\n      },\n      A: function(d) {\n        return locale_days[d.getDay()];\n      },\n      b: function(d) {\n        return locale_shortMonths[d.getMonth()];\n      },\n      B: function(d) {\n        return locale_months[d.getMonth()];\n      },\n      c: d3_time_format(locale_dateTime),\n      d: function(d, p) {\n        return d3_time_formatPad(d.getDate(), p, 2);\n      },\n      e: function(d, p) {\n        return d3_time_formatPad(d.getDate(), p, 2);\n      },\n      H: function(d, p) {\n        return d3_time_formatPad(d.getHours(), p, 2);\n      },\n      I: function(d, p) {\n        return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n      },\n      j: function(d, p) {\n        return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n      },\n      L: function(d, p) {\n        return d3_time_formatPad(d.getMilliseconds(), p, 3);\n      },\n      m: function(d, p) {\n        return d3_time_formatPad(d.getMonth() + 1, p, 2);\n      },\n      M: function(d, p) {\n        return d3_time_formatPad(d.getMinutes(), p, 2);\n      },\n      p: function(d) {\n        return locale_periods[+(d.getHours() >= 12)];\n      },\n      S: function(d, p) {\n        return d3_time_formatPad(d.getSeconds(), p, 2);\n      },\n      U: function(d, p) {\n        return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n      },\n      w: function(d) {\n        return d.getDay();\n      },\n      W: function(d, p) {\n        return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n      },\n      x: d3_time_format(locale_date),\n      X: d3_time_format(locale_time),\n      y: function(d, p) {\n        return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n      },\n      Y: function(d, p) {\n        return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n      },\n      Z: d3_time_zone,\n      \"%\": function() {\n        return \"%\";\n      }\n    };\n    var d3_time_parsers = {\n      a: d3_time_parseWeekdayAbbrev,\n      A: d3_time_parseWeekday,\n      b: d3_time_parseMonthAbbrev,\n      B: d3_time_parseMonth,\n      c: d3_time_parseLocaleFull,\n      d: d3_time_parseDay,\n      e: d3_time_parseDay,\n      H: d3_time_parseHour24,\n      I: d3_time_parseHour24,\n      j: d3_time_parseDayOfYear,\n      L: d3_time_parseMilliseconds,\n      m: d3_time_parseMonthNumber,\n      M: d3_time_parseMinutes,\n      p: d3_time_parseAmPm,\n      S: d3_time_parseSeconds,\n      U: d3_time_parseWeekNumberSunday,\n      w: d3_time_parseWeekdayNumber,\n      W: d3_time_parseWeekNumberMonday,\n      x: d3_time_parseLocaleDate,\n      X: d3_time_parseLocaleTime,\n      y: d3_time_parseYear,\n      Y: d3_time_parseFullYear,\n      Z: d3_time_parseZone,\n      \"%\": d3_time_parseLiteralPercent\n    };\n    function d3_time_parseWeekdayAbbrev(date, string, i) {\n      d3_time_dayAbbrevRe.lastIndex = 0;\n      var n = d3_time_dayAbbrevRe.exec(string.slice(i));\n      return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n    }\n    function d3_time_parseWeekday(date, string, i) {\n      d3_time_dayRe.lastIndex = 0;\n      var n = d3_time_dayRe.exec(string.slice(i));\n      return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n    }\n    function d3_time_parseMonthAbbrev(date, string, i) {\n      d3_time_monthAbbrevRe.lastIndex = 0;\n      var n = d3_time_monthAbbrevRe.exec(string.slice(i));\n      return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n    }\n    function d3_time_parseMonth(date, string, i) {\n      d3_time_monthRe.lastIndex = 0;\n      var n = d3_time_monthRe.exec(string.slice(i));\n      return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n    }\n    function d3_time_parseLocaleFull(date, string, i) {\n      return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n    }\n    function d3_time_parseLocaleDate(date, string, i) {\n      return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n    }\n    function d3_time_parseLocaleTime(date, string, i) {\n      return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n    }\n    function d3_time_parseAmPm(date, string, i) {\n      var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());\n      return n == null ? -1 : (date.p = n, i);\n    }\n    return d3_time_format;\n  }\n  var d3_time_formatPads = {\n    \"-\": \"\",\n    _: \" \",\n    \"0\": \"0\"\n  }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n  function d3_time_formatPad(value, fill, width) {\n    var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n    return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n  }\n  function d3_time_formatRe(names) {\n    return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n  }\n  function d3_time_formatLookup(names) {\n    var map = new d3_Map(), i = -1, n = names.length;\n    while (++i < n) map.set(names[i].toLowerCase(), i);\n    return map;\n  }\n  function d3_time_parseWeekdayNumber(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 1));\n    return n ? (date.w = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseWeekNumberSunday(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i));\n    return n ? (date.U = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseWeekNumberMonday(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i));\n    return n ? (date.W = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseFullYear(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 4));\n    return n ? (date.y = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseYear(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n  }\n  function d3_time_parseZone(date, string, i) {\n    return /^[+-]\\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, \n    i + 5) : -1;\n  }\n  function d3_time_expandYear(d) {\n    return d + (d > 68 ? 1900 : 2e3);\n  }\n  function d3_time_parseMonthNumber(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n  }\n  function d3_time_parseDay(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.d = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseDayOfYear(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n    return n ? (date.j = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseHour24(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.H = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseMinutes(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.M = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseSeconds(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n    return n ? (date.S = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_parseMilliseconds(date, string, i) {\n    d3_time_numberRe.lastIndex = 0;\n    var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n    return n ? (date.L = +n[0], i + n[0].length) : -1;\n  }\n  function d3_time_zone(d) {\n    var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = abs(z) / 60 | 0, zm = abs(z) % 60;\n    return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n  }\n  function d3_time_parseLiteralPercent(date, string, i) {\n    d3_time_percentRe.lastIndex = 0;\n    var n = d3_time_percentRe.exec(string.slice(i, i + 1));\n    return n ? i + n[0].length : -1;\n  }\n  function d3_time_formatMulti(formats) {\n    var n = formats.length, i = -1;\n    while (++i < n) formats[i][0] = this(formats[i][0]);\n    return function(date) {\n      var i = 0, f = formats[i];\n      while (!f[1](date)) f = formats[++i];\n      return f[0](date);\n    };\n  }\n  d3.locale = function(locale) {\n    return {\n      numberFormat: d3_locale_numberFormat(locale),\n      timeFormat: d3_locale_timeFormat(locale)\n    };\n  };\n  var d3_locale_enUS = d3.locale({\n    decimal: \".\",\n    thousands: \",\",\n    grouping: [ 3 ],\n    currency: [ \"$\", \"\" ],\n    dateTime: \"%a %b %e %X %Y\",\n    date: \"%m/%d/%Y\",\n    time: \"%H:%M:%S\",\n    periods: [ \"AM\", \"PM\" ],\n    days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n    shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n    months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n    shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n  });\n  d3.format = d3_locale_enUS.numberFormat;\n  d3.geo = {};\n  function d3_adder() {}\n  d3_adder.prototype = {\n    s: 0,\n    t: 0,\n    add: function(y) {\n      d3_adderSum(y, this.t, d3_adderTemp);\n      d3_adderSum(d3_adderTemp.s, this.s, this);\n      if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n    },\n    reset: function() {\n      this.s = this.t = 0;\n    },\n    valueOf: function() {\n      return this.s;\n    }\n  };\n  var d3_adderTemp = new d3_adder();\n  function d3_adderSum(a, b, o) {\n    var x = o.s = a + b, bv = x - a, av = x - bv;\n    o.t = a - av + (b - bv);\n  }\n  d3.geo.stream = function(object, listener) {\n    if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n      d3_geo_streamObjectType[object.type](object, listener);\n    } else {\n      d3_geo_streamGeometry(object, listener);\n    }\n  };\n  function d3_geo_streamGeometry(geometry, listener) {\n    if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n      d3_geo_streamGeometryType[geometry.type](geometry, listener);\n    }\n  }\n  var d3_geo_streamObjectType = {\n    Feature: function(feature, listener) {\n      d3_geo_streamGeometry(feature.geometry, listener);\n    },\n    FeatureCollection: function(object, listener) {\n      var features = object.features, i = -1, n = features.length;\n      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n    }\n  };\n  var d3_geo_streamGeometryType = {\n    Sphere: function(object, listener) {\n      listener.sphere();\n    },\n    Point: function(object, listener) {\n      object = object.coordinates;\n      listener.point(object[0], object[1], object[2]);\n    },\n    MultiPoint: function(object, listener) {\n      var coordinates = object.coordinates, i = -1, n = coordinates.length;\n      while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n    },\n    LineString: function(object, listener) {\n      d3_geo_streamLine(object.coordinates, listener, 0);\n    },\n    MultiLineString: function(object, listener) {\n      var coordinates = object.coordinates, i = -1, n = coordinates.length;\n      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n    },\n    Polygon: function(object, listener) {\n      d3_geo_streamPolygon(object.coordinates, listener);\n    },\n    MultiPolygon: function(object, listener) {\n      var coordinates = object.coordinates, i = -1, n = coordinates.length;\n      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n    },\n    GeometryCollection: function(object, listener) {\n      var geometries = object.geometries, i = -1, n = geometries.length;\n      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n    }\n  };\n  function d3_geo_streamLine(coordinates, listener, closed) {\n    var i = -1, n = coordinates.length - closed, coordinate;\n    listener.lineStart();\n    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n    listener.lineEnd();\n  }\n  function d3_geo_streamPolygon(coordinates, listener) {\n    var i = -1, n = coordinates.length;\n    listener.polygonStart();\n    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n    listener.polygonEnd();\n  }\n  d3.geo.area = function(object) {\n    d3_geo_areaSum = 0;\n    d3.geo.stream(object, d3_geo_area);\n    return d3_geo_areaSum;\n  };\n  var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n  var d3_geo_area = {\n    sphere: function() {\n      d3_geo_areaSum += 4 * π;\n    },\n    point: d3_noop,\n    lineStart: d3_noop,\n    lineEnd: d3_noop,\n    polygonStart: function() {\n      d3_geo_areaRingSum.reset();\n      d3_geo_area.lineStart = d3_geo_areaRingStart;\n    },\n    polygonEnd: function() {\n      var area = 2 * d3_geo_areaRingSum;\n      d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n    }\n  };\n  function d3_geo_areaRingStart() {\n    var λ00, φ00, λ0, cosφ0, sinφ0;\n    d3_geo_area.point = function(λ, φ) {\n      d3_geo_area.point = nextPoint;\n      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n      sinφ0 = Math.sin(φ);\n    };\n    function nextPoint(λ, φ) {\n      λ *= d3_radians;\n      φ = φ * d3_radians / 2 + π / 4;\n      var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n      d3_geo_areaRingSum.add(Math.atan2(v, u));\n      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n    }\n    d3_geo_area.lineEnd = function() {\n      nextPoint(λ00, φ00);\n    };\n  }\n  function d3_geo_cartesian(spherical) {\n    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n  }\n  function d3_geo_cartesianDot(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n  }\n  function d3_geo_cartesianCross(a, b) {\n    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n  }\n  function d3_geo_cartesianAdd(a, b) {\n    a[0] += b[0];\n    a[1] += b[1];\n    a[2] += b[2];\n  }\n  function d3_geo_cartesianScale(vector, k) {\n    return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n  }\n  function d3_geo_cartesianNormalize(d) {\n    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n    d[0] /= l;\n    d[1] /= l;\n    d[2] /= l;\n  }\n  function d3_geo_spherical(cartesian) {\n    return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n  }\n  function d3_geo_sphericalEqual(a, b) {\n    return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n  }\n  d3.geo.bounds = function() {\n    var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n    var bound = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: function() {\n        bound.point = ringPoint;\n        bound.lineStart = ringStart;\n        bound.lineEnd = ringEnd;\n        dλSum = 0;\n        d3_geo_area.polygonStart();\n      },\n      polygonEnd: function() {\n        d3_geo_area.polygonEnd();\n        bound.point = point;\n        bound.lineStart = lineStart;\n        bound.lineEnd = lineEnd;\n        if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n        range[0] = λ0, range[1] = λ1;\n      }\n    };\n    function point(λ, φ) {\n      ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n      if (φ < φ0) φ0 = φ;\n      if (φ > φ1) φ1 = φ;\n    }\n    function linePoint(λ, φ) {\n      var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n      if (p0) {\n        var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n        d3_geo_cartesianNormalize(inflection);\n        inflection = d3_geo_spherical(inflection);\n        var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n        if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n          var φi = inflection[1] * d3_degrees;\n          if (φi > φ1) φ1 = φi;\n        } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n          var φi = -inflection[1] * d3_degrees;\n          if (φi < φ0) φ0 = φi;\n        } else {\n          if (φ < φ0) φ0 = φ;\n          if (φ > φ1) φ1 = φ;\n        }\n        if (antimeridian) {\n          if (λ < λ_) {\n            if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n          } else {\n            if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n          }\n        } else {\n          if (λ1 >= λ0) {\n            if (λ < λ0) λ0 = λ;\n            if (λ > λ1) λ1 = λ;\n          } else {\n            if (λ > λ_) {\n              if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n            } else {\n              if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n            }\n          }\n        }\n      } else {\n        point(λ, φ);\n      }\n      p0 = p, λ_ = λ;\n    }\n    function lineStart() {\n      bound.point = linePoint;\n    }\n    function lineEnd() {\n      range[0] = λ0, range[1] = λ1;\n      bound.point = point;\n      p0 = null;\n    }\n    function ringPoint(λ, φ) {\n      if (p0) {\n        var dλ = λ - λ_;\n        dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n      } else λ__ = λ, φ__ = φ;\n      d3_geo_area.point(λ, φ);\n      linePoint(λ, φ);\n    }\n    function ringStart() {\n      d3_geo_area.lineStart();\n    }\n    function ringEnd() {\n      ringPoint(λ__, φ__);\n      d3_geo_area.lineEnd();\n      if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n      range[0] = λ0, range[1] = λ1;\n      p0 = null;\n    }\n    function angle(λ0, λ1) {\n      return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n    }\n    function compareRanges(a, b) {\n      return a[0] - b[0];\n    }\n    function withinRange(x, range) {\n      return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n    }\n    return function(feature) {\n      φ1 = λ1 = -(λ0 = φ0 = Infinity);\n      ranges = [];\n      d3.geo.stream(feature, bound);\n      var n = ranges.length;\n      if (n) {\n        ranges.sort(compareRanges);\n        for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n          b = ranges[i];\n          if (withinRange(b[0], a) || withinRange(b[1], a)) {\n            if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n            if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n          } else {\n            merged.push(a = b);\n          }\n        }\n        var best = -Infinity, dλ;\n        for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n          b = merged[i];\n          if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n        }\n      }\n      ranges = range = null;\n      return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n    };\n  }();\n  d3.geo.centroid = function(object) {\n    d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n    d3.geo.stream(object, d3_geo_centroid);\n    var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n    if (m < ε2) {\n      x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n      if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n      m = x * x + y * y + z * z;\n      if (m < ε2) return [ NaN, NaN ];\n    }\n    return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n  };\n  var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n  var d3_geo_centroid = {\n    sphere: d3_noop,\n    point: d3_geo_centroidPoint,\n    lineStart: d3_geo_centroidLineStart,\n    lineEnd: d3_geo_centroidLineEnd,\n    polygonStart: function() {\n      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n    },\n    polygonEnd: function() {\n      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n    }\n  };\n  function d3_geo_centroidPoint(λ, φ) {\n    λ *= d3_radians;\n    var cosφ = Math.cos(φ *= d3_radians);\n    d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n  }\n  function d3_geo_centroidPointXYZ(x, y, z) {\n    ++d3_geo_centroidW0;\n    d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n    d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n    d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n  }\n  function d3_geo_centroidLineStart() {\n    var x0, y0, z0;\n    d3_geo_centroid.point = function(λ, φ) {\n      λ *= d3_radians;\n      var cosφ = Math.cos(φ *= d3_radians);\n      x0 = cosφ * Math.cos(λ);\n      y0 = cosφ * Math.sin(λ);\n      z0 = Math.sin(φ);\n      d3_geo_centroid.point = nextPoint;\n      d3_geo_centroidPointXYZ(x0, y0, z0);\n    };\n    function nextPoint(λ, φ) {\n      λ *= d3_radians;\n      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n      d3_geo_centroidW1 += w;\n      d3_geo_centroidX1 += w * (x0 + (x0 = x));\n      d3_geo_centroidY1 += w * (y0 + (y0 = y));\n      d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n      d3_geo_centroidPointXYZ(x0, y0, z0);\n    }\n  }\n  function d3_geo_centroidLineEnd() {\n    d3_geo_centroid.point = d3_geo_centroidPoint;\n  }\n  function d3_geo_centroidRingStart() {\n    var λ00, φ00, x0, y0, z0;\n    d3_geo_centroid.point = function(λ, φ) {\n      λ00 = λ, φ00 = φ;\n      d3_geo_centroid.point = nextPoint;\n      λ *= d3_radians;\n      var cosφ = Math.cos(φ *= d3_radians);\n      x0 = cosφ * Math.cos(λ);\n      y0 = cosφ * Math.sin(λ);\n      z0 = Math.sin(φ);\n      d3_geo_centroidPointXYZ(x0, y0, z0);\n    };\n    d3_geo_centroid.lineEnd = function() {\n      nextPoint(λ00, φ00);\n      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n      d3_geo_centroid.point = d3_geo_centroidPoint;\n    };\n    function nextPoint(λ, φ) {\n      λ *= d3_radians;\n      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n      d3_geo_centroidX2 += v * cx;\n      d3_geo_centroidY2 += v * cy;\n      d3_geo_centroidZ2 += v * cz;\n      d3_geo_centroidW1 += w;\n      d3_geo_centroidX1 += w * (x0 + (x0 = x));\n      d3_geo_centroidY1 += w * (y0 + (y0 = y));\n      d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n      d3_geo_centroidPointXYZ(x0, y0, z0);\n    }\n  }\n  function d3_geo_compose(a, b) {\n    function compose(x, y) {\n      return x = a(x, y), b(x[0], x[1]);\n    }\n    if (a.invert && b.invert) compose.invert = function(x, y) {\n      return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n    };\n    return compose;\n  }\n  function d3_true() {\n    return true;\n  }\n  function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n    var subject = [], clip = [];\n    segments.forEach(function(segment) {\n      if ((n = segment.length - 1) <= 0) return;\n      var n, p0 = segment[0], p1 = segment[n];\n      if (d3_geo_sphericalEqual(p0, p1)) {\n        listener.lineStart();\n        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n        listener.lineEnd();\n        return;\n      }\n      var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n      a.o = b;\n      subject.push(a);\n      clip.push(b);\n      a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n      b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n      a.o = b;\n      subject.push(a);\n      clip.push(b);\n    });\n    clip.sort(compare);\n    d3_geo_clipPolygonLinkCircular(subject);\n    d3_geo_clipPolygonLinkCircular(clip);\n    if (!subject.length) return;\n    for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n      clip[i].e = entry = !entry;\n    }\n    var start = subject[0], points, point;\n    while (1) {\n      var current = start, isSubject = true;\n      while (current.v) if ((current = current.n) === start) return;\n      points = current.z;\n      listener.lineStart();\n      do {\n        current.v = current.o.v = true;\n        if (current.e) {\n          if (isSubject) {\n            for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n          } else {\n            interpolate(current.x, current.n.x, 1, listener);\n          }\n          current = current.n;\n        } else {\n          if (isSubject) {\n            points = current.p.z;\n            for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n          } else {\n            interpolate(current.x, current.p.x, -1, listener);\n          }\n          current = current.p;\n        }\n        current = current.o;\n        points = current.z;\n        isSubject = !isSubject;\n      } while (!current.v);\n      listener.lineEnd();\n    }\n  }\n  function d3_geo_clipPolygonLinkCircular(array) {\n    if (!(n = array.length)) return;\n    var n, i = 0, a = array[0], b;\n    while (++i < n) {\n      a.n = b = array[i];\n      b.p = a;\n      a = b;\n    }\n    a.n = b = array[0];\n    b.p = a;\n  }\n  function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n    this.x = point;\n    this.z = points;\n    this.o = other;\n    this.e = entry;\n    this.v = false;\n    this.n = this.p = null;\n  }\n  function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n    return function(rotate, listener) {\n      var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n      var clip = {\n        point: point,\n        lineStart: lineStart,\n        lineEnd: lineEnd,\n        polygonStart: function() {\n          clip.point = pointRing;\n          clip.lineStart = ringStart;\n          clip.lineEnd = ringEnd;\n          segments = [];\n          polygon = [];\n        },\n        polygonEnd: function() {\n          clip.point = point;\n          clip.lineStart = lineStart;\n          clip.lineEnd = lineEnd;\n          segments = d3.merge(segments);\n          var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n          if (segments.length) {\n            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n            d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n          } else if (clipStartInside) {\n            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n            listener.lineStart();\n            interpolate(null, null, 1, listener);\n            listener.lineEnd();\n          }\n          if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n          segments = polygon = null;\n        },\n        sphere: function() {\n          listener.polygonStart();\n          listener.lineStart();\n          interpolate(null, null, 1, listener);\n          listener.lineEnd();\n          listener.polygonEnd();\n        }\n      };\n      function point(λ, φ) {\n        var point = rotate(λ, φ);\n        if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n      }\n      function pointLine(λ, φ) {\n        var point = rotate(λ, φ);\n        line.point(point[0], point[1]);\n      }\n      function lineStart() {\n        clip.point = pointLine;\n        line.lineStart();\n      }\n      function lineEnd() {\n        clip.point = point;\n        line.lineEnd();\n      }\n      var segments;\n      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n      function pointRing(λ, φ) {\n        ring.push([ λ, φ ]);\n        var point = rotate(λ, φ);\n        ringListener.point(point[0], point[1]);\n      }\n      function ringStart() {\n        ringListener.lineStart();\n        ring = [];\n      }\n      function ringEnd() {\n        pointRing(ring[0][0], ring[0][1]);\n        ringListener.lineEnd();\n        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n        ring.pop();\n        polygon.push(ring);\n        ring = null;\n        if (!n) return;\n        if (clean & 1) {\n          segment = ringSegments[0];\n          var n = segment.length - 1, i = -1, point;\n          if (n > 0) {\n            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n            listener.lineStart();\n            while (++i < n) listener.point((point = segment[i])[0], point[1]);\n            listener.lineEnd();\n          }\n          return;\n        }\n        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n      }\n      return clip;\n    };\n  }\n  function d3_geo_clipSegmentLength1(segment) {\n    return segment.length > 1;\n  }\n  function d3_geo_clipBufferListener() {\n    var lines = [], line;\n    return {\n      lineStart: function() {\n        lines.push(line = []);\n      },\n      point: function(λ, φ) {\n        line.push([ λ, φ ]);\n      },\n      lineEnd: d3_noop,\n      buffer: function() {\n        var buffer = lines;\n        lines = [];\n        line = null;\n        return buffer;\n      },\n      rejoin: function() {\n        if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n      }\n    };\n  }\n  function d3_geo_clipSort(a, b) {\n    return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n  }\n  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n  function d3_geo_clipAntimeridianLine(listener) {\n    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n    return {\n      lineStart: function() {\n        listener.lineStart();\n        clean = 1;\n      },\n      point: function(λ1, φ1) {\n        var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n        if (abs(dλ - π) < ε) {\n          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n          listener.point(sλ0, φ0);\n          listener.lineEnd();\n          listener.lineStart();\n          listener.point(sλ1, φ0);\n          listener.point(λ1, φ0);\n          clean = 0;\n        } else if (sλ0 !== sλ1 && dλ >= π) {\n          if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n          if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n          listener.point(sλ0, φ0);\n          listener.lineEnd();\n          listener.lineStart();\n          listener.point(sλ1, φ0);\n          clean = 0;\n        }\n        listener.point(λ0 = λ1, φ0 = φ1);\n        sλ0 = sλ1;\n      },\n      lineEnd: function() {\n        listener.lineEnd();\n        λ0 = φ0 = NaN;\n      },\n      clean: function() {\n        return 2 - clean;\n      }\n    };\n  }\n  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n    return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n  }\n  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n    var φ;\n    if (from == null) {\n      φ = direction * halfπ;\n      listener.point(-π, φ);\n      listener.point(0, φ);\n      listener.point(π, φ);\n      listener.point(π, 0);\n      listener.point(π, -φ);\n      listener.point(0, -φ);\n      listener.point(-π, -φ);\n      listener.point(-π, 0);\n      listener.point(-π, φ);\n    } else if (abs(from[0] - to[0]) > ε) {\n      var s = from[0] < to[0] ? π : -π;\n      φ = direction * s / 2;\n      listener.point(-s, φ);\n      listener.point(0, φ);\n      listener.point(s, φ);\n    } else {\n      listener.point(to[0], to[1]);\n    }\n  }\n  function d3_geo_pointInPolygon(point, polygon) {\n    var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n    d3_geo_areaRingSum.reset();\n    for (var i = 0, n = polygon.length; i < n; ++i) {\n      var ring = polygon[i], m = ring.length;\n      if (!m) continue;\n      var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n      while (true) {\n        if (j === m) j = 0;\n        point = ring[j];\n        var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n        d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n        polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n        if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n          var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n          d3_geo_cartesianNormalize(arc);\n          var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n          d3_geo_cartesianNormalize(intersection);\n          var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n          if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n            winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n          }\n        }\n        if (!j++) break;\n        λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n      }\n    }\n    return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;\n  }\n  function d3_geo_clipCircle(radius) {\n    var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n    return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n    function visible(λ, φ) {\n      return Math.cos(λ) * Math.cos(φ) > cr;\n    }\n    function clipLine(listener) {\n      var point0, c0, v0, v00, clean;\n      return {\n        lineStart: function() {\n          v00 = v0 = false;\n          clean = 1;\n        },\n        point: function(λ, φ) {\n          var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n          if (!point0 && (v00 = v0 = v)) listener.lineStart();\n          if (v !== v0) {\n            point2 = intersect(point0, point1);\n            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n              point1[0] += ε;\n              point1[1] += ε;\n              v = visible(point1[0], point1[1]);\n            }\n          }\n          if (v !== v0) {\n            clean = 0;\n            if (v) {\n              listener.lineStart();\n              point2 = intersect(point1, point0);\n              listener.point(point2[0], point2[1]);\n            } else {\n              point2 = intersect(point0, point1);\n              listener.point(point2[0], point2[1]);\n              listener.lineEnd();\n            }\n            point0 = point2;\n          } else if (notHemisphere && point0 && smallRadius ^ v) {\n            var t;\n            if (!(c & c0) && (t = intersect(point1, point0, true))) {\n              clean = 0;\n              if (smallRadius) {\n                listener.lineStart();\n                listener.point(t[0][0], t[0][1]);\n                listener.point(t[1][0], t[1][1]);\n                listener.lineEnd();\n              } else {\n                listener.point(t[1][0], t[1][1]);\n                listener.lineEnd();\n                listener.lineStart();\n                listener.point(t[0][0], t[0][1]);\n              }\n            }\n          }\n          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n            listener.point(point1[0], point1[1]);\n          }\n          point0 = point1, v0 = v, c0 = c;\n        },\n        lineEnd: function() {\n          if (v0) listener.lineEnd();\n          point0 = null;\n        },\n        clean: function() {\n          return clean | (v00 && v0) << 1;\n        }\n      };\n    }\n    function intersect(a, b, two) {\n      var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n      if (!determinant) return !two && a;\n      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n      d3_geo_cartesianAdd(A, B);\n      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n      if (t2 < 0) return;\n      var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n      d3_geo_cartesianAdd(q, A);\n      q = d3_geo_spherical(q);\n      if (!two) return q;\n      var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n      if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n      var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n      if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n      if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n        var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n        d3_geo_cartesianAdd(q1, A);\n        return [ q, d3_geo_spherical(q1) ];\n      }\n    }\n    function code(λ, φ) {\n      var r = smallRadius ? radius : π - radius, code = 0;\n      if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n      if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n      return code;\n    }\n  }\n  function d3_geom_clipLine(x0, y0, x1, y1) {\n    return function(line) {\n      var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n      r = x0 - ax;\n      if (!dx && r > 0) return;\n      r /= dx;\n      if (dx < 0) {\n        if (r < t0) return;\n        if (r < t1) t1 = r;\n      } else if (dx > 0) {\n        if (r > t1) return;\n        if (r > t0) t0 = r;\n      }\n      r = x1 - ax;\n      if (!dx && r < 0) return;\n      r /= dx;\n      if (dx < 0) {\n        if (r > t1) return;\n        if (r > t0) t0 = r;\n      } else if (dx > 0) {\n        if (r < t0) return;\n        if (r < t1) t1 = r;\n      }\n      r = y0 - ay;\n      if (!dy && r > 0) return;\n      r /= dy;\n      if (dy < 0) {\n        if (r < t0) return;\n        if (r < t1) t1 = r;\n      } else if (dy > 0) {\n        if (r > t1) return;\n        if (r > t0) t0 = r;\n      }\n      r = y1 - ay;\n      if (!dy && r < 0) return;\n      r /= dy;\n      if (dy < 0) {\n        if (r > t1) return;\n        if (r > t0) t0 = r;\n      } else if (dy > 0) {\n        if (r < t0) return;\n        if (r < t1) t1 = r;\n      }\n      if (t0 > 0) line.a = {\n        x: ax + t0 * dx,\n        y: ay + t0 * dy\n      };\n      if (t1 < 1) line.b = {\n        x: ax + t1 * dx,\n        y: ay + t1 * dy\n      };\n      return line;\n    };\n  }\n  var d3_geo_clipExtentMAX = 1e9;\n  d3.geo.clipExtent = function() {\n    var x0, y0, x1, y1, stream, clip, clipExtent = {\n      stream: function(output) {\n        if (stream) stream.valid = false;\n        stream = clip(output);\n        stream.valid = true;\n        return stream;\n      },\n      extent: function(_) {\n        if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n        clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n        if (stream) stream.valid = false, stream = null;\n        return clipExtent;\n      }\n    };\n    return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n  };\n  function d3_geo_clipExtent(x0, y0, x1, y1) {\n    return function(listener) {\n      var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n      var clip = {\n        point: point,\n        lineStart: lineStart,\n        lineEnd: lineEnd,\n        polygonStart: function() {\n          listener = bufferListener;\n          segments = [];\n          polygon = [];\n          clean = true;\n        },\n        polygonEnd: function() {\n          listener = listener_;\n          segments = d3.merge(segments);\n          var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n          if (inside || visible) {\n            listener.polygonStart();\n            if (inside) {\n              listener.lineStart();\n              interpolate(null, null, 1, listener);\n              listener.lineEnd();\n            }\n            if (visible) {\n              d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n            }\n            listener.polygonEnd();\n          }\n          segments = polygon = ring = null;\n        }\n      };\n      function insidePolygon(p) {\n        var wn = 0, n = polygon.length, y = p[1];\n        for (var i = 0; i < n; ++i) {\n          for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n            b = v[j];\n            if (a[1] <= y) {\n              if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n            } else {\n              if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n            }\n            a = b;\n          }\n        }\n        return wn !== 0;\n      }\n      function interpolate(from, to, direction, listener) {\n        var a = 0, a1 = 0;\n        if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n          do {\n            listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n          } while ((a = (a + direction + 4) % 4) !== a1);\n        } else {\n          listener.point(to[0], to[1]);\n        }\n      }\n      function pointVisible(x, y) {\n        return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n      }\n      function point(x, y) {\n        if (pointVisible(x, y)) listener.point(x, y);\n      }\n      var x__, y__, v__, x_, y_, v_, first, clean;\n      function lineStart() {\n        clip.point = linePoint;\n        if (polygon) polygon.push(ring = []);\n        first = true;\n        v_ = false;\n        x_ = y_ = NaN;\n      }\n      function lineEnd() {\n        if (segments) {\n          linePoint(x__, y__);\n          if (v__ && v_) bufferListener.rejoin();\n          segments.push(bufferListener.buffer());\n        }\n        clip.point = point;\n        if (v_) listener.lineEnd();\n      }\n      function linePoint(x, y) {\n        x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n        y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n        var v = pointVisible(x, y);\n        if (polygon) ring.push([ x, y ]);\n        if (first) {\n          x__ = x, y__ = y, v__ = v;\n          first = false;\n          if (v) {\n            listener.lineStart();\n            listener.point(x, y);\n          }\n        } else {\n          if (v && v_) listener.point(x, y); else {\n            var l = {\n              a: {\n                x: x_,\n                y: y_\n              },\n              b: {\n                x: x,\n                y: y\n              }\n            };\n            if (clipLine(l)) {\n              if (!v_) {\n                listener.lineStart();\n                listener.point(l.a.x, l.a.y);\n              }\n              listener.point(l.b.x, l.b.y);\n              if (!v) listener.lineEnd();\n              clean = false;\n            } else if (v) {\n              listener.lineStart();\n              listener.point(x, y);\n              clean = false;\n            }\n          }\n        }\n        x_ = x, y_ = y, v_ = v;\n      }\n      return clip;\n    };\n    function corner(p, direction) {\n      return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n    }\n    function compare(a, b) {\n      return comparePoints(a.x, b.x);\n    }\n    function comparePoints(a, b) {\n      var ca = corner(a, 1), cb = corner(b, 1);\n      return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n    }\n  }\n  function d3_geo_conic(projectAt) {\n    var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n    p.parallels = function(_) {\n      if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n      return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n    };\n    return p;\n  }\n  function d3_geo_conicEqualArea(φ0, φ1) {\n    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n    function forward(λ, φ) {\n      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n    }\n    forward.invert = function(x, y) {\n      var ρ0_y = ρ0 - y;\n      return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n    };\n    return forward;\n  }\n  (d3.geo.conicEqualArea = function() {\n    return d3_geo_conic(d3_geo_conicEqualArea);\n  }).raw = d3_geo_conicEqualArea;\n  d3.geo.albers = function() {\n    return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n  };\n  d3.geo.albersUsa = function() {\n    var lower48 = d3.geo.albers();\n    var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n    var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n    var point, pointStream = {\n      point: function(x, y) {\n        point = [ x, y ];\n      }\n    }, lower48Point, alaskaPoint, hawaiiPoint;\n    function albersUsa(coordinates) {\n      var x = coordinates[0], y = coordinates[1];\n      point = null;\n      (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n      return point;\n    }\n    albersUsa.invert = function(coordinates) {\n      var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n      return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n    };\n    albersUsa.stream = function(stream) {\n      var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n      return {\n        point: function(x, y) {\n          lower48Stream.point(x, y);\n          alaskaStream.point(x, y);\n          hawaiiStream.point(x, y);\n        },\n        sphere: function() {\n          lower48Stream.sphere();\n          alaskaStream.sphere();\n          hawaiiStream.sphere();\n        },\n        lineStart: function() {\n          lower48Stream.lineStart();\n          alaskaStream.lineStart();\n          hawaiiStream.lineStart();\n        },\n        lineEnd: function() {\n          lower48Stream.lineEnd();\n          alaskaStream.lineEnd();\n          hawaiiStream.lineEnd();\n        },\n        polygonStart: function() {\n          lower48Stream.polygonStart();\n          alaskaStream.polygonStart();\n          hawaiiStream.polygonStart();\n        },\n        polygonEnd: function() {\n          lower48Stream.polygonEnd();\n          alaskaStream.polygonEnd();\n          hawaiiStream.polygonEnd();\n        }\n      };\n    };\n    albersUsa.precision = function(_) {\n      if (!arguments.length) return lower48.precision();\n      lower48.precision(_);\n      alaska.precision(_);\n      hawaii.precision(_);\n      return albersUsa;\n    };\n    albersUsa.scale = function(_) {\n      if (!arguments.length) return lower48.scale();\n      lower48.scale(_);\n      alaska.scale(_ * .35);\n      hawaii.scale(_);\n      return albersUsa.translate(lower48.translate());\n    };\n    albersUsa.translate = function(_) {\n      if (!arguments.length) return lower48.translate();\n      var k = lower48.scale(), x = +_[0], y = +_[1];\n      lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n      alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n      hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n      return albersUsa;\n    };\n    return albersUsa.scale(1070);\n  };\n  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n    point: d3_noop,\n    lineStart: d3_noop,\n    lineEnd: d3_noop,\n    polygonStart: function() {\n      d3_geo_pathAreaPolygon = 0;\n      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n    },\n    polygonEnd: function() {\n      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n      d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n    }\n  };\n  function d3_geo_pathAreaRingStart() {\n    var x00, y00, x0, y0;\n    d3_geo_pathArea.point = function(x, y) {\n      d3_geo_pathArea.point = nextPoint;\n      x00 = x0 = x, y00 = y0 = y;\n    };\n    function nextPoint(x, y) {\n      d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n      x0 = x, y0 = y;\n    }\n    d3_geo_pathArea.lineEnd = function() {\n      nextPoint(x00, y00);\n    };\n  }\n  var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n  var d3_geo_pathBounds = {\n    point: d3_geo_pathBoundsPoint,\n    lineStart: d3_noop,\n    lineEnd: d3_noop,\n    polygonStart: d3_noop,\n    polygonEnd: d3_noop\n  };\n  function d3_geo_pathBoundsPoint(x, y) {\n    if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n    if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n    if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n    if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n  }\n  function d3_geo_pathBuffer() {\n    var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n    var stream = {\n      point: point,\n      lineStart: function() {\n        stream.point = pointLineStart;\n      },\n      lineEnd: lineEnd,\n      polygonStart: function() {\n        stream.lineEnd = lineEndPolygon;\n      },\n      polygonEnd: function() {\n        stream.lineEnd = lineEnd;\n        stream.point = point;\n      },\n      pointRadius: function(_) {\n        pointCircle = d3_geo_pathBufferCircle(_);\n        return stream;\n      },\n      result: function() {\n        if (buffer.length) {\n          var result = buffer.join(\"\");\n          buffer = [];\n          return result;\n        }\n      }\n    };\n    function point(x, y) {\n      buffer.push(\"M\", x, \",\", y, pointCircle);\n    }\n    function pointLineStart(x, y) {\n      buffer.push(\"M\", x, \",\", y);\n      stream.point = pointLine;\n    }\n    function pointLine(x, y) {\n      buffer.push(\"L\", x, \",\", y);\n    }\n    function lineEnd() {\n      stream.point = point;\n    }\n    function lineEndPolygon() {\n      buffer.push(\"Z\");\n    }\n    return stream;\n  }\n  function d3_geo_pathBufferCircle(radius) {\n    return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n  }\n  var d3_geo_pathCentroid = {\n    point: d3_geo_pathCentroidPoint,\n    lineStart: d3_geo_pathCentroidLineStart,\n    lineEnd: d3_geo_pathCentroidLineEnd,\n    polygonStart: function() {\n      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n    },\n    polygonEnd: function() {\n      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n    }\n  };\n  function d3_geo_pathCentroidPoint(x, y) {\n    d3_geo_centroidX0 += x;\n    d3_geo_centroidY0 += y;\n    ++d3_geo_centroidZ0;\n  }\n  function d3_geo_pathCentroidLineStart() {\n    var x0, y0;\n    d3_geo_pathCentroid.point = function(x, y) {\n      d3_geo_pathCentroid.point = nextPoint;\n      d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n    };\n    function nextPoint(x, y) {\n      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n      d3_geo_centroidX1 += z * (x0 + x) / 2;\n      d3_geo_centroidY1 += z * (y0 + y) / 2;\n      d3_geo_centroidZ1 += z;\n      d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n    }\n  }\n  function d3_geo_pathCentroidLineEnd() {\n    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n  }\n  function d3_geo_pathCentroidRingStart() {\n    var x00, y00, x0, y0;\n    d3_geo_pathCentroid.point = function(x, y) {\n      d3_geo_pathCentroid.point = nextPoint;\n      d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n    };\n    function nextPoint(x, y) {\n      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n      d3_geo_centroidX1 += z * (x0 + x) / 2;\n      d3_geo_centroidY1 += z * (y0 + y) / 2;\n      d3_geo_centroidZ1 += z;\n      z = y0 * x - x0 * y;\n      d3_geo_centroidX2 += z * (x0 + x);\n      d3_geo_centroidY2 += z * (y0 + y);\n      d3_geo_centroidZ2 += z * 3;\n      d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n    }\n    d3_geo_pathCentroid.lineEnd = function() {\n      nextPoint(x00, y00);\n    };\n  }\n  function d3_geo_pathContext(context) {\n    var pointRadius = 4.5;\n    var stream = {\n      point: point,\n      lineStart: function() {\n        stream.point = pointLineStart;\n      },\n      lineEnd: lineEnd,\n      polygonStart: function() {\n        stream.lineEnd = lineEndPolygon;\n      },\n      polygonEnd: function() {\n        stream.lineEnd = lineEnd;\n        stream.point = point;\n      },\n      pointRadius: function(_) {\n        pointRadius = _;\n        return stream;\n      },\n      result: d3_noop\n    };\n    function point(x, y) {\n      context.moveTo(x + pointRadius, y);\n      context.arc(x, y, pointRadius, 0, τ);\n    }\n    function pointLineStart(x, y) {\n      context.moveTo(x, y);\n      stream.point = pointLine;\n    }\n    function pointLine(x, y) {\n      context.lineTo(x, y);\n    }\n    function lineEnd() {\n      stream.point = point;\n    }\n    function lineEndPolygon() {\n      context.closePath();\n    }\n    return stream;\n  }\n  function d3_geo_resample(project) {\n    var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n    function resample(stream) {\n      return (maxDepth ? resampleRecursive : resampleNone)(stream);\n    }\n    function resampleNone(stream) {\n      return d3_geo_transformPoint(stream, function(x, y) {\n        x = project(x, y);\n        stream.point(x[0], x[1]);\n      });\n    }\n    function resampleRecursive(stream) {\n      var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n      var resample = {\n        point: point,\n        lineStart: lineStart,\n        lineEnd: lineEnd,\n        polygonStart: function() {\n          stream.polygonStart();\n          resample.lineStart = ringStart;\n        },\n        polygonEnd: function() {\n          stream.polygonEnd();\n          resample.lineStart = lineStart;\n        }\n      };\n      function point(x, y) {\n        x = project(x, y);\n        stream.point(x[0], x[1]);\n      }\n      function lineStart() {\n        x0 = NaN;\n        resample.point = linePoint;\n        stream.lineStart();\n      }\n      function linePoint(λ, φ) {\n        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n        stream.point(x0, y0);\n      }\n      function lineEnd() {\n        resample.point = point;\n        stream.lineEnd();\n      }\n      function ringStart() {\n        lineStart();\n        resample.point = ringPoint;\n        resample.lineEnd = ringEnd;\n      }\n      function ringPoint(λ, φ) {\n        linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n        resample.point = linePoint;\n      }\n      function ringEnd() {\n        resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n        resample.lineEnd = lineEnd;\n        lineEnd();\n      }\n      return resample;\n    }\n    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n      if (d2 > 4 * δ2 && depth--) {\n        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n        if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n          stream.point(x2, y2);\n          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n        }\n      }\n    }\n    resample.precision = function(_) {\n      if (!arguments.length) return Math.sqrt(δ2);\n      maxDepth = (δ2 = _ * _) > 0 && 16;\n      return resample;\n    };\n    return resample;\n  }\n  d3.geo.path = function() {\n    var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n    function path(object) {\n      if (object) {\n        if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n        if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n        d3.geo.stream(object, cacheStream);\n      }\n      return contextStream.result();\n    }\n    path.area = function(object) {\n      d3_geo_pathAreaSum = 0;\n      d3.geo.stream(object, projectStream(d3_geo_pathArea));\n      return d3_geo_pathAreaSum;\n    };\n    path.centroid = function(object) {\n      d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n      return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n    };\n    path.bounds = function(object) {\n      d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n      d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n      return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n    };\n    path.projection = function(_) {\n      if (!arguments.length) return projection;\n      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n      return reset();\n    };\n    path.context = function(_) {\n      if (!arguments.length) return context;\n      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n      if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n      return reset();\n    };\n    path.pointRadius = function(_) {\n      if (!arguments.length) return pointRadius;\n      pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n      return path;\n    };\n    function reset() {\n      cacheStream = null;\n      return path;\n    }\n    return path.projection(d3.geo.albersUsa()).context(null);\n  };\n  function d3_geo_pathProjectStream(project) {\n    var resample = d3_geo_resample(function(x, y) {\n      return project([ x * d3_degrees, y * d3_degrees ]);\n    });\n    return function(stream) {\n      return d3_geo_projectionRadians(resample(stream));\n    };\n  }\n  d3.geo.transform = function(methods) {\n    return {\n      stream: function(stream) {\n        var transform = new d3_geo_transform(stream);\n        for (var k in methods) transform[k] = methods[k];\n        return transform;\n      }\n    };\n  };\n  function d3_geo_transform(stream) {\n    this.stream = stream;\n  }\n  d3_geo_transform.prototype = {\n    point: function(x, y) {\n      this.stream.point(x, y);\n    },\n    sphere: function() {\n      this.stream.sphere();\n    },\n    lineStart: function() {\n      this.stream.lineStart();\n    },\n    lineEnd: function() {\n      this.stream.lineEnd();\n    },\n    polygonStart: function() {\n      this.stream.polygonStart();\n    },\n    polygonEnd: function() {\n      this.stream.polygonEnd();\n    }\n  };\n  function d3_geo_transformPoint(stream, point) {\n    return {\n      point: point,\n      sphere: function() {\n        stream.sphere();\n      },\n      lineStart: function() {\n        stream.lineStart();\n      },\n      lineEnd: function() {\n        stream.lineEnd();\n      },\n      polygonStart: function() {\n        stream.polygonStart();\n      },\n      polygonEnd: function() {\n        stream.polygonEnd();\n      }\n    };\n  }\n  d3.geo.projection = d3_geo_projection;\n  d3.geo.projectionMutator = d3_geo_projectionMutator;\n  function d3_geo_projection(project) {\n    return d3_geo_projectionMutator(function() {\n      return project;\n    })();\n  }\n  function d3_geo_projectionMutator(projectAt) {\n    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n      x = project(x, y);\n      return [ x[0] * k + δx, δy - x[1] * k ];\n    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n    function projection(point) {\n      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n      return [ point[0] * k + δx, δy - point[1] * k ];\n    }\n    function invert(point) {\n      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n    }\n    projection.stream = function(output) {\n      if (stream) stream.valid = false;\n      stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n      stream.valid = true;\n      return stream;\n    };\n    projection.clipAngle = function(_) {\n      if (!arguments.length) return clipAngle;\n      preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n      return invalidate();\n    };\n    projection.clipExtent = function(_) {\n      if (!arguments.length) return clipExtent;\n      clipExtent = _;\n      postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n      return invalidate();\n    };\n    projection.scale = function(_) {\n      if (!arguments.length) return k;\n      k = +_;\n      return reset();\n    };\n    projection.translate = function(_) {\n      if (!arguments.length) return [ x, y ];\n      x = +_[0];\n      y = +_[1];\n      return reset();\n    };\n    projection.center = function(_) {\n      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n      λ = _[0] % 360 * d3_radians;\n      φ = _[1] % 360 * d3_radians;\n      return reset();\n    };\n    projection.rotate = function(_) {\n      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n      δλ = _[0] % 360 * d3_radians;\n      δφ = _[1] % 360 * d3_radians;\n      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n      return reset();\n    };\n    d3.rebind(projection, projectResample, \"precision\");\n    function reset() {\n      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n      var center = project(λ, φ);\n      δx = x - center[0] * k;\n      δy = y + center[1] * k;\n      return invalidate();\n    }\n    function invalidate() {\n      if (stream) stream.valid = false, stream = null;\n      return projection;\n    }\n    return function() {\n      project = projectAt.apply(this, arguments);\n      projection.invert = project.invert && invert;\n      return reset();\n    };\n  }\n  function d3_geo_projectionRadians(stream) {\n    return d3_geo_transformPoint(stream, function(x, y) {\n      stream.point(x * d3_radians, y * d3_radians);\n    });\n  }\n  function d3_geo_equirectangular(λ, φ) {\n    return [ λ, φ ];\n  }\n  (d3.geo.equirectangular = function() {\n    return d3_geo_projection(d3_geo_equirectangular);\n  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n  d3.geo.rotation = function(rotate) {\n    rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n    function forward(coordinates) {\n      coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n    }\n    forward.invert = function(coordinates) {\n      coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n    };\n    return forward;\n  };\n  function d3_geo_identityRotation(λ, φ) {\n    return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n  }\n  d3_geo_identityRotation.invert = d3_geo_equirectangular;\n  function d3_geo_rotation(δλ, δφ, δγ) {\n    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n  }\n  function d3_geo_forwardRotationλ(δλ) {\n    return function(λ, φ) {\n      return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n    };\n  }\n  function d3_geo_rotationλ(δλ) {\n    var rotation = d3_geo_forwardRotationλ(δλ);\n    rotation.invert = d3_geo_forwardRotationλ(-δλ);\n    return rotation;\n  }\n  function d3_geo_rotationφγ(δφ, δγ) {\n    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n    function rotation(λ, φ) {\n      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n    }\n    rotation.invert = function(λ, φ) {\n      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n    };\n    return rotation;\n  }\n  d3.geo.circle = function() {\n    var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n    function circle() {\n      var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n      interpolate(null, null, 1, {\n        point: function(x, y) {\n          ring.push(x = rotate(x, y));\n          x[0] *= d3_degrees, x[1] *= d3_degrees;\n        }\n      });\n      return {\n        type: \"Polygon\",\n        coordinates: [ ring ]\n      };\n    }\n    circle.origin = function(x) {\n      if (!arguments.length) return origin;\n      origin = x;\n      return circle;\n    };\n    circle.angle = function(x) {\n      if (!arguments.length) return angle;\n      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n      return circle;\n    };\n    circle.precision = function(_) {\n      if (!arguments.length) return precision;\n      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n      return circle;\n    };\n    return circle.angle(90);\n  };\n  function d3_geo_circleInterpolate(radius, precision) {\n    var cr = Math.cos(radius), sr = Math.sin(radius);\n    return function(from, to, direction, listener) {\n      var step = direction * precision;\n      if (from != null) {\n        from = d3_geo_circleAngle(cr, from);\n        to = d3_geo_circleAngle(cr, to);\n        if (direction > 0 ? from < to : from > to) from += direction * τ;\n      } else {\n        from = radius + direction * τ;\n        to = radius - .5 * step;\n      }\n      for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n      }\n    };\n  }\n  function d3_geo_circleAngle(cr, point) {\n    var a = d3_geo_cartesian(point);\n    a[0] -= cr;\n    d3_geo_cartesianNormalize(a);\n    var angle = d3_acos(-a[1]);\n    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n  }\n  d3.geo.distance = function(a, b) {\n    var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n    return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n  };\n  d3.geo.graticule = function() {\n    var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n    function graticule() {\n      return {\n        type: \"MultiLineString\",\n        coordinates: lines()\n      };\n    }\n    function lines() {\n      return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n        return abs(x % DX) > ε;\n      }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n        return abs(y % DY) > ε;\n      }).map(y));\n    }\n    graticule.lines = function() {\n      return lines().map(function(coordinates) {\n        return {\n          type: \"LineString\",\n          coordinates: coordinates\n        };\n      });\n    };\n    graticule.outline = function() {\n      return {\n        type: \"Polygon\",\n        coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n      };\n    };\n    graticule.extent = function(_) {\n      if (!arguments.length) return graticule.minorExtent();\n      return graticule.majorExtent(_).minorExtent(_);\n    };\n    graticule.majorExtent = function(_) {\n      if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n      X0 = +_[0][0], X1 = +_[1][0];\n      Y0 = +_[0][1], Y1 = +_[1][1];\n      if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n      if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n      return graticule.precision(precision);\n    };\n    graticule.minorExtent = function(_) {\n      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n      x0 = +_[0][0], x1 = +_[1][0];\n      y0 = +_[0][1], y1 = +_[1][1];\n      if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n      if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n      return graticule.precision(precision);\n    };\n    graticule.step = function(_) {\n      if (!arguments.length) return graticule.minorStep();\n      return graticule.majorStep(_).minorStep(_);\n    };\n    graticule.majorStep = function(_) {\n      if (!arguments.length) return [ DX, DY ];\n      DX = +_[0], DY = +_[1];\n      return graticule;\n    };\n    graticule.minorStep = function(_) {\n      if (!arguments.length) return [ dx, dy ];\n      dx = +_[0], dy = +_[1];\n      return graticule;\n    };\n    graticule.precision = function(_) {\n      if (!arguments.length) return precision;\n      precision = +_;\n      x = d3_geo_graticuleX(y0, y1, 90);\n      y = d3_geo_graticuleY(x0, x1, precision);\n      X = d3_geo_graticuleX(Y0, Y1, 90);\n      Y = d3_geo_graticuleY(X0, X1, precision);\n      return graticule;\n    };\n    return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n  };\n  function d3_geo_graticuleX(y0, y1, dy) {\n    var y = d3.range(y0, y1 - ε, dy).concat(y1);\n    return function(x) {\n      return y.map(function(y) {\n        return [ x, y ];\n      });\n    };\n  }\n  function d3_geo_graticuleY(x0, x1, dx) {\n    var x = d3.range(x0, x1 - ε, dx).concat(x1);\n    return function(y) {\n      return x.map(function(x) {\n        return [ x, y ];\n      });\n    };\n  }\n  function d3_source(d) {\n    return d.source;\n  }\n  function d3_target(d) {\n    return d.target;\n  }\n  d3.geo.greatArc = function() {\n    var source = d3_source, source_, target = d3_target, target_;\n    function greatArc() {\n      return {\n        type: \"LineString\",\n        coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n      };\n    }\n    greatArc.distance = function() {\n      return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n    };\n    greatArc.source = function(_) {\n      if (!arguments.length) return source;\n      source = _, source_ = typeof _ === \"function\" ? null : _;\n      return greatArc;\n    };\n    greatArc.target = function(_) {\n      if (!arguments.length) return target;\n      target = _, target_ = typeof _ === \"function\" ? null : _;\n      return greatArc;\n    };\n    greatArc.precision = function() {\n      return arguments.length ? greatArc : 0;\n    };\n    return greatArc;\n  };\n  d3.geo.interpolate = function(source, target) {\n    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n  };\n  function d3_geo_interpolate(x0, y0, x1, y1) {\n    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n    var interpolate = d ? function(t) {\n      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n    } : function() {\n      return [ x0 * d3_degrees, y0 * d3_degrees ];\n    };\n    interpolate.distance = d;\n    return interpolate;\n  }\n  d3.geo.length = function(object) {\n    d3_geo_lengthSum = 0;\n    d3.geo.stream(object, d3_geo_length);\n    return d3_geo_lengthSum;\n  };\n  var d3_geo_lengthSum;\n  var d3_geo_length = {\n    sphere: d3_noop,\n    point: d3_noop,\n    lineStart: d3_geo_lengthLineStart,\n    lineEnd: d3_noop,\n    polygonStart: d3_noop,\n    polygonEnd: d3_noop\n  };\n  function d3_geo_lengthLineStart() {\n    var λ0, sinφ0, cosφ0;\n    d3_geo_length.point = function(λ, φ) {\n      λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n      d3_geo_length.point = nextPoint;\n    };\n    d3_geo_length.lineEnd = function() {\n      d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n    };\n    function nextPoint(λ, φ) {\n      var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n      d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n      λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n    }\n  }\n  function d3_geo_azimuthal(scale, angle) {\n    function azimuthal(λ, φ) {\n      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n    }\n    azimuthal.invert = function(x, y) {\n      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n    };\n    return azimuthal;\n  }\n  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n    return Math.sqrt(2 / (1 + cosλcosφ));\n  }, function(ρ) {\n    return 2 * Math.asin(ρ / 2);\n  });\n  (d3.geo.azimuthalEqualArea = function() {\n    return d3_geo_projection(d3_geo_azimuthalEqualArea);\n  }).raw = d3_geo_azimuthalEqualArea;\n  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n    var c = Math.acos(cosλcosφ);\n    return c && c / Math.sin(c);\n  }, d3_identity);\n  (d3.geo.azimuthalEquidistant = function() {\n    return d3_geo_projection(d3_geo_azimuthalEquidistant);\n  }).raw = d3_geo_azimuthalEquidistant;\n  function d3_geo_conicConformal(φ0, φ1) {\n    var cosφ0 = Math.cos(φ0), t = function(φ) {\n      return Math.tan(π / 4 + φ / 2);\n    }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n    if (!n) return d3_geo_mercator;\n    function forward(λ, φ) {\n      if (F > 0) {\n        if (φ < -halfπ + ε) φ = -halfπ + ε;\n      } else {\n        if (φ > halfπ - ε) φ = halfπ - ε;\n      }\n      var ρ = F / Math.pow(t(φ), n);\n      return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n    }\n    forward.invert = function(x, y) {\n      var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n      return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n    };\n    return forward;\n  }\n  (d3.geo.conicConformal = function() {\n    return d3_geo_conic(d3_geo_conicConformal);\n  }).raw = d3_geo_conicConformal;\n  function d3_geo_conicEquidistant(φ0, φ1) {\n    var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n    if (abs(n) < ε) return d3_geo_equirectangular;\n    function forward(λ, φ) {\n      var ρ = G - φ;\n      return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n    }\n    forward.invert = function(x, y) {\n      var ρ0_y = G - y;\n      return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n    };\n    return forward;\n  }\n  (d3.geo.conicEquidistant = function() {\n    return d3_geo_conic(d3_geo_conicEquidistant);\n  }).raw = d3_geo_conicEquidistant;\n  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n    return 1 / cosλcosφ;\n  }, Math.atan);\n  (d3.geo.gnomonic = function() {\n    return d3_geo_projection(d3_geo_gnomonic);\n  }).raw = d3_geo_gnomonic;\n  function d3_geo_mercator(λ, φ) {\n    return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n  }\n  d3_geo_mercator.invert = function(x, y) {\n    return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n  };\n  function d3_geo_mercatorProjection(project) {\n    var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n    m.scale = function() {\n      var v = scale.apply(m, arguments);\n      return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n    };\n    m.translate = function() {\n      var v = translate.apply(m, arguments);\n      return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n    };\n    m.clipExtent = function(_) {\n      var v = clipExtent.apply(m, arguments);\n      if (v === m) {\n        if (clipAuto = _ == null) {\n          var k = π * scale(), t = translate();\n          clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n        }\n      } else if (clipAuto) {\n        v = null;\n      }\n      return v;\n    };\n    return m.clipExtent(null);\n  }\n  (d3.geo.mercator = function() {\n    return d3_geo_mercatorProjection(d3_geo_mercator);\n  }).raw = d3_geo_mercator;\n  var d3_geo_orthographic = d3_geo_azimuthal(function() {\n    return 1;\n  }, Math.asin);\n  (d3.geo.orthographic = function() {\n    return d3_geo_projection(d3_geo_orthographic);\n  }).raw = d3_geo_orthographic;\n  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n    return 1 / (1 + cosλcosφ);\n  }, function(ρ) {\n    return 2 * Math.atan(ρ);\n  });\n  (d3.geo.stereographic = function() {\n    return d3_geo_projection(d3_geo_stereographic);\n  }).raw = d3_geo_stereographic;\n  function d3_geo_transverseMercator(λ, φ) {\n    return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n  }\n  d3_geo_transverseMercator.invert = function(x, y) {\n    return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n  };\n  (d3.geo.transverseMercator = function() {\n    var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n    projection.center = function(_) {\n      return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n    };\n    projection.rotate = function(_) {\n      return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n      [ _[0], _[1], _[2] - 90 ]);\n    };\n    return rotate([ 0, 0, 90 ]);\n  }).raw = d3_geo_transverseMercator;\n  d3.geom = {};\n  function d3_geom_pointX(d) {\n    return d[0];\n  }\n  function d3_geom_pointY(d) {\n    return d[1];\n  }\n  d3.geom.hull = function(vertices) {\n    var x = d3_geom_pointX, y = d3_geom_pointY;\n    if (arguments.length) return hull(vertices);\n    function hull(data) {\n      if (data.length < 3) return [];\n      var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n      for (i = 0; i < n; i++) {\n        points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n      }\n      points.sort(d3_geom_hullOrder);\n      for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n      var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n      var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n      for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n      for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n      return polygon;\n    }\n    hull.x = function(_) {\n      return arguments.length ? (x = _, hull) : x;\n    };\n    hull.y = function(_) {\n      return arguments.length ? (y = _, hull) : y;\n    };\n    return hull;\n  };\n  function d3_geom_hullUpper(points) {\n    var n = points.length, hull = [ 0, 1 ], hs = 2;\n    for (var i = 2; i < n; i++) {\n      while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n      hull[hs++] = i;\n    }\n    return hull.slice(0, hs);\n  }\n  function d3_geom_hullOrder(a, b) {\n    return a[0] - b[0] || a[1] - b[1];\n  }\n  d3.geom.polygon = function(coordinates) {\n    d3_subclass(coordinates, d3_geom_polygonPrototype);\n    return coordinates;\n  };\n  var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n  d3_geom_polygonPrototype.area = function() {\n    var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n    while (++i < n) {\n      a = b;\n      b = this[i];\n      area += a[1] * b[0] - a[0] * b[1];\n    }\n    return area * .5;\n  };\n  d3_geom_polygonPrototype.centroid = function(k) {\n    var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n    if (!arguments.length) k = -1 / (6 * this.area());\n    while (++i < n) {\n      a = b;\n      b = this[i];\n      c = a[0] * b[1] - b[0] * a[1];\n      x += (a[0] + b[0]) * c;\n      y += (a[1] + b[1]) * c;\n    }\n    return [ x * k, y * k ];\n  };\n  d3_geom_polygonPrototype.clip = function(subject) {\n    var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n    while (++i < n) {\n      input = subject.slice();\n      subject.length = 0;\n      b = this[i];\n      c = input[(m = input.length - closed) - 1];\n      j = -1;\n      while (++j < m) {\n        d = input[j];\n        if (d3_geom_polygonInside(d, a, b)) {\n          if (!d3_geom_polygonInside(c, a, b)) {\n            subject.push(d3_geom_polygonIntersect(c, d, a, b));\n          }\n          subject.push(d);\n        } else if (d3_geom_polygonInside(c, a, b)) {\n          subject.push(d3_geom_polygonIntersect(c, d, a, b));\n        }\n        c = d;\n      }\n      if (closed) subject.push(subject[0]);\n      a = b;\n    }\n    return subject;\n  };\n  function d3_geom_polygonInside(p, a, b) {\n    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n  }\n  function d3_geom_polygonIntersect(c, d, a, b) {\n    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n    return [ x1 + ua * x21, y1 + ua * y21 ];\n  }\n  function d3_geom_polygonClosed(coordinates) {\n    var a = coordinates[0], b = coordinates[coordinates.length - 1];\n    return !(a[0] - b[0] || a[1] - b[1]);\n  }\n  var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n  function d3_geom_voronoiBeach() {\n    d3_geom_voronoiRedBlackNode(this);\n    this.edge = this.site = this.circle = null;\n  }\n  function d3_geom_voronoiCreateBeach(site) {\n    var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n    beach.site = site;\n    return beach;\n  }\n  function d3_geom_voronoiDetachBeach(beach) {\n    d3_geom_voronoiDetachCircle(beach);\n    d3_geom_voronoiBeaches.remove(beach);\n    d3_geom_voronoiBeachPool.push(beach);\n    d3_geom_voronoiRedBlackNode(beach);\n  }\n  function d3_geom_voronoiRemoveBeach(beach) {\n    var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n      x: x,\n      y: y\n    }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n    d3_geom_voronoiDetachBeach(beach);\n    var lArc = previous;\n    while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n      previous = lArc.P;\n      disappearing.unshift(lArc);\n      d3_geom_voronoiDetachBeach(lArc);\n      lArc = previous;\n    }\n    disappearing.unshift(lArc);\n    d3_geom_voronoiDetachCircle(lArc);\n    var rArc = next;\n    while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n      next = rArc.N;\n      disappearing.push(rArc);\n      d3_geom_voronoiDetachBeach(rArc);\n      rArc = next;\n    }\n    disappearing.push(rArc);\n    d3_geom_voronoiDetachCircle(rArc);\n    var nArcs = disappearing.length, iArc;\n    for (iArc = 1; iArc < nArcs; ++iArc) {\n      rArc = disappearing[iArc];\n      lArc = disappearing[iArc - 1];\n      d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n    }\n    lArc = disappearing[0];\n    rArc = disappearing[nArcs - 1];\n    rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n    d3_geom_voronoiAttachCircle(lArc);\n    d3_geom_voronoiAttachCircle(rArc);\n  }\n  function d3_geom_voronoiAddBeach(site) {\n    var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n    while (node) {\n      dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n      if (dxl > ε) node = node.L; else {\n        dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n        if (dxr > ε) {\n          if (!node.R) {\n            lArc = node;\n            break;\n          }\n          node = node.R;\n        } else {\n          if (dxl > -ε) {\n            lArc = node.P;\n            rArc = node;\n          } else if (dxr > -ε) {\n            lArc = node;\n            rArc = node.N;\n          } else {\n            lArc = rArc = node;\n          }\n          break;\n        }\n      }\n    }\n    var newArc = d3_geom_voronoiCreateBeach(site);\n    d3_geom_voronoiBeaches.insert(lArc, newArc);\n    if (!lArc && !rArc) return;\n    if (lArc === rArc) {\n      d3_geom_voronoiDetachCircle(lArc);\n      rArc = d3_geom_voronoiCreateBeach(lArc.site);\n      d3_geom_voronoiBeaches.insert(newArc, rArc);\n      newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n      d3_geom_voronoiAttachCircle(lArc);\n      d3_geom_voronoiAttachCircle(rArc);\n      return;\n    }\n    if (!rArc) {\n      newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n      return;\n    }\n    d3_geom_voronoiDetachCircle(lArc);\n    d3_geom_voronoiDetachCircle(rArc);\n    var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n      x: (cy * hb - by * hc) / d + ax,\n      y: (bx * hc - cx * hb) / d + ay\n    };\n    d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n    newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n    rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n    d3_geom_voronoiAttachCircle(lArc);\n    d3_geom_voronoiAttachCircle(rArc);\n  }\n  function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n    var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n    if (!pby2) return rfocx;\n    var lArc = arc.P;\n    if (!lArc) return -Infinity;\n    site = lArc.site;\n    var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n    if (!plby2) return lfocx;\n    var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n    if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n    return (rfocx + lfocx) / 2;\n  }\n  function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n    var rArc = arc.N;\n    if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n    var site = arc.site;\n    return site.y === directrix ? site.x : Infinity;\n  }\n  function d3_geom_voronoiCell(site) {\n    this.site = site;\n    this.edges = [];\n  }\n  d3_geom_voronoiCell.prototype.prepare = function() {\n    var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n    while (iHalfEdge--) {\n      edge = halfEdges[iHalfEdge].edge;\n      if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n    }\n    halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n    return halfEdges.length;\n  };\n  function d3_geom_voronoiCloseCells(extent) {\n    var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n    while (iCell--) {\n      cell = cells[iCell];\n      if (!cell || !cell.prepare()) continue;\n      halfEdges = cell.edges;\n      nHalfEdges = halfEdges.length;\n      iHalfEdge = 0;\n      while (iHalfEdge < nHalfEdges) {\n        end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n        start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n        if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n          halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n            x: x0,\n            y: abs(x2 - x0) < ε ? y2 : y1\n          } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n            x: abs(y2 - y1) < ε ? x2 : x1,\n            y: y1\n          } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n            x: x1,\n            y: abs(x2 - x1) < ε ? y2 : y0\n          } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n            x: abs(y2 - y0) < ε ? x2 : x0,\n            y: y0\n          } : null), cell.site, null));\n          ++nHalfEdges;\n        }\n      }\n    }\n  }\n  function d3_geom_voronoiHalfEdgeOrder(a, b) {\n    return b.angle - a.angle;\n  }\n  function d3_geom_voronoiCircle() {\n    d3_geom_voronoiRedBlackNode(this);\n    this.x = this.y = this.arc = this.site = this.cy = null;\n  }\n  function d3_geom_voronoiAttachCircle(arc) {\n    var lArc = arc.P, rArc = arc.N;\n    if (!lArc || !rArc) return;\n    var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n    if (lSite === rSite) return;\n    var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n    var d = 2 * (ax * cy - ay * cx);\n    if (d >= -ε2) return;\n    var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n    var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n    circle.arc = arc;\n    circle.site = cSite;\n    circle.x = x + bx;\n    circle.y = cy + Math.sqrt(x * x + y * y);\n    circle.cy = cy;\n    arc.circle = circle;\n    var before = null, node = d3_geom_voronoiCircles._;\n    while (node) {\n      if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n        if (node.L) node = node.L; else {\n          before = node.P;\n          break;\n        }\n      } else {\n        if (node.R) node = node.R; else {\n          before = node;\n          break;\n        }\n      }\n    }\n    d3_geom_voronoiCircles.insert(before, circle);\n    if (!before) d3_geom_voronoiFirstCircle = circle;\n  }\n  function d3_geom_voronoiDetachCircle(arc) {\n    var circle = arc.circle;\n    if (circle) {\n      if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n      d3_geom_voronoiCircles.remove(circle);\n      d3_geom_voronoiCirclePool.push(circle);\n      d3_geom_voronoiRedBlackNode(circle);\n      arc.circle = null;\n    }\n  }\n  function d3_geom_voronoiClipEdges(extent) {\n    var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n    while (i--) {\n      e = edges[i];\n      if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n        e.a = e.b = null;\n        edges.splice(i, 1);\n      }\n    }\n  }\n  function d3_geom_voronoiConnectEdge(edge, extent) {\n    var vb = edge.b;\n    if (vb) return true;\n    var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n    if (ry === ly) {\n      if (fx < x0 || fx >= x1) return;\n      if (lx > rx) {\n        if (!va) va = {\n          x: fx,\n          y: y0\n        }; else if (va.y >= y1) return;\n        vb = {\n          x: fx,\n          y: y1\n        };\n      } else {\n        if (!va) va = {\n          x: fx,\n          y: y1\n        }; else if (va.y < y0) return;\n        vb = {\n          x: fx,\n          y: y0\n        };\n      }\n    } else {\n      fm = (lx - rx) / (ry - ly);\n      fb = fy - fm * fx;\n      if (fm < -1 || fm > 1) {\n        if (lx > rx) {\n          if (!va) va = {\n            x: (y0 - fb) / fm,\n            y: y0\n          }; else if (va.y >= y1) return;\n          vb = {\n            x: (y1 - fb) / fm,\n            y: y1\n          };\n        } else {\n          if (!va) va = {\n            x: (y1 - fb) / fm,\n            y: y1\n          }; else if (va.y < y0) return;\n          vb = {\n            x: (y0 - fb) / fm,\n            y: y0\n          };\n        }\n      } else {\n        if (ly < ry) {\n          if (!va) va = {\n            x: x0,\n            y: fm * x0 + fb\n          }; else if (va.x >= x1) return;\n          vb = {\n            x: x1,\n            y: fm * x1 + fb\n          };\n        } else {\n          if (!va) va = {\n            x: x1,\n            y: fm * x1 + fb\n          }; else if (va.x < x0) return;\n          vb = {\n            x: x0,\n            y: fm * x0 + fb\n          };\n        }\n      }\n    }\n    edge.a = va;\n    edge.b = vb;\n    return true;\n  }\n  function d3_geom_voronoiEdge(lSite, rSite) {\n    this.l = lSite;\n    this.r = rSite;\n    this.a = this.b = null;\n  }\n  function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n    var edge = new d3_geom_voronoiEdge(lSite, rSite);\n    d3_geom_voronoiEdges.push(edge);\n    if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n    if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n    d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n    d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n    return edge;\n  }\n  function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n    var edge = new d3_geom_voronoiEdge(lSite, null);\n    edge.a = va;\n    edge.b = vb;\n    d3_geom_voronoiEdges.push(edge);\n    return edge;\n  }\n  function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n    if (!edge.a && !edge.b) {\n      edge.a = vertex;\n      edge.l = lSite;\n      edge.r = rSite;\n    } else if (edge.l === rSite) {\n      edge.b = vertex;\n    } else {\n      edge.a = vertex;\n    }\n  }\n  function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n    var va = edge.a, vb = edge.b;\n    this.edge = edge;\n    this.site = lSite;\n    this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n  }\n  d3_geom_voronoiHalfEdge.prototype = {\n    start: function() {\n      return this.edge.l === this.site ? this.edge.a : this.edge.b;\n    },\n    end: function() {\n      return this.edge.l === this.site ? this.edge.b : this.edge.a;\n    }\n  };\n  function d3_geom_voronoiRedBlackTree() {\n    this._ = null;\n  }\n  function d3_geom_voronoiRedBlackNode(node) {\n    node.U = node.C = node.L = node.R = node.P = node.N = null;\n  }\n  d3_geom_voronoiRedBlackTree.prototype = {\n    insert: function(after, node) {\n      var parent, grandpa, uncle;\n      if (after) {\n        node.P = after;\n        node.N = after.N;\n        if (after.N) after.N.P = node;\n        after.N = node;\n        if (after.R) {\n          after = after.R;\n          while (after.L) after = after.L;\n          after.L = node;\n        } else {\n          after.R = node;\n        }\n        parent = after;\n      } else if (this._) {\n        after = d3_geom_voronoiRedBlackFirst(this._);\n        node.P = null;\n        node.N = after;\n        after.P = after.L = node;\n        parent = after;\n      } else {\n        node.P = node.N = null;\n        this._ = node;\n        parent = null;\n      }\n      node.L = node.R = null;\n      node.U = parent;\n      node.C = true;\n      after = node;\n      while (parent && parent.C) {\n        grandpa = parent.U;\n        if (parent === grandpa.L) {\n          uncle = grandpa.R;\n          if (uncle && uncle.C) {\n            parent.C = uncle.C = false;\n            grandpa.C = true;\n            after = grandpa;\n          } else {\n            if (after === parent.R) {\n              d3_geom_voronoiRedBlackRotateLeft(this, parent);\n              after = parent;\n              parent = after.U;\n            }\n            parent.C = false;\n            grandpa.C = true;\n            d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n          }\n        } else {\n          uncle = grandpa.L;\n          if (uncle && uncle.C) {\n            parent.C = uncle.C = false;\n            grandpa.C = true;\n            after = grandpa;\n          } else {\n            if (after === parent.L) {\n              d3_geom_voronoiRedBlackRotateRight(this, parent);\n              after = parent;\n              parent = after.U;\n            }\n            parent.C = false;\n            grandpa.C = true;\n            d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n          }\n        }\n        parent = after.U;\n      }\n      this._.C = false;\n    },\n    remove: function(node) {\n      if (node.N) node.N.P = node.P;\n      if (node.P) node.P.N = node.N;\n      node.N = node.P = null;\n      var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n      if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n      if (parent) {\n        if (parent.L === node) parent.L = next; else parent.R = next;\n      } else {\n        this._ = next;\n      }\n      if (left && right) {\n        red = next.C;\n        next.C = node.C;\n        next.L = left;\n        left.U = next;\n        if (next !== right) {\n          parent = next.U;\n          next.U = node.U;\n          node = next.R;\n          parent.L = node;\n          next.R = right;\n          right.U = next;\n        } else {\n          next.U = parent;\n          parent = next;\n          node = next.R;\n        }\n      } else {\n        red = node.C;\n        node = next;\n      }\n      if (node) node.U = parent;\n      if (red) return;\n      if (node && node.C) {\n        node.C = false;\n        return;\n      }\n      do {\n        if (node === this._) break;\n        if (node === parent.L) {\n          sibling = parent.R;\n          if (sibling.C) {\n            sibling.C = false;\n            parent.C = true;\n            d3_geom_voronoiRedBlackRotateLeft(this, parent);\n            sibling = parent.R;\n          }\n          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n            if (!sibling.R || !sibling.R.C) {\n              sibling.L.C = false;\n              sibling.C = true;\n              d3_geom_voronoiRedBlackRotateRight(this, sibling);\n              sibling = parent.R;\n            }\n            sibling.C = parent.C;\n            parent.C = sibling.R.C = false;\n            d3_geom_voronoiRedBlackRotateLeft(this, parent);\n            node = this._;\n            break;\n          }\n        } else {\n          sibling = parent.L;\n          if (sibling.C) {\n            sibling.C = false;\n            parent.C = true;\n            d3_geom_voronoiRedBlackRotateRight(this, parent);\n            sibling = parent.L;\n          }\n          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n            if (!sibling.L || !sibling.L.C) {\n              sibling.R.C = false;\n              sibling.C = true;\n              d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n              sibling = parent.L;\n            }\n            sibling.C = parent.C;\n            parent.C = sibling.L.C = false;\n            d3_geom_voronoiRedBlackRotateRight(this, parent);\n            node = this._;\n            break;\n          }\n        }\n        sibling.C = true;\n        node = parent;\n        parent = parent.U;\n      } while (!node.C);\n      if (node) node.C = false;\n    }\n  };\n  function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n    var p = node, q = node.R, parent = p.U;\n    if (parent) {\n      if (parent.L === p) parent.L = q; else parent.R = q;\n    } else {\n      tree._ = q;\n    }\n    q.U = parent;\n    p.U = q;\n    p.R = q.L;\n    if (p.R) p.R.U = p;\n    q.L = p;\n  }\n  function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n    var p = node, q = node.L, parent = p.U;\n    if (parent) {\n      if (parent.L === p) parent.L = q; else parent.R = q;\n    } else {\n      tree._ = q;\n    }\n    q.U = parent;\n    p.U = q;\n    p.L = q.R;\n    if (p.L) p.L.U = p;\n    q.R = p;\n  }\n  function d3_geom_voronoiRedBlackFirst(node) {\n    while (node.L) node = node.L;\n    return node;\n  }\n  function d3_geom_voronoi(sites, bbox) {\n    var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n    d3_geom_voronoiEdges = [];\n    d3_geom_voronoiCells = new Array(sites.length);\n    d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n    d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n    while (true) {\n      circle = d3_geom_voronoiFirstCircle;\n      if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n        if (site.x !== x0 || site.y !== y0) {\n          d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n          d3_geom_voronoiAddBeach(site);\n          x0 = site.x, y0 = site.y;\n        }\n        site = sites.pop();\n      } else if (circle) {\n        d3_geom_voronoiRemoveBeach(circle.arc);\n      } else {\n        break;\n      }\n    }\n    if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n    var diagram = {\n      cells: d3_geom_voronoiCells,\n      edges: d3_geom_voronoiEdges\n    };\n    d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n    return diagram;\n  }\n  function d3_geom_voronoiVertexOrder(a, b) {\n    return b.y - a.y || b.x - a.x;\n  }\n  d3.geom.voronoi = function(points) {\n    var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n    if (points) return voronoi(points);\n    function voronoi(data) {\n      var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n      d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n        var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n          var s = e.start();\n          return [ s.x, s.y ];\n        }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n        polygon.point = data[i];\n      });\n      return polygons;\n    }\n    function sites(data) {\n      return data.map(function(d, i) {\n        return {\n          x: Math.round(fx(d, i) / ε) * ε,\n          y: Math.round(fy(d, i) / ε) * ε,\n          i: i\n        };\n      });\n    }\n    voronoi.links = function(data) {\n      return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n        return edge.l && edge.r;\n      }).map(function(edge) {\n        return {\n          source: data[edge.l.i],\n          target: data[edge.r.i]\n        };\n      });\n    };\n    voronoi.triangles = function(data) {\n      var triangles = [];\n      d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n        var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n        while (++j < m) {\n          e0 = e1;\n          s0 = s1;\n          e1 = edges[j].edge;\n          s1 = e1.l === site ? e1.r : e1.l;\n          if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n            triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n          }\n        }\n      });\n      return triangles;\n    };\n    voronoi.x = function(_) {\n      return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n    };\n    voronoi.y = function(_) {\n      return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n    };\n    voronoi.clipExtent = function(_) {\n      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n      clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n      return voronoi;\n    };\n    voronoi.size = function(_) {\n      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n      return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n    };\n    return voronoi;\n  };\n  var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n  function d3_geom_voronoiTriangleArea(a, b, c) {\n    return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n  }\n  d3.geom.delaunay = function(vertices) {\n    return d3.geom.voronoi().triangles(vertices);\n  };\n  d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n    var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n    if (compat = arguments.length) {\n      x = d3_geom_quadtreeCompatX;\n      y = d3_geom_quadtreeCompatY;\n      if (compat === 3) {\n        y2 = y1;\n        x2 = x1;\n        y1 = x1 = 0;\n      }\n      return quadtree(points);\n    }\n    function quadtree(data) {\n      var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n      if (x1 != null) {\n        x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n      } else {\n        x2_ = y2_ = -(x1_ = y1_ = Infinity);\n        xs = [], ys = [];\n        n = data.length;\n        if (compat) for (i = 0; i < n; ++i) {\n          d = data[i];\n          if (d.x < x1_) x1_ = d.x;\n          if (d.y < y1_) y1_ = d.y;\n          if (d.x > x2_) x2_ = d.x;\n          if (d.y > y2_) y2_ = d.y;\n          xs.push(d.x);\n          ys.push(d.y);\n        } else for (i = 0; i < n; ++i) {\n          var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n          if (x_ < x1_) x1_ = x_;\n          if (y_ < y1_) y1_ = y_;\n          if (x_ > x2_) x2_ = x_;\n          if (y_ > y2_) y2_ = y_;\n          xs.push(x_);\n          ys.push(y_);\n        }\n      }\n      var dx = x2_ - x1_, dy = y2_ - y1_;\n      if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n      function insert(n, d, x, y, x1, y1, x2, y2) {\n        if (isNaN(x) || isNaN(y)) return;\n        if (n.leaf) {\n          var nx = n.x, ny = n.y;\n          if (nx != null) {\n            if (abs(nx - x) + abs(ny - y) < .01) {\n              insertChild(n, d, x, y, x1, y1, x2, y2);\n            } else {\n              var nPoint = n.point;\n              n.x = n.y = n.point = null;\n              insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n              insertChild(n, d, x, y, x1, y1, x2, y2);\n            }\n          } else {\n            n.x = x, n.y = y, n.point = d;\n          }\n        } else {\n          insertChild(n, d, x, y, x1, y1, x2, y2);\n        }\n      }\n      function insertChild(n, d, x, y, x1, y1, x2, y2) {\n        var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;\n        n.leaf = false;\n        n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n        if (right) x1 = xm; else x2 = xm;\n        if (below) y1 = ym; else y2 = ym;\n        insert(n, d, x, y, x1, y1, x2, y2);\n      }\n      var root = d3_geom_quadtreeNode();\n      root.add = function(d) {\n        insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n      };\n      root.visit = function(f) {\n        d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n      };\n      root.find = function(point) {\n        return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n      };\n      i = -1;\n      if (x1 == null) {\n        while (++i < n) {\n          insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n        }\n        --i;\n      } else data.forEach(root.add);\n      xs = ys = data = d = null;\n      return root;\n    }\n    quadtree.x = function(_) {\n      return arguments.length ? (x = _, quadtree) : x;\n    };\n    quadtree.y = function(_) {\n      return arguments.length ? (y = _, quadtree) : y;\n    };\n    quadtree.extent = function(_) {\n      if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n      y2 = +_[1][1];\n      return quadtree;\n    };\n    quadtree.size = function(_) {\n      if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n      return quadtree;\n    };\n    return quadtree;\n  };\n  function d3_geom_quadtreeCompatX(d) {\n    return d.x;\n  }\n  function d3_geom_quadtreeCompatY(d) {\n    return d.y;\n  }\n  function d3_geom_quadtreeNode() {\n    return {\n      leaf: true,\n      nodes: [],\n      point: null,\n      x: null,\n      y: null\n    };\n  }\n  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n    if (!f(node, x1, y1, x2, y2)) {\n      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n    }\n  }\n  function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n    var minDistance2 = Infinity, closestPoint;\n    (function find(node, x1, y1, x2, y2) {\n      if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n      if (point = node.point) {\n        var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n        if (distance2 < minDistance2) {\n          var distance = Math.sqrt(minDistance2 = distance2);\n          x0 = x - distance, y0 = y - distance;\n          x3 = x + distance, y3 = y + distance;\n          closestPoint = point;\n        }\n      }\n      var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;\n      for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n        if (node = children[i & 3]) switch (i & 3) {\n         case 0:\n          find(node, x1, y1, xm, ym);\n          break;\n\n         case 1:\n          find(node, xm, y1, x2, ym);\n          break;\n\n         case 2:\n          find(node, x1, ym, xm, y2);\n          break;\n\n         case 3:\n          find(node, xm, ym, x2, y2);\n          break;\n        }\n      }\n    })(root, x0, y0, x3, y3);\n    return closestPoint;\n  }\n  d3.interpolateRgb = d3_interpolateRgb;\n  function d3_interpolateRgb(a, b) {\n    a = d3.rgb(a);\n    b = d3.rgb(b);\n    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n    return function(t) {\n      return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n    };\n  }\n  d3.interpolateObject = d3_interpolateObject;\n  function d3_interpolateObject(a, b) {\n    var i = {}, c = {}, k;\n    for (k in a) {\n      if (k in b) {\n        i[k] = d3_interpolate(a[k], b[k]);\n      } else {\n        c[k] = a[k];\n      }\n    }\n    for (k in b) {\n      if (!(k in a)) {\n        c[k] = b[k];\n      }\n    }\n    return function(t) {\n      for (k in i) c[k] = i[k](t);\n      return c;\n    };\n  }\n  d3.interpolateNumber = d3_interpolateNumber;\n  function d3_interpolateNumber(a, b) {\n    a = +a, b = +b;\n    return function(t) {\n      return a * (1 - t) + b * t;\n    };\n  }\n  d3.interpolateString = d3_interpolateString;\n  function d3_interpolateString(a, b) {\n    var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n    a = a + \"\", b = b + \"\";\n    while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n      if ((bs = bm.index) > bi) {\n        bs = b.slice(bi, bs);\n        if (s[i]) s[i] += bs; else s[++i] = bs;\n      }\n      if ((am = am[0]) === (bm = bm[0])) {\n        if (s[i]) s[i] += bm; else s[++i] = bm;\n      } else {\n        s[++i] = null;\n        q.push({\n          i: i,\n          x: d3_interpolateNumber(am, bm)\n        });\n      }\n      bi = d3_interpolate_numberB.lastIndex;\n    }\n    if (bi < b.length) {\n      bs = b.slice(bi);\n      if (s[i]) s[i] += bs; else s[++i] = bs;\n    }\n    return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n      return b(t) + \"\";\n    }) : function() {\n      return b;\n    } : (b = q.length, function(t) {\n      for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    });\n  }\n  var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n  d3.interpolate = d3_interpolate;\n  function d3_interpolate(a, b) {\n    var i = d3.interpolators.length, f;\n    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n    return f;\n  }\n  d3.interpolators = [ function(a, b) {\n    var t = typeof b;\n    return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n  } ];\n  d3.interpolateArray = d3_interpolateArray;\n  function d3_interpolateArray(a, b) {\n    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n    for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n    for (;i < na; ++i) c[i] = a[i];\n    for (;i < nb; ++i) c[i] = b[i];\n    return function(t) {\n      for (i = 0; i < n0; ++i) c[i] = x[i](t);\n      return c;\n    };\n  }\n  var d3_ease_default = function() {\n    return d3_identity;\n  };\n  var d3_ease = d3.map({\n    linear: d3_ease_default,\n    poly: d3_ease_poly,\n    quad: function() {\n      return d3_ease_quad;\n    },\n    cubic: function() {\n      return d3_ease_cubic;\n    },\n    sin: function() {\n      return d3_ease_sin;\n    },\n    exp: function() {\n      return d3_ease_exp;\n    },\n    circle: function() {\n      return d3_ease_circle;\n    },\n    elastic: d3_ease_elastic,\n    back: d3_ease_back,\n    bounce: function() {\n      return d3_ease_bounce;\n    }\n  });\n  var d3_ease_mode = d3.map({\n    \"in\": d3_identity,\n    out: d3_ease_reverse,\n    \"in-out\": d3_ease_reflect,\n    \"out-in\": function(f) {\n      return d3_ease_reflect(d3_ease_reverse(f));\n    }\n  });\n  d3.ease = function(name) {\n    var i = name.indexOf(\"-\"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : \"in\";\n    t = d3_ease.get(t) || d3_ease_default;\n    m = d3_ease_mode.get(m) || d3_identity;\n    return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n  };\n  function d3_ease_clamp(f) {\n    return function(t) {\n      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n    };\n  }\n  function d3_ease_reverse(f) {\n    return function(t) {\n      return 1 - f(1 - t);\n    };\n  }\n  function d3_ease_reflect(f) {\n    return function(t) {\n      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n    };\n  }\n  function d3_ease_quad(t) {\n    return t * t;\n  }\n  function d3_ease_cubic(t) {\n    return t * t * t;\n  }\n  function d3_ease_cubicInOut(t) {\n    if (t <= 0) return 0;\n    if (t >= 1) return 1;\n    var t2 = t * t, t3 = t2 * t;\n    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n  }\n  function d3_ease_poly(e) {\n    return function(t) {\n      return Math.pow(t, e);\n    };\n  }\n  function d3_ease_sin(t) {\n    return 1 - Math.cos(t * halfπ);\n  }\n  function d3_ease_exp(t) {\n    return Math.pow(2, 10 * (t - 1));\n  }\n  function d3_ease_circle(t) {\n    return 1 - Math.sqrt(1 - t * t);\n  }\n  function d3_ease_elastic(a, p) {\n    var s;\n    if (arguments.length < 2) p = .45;\n    if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n    return function(t) {\n      return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n    };\n  }\n  function d3_ease_back(s) {\n    if (!s) s = 1.70158;\n    return function(t) {\n      return t * t * ((s + 1) * t - s);\n    };\n  }\n  function d3_ease_bounce(t) {\n    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n  }\n  d3.interpolateHcl = d3_interpolateHcl;\n  function d3_interpolateHcl(a, b) {\n    a = d3.hcl(a);\n    b = d3.hcl(b);\n    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n    if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n    return function(t) {\n      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n    };\n  }\n  d3.interpolateHsl = d3_interpolateHsl;\n  function d3_interpolateHsl(a, b) {\n    a = d3.hsl(a);\n    b = d3.hsl(b);\n    var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n    if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n    return function(t) {\n      return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n    };\n  }\n  d3.interpolateLab = d3_interpolateLab;\n  function d3_interpolateLab(a, b) {\n    a = d3.lab(a);\n    b = d3.lab(b);\n    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n    return function(t) {\n      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n    };\n  }\n  d3.interpolateRound = d3_interpolateRound;\n  function d3_interpolateRound(a, b) {\n    b -= a;\n    return function(t) {\n      return Math.round(a + b * t);\n    };\n  }\n  d3.transform = function(string) {\n    var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n    return (d3.transform = function(string) {\n      if (string != null) {\n        g.setAttribute(\"transform\", string);\n        var t = g.transform.baseVal.consolidate();\n      }\n      return new d3_transform(t ? t.matrix : d3_transformIdentity);\n    })(string);\n  };\n  function d3_transform(m) {\n    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n    if (r0[0] * r1[1] < r1[0] * r0[1]) {\n      r0[0] *= -1;\n      r0[1] *= -1;\n      kx *= -1;\n      kz *= -1;\n    }\n    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n    this.translate = [ m.e, m.f ];\n    this.scale = [ kx, ky ];\n    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n  }\n  d3_transform.prototype.toString = function() {\n    return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n  };\n  function d3_transformDot(a, b) {\n    return a[0] * b[0] + a[1] * b[1];\n  }\n  function d3_transformNormalize(a) {\n    var k = Math.sqrt(d3_transformDot(a, a));\n    if (k) {\n      a[0] /= k;\n      a[1] /= k;\n    }\n    return k;\n  }\n  function d3_transformCombine(a, b, k) {\n    a[0] += k * b[0];\n    a[1] += k * b[1];\n    return a;\n  }\n  var d3_transformIdentity = {\n    a: 1,\n    b: 0,\n    c: 0,\n    d: 1,\n    e: 0,\n    f: 0\n  };\n  d3.interpolateTransform = d3_interpolateTransform;\n  function d3_interpolateTransformPop(s) {\n    return s.length ? s.pop() + \",\" : \"\";\n  }\n  function d3_interpolateTranslate(ta, tb, s, q) {\n    if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n      var i = s.push(\"translate(\", null, \",\", null, \")\");\n      q.push({\n        i: i - 4,\n        x: d3_interpolateNumber(ta[0], tb[0])\n      }, {\n        i: i - 2,\n        x: d3_interpolateNumber(ta[1], tb[1])\n      });\n    } else if (tb[0] || tb[1]) {\n      s.push(\"translate(\" + tb + \")\");\n    }\n  }\n  function d3_interpolateRotate(ra, rb, s, q) {\n    if (ra !== rb) {\n      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n      q.push({\n        i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n        x: d3_interpolateNumber(ra, rb)\n      });\n    } else if (rb) {\n      s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n    }\n  }\n  function d3_interpolateSkew(wa, wb, s, q) {\n    if (wa !== wb) {\n      q.push({\n        i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n        x: d3_interpolateNumber(wa, wb)\n      });\n    } else if (wb) {\n      s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n    }\n  }\n  function d3_interpolateScale(ka, kb, s, q) {\n    if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n      var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({\n        i: i - 4,\n        x: d3_interpolateNumber(ka[0], kb[0])\n      }, {\n        i: i - 2,\n        x: d3_interpolateNumber(ka[1], kb[1])\n      });\n    } else if (kb[0] !== 1 || kb[1] !== 1) {\n      s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n    }\n  }\n  function d3_interpolateTransform(a, b) {\n    var s = [], q = [];\n    a = d3.transform(a), b = d3.transform(b);\n    d3_interpolateTranslate(a.translate, b.translate, s, q);\n    d3_interpolateRotate(a.rotate, b.rotate, s, q);\n    d3_interpolateSkew(a.skew, b.skew, s, q);\n    d3_interpolateScale(a.scale, b.scale, s, q);\n    a = b = null;\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  }\n  function d3_uninterpolateNumber(a, b) {\n    b = (b -= a = +a) || 1 / b;\n    return function(x) {\n      return (x - a) / b;\n    };\n  }\n  function d3_uninterpolateClamp(a, b) {\n    b = (b -= a = +a) || 1 / b;\n    return function(x) {\n      return Math.max(0, Math.min(1, (x - a) / b));\n    };\n  }\n  d3.layout = {};\n  d3.layout.bundle = function() {\n    return function(links) {\n      var paths = [], i = -1, n = links.length;\n      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n      return paths;\n    };\n  };\n  function d3_layout_bundlePath(link) {\n    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n    while (start !== lca) {\n      start = start.parent;\n      points.push(start);\n    }\n    var k = points.length;\n    while (end !== lca) {\n      points.splice(k, 0, end);\n      end = end.parent;\n    }\n    return points;\n  }\n  function d3_layout_bundleAncestors(node) {\n    var ancestors = [], parent = node.parent;\n    while (parent != null) {\n      ancestors.push(node);\n      node = parent;\n      parent = parent.parent;\n    }\n    ancestors.push(node);\n    return ancestors;\n  }\n  function d3_layout_bundleLeastCommonAncestor(a, b) {\n    if (a === b) return a;\n    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n    while (aNode === bNode) {\n      sharedNode = aNode;\n      aNode = aNodes.pop();\n      bNode = bNodes.pop();\n    }\n    return sharedNode;\n  }\n  d3.layout.chord = function() {\n    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n    function relayout() {\n      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n      chords = [];\n      groups = [];\n      k = 0, i = -1;\n      while (++i < n) {\n        x = 0, j = -1;\n        while (++j < n) {\n          x += matrix[i][j];\n        }\n        groupSums.push(x);\n        subgroupIndex.push(d3.range(n));\n        k += x;\n      }\n      if (sortGroups) {\n        groupIndex.sort(function(a, b) {\n          return sortGroups(groupSums[a], groupSums[b]);\n        });\n      }\n      if (sortSubgroups) {\n        subgroupIndex.forEach(function(d, i) {\n          d.sort(function(a, b) {\n            return sortSubgroups(matrix[i][a], matrix[i][b]);\n          });\n        });\n      }\n      k = (τ - padding * n) / k;\n      x = 0, i = -1;\n      while (++i < n) {\n        x0 = x, j = -1;\n        while (++j < n) {\n          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n          subgroups[di + \"-\" + dj] = {\n            index: di,\n            subindex: dj,\n            startAngle: a0,\n            endAngle: a1,\n            value: v\n          };\n        }\n        groups[di] = {\n          index: di,\n          startAngle: x0,\n          endAngle: x,\n          value: groupSums[di]\n        };\n        x += padding;\n      }\n      i = -1;\n      while (++i < n) {\n        j = i - 1;\n        while (++j < n) {\n          var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n          if (source.value || target.value) {\n            chords.push(source.value < target.value ? {\n              source: target,\n              target: source\n            } : {\n              source: source,\n              target: target\n            });\n          }\n        }\n      }\n      if (sortChords) resort();\n    }\n    function resort() {\n      chords.sort(function(a, b) {\n        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n      });\n    }\n    chord.matrix = function(x) {\n      if (!arguments.length) return matrix;\n      n = (matrix = x) && matrix.length;\n      chords = groups = null;\n      return chord;\n    };\n    chord.padding = function(x) {\n      if (!arguments.length) return padding;\n      padding = x;\n      chords = groups = null;\n      return chord;\n    };\n    chord.sortGroups = function(x) {\n      if (!arguments.length) return sortGroups;\n      sortGroups = x;\n      chords = groups = null;\n      return chord;\n    };\n    chord.sortSubgroups = function(x) {\n      if (!arguments.length) return sortSubgroups;\n      sortSubgroups = x;\n      chords = null;\n      return chord;\n    };\n    chord.sortChords = function(x) {\n      if (!arguments.length) return sortChords;\n      sortChords = x;\n      if (chords) resort();\n      return chord;\n    };\n    chord.chords = function() {\n      if (!chords) relayout();\n      return chords;\n    };\n    chord.groups = function() {\n      if (!groups) relayout();\n      return groups;\n    };\n    return chord;\n  };\n  d3.layout.force = function() {\n    var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n    function repulse(node) {\n      return function(quad, x1, _, x2) {\n        if (quad.point !== node) {\n          var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n          if (dw * dw / theta2 < dn) {\n            if (dn < chargeDistance2) {\n              var k = quad.charge / dn;\n              node.px -= dx * k;\n              node.py -= dy * k;\n            }\n            return true;\n          }\n          if (quad.point && dn && dn < chargeDistance2) {\n            var k = quad.pointCharge / dn;\n            node.px -= dx * k;\n            node.py -= dy * k;\n          }\n        }\n        return !quad.charge;\n      };\n    }\n    force.tick = function() {\n      if ((alpha *= .99) < .005) {\n        timer = null;\n        event.end({\n          type: \"end\",\n          alpha: alpha = 0\n        });\n        return true;\n      }\n      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n      for (i = 0; i < m; ++i) {\n        o = links[i];\n        s = o.source;\n        t = o.target;\n        x = t.x - s.x;\n        y = t.y - s.y;\n        if (l = x * x + y * y) {\n          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n          x *= l;\n          y *= l;\n          t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);\n          t.y -= y * k;\n          s.x += x * (k = 1 - k);\n          s.y += y * k;\n        }\n      }\n      if (k = alpha * gravity) {\n        x = size[0] / 2;\n        y = size[1] / 2;\n        i = -1;\n        if (k) while (++i < n) {\n          o = nodes[i];\n          o.x += (x - o.x) * k;\n          o.y += (y - o.y) * k;\n        }\n      }\n      if (charge) {\n        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n        i = -1;\n        while (++i < n) {\n          if (!(o = nodes[i]).fixed) {\n            q.visit(repulse(o));\n          }\n        }\n      }\n      i = -1;\n      while (++i < n) {\n        o = nodes[i];\n        if (o.fixed) {\n          o.x = o.px;\n          o.y = o.py;\n        } else {\n          o.x -= (o.px - (o.px = o.x)) * friction;\n          o.y -= (o.py - (o.py = o.y)) * friction;\n        }\n      }\n      event.tick({\n        type: \"tick\",\n        alpha: alpha\n      });\n    };\n    force.nodes = function(x) {\n      if (!arguments.length) return nodes;\n      nodes = x;\n      return force;\n    };\n    force.links = function(x) {\n      if (!arguments.length) return links;\n      links = x;\n      return force;\n    };\n    force.size = function(x) {\n      if (!arguments.length) return size;\n      size = x;\n      return force;\n    };\n    force.linkDistance = function(x) {\n      if (!arguments.length) return linkDistance;\n      linkDistance = typeof x === \"function\" ? x : +x;\n      return force;\n    };\n    force.distance = force.linkDistance;\n    force.linkStrength = function(x) {\n      if (!arguments.length) return linkStrength;\n      linkStrength = typeof x === \"function\" ? x : +x;\n      return force;\n    };\n    force.friction = function(x) {\n      if (!arguments.length) return friction;\n      friction = +x;\n      return force;\n    };\n    force.charge = function(x) {\n      if (!arguments.length) return charge;\n      charge = typeof x === \"function\" ? x : +x;\n      return force;\n    };\n    force.chargeDistance = function(x) {\n      if (!arguments.length) return Math.sqrt(chargeDistance2);\n      chargeDistance2 = x * x;\n      return force;\n    };\n    force.gravity = function(x) {\n      if (!arguments.length) return gravity;\n      gravity = +x;\n      return force;\n    };\n    force.theta = function(x) {\n      if (!arguments.length) return Math.sqrt(theta2);\n      theta2 = x * x;\n      return force;\n    };\n    force.alpha = function(x) {\n      if (!arguments.length) return alpha;\n      x = +x;\n      if (alpha) {\n        if (x > 0) {\n          alpha = x;\n        } else {\n          timer.c = null, timer.t = NaN, timer = null;\n          event.end({\n            type: \"end\",\n            alpha: alpha = 0\n          });\n        }\n      } else if (x > 0) {\n        event.start({\n          type: \"start\",\n          alpha: alpha = x\n        });\n        timer = d3_timer(force.tick);\n      }\n      return force;\n    };\n    force.start = function() {\n      var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n      for (i = 0; i < n; ++i) {\n        (o = nodes[i]).index = i;\n        o.weight = 0;\n      }\n      for (i = 0; i < m; ++i) {\n        o = links[i];\n        if (typeof o.source == \"number\") o.source = nodes[o.source];\n        if (typeof o.target == \"number\") o.target = nodes[o.target];\n        ++o.source.weight;\n        ++o.target.weight;\n      }\n      for (i = 0; i < n; ++i) {\n        o = nodes[i];\n        if (isNaN(o.x)) o.x = position(\"x\", w);\n        if (isNaN(o.y)) o.y = position(\"y\", h);\n        if (isNaN(o.px)) o.px = o.x;\n        if (isNaN(o.py)) o.py = o.y;\n      }\n      distances = [];\n      if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n      strengths = [];\n      if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n      charges = [];\n      if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n      function position(dimension, size) {\n        if (!neighbors) {\n          neighbors = new Array(n);\n          for (j = 0; j < n; ++j) {\n            neighbors[j] = [];\n          }\n          for (j = 0; j < m; ++j) {\n            var o = links[j];\n            neighbors[o.source.index].push(o.target);\n            neighbors[o.target.index].push(o.source);\n          }\n        }\n        var candidates = neighbors[i], j = -1, l = candidates.length, x;\n        while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n        return Math.random() * size;\n      }\n      return force.resume();\n    };\n    force.resume = function() {\n      return force.alpha(.1);\n    };\n    force.stop = function() {\n      return force.alpha(0);\n    };\n    force.drag = function() {\n      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n      if (!arguments.length) return drag;\n      this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n    };\n    function dragmove(d) {\n      d.px = d3.event.x, d.py = d3.event.y;\n      force.resume();\n    }\n    return d3.rebind(force, event, \"on\");\n  };\n  function d3_layout_forceDragstart(d) {\n    d.fixed |= 2;\n  }\n  function d3_layout_forceDragend(d) {\n    d.fixed &= ~6;\n  }\n  function d3_layout_forceMouseover(d) {\n    d.fixed |= 4;\n    d.px = d.x, d.py = d.y;\n  }\n  function d3_layout_forceMouseout(d) {\n    d.fixed &= ~4;\n  }\n  function d3_layout_forceAccumulate(quad, alpha, charges) {\n    var cx = 0, cy = 0;\n    quad.charge = 0;\n    if (!quad.leaf) {\n      var nodes = quad.nodes, n = nodes.length, i = -1, c;\n      while (++i < n) {\n        c = nodes[i];\n        if (c == null) continue;\n        d3_layout_forceAccumulate(c, alpha, charges);\n        quad.charge += c.charge;\n        cx += c.charge * c.cx;\n        cy += c.charge * c.cy;\n      }\n    }\n    if (quad.point) {\n      if (!quad.leaf) {\n        quad.point.x += Math.random() - .5;\n        quad.point.y += Math.random() - .5;\n      }\n      var k = alpha * charges[quad.point.index];\n      quad.charge += quad.pointCharge = k;\n      cx += k * quad.point.x;\n      cy += k * quad.point.y;\n    }\n    quad.cx = cx / quad.charge;\n    quad.cy = cy / quad.charge;\n  }\n  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n  d3.layout.hierarchy = function() {\n    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n    function hierarchy(root) {\n      var stack = [ root ], nodes = [], node;\n      root.depth = 0;\n      while ((node = stack.pop()) != null) {\n        nodes.push(node);\n        if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n          var n, childs, child;\n          while (--n >= 0) {\n            stack.push(child = childs[n]);\n            child.parent = node;\n            child.depth = node.depth + 1;\n          }\n          if (value) node.value = 0;\n          node.children = childs;\n        } else {\n          if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n          delete node.children;\n        }\n      }\n      d3_layout_hierarchyVisitAfter(root, function(node) {\n        var childs, parent;\n        if (sort && (childs = node.children)) childs.sort(sort);\n        if (value && (parent = node.parent)) parent.value += node.value;\n      });\n      return nodes;\n    }\n    hierarchy.sort = function(x) {\n      if (!arguments.length) return sort;\n      sort = x;\n      return hierarchy;\n    };\n    hierarchy.children = function(x) {\n      if (!arguments.length) return children;\n      children = x;\n      return hierarchy;\n    };\n    hierarchy.value = function(x) {\n      if (!arguments.length) return value;\n      value = x;\n      return hierarchy;\n    };\n    hierarchy.revalue = function(root) {\n      if (value) {\n        d3_layout_hierarchyVisitBefore(root, function(node) {\n          if (node.children) node.value = 0;\n        });\n        d3_layout_hierarchyVisitAfter(root, function(node) {\n          var parent;\n          if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n          if (parent = node.parent) parent.value += node.value;\n        });\n      }\n      return root;\n    };\n    return hierarchy;\n  };\n  function d3_layout_hierarchyRebind(object, hierarchy) {\n    d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n    object.nodes = object;\n    object.links = d3_layout_hierarchyLinks;\n    return object;\n  }\n  function d3_layout_hierarchyVisitBefore(node, callback) {\n    var nodes = [ node ];\n    while ((node = nodes.pop()) != null) {\n      callback(node);\n      if ((children = node.children) && (n = children.length)) {\n        var n, children;\n        while (--n >= 0) nodes.push(children[n]);\n      }\n    }\n  }\n  function d3_layout_hierarchyVisitAfter(node, callback) {\n    var nodes = [ node ], nodes2 = [];\n    while ((node = nodes.pop()) != null) {\n      nodes2.push(node);\n      if ((children = node.children) && (n = children.length)) {\n        var i = -1, n, children;\n        while (++i < n) nodes.push(children[i]);\n      }\n    }\n    while ((node = nodes2.pop()) != null) {\n      callback(node);\n    }\n  }\n  function d3_layout_hierarchyChildren(d) {\n    return d.children;\n  }\n  function d3_layout_hierarchyValue(d) {\n    return d.value;\n  }\n  function d3_layout_hierarchySort(a, b) {\n    return b.value - a.value;\n  }\n  function d3_layout_hierarchyLinks(nodes) {\n    return d3.merge(nodes.map(function(parent) {\n      return (parent.children || []).map(function(child) {\n        return {\n          source: parent,\n          target: child\n        };\n      });\n    }));\n  }\n  d3.layout.partition = function() {\n    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n    function position(node, x, dx, dy) {\n      var children = node.children;\n      node.x = x;\n      node.y = node.depth * dy;\n      node.dx = dx;\n      node.dy = dy;\n      if (children && (n = children.length)) {\n        var i = -1, n, c, d;\n        dx = node.value ? dx / node.value : 0;\n        while (++i < n) {\n          position(c = children[i], x, d = c.value * dx, dy);\n          x += d;\n        }\n      }\n    }\n    function depth(node) {\n      var children = node.children, d = 0;\n      if (children && (n = children.length)) {\n        var i = -1, n;\n        while (++i < n) d = Math.max(d, depth(children[i]));\n      }\n      return 1 + d;\n    }\n    function partition(d, i) {\n      var nodes = hierarchy.call(this, d, i);\n      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n      return nodes;\n    }\n    partition.size = function(x) {\n      if (!arguments.length) return size;\n      size = x;\n      return partition;\n    };\n    return d3_layout_hierarchyRebind(partition, hierarchy);\n  };\n  d3.layout.pie = function() {\n    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;\n    function pie(data) {\n      var n = data.length, values = data.map(function(d, i) {\n        return +value.call(pie, d, i);\n      }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n        return values[j] - values[i];\n      } : function(i, j) {\n        return sort(data[i], data[j]);\n      });\n      index.forEach(function(i) {\n        arcs[i] = {\n          data: data[i],\n          value: v = values[i],\n          startAngle: a,\n          endAngle: a += v * k + pa,\n          padAngle: p\n        };\n      });\n      return arcs;\n    }\n    pie.value = function(_) {\n      if (!arguments.length) return value;\n      value = _;\n      return pie;\n    };\n    pie.sort = function(_) {\n      if (!arguments.length) return sort;\n      sort = _;\n      return pie;\n    };\n    pie.startAngle = function(_) {\n      if (!arguments.length) return startAngle;\n      startAngle = _;\n      return pie;\n    };\n    pie.endAngle = function(_) {\n      if (!arguments.length) return endAngle;\n      endAngle = _;\n      return pie;\n    };\n    pie.padAngle = function(_) {\n      if (!arguments.length) return padAngle;\n      padAngle = _;\n      return pie;\n    };\n    return pie;\n  };\n  var d3_layout_pieSortByValue = {};\n  d3.layout.stack = function() {\n    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n    function stack(data, index) {\n      if (!(n = data.length)) return data;\n      var series = data.map(function(d, i) {\n        return values.call(stack, d, i);\n      });\n      var points = series.map(function(d) {\n        return d.map(function(v, i) {\n          return [ x.call(stack, v, i), y.call(stack, v, i) ];\n        });\n      });\n      var orders = order.call(stack, points, index);\n      series = d3.permute(series, orders);\n      points = d3.permute(points, orders);\n      var offsets = offset.call(stack, points, index);\n      var m = series[0].length, n, i, j, o;\n      for (j = 0; j < m; ++j) {\n        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n        for (i = 1; i < n; ++i) {\n          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n        }\n      }\n      return data;\n    }\n    stack.values = function(x) {\n      if (!arguments.length) return values;\n      values = x;\n      return stack;\n    };\n    stack.order = function(x) {\n      if (!arguments.length) return order;\n      order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n      return stack;\n    };\n    stack.offset = function(x) {\n      if (!arguments.length) return offset;\n      offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n      return stack;\n    };\n    stack.x = function(z) {\n      if (!arguments.length) return x;\n      x = z;\n      return stack;\n    };\n    stack.y = function(z) {\n      if (!arguments.length) return y;\n      y = z;\n      return stack;\n    };\n    stack.out = function(z) {\n      if (!arguments.length) return out;\n      out = z;\n      return stack;\n    };\n    return stack;\n  };\n  function d3_layout_stackX(d) {\n    return d.x;\n  }\n  function d3_layout_stackY(d) {\n    return d.y;\n  }\n  function d3_layout_stackOut(d, y0, y) {\n    d.y0 = y0;\n    d.y = y;\n  }\n  var d3_layout_stackOrders = d3.map({\n    \"inside-out\": function(data) {\n      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n        return max[a] - max[b];\n      }), top = 0, bottom = 0, tops = [], bottoms = [];\n      for (i = 0; i < n; ++i) {\n        j = index[i];\n        if (top < bottom) {\n          top += sums[j];\n          tops.push(j);\n        } else {\n          bottom += sums[j];\n          bottoms.push(j);\n        }\n      }\n      return bottoms.reverse().concat(tops);\n    },\n    reverse: function(data) {\n      return d3.range(data.length).reverse();\n    },\n    \"default\": d3_layout_stackOrderDefault\n  });\n  var d3_layout_stackOffsets = d3.map({\n    silhouette: function(data) {\n      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n      for (j = 0; j < m; ++j) {\n        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n        if (o > max) max = o;\n        sums.push(o);\n      }\n      for (j = 0; j < m; ++j) {\n        y0[j] = (max - sums[j]) / 2;\n      }\n      return y0;\n    },\n    wiggle: function(data) {\n      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n      y0[0] = o = o0 = 0;\n      for (j = 1; j < m; ++j) {\n        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n          }\n          s2 += s3 * data[i][j][1];\n        }\n        y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n        if (o < o0) o0 = o;\n      }\n      for (j = 0; j < m; ++j) y0[j] -= o0;\n      return y0;\n    },\n    expand: function(data) {\n      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n      for (j = 0; j < m; ++j) {\n        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n      }\n      for (j = 0; j < m; ++j) y0[j] = 0;\n      return y0;\n    },\n    zero: d3_layout_stackOffsetZero\n  });\n  function d3_layout_stackOrderDefault(data) {\n    return d3.range(data.length);\n  }\n  function d3_layout_stackOffsetZero(data) {\n    var j = -1, m = data[0].length, y0 = [];\n    while (++j < m) y0[j] = 0;\n    return y0;\n  }\n  function d3_layout_stackMaxIndex(array) {\n    var i = 1, j = 0, v = array[0][1], k, n = array.length;\n    for (;i < n; ++i) {\n      if ((k = array[i][1]) > v) {\n        j = i;\n        v = k;\n      }\n    }\n    return j;\n  }\n  function d3_layout_stackReduceSum(d) {\n    return d.reduce(d3_layout_stackSum, 0);\n  }\n  function d3_layout_stackSum(p, d) {\n    return p + d[1];\n  }\n  d3.layout.histogram = function() {\n    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n    function histogram(data, i) {\n      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n      while (++i < m) {\n        bin = bins[i] = [];\n        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n        bin.y = 0;\n      }\n      if (m > 0) {\n        i = -1;\n        while (++i < n) {\n          x = values[i];\n          if (x >= range[0] && x <= range[1]) {\n            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n            bin.y += k;\n            bin.push(data[i]);\n          }\n        }\n      }\n      return bins;\n    }\n    histogram.value = function(x) {\n      if (!arguments.length) return valuer;\n      valuer = x;\n      return histogram;\n    };\n    histogram.range = function(x) {\n      if (!arguments.length) return ranger;\n      ranger = d3_functor(x);\n      return histogram;\n    };\n    histogram.bins = function(x) {\n      if (!arguments.length) return binner;\n      binner = typeof x === \"number\" ? function(range) {\n        return d3_layout_histogramBinFixed(range, x);\n      } : d3_functor(x);\n      return histogram;\n    };\n    histogram.frequency = function(x) {\n      if (!arguments.length) return frequency;\n      frequency = !!x;\n      return histogram;\n    };\n    return histogram;\n  };\n  function d3_layout_histogramBinSturges(range, values) {\n    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n  }\n  function d3_layout_histogramBinFixed(range, n) {\n    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n    while (++x <= n) f[x] = m * x + b;\n    return f;\n  }\n  function d3_layout_histogramRange(values) {\n    return [ d3.min(values), d3.max(values) ];\n  }\n  d3.layout.pack = function() {\n    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n    function pack(d, i) {\n      var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n        return radius;\n      };\n      root.x = root.y = 0;\n      d3_layout_hierarchyVisitAfter(root, function(d) {\n        d.r = +r(d.value);\n      });\n      d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n      if (padding) {\n        var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n        d3_layout_hierarchyVisitAfter(root, function(d) {\n          d.r += dr;\n        });\n        d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n        d3_layout_hierarchyVisitAfter(root, function(d) {\n          d.r -= dr;\n        });\n      }\n      d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n      return nodes;\n    }\n    pack.size = function(_) {\n      if (!arguments.length) return size;\n      size = _;\n      return pack;\n    };\n    pack.radius = function(_) {\n      if (!arguments.length) return radius;\n      radius = _ == null || typeof _ === \"function\" ? _ : +_;\n      return pack;\n    };\n    pack.padding = function(_) {\n      if (!arguments.length) return padding;\n      padding = +_;\n      return pack;\n    };\n    return d3_layout_hierarchyRebind(pack, hierarchy);\n  };\n  function d3_layout_packSort(a, b) {\n    return a.value - b.value;\n  }\n  function d3_layout_packInsert(a, b) {\n    var c = a._pack_next;\n    a._pack_next = b;\n    b._pack_prev = a;\n    b._pack_next = c;\n    c._pack_prev = b;\n  }\n  function d3_layout_packSplice(a, b) {\n    a._pack_next = b;\n    b._pack_prev = a;\n  }\n  function d3_layout_packIntersects(a, b) {\n    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n    return .999 * dr * dr > dx * dx + dy * dy;\n  }\n  function d3_layout_packSiblings(node) {\n    if (!(nodes = node.children) || !(n = nodes.length)) return;\n    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n    function bound(node) {\n      xMin = Math.min(node.x - node.r, xMin);\n      xMax = Math.max(node.x + node.r, xMax);\n      yMin = Math.min(node.y - node.r, yMin);\n      yMax = Math.max(node.y + node.r, yMax);\n    }\n    nodes.forEach(d3_layout_packLink);\n    a = nodes[0];\n    a.x = -a.r;\n    a.y = 0;\n    bound(a);\n    if (n > 1) {\n      b = nodes[1];\n      b.x = b.r;\n      b.y = 0;\n      bound(b);\n      if (n > 2) {\n        c = nodes[2];\n        d3_layout_packPlace(a, b, c);\n        bound(c);\n        d3_layout_packInsert(a, c);\n        a._pack_prev = c;\n        d3_layout_packInsert(c, b);\n        b = a._pack_next;\n        for (i = 3; i < n; i++) {\n          d3_layout_packPlace(a, b, c = nodes[i]);\n          var isect = 0, s1 = 1, s2 = 1;\n          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n            if (d3_layout_packIntersects(j, c)) {\n              isect = 1;\n              break;\n            }\n          }\n          if (isect == 1) {\n            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n              if (d3_layout_packIntersects(k, c)) {\n                break;\n              }\n            }\n          }\n          if (isect) {\n            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n            i--;\n          } else {\n            d3_layout_packInsert(a, c);\n            b = c;\n            bound(c);\n          }\n        }\n      }\n    }\n    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n    for (i = 0; i < n; i++) {\n      c = nodes[i];\n      c.x -= cx;\n      c.y -= cy;\n      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n    }\n    node.r = cr;\n    nodes.forEach(d3_layout_packUnlink);\n  }\n  function d3_layout_packLink(node) {\n    node._pack_next = node._pack_prev = node;\n  }\n  function d3_layout_packUnlink(node) {\n    delete node._pack_next;\n    delete node._pack_prev;\n  }\n  function d3_layout_packTransform(node, x, y, k) {\n    var children = node.children;\n    node.x = x += k * node.x;\n    node.y = y += k * node.y;\n    node.r *= k;\n    if (children) {\n      var i = -1, n = children.length;\n      while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n    }\n  }\n  function d3_layout_packPlace(a, b, c) {\n    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n    if (db && (dx || dy)) {\n      var da = b.r + c.r, dc = dx * dx + dy * dy;\n      da *= da;\n      db *= db;\n      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n      c.x = a.x + x * dx + y * dy;\n      c.y = a.y + x * dy - y * dx;\n    } else {\n      c.x = a.x + db;\n      c.y = a.y;\n    }\n  }\n  d3.layout.tree = function() {\n    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n    function tree(d, i) {\n      var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n      d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n      d3_layout_hierarchyVisitBefore(root1, secondWalk);\n      if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n        var left = root0, right = root0, bottom = root0;\n        d3_layout_hierarchyVisitBefore(root0, function(node) {\n          if (node.x < left.x) left = node;\n          if (node.x > right.x) right = node;\n          if (node.depth > bottom.depth) bottom = node;\n        });\n        var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n        d3_layout_hierarchyVisitBefore(root0, function(node) {\n          node.x = (node.x + tx) * kx;\n          node.y = node.depth * ky;\n        });\n      }\n      return nodes;\n    }\n    function wrapTree(root0) {\n      var root1 = {\n        A: null,\n        children: [ root0 ]\n      }, queue = [ root1 ], node1;\n      while ((node1 = queue.pop()) != null) {\n        for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n          queue.push((children[i] = child = {\n            _: children[i],\n            parent: node1,\n            children: (child = children[i].children) && child.slice() || [],\n            A: null,\n            a: null,\n            z: 0,\n            m: 0,\n            c: 0,\n            s: 0,\n            t: null,\n            i: i\n          }).a = child);\n        }\n      }\n      return root1.children[0];\n    }\n    function firstWalk(v) {\n      var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n      if (children.length) {\n        d3_layout_treeShift(v);\n        var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n        if (w) {\n          v.z = w.z + separation(v._, w._);\n          v.m = v.z - midpoint;\n        } else {\n          v.z = midpoint;\n        }\n      } else if (w) {\n        v.z = w.z + separation(v._, w._);\n      }\n      v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n    }\n    function secondWalk(v) {\n      v._.x = v.z + v.parent.m;\n      v.m += v.parent.m;\n    }\n    function apportion(v, w, ancestor) {\n      if (w) {\n        var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n          vom = d3_layout_treeLeft(vom);\n          vop = d3_layout_treeRight(vop);\n          vop.a = v;\n          shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n          if (shift > 0) {\n            d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n            sip += shift;\n            sop += shift;\n          }\n          sim += vim.m;\n          sip += vip.m;\n          som += vom.m;\n          sop += vop.m;\n        }\n        if (vim && !d3_layout_treeRight(vop)) {\n          vop.t = vim;\n          vop.m += sim - sop;\n        }\n        if (vip && !d3_layout_treeLeft(vom)) {\n          vom.t = vip;\n          vom.m += sip - som;\n          ancestor = v;\n        }\n      }\n      return ancestor;\n    }\n    function sizeNode(node) {\n      node.x *= size[0];\n      node.y = node.depth * size[1];\n    }\n    tree.separation = function(x) {\n      if (!arguments.length) return separation;\n      separation = x;\n      return tree;\n    };\n    tree.size = function(x) {\n      if (!arguments.length) return nodeSize ? null : size;\n      nodeSize = (size = x) == null ? sizeNode : null;\n      return tree;\n    };\n    tree.nodeSize = function(x) {\n      if (!arguments.length) return nodeSize ? size : null;\n      nodeSize = (size = x) == null ? null : sizeNode;\n      return tree;\n    };\n    return d3_layout_hierarchyRebind(tree, hierarchy);\n  };\n  function d3_layout_treeSeparation(a, b) {\n    return a.parent == b.parent ? 1 : 2;\n  }\n  function d3_layout_treeLeft(v) {\n    var children = v.children;\n    return children.length ? children[0] : v.t;\n  }\n  function d3_layout_treeRight(v) {\n    var children = v.children, n;\n    return (n = children.length) ? children[n - 1] : v.t;\n  }\n  function d3_layout_treeMove(wm, wp, shift) {\n    var change = shift / (wp.i - wm.i);\n    wp.c -= change;\n    wp.s += shift;\n    wm.c += change;\n    wp.z += shift;\n    wp.m += shift;\n  }\n  function d3_layout_treeShift(v) {\n    var shift = 0, change = 0, children = v.children, i = children.length, w;\n    while (--i >= 0) {\n      w = children[i];\n      w.z += shift;\n      w.m += shift;\n      shift += w.s + (change += w.c);\n    }\n  }\n  function d3_layout_treeAncestor(vim, v, ancestor) {\n    return vim.a.parent === v.parent ? vim.a : ancestor;\n  }\n  d3.layout.cluster = function() {\n    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n    function cluster(d, i) {\n      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n      d3_layout_hierarchyVisitAfter(root, function(node) {\n        var children = node.children;\n        if (children && children.length) {\n          node.x = d3_layout_clusterX(children);\n          node.y = d3_layout_clusterY(children);\n        } else {\n          node.x = previousNode ? x += separation(node, previousNode) : 0;\n          node.y = 0;\n          previousNode = node;\n        }\n      });\n      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n      d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n        node.x = (node.x - root.x) * size[0];\n        node.y = (root.y - node.y) * size[1];\n      } : function(node) {\n        node.x = (node.x - x0) / (x1 - x0) * size[0];\n        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n      });\n      return nodes;\n    }\n    cluster.separation = function(x) {\n      if (!arguments.length) return separation;\n      separation = x;\n      return cluster;\n    };\n    cluster.size = function(x) {\n      if (!arguments.length) return nodeSize ? null : size;\n      nodeSize = (size = x) == null;\n      return cluster;\n    };\n    cluster.nodeSize = function(x) {\n      if (!arguments.length) return nodeSize ? size : null;\n      nodeSize = (size = x) != null;\n      return cluster;\n    };\n    return d3_layout_hierarchyRebind(cluster, hierarchy);\n  };\n  function d3_layout_clusterY(children) {\n    return 1 + d3.max(children, function(child) {\n      return child.y;\n    });\n  }\n  function d3_layout_clusterX(children) {\n    return children.reduce(function(x, child) {\n      return x + child.x;\n    }, 0) / children.length;\n  }\n  function d3_layout_clusterLeft(node) {\n    var children = node.children;\n    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n  }\n  function d3_layout_clusterRight(node) {\n    var children = node.children, n;\n    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n  }\n  d3.layout.treemap = function() {\n    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n    function scale(children, k) {\n      var i = -1, n = children.length, child, area;\n      while (++i < n) {\n        area = (child = children[i]).value * (k < 0 ? 0 : k);\n        child.area = isNaN(area) || area <= 0 ? 0 : area;\n      }\n    }\n    function squarify(node) {\n      var children = node.children;\n      if (children && children.length) {\n        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n        scale(remaining, rect.dx * rect.dy / node.value);\n        row.area = 0;\n        while ((n = remaining.length) > 0) {\n          row.push(child = remaining[n - 1]);\n          row.area += child.area;\n          if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n            remaining.pop();\n            best = score;\n          } else {\n            row.area -= row.pop().area;\n            position(row, u, rect, false);\n            u = Math.min(rect.dx, rect.dy);\n            row.length = row.area = 0;\n            best = Infinity;\n          }\n        }\n        if (row.length) {\n          position(row, u, rect, true);\n          row.length = row.area = 0;\n        }\n        children.forEach(squarify);\n      }\n    }\n    function stickify(node) {\n      var children = node.children;\n      if (children && children.length) {\n        var rect = pad(node), remaining = children.slice(), child, row = [];\n        scale(remaining, rect.dx * rect.dy / node.value);\n        row.area = 0;\n        while (child = remaining.pop()) {\n          row.push(child);\n          row.area += child.area;\n          if (child.z != null) {\n            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n            row.length = row.area = 0;\n          }\n        }\n        children.forEach(stickify);\n      }\n    }\n    function worst(row, u) {\n      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n      while (++i < n) {\n        if (!(r = row[i].area)) continue;\n        if (r < rmin) rmin = r;\n        if (r > rmax) rmax = r;\n      }\n      s *= s;\n      u *= u;\n      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n    }\n    function position(row, u, rect, flush) {\n      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n      if (u == rect.dx) {\n        if (flush || v > rect.dy) v = rect.dy;\n        while (++i < n) {\n          o = row[i];\n          o.x = x;\n          o.y = y;\n          o.dy = v;\n          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n        }\n        o.z = true;\n        o.dx += rect.x + rect.dx - x;\n        rect.y += v;\n        rect.dy -= v;\n      } else {\n        if (flush || v > rect.dx) v = rect.dx;\n        while (++i < n) {\n          o = row[i];\n          o.x = x;\n          o.y = y;\n          o.dx = v;\n          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n        }\n        o.z = false;\n        o.dy += rect.y + rect.dy - y;\n        rect.x += v;\n        rect.dx -= v;\n      }\n    }\n    function treemap(d) {\n      var nodes = stickies || hierarchy(d), root = nodes[0];\n      root.x = root.y = 0;\n      if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;\n      if (stickies) hierarchy.revalue(root);\n      scale([ root ], root.dx * root.dy / root.value);\n      (stickies ? stickify : squarify)(root);\n      if (sticky) stickies = nodes;\n      return nodes;\n    }\n    treemap.size = function(x) {\n      if (!arguments.length) return size;\n      size = x;\n      return treemap;\n    };\n    treemap.padding = function(x) {\n      if (!arguments.length) return padding;\n      function padFunction(node) {\n        var p = x.call(treemap, node, node.depth);\n        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n      }\n      function padConstant(node) {\n        return d3_layout_treemapPad(node, x);\n      }\n      var type;\n      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n      padConstant) : padConstant;\n      return treemap;\n    };\n    treemap.round = function(x) {\n      if (!arguments.length) return round != Number;\n      round = x ? Math.round : Number;\n      return treemap;\n    };\n    treemap.sticky = function(x) {\n      if (!arguments.length) return sticky;\n      sticky = x;\n      stickies = null;\n      return treemap;\n    };\n    treemap.ratio = function(x) {\n      if (!arguments.length) return ratio;\n      ratio = x;\n      return treemap;\n    };\n    treemap.mode = function(x) {\n      if (!arguments.length) return mode;\n      mode = x + \"\";\n      return treemap;\n    };\n    return d3_layout_hierarchyRebind(treemap, hierarchy);\n  };\n  function d3_layout_treemapPadNull(node) {\n    return {\n      x: node.x,\n      y: node.y,\n      dx: node.dx,\n      dy: node.dy\n    };\n  }\n  function d3_layout_treemapPad(node, padding) {\n    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n    if (dx < 0) {\n      x += dx / 2;\n      dx = 0;\n    }\n    if (dy < 0) {\n      y += dy / 2;\n      dy = 0;\n    }\n    return {\n      x: x,\n      y: y,\n      dx: dx,\n      dy: dy\n    };\n  }\n  d3.random = {\n    normal: function(µ, σ) {\n      var n = arguments.length;\n      if (n < 2) σ = 1;\n      if (n < 1) µ = 0;\n      return function() {\n        var x, y, r;\n        do {\n          x = Math.random() * 2 - 1;\n          y = Math.random() * 2 - 1;\n          r = x * x + y * y;\n        } while (!r || r > 1);\n        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n      };\n    },\n    logNormal: function() {\n      var random = d3.random.normal.apply(d3, arguments);\n      return function() {\n        return Math.exp(random());\n      };\n    },\n    bates: function(m) {\n      var random = d3.random.irwinHall(m);\n      return function() {\n        return random() / m;\n      };\n    },\n    irwinHall: function(m) {\n      return function() {\n        for (var s = 0, j = 0; j < m; j++) s += Math.random();\n        return s;\n      };\n    }\n  };\n  d3.scale = {};\n  function d3_scaleExtent(domain) {\n    var start = domain[0], stop = domain[domain.length - 1];\n    return start < stop ? [ start, stop ] : [ stop, start ];\n  }\n  function d3_scaleRange(scale) {\n    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n  }\n  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n    return function(x) {\n      return i(u(x));\n    };\n  }\n  function d3_scale_nice(domain, nice) {\n    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n    if (x1 < x0) {\n      dx = i0, i0 = i1, i1 = dx;\n      dx = x0, x0 = x1, x1 = dx;\n    }\n    domain[i0] = nice.floor(x0);\n    domain[i1] = nice.ceil(x1);\n    return domain;\n  }\n  function d3_scale_niceStep(step) {\n    return step ? {\n      floor: function(x) {\n        return Math.floor(x / step) * step;\n      },\n      ceil: function(x) {\n        return Math.ceil(x / step) * step;\n      }\n    } : d3_scale_niceIdentity;\n  }\n  var d3_scale_niceIdentity = {\n    floor: d3_identity,\n    ceil: d3_identity\n  };\n  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n    if (domain[k] < domain[0]) {\n      domain = domain.slice().reverse();\n      range = range.slice().reverse();\n    }\n    while (++j <= k) {\n      u.push(uninterpolate(domain[j - 1], domain[j]));\n      i.push(interpolate(range[j - 1], range[j]));\n    }\n    return function(x) {\n      var j = d3.bisect(domain, x, 1, k) - 1;\n      return i[j](u[j](x));\n    };\n  }\n  d3.scale.linear = function() {\n    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n  };\n  function d3_scale_linear(domain, range, interpolate, clamp) {\n    var output, input;\n    function rescale() {\n      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n      output = linear(domain, range, uninterpolate, interpolate);\n      input = linear(range, domain, uninterpolate, d3_interpolate);\n      return scale;\n    }\n    function scale(x) {\n      return output(x);\n    }\n    scale.invert = function(y) {\n      return input(y);\n    };\n    scale.domain = function(x) {\n      if (!arguments.length) return domain;\n      domain = x.map(Number);\n      return rescale();\n    };\n    scale.range = function(x) {\n      if (!arguments.length) return range;\n      range = x;\n      return rescale();\n    };\n    scale.rangeRound = function(x) {\n      return scale.range(x).interpolate(d3_interpolateRound);\n    };\n    scale.clamp = function(x) {\n      if (!arguments.length) return clamp;\n      clamp = x;\n      return rescale();\n    };\n    scale.interpolate = function(x) {\n      if (!arguments.length) return interpolate;\n      interpolate = x;\n      return rescale();\n    };\n    scale.ticks = function(m) {\n      return d3_scale_linearTicks(domain, m);\n    };\n    scale.tickFormat = function(m, format) {\n      return d3_scale_linearTickFormat(domain, m, format);\n    };\n    scale.nice = function(m) {\n      d3_scale_linearNice(domain, m);\n      return rescale();\n    };\n    scale.copy = function() {\n      return d3_scale_linear(domain, range, interpolate, clamp);\n    };\n    return rescale();\n  }\n  function d3_scale_linearRebind(scale, linear) {\n    return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n  }\n  function d3_scale_linearNice(domain, m) {\n    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n    return domain;\n  }\n  function d3_scale_linearTickRange(domain, m) {\n    if (m == null) m = 10;\n    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n    extent[0] = Math.ceil(extent[0] / step) * step;\n    extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n    extent[2] = step;\n    return extent;\n  }\n  function d3_scale_linearTicks(domain, m) {\n    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n  }\n  function d3_scale_linearTickFormat(domain, m, format) {\n    var range = d3_scale_linearTickRange(domain, m);\n    if (format) {\n      var match = d3_format_re.exec(format);\n      match.shift();\n      if (match[8] === \"s\") {\n        var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n        if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n        match[8] = \"f\";\n        format = d3.format(match.join(\"\"));\n        return function(d) {\n          return format(prefix.scale(d)) + prefix.symbol;\n        };\n      }\n      if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n      format = match.join(\"\");\n    } else {\n      format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n    }\n    return d3.format(format);\n  }\n  var d3_scale_linearFormatSignificant = {\n    s: 1,\n    g: 1,\n    p: 1,\n    r: 1,\n    e: 1\n  };\n  function d3_scale_linearPrecision(value) {\n    return -Math.floor(Math.log(value) / Math.LN10 + .01);\n  }\n  function d3_scale_linearFormatPrecision(type, range) {\n    var p = d3_scale_linearPrecision(range[2]);\n    return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n  }\n  d3.scale.log = function() {\n    return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n  };\n  function d3_scale_log(linear, base, positive, domain) {\n    function log(x) {\n      return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n    }\n    function pow(x) {\n      return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n    }\n    function scale(x) {\n      return linear(log(x));\n    }\n    scale.invert = function(x) {\n      return pow(linear.invert(x));\n    };\n    scale.domain = function(x) {\n      if (!arguments.length) return domain;\n      positive = x[0] >= 0;\n      linear.domain((domain = x.map(Number)).map(log));\n      return scale;\n    };\n    scale.base = function(_) {\n      if (!arguments.length) return base;\n      base = +_;\n      linear.domain(domain.map(log));\n      return scale;\n    };\n    scale.nice = function() {\n      var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n      linear.domain(niced);\n      domain = niced.map(pow);\n      return scale;\n    };\n    scale.ticks = function() {\n      var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n      if (isFinite(j - i)) {\n        if (positive) {\n          for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n          ticks.push(pow(i));\n        } else {\n          ticks.push(pow(i));\n          for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n        }\n        for (i = 0; ticks[i] < u; i++) {}\n        for (j = ticks.length; ticks[j - 1] > v; j--) {}\n        ticks = ticks.slice(i, j);\n      }\n      return ticks;\n    };\n    scale.tickFormat = function(n, format) {\n      if (!arguments.length) return d3_scale_logFormat;\n      if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n      var k = Math.max(1, base * n / scale.ticks().length);\n      return function(d) {\n        var i = d / pow(Math.round(log(d)));\n        if (i * base < base - .5) i *= base;\n        return i <= k ? format(d) : \"\";\n      };\n    };\n    scale.copy = function() {\n      return d3_scale_log(linear.copy(), base, positive, domain);\n    };\n    return d3_scale_linearRebind(scale, linear);\n  }\n  var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n    floor: function(x) {\n      return -Math.ceil(-x);\n    },\n    ceil: function(x) {\n      return -Math.floor(-x);\n    }\n  };\n  d3.scale.pow = function() {\n    return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n  };\n  function d3_scale_pow(linear, exponent, domain) {\n    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n    function scale(x) {\n      return linear(powp(x));\n    }\n    scale.invert = function(x) {\n      return powb(linear.invert(x));\n    };\n    scale.domain = function(x) {\n      if (!arguments.length) return domain;\n      linear.domain((domain = x.map(Number)).map(powp));\n      return scale;\n    };\n    scale.ticks = function(m) {\n      return d3_scale_linearTicks(domain, m);\n    };\n    scale.tickFormat = function(m, format) {\n      return d3_scale_linearTickFormat(domain, m, format);\n    };\n    scale.nice = function(m) {\n      return scale.domain(d3_scale_linearNice(domain, m));\n    };\n    scale.exponent = function(x) {\n      if (!arguments.length) return exponent;\n      powp = d3_scale_powPow(exponent = x);\n      powb = d3_scale_powPow(1 / exponent);\n      linear.domain(domain.map(powp));\n      return scale;\n    };\n    scale.copy = function() {\n      return d3_scale_pow(linear.copy(), exponent, domain);\n    };\n    return d3_scale_linearRebind(scale, linear);\n  }\n  function d3_scale_powPow(e) {\n    return function(x) {\n      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n    };\n  }\n  d3.scale.sqrt = function() {\n    return d3.scale.pow().exponent(.5);\n  };\n  d3.scale.ordinal = function() {\n    return d3_scale_ordinal([], {\n      t: \"range\",\n      a: [ [] ]\n    });\n  };\n  function d3_scale_ordinal(domain, ranger) {\n    var index, range, rangeBand;\n    function scale(x) {\n      return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n    }\n    function steps(start, step) {\n      return d3.range(domain.length).map(function(i) {\n        return start + step * i;\n      });\n    }\n    scale.domain = function(x) {\n      if (!arguments.length) return domain;\n      domain = [];\n      index = new d3_Map();\n      var i = -1, n = x.length, xi;\n      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n      return scale[ranger.t].apply(scale, ranger.a);\n    };\n    scale.range = function(x) {\n      if (!arguments.length) return range;\n      range = x;\n      rangeBand = 0;\n      ranger = {\n        t: \"range\",\n        a: arguments\n      };\n      return scale;\n    };\n    scale.rangePoints = function(x, padding) {\n      if (arguments.length < 2) padding = 0;\n      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, \n      0) : (stop - start) / (domain.length - 1 + padding);\n      range = steps(start + step * padding / 2, step);\n      rangeBand = 0;\n      ranger = {\n        t: \"rangePoints\",\n        a: arguments\n      };\n      return scale;\n    };\n    scale.rangeRoundPoints = function(x, padding) {\n      if (arguments.length < 2) padding = 0;\n      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), \n      0) : (stop - start) / (domain.length - 1 + padding) | 0;\n      range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n      rangeBand = 0;\n      ranger = {\n        t: \"rangeRoundPoints\",\n        a: arguments\n      };\n      return scale;\n    };\n    scale.rangeBands = function(x, padding, outerPadding) {\n      if (arguments.length < 2) padding = 0;\n      if (arguments.length < 3) outerPadding = padding;\n      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n      range = steps(start + step * outerPadding, step);\n      if (reverse) range.reverse();\n      rangeBand = step * (1 - padding);\n      ranger = {\n        t: \"rangeBands\",\n        a: arguments\n      };\n      return scale;\n    };\n    scale.rangeRoundBands = function(x, padding, outerPadding) {\n      if (arguments.length < 2) padding = 0;\n      if (arguments.length < 3) outerPadding = padding;\n      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n      range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n      if (reverse) range.reverse();\n      rangeBand = Math.round(step * (1 - padding));\n      ranger = {\n        t: \"rangeRoundBands\",\n        a: arguments\n      };\n      return scale;\n    };\n    scale.rangeBand = function() {\n      return rangeBand;\n    };\n    scale.rangeExtent = function() {\n      return d3_scaleExtent(ranger.a[0]);\n    };\n    scale.copy = function() {\n      return d3_scale_ordinal(domain, ranger);\n    };\n    return scale.domain(domain);\n  }\n  d3.scale.category10 = function() {\n    return d3.scale.ordinal().range(d3_category10);\n  };\n  d3.scale.category20 = function() {\n    return d3.scale.ordinal().range(d3_category20);\n  };\n  d3.scale.category20b = function() {\n    return d3.scale.ordinal().range(d3_category20b);\n  };\n  d3.scale.category20c = function() {\n    return d3.scale.ordinal().range(d3_category20c);\n  };\n  var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n  var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n  var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n  var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n  d3.scale.quantile = function() {\n    return d3_scale_quantile([], []);\n  };\n  function d3_scale_quantile(domain, range) {\n    var thresholds;\n    function rescale() {\n      var k = 0, q = range.length;\n      thresholds = [];\n      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n      return scale;\n    }\n    function scale(x) {\n      if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n    }\n    scale.domain = function(x) {\n      if (!arguments.length) return domain;\n      domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n      return rescale();\n    };\n    scale.range = function(x) {\n      if (!arguments.length) return range;\n      range = x;\n      return rescale();\n    };\n    scale.quantiles = function() {\n      return thresholds;\n    };\n    scale.invertExtent = function(y) {\n      y = range.indexOf(y);\n      return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n    };\n    scale.copy = function() {\n      return d3_scale_quantile(domain, range);\n    };\n    return rescale();\n  }\n  d3.scale.quantize = function() {\n    return d3_scale_quantize(0, 1, [ 0, 1 ]);\n  };\n  function d3_scale_quantize(x0, x1, range) {\n    var kx, i;\n    function scale(x) {\n      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n    }\n    function rescale() {\n      kx = range.length / (x1 - x0);\n      i = range.length - 1;\n      return scale;\n    }\n    scale.domain = function(x) {\n      if (!arguments.length) return [ x0, x1 ];\n      x0 = +x[0];\n      x1 = +x[x.length - 1];\n      return rescale();\n    };\n    scale.range = function(x) {\n      if (!arguments.length) return range;\n      range = x;\n      return rescale();\n    };\n    scale.invertExtent = function(y) {\n      y = range.indexOf(y);\n      y = y < 0 ? NaN : y / kx + x0;\n      return [ y, y + 1 / kx ];\n    };\n    scale.copy = function() {\n      return d3_scale_quantize(x0, x1, range);\n    };\n    return rescale();\n  }\n  d3.scale.threshold = function() {\n    return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n  };\n  function d3_scale_threshold(domain, range) {\n    function scale(x) {\n      if (x <= x) return range[d3.bisect(domain, x)];\n    }\n    scale.domain = function(_) {\n      if (!arguments.length) return domain;\n      domain = _;\n      return scale;\n    };\n    scale.range = function(_) {\n      if (!arguments.length) return range;\n      range = _;\n      return scale;\n    };\n    scale.invertExtent = function(y) {\n      y = range.indexOf(y);\n      return [ domain[y - 1], domain[y] ];\n    };\n    scale.copy = function() {\n      return d3_scale_threshold(domain, range);\n    };\n    return scale;\n  }\n  d3.scale.identity = function() {\n    return d3_scale_identity([ 0, 1 ]);\n  };\n  function d3_scale_identity(domain) {\n    function identity(x) {\n      return +x;\n    }\n    identity.invert = identity;\n    identity.domain = identity.range = function(x) {\n      if (!arguments.length) return domain;\n      domain = x.map(identity);\n      return identity;\n    };\n    identity.ticks = function(m) {\n      return d3_scale_linearTicks(domain, m);\n    };\n    identity.tickFormat = function(m, format) {\n      return d3_scale_linearTickFormat(domain, m, format);\n    };\n    identity.copy = function() {\n      return d3_scale_identity(domain);\n    };\n    return identity;\n  }\n  d3.svg = {};\n  function d3_zero() {\n    return 0;\n  }\n  d3.svg.arc = function() {\n    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n    function arc() {\n      var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n      if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n      if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n      var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n      if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n        rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n        if (!cw) p1 *= -1;\n        if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n        if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n      }\n      if (r1) {\n        x0 = r1 * Math.cos(a0 + p1);\n        y0 = r1 * Math.sin(a0 + p1);\n        x1 = r1 * Math.cos(a1 - p1);\n        y1 = r1 * Math.sin(a1 - p1);\n        var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;\n        if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n          var h1 = (a0 + a1) / 2;\n          x0 = r1 * Math.cos(h1);\n          y0 = r1 * Math.sin(h1);\n          x1 = y1 = null;\n        }\n      } else {\n        x0 = y0 = 0;\n      }\n      if (r0) {\n        x2 = r0 * Math.cos(a1 - p0);\n        y2 = r0 * Math.sin(a1 - p0);\n        x3 = r0 * Math.cos(a0 + p0);\n        y3 = r0 * Math.sin(a0 + p0);\n        var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;\n        if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n          var h0 = (a0 + a1) / 2;\n          x2 = r0 * Math.cos(h0);\n          y2 = r0 * Math.sin(h0);\n          x3 = y3 = null;\n        }\n      } else {\n        x2 = y2 = 0;\n      }\n      if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {\n        cr = r0 < r1 ^ cw ? 0 : 1;\n        var rc1 = rc, rc0 = rc;\n        if (da < π) {\n          var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n          rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n          rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n        }\n        if (x1 != null) {\n          var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);\n          if (rc === rc1) {\n            path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n          } else {\n            path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n          }\n        } else {\n          path.push(\"M\", x0, \",\", y0);\n        }\n        if (x3 != null) {\n          var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);\n          if (rc === rc0) {\n            path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n          } else {\n            path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n          }\n        } else {\n          path.push(\"L\", x2, \",\", y2);\n        }\n      } else {\n        path.push(\"M\", x0, \",\", y0);\n        if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n        path.push(\"L\", x2, \",\", y2);\n        if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n      }\n      path.push(\"Z\");\n      return path.join(\"\");\n    }\n    function circleSegment(r1, cw) {\n      return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n    }\n    arc.innerRadius = function(v) {\n      if (!arguments.length) return innerRadius;\n      innerRadius = d3_functor(v);\n      return arc;\n    };\n    arc.outerRadius = function(v) {\n      if (!arguments.length) return outerRadius;\n      outerRadius = d3_functor(v);\n      return arc;\n    };\n    arc.cornerRadius = function(v) {\n      if (!arguments.length) return cornerRadius;\n      cornerRadius = d3_functor(v);\n      return arc;\n    };\n    arc.padRadius = function(v) {\n      if (!arguments.length) return padRadius;\n      padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n      return arc;\n    };\n    arc.startAngle = function(v) {\n      if (!arguments.length) return startAngle;\n      startAngle = d3_functor(v);\n      return arc;\n    };\n    arc.endAngle = function(v) {\n      if (!arguments.length) return endAngle;\n      endAngle = d3_functor(v);\n      return arc;\n    };\n    arc.padAngle = function(v) {\n      if (!arguments.length) return padAngle;\n      padAngle = d3_functor(v);\n      return arc;\n    };\n    arc.centroid = function() {\n      var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;\n      return [ Math.cos(a) * r, Math.sin(a) * r ];\n    };\n    return arc;\n  };\n  var d3_svg_arcAuto = \"auto\";\n  function d3_svg_arcInnerRadius(d) {\n    return d.innerRadius;\n  }\n  function d3_svg_arcOuterRadius(d) {\n    return d.outerRadius;\n  }\n  function d3_svg_arcStartAngle(d) {\n    return d.startAngle;\n  }\n  function d3_svg_arcEndAngle(d) {\n    return d.endAngle;\n  }\n  function d3_svg_arcPadAngle(d) {\n    return d && d.padAngle;\n  }\n  function d3_svg_arcSweep(x0, y0, x1, y1) {\n    return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n  }\n  function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n    var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n    return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];\n  }\n  function d3_svg_line(projection) {\n    var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n    function line(data) {\n      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n      function segment() {\n        segments.push(\"M\", interpolate(projection(points), tension));\n      }\n      while (++i < n) {\n        if (defined.call(this, d = data[i], i)) {\n          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n        } else if (points.length) {\n          segment();\n          points = [];\n        }\n      }\n      if (points.length) segment();\n      return segments.length ? segments.join(\"\") : null;\n    }\n    line.x = function(_) {\n      if (!arguments.length) return x;\n      x = _;\n      return line;\n    };\n    line.y = function(_) {\n      if (!arguments.length) return y;\n      y = _;\n      return line;\n    };\n    line.defined = function(_) {\n      if (!arguments.length) return defined;\n      defined = _;\n      return line;\n    };\n    line.interpolate = function(_) {\n      if (!arguments.length) return interpolateKey;\n      if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n      return line;\n    };\n    line.tension = function(_) {\n      if (!arguments.length) return tension;\n      tension = _;\n      return line;\n    };\n    return line;\n  }\n  d3.svg.line = function() {\n    return d3_svg_line(d3_identity);\n  };\n  var d3_svg_lineInterpolators = d3.map({\n    linear: d3_svg_lineLinear,\n    \"linear-closed\": d3_svg_lineLinearClosed,\n    step: d3_svg_lineStep,\n    \"step-before\": d3_svg_lineStepBefore,\n    \"step-after\": d3_svg_lineStepAfter,\n    basis: d3_svg_lineBasis,\n    \"basis-open\": d3_svg_lineBasisOpen,\n    \"basis-closed\": d3_svg_lineBasisClosed,\n    bundle: d3_svg_lineBundle,\n    cardinal: d3_svg_lineCardinal,\n    \"cardinal-open\": d3_svg_lineCardinalOpen,\n    \"cardinal-closed\": d3_svg_lineCardinalClosed,\n    monotone: d3_svg_lineMonotone\n  });\n  d3_svg_lineInterpolators.forEach(function(key, value) {\n    value.key = key;\n    value.closed = /-closed$/.test(key);\n  });\n  function d3_svg_lineLinear(points) {\n    return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n  }\n  function d3_svg_lineLinearClosed(points) {\n    return points.join(\"L\") + \"Z\";\n  }\n  function d3_svg_lineStep(points) {\n    var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n    while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n    if (n > 1) path.push(\"H\", p[0]);\n    return path.join(\"\");\n  }\n  function d3_svg_lineStepBefore(points) {\n    var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n    while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n    return path.join(\"\");\n  }\n  function d3_svg_lineStepAfter(points) {\n    var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n    while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n    return path.join(\"\");\n  }\n  function d3_svg_lineCardinalOpen(points, tension) {\n    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n  }\n  function d3_svg_lineCardinalClosed(points, tension) {\n    return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n  }\n  function d3_svg_lineCardinal(points, tension) {\n    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n  }\n  function d3_svg_lineHermite(points, tangents) {\n    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n      return d3_svg_lineLinear(points);\n    }\n    var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n    if (quad) {\n      path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n      p0 = points[1];\n      pi = 2;\n    }\n    if (tangents.length > 1) {\n      t = tangents[1];\n      p = points[pi];\n      pi++;\n      path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n      for (var i = 2; i < tangents.length; i++, pi++) {\n        p = points[pi];\n        t = tangents[i];\n        path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n      }\n    }\n    if (quad) {\n      var lp = points[pi];\n      path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n    }\n    return path;\n  }\n  function d3_svg_lineCardinalTangents(points, tension) {\n    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n    while (++i < n) {\n      p0 = p1;\n      p1 = p2;\n      p2 = points[i];\n      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n    }\n    return tangents;\n  }\n  function d3_svg_lineBasis(points) {\n    if (points.length < 3) return d3_svg_lineLinear(points);\n    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n    points.push(points[n - 1]);\n    while (++i <= n) {\n      pi = points[i];\n      px.shift();\n      px.push(pi[0]);\n      py.shift();\n      py.push(pi[1]);\n      d3_svg_lineBasisBezier(path, px, py);\n    }\n    points.pop();\n    path.push(\"L\", pi);\n    return path.join(\"\");\n  }\n  function d3_svg_lineBasisOpen(points) {\n    if (points.length < 4) return d3_svg_lineLinear(points);\n    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n    while (++i < 3) {\n      pi = points[i];\n      px.push(pi[0]);\n      py.push(pi[1]);\n    }\n    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n    --i;\n    while (++i < n) {\n      pi = points[i];\n      px.shift();\n      px.push(pi[0]);\n      py.shift();\n      py.push(pi[1]);\n      d3_svg_lineBasisBezier(path, px, py);\n    }\n    return path.join(\"\");\n  }\n  function d3_svg_lineBasisClosed(points) {\n    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n    while (++i < 4) {\n      pi = points[i % n];\n      px.push(pi[0]);\n      py.push(pi[1]);\n    }\n    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n    --i;\n    while (++i < m) {\n      pi = points[i % n];\n      px.shift();\n      px.push(pi[0]);\n      py.shift();\n      py.push(pi[1]);\n      d3_svg_lineBasisBezier(path, px, py);\n    }\n    return path.join(\"\");\n  }\n  function d3_svg_lineBundle(points, tension) {\n    var n = points.length - 1;\n    if (n) {\n      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n      while (++i <= n) {\n        p = points[i];\n        t = i / n;\n        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n      }\n    }\n    return d3_svg_lineBasis(points);\n  }\n  function d3_svg_lineDot4(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n  }\n  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n  function d3_svg_lineBasisBezier(path, x, y) {\n    path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n  }\n  function d3_svg_lineSlope(p0, p1) {\n    return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n  }\n  function d3_svg_lineFiniteDifferences(points) {\n    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n    while (++i < j) {\n      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n    }\n    m[i] = d;\n    return m;\n  }\n  function d3_svg_lineMonotoneTangents(points) {\n    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n    while (++i < j) {\n      d = d3_svg_lineSlope(points[i], points[i + 1]);\n      if (abs(d) < ε) {\n        m[i] = m[i + 1] = 0;\n      } else {\n        a = m[i] / d;\n        b = m[i + 1] / d;\n        s = a * a + b * b;\n        if (s > 9) {\n          s = d * 3 / Math.sqrt(s);\n          m[i] = s * a;\n          m[i + 1] = s * b;\n        }\n      }\n    }\n    i = -1;\n    while (++i <= j) {\n      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n      tangents.push([ s || 0, m[i] * s || 0 ]);\n    }\n    return tangents;\n  }\n  function d3_svg_lineMonotone(points) {\n    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n  }\n  d3.svg.line.radial = function() {\n    var line = d3_svg_line(d3_svg_lineRadial);\n    line.radius = line.x, delete line.x;\n    line.angle = line.y, delete line.y;\n    return line;\n  };\n  function d3_svg_lineRadial(points) {\n    var point, i = -1, n = points.length, r, a;\n    while (++i < n) {\n      point = points[i];\n      r = point[0];\n      a = point[1] - halfπ;\n      point[0] = r * Math.cos(a);\n      point[1] = r * Math.sin(a);\n    }\n    return points;\n  }\n  function d3_svg_area(projection) {\n    var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n    function area(data) {\n      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n        return x;\n      } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n        return y;\n      } : d3_functor(y1), x, y;\n      function segment() {\n        segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n      }\n      while (++i < n) {\n        if (defined.call(this, d = data[i], i)) {\n          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n        } else if (points0.length) {\n          segment();\n          points0 = [];\n          points1 = [];\n        }\n      }\n      if (points0.length) segment();\n      return segments.length ? segments.join(\"\") : null;\n    }\n    area.x = function(_) {\n      if (!arguments.length) return x1;\n      x0 = x1 = _;\n      return area;\n    };\n    area.x0 = function(_) {\n      if (!arguments.length) return x0;\n      x0 = _;\n      return area;\n    };\n    area.x1 = function(_) {\n      if (!arguments.length) return x1;\n      x1 = _;\n      return area;\n    };\n    area.y = function(_) {\n      if (!arguments.length) return y1;\n      y0 = y1 = _;\n      return area;\n    };\n    area.y0 = function(_) {\n      if (!arguments.length) return y0;\n      y0 = _;\n      return area;\n    };\n    area.y1 = function(_) {\n      if (!arguments.length) return y1;\n      y1 = _;\n      return area;\n    };\n    area.defined = function(_) {\n      if (!arguments.length) return defined;\n      defined = _;\n      return area;\n    };\n    area.interpolate = function(_) {\n      if (!arguments.length) return interpolateKey;\n      if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n      interpolateReverse = interpolate.reverse || interpolate;\n      L = interpolate.closed ? \"M\" : \"L\";\n      return area;\n    };\n    area.tension = function(_) {\n      if (!arguments.length) return tension;\n      tension = _;\n      return area;\n    };\n    return area;\n  }\n  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n  d3.svg.area = function() {\n    return d3_svg_area(d3_identity);\n  };\n  d3.svg.area.radial = function() {\n    var area = d3_svg_area(d3_svg_lineRadial);\n    area.radius = area.x, delete area.x;\n    area.innerRadius = area.x0, delete area.x0;\n    area.outerRadius = area.x1, delete area.x1;\n    area.angle = area.y, delete area.y;\n    area.startAngle = area.y0, delete area.y0;\n    area.endAngle = area.y1, delete area.y1;\n    return area;\n  };\n  d3.svg.chord = function() {\n    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n    function chord(d, i) {\n      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n      return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n    }\n    function subgroup(self, f, d, i) {\n      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;\n      return {\n        r: r,\n        a0: a0,\n        a1: a1,\n        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n      };\n    }\n    function equals(a, b) {\n      return a.a0 == b.a0 && a.a1 == b.a1;\n    }\n    function arc(r, p, a) {\n      return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n    }\n    function curve(r0, p0, r1, p1) {\n      return \"Q 0,0 \" + p1;\n    }\n    chord.radius = function(v) {\n      if (!arguments.length) return radius;\n      radius = d3_functor(v);\n      return chord;\n    };\n    chord.source = function(v) {\n      if (!arguments.length) return source;\n      source = d3_functor(v);\n      return chord;\n    };\n    chord.target = function(v) {\n      if (!arguments.length) return target;\n      target = d3_functor(v);\n      return chord;\n    };\n    chord.startAngle = function(v) {\n      if (!arguments.length) return startAngle;\n      startAngle = d3_functor(v);\n      return chord;\n    };\n    chord.endAngle = function(v) {\n      if (!arguments.length) return endAngle;\n      endAngle = d3_functor(v);\n      return chord;\n    };\n    return chord;\n  };\n  function d3_svg_chordRadius(d) {\n    return d.radius;\n  }\n  d3.svg.diagonal = function() {\n    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n    function diagonal(d, i) {\n      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n        x: p0.x,\n        y: m\n      }, {\n        x: p3.x,\n        y: m\n      }, p3 ];\n      p = p.map(projection);\n      return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n    }\n    diagonal.source = function(x) {\n      if (!arguments.length) return source;\n      source = d3_functor(x);\n      return diagonal;\n    };\n    diagonal.target = function(x) {\n      if (!arguments.length) return target;\n      target = d3_functor(x);\n      return diagonal;\n    };\n    diagonal.projection = function(x) {\n      if (!arguments.length) return projection;\n      projection = x;\n      return diagonal;\n    };\n    return diagonal;\n  };\n  function d3_svg_diagonalProjection(d) {\n    return [ d.x, d.y ];\n  }\n  d3.svg.diagonal.radial = function() {\n    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n    diagonal.projection = function(x) {\n      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n    };\n    return diagonal;\n  };\n  function d3_svg_diagonalRadialProjection(projection) {\n    return function() {\n      var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;\n      return [ r * Math.cos(a), r * Math.sin(a) ];\n    };\n  }\n  d3.svg.symbol = function() {\n    var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n    function symbol(d, i) {\n      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n    }\n    symbol.type = function(x) {\n      if (!arguments.length) return type;\n      type = d3_functor(x);\n      return symbol;\n    };\n    symbol.size = function(x) {\n      if (!arguments.length) return size;\n      size = d3_functor(x);\n      return symbol;\n    };\n    return symbol;\n  };\n  function d3_svg_symbolSize() {\n    return 64;\n  }\n  function d3_svg_symbolType() {\n    return \"circle\";\n  }\n  function d3_svg_symbolCircle(size) {\n    var r = Math.sqrt(size / π);\n    return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n  }\n  var d3_svg_symbols = d3.map({\n    circle: d3_svg_symbolCircle,\n    cross: function(size) {\n      var r = Math.sqrt(size / 5) / 2;\n      return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n    },\n    diamond: function(size) {\n      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n      return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n    },\n    square: function(size) {\n      var r = Math.sqrt(size) / 2;\n      return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n    },\n    \"triangle-down\": function(size) {\n      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n      return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n    },\n    \"triangle-up\": function(size) {\n      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n      return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n    }\n  });\n  d3.svg.symbolTypes = d3_svg_symbols.keys();\n  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n  d3_selectionPrototype.transition = function(name) {\n    var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n      time: Date.now(),\n      ease: d3_ease_cubicInOut,\n      delay: 0,\n      duration: 250\n    };\n    for (var j = -1, m = this.length; ++j < m; ) {\n      subgroups.push(subgroup = []);\n      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n        if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n        subgroup.push(node);\n      }\n    }\n    return d3_transition(subgroups, ns, id);\n  };\n  d3_selectionPrototype.interrupt = function(name) {\n    return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));\n  };\n  var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n  function d3_selection_interruptNS(ns) {\n    return function() {\n      var lock, activeId, active;\n      if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n        active.timer.c = null;\n        active.timer.t = NaN;\n        if (--lock.count) delete lock[activeId]; else delete this[ns];\n        lock.active += .5;\n        active.event && active.event.interrupt.call(this, this.__data__, active.index);\n      }\n    };\n  }\n  function d3_transition(groups, ns, id) {\n    d3_subclass(groups, d3_transitionPrototype);\n    groups.namespace = ns;\n    groups.id = id;\n    return groups;\n  }\n  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n  d3_transitionPrototype.call = d3_selectionPrototype.call;\n  d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n  d3_transitionPrototype.node = d3_selectionPrototype.node;\n  d3_transitionPrototype.size = d3_selectionPrototype.size;\n  d3.transition = function(selection, name) {\n    return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);\n  };\n  d3.transition.prototype = d3_transitionPrototype;\n  d3_transitionPrototype.select = function(selector) {\n    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n    selector = d3_selection_selector(selector);\n    for (var j = -1, m = this.length; ++j < m; ) {\n      subgroups.push(subgroup = []);\n      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n          if (\"__data__\" in node) subnode.__data__ = node.__data__;\n          d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n          subgroup.push(subnode);\n        } else {\n          subgroup.push(null);\n        }\n      }\n    }\n    return d3_transition(subgroups, ns, id);\n  };\n  d3_transitionPrototype.selectAll = function(selector) {\n    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n    selector = d3_selection_selectorAll(selector);\n    for (var j = -1, m = this.length; ++j < m; ) {\n      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n        if (node = group[i]) {\n          transition = node[ns][id];\n          subnodes = selector.call(node, node.__data__, i, j);\n          subgroups.push(subgroup = []);\n          for (var k = -1, o = subnodes.length; ++k < o; ) {\n            if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n            subgroup.push(subnode);\n          }\n        }\n      }\n    }\n    return d3_transition(subgroups, ns, id);\n  };\n  d3_transitionPrototype.filter = function(filter) {\n    var subgroups = [], subgroup, group, node;\n    if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n    for (var j = 0, m = this.length; j < m; j++) {\n      subgroups.push(subgroup = []);\n      for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n          subgroup.push(node);\n        }\n      }\n    }\n    return d3_transition(subgroups, this.namespace, this.id);\n  };\n  d3_transitionPrototype.tween = function(name, tween) {\n    var id = this.id, ns = this.namespace;\n    if (arguments.length < 2) return this.node()[ns][id].tween.get(name);\n    return d3_selection_each(this, tween == null ? function(node) {\n      node[ns][id].tween.remove(name);\n    } : function(node) {\n      node[ns][id].tween.set(name, tween);\n    });\n  };\n  function d3_transition_tween(groups, name, value, tween) {\n    var id = groups.id, ns = groups.namespace;\n    return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n      node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n    } : (value = tween(value), function(node) {\n      node[ns][id].tween.set(name, value);\n    }));\n  }\n  d3_transitionPrototype.attr = function(nameNS, value) {\n    if (arguments.length < 2) {\n      for (value in nameNS) this.attr(value, nameNS[value]);\n      return this;\n    }\n    var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n    function attrNull() {\n      this.removeAttribute(name);\n    }\n    function attrNullNS() {\n      this.removeAttributeNS(name.space, name.local);\n    }\n    function attrTween(b) {\n      return b == null ? attrNull : (b += \"\", function() {\n        var a = this.getAttribute(name), i;\n        return a !== b && (i = interpolate(a, b), function(t) {\n          this.setAttribute(name, i(t));\n        });\n      });\n    }\n    function attrTweenNS(b) {\n      return b == null ? attrNullNS : (b += \"\", function() {\n        var a = this.getAttributeNS(name.space, name.local), i;\n        return a !== b && (i = interpolate(a, b), function(t) {\n          this.setAttributeNS(name.space, name.local, i(t));\n        });\n      });\n    }\n    return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n  };\n  d3_transitionPrototype.attrTween = function(nameNS, tween) {\n    var name = d3.ns.qualify(nameNS);\n    function attrTween(d, i) {\n      var f = tween.call(this, d, i, this.getAttribute(name));\n      return f && function(t) {\n        this.setAttribute(name, f(t));\n      };\n    }\n    function attrTweenNS(d, i) {\n      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n      return f && function(t) {\n        this.setAttributeNS(name.space, name.local, f(t));\n      };\n    }\n    return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n  };\n  d3_transitionPrototype.style = function(name, value, priority) {\n    var n = arguments.length;\n    if (n < 3) {\n      if (typeof name !== \"string\") {\n        if (n < 2) value = \"\";\n        for (priority in name) this.style(priority, name[priority], value);\n        return this;\n      }\n      priority = \"\";\n    }\n    function styleNull() {\n      this.style.removeProperty(name);\n    }\n    function styleString(b) {\n      return b == null ? styleNull : (b += \"\", function() {\n        var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;\n        return a !== b && (i = d3_interpolate(a, b), function(t) {\n          this.style.setProperty(name, i(t), priority);\n        });\n      });\n    }\n    return d3_transition_tween(this, \"style.\" + name, value, styleString);\n  };\n  d3_transitionPrototype.styleTween = function(name, tween, priority) {\n    if (arguments.length < 3) priority = \"\";\n    function styleTween(d, i) {\n      var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));\n      return f && function(t) {\n        this.style.setProperty(name, f(t), priority);\n      };\n    }\n    return this.tween(\"style.\" + name, styleTween);\n  };\n  d3_transitionPrototype.text = function(value) {\n    return d3_transition_tween(this, \"text\", value, d3_transition_text);\n  };\n  function d3_transition_text(b) {\n    if (b == null) b = \"\";\n    return function() {\n      this.textContent = b;\n    };\n  }\n  d3_transitionPrototype.remove = function() {\n    var ns = this.namespace;\n    return this.each(\"end.transition\", function() {\n      var p;\n      if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n    });\n  };\n  d3_transitionPrototype.ease = function(value) {\n    var id = this.id, ns = this.namespace;\n    if (arguments.length < 1) return this.node()[ns][id].ease;\n    if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n    return d3_selection_each(this, function(node) {\n      node[ns][id].ease = value;\n    });\n  };\n  d3_transitionPrototype.delay = function(value) {\n    var id = this.id, ns = this.namespace;\n    if (arguments.length < 1) return this.node()[ns][id].delay;\n    return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n      node[ns][id].delay = +value.call(node, node.__data__, i, j);\n    } : (value = +value, function(node) {\n      node[ns][id].delay = value;\n    }));\n  };\n  d3_transitionPrototype.duration = function(value) {\n    var id = this.id, ns = this.namespace;\n    if (arguments.length < 1) return this.node()[ns][id].duration;\n    return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n      node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n    } : (value = Math.max(1, value), function(node) {\n      node[ns][id].duration = value;\n    }));\n  };\n  d3_transitionPrototype.each = function(type, listener) {\n    var id = this.id, ns = this.namespace;\n    if (arguments.length < 2) {\n      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n      try {\n        d3_transitionInheritId = id;\n        d3_selection_each(this, function(node, i, j) {\n          d3_transitionInherit = node[ns][id];\n          type.call(node, node.__data__, i, j);\n        });\n      } finally {\n        d3_transitionInherit = inherit;\n        d3_transitionInheritId = inheritId;\n      }\n    } else {\n      d3_selection_each(this, function(node) {\n        var transition = node[ns][id];\n        (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n      });\n    }\n    return this;\n  };\n  d3_transitionPrototype.transition = function() {\n    var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n    for (var j = 0, m = this.length; j < m; j++) {\n      subgroups.push(subgroup = []);\n      for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n        if (node = group[i]) {\n          transition = node[ns][id0];\n          d3_transitionNode(node, i, ns, id1, {\n            time: transition.time,\n            ease: transition.ease,\n            delay: transition.delay + transition.duration,\n            duration: transition.duration\n          });\n        }\n        subgroup.push(node);\n      }\n    }\n    return d3_transition(subgroups, ns, id1);\n  };\n  function d3_transitionNamespace(name) {\n    return name == null ? \"__transition__\" : \"__transition_\" + name + \"__\";\n  }\n  function d3_transitionNode(node, i, ns, id, inherit) {\n    var lock = node[ns] || (node[ns] = {\n      active: 0,\n      count: 0\n    }), transition = lock[id], time, timer, duration, ease, tweens;\n    function schedule(elapsed) {\n      var delay = transition.delay;\n      timer.t = delay + time;\n      if (delay <= elapsed) return start(elapsed - delay);\n      timer.c = start;\n    }\n    function start(elapsed) {\n      var activeId = lock.active, active = lock[activeId];\n      if (active) {\n        active.timer.c = null;\n        active.timer.t = NaN;\n        --lock.count;\n        delete lock[activeId];\n        active.event && active.event.interrupt.call(node, node.__data__, active.index);\n      }\n      for (var cancelId in lock) {\n        if (+cancelId < id) {\n          var cancel = lock[cancelId];\n          cancel.timer.c = null;\n          cancel.timer.t = NaN;\n          --lock.count;\n          delete lock[cancelId];\n        }\n      }\n      timer.c = tick;\n      d3_timer(function() {\n        if (timer.c && tick(elapsed || 1)) {\n          timer.c = null;\n          timer.t = NaN;\n        }\n        return 1;\n      }, 0, time);\n      lock.active = id;\n      transition.event && transition.event.start.call(node, node.__data__, i);\n      tweens = [];\n      transition.tween.forEach(function(key, value) {\n        if (value = value.call(node, node.__data__, i)) {\n          tweens.push(value);\n        }\n      });\n      ease = transition.ease;\n      duration = transition.duration;\n    }\n    function tick(elapsed) {\n      var t = elapsed / duration, e = ease(t), n = tweens.length;\n      while (n > 0) {\n        tweens[--n].call(node, e);\n      }\n      if (t >= 1) {\n        transition.event && transition.event.end.call(node, node.__data__, i);\n        if (--lock.count) delete lock[id]; else delete node[ns];\n        return 1;\n      }\n    }\n    if (!transition) {\n      time = inherit.time;\n      timer = d3_timer(schedule, 0, time);\n      transition = lock[id] = {\n        tween: new d3_Map(),\n        time: time,\n        timer: timer,\n        delay: inherit.delay,\n        duration: inherit.duration,\n        ease: inherit.ease,\n        index: i\n      };\n      inherit = null;\n      ++lock.count;\n    }\n  }\n  d3.svg.axis = function() {\n    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n    function axis(g) {\n      g.each(function() {\n        var g = d3.select(this);\n        var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n        var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n        var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n        d3.transition(path));\n        tickEnter.append(\"line\");\n        tickEnter.append(\"text\");\n        var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n        if (orient === \"bottom\" || orient === \"top\") {\n          tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n          text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n          pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n        } else {\n          tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n          text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n          pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n        }\n        lineEnter.attr(y2, sign * innerTickSize);\n        textEnter.attr(y1, sign * tickSpacing);\n        lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n        textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n        if (scale1.rangeBand) {\n          var x = scale1, dx = x.rangeBand() / 2;\n          scale0 = scale1 = function(d) {\n            return x(d) + dx;\n          };\n        } else if (scale0.rangeBand) {\n          scale0 = scale1;\n        } else {\n          tickExit.call(tickTransform, scale1, scale0);\n        }\n        tickEnter.call(tickTransform, scale0, scale1);\n        tickUpdate.call(tickTransform, scale1, scale1);\n      });\n    }\n    axis.scale = function(x) {\n      if (!arguments.length) return scale;\n      scale = x;\n      return axis;\n    };\n    axis.orient = function(x) {\n      if (!arguments.length) return orient;\n      orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n      return axis;\n    };\n    axis.ticks = function() {\n      if (!arguments.length) return tickArguments_;\n      tickArguments_ = d3_array(arguments);\n      return axis;\n    };\n    axis.tickValues = function(x) {\n      if (!arguments.length) return tickValues;\n      tickValues = x;\n      return axis;\n    };\n    axis.tickFormat = function(x) {\n      if (!arguments.length) return tickFormat_;\n      tickFormat_ = x;\n      return axis;\n    };\n    axis.tickSize = function(x) {\n      var n = arguments.length;\n      if (!n) return innerTickSize;\n      innerTickSize = +x;\n      outerTickSize = +arguments[n - 1];\n      return axis;\n    };\n    axis.innerTickSize = function(x) {\n      if (!arguments.length) return innerTickSize;\n      innerTickSize = +x;\n      return axis;\n    };\n    axis.outerTickSize = function(x) {\n      if (!arguments.length) return outerTickSize;\n      outerTickSize = +x;\n      return axis;\n    };\n    axis.tickPadding = function(x) {\n      if (!arguments.length) return tickPadding;\n      tickPadding = +x;\n      return axis;\n    };\n    axis.tickSubdivide = function() {\n      return arguments.length && axis;\n    };\n    return axis;\n  };\n  var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n    top: 1,\n    right: 1,\n    bottom: 1,\n    left: 1\n  };\n  function d3_svg_axisX(selection, x0, x1) {\n    selection.attr(\"transform\", function(d) {\n      var v0 = x0(d);\n      return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n    });\n  }\n  function d3_svg_axisY(selection, y0, y1) {\n    selection.attr(\"transform\", function(d) {\n      var v0 = y0(d);\n      return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n    });\n  }\n  d3.svg.brush = function() {\n    var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n    function brush(g) {\n      g.each(function() {\n        var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n        var background = g.selectAll(\".background\").data([ 0 ]);\n        background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n        g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n        var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n        resize.exit().remove();\n        resize.enter().append(\"g\").attr(\"class\", function(d) {\n          return \"resize \" + d;\n        }).style(\"cursor\", function(d) {\n          return d3_svg_brushCursor[d];\n        }).append(\"rect\").attr(\"x\", function(d) {\n          return /[ew]$/.test(d) ? -3 : null;\n        }).attr(\"y\", function(d) {\n          return /^[ns]/.test(d) ? -3 : null;\n        }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n        resize.style(\"display\", brush.empty() ? \"none\" : null);\n        var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n        if (x) {\n          range = d3_scaleRange(x);\n          backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n          redrawX(gUpdate);\n        }\n        if (y) {\n          range = d3_scaleRange(y);\n          backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n          redrawY(gUpdate);\n        }\n        redraw(gUpdate);\n      });\n    }\n    brush.event = function(g) {\n      g.each(function() {\n        var event_ = event.of(this, arguments), extent1 = {\n          x: xExtent,\n          y: yExtent,\n          i: xExtentDomain,\n          j: yExtentDomain\n        }, extent0 = this.__chart__ || extent1;\n        this.__chart__ = extent1;\n        if (d3_transitionInheritId) {\n          d3.select(this).transition().each(\"start.brush\", function() {\n            xExtentDomain = extent0.i;\n            yExtentDomain = extent0.j;\n            xExtent = extent0.x;\n            yExtent = extent0.y;\n            event_({\n              type: \"brushstart\"\n            });\n          }).tween(\"brush:brush\", function() {\n            var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n            xExtentDomain = yExtentDomain = null;\n            return function(t) {\n              xExtent = extent1.x = xi(t);\n              yExtent = extent1.y = yi(t);\n              event_({\n                type: \"brush\",\n                mode: \"resize\"\n              });\n            };\n          }).each(\"end.brush\", function() {\n            xExtentDomain = extent1.i;\n            yExtentDomain = extent1.j;\n            event_({\n              type: \"brush\",\n              mode: \"resize\"\n            });\n            event_({\n              type: \"brushend\"\n            });\n          });\n        } else {\n          event_({\n            type: \"brushstart\"\n          });\n          event_({\n            type: \"brush\",\n            mode: \"resize\"\n          });\n          event_({\n            type: \"brushend\"\n          });\n        }\n      });\n    };\n    function redraw(g) {\n      g.selectAll(\".resize\").attr(\"transform\", function(d) {\n        return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n      });\n    }\n    function redrawX(g) {\n      g.select(\".extent\").attr(\"x\", xExtent[0]);\n      g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n    }\n    function redrawY(g) {\n      g.select(\".extent\").attr(\"y\", yExtent[0]);\n      g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n    }\n    function brushstart() {\n      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n      var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n      if (d3.event.changedTouches) {\n        w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n      } else {\n        w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n      }\n      g.interrupt().selectAll(\"*\").interrupt();\n      if (dragging) {\n        origin[0] = xExtent[0] - origin[0];\n        origin[1] = yExtent[0] - origin[1];\n      } else if (resizing) {\n        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n        offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n        origin[0] = xExtent[ex];\n        origin[1] = yExtent[ey];\n      } else if (d3.event.altKey) center = origin.slice();\n      g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n      d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n      event_({\n        type: \"brushstart\"\n      });\n      brushmove();\n      function keydown() {\n        if (d3.event.keyCode == 32) {\n          if (!dragging) {\n            center = null;\n            origin[0] -= xExtent[1];\n            origin[1] -= yExtent[1];\n            dragging = 2;\n          }\n          d3_eventPreventDefault();\n        }\n      }\n      function keyup() {\n        if (d3.event.keyCode == 32 && dragging == 2) {\n          origin[0] += xExtent[1];\n          origin[1] += yExtent[1];\n          dragging = 0;\n          d3_eventPreventDefault();\n        }\n      }\n      function brushmove() {\n        var point = d3.mouse(target), moved = false;\n        if (offset) {\n          point[0] += offset[0];\n          point[1] += offset[1];\n        }\n        if (!dragging) {\n          if (d3.event.altKey) {\n            if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n            origin[0] = xExtent[+(point[0] < center[0])];\n            origin[1] = yExtent[+(point[1] < center[1])];\n          } else center = null;\n        }\n        if (resizingX && move1(point, x, 0)) {\n          redrawX(g);\n          moved = true;\n        }\n        if (resizingY && move1(point, y, 1)) {\n          redrawY(g);\n          moved = true;\n        }\n        if (moved) {\n          redraw(g);\n          event_({\n            type: \"brush\",\n            mode: dragging ? \"move\" : \"resize\"\n          });\n        }\n      }\n      function move1(point, scale, i) {\n        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n        if (dragging) {\n          r0 -= position;\n          r1 -= size + position;\n        }\n        min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n        if (dragging) {\n          max = (min += position) + size;\n        } else {\n          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n          if (position < min) {\n            max = min;\n            min = position;\n          } else {\n            max = position;\n          }\n        }\n        if (extent[0] != min || extent[1] != max) {\n          if (i) yExtentDomain = null; else xExtentDomain = null;\n          extent[0] = min;\n          extent[1] = max;\n          return true;\n        }\n      }\n      function brushend() {\n        brushmove();\n        g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n        d3.select(\"body\").style(\"cursor\", null);\n        w.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        dragRestore();\n        event_({\n          type: \"brushend\"\n        });\n      }\n    }\n    brush.x = function(z) {\n      if (!arguments.length) return x;\n      x = z;\n      resizes = d3_svg_brushResizes[!x << 1 | !y];\n      return brush;\n    };\n    brush.y = function(z) {\n      if (!arguments.length) return y;\n      y = z;\n      resizes = d3_svg_brushResizes[!x << 1 | !y];\n      return brush;\n    };\n    brush.clamp = function(z) {\n      if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n      if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n      return brush;\n    };\n    brush.extent = function(z) {\n      var x0, x1, y0, y1, t;\n      if (!arguments.length) {\n        if (x) {\n          if (xExtentDomain) {\n            x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n          } else {\n            x0 = xExtent[0], x1 = xExtent[1];\n            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n            if (x1 < x0) t = x0, x0 = x1, x1 = t;\n          }\n        }\n        if (y) {\n          if (yExtentDomain) {\n            y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n          } else {\n            y0 = yExtent[0], y1 = yExtent[1];\n            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n            if (y1 < y0) t = y0, y0 = y1, y1 = t;\n          }\n        }\n        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n      }\n      if (x) {\n        x0 = z[0], x1 = z[1];\n        if (y) x0 = x0[0], x1 = x1[0];\n        xExtentDomain = [ x0, x1 ];\n        if (x.invert) x0 = x(x0), x1 = x(x1);\n        if (x1 < x0) t = x0, x0 = x1, x1 = t;\n        if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n      }\n      if (y) {\n        y0 = z[0], y1 = z[1];\n        if (x) y0 = y0[1], y1 = y1[1];\n        yExtentDomain = [ y0, y1 ];\n        if (y.invert) y0 = y(y0), y1 = y(y1);\n        if (y1 < y0) t = y0, y0 = y1, y1 = t;\n        if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n      }\n      return brush;\n    };\n    brush.clear = function() {\n      if (!brush.empty()) {\n        xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n        xExtentDomain = yExtentDomain = null;\n      }\n      return brush;\n    };\n    brush.empty = function() {\n      return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n    };\n    return d3.rebind(brush, event, \"on\");\n  };\n  var d3_svg_brushCursor = {\n    n: \"ns-resize\",\n    e: \"ew-resize\",\n    s: \"ns-resize\",\n    w: \"ew-resize\",\n    nw: \"nwse-resize\",\n    ne: \"nesw-resize\",\n    se: \"nwse-resize\",\n    sw: \"nesw-resize\"\n  };\n  var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n  var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n  var d3_time_formatUtc = d3_time_format.utc;\n  var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n  d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n  function d3_time_formatIsoNative(date) {\n    return date.toISOString();\n  }\n  d3_time_formatIsoNative.parse = function(string) {\n    var date = new Date(string);\n    return isNaN(date) ? null : date;\n  };\n  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n  d3_time.second = d3_time_interval(function(date) {\n    return new d3_date(Math.floor(date / 1e3) * 1e3);\n  }, function(date, offset) {\n    date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n  }, function(date) {\n    return date.getSeconds();\n  });\n  d3_time.seconds = d3_time.second.range;\n  d3_time.seconds.utc = d3_time.second.utc.range;\n  d3_time.minute = d3_time_interval(function(date) {\n    return new d3_date(Math.floor(date / 6e4) * 6e4);\n  }, function(date, offset) {\n    date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n  }, function(date) {\n    return date.getMinutes();\n  });\n  d3_time.minutes = d3_time.minute.range;\n  d3_time.minutes.utc = d3_time.minute.utc.range;\n  d3_time.hour = d3_time_interval(function(date) {\n    var timezone = date.getTimezoneOffset() / 60;\n    return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n  }, function(date, offset) {\n    date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n  }, function(date) {\n    return date.getHours();\n  });\n  d3_time.hours = d3_time.hour.range;\n  d3_time.hours.utc = d3_time.hour.utc.range;\n  d3_time.month = d3_time_interval(function(date) {\n    date = d3_time.day(date);\n    date.setDate(1);\n    return date;\n  }, function(date, offset) {\n    date.setMonth(date.getMonth() + offset);\n  }, function(date) {\n    return date.getMonth();\n  });\n  d3_time.months = d3_time.month.range;\n  d3_time.months.utc = d3_time.month.utc.range;\n  function d3_time_scale(linear, methods, format) {\n    function scale(x) {\n      return linear(x);\n    }\n    scale.invert = function(x) {\n      return d3_time_scaleDate(linear.invert(x));\n    };\n    scale.domain = function(x) {\n      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n      linear.domain(x);\n      return scale;\n    };\n    function tickMethod(extent, count) {\n      var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n      return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n        return d / 31536e6;\n      }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n    }\n    scale.nice = function(interval, skip) {\n      var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n      if (method) interval = method[0], skip = method[1];\n      function skipped(date) {\n        return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n      }\n      return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n        floor: function(date) {\n          while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n          return date;\n        },\n        ceil: function(date) {\n          while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n          return date;\n        }\n      } : interval));\n    };\n    scale.ticks = function(interval, skip) {\n      var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n        range: interval\n      }, skip ];\n      if (method) interval = method[0], skip = method[1];\n      return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n    };\n    scale.tickFormat = function() {\n      return format;\n    };\n    scale.copy = function() {\n      return d3_time_scale(linear.copy(), methods, format);\n    };\n    return d3_scale_linearRebind(scale, linear);\n  }\n  function d3_time_scaleDate(t) {\n    return new Date(t);\n  }\n  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n  var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n  var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n    return d.getMilliseconds();\n  } ], [ \":%S\", function(d) {\n    return d.getSeconds();\n  } ], [ \"%I:%M\", function(d) {\n    return d.getMinutes();\n  } ], [ \"%I %p\", function(d) {\n    return d.getHours();\n  } ], [ \"%a %d\", function(d) {\n    return d.getDay() && d.getDate() != 1;\n  } ], [ \"%b %d\", function(d) {\n    return d.getDate() != 1;\n  } ], [ \"%B\", function(d) {\n    return d.getMonth();\n  } ], [ \"%Y\", d3_true ] ]);\n  var d3_time_scaleMilliseconds = {\n    range: function(start, stop, step) {\n      return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n    },\n    floor: d3_identity,\n    ceil: d3_identity\n  };\n  d3_time_scaleLocalMethods.year = d3_time.year;\n  d3_time.scale = function() {\n    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n  };\n  var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n    return [ m[0].utc, m[1] ];\n  });\n  var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n    return d.getUTCMilliseconds();\n  } ], [ \":%S\", function(d) {\n    return d.getUTCSeconds();\n  } ], [ \"%I:%M\", function(d) {\n    return d.getUTCMinutes();\n  } ], [ \"%I %p\", function(d) {\n    return d.getUTCHours();\n  } ], [ \"%a %d\", function(d) {\n    return d.getUTCDay() && d.getUTCDate() != 1;\n  } ], [ \"%b %d\", function(d) {\n    return d.getUTCDate() != 1;\n  } ], [ \"%B\", function(d) {\n    return d.getUTCMonth();\n  } ], [ \"%Y\", d3_true ] ]);\n  d3_time_scaleUtcMethods.year = d3_time.year.utc;\n  d3_time.scale.utc = function() {\n    return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n  };\n  d3.text = d3_xhrType(function(request) {\n    return request.responseText;\n  });\n  d3.json = function(url, callback) {\n    return d3_xhr(url, \"application/json\", d3_json, callback);\n  };\n  function d3_json(request) {\n    return JSON.parse(request.responseText);\n  }\n  d3.html = function(url, callback) {\n    return d3_xhr(url, \"text/html\", d3_html, callback);\n  };\n  function d3_html(request) {\n    var range = d3_document.createRange();\n    range.selectNode(d3_document.body);\n    return range.createContextualFragment(request.responseText);\n  }\n  d3.xml = d3_xhrType(function(request) {\n    return request.responseXML;\n  });\n  if (typeof define === \"function\" && define.amd) this.d3 = d3, define(d3); else if (typeof module === \"object\" && module.exports) module.exports = d3; else this.d3 = d3;\n}();"],"sourceRoot":""}