torque/dist/torque.full.js
Daniel García Aubert be0d9d5063 Build dist files
2019-01-21 18:00:17 +01:00

2 lines
777 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.torque=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){var AnimatorStepsRange=function(start,end){if(start<0)throw new Error("start must be a positive number");if(start>=end)throw new Error("start must be smaller than end");this.start=start;this.end=end};AnimatorStepsRange.prototype={diff:function(){return this.end-this.start},isLast:function(step){return(step|0)===this.end}};module.exports=AnimatorStepsRange},{}],2:[function(require,module,exports){(function(global){var torque=require("./");var AnimatorStepsRange=require("./animator-steps-range");var requestAnimationFrame=global.requestAnimationFrame||global.mozRequestAnimationFrame||global.webkitRequestAnimationFrame||global.msRequestAnimationFrame||function(callback){return global.setTimeout(callback,1e3/60)};var cancelAnimationFrame=global.cancelAnimationFrame||global.mozCancelAnimationFrame||global.webkitCancelAnimationFrame||global.msCancelAnimationFrame||function(id){clearTimeout(id)};function Animator(callback,options){if(!options.steps){throw new Error("steps option missing")}this.options=options;this.running=false;this._tick=this._tick.bind(this);this._t0=+new Date;this.callback=callback;this._time=0;this.itemsReady=false;this.options=torque.extend({animationDelay:0,maxDelta:.2,loop:options.loop===undefined?true:options.loop},this.options);this.steps(options.steps)}Animator.prototype={start:function(){this.running=true;requestAnimationFrame(this._tick);this.options.onStart&&this.options.onStart();if(this.stepsRange().diff()===1){this.running=false}},isRunning:function(){return this.running},stop:function(){this.pause();this.time(this.stepsRange().start);this.options.onStop&&this.options.onStop()},time:function(_){if(!arguments.length)return this._time;this._time=_;var t=this.range(this.domain(this._time));this.callback(t)},toggle:function(){if(this.running){this.pause()}else{this.start()}},rescale:function(){this.domainInv=torque.math.linear(this.options.animationDelay,this.options.animationDelay+this.options.animationDuration);this.domain=this.domainInv.invert();this.range=torque.math.linear(0,this._defaultStepsRange.end);this.rangeInv=this.range.invert();this.time(this._time);this.running?this.start():this.pause();return this},duration:function(_){if(!arguments.length)return this.options.animationDuration;this.options.animationDuration=_;if(this.time()>_){this.time(0)}this.rescale();return this},steps:function(_){this.options.steps=_;this._defaultStepsRange=new AnimatorStepsRange(0,_);return this.rescale()},stepsRange:function(start,end){if(arguments.length===2){if(start<this._defaultStepsRange.start)throw new Error("start must be within default steps range");if(end>this._defaultStepsRange.end)throw new Error("end must be within default steps range");this._customStepsRange=new AnimatorStepsRange(start,end);this.options.onStepsRange&&this.options.onStepsRange();var step=this.step()|0;if(step<start||step>end){this.step(start)}}return this._customStepsRange||this._defaultStepsRange},removeCustomStepsRange:function(){this._customStepsRange=undefined;this.options.onStepsRange&&this.options.onStepsRange()},step:function(s){if(arguments.length===0)return this.range(this.domain(this._time));this._time=this.domainInv(this.rangeInv(s))},pause:function(){this.running=false;cancelAnimationFrame(this._tick);this.options.onPause&&this.options.onPause()},_tick:function(){var t1=+new Date;var delta=(t1-this._t0)*.001;delta=Math.min(this.options.maxDelta,delta);this._t0=t1;this._time+=delta;var stepsRange=this.stepsRange();if(stepsRange.isLast(this.step())){if(!this.options.loop){this.time(this.options.animationDuration);this.pause()}else{this.step(stepsRange.start)}}if(this.running){this.time(this._time);requestAnimationFrame(this._tick)}}};module.exports=Animator}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./":11,"./animator-steps-range":1}],3:[function(require,module,exports){var _torque_reference_latest={version:"1.0.0",style:{"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["src","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","darken","lighten"]}},layer:{"buffer-size":{"default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:"Extra tolerance around the Layer extent (in pixels) used to when querying and (potentially) clipping the layer data during rendering"},"-torque-clear-color":{css:"-torque-clear-color",type:"color","default-value":"rgba(255, 255, 255, 0)","default-meaning":"full clear",doc:"color used to clear canvas on each frame"},"-torque-frame-count":{css:"-torque-frame-count","default-value":"128",type:"number","default-meaning":"the data is broken into 128 time frames",doc:"Number of animation steps/frames used in the animation. If the data contains a fewere number of total frames, the lesser value will be used."},"-torque-resolution":{css:"-torque-resolution","default-value":"2",type:"number","default-meaning":"",doc:"Spatial resolution in pixels. A resolution of 1 means no spatial aggregation of the data. Any other resolution of N results in spatial aggregation into cells of NxN pixels. The value N must be power of 2"},"-torque-animation-duration":{css:"-torque-animation-duration","default-value":"30",type:"number","default-meaning":"the animation lasts 30 seconds",doc:"Animation duration in seconds"},"-torque-aggregation-function":{css:"-torque-aggregation-function","default-value":"count(cartodb_id)",type:"string","default-meaning":"the value for each cell is the count of points in that cell",doc:"A function used to calculate a value from the aggregate data for each cell. See -torque-resolution"},"-torque-time-attribute":{css:"-torque-time-attribute","default-value":"time",type:"string","default-meaning":"the data column in your table that is of a time based type",doc:"The table column that contains the time information used create the animation"},"-torque-data-aggregation":{css:"-torque-data-aggregation","default-value":"linear",type:["cumulative"],"default-meaning":"previous values are discarded",doc:"A linear animation will discard previous values while a cumulative animation will accumulate them until it restarts"}},symbolizers:{"*":{"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["src","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","darken","lighten"]},opacity:{css:"opacity",type:"float",doc:"An alpha value for the style (which means an alpha applied to all features in separate buffer and then composited back to main buffer)","default-value":1,"default-meaning":"no separate buffer will be used and no alpha will be applied to the style after rendering"}},trail:{steps:{css:"trail-steps",type:"float","default-value":1,"default-meaning":"no trail steps",doc:"How many steps of trails are going to be rendered"}},polygon:{fill:{css:"polygon-fill",type:"color","default-value":"rgba(128,128,128,1)","default-meaning":"gray and fully opaque (alpha = 1), same as rgb(128,128,128)",doc:"Fill color to assign to a polygon"},"fill-opacity":{css:"polygon-opacity",type:"float",doc:"The opacity of the polygon","default-value":1,"default-meaning":"opaque"}},line:{stroke:{css:"line-color","default-value":"rgba(0,0,0,1)",type:"color","default-meaning":"black and fully opaque (alpha = 1), same as rgb(0,0,0)",doc:"The color of a drawn line"},"stroke-width":{css:"line-width","default-value":1,type:"float",doc:"The width of a line in pixels"},"stroke-opacity":{css:"line-opacity","default-value":1,type:"float","default-meaning":"opaque",doc:"The opacity of a line"},"stroke-linejoin":{css:"line-join","default-value":"miter",type:["miter","round","bevel"],doc:"The behavior of lines when joining"},"stroke-linecap":{css:"line-cap","default-value":"butt",type:["butt","round","square"],doc:"The display of line endings"}},markers:{file:{css:"marker-file",doc:"An SVG file that this marker shows at each placement. If no file is given, the marker will show an ellipse.","default-value":"","default-meaning":"An ellipse or circle, if width equals height",type:"uri"},opacity:{css:"marker-opacity",doc:"The overall opacity of the marker, if set, overrides both the opacity of both the fill and stroke","default-value":1,"default-meaning":"The stroke-opacity and fill-opacity will be used",type:"float"},"fill-opacity":{css:"marker-fill-opacity",doc:"The fill opacity of the marker","default-value":1,"default-meaning":"opaque",type:"float"},stroke:{css:"marker-line-color",doc:"The color of the stroke around a marker shape.","default-value":"black",type:"color"},"stroke-width":{css:"marker-line-width",doc:"The width of the stroke around a marker shape, in pixels. This is positioned on the boundary, so high values can cover the area itself.",type:"float"},"stroke-opacity":{css:"marker-line-opacity","default-value":1,"default-meaning":"opaque",doc:"The opacity of a line",type:"float"},fill:{css:"marker-fill","default-value":"blue",doc:"The color of the area of the marker.",type:"color"},"marker-type":{css:"marker-type",type:["rectangle","ellipse"],"default-value":"ellipse",doc:"The default marker-type. If a SVG file is not given as the marker-file parameter, the renderer provides either an rectangle or an ellipse (a circle if height is equal to width)"},width:{css:"marker-width","default-value":10,doc:"The width of the marker, if using one of the default types.",type:"float"}},point:{file:{css:"point-file",type:"uri",required:false,"default-value":"none",doc:"Image file to represent a point"},opacity:{css:"point-opacity",type:"float","default-value":1,"default-meaning":"Fully opaque",doc:"A value from 0 to 1 to control the opacity of the point"}}},colors:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50],transparent:[0,0,0,0]}};module.exports={version:{latest:_torque_reference_latest,"1.0.0":_torque_reference_latest}}},{}],4:[function(require,module,exports){(function(global){var carto=global.carto||require("carto");function TorqueLayer(){}TorqueLayer.prototype={};TorqueLayer.optionsFromLayer=function(mapConfig){var opts={};if(!mapConfig)return opts;var attrs={"buffer-size":"buffer-size","-torque-frame-count":"steps","-torque-resolution":"resolution","-torque-animation-duration":"animationDuration","-torque-aggregation-function":"countby","-torque-time-attribute":"column","-torque-data-aggregation":"data_aggregation"};for(var i in attrs){var v=mapConfig.eval(i);if(v!==undefined){var a=attrs[i];opts[a]=v}}return opts};TorqueLayer.optionsFromCartoCSS=function(cartocss){var shader=(new carto.RendererJS).render(cartocss);var mapConfig=shader.findLayer({name:"Map"});return TorqueLayer.optionsFromLayer(mapConfig)};module.exports.TorqueLayer=TorqueLayer}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{carto:41}],5:[function(require,module,exports){(function(global){var Event={};Event.on=function(evt,callback){var cb=this._evt_callbacks=this._evt_callbacks||{};var l=cb[evt]||(cb[evt]=[]);l.push(callback);return this};Event.trigger=function(evt){var c=this._evt_callbacks&&this._evt_callbacks[evt];for(var i=0;c&&i<c.length;++i){c[i].apply(this,Array.prototype.slice.call(arguments,1))}return this};Event.fire=Event.trigger;Event.off=function(evt,callback){var c=this._evt_callbacks&&this._evt_callbacks[evt];if(c&&!callback){delete this._evt_callbacks[evt];return this}var remove=[];for(var i=0;c&&i<c.length;++i){if(c[i]===callback)remove.push(i)}while((i=remove.pop())!==undefined)c.splice(i,1);return this};Event.callbacks=function(evt){return this._evt_callbacks&&this._evt_callbacks[evt]||[]};function extend(){var objs=arguments;var a=objs[0];for(var i=1;i<objs.length;++i){var b=objs[i];for(var k in b){a[k]=b[k]}}return a}function clone(a){return extend({},a)}function isFunction(f){return typeof f=="function"||false}function isArray(value){return value&&typeof value=="object"&&Object.prototype.toString.call(value)=="[object Array]"}var types={Uint8Array:typeof global["Uint8Array"]!=="undefined"?global.Uint8Array:Array,Uint8ClampedArray:typeof global["Uint8ClampedArray"]!=="undefined"?global.Uint8ClampedArray:Array,Uint32Array:typeof global["Uint32Array"]!=="undefined"?global.Uint32Array:Array,Int16Array:typeof global["Int16Array"]!=="undefined"?global.Int16Array:Array,Int32Array:typeof global["Int32Array"]!=="undefined"?global.Int32Array:Array};function isBrowserSupported(){return!!document.createElement("canvas")}function userAgent(){return typeof navigator!=="undefined"?navigator.userAgent:""}var flags={sprites_to_images:userAgent().indexOf("Safari")===-1&&userAgent().indexOf("Firefox")===-1};module.exports={Event:Event,extend:extend,clone:clone,isFunction:isFunction,isArray:isArray,types:types,isBrowserSupported:isBrowserSupported,flags:flags}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],6:[function(require,module,exports){function CanvasLayer(opt_options){this.isAdded_=false;this.isAnimated_=false;this.paneName_=CanvasLayer.DEFAULT_PANE_NAME_;this.updateHandler_=null;this.resizeHandler_=null;this.topLeft_=null;this.centerListener_=null;this.resizeListener_=null;this.needsResize_=true;this.requestAnimationFrameId_=null;var canvas=document.createElement("canvas");canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;canvas.style.pointerEvents="none";this.canvas=canvas;function simpleBindShim(thisArg,func){return function(){func.apply(thisArg)}}this.repositionFunction_=simpleBindShim(this,this.repositionCanvas_);this.resizeFunction_=simpleBindShim(this,this.resize_);this.requestUpdateFunction_=simpleBindShim(this,this.update_);if(opt_options){this.setOptions(opt_options)}}CanvasLayer.prototype=new google.maps.OverlayView;CanvasLayer.DEFAULT_PANE_NAME_="overlayLayer";CanvasLayer.CSS_TRANSFORM_=function(){var div=document.createElement("div");var transformProps=["transform","WebkitTransform","MozTransform","OTransform","msTransform"];for(var i=0;i<transformProps.length;i++){var prop=transformProps[i];if(div.style[prop]!==undefined){return prop}}return transformProps[0]}();CanvasLayer.prototype.requestAnimFrame_=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){return window.setTimeout(callback,1e3/60)};CanvasLayer.prototype.cancelAnimFrame_=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(requestId){};CanvasLayer.prototype.setOptions=function(options){if(options.animate!==undefined){this.setAnimate(options.animate)}if(options.paneName!==undefined){this.setPane(options.paneName)}if(options.updateHandler!==undefined){this.setUpdateHandler(options.updateHandler)}if(options.resizeHandler!==undefined){this.setResizeHandler(options.resizeHandler)}if(options.readyHandler){this.readyHandler=options.readyHandler}};CanvasLayer.prototype.setAnimate=function(animate){this.isAnimated_=!!animate;if(this.isAnimated_){this.scheduleUpdate()}};CanvasLayer.prototype.isAnimated=function(){return this.isAnimated_};CanvasLayer.prototype.setPaneName=function(paneName){this.paneName_=paneName;this.setPane_()};CanvasLayer.prototype.setOpacity=function(opacity){this.canvas.style.opacity=opacity};CanvasLayer.prototype.getOpacity=function(){return this.canvas.style.opacity};CanvasLayer.prototype.getPaneName=function(){return this.paneName_};CanvasLayer.prototype.setPane_=function(){if(!this.isAdded_){return}var panes=this.getPanes();if(!panes[this.paneName_]){throw new Error('"'+this.paneName_+'" is not a valid MapPane name.')}panes[this.paneName_].appendChild(this.canvas)};CanvasLayer.prototype.setResizeHandler=function(opt_resizeHandler){this.resizeHandler_=opt_resizeHandler};CanvasLayer.prototype.setUpdateHandler=function(opt_updateHandler){this.updateHandler_=opt_updateHandler};CanvasLayer.prototype.onAdd=function(){if(this.isAdded_){return}this.isAdded_=true;this.setPane_();this.resizeListener_=google.maps.event.addListener(this.getMap(),"resize",this.resizeFunction_);this.centerListener_=google.maps.event.addListener(this.getMap(),"center_changed",this.repositionFunction_);this.resize_();this.repositionCanvas_();this.readyHandler&&this.readyHandler()};CanvasLayer.prototype.onRemove=function(){if(!this.isAdded_){return}this.isAdded_=false;this.topLeft_=null;this.canvas.parentElement.removeChild(this.canvas);if(this.centerListener_){google.maps.event.removeListener(this.centerListener_);this.centerListener_=null}if(this.resizeListener_){google.maps.event.removeListener(this.resizeListener_);this.resizeListener_=null}if(this.requestAnimationFrameId_){this.cancelAnimFrame_.call(window,this.requestAnimationFrameId_);this.requestAnimationFrameId_=null}};CanvasLayer.prototype.resize_=function(){if(!this.isAdded_){return}var map=this.getMap();var width=map.getDiv().offsetWidth;var height=map.getDiv().offsetHeight;var oldWidth=this.canvas.width;var oldHeight=this.canvas.height;if(oldWidth!==width||oldHeight!==height){this.canvas.width=width;this.canvas.height=height;this.canvas.style.width=width+"px";this.canvas.style.height=height+"px";this.needsResize_=true;this.scheduleUpdate()}};CanvasLayer.prototype.draw=function(){this.repositionCanvas_()};CanvasLayer.prototype.repositionCanvas_=function(){var bounds=this.getMap().getBounds();this.topLeft_=new google.maps.LatLng(bounds.getNorthEast().lat(),bounds.getSouthWest().lng());var projection=this.getProjection();var divTopLeft=projection.fromLatLngToDivPixel(this.topLeft_);var mapSize=(1<<this.getMap().getZoom())*256;if(Math.abs(divTopLeft.x)>mapSize){divTopLeft.x-=mapSize}this.canvas.style[CanvasLayer.CSS_TRANSFORM_]="translate("+Math.round(divTopLeft.x)+"px,"+Math.round(divTopLeft.y)+"px)";this.scheduleUpdate()};CanvasLayer.prototype.update_=function(){this.requestAnimationFrameId_=null;if(!this.isAdded_){return}if(this.isAnimated_){this.scheduleUpdate()}if(this.needsResize_&&this.resizeHandler_){this.needsResize_=false;this.resizeHandler_()}if(this.updateHandler_){this.updateHandler_()}};CanvasLayer.prototype.getTopLeft=function(){return this.topLeft_};CanvasLayer.prototype.scheduleUpdate=function(){if(this.isAdded_&&!this.requestAnimationFrameId_){this.requestAnimationFrameId_=this.requestAnimFrame_.call(window,this.requestUpdateFunction_)}};module.exports=CanvasLayer},{}],7:[function(require,module,exports){function CanvasTileLayer(canvas_setup,render){this.tileSize=new google.maps.Size(256,256);this.maxZoom=19;this.name="Tile #s";this.alt="Canvas tile layer";this.tiles={};this.canvas_setup=canvas_setup;this.render=render;if(!render){this.render=canvas_setup}}CanvasTileLayer.prototype.create_tile_canvas=function(coord,zoom,ownerDocument){var canvas=ownerDocument.createElement("canvas");var hit_canvas=ownerDocument.createElement("canvas");canvas.style.border=hit_canvas.style.border="none";canvas.style.margin=hit_canvas.style.margin="0";canvas.style.padding=hit_canvas.style.padding="0";var ctx=canvas.getContext("2d");ctx.width=canvas.width=this.tileSize.width;ctx.height=canvas.height=this.tileSize.height;var hit_ctx=hit_canvas.getContext("2d");hit_canvas.width=hit_ctx.width=this.tileSize.width;hit_canvas.height=hit_ctx.height=this.tileSize.height;var tile_id=coord.x+"_"+coord.y+"_"+zoom;canvas.setAttribute("id",tile_id);hit_canvas.setAttribute("id",tile_id);if(tile_id in this.tiles)delete this.tiles[tile_id];this.tiles[tile_id]={canvas:canvas,ctx:ctx,hit_canvas:hit_canvas,hit_ctx:hit_ctx,coord:coord,zoom:zoom,primitives:null};if(this.canvas_setup)this.canvas_setup(this.tiles[tile_id],coord,zoom);return canvas};CanvasTileLayer.prototype.each=function(callback){for(var t in this.tiles){var tile=this.tiles[t];callback(tile)}};CanvasTileLayer.prototype.recreate=function(){for(var t in this.tiles){var tile=this.tiles[t];this.canvas_setup(tile,tile.coord,tile.zoom)}};CanvasTileLayer.prototype.redraw_tile=function(tile){this.render(tile,tile.coord,tile.zoom)};CanvasTileLayer.prototype.redraw=function(){for(var t in this.tiles){var tile=this.tiles[t];this.render(tile,tile.coord,tile.zoom)}};CanvasTileLayer.prototype.getTile=function(coord,zoom,ownerDocument){return this.create_tile_canvas(coord,zoom,ownerDocument)};CanvasTileLayer.prototype.releaseTile=function(tile){var id=tile.getAttribute("id");delete this.tiles[id]};module.exports=CanvasTileLayer},{}],8:[function(require,module,exports){function GMapsTileLoader(){}GMapsTileLoader.prototype={_initTileLoader:function(map,projection){this._map=map;this._projection=projection;this._tiles={};this._tilesLoading={};this._tilesToLoad=0;this._updateTiles=this._updateTiles.bind(this);this._listeners=[];this._listeners.push(google.maps.event.addListener(this._map,"dragend",this._updateTiles),google.maps.event.addListener(this._map,"zoom_changed",this._updateTiles));this.tileSize=256;this._updateTiles()},_removeTileLoader:function(){this._listeners.forEach(function(listener){google.maps.event.removeListener(listener)});this._removeTiles()},_removeTiles:function(){for(var key in this._tiles){this._removeTile(key)}},_reloadTiles:function(){this._removeTiles();this._updateTiles()},_updateTiles:function(){if(!this._map){return}var bounds=this._map.getBounds();var zoom=this._map.getZoom();var tileSize=this.tileSize;var mzoom=1<<zoom;var topLeft=new google.maps.LatLng(bounds.getNorthEast().lat(),bounds.getSouthWest().lng());var bottomRigth=new google.maps.LatLng(bounds.getSouthWest().lat(),bounds.getNorthEast().lng());this._projection=this._map.getProjection();var divTopLeft=this._projection.fromLatLngToPoint(topLeft);var divBottomRight=this._projection.fromLatLngToPoint(bottomRigth);var nwTilePoint=new google.maps.Point(Math.floor(divTopLeft.x*mzoom/tileSize),Math.floor(divTopLeft.y*mzoom/tileSize)),seTilePoint=new google.maps.Point(Math.floor(divBottomRight.x*mzoom/tileSize),Math.floor(divBottomRight.y*mzoom/tileSize));this._addTilesFromCenterOut(nwTilePoint,seTilePoint);this._removeOtherTiles(nwTilePoint,seTilePoint)},_removeOtherTiles:function(nwTilePoint,seTilePoint){var kArr,x,y,key;var zoom=this._map.getZoom();for(key in this._tiles){if(this._tiles.hasOwnProperty(key)){kArr=key.split(":");x=parseInt(kArr[0],10);y=parseInt(kArr[1],10);z=parseInt(kArr[2],10);if(z!==zoom||x<nwTilePoint.x||x>seTilePoint.x||y<nwTilePoint.y||y>seTilePoint.y){this._removeTile(key)}}}},_removeTile:function(key){this.onTileRemoved&&this.onTileRemoved(this._tiles[key]);delete this._tiles[key];delete this._tilesLoading[key]},_tileKey:function(tilePoint){return tilePoint.x+":"+tilePoint.y+":"+tilePoint.zoom},_tileShouldBeLoaded:function(tilePoint){var k=this._tileKey(tilePoint);return!(k in this._tiles)&&!(k in this._tilesLoading)},_tileLoaded:function(tilePoint,tileData){this._tilesToLoad--;var k=tilePoint.x+":"+tilePoint.y+":"+tilePoint.zoom;this._tiles[k]=tileData;delete this._tilesLoading[k];if(this._tilesToLoad===0){this.onTilesLoaded&&this.onTilesLoaded()}},getTilePos:function(tilePoint){var limit=1<<this._map.getZoom();tilePoint={x:(tilePoint.x%limit+limit)%limit,y:tilePoint.y};tilePoint=new google.maps.Point(tilePoint.x*this.tileSize,tilePoint.y*this.tileSize);var bounds=this._map.getBounds();var topLeft=new google.maps.LatLng(bounds.getNorthEast().lat(),bounds.getSouthWest().lng());var divTopLeft=this._map.getProjection().fromLatLngToPoint(topLeft);zoom=1<<this._map.getZoom();divTopLeft.x=divTopLeft.x*zoom;divTopLeft.y=divTopLeft.y*zoom;return new google.maps.Point(tilePoint.x-divTopLeft.x,tilePoint.y-divTopLeft.y)},_addTilesFromCenterOut:function(nwTilePoint,seTilePoint){var queue=[],center=new google.maps.Point((nwTilePoint.x+seTilePoint.x)*.5,(nwTilePoint.y+seTilePoint.y)*.5),zoom=this._map.getZoom();var j,i,point;for(j=nwTilePoint.y;j<=seTilePoint.y;j++){for(i=nwTilePoint.x;i<=seTilePoint.x;i++){point=new google.maps.Point(i,j);point.zoom=zoom;if(this._tileShouldBeLoaded(point)){queue.push(point)}}}var tilesToLoad=queue.length;if(tilesToLoad===0){return}function distanceToCenterSq(point){var dx=point.x-center.x;var dy=point.y-center.y;return dx*dx+dy*dy}queue.sort(function(a,b){return distanceToCenterSq(a)-distanceToCenterSq(b)});this._tilesToLoad+=tilesToLoad;for(i=0;i<tilesToLoad;i++){var t=queue[i];var k=this._tileKey(t);this._tilesLoading[k]=t;if(this.onTileAdded){this.onTileAdded(t)}}this.onTilesLoading&&this.onTilesLoading()}};module.exports=GMapsTileLoader},{}],9:[function(require,module,exports){var gmaps={};if(typeof google!=="undefined"&&typeof google.maps!=="undefined"){gmaps=require("./torque");gmaps.GMapsTileLoader=require("./gmaps_tileloader_mixin")}module.exports=gmaps},{"./gmaps_tileloader_mixin":8,"./torque":10}],10:[function(require,module,exports){(function(global){var carto=global.carto||require("carto");var torque=require("../");var CanvasLayer=require("./CanvasLayer");var CanvasTileLayer=require("./canvas_tile_layer");var GMapsTileLoader=require("./gmaps_tileloader_mixin");function GMapsTorqueLayer(options){var self=this;if(!torque.isBrowserSupported()){throw new Error("browser is not supported by torque")}this.keys=[0];Object.defineProperty(this,"key",{get:function(){return this.getKey()}});this.shader=null;this.ready=false;this.options=torque.extend({},options);this.options=torque.extend({provider:"windshaft",renderer:"point",resolution:2,steps:100,visible:true},this.options);if(options.cartocss){torque.extend(this.options,torque.common.TorqueLayer.optionsFromCartoCSS(options.cartocss))}if(options.tileJSON)this.options.provider="tileJSON";this.hidden=!this.options.visible;this.showLimitErrors=options.showLimitErrors;this.animator=new torque.Animator(function(time){var k=time|0;if(self.getKey()!==k){self.setKey(k)}},torque.extend(torque.clone(this.options),{onPause:function(){self.fire("pause")},onStop:function(){self.fire("stop")},onStart:function(){self.fire("play")},onStepsRange:function(){self.fire("change:stepsRange",self.animator.stepsRange())}}));this.play=this.animator.start.bind(this.animator);this.stop=this.animator.stop.bind(this.animator);this.pause=this.animator.pause.bind(this.animator);this.toggle=this.animator.toggle.bind(this.animator);this.setDuration=this.animator.duration.bind(this.animator);this.isRunning=this.animator.isRunning.bind(this.animator);CanvasLayer.call(this,{animate:false,updateHandler:this.render,readyHandler:this.initialize})}GMapsTorqueLayer.prototype=torque.extend({},CanvasLayer.prototype,GMapsTileLoader.prototype,torque.Event,{providers:{sql_api:torque.providers.json,url_template:torque.providers.JsonArray,windshaft:torque.providers.windshaft,tileJSON:torque.providers.tileJSON},renderers:{point:torque.renderer.Point,pixel:torque.renderer.Rectangle},initialize:function(){var self=this;this.onTileAdded=this.onTileAdded.bind(this);this.options.ready=function(){self.fire("change:bounds",{bounds:self.provider.getBounds()});self.animator.steps(self.provider.getSteps());self.animator.rescale();self.fire("change:steps",{steps:self.provider.getSteps()});self.setKeys(self.getKeys())};this.provider=new this.providers[this.options.provider](this.options);this.renderer=new this.renderers[this.options.renderer](this.getCanvas(),this.options);this.renderer.options.errorCallback=this.options.errorCallback;this._cacheListener=google.maps.event.addListener(this.map,"zoom_changed",function(){self.renderer&&self.renderer.clearSpriteCache()});this._initTileLoader(this.map,this.getProjection());if(this.shader){this.renderer.setShader(this.shader)}},hide:function(){if(this.hidden)return this;this.pause();this.clear();this.hidden=true;return this},show:function(){if(!this.hidden)return this;this.hidden=false;this.play();if(this.options.steps===1){this.redraw()}return this},setSQL:function(sql){if(this.provider.options.named_map)throw new Error("SQL queries on named maps are read-only");if(!this.provider||!this.provider.setSQL){throw new Error("this provider does not support SQL")}this.provider.setSQL(sql);this._reloadTiles();return this},setBlendMode:function(_){this.renderer&&this.renderer.setBlendMode(_);this.redraw()},setSteps:function(steps){this.provider&&this.provider.setSteps(steps);this.animator&&this.animator.steps(steps);this._reloadTiles()},setColumn:function(column,isTime){this.provider&&this.provider.setColumn(column,isTime);this._reloadTiles()},getTimeBounds:function(){return this.provider&&this.provider.getKeySpan()},getCanvas:function(){return this.canvas},onTileAdded:function(t){var self=this;var callback=function(tileData,error){if(t.zoom!==self.map.getZoom())return;self._tileLoaded(t,tileData);if(tileData){self.redraw()}self.fire("tileLoaded");if(error){self.fire("tileError",error)}};this.provider.getTileData(t,t.zoom,callback)},clear:function(){var canvas=this.canvas;canvas.width=canvas.width},render:function(){if(this.hidden)return;var t,tile,pos;var canvas=this.canvas;this.renderer.clearCanvas();var ctx=canvas.getContext("2d");for(t in this._tiles){tile=this._tiles[t];if(tile){pos=this.getTilePos(tile.coord);ctx.setTransform(1,0,0,1,pos.x,pos.y);this.renderer.renderTile(tile,this.keys)}}this.renderer.applyFilters()},getActivePointsBBox:function(step){var positions=[];var tileMax=this.options.resolution*(256/this.options.resolution-1);for(var t in this._tiles){var tile=this._tiles[t];positions=positions.concat(this.renderer.getActivePointsBBox(tile,step))}return positions},setKey:function(key){this.setKeys([key])},getKeys:function(){return this.keys},setKeys:function(keys){this.keys=keys;this.animator.step(this.getKey());this.redraw();this.fire("change:time",{time:this.getTime(),step:this.getKey()})},getKey:function(){return this.keys[0]},setStep:function(time){if(time===undefined||time.length!==undefined){throw new Error("setTime only accept scalars")}this.setKey(time)},renderRange:function(start,end){this.pause();var keys=[];for(var i=start;i<=end;i++){keys.push(i)}this.setKeys(keys)},resetRenderRange:function(){this.stop();this.play()},stepToTime:function(step){if(!this.provider)return 0;var times=this.provider.getKeySpan();var time=times.start+(times.end-times.start)*(step/this.provider.getSteps());return new Date(time)},timeToStep:function(timestamp){if(typeof timestamp==="Date")timestamp=timestamp.getTime();if(!this.provider)return 0;var times=this.provider.getKeySpan();var step=this.provider.getSteps()*(timestamp-times.start)/(times.end-times.start);return step},getStep:function(){return this.getKey()},getTime:function(){return this.stepToTime(this.getKey())},setCartoCSS:function(cartocss){if(!this.renderer)throw new Error("renderer is not valid");if(this.provider&&this.provider.options.named_map){console.log("Torque layer: CartoCSS style on named maps is read-only");return false}var shader=(new carto.RendererJS).render(cartocss);this.shader=shader;if(this.renderer){this.renderer.setShader(shader)}var options=torque.common.TorqueLayer.optionsFromLayer(shader.findLayer({name:"Map"}));this.provider&&this.provider.setCartoCSS&&this.provider.setCartoCSS(cartocss);if(this.provider&&this.provider.setOptions(options)){this._reloadTiles()}torque.extend(this.options,options);if(options.animationDuration){this.animator.duration(options.animationDuration)}this.redraw();return this},redraw:function(){this.scheduleUpdate()},onRemove:function(){this.fire("remove");CanvasLayer.prototype.onRemove.call(this);this.animator.stop();this._removeTileLoader();google.maps.event.removeListener(this._cacheListener)},getValues:function(step){var values=[];step=step===undefined?this.getKey():step;var t,tile;for(t in this._tiles){tile=this._tiles[t];this.renderer.getValues(tile,step,values)}return values},getValueForPos:function(x,y,step){step=step===undefined?this.getKey():step;var t,tile,pos,value=null,xx,yy;for(t in this._tiles){tile=this._tiles[t];pos=this.getTilePos(tile.coord);xx=x-pos.x;yy=y-pos.y;if(xx>=0&&yy>=0&&xx<this.renderer.TILE_SIZE&&yy<=this.renderer.TILE_SIZE){value=this.renderer.getValueFor(tile,step,xx,yy)}if(value!==null){return value}}return null},pointCount:function(step){var t,tile;step=step===undefined?this.key:step;var c=0;for(t in this._tiles){tile=this._tiles[t];if(tile){c+=tile.timeCount[step]}}return c},getValueForBBox:function(x,y,w,h){var xf=x+w,yf=y+h;var sum=0;for(_y=y;y<yf;y+=this.options.resolution){for(_x=x;x<xf;x+=this.options.resolution){var thisValue=this.getValueForPos(_x,_y);if(thisValue){var bb=thisValue.bbox;var proj=this.getProjection();var xy=proj.fromLatLngToContainerPixel(new google.maps.LatLng(bb[1].lat,bb[1].lon));if(xy.x<xf&&xy.y<yf){sum+=thisValue.value}}}}return sum},error:function(callback){this.options.errorCallback=callback;return this}});function GMapsTiledTorqueLayer(options){this.options=torque.extend({},options);CanvasTileLayer.call(this,this._loadTile.bind(this),this.drawTile.bind(this));this.initialize(options)}GMapsTiledTorqueLayer.prototype=torque.extend({},CanvasTileLayer.prototype,{providers:{sql_api:torque.providers.json,url_template:torque.providers.JsonArray},renderers:{point:torque.renderer.Point,pixel:torque.renderer.Rectangle},initialize:function(options){var self=this;this.keys=[0];this.options.renderer=this.options.renderer||"pixel";this.options.provider=this.options.provider||"sql_api";this.provider=new this.providers[this.options.provider](options);this.renderer=new this.renderers[this.options.renderer](null,options)},_tileLoaded:function(tile,tileData){tile.data=tileData;this.drawTile(tile)},_loadTile:function(tile,coord,zoom){var self=this;var limit=1<<zoom;var wrappedCoord={x:(coord.x%limit+limit)%limit,y:coord.y};this.provider.getTileData(wrappedCoord,zoom,function(tileData){self._tileLoaded(tile,tileData)})},drawTile:function(tile){var canvas=tile.canvas;if(!tile.data)return;canvas.width=canvas.width;this.renderer.setCanvas(canvas);var accum=this.renderer.accumulate(tile.data,this.getKey());this.renderer.renderTileAccum(accum,0,0)},setKey:function(key){this.keys=[key];this.redraw()},setCartoCSS:function(cartocss){if(!this.renderer)throw new Error("renderer is not valid");return this.renderer.setCartoCSS(cartocss)},setStepsRange:function(start,end){this.animator.stepsRange(start,end)},removeStepsRange:function(){this.animator.removeCustomStepsRange()},getStepsRange:function(){return this.animator.stepsRange()}});module.exports={GMapsTiledTorqueLayer:GMapsTiledTorqueLayer,GMapsTorqueLayer:GMapsTorqueLayer}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../":11,"./CanvasLayer":6,"./canvas_tile_layer":7,"./gmaps_tileloader_mixin":8,carto:41}],11:[function(require,module,exports){module.exports=require("./core");module.exports.Animator=require("./animator");module.exports.cartocss_reference=require("./cartocss_reference");module.exports.common=require("./common");module.exports.math=require("./math");module.exports.Mercator=require("./mercator");module.exports.net=require("./request");module.exports.renderer=require("./renderer");module.exports.providers=require("./provider");require("./leaflet");var gmaps=require("./gmaps");module.exports.GMapsTileLoader=gmaps.GMapsTileLoader;module.exports.GMapsTorqueLayer=gmaps.GMapsTorqueLayer;module.exports.GMapsTiledTorqueLayer=gmaps.GMapsTiledTorqueLayer;require("./ol")},{"./animator":2,"./cartocss_reference":3,"./common":4,"./core":5,"./gmaps":9,"./leaflet":13,"./math":16,"./mercator":17,"./ol":19,"./provider":23,"./renderer":30,"./request":34}],12:[function(require,module,exports){require("./leaflet_tileloader_mixin");L.CanvasLayer=L.Layer.extend({includes:[L.Mixin.Events,L.Mixin.TileLoader],options:{minZoom:0,maxZoom:28,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:L.Browser.mobile,updateWhenIdle:L.Browser.mobile,tileLoader:false,zoomAnimation:true},initialize:function(options){var self=this;options=options||{};this.render=this.render.bind(this);L.Util.setOptions(this,options);this._canvas=this._createCanvas();if(this.options.zoomAnimation){this._backCanvas=this._createCanvas()}this._ctx=this._canvas.getContext("2d");this.currentAnimationFrame=-1;this.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){return window.setTimeout(callback,1e3/60)};this.cancelAnimationFrame=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(id){clearTimeout(id)}},_createCanvas:function(){var canvas;canvas=document.createElement("canvas");canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;canvas.style.pointerEvents="none";canvas.style.zIndex=this.options.zIndex||0;var className="leaflet-tile-container";if(this.options.zoomAnimation){className+=" leaflet-zoom-animated"}canvas.setAttribute("class",className);return canvas},onAdd:function(map){this._map=map;var tilePane=this._map._panes.tilePane;var _container=L.DomUtil.create("div","leaflet-layer");_container.appendChild(this._canvas);if(this.options.zoomAnimation){_container.appendChild(this._backCanvas);this._backCanvas.style.display="none"}tilePane.appendChild(_container);this._container=_container;map.dragging._draggable.on("predrag",function(){var d=map.dragging._draggable;L.DomUtil.setPosition(this._canvas,{x:-d._newPos.x,y:-d._newPos.y})},this);map.on({viewreset:this._reset},this);map.on("move",this.redraw,this);map.on("resize",this._reset,this);if(this.options.zoomAnimation){map.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim,moveend:this._reset},this)}if(this.options.tileLoader){this._initTileLoader()}this._reset()},_animateZoom:function(e){if(!this._animating){this._animating=true}var back=this._backCanvas;back.width=this._canvas.width;back.height=this._canvas.height;var pos=this._canvas._leaflet_pos||{x:0,y:0};back.getContext("2d").drawImage(this._canvas,0,0);L.DomUtil.setPosition(back,L.DomUtil.getPosition(this._canvas));this._canvas.style.display="none";back.style.display="block";var map=this._map;var scale=map.getZoomScale(e.zoom);var newCenter=map._latLngToNewLayerPoint(map.getCenter(),e.zoom,e.center);var oldCenter=map._latLngToNewLayerPoint(e.center,e.zoom,e.center);var origin={x:newCenter.x-oldCenter.x+pos.x,y:newCenter.y-oldCenter.y+pos.y};var bg=back;var transform=L.DomUtil.TRANSFORM;setTimeout(function(){bg.style[transform]="translate("+origin.x+"px, "+origin.y+"px) scale("+e.scale+") "},0)},_endZoomAnim:function(){this._animating=false;this._canvas.style.display="block";this._backCanvas.style.display="none";this._backCanvas.style[L.DomUtil.TRANSFORM]=""},getCanvas:function(){return this._canvas},getAttribution:function(){return this.options.attribution},draw:function(){return this._reset()},onRemove:function(map){this._container.parentNode.removeChild(this._container);map.off({viewreset:this._reset,move:this.redraw,moveend:this._reset,resize:this._reset,zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this)},addTo:function(map){map.addLayer(this);return this},error:function(callback){this.provider.options.errorCallback=callback;return this},setOpacity:function(opacity){this.options.opacity=opacity;this._updateOpacity();return this},setZIndex:function(zIndex){zIndex=zIndex!==void 0?zIndex:1;this._container.style.zIndex=zIndex;this._canvas.style.zIndex=zIndex;if(this.options.zoomAnimation){this._backCanvas.style.zIndex=zIndex}},bringToFront:function(){return this},bringToBack:function(){return this},_reset:function(){var size=this._map.getSize();this._canvas.width=size.x;this._canvas.height=size.y;var pos=L.DomUtil.getPosition(this._map.getPanes().mapPane);if(pos){L.DomUtil.setPosition(this._canvas,{x:-pos.x,y:-pos.y})}this.onResize();this._render()},_updateOpacity:function(){},_render:function(){if(this.currentAnimationFrame>=0){this.cancelAnimationFrame.call(window,this.currentAnimationFrame)}this.currentAnimationFrame=this.requestAnimationFrame.call(window,this.render)},redraw:function(direct){var domPosition=L.DomUtil.getPosition(this._map.getPanes().mapPane);if(domPosition){L.DomUtil.setPosition(this._canvas,{x:-domPosition.x,y:-domPosition.y})}if(direct){this.render()}else{this._render()}},onResize:function(){},render:function(){throw new Error("render function should be implemented")}})},{"./leaflet_tileloader_mixin":14}],13:[function(require,module,exports){if(typeof L!=="undefined"){require("./torque")}},{"./torque":15}],14:[function(require,module,exports){L.Mixin.TileLoader={_initTileLoader:function(){this._tilesLoading={};this._tilesToLoad=0;this._map.on({moveend:this._updateTiles},this);this._updateTiles()},_removeTileLoader:function(){this._map.off({moveend:this._updateTiles},this);this._removeTiles()},_updateTiles:function(){if(!this._map){return}var bounds=this._map.getPixelBounds(),zoom=this._map.getZoom(),tileSize=this.options.tileSize;if(zoom>this.options.maxZoom||zoom<this.options.minZoom){return}var nwTilePoint=new L.Point(Math.floor(bounds.min.x/tileSize),Math.floor(bounds.min.y/tileSize)),seTilePoint=new L.Point(Math.floor(bounds.max.x/tileSize),Math.floor(bounds.max.y/tileSize)),tileBounds=new L.Bounds(nwTilePoint,seTilePoint);this._addTilesFromCenterOut(tileBounds);this._removeOtherTiles(tileBounds)},_removeTiles:function(bounds){for(var key in this._tiles){this._removeTile(key)}},_reloadTiles:function(){this._removeTiles();this._updateTiles()},_removeOtherTiles:function(bounds){var kArr,x,y,z,key;var zoom=this._map.getZoom();for(key in this._tiles){if(this._tiles.hasOwnProperty(key)){kArr=key.split(":");x=parseInt(kArr[0],10);y=parseInt(kArr[1],10);z=parseInt(kArr[2],10);if(zoom!==z||x<bounds.min.x||x>bounds.max.x||y<bounds.min.y||y>bounds.max.y){this._removeTile(key)}}}},_removeTile:function(key){this.fire("tileRemoved",this._tiles[key]);delete this._tiles[key];delete this._tilesLoading[key]},_tileKey:function(tilePoint){return tilePoint.x+":"+tilePoint.y+":"+tilePoint.zoom},_tileShouldBeLoaded:function(tilePoint){var k=this._tileKey(tilePoint);return!(k in this._tiles)&&!(k in this._tilesLoading)},_tileLoaded:function(tilePoint,tileData){this._tilesToLoad--;var k=tilePoint.x+":"+tilePoint.y+":"+tilePoint.zoom;this._tiles[k]=tileData;delete this._tilesLoading[k];if(this._tilesToLoad===0){this.fire("tilesLoaded")}},getTilePos:function(tilePoint){tilePoint=new L.Point(tilePoint.x,tilePoint.y);var origin=this._map._getTopLeftPoint(this._map.getCenter()),tileSize=this.options.tileSize;return tilePoint.multiplyBy(tileSize).subtract(origin)},_addTilesFromCenterOut:function(bounds){var queue=[],center=bounds.getCenter(),zoom=this._map.getZoom();zoom=Math.round(zoom);var j,i,point;for(j=bounds.min.y;j<=bounds.max.y;j++){for(i=bounds.min.x;i<=bounds.max.x;i++){point=new L.Point(i,j);point.zoom=zoom;if(this._tileShouldBeLoaded(point)){queue.push(point)}}}var tilesToLoad=queue.length;if(tilesToLoad===0){return}queue.sort(function(a,b){return a.distanceTo(center)-b.distanceTo(center)});this._tilesToLoad+=tilesToLoad;for(i=0;i<tilesToLoad;i++){var t=queue[i];var k=this._tileKey(t);this._tilesLoading[k]=t;this.fire("tileAdded",t)}this.fire("tilesLoading")}}},{}],15:[function(require,module,exports){(function(global){var carto=global.carto||require("carto");var torque=require("../");require("./canvas_layer");L.TorqueLayer=L.CanvasLayer.extend({providers:{sql_api:torque.providers.json,url_template:torque.providers.JsonArray,windshaft:torque.providers.windshaft,tileJSON:torque.providers.tileJSON},renderers:{point:torque.renderer.Point,pixel:torque.renderer.Rectangle},initialize:function(options){var self=this;if(!torque.isBrowserSupported()){throw new Error("browser is not supported by torque")}options.tileLoader=true;this.keys=[0];this._tiles={};Object.defineProperty(this,"key",{get:function(){return this.getKey()}});this.prevRenderedKey=0;if(options.cartocss){var headerCartoCSS=options.cartocss.replace(/\n/g,"").match(/Map\s*?\{.*?}/g)[0];torque.extend(options,torque.common.TorqueLayer.optionsFromCartoCSS(headerCartoCSS))}options.resolution=options.resolution||2;options.steps=options.steps||100;options.visible=options.visible===undefined?true:options.visible;this.hidden=!options.visible;this.animator=new torque.Animator(function(time){var k=time|0;if(self.getKey()!==k){self.setKey(k,{direct:true})}},torque.extend(torque.clone(options),{onPause:function(){self.fire("pause")},onStop:function(){self.fire("stop")},onStart:function(){self.fire("play")},onStepsRange:function(){self.fire("change:stepsRange",self.animator.stepsRange())}}));this.play=this.animator.start.bind(this.animator);this.stop=this.animator.stop.bind(this.animator);this.pause=this.animator.pause.bind(this.animator);this.toggle=this.animator.toggle.bind(this.animator);this.setDuration=this.animator.duration.bind(this.animator);this.isRunning=this.animator.isRunning.bind(this.animator);L.CanvasLayer.prototype.initialize.call(this,options);this.options.renderer=this.options.renderer||"point";this.options.provider=this.options.provider||"windshaft";if(this.options.tileJSON)this.options.provider="tileJSON";this.showLimitErrors=options.showLimitErrors;this.provider=new this.providers[this.options.provider](options);options.layer=this;this.renderer=new this.renderers[this.options.renderer](this.getCanvas(),options);options.ready=function(){self.fire("change:bounds",{bounds:self.provider.getBounds()});self.animator.steps(self.provider.getSteps());self.animator.rescale();self.fire("change:steps",{steps:self.provider.getSteps()});self.setKeys(self.getKeys())};this.on("tileLoaded",function(){self.renderer.setCartoCSS(self.renderer.style)});this.renderer.on("allIconsLoaded",this.render.bind(this));this.on("tileAdded",function(t){var callback=function(tileData,error){if(t.zoom!==self._map.getZoom())return;self._tileLoaded(t,tileData);self._clearTileCaches();if(tileData){self.redraw()}self.fire("tileLoaded");if(error){self.fire("tileError",error)}};var tileData=this.provider.getTileData(t,t.zoom,callback)},this)},_clearTileCaches:function(){var t,tile;for(t in this._tiles){tile=this._tiles[t];if(tile&&tile._tileCache){tile._tileCache=null}}},_clearCaches:function(){this.renderer&&this.renderer.clearSpriteCache();this._clearTileCaches()},onAdd:function(map){map.on({zoomend:this._clearCaches,zoomstart:this._pauseOnZoom},this);map.on({zoomend:this._resumeOnZoom},this);L.CanvasLayer.prototype.onAdd.call(this,map)},onRemove:function(map){this.fire("remove");this._removeTileLoader();map.off({zoomend:this._clearCaches,zoomstart:this._pauseOnZoom},this);map.off({zoomend:this._resumeOnZoom},this);L.CanvasLayer.prototype.onRemove.call(this,map)},_pauseOnZoom:function(){this.wasRunning=this.isRunning();if(this.wasRunning){this.pause()}},_resumeOnZoom:function(){if(this.wasRunning){this.play()}},hide:function(){if(this.hidden)return this;this.pause();this.clear();this.hidden=true;return this},show:function(){if(!this.hidden)return this;this.hidden=false;this.play();if(this.options.steps===1){this.redraw()}return this},setSQL:function(sql){if(this.provider.options.named_map)throw new Error("SQL queries on named maps are read-only");if(!this.provider||!this.provider.setSQL){throw new Error("this provider does not support SQL")}this.provider.setSQL(sql);this._reloadTiles();return this},setBlendMode:function(_){this.renderer.setBlendMode(_);this.redraw()},setSteps:function(steps){this.provider.setSteps(steps);this._reloadTiles()},setColumn:function(column,isTime){this.provider.setColumn(column,isTime);this._reloadTiles()},getTimeBounds:function(){return this.provider&&this.provider.getKeySpan()},clear:function(){var canvas=this.getCanvas();canvas.width=canvas.width},render:function(){if(this.hidden)return;var t,tile,pos;var canvas=this.getCanvas();this.renderer.clearCanvas();var ctx=canvas.getContext("2d");for(t in this._tiles){tile=this._tiles[t];if(tile){if(this.animator.isRunning()){tile._tileCache=null}pos=this.getTilePos(tile.coord);ctx.setTransform(1,0,0,1,pos.x,pos.y);if(tile._tileCache){this.renderer._ctx.drawImage(tile._tileCache,0,0)}else{this.renderer.renderTile(tile,this.keys)}}}this.renderer.applyFilters();if(!this.animator.isRunning()&&this.getKey()===this.prevRenderedKey){var tile_size=this.renderer.TILE_SIZE;for(t in this._tiles){tile=this._tiles[t];if(tile&&!tile._tileCache){var c=tile._tileCache=document.createElement("canvas");c.width=c.height=tile_size;pos=this.getTilePos(tile.coord);var x=Math.max(0,pos.x);var y=Math.max(0,pos.y);var w=Math.min(tile_size,this.getCanvas().width-x);var h=Math.min(tile_size,this.getCanvas().height-y);if(w>0&&h>0){c.getContext("2d").drawImage(this.getCanvas(),x,y,w,h,x-pos.x,y-pos.y,w,h)}}}}this.prevRenderedKey=this.getKey()},setKey:function(key,options){this.setKeys([key],options)},getKeys:function(){return this.keys},setKeys:function(keys,options){this.keys=keys;this.animator.step(this.getKey());this._clearTileCaches();this.redraw(options&&options.direct);this.fire("change:time",{time:this.getTime(),step:this.getKey(),start:this.getKey(),end:this.getLastKey()})},getKey:function(){return this.keys[0]},getLastKey:function(){return this.keys[this.keys.length-1]},setStep:function(time){if(time===undefined||time.length!==undefined){throw new Error("setTime only accept scalars")}this.setKey(time)},renderRange:function(start,end){this.pause();var keys=[];for(var i=start;i<=end;i++){keys.push(i)}this.setKeys(keys)},resetRenderRange:function(){this.stop();this.play()},stepToTime:function(step){var times=this.provider.getKeySpan();var time=times.start+(times.end-times.start)*(step/this.provider.getSteps());return new Date(time)},timeToStep:function(timestamp){if(typeof timestamp==="Date")timestamp=timestamp.getTime();if(!this.provider)return 0;var times=this.provider.getKeySpan();var step=this.provider.getSteps()*(timestamp-times.start)/(times.end-times.start);return step},getStep:function(){return this.getKey()},getTime:function(){return this.stepToTime(this.getKey())},getTimeSpan:function(){return this.provider.getKeySpan()},setCartoCSS:function(cartocss){if(!this.renderer)throw new Error("renderer is not valid");if(this.provider&&this.provider.options.named_map){console.log("Torque layer: CartoCSS style on named maps is read-only");return false}this.renderer.setCartoCSS(cartocss,function(){var options=torque.common.TorqueLayer.optionsFromLayer(this.renderer._shader.findLayer({name:"Map"}));this.provider.setCartoCSS&&this.provider.setCartoCSS(cartocss);if(this.provider.setOptions(options)){this._reloadTiles()}torque.extend(this.options,options);if(options.animationDuration){this.animator.duration(options.animationDuration)}this._clearCaches();this.redraw();return this}.bind(this))},getActivePointsBBox:function(step){var positions=[];for(var t in this._tiles){var tile=this._tiles[t];positions=positions.concat(this.renderer.getActivePointsBBox(tile,step))}return positions},getValues:function(step){var values=[];step=step===undefined?this.getKey():step;var t,tile;for(t in this._tiles){tile=this._tiles[t];this.renderer.getValues(tile,step,values)}return values},getValueForPos:function(x,y,step){step=step===undefined?this.getKey():step;var t,tile,pos,value=null,xx,yy;for(t in this._tiles){tile=this._tiles[t];pos=this.getTilePos(tile.coord);xx=x-pos.x;yy=y-pos.y;if(xx>=0&&yy>=0&&xx<this.renderer.TILE_SIZE&&yy<=this.renderer.TILE_SIZE){value=this.renderer.getValueFor(tile,step,xx,yy)}if(value!==null){return value}}return null},getValueForBBox:function(x,y,w,h){var xf=x+w,yf=y+h,_x=x;var sum=0;for(_y=y;_y<yf;_y+=this.options.resolution){for(_x=x;_x<xf;_x+=this.options.resolution){var thisValue=this.getValueForPos(_x,_y);if(thisValue){var bb=thisValue.bbox;var xy=this._map.latLngToContainerPoint([bb[1].lat,bb[1].lon]);if(xy.x<xf&&xy.y<yf){sum+=thisValue.value}}}}return sum},pointCount:function(step){var t,tile;step=step===undefined?this.key:step;var c=0;for(t in this._tiles){tile=this._tiles[t];if(tile){c+=tile.timeCount[step]}}return c},invalidate:function(){this.provider.reload()},setStepsRange:function(start,end){this.animator.stepsRange(start,end)},removeStepsRange:function(){this.animator.removeCustomStepsRange()},getStepsRange:function(){return this.animator.stepsRange()},onRemove:function(map){L.CanvasLayer.prototype.onRemove.apply(this,arguments);this.animator.stop()}})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../":11,"./canvas_layer":12,carto:41}],16:[function(require,module,exports){function clamp(a,b){return function(t){return Math.max(Math.min(t,b),a)}}function invLinear(a,b){var c=clamp(0,1);return function(t){return c((t-a)/(b-a))}}function linear(a,b){var c=clamp(a,b);function _linear(t){return c(a*(1-t)+t*b)}_linear.invert=function(){return invLinear(a,b)};return _linear}module.exports={clamp:clamp,linear:linear,invLinear:invLinear}},{}],17:[function(require,module,exports){var Point=function(x,y){this.x=x||0;this.y=y||0};function clamp(value,optMin,optMax){if(optMin!==null)value=Math.max(value,optMin);if(optMax!==null)value=Math.min(value,optMax);return value}function degreesToRadians(deg){return deg*(Math.PI/180)}function radiansToDegrees(rad){return rad/(Math.PI/180)}var MercatorProjection=function(){this._tileSize=256;this._pixelOrigin=new Point(this._tileSize/2,this._tileSize/2);this._pixelsPerLonDegree=this._tileSize/360;this._pixelsPerLonRadian=this._tileSize/(2*Math.PI)};MercatorProjection.prototype._fromLatLonToPoint=function(lat,lon){var point=new Point(0,0);var origin=this._pixelOrigin;point.x=origin.x+lon*this._pixelsPerLonDegree;var siny=clamp(Math.sin(degreesToRadians(lat)),-.9999,.9999);point.y=origin.y+.5*Math.log((1+siny)/(1-siny))*-this._pixelsPerLonRadian;return point};MercatorProjection.prototype._fromPointToLatLon=function(point){var me=this;var origin=me._pixelOrigin;var lon=(point.x-origin.x)/me._pixelsPerLonDegree;var latRadians=(point.y-origin.y)/-me._pixelsPerLonRadian;var lat=radiansToDegrees(2*Math.atan(Math.exp(latRadians))-Math.PI/2);return{lat:lat,lon:lon}};MercatorProjection.prototype._tilePixelPos=function(tileX,tileY){return{x:tileX*this._tileSize,y:tileY*this._tileSize}};MercatorProjection.prototype.tilePixelBBox=function(x,y,zoom,px,py,res){res=res||1;var numTiles=1<<zoom;var inc=res/numTiles;px=(x*this._tileSize+px)/numTiles;py=(y*this._tileSize+py)/numTiles;return[this._fromPointToLatLon(new Point(px,py+inc)),this._fromPointToLatLon(new Point(px+inc,py))]};MercatorProjection.prototype.tileBBox=function(x,y,zoom,bufferSize){var numTiles=1<<zoom;bufferSize=bufferSize||0;var inc=(this._tileSize+bufferSize*2)/numTiles;var px=(x*this._tileSize-bufferSize)/numTiles;var py=(y*this._tileSize-bufferSize)/numTiles;return[this._fromPointToLatLon(new Point(px,py+inc)),this._fromPointToLatLon(new Point(px+inc,py))]};MercatorProjection.prototype.latLonToTilePoint=function(lat,lon,tileX,tileY,zoom){var numTiles=1<<zoom;var worldCoordinate=this._fromLatLonToPoint(lat,lon);var pixelCoordinate=new Point(worldCoordinate.x*numTiles,worldCoordinate.y*numTiles);var tilePixelPos=this._tilePixelPos(tileX,tileY);return new Point(Math.round(pixelCoordinate.x-tilePixelPos.x),Math.round(pixelCoordinate.y-tilePixelPos.y))};module.exports=MercatorProjection},{}],18:[function(require,module,exports){require("./ol_tileloader_mixin");ol.CanvasLayer=function(options){this.root_=document.createElement("div");this.root_.setAttribute("class","ol-heatmap-layer");this.options={subdomains:"abc",errorTileUrl:"",attribution:"",opacity:1,tileLoader:false,tileSize:256};options=options||{};torque.extend(this.options,options);ol.TileLoader.call(this,this.options.tileSize,this.options.maxZoom);this.render=this.render.bind(this);this._canvas=this._createCanvas();this.root_.appendChild(this._canvas);this._ctx=this._canvas.getContext("2d");this.currentAnimationFrame=-1;this.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){return window.setTimeout(callback,1e3/60)};this.cancelAnimationFrame=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(id){clearTimeout(id)};if(options.map){this.setMap(options.map)}};ol.inherits(ol.CanvasLayer,ol.TileLoader);ol.CanvasLayer.prototype.setMap=function(map){if(this._map){this._map.unByKey(this.pointdragKey_);this._map.unByKey(this.sizeChangedKey_);this._map.unByKey(this.moveendKey_);this._map.getView().unByKey(this.centerChanged_)}this._map=map;if(map){var overlayContainer=this._map.getViewport().getElementsByClassName("ol-overlaycontainer")[0];overlayContainer.appendChild(this.root_);this.pointdragKey_=map.on("pointerdrag",this._render,this);this.moveendKey_=map.on("moveend",this._render,this);this.centerChanged_=map.getView().on("change:center",this._render,this);this.sizeChangedKey_=map.on("change:size",this._reset,this);if(this.options.tileLoader){ol.TileLoader.prototype._initTileLoader.call(this,map)}this._reset()}};ol.CanvasLayer.prototype._createCanvas=function(){var canvas;canvas=document.createElement("canvas");canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;canvas.style.pointerEvents="none";canvas.style.zIndex=this.options.zIndex||0;return canvas};ol.CanvasLayer.prototype._reset=function(){this._resize()};ol.CanvasLayer.prototype._resize=function(){var size=this._map.getSize();var width=size[0];var height=size[1];var oldWidth=this._canvas.width;var oldHeight=this._canvas.height;if(oldWidth!==width||oldHeight!==height){this._canvas.width=width;this._canvas.height=height;this._canvas.style.width=width+"px";this._canvas.style.height=height+"px";this.root_.style.width=width+"px";this.root_.style.height=height+"px";this._render()}};ol.CanvasLayer.prototype._render=function(){if(this.currentAnimationFrame>=0){this.cancelAnimationFrame.call(window,this.currentAnimationFrame)}this.currentAnimationFrame=this.requestAnimationFrame.call(window,this.render)};ol.CanvasLayer.prototype.getCanvas=function(){return this._canvas};ol.CanvasLayer.prototype.getAttribution=function(){return this.options.attribution};ol.CanvasLayer.prototype.draw=function(){return this._render()};ol.CanvasLayer.prototype.redraw=function(direct){if(direct){this.render()}else{this._render()}};module.exports=ol.CanvasLayer},{"./ol_tileloader_mixin":20}],19:[function(require,module,exports){if(typeof ol!=="undefined"){require("./torque")}},{"./torque":21}],20:[function(require,module,exports){ol.TileLoader=function(tileSize,maxZoom){this._tileSize=tileSize;this._tiles={};this._tilesLoading={};this._tilesToLoad=0;this._updateTiles=this._updateTiles.bind(this);this._tileGrid=ol.tilegrid.createXYZ({maxZoom:maxZoom,tileSize:tileSize})};ol.TileLoader.prototype._initTileLoader=function(map){this._map=map;this._view=map.getView();this._centerChangedId=this._view.on("change:center",function(e){this._updateTiles()},this);this._postcomposeKey=undefined;this._resolutionChangedId=this._view.on("change:resolution",function(evt){this._currentResolution=this._view.getResolution();if(this._postcomposeKey)return;this.fire("mapZoomStart");this._postcomposeKey=this._map.on("postcompose",function(evt){if(evt.frameState.viewState.resolution===this._currentResolution){this._updateTiles();this._map.unByKey(this._postcomposeKey);this._postcomposeKey=undefined;this.fire("mapZoomEnd")}},this)},this);this._updateTiles()};ol.TileLoader.prototype._removeTileLoader=function(){this._view.unByKey(this._centerChangedId);this._view.unByKey(this._resolutionChangedId);this._removeTiles()};ol.TileLoader.prototype._removeTiles=function(){for(var key in this._tiles){this._removeTile(key)}};ol.TileLoader.prototype._reloadTiles=function(){this._removeTiles();this._updateTiles()};ol.TileLoader.prototype._updateTiles=function(){if(!this._map){return}var zoom=this._tileGrid.getZForResolution(this._view.getResolution());var extent=this._view.calculateExtent(this._map.getSize());var tileRange=this._requestTilesForExtentAndZ(extent,zoom);this._removeOtherTiles(tileRange)};ol.TileLoader.prototype._removeOtherTiles=function(tileRange){var kArr,x,y,z,key;var zoom=this._tileGrid.getZForResolution(this._view.getResolution());for(key in this._tiles){if(this._tiles.hasOwnProperty(key)){kArr=key.split(":");x=parseInt(kArr[0],10);y=parseInt(kArr[1],10);z=parseInt(kArr[2],10);if(z!==zoom||x<tileRange.minX||x>tileRange.maxX||-y-1<tileRange.minY||-y-1>tileRange.maxY){this._removeTile(key)}}}};ol.TileLoader.prototype._removeTile=function(key){this.fire("tileRemoved",this._tiles[key]);delete this._tiles[key];delete this._tilesLoading[key]};ol.TileLoader.prototype._tileKey=function(tilePoint){return tilePoint.x+":"+tilePoint.y+":"+tilePoint.zoom};ol.TileLoader.prototype._tileShouldBeLoaded=function(tilePoint){var k=this._tileKey(tilePoint);return!(k in this._tiles)&&!(k in this._tilesLoading)};ol.TileLoader.prototype._removeFromTilesLoading=function(tilePoint){this._tilesToLoad--;var k=this._tileKey(tilePoint);delete this._tilesLoading[k];if(this._tilesToLoad===0){this.fire("tilesLoaded")}};ol.TileLoader.prototype._tileLoaded=function(tilePoint,tileData){var k=this._tileKey(tilePoint);this._tiles[k]=tileData};ol.TileLoader.prototype.getTilePos=function(tilePoint){var zoom=this._tileGrid.getZForResolution(this._view.getResolution());var extent=this._tileGrid.getTileCoordExtent([zoom,tilePoint.x,-tilePoint.y-1]);var topLeft=this._map.getPixelFromCoordinate([extent[0],extent[3]]);return{x:topLeft[0],y:topLeft[1]}};ol.TileLoader.prototype._requestTilesForExtentAndZ=function(extent,zoom){var queue=[];var tileCoords=[];this._tileGrid.forEachTileCoord(extent,zoom,function(coord){tileCoords.push(coord);var point={x:coord[1],y:-coord[2]-1,zoom:coord[0]};if(this._tileShouldBeLoaded(point)){queue.push(point)}}.bind(this));var tilesToLoad=queue.length;if(tilesToLoad>0){this._tilesToLoad+=tilesToLoad;for(var i=0;i<tilesToLoad;i++){var t=queue[i];var k=this._tileKey(t);this._tilesLoading[k]=t;this.fire("tileAdded",t)}this.fire("tilesLoading")}var tileRange={minX:tileCoords[0][1],maxX:tileCoords[tileCoords.length-1][1],minY:tileCoords[0][2],maxY:tileCoords[tileCoords.length-1][2]};return tileRange};module.exports=ol.TileLoader},{}],21:[function(require,module,exports){(function(global){var carto=global.carto||require("carto");var torque=require("../");require("./canvas_layer");ol.TorqueLayer=function(options){var self=this;if(!torque.isBrowserSupported()){throw new Error("browser is not supported by torque")}options.tileLoader=true;this.keys=[0];Object.defineProperty(this,"key",{get:function(){return this.getKey()}});this.prevRenderedKey=0;if(options.cartocss){torque.extend(options,torque.common.TorqueLayer.optionsFromCartoCSS(options.cartocss))}options.resolution=options.resolution||2;options.steps=options.steps||100;options.visible=options.visible===undefined?true:options.visible;this.hidden=!options.visible;this.animator=new torque.Animator(function(time){var k=time|0;if(self.getKey()!==k){self.setKey(k,{direct:true})}},torque.extend(torque.clone(options),{onPause:function(){self.fire("pause")},onStop:function(){self.fire("stop")},onStart:function(){self.fire("play")},onStepsRange:function(){self.fire("change:stepsRange",self.animator.stepsRange())}}));this.play=this.animator.start.bind(this.animator);this.stop=this.animator.stop.bind(this.animator);this.pause=this.animator.pause.bind(this.animator);this.toggle=this.animator.toggle.bind(this.animator);this.setDuration=this.animator.duration.bind(this.animator);this.isRunning=this.animator.isRunning.bind(this.animator);ol.CanvasLayer.call(this,options);this.options.renderer=this.options.renderer||"point";this.options.provider=this.options.provider||"windshaft";if(this.options.tileJSON)this.options.provider="tileJSON";this.provider=new this.providers[this.options.provider](options);this.renderer=new this.renderers[this.options.renderer](this.getCanvas(),options);options.ready=function(){self.fire("change:bounds",{bounds:self.provider.getBounds()});self.animator.steps(self.provider.getSteps());self.animator.rescale();self.fire("change:steps",{steps:self.provider.getSteps()});self.setKeys(self.getKeys())};this.renderer.on("allIconsLoaded",this.render.bind(this));this.on("tileAdded",function(t){var tileData=this.provider.getTileData(t,t.zoom,function(tileData){self._removeFromTilesLoading(t);if(t.zoom!==self._tileGrid.getZForResolution(self._view.getResolution()))return;self._tileLoaded(t,tileData);self.fire("tileLoaded");if(tileData){self.redraw()}})},this);this.on("mapZoomStart",function(){this.getCanvas().style.display="none";this._pauseOnZoom()},this);this.on("mapZoomEnd",function(){this.getCanvas().style.display="block";this._resumeOnZoom()},this)};ol.TorqueLayer.prototype=torque.extend({},ol.CanvasLayer.prototype,torque.Event,{providers:{sql_api:torque.providers.json,url_template:torque.providers.JsonArray,windshaft:torque.providers.windshaft,tileJSON:torque.providers.tileJSON},renderers:{point:torque.renderer.Point,pixel:torque.renderer.Rectangle},onAdd:function(map){ol.CanvasLayer.prototype.setMap.call(this,map)},onRemove:function(map){this.fire("remove");this._removeTileLoader()},_pauseOnZoom:function(){this.wasRunning=this.isRunning();if(this.wasRunning){this.pause()}},_resumeOnZoom:function(){if(this.wasRunning){this.play()}},hide:function(){if(this.hidden)return this;this.pause();this.clear();this.hidden=true;return this},show:function(){if(!this.hidden)return this;this.hidden=false;this.play();if(this.options.steps===1){this.redraw()}return this},setSQL:function(sql){if(this.provider.options.named_map)throw new Error("SQL queries on named maps are read-only");if(!this.provider||!this.provider.setSQL){throw new Error("this provider does not support SQL")}this.provider.setSQL(sql);this._reloadTiles();return this},setBlendMode:function(_){this.renderer.setBlendMode(_);this.redraw()},setSteps:function(steps){this.provider.setSteps(steps);this._reloadTiles()},setColumn:function(column,isTime){this.provider.setColumn(column,isTime);this._reloadTiles()},getTimeBounds:function(){return this.provider&&this.provider.getKeySpan()},clear:function(){var canvas=this.getCanvas();canvas.width=canvas.width},render:function(){if(this.hidden)return;var t,tile,pos;var canvas=this.getCanvas();this.renderer.clearCanvas();var ctx=canvas.getContext("2d");for(t in this._tiles){tile=this._tiles[t];if(tile){pos=this.getTilePos(tile.coord);ctx.setTransform(1,0,0,1,pos.x,pos.y);this.renderer.renderTile(tile,this.keys)}}this.renderer.applyFilters()},setKey:function(key,options){this.setKeys([key],options)},getKeys:function(){return this.keys},setKeys:function(keys,options){this.keys=keys;this.animator.step(this.getKey());this.redraw(options&&options.direct);this.fire("change:time",{time:this.getTime(),step:this.getKey(),start:this.getKey(),end:this.getLastKey()})},getKey:function(){return this.keys[0]},getLastKey:function(){return this.keys[this.keys.length-1]},setStep:function(time){if(time===undefined||time.length!==undefined){throw new Error("setTime only accept scalars")}this.setKey(time)},renderRange:function(start,end){this.pause();var keys=[];for(var i=start;i<=end;i++){keys.push(i)}this.setKeys(keys)},resetRenderRange:function(){this.stop();this.play()},stepToTime:function(step){var times=this.provider.getKeySpan();var time=times.start+(times.end-times.start)*(step/this.provider.getSteps());return new Date(time)},timeToStep:function(timestamp){if(typeof timestamp==="Date")timestamp=timestamp.getTime();if(!this.provider)return 0;var times=this.provider.getKeySpan();var step=this.provider.getSteps()*(timestamp-times.start)/(times.end-times.start);return step},getStep:function(){return this.getKey()},getTime:function(){return this.stepToTime(this.getKey())},getTimeSpan:function(){return this.provider.getKeySpan()},setCartoCSS:function(cartocss){if(this.provider.options.named_map)throw new Error("CartoCSS style on named maps is read-only");if(!this.renderer)throw new Error("renderer is not valid");var shader=(new carto.RendererJS).render(cartocss);this.renderer.setShader(shader);var options=torque.common.TorqueLayer.optionsFromLayer(shader.findLayer({name:"Map"}));this.provider.setCartoCSS&&this.provider.setCartoCSS(cartocss);if(this.provider.setOptions(options)){this._reloadTiles()}torque.extend(this.options,options);if(options.animationDuration){this.animator.duration(options.animationDuration)}this.redraw();return this},getActivePointsBBox:function(step){var positions=[];for(var t in this._tiles){var tile=this._tiles[t];positions=positions.concat(this.renderer.getActivePointsBBox(tile,step))}return positions},getValues:function(step){var values=[];step=step===undefined?this.getKey():step;var t,tile;for(t in this._tiles){tile=this._tiles[t];this.renderer.getValues(tile,step,values)}return values},getValueForPos:function(x,y,step){step=step===undefined?this.getKey():step;var t,tile,pos,value=null,xx,yy;for(t in this._tiles){tile=this._tiles[t];pos=this.getTilePos(tile.coord);xx=x-pos.x;yy=y-pos.y;if(xx>=0&&yy>=0&&xx<this.renderer.TILE_SIZE&&yy<=this.renderer.TILE_SIZE){value=this.renderer.getValueFor(tile,step,xx,yy)}if(value!==null){return value}}return null},getValueForBBox:function(x,y,w,h){var xf=x+w,yf=y+h,_x=x;var sum=0;for(_y=y;_y<yf;_y+=this.options.resolution){for(_x=x;_x<xf;_x+=this.options.resolution){var thisValue=this.getValueForPos(_x,_y);if(thisValue){var bb=thisValue.bbox;var xy=this._map.latLngToContainerPoint([bb[1].lat,bb[1].lon]);if(xy.x<xf&&xy.y<yf){sum+=thisValue.value}}}}return sum},pointCount:function(step){var t,tile;step=step===undefined?this.key:step;var c=0;for(t in this._tiles){tile=this._tiles[t];if(tile){c+=tile.timeCount[step]}}return c},invalidate:function(){this.provider.reload()},setStepsRange:function(start,end){this.animator.stepsRange(start,end)},removeStepsRange:function(){this.animator.removeCustomStepsRange()},getStepsRange:function(){return this.animator.stepsRange()}});module.exports=ol.TorqueLayer}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../":11,"./canvas_layer":18,carto:41}],22:[function(require,module,exports){var MAX_HISTORY=1024;function Profiler(){}Profiler.metrics={};Profiler.get=function(name){return Profiler.metrics[name]||{max:0,min:Number.MAX_VALUE,avg:0,total:0,count:0,history:typeof Float32Array!=="undefined"?new Float32Array(MAX_HISTORY):[]}};Profiler.new_value=function(name,value){var t=Profiler.metrics[name]=Profiler.get(name);t.max=Math.max(t.max,value);t.min=Math.min(t.min,value);t.total+=value;++t.count;t.avg=t.total/t.count;t.history[t.count%MAX_HISTORY]=value};Profiler.print_stats=function(){for(k in Profiler.metrics){var t=Profiler.metrics[k];console.log(" === "+k+" === ");console.log(" max: "+t.max);console.log(" min: "+t.min);console.log(" avg: "+t.avg);console.log(" count: "+t.count);console.log(" total: "+t.total)}};function Metric(name){this.t0=null;this.name=name;this.count=0}Metric.prototype={start:function(){this.t0=+new Date;return this},_elapsed:function(){return+new Date-this.t0},end:function(){if(this.t0!==null){Profiler.new_value(this.name,this._elapsed());this.t0=null}},inc:function(qty){qty=qty===undefined?1:qty;Profiler.new_value(this.name,Profiler.get(this.name).count+(qty?qty:0))},dec:function(qty){qty=qty===undefined?1:qty;this.inc(-qty)},mark:function(){++this.count;if(this.t0===null){this.start();return}var elapsed=this._elapsed();if(elapsed>1){Profiler.new_value(this.name,this.count);this.count=0;this.start()}}};Profiler.metric=function(name){return new Metric(name)};module.exports=Profiler},{}],23:[function(require,module,exports){module.exports={json:require("./json"),JsonArray:require("./jsonarray"),windshaft:require("./windshaft"),tileJSON:require("./tilejson")}},{"./json":24,"./jsonarray":25,"./tilejson":26,"./windshaft":27}],24:[function(require,module,exports){var torque=require("../");var Profiler=require("../profiler");var Uint8Array=torque.types.Uint8Array;var Int32Array=torque.types.Int32Array;var Uint32Array=torque.types.Uint32Array;function format(str){for(var i=1;i<arguments.length;++i){var attrs=arguments[i];for(var attr in attrs){str=str.replace(RegExp("\\{"+attr+"\\}","g"),attrs[attr])}}return str}var json=function(options){this._ready=false;this._tileQueue=[];this.options=options;this.options.is_time=this.options.is_time===undefined?true:this.options.is_time;this.options.tiler_protocol=options.tiler_protocol||"http";this.options.tiler_domain=options.tiler_domain||"cartodb.com";this.options.tiler_port=options.tiler_port||80;if(this.options.data_aggregation){this.options.cumulative=this.options.data_aggregation==="cumulative"}if(options.resolution===undefined)throw new Error("resolution should be provided");if(options.steps===undefined)throw new Error("steps should be provided");if(options.start===undefined){this._fetchKeySpan()}else{this._setReady(true)}};json.prototype={proccessTile:function(rows,coord,zoom){var r;var x=new Uint8Array(rows.length);var y=new Uint8Array(rows.length);var prof_mem=Profiler.metric("ProviderJSON:mem");var prof_point_count=Profiler.metric("ProviderJSON:point_count");var prof_process_time=Profiler.metric("ProviderJSON:process_time").start();var dates=0;var maxDateSlots=-1;for(r=0;r<rows.length;++r){var row=rows[r];dates+=row.dates__uint16.length;for(var d=0;d<row.dates__uint16.length;++d){maxDateSlots=Math.max(maxDateSlots,row.dates__uint16[d])}}if(this.options.cumulative){dates=(1+maxDateSlots)*rows.length}var type=this.options.cumulative?Uint32Array:Uint8Array;var timeIndex=new Int32Array(maxDateSlots+1);var timeCount=new Int32Array(maxDateSlots+1);var renderData=new(this.options.valueDataType||type)(dates);var renderDataPos=new Uint32Array(dates);prof_mem.inc(4*maxDateSlots+4*maxDateSlots+dates+dates*4);prof_point_count.inc(rows.length);var rowsPerSlot={};for(var r=0;r<rows.length;++r){var row=rows[r];x[r]=row.x__uint8*this.options.resolution;if(row.y__uint8===-1){y[r]=0}else{y[r]=row.y__uint8*this.options.resolution}var dates=row.dates__uint16;var vals=row.vals__uint8;if(!this.options.cumulative){for(var j=0,len=dates.length;j<len;++j){var rr=rowsPerSlot[dates[j]]||(rowsPerSlot[dates[j]]=[]);if(this.options.cumulative){vals[j]+=prev_val}prev_val=vals[j];rr.push([r,vals[j]])}}else{var valByDate={};for(var j=0,len=dates.length;j<len;++j){valByDate[dates[j]]=vals[j]}var accum=0;for(var j=dates[0];j<=maxDateSlots;++j){var rr=rowsPerSlot[j]||(rowsPerSlot[j]=[]);var v=valByDate[j];if(v){accum+=v}rr.push([r,accum])}}}var renderDataIndex=0;var timeSlotIndex=0;var i=0;for(var i=0;i<=maxDateSlots;++i){var c=0;var slotRows=rowsPerSlot[i];if(slotRows){for(var r=0;r<slotRows.length;++r){var rr=slotRows[r];++c;renderDataPos[renderDataIndex]=rr[0];renderData[renderDataIndex]=rr[1];++renderDataIndex}}timeIndex[i]=timeSlotIndex;timeCount[i]=c;timeSlotIndex+=c}prof_process_time.end();return{x:x,y:y,z:zoom,coord:{x:coord.x,y:coord.y,z:zoom},timeCount:timeCount,timeIndex:timeIndex,renderDataPos:renderDataPos,renderData:renderData,maxDate:maxDateSlots}},_host:function(){var opts=this.options;var port=opts.sql_api_port;var domain=(opts.user_name||opts.user)+"."+(opts.sql_api_domain||"cartodb.com")+(port?":"+port:"");var protocol=opts.sql_api_protocol||"http";return this.options.url||protocol+"://"+domain+"/api/v2/sql"},url:function(subhost){var opts=this.options;var protocol=opts.sql_api_protocol||"http";if(!this.options.cdn_url){return this._host()}var h=protocol+"://";if(subhost){h+=subhost+"."}var cdn_host=opts.cdn_url;if(!cdn_host.http&&!cdn_host.https){throw new Error("cdn_host should contain http and/or https entries")}h+=cdn_host[protocol]+"/"+(opts.user_name||opts.user)+"/api/v2/sql";return h},_hash:function(str){var hash=0;if(!str||str.length==0)return hash;for(var i=0,l=str.length;i<l;++i){hash=(hash<<5)-hash+str.charCodeAt(i)|0}return hash},_extraParams:function(){if(this.options.extra_params){var p=[];for(var k in this.options.extra_params){var v=this.options.extra_params[k];if(v){p.push(k+"="+encodeURIComponent(v))}}return p.join("&")}return null},isHttps:function(){return this.options.sql_api_protocol&&this.options.sql_api_protocol==="https"},sql:function(sql,callback,options){options=options||{};var subdomains=this.options.subdomains||"0123";if(this.isHttps()){subdomains=[null]}var url;if(options.no_cdn){url=this._host()}else{url=this.url(subdomains[Math.abs(this._hash(sql))%subdomains.length])}var extra=this._extraParams();torque.net.get(url+"?q="+encodeURIComponent(sql)+(extra?"&"+extra:""),function(data){if(options.parseJSON){data=JSON.parse(data&&data.responseText)}callback&&callback(data)})},getTileData:function(coord,zoom,callback){if(!this._ready){this._tileQueue.push([coord,zoom,callback])}else{this._getTileData(coord,zoom,callback)}},_setReady:function(ready){this._ready=true;this._processQueue();this.options.ready&&this.options.ready()},_processQueue:function(){var item;while(item=this._tileQueue.pop()){this._getTileData.apply(this,item)}},_getTileData:function(coord,zoom,callback){var prof_fetch_time=Profiler.metric("ProviderJSON:tile_fetch_time").start();this.table=this.options.table;var numTiles=1<<zoom;var column_conv=this.options.column;if(this.options.is_time){column_conv=format("date_part('epoch', {column})",this.options)}var sql=""+"WITH "+"par AS ("+" SELECT CDB_XYZ_Resolution({zoom})*{resolution} as res"+", 256/{resolution} as tile_size"+", CDB_XYZ_Extent({x}, {y}, {zoom}) as ext "+"),"+"cte AS ( "+" SELECT ST_SnapToGrid(i.the_geom_webmercator, p.res) g"+", {countby} c"+", floor(({column_conv} - {start})/{step}) d"+" FROM ({_sql}) i, par p "+" WHERE i.the_geom_webmercator && p.ext "+" GROUP BY g, d"+") "+""+"SELECT (st_x(g)-st_xmin(p.ext))/p.res x__uint8, "+" (st_y(g)-st_ymin(p.ext))/p.res y__uint8,"+" array_agg(c) vals__uint8,"+" array_agg(d) dates__uint16"+" FROM cte, par p where (st_y(g)-st_ymin(p.ext))/p.res < tile_size and (st_x(g)-st_xmin(p.ext))/p.res < tile_size GROUP BY x__uint8, y__uint8";var query=format(sql,this.options,{zoom:zoom,x:coord.x,y:coord.y,column_conv:column_conv,_sql:this.getSQL()});var self=this;this.sql(query,function(data){if(data){var rows=JSON.parse(data.responseText).rows;callback(self.proccessTile(rows,coord,zoom))}else{callback(null)}prof_fetch_time.end()})},getKeySpan:function(){return{start:this.options.start*1e3,end:this.options.end*1e3,step:this.options.step,steps:this.options.steps,columnType:this.options.is_time?"date":"number"}},setColumn:function(column,isTime){this.options.column=column;this.options.is_time=isTime===undefined?true:false;this.reload()},setResolution:function(res){this.options.resolution=res},setOptions:function(opt){var refresh=false;if(opt.resolution!==undefined&&opt.resolution!==this.options.resolution){this.options.resolution=opt.resolution;refresh=true}if(opt.steps!==undefined&&opt.steps!==this.options.steps){this.setSteps(opt.steps,{silent:true});refresh=true}if(opt.column!==undefined&&opt.column!==this.options.column){this.options.column=opt.column;refresh=true}if(opt.countby!==undefined&&opt.countby!==this.options.countby){this.options.countby=opt.countby;refresh=true}if(opt.data_aggregation!==undefined){var c=opt.data_aggregation==="cumulative";if(this.options.cumulative!==c){this.options.cumulative=c;refresh=true}}if(refresh)this.reload();return refresh},reload:function(){this._ready=false;this._fetchKeySpan()},setSQL:function(sql){if(this.options.sql!=sql){this.options.sql=sql;this.reload()}},getSteps:function(){return Math.min(this.options.steps,this.options.data_steps)},setSteps:function(steps,opt){opt=opt||{};if(this.options.steps!==steps){this.options.steps=steps;this.options.step=(this.options.end-this.options.start)/this.getSteps();this.options.step=this.options.step||1;if(!opt.silent)this.reload()}},getBounds:function(){return this.options.bounds},getSQL:function(){return this.options.sql||"select * from "+this.options.table},_tilerHost:function(){var opts=this.options;var user=opts.user_name||opts.user;return opts.tiler_protocol+"://"+(user?user+".":"")+opts.tiler_domain+(opts.tiler_port!=""?":"+opts.tiler_port:"")},_fetchUpdateAt:function(callback){var self=this;var layergroup={version:"1.0.1",stat_tag:this.options.stat_tag||"torque",layers:[{type:"cartodb",options:{cartocss_version:"2.1.1",cartocss:"#layer {}",sql:this.getSQL()}}]};var url=this._tilerHost()+"/tiles/layergroup";var extra=this._extraParams();if(extra){extra=extra.replace("api_key=","map_key=")}url=url+"?config="+encodeURIComponent(JSON.stringify(layergroup))+"&callback=?"+(extra?"&"+extra:"");torque.net.jsonp(url,function(data){var query=format("select * from ({sql}) __torque_wrap_sql limit 0",{sql:self.getSQL()});self.sql(query,function(queryData){if(data&&queryData){callback({updated_at:data.last_updated,fields:queryData.fields})}},{parseJSON:true})})},_fetchKeySpan:function(){var self=this;var max_col,min_col,max_tmpl,min_tmpl;this._fetchUpdateAt(function(data){if(!data)return;self.options.extra_params=self.options.extra_params||{};self.options.extra_params.last_updated=data.updated_at||0;self.options.extra_params.cache_policy="persist";self.options.is_time=data.fields[self.options.column].type==="date";var column_conv=self.options.column;if(self.options.is_time){max_tmpl="date_part('epoch', max({column}))";min_tmpl="date_part('epoch', min({column}))";column_conv=format("date_part('epoch', {column})",self.options)}else{max_tmpl="max({column})";min_tmpl="min({column})"}max_col=format(max_tmpl,{column:self.options.column});min_col=format(min_tmpl,{column:self.options.column});var sql_stats=" SELECT "+"st_xmax(st_envelope(st_collect(the_geom))) xmax, "+"st_ymax(st_envelope(st_collect(the_geom))) ymax, "+"st_xmin(st_envelope(st_collect(the_geom))) xmin, "+"st_ymin(st_envelope(st_collect(the_geom))) ymin, "+"count(*) as num_steps, "+"{max_col} max_date, "+"{min_col} min_date FROM ({sql}) __torque_wrap_sql ";var sql=format(sql_stats,{max_col:max_col,min_col:min_col,column:column_conv,sql:self.getSQL()});self.sql(sql,function(data){data=data.rows[0];self.options.start=data.min_date;self.options.end=data.max_date;self.options.step=(data.max_date-data.min_date)/Math.min(self.options.steps,data.num_steps>>0);self.options.data_steps=data.num_steps>>0;self.options.step=self.options.step||1;self.options.bounds=[[data.ymin,data.xmin],[data.ymax,data.xmax]];self._setReady(true)},{parseJSON:true,no_cdn:true})},{parseJSON:true,no_cdn:true})}};module.exports=json},{"../":11,"../profiler":22}],25:[function(require,module,exports){var torque=require("../");var Profiler=require("../profiler");var Uint8Array=torque.types.Uint8Array;var Int32Array=torque.types.Int32Array;var Uint32Array=torque.types.Uint32Array;function format(str,attrs){for(var i=1;i<arguments.length;++i){var attrs=arguments[i];for(var attr in attrs){str=str.replace(RegExp("\\{"+attr+"\\}","g"),attrs[attr])}}return str}var json=function(options){this.options=options};json.prototype={aggregateByKey:function(rows){function getKeys(row){var HEADER_SIZE=3;var valuesCount=row.data[2];var keys={};for(var s=0;s<valuesCount;++s){keys[row.data[HEADER_SIZE+s]]=row.data[HEADER_SIZE+valuesCount+s]}return keys}var keys={};for(r=0;r<rows.length;++r){var rowKeys=getKeys(rows[r]);for(var k in rowKeys){keys[k]=keys[k]||0;keys[k]+=rowKeys[k]}}return keys},proccessTile:function(rows,coord,zoom){var r;var x=new Uint8Array(rows.length);var y=new Uint8Array(rows.length);var self=this;function decode_row(row){var HEADER_SIZE=3;var o={x:row.data[0]*self.options.resolution,y:row.data[1]*self.options.resolution,valuesCount:row.data[2],times:[],values:[]};for(var s=0;s<o.valuesCount;++s){o.times.push(row.data[HEADER_SIZE+s]);o.values.push(row.data[HEADER_SIZE+o.valuesCount+s])}if(self.options.cumulative){for(var s=1;s<o.valuesCount;++s){o.values[s]+=o.values[s-1]}}return o}for(r=0;r<rows.length;++r){rows[r]=decode_row(rows[r])}var dates=0;var maxDateSlots=0;for(r=0;r<rows.length;++r){var row=rows[r];dates+=row.times.length;for(var d=0;d<row.times.length;++d){maxDateSlots=Math.max(maxDateSlots,row.times[d])}}var timeIndex=new Int32Array(maxDateSlots+1);var timeCount=new Int32Array(maxDateSlots+1);var renderData=new(this.options.valueDataType||Uint8Array)(dates);var renderDataPos=new Uint32Array(dates);var rowsPerSlot={};for(var r=0;r<rows.length;++r){var row=rows[r];x[r]=row.x;y[r]=row.y;var dates=row.times;var vals=row.values;for(var j=0,len=dates.length;j<len;++j){var rr=rowsPerSlot[dates[j]]||(rowsPerSlot[dates[j]]=[]);rr.push([r,vals[j]])}}var renderDataIndex=0;var timeSlotIndex=0;var i=0;for(var i=0;i<=maxDateSlots;++i){var c=0;var slotRows=rowsPerSlot[i];if(slotRows){for(var r=0;r<slotRows.length;++r){var rr=slotRows[r];++c;renderDataPos[renderDataIndex]=rr[0];renderData[renderDataIndex]=rr[1];++renderDataIndex}}timeIndex[i]=timeSlotIndex;timeCount[i]=c;timeSlotIndex+=c}return{x:x,y:y,coord:{x:coord.x,y:coord.y,z:zoom},timeCount:timeCount,timeIndex:timeIndex,renderDataPos:renderDataPos,renderData:renderData}},url:function(){return this.options.url},tileUrl:function(coord,zoom){var template=this.url();var s=(this.options.subdomains||"abcd")[(coord.x+coord.y+zoom)%4];return template.replace("{x}",coord.x).replace("{y}",coord.y).replace("{z}",zoom).replace("{s}",s)},getTile:function(coord,zoom,callback){var template=this.tileUrl(coord,zoom);var self=this;var fetchTime=Profiler.metric("jsonarray:fetch time");fetchTime.start();torque.net.get(template,function(data){fetchTime.end();if(data){data=JSON.parse(data.responseText)}callback(data)})},getTileData:function(coord,zoom,callback){var template=this.tileUrl(coord,zoom);var self=this;var fetchTime=Profiler.metric("jsonarray:fetch time");fetchTime.start();torque.net.get(template,function(data){fetchTime.end();var processed=null;var processingTime=Profiler.metric("jsonarray:processing time");var parsingTime=Profiler.metric("jsonarray:parsing time");try{processingTime.start();parsingTime.start();var rows=JSON.parse(data.responseText||data.response).rows;parsingTime.end();processed=self.proccessTile(rows,coord,zoom);processingTime.end()}catch(e){console.error("problem parsing JSON on ",coord,zoom)}callback(processed)})}};module.exports=json},{"../":11,"../profiler":22}],26:[function(require,module,exports){var torque=require("../");var Uint8Array=torque.types.Uint8Array;var Int32Array=torque.types.Int32Array;var Uint32Array=torque.types.Uint32Array;var Uint8ClampedArray=torque.types.Uint8ClampedArray;function format(str){for(var i=1;i<arguments.length;++i){var attrs=arguments[i];for(var attr in attrs){str=str.replace(RegExp("\\{"+attr+"\\}","g"),attrs[attr])}}return str}var tileJSON=function(options){this._ready=false;this._tileQueue=[];this.options=options;this.options.coordinates_data_type=this.options.coordinates_data_type||Uint8Array;if(this.options.data_aggregation){this.options.cumulative=this.options.data_aggregation==="cumulative"}if(this.options.auth_token){var e=this.options.extra_params||(this.options.extra_params={});e.auth_token=this.options.auth_token}if(!this.options.no_fetch_map){this._fetchMap()}};tileJSON.prototype={NAME:"tileJSON",proccessTile:function(rows,coord,zoom){var r;var x=new this.options.coordinates_data_type(rows.length);var y=new this.options.coordinates_data_type(rows.length);var dates=0;var maxDateSlots=-1;for(r=0;r<rows.length;++r){var row=rows[r];dates+=row.dates__uint16.length;for(var d=0;d<row.dates__uint16.length;++d){maxDateSlots=Math.max(maxDateSlots,row.dates__uint16[d])}}if(this.options.cumulative){dates=(1+maxDateSlots)*rows.length}var type=this.options.cumulative?Uint32Array:Uint8ClampedArray;var timeIndex=new Int32Array(maxDateSlots+1);var timeCount=new Int32Array(maxDateSlots+1);var renderData=new(this.options.valueDataType||type)(dates);var renderDataPos=new Uint32Array(dates);var rowsPerSlot={};for(var r=0;r<rows.length;++r){var row=rows[r];x[r]=row.x__uint8*this.options.resolution;y[r]=row.y__uint8*this.options.resolution;var dates=row.dates__uint16;var vals=row.vals__uint8;if(!this.options.cumulative){for(var j=0,len=dates.length;j<len;++j){var rr=rowsPerSlot[dates[j]]||(rowsPerSlot[dates[j]]=[]);if(this.options.cumulative){vals[j]+=prev_val}prev_val=vals[j];rr.push([r,vals[j]])}}else{var valByDate={};for(var j=0,len=dates.length;j<len;++j){valByDate[dates[j]]=vals[j]}var accum=0;for(var j=dates[0];j<=maxDateSlots;++j){var rr=rowsPerSlot[j]||(rowsPerSlot[j]=[]);var v=valByDate[j];if(v){accum+=v}rr.push([r,accum])}}}var renderDataIndex=0;var timeSlotIndex=0;var i=0;for(var i=0;i<=maxDateSlots;++i){var c=0;var slotRows=rowsPerSlot[i];if(slotRows){for(var r=0;r<slotRows.length;++r){var rr=slotRows[r];++c;renderDataPos[renderDataIndex]=rr[0];renderData[renderDataIndex]=rr[1];++renderDataIndex}}timeIndex[i]=timeSlotIndex;timeCount[i]=c;timeSlotIndex+=c}return{x:x,y:y,z:zoom,coord:{x:coord.x,y:coord.y,z:zoom},timeCount:timeCount,timeIndex:timeIndex,renderDataPos:renderDataPos,renderData:renderData,maxDate:maxDateSlots}},setSteps:function(steps,opt){opt=opt||{};if(this.options.steps!==steps){this.options.steps=steps;this.options.step=(this.options.end-this.options.start)/this.getSteps();this.options.step=this.options.step||1;if(!opt.silent)this.reload()}},setOptions:function(opt){var refresh=false;if(opt.resolution!==undefined&&opt.resolution!==this.options.resolution){this.options.resolution=opt.resolution;refresh=true}if(opt.steps!==undefined&&opt.steps!==this.options.steps){this.setSteps(opt.steps,{silent:true});refresh=true}if(opt.column!==undefined&&opt.column!==this.options.column){this.options.column=opt.column;refresh=true}if(opt.countby!==undefined&&opt.countby!==this.options.countby){this.options.countby=opt.countby;refresh=true}if(opt.data_aggregation!==undefined){var c=opt.data_aggregation==="cumulative";if(this.options.cumulative!==c){this.options.cumulative=c;refresh=true}}if(refresh)this.reload();return refresh},_extraParams:function(e){e=torque.extend(torque.extend({},e),this.options.extra_params);if(e){var p=[];for(var k in e){var v=e[k];if(v){if(torque.isArray(v)){for(var i=0,len=v.length;i<len;i++){p.push(k+"[]="+encodeURIComponent(v[i]))}}else{p.push(k+"="+encodeURIComponent(v))}}}return p.join("&")}return null},getTileData:function(coord,zoom,callback){if(!this._ready){this._tileQueue.push([coord,zoom,callback])}else{this._getTileData(coord,zoom,callback)}},_setReady:function(ready){this._ready=true;this._processQueue();this.options.ready&&this.options.ready()},_processQueue:function(){var item;while(item=this._tileQueue.pop()){this._getTileData.apply(this,item)}},_getTileData:function(coord,zoom,callback){var self=this;var subdomains=this.options.subdomains||"0123";var limit_x=Math.pow(2,zoom);var corrected_x=(coord.x%limit_x+limit_x)%limit_x;var index=Math.abs(corrected_x+coord.y)%subdomains.length;var extra=this._extraParams();var url=this.templateUrl.replace("{x}",corrected_x).replace("{y}",coord.y).replace("{z}",zoom).replace("{s}",subdomains[index]);url+=extra;torque.net.get(url,function(data){if(data&&data.responseText){var rows=JSON.parse(data.responseText);callback(self.proccessTile(rows,coord,zoom))}else{callback(null)}})},getKeySpan:function(){return{start:this.options.start,end:this.options.end,step:this.options.step,steps:this.options.steps,columnType:this.options.column_type}},setColumn:function(column,isTime){this.options.column=column;this.options.is_time=isTime===undefined?true:false;this.reload()},reload:function(){this._ready=false;this._fetchMap()},getSteps:function(){return Math.min(this.options.steps,this.options.data_steps)},getBounds:function(){return this.options.bounds},getSQL:function(){return this.options.sql||"select * from "+this.options.table},setSQL:function(sql){if(this.options.sql!=sql){this.options.sql=sql;this.reload()}},_isUserTemplateUrl:function(t){return t&&t.indexOf("{user}")!==-1},isHttps:function(){return this.options.maps_api_template.indexOf("https")===0},_fetchMap:function(callback){var self=this;torque.net.get(this.options.tileJSON,function(data){data=JSON.parse(data.response);if(data){if(data.errors){self.options.errorCallback&&self.options.errorCallback(data.errors);return}for(var k in data){self.options[k]=data[k]}self.templateUrl=data.tiles[0];if(self.templateUrl.indexOf("http")!==0){self.templateUrl=self.options.tileJSON.substring(0,self.options.tileJSON.lastIndexOf("/")+1)+self.templateUrl}self._setReady(true)}})}};module.exports=tileJSON},{"../":11}],27:[function(require,module,exports){var torque=require("../");var Profiler=require("../profiler");var Uint8Array=torque.types.Uint8Array;var Int32Array=torque.types.Int32Array;var Uint32Array=torque.types.Uint32Array;var Uint8ClampedArray=torque.types.Uint8ClampedArray;function format(str){for(var i=1;i<arguments.length;++i){var attrs=arguments[i];for(var attr in attrs){str=str.replace(RegExp("\\{"+attr+"\\}","g"),attrs[attr])}}return str}var windshaft=function(options){this._ready=false;this._tileQueue=[];this.options=options;this.options.is_time=this.options.is_time===undefined?true:this.options.is_time;this.options.tiler_protocol=options.tiler_protocol||"http";this.options.tiler_domain=options.tiler_domain||"cartodb.com";this.options.tiler_port=options.tiler_port||80;if(!options.maps_api_template){this._buildMapsApiTemplate(this.options)}else{this.options.maps_api_template=options.maps_api_template}this.options.coordinates_data_type=this.options.coordinates_data_type||Uint8Array;if(this.options.data_aggregation){this.options.cumulative=this.options.data_aggregation==="cumulative"}if(this.options.auth_token){var e=this.options.extra_params||(this.options.extra_params={});e.auth_token=this.options.auth_token}if(!this.options.no_fetch_map){this._fetchMap()}};windshaft.prototype={proccessTile:function(rows,coord,zoom){var r;var x=new this.options.coordinates_data_type(rows.length);var y=new this.options.coordinates_data_type(rows.length);var prof_mem=Profiler.metric("torque.provider.windshaft.mem");var prof_point_count=Profiler.metric("torque.provider.windshaft.points");var prof_process_time=Profiler.metric("torque.provider.windshaft.process_time").start();var dates=0;var maxDateSlots=-1;for(r=0;r<rows.length;++r){var row=rows[r];dates+=row.dates__uint16.length;for(var d=0;d<row.dates__uint16.length;++d){maxDateSlots=Math.max(maxDateSlots,row.dates__uint16[d])}}if(this.options.cumulative){dates=(1+maxDateSlots)*rows.length}var type=this.options.cumulative?Uint32Array:Uint8ClampedArray;var timeIndex=new Int32Array(maxDateSlots+1);var timeCount=new Int32Array(maxDateSlots+1);var renderData=new(this.options.valueDataType||type)(dates);var renderDataPos=new Uint32Array(dates);prof_mem.inc(4*maxDateSlots+4*maxDateSlots+dates+dates*4);prof_point_count.inc(rows.length);var rowsPerSlot={};for(var r=0;r<rows.length;++r){var row=rows[r];x[r]=row.x__uint8*this.options.resolution;y[r]=row.y__uint8*this.options.resolution;var dates=row.dates__uint16;var vals=row.vals__uint8;if(!this.options.cumulative){for(var j=0,len=dates.length;j<len;++j){var rr=rowsPerSlot[dates[j]]||(rowsPerSlot[dates[j]]=[]);if(this.options.cumulative){vals[j]+=prev_val}prev_val=vals[j];rr.push([r,vals[j]])}}else{var valByDate={};for(var j=0,len=dates.length;j<len;++j){valByDate[dates[j]]=vals[j]}var accum=0;for(var j=dates[0];j<=maxDateSlots;++j){var rr=rowsPerSlot[j]||(rowsPerSlot[j]=[]);var v=valByDate[j];if(v){accum+=v}rr.push([r,accum])}}}var renderDataIndex=0;var timeSlotIndex=0;var i=0;for(var i=0;i<=maxDateSlots;++i){var c=0;var slotRows=rowsPerSlot[i];if(slotRows){for(var r=0;r<slotRows.length;++r){var rr=slotRows[r];++c;renderDataPos[renderDataIndex]=rr[0];renderData[renderDataIndex]=rr[1];++renderDataIndex}}timeIndex[i]=timeSlotIndex;timeCount[i]=c;timeSlotIndex+=c}prof_process_time.end();return{x:x,y:y,z:zoom,coord:{x:coord.x,y:coord.y,z:zoom},timeCount:timeCount,timeIndex:timeIndex,renderDataPos:renderDataPos,renderData:renderData,maxDate:maxDateSlots}},proccessTileError:function(error,coord,zoom){return{error:error,coord:{x:coord.x,y:coord.y,z:zoom}}},setSteps:function(steps,opt){opt=opt||{};if(this.options.steps!==steps){this.options.steps=steps;this.options.step=(this.options.end-this.options.start)/this.getSteps();this.options.step=this.options.step||1;if(!opt.silent)this.reload()}},setOptions:function(opt){var refresh=false;if(opt.resolution!==undefined&&opt.resolution!==this.options.resolution){this.options.resolution=opt.resolution;refresh=true}if(opt.steps!==undefined&&opt.steps!==this.options.steps){this.setSteps(opt.steps,{silent:true});refresh=true}if(opt.column!==undefined&&opt.column!==this.options.column){this.options.column=opt.column;refresh=true}if(opt.countby!==undefined&&opt.countby!==this.options.countby){this.options.countby=opt.countby;refresh=true}if(opt.data_aggregation!==undefined){var c=opt.data_aggregation==="cumulative";if(this.options.cumulative!==c){this.options.cumulative=c;refresh=true}}if(refresh)this.reload();return refresh},_extraParams:function(e){e=torque.extend(torque.extend({},e),this.options.extra_params);if(e){var p=[];for(var k in e){var v=e[k];if(v){if(torque.isArray(v)){for(var i=0,len=v.length;i<len;i++){p.push(k+"[]="+encodeURIComponent(v[i]))}}else{p.push(k+"="+encodeURIComponent(v))}}}return p.join("&")}return null},getTileData:function(coord,zoom,callback){if(!this._ready){this._tileQueue.push([coord,zoom,callback])}else{this._getTileData(coord,zoom,callback)}},_setReady:function(ready){this._ready=true;this._processQueue();this.options.ready&&this.options.ready()},_processQueue:function(){var item;while(item=this._tileQueue.pop()){this._getTileData.apply(this,item)}},_getTileData:function(coord,zoom,callback){var self=this;var prof_fetch_time=Profiler.metric("torque.provider.windshaft.tile.fetch").start();var subdomains=this.options.subdomains||"0123";var limit_x=Math.pow(2,zoom);var corrected_x=(coord.x%limit_x+limit_x)%limit_x;var index=Math.abs(corrected_x+coord.y)%subdomains.length;var url=this.templateUrl.replace("{x}",corrected_x).replace("{y}",coord.y).replace("{z}",zoom).replace("{s}",subdomains[index]);var extra=this._extraParams();torque.net.get(url+(extra?"?"+extra:""),function(response){prof_fetch_time.end();if(response&&response.responseText){var body=JSON.parse(response.responseText);if(response.status===429){var error=body.errors_with_context[0];callback(self.proccessTileError(error,coord,zoom),error)}else{callback(self.proccessTile(body,coord,zoom))}}else{Profiler.metric("torque.provider.windshaft.tile.error").inc();callback(null)}})},getKeySpan:function(){return{start:this.options.start,end:this.options.end,step:this.options.step,steps:this.options.steps,columnType:this.options.column_type}},setColumn:function(column,isTime){this.options.column=column;this.options.is_time=isTime===undefined?true:false;this.reload()},reload:function(){this._ready=false;this._fetchMap()},getSteps:function(){return Math.min(this.options.steps,this.options.data_steps)},getBounds:function(){return this.options.bounds},getSQL:function(){return this.options.sql||"select * from "+this.options.table},setSQL:function(sql){if(this.options.sql!=sql){this.options.sql=sql;this.reload()}},_buildMapsApiTemplate:function(opts){var user=opts.user_name||opts.user;opts.maps_api_template=opts.tiler_protocol+"://"+(user?"{user}.":"")+opts.tiler_domain+(opts.tiler_port!=""?":"+opts.tiler_port:"")},_tilerHost:function(){var opts=this.options;var user=opts.user_name||opts.user;return opts.maps_api_template.replace("{user}",user)},url:function(){var opts=this.options;var cdn_host=opts.cdn_url;var has_empty_cdn=!cdn_host||cdn_host&&(!cdn_host.http&&!cdn_host.https);if(opts.no_cdn||has_empty_cdn){return this._tilerHost()}else{var protocol=this.isHttps()?"https":"http";var h=protocol+"://";if(!this.isHttps()){h+="{s}."}var cdn_url=cdn_host[protocol];if(!this._isUserTemplateUrl(cdn_url)){cdn_url=cdn_url+"/{user}"}var user=opts.user_name||opts.user;h+=cdn_url.replace("{user}",user);return h}},_isUserTemplateUrl:function(t){return t&&t.indexOf("{user}")!==-1},isHttps:function(){return this.options.maps_api_template.indexOf("https")===0},_generateCartoCSS:function(){var attr={"-torque-frame-count":this.options.steps,"-torque-resolution":this.options.resolution,"-torque-aggregation-function":"'"+this.options.countby+"'","-torque-time-attribute":"'"+this.options.column+"'","-torque-data-aggregation":this.options.cumulative?"cumulative":"linear"};var st="Map{";for(var k in attr){st+=k+":"+attr[k]+";"}return st+"}"},_fetchMap:function(callback){var self=this;var layergroup={};var host=this.options.dynamic_cdn?this.url().replace("{s}","0"):this._tilerHost();var url=host+"/api/v1/map";var named=this.options.named_map;var allParams={};if(named){url=host+"/api/v1/map/named/"+named.name+"/jsonp";if(typeof named.params!=="undefined"){layergroup=named.params}}else{layergroup={version:"1.0.1",stat_tag:this.options.stat_tag||"torque",layers:[{type:"torque",options:{cartocss_version:"1.0.0",cartocss:this._generateCartoCSS(),sql:this.getSQL()}}]}}if(this.options.stat_tag){allParams["stat_tag"]=this.options.stat_tag}extra=this._extraParams(allParams);if(extra){extra=extra.replace("api_key=","map_key=")}url=url+"?config="+encodeURIComponent(JSON.stringify(layergroup))+"&callback=?"+(extra?"&"+extra:"");var map_instance_time=Profiler.metric("torque.provider.windshaft.layergroup.time").start();torque.net.jsonp(url,function(data){map_instance_time.end();if(data){if(data.errors){self.options.errorCallback&&self.options.errorCallback(data.errors);return}var torque_key=Object.keys(data.metadata.torque)[0];var opt=data.metadata.torque[torque_key];for(var k in opt){self.options[k]=opt[k]}if(data.cdn_url){var c=self.options.cdn_url=self.options.cdn_url||{};c.http=data.cdn_url.http||c.http;c.https=data.cdn_url.https||c.https}self.templateUrl=self.url()+"/api/v1/map/"+data.layergroupid+"/"+torque_key+"/{z}/{x}/{y}.json.torque";self._setReady(true)}else{Profiler.metric("torque.provider.windshaft.layergroup.error").inc()}},{callbackName:self.options.instanciateCallback})}};module.exports=windshaft},{"../":11,"../profiler":22}],28:[function(require,module,exports){var TAU=Math.PI*2;var LINEWIDTH_MIN_VALUE=.05;var MAX_SPRITE_RADIUS=255;function renderPoint(ctx,st){ctx.fillStyle=st["marker-fill"];var pixel_size=st["marker-width"];ctx.beginPath();ctx.arc(0,0,pixel_size,0,TAU,true,true);ctx.closePath();if(st["marker-opacity"]!==undefined)st["marker-fill-opacity"]=st["marker-line-opacity"]=st["marker-opacity"];if(st["marker-fill"]){ctx.globalAlpha=st["marker-fill-opacity"]>=0?st["marker-fill-opacity"]:1;if(ctx.globalAlpha>0){ctx.fill()}}if(st["marker-line-color"]&&st["marker-line-width"]&&st["marker-line-width"]>LINEWIDTH_MIN_VALUE){ctx.globalAlpha=st["marker-line-opacity"]>=0?st["marker-line-opacity"]:1;if(st["marker-line-width"]!==undefined){ctx.lineWidth=st["marker-line-width"]}ctx.strokeStyle=st["marker-line-color"];if(ctx.globalAlpha>0){ctx.stroke()}}}function renderRectangle(ctx,st){ctx.fillStyle=st["marker-fill"];var pixel_size=st["marker-width"];var w=pixel_size*2;if(st["marker-fill"]){if(st["marker-fill-opacity"]!==undefined||st["marker-opacity"]!==undefined){ctx.globalAlpha=st["marker-fill-opacity"]||st["marker-opacity"]}ctx.fillRect(-pixel_size,-pixel_size,w,w)}ctx.globalAlpha=1;if(st["marker-line-color"]&&st["marker-line-width"]){if(st["marker-line-opacity"]){ctx.globalAlpha=st["marker-line-opacity"]}if(st["marker-line-width"]){ctx.lineWidth=st["marker-line-width"]}ctx.strokeStyle=st["marker-line-color"];if(ctx.globalAlpha>0){ctx.strokeRect(-pixel_size,-pixel_size,w,w)}}}function renderSprite(ctx,img,st){if(img.complete){if(st["marker-fill-opacity"]!==undefined||st["marker-opacity"]!==undefined){ctx.globalAlpha=st["marker-fill-opacity"]||st["marker-opacity"]}ctx.drawImage(img,0,0,Math.min(img.width,MAX_SPRITE_RADIUS),Math.min(img.height,MAX_SPRITE_RADIUS))}}module.exports={renderPoint:renderPoint,renderSprite:renderSprite,renderRectangle:renderRectangle,MAX_SPRITE_RADIUS:MAX_SPRITE_RADIUS}},{}],29:[function(require,module,exports){var d3=require("d3");var jenks=require("turf-jenks");function TorqueDataSource(tiles){this.tiles=tiles}module.exports=TorqueDataSource;TorqueDataSource.prototype.getName=function(){return"TorqueDataSource"};TorqueDataSource.prototype.getRamp=function(column,bins,method,callback){var ramp=[];var error=null;var values=Object.keys(this.tiles).map(function(t){return this.tiles[t].renderData}.bind(this)).reduce(function(p,c,i){for(var i=0;i<c.length;i++){p.push(c[i])}return p},[]);var extent=d3.extent(values);if(!method||method==="equal"||method==="jenks"){var scale=d3.scale.linear().domain([0,bins]).range(extent);ramp=d3.range(bins).map(scale)}else if(method==="quantiles"){ramp=d3.scale.quantile().range(d3.range(bins)).domain(values).quantiles()}else if(method==="headstails"){var sortedValues=values.sort(function(a,b){return a-b});if(sortedValues.length<bins){error="Number of bins should be lower than total number of rows"}else if(sortedValues.length===bins){ramp=sortedValues}else{var mean=d3.mean(sortedValues);ramp.push(mean);for(var i=1;i<bins;i++){ramp.push(d3.mean(sortedValues.filter(function(v){return v>ramp[length-1]})))}}}else{error=new Error("Quantification method "+method+" is not supported")}callback(error,ramp)}},{d3:80,"turf-jenks":162}],30:[function(require,module,exports){module.exports={cartocss:require("./cartocss_render"),Point:require("./point"),Rectangle:require("./rectangle")}},{"./cartocss_render":28,"./point":31,"./rectangle":32}],31:[function(require,module,exports){(function(global){var torque=require("../");var cartocss=require("./cartocss_render");var Profiler=require("../profiler");var carto=global.carto||require("carto");var Filters=require("./torque_filters");var turbocarto=require("turbo-carto");var CartoDatasource=require("./datasource");var ERROR_IMG_URL="http://s3.amazonaws.com/com.cartodb.assets.static/error.svg";var DEFAULT_CARTOCSS=["#layer {"," marker-fill: #662506;"," marker-width: 4;"," [value > 1] { marker-fill: #FEE391; }"," [value > 2] { marker-fill: #FEC44F; }"," [value > 3] { marker-fill: #FE9929; }"," [value > 4] { marker-fill: #EC7014; }"," [value > 5] { marker-fill: #CC4C02; }"," [value > 6] { marker-fill: #993404; }"," [value > 7] { marker-fill: #662506; }","}"].join("\n");var COMP_OP_TO_CANVAS={difference:"difference",src:"source-over",exclusion:"exclusion",dst:"destination-in",multiply:"multiply",contrast:"contrast","src-over":"source-over",screen:"screen",invert:"invert","dst-over":"destination-over",overlay:"overlay","invert-rgb":"invert","src-in":"source-in",darken:"darken","dst-in":"destination-in",lighten:"lighten","src-out":"source-out","color-dodge":"color-dodge",hue:"hue","dst-out":"destination-out","color-burn":"color-burn",saturation:"saturation","src-atop":"source-atop","hard-light":"hard-light",color:"color","dst-atop":"destination-atop","soft-light":"soft-light",xor:"xor"};function compop2canvas(compop){return COMP_OP_TO_CANVAS[compop]||compop}function PointRenderer(canvas,options){if(!canvas){throw new Error("canvas can't be undefined")}this.options=options;this.layer=options.layer;this._canvas=canvas;this._ctx=canvas.getContext("2d");this._sprites=[];this._shader=null;this._icons={};this._iconsToLoad=0;this._filters=new Filters(this._canvas,{canvasClass:options.canvasClass});this.style=this.options.cartocss||DEFAULT_CARTOCSS;this.setCartoCSS(this.style);this.TILE_SIZE=256;this._style=null;this._gradients={};this._forcePoints=false}torque.extend(PointRenderer.prototype,torque.Event,{clearCanvas:function(){if(this._Map){var canvas=this._canvas;var color=this._Map["-torque-clear-color"];var ctx=this._ctx;if(color==="rgba(255, 255, 255, 0)"||!color){ctx.save();ctx.setTransform(1,0,0,1,0,0);ctx.clearRect(0,0,canvas.width,canvas.height);ctx.restore()}else{ctx.setTransform(1,0,0,1,0,0);var compop=this._Map["comp-op"];ctx.globalCompositeOperation=compop2canvas(compop)||compop;ctx.fillStyle=color;ctx.fillRect(0,0,canvas.width,canvas.height)}}},setCanvas:function(canvas){this._canvas=canvas;this._ctx=canvas.getContext("2d")},setCartoCSS:function(cartocss,callback){var self=this;this.style=cartocss;if(PointRenderer.isTurboCarto(cartocss)){var datasource=new CartoDatasource(self.layer._tiles);turbocarto(cartocss,datasource,function(err,parsedCartoCSS){if(err){return callback(err,null)}self.setShader((new carto.RendererJS).render(parsedCartoCSS));self.layer.redraw();self.layer.animator.start();callback&&callback()})}else{self.setShader((new carto.RendererJS).render(cartocss));callback&&callback()}},setShader:function(shader){this._sprites=[];this._shader=shader;this._Map=this._shader.getDefault().getStyle({},{zoom:0});var img_names=this._shader.getImageURLs();if(this.layer&&this.layer.showLimitErrors){img_names.push(ERROR_IMG_URL)}this._preloadIcons(img_names)},clearSpriteCache:function(){this._sprites=[]},generateSprite:function(shader,value,shaderVars){var self=this;var prof=Profiler.metric("torque.renderer.point.generateSprite").start();var st=shader.getStyle({value:value},shaderVars);if(this._style===null||this._style!==st){this._style=st}var pointSize=st["marker-width"];if(!pointSize){return null}if(st["marker-opacity"]===0&&!st["marker-line-opacity"]){return null}var canvas=this._createCanvas();var ctx=canvas.getContext("2d");var markerFile=st["marker-file"]||st["point-file"];var qualifiedUrl=markerFile&&this._qualifyURL(markerFile);if(qualifiedUrl&&this._iconsToLoad<=0&&this._icons[qualifiedUrl]){var img=this._icons[qualifiedUrl];var dWidth=Math.min(st["marker-width"]*2||img.width,cartocss.MAX_SPRITE_RADIUS*2);var dHeight=Math.min((st["marker-height"]||dWidth)*(img.width/img.height),cartocss.MAX_SPRITE_RADIUS*2);canvas.width=ctx.width=dWidth;canvas.height=ctx.height=dHeight;ctx.scale(dWidth/img.width,dHeight/img.height);cartocss.renderSprite(ctx,img,st)}else{var canvasSize=(st["marker-line-width"]||0)+pointSize*2;var w=ctx.width=canvas.width=ctx.height=canvas.height=Math.ceil(canvasSize);ctx.translate(w/2,w/2);var mt=st["marker-type"];if(mt&&mt==="rectangle"){cartocss.renderRectangle(ctx,st)}else{cartocss.renderPoint(ctx,st)}}prof.end(true);if(torque.flags.sprites_to_images){var i=this._createImage();i.src=canvas.toDataURL();return i}return canvas},renderTile:function(tile,keys,callback){if(tile&&tile.error){this._renderErrorTile(tile);return false}if(this._iconsToLoad>0){this.on("allIconsLoaded",function(){this.renderTile.apply(this,[tile,keys,callback])});return false}if(typeof keys.length==="undefined"){keys=[keys]}var prof=Profiler.metric("torque.renderer.point.renderLayers").start();var layers=this._shader.getLayers();for(var i=0,n=layers.length;i<n;++i){var layer=layers[i];if(layer.name()!=="Map"){var sprites=this._sprites[i]||(this._sprites[i]={});for(var fr=0;fr<layer.frames().length;++fr){var frame=layer.frames()[fr];var fr_sprites=sprites[frame]||(sprites[frame]=[]);for(var k=0,len=keys.length;k<len;k++){this._renderTile(tile,keys[k]-frame,frame,fr_sprites,layer)}}}}prof.end(true);return callback&&callback(null)},_createCanvas:function(){return this.options.canvasClass?new this.options.canvasClass:document.createElement("canvas")},_createImage:function(){return this.options.imageClass?new this.options.imageClass:new Image},_setImageSrc:function(img,url,callback){if(this.options.setImageSrc){this.options.setImageSrc(img,url,callback)}else{img.onload=function(){callback(null)};img.onerror=function(){callback(new Error("Could not load image"))};img.src=url}},_qualifyURL:function(url){if(typeof this.options.qualifyURL!=="undefined"){return this.options.qualifyURL(url)}else{var a=document.createElement("a");a.href=url;return a.href}},_renderErrorTile:function(tile){if(this.layer.showLimitErrors){var img=this._icons[ERROR_IMG_URL];img&&this._ctx.drawImage(img,0,0,this.TILE_SIZE,this.TILE_SIZE)}},_renderTile:function(tile,key,frame_offset,sprites,shader,shaderVars){if(!this._canvas)return;var prof=Profiler.metric("torque.renderer.point.renderTile").start();var ctx=this._ctx;var blendMode=compop2canvas(shader.eval("comp-op"))||this.options.blendmode;if(blendMode){ctx.globalCompositeOperation=blendMode}if(this.options.cumulative&&key>tile.maxDate){key=tile.maxDate}var tileMax=this.options.resolution*(this.TILE_SIZE/this.options.resolution-1);var activePixels=tile.timeCount[key];var anchor=this.options.resolution/2;if(activePixels){var pixelIndex=tile.timeIndex[key];for(var p=0;p<activePixels;++p){var posIdx=tile.renderDataPos[pixelIndex+p];var c=tile.renderData[pixelIndex+p];if(c){var sp=sprites[c];if(sp===undefined){sp=sprites[c]=this.generateSprite(shader,c,torque.extend({zoom:tile.z,"frame-offset":frame_offset},shaderVars))}if(sp){var x=tile.x[posIdx]-(sp.width>>1)+anchor;var y=tileMax-tile.y[posIdx]+anchor;ctx.drawImage(sp,x,y-(sp.height>>1))}}}}prof.end(true)},setBlendMode:function(b){this.options.blendmode=b},getActivePointsBBox:function(tile,step){var positions=[];var mercator=new torque.Mercator;var tileMax=this.options.resolution*(this.TILE_SIZE/this.options.resolution-1);var activePixels=tile.timeCount[step];var pixelIndex=tile.timeIndex[step];for(var p=0;p<activePixels;++p){var posIdx=tile.renderDataPos[pixelIndex+p];var c=tile.renderData[pixelIndex+p];if(c){var x=tile.x[posIdx];var y=tileMax-tile.y[posIdx];positions.push(mercator.tilePixelBBox(tile.coord.x,tile.coord.y,tile.coord.z,x,y))}}return positions},getValues:function(tile,step,values){values=values||[];var activePixels=tile.timeCount[step];var pixelIndex=tile.timeIndex[step];for(var p=0;p<activePixels;++p){var posIdx=tile.renderDataPos[pixelIndex+p];values.push(tile.renderData[pixelIndex+p])}return values},getValueFor:function(tile,step,px,py){var mercator=new torque.Mercator;var res=this.options.resolution;var res2=res>>1;var tileMax=this.options.resolution*(this.TILE_SIZE/this.options.resolution-1);var activePixels=tile.timeCount[step];var pixelIndex=tile.timeIndex[step];for(var p=0;p<activePixels;++p){var posIdx=tile.renderDataPos[pixelIndex+p];var c=tile.renderData[pixelIndex+p];if(c){var x=tile.x[posIdx];var y=tileMax-tile.y[posIdx];var dx=px+res2-x;var dy=py+res2-y;if(dx>=0&&dx<res&&dy>=0&&dy<res){return{value:c,bbox:mercator.tilePixelBBox(tile.coord.x,tile.coord.y,tile.coord.z,x-res2,y-res2,res)}}}}return null},_preloadIcons:function(img_names){var self=this;if(img_names.length>0&&!this._forcePoints){var qualifiedImageUrlSet=Object.keys(img_names.reduce(function(imgNamesMap,imgName){var qualifiedUrl=self._qualifyURL(imgName);if(!self._icons[qualifiedUrl]){imgNamesMap[qualifiedUrl]=true}return imgNamesMap},{}));var filtered=self._shader.getLayers().some(function(layer){return typeof layer.shader["image-filters"]!=="undefined"});this._iconsToLoad+=qualifiedImageUrlSet.length;qualifiedImageUrlSet.forEach(function(qualifiedImageUrl){self._icons[qualifiedImageUrl]=null;var img=self._createImage();if(filtered){img.crossOrigin="Anonymous"}self._setImageSrc(img,qualifiedImageUrl,function(err){if(err){self._forcePoints=true;self.clearSpriteCache();self._iconsToLoad=0;self.fire("allIconsLoaded");if(filtered){console.info("Only CORS-enabled, or same domain image-files can be used in combination with image-filters")}console.error("Couldn't get marker-file "+qualifiedImageUrl)}else{self._icons[qualifiedImageUrl]=img;self._iconsToLoad--;if(self._iconsToLoad<=0){self.clearSpriteCache();self.fire("allIconsLoaded")}}})})}else{this.fire("allIconsLoaded")}},applyFilters:function(){if(this._style){if(this._style["image-filters"]){function gradientKey(imf){var hash="";for(var i=0;i<imf.args.length;i++){var rgb=imf.args[i].rgb;hash+=rgb[0]+":"+rgb[1]+":"+rgb[2]}return hash}var gradient=this._gradients[gradientKey(this._style["image-filters"])];if(!gradient){function componentToHex(c){var hex=c.toString(16);return hex.length==1?"0"+hex:hex}function rgbToHex(r,g,b){return"#"+componentToHex(r)+componentToHex(g)+componentToHex(b)}gradient={};var colorize=this._style["image-filters"].args;var increment=1/colorize.length;for(var i=0;i<colorize.length;i++){var key=increment*i+increment;var rgb=colorize[i].rgb;var formattedColor=rgbToHex(rgb[0],rgb[1],rgb[2]);gradient[key]=formattedColor}this._gradients[gradientKey(this._style["image-filters"])]=gradient}this._filters.gradient(gradient);this._filters.draw()}}}});PointRenderer.isTurboCarto=function(cartocss){var reservedWords=["ramp","colorbrewer","buckets"];var isTurbo=reservedWords.map(function(w){return w+"("}).map(String.prototype.indexOf.bind(cartocss)).every(function(f){return f===-1});return!isTurbo};module.exports=PointRenderer}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../":11,"../profiler":22,"./cartocss_render":28,"./datasource":29,"./torque_filters":33,carto:41,"turbo-carto":153}],32:[function(require,module,exports){(function(global){var carto=global.carto||require("carto");var DEFAULT_CARTOCSS=["#layer {"," polygon-fill: #FFFF00;"," [value > 10] { polygon-fill: #FFFF00; }"," [value > 100] { polygon-fill: #FFCC00; }"," [value > 1000] { polygon-fill: #FE9929; }"," [value > 10000] { polygon-fill: #FF6600; }"," [value > 100000] { polygon-fill: #FF3300; }","}"].join("\n");var TAU=Math.PI*2;function RectanbleRenderer(canvas,options){this.options=options;carto.tree.Reference.set(torque["torque-reference"]);this.setCanvas(canvas);this.setCartoCSS(this.options.cartocss||DEFAULT_CARTOCSS)}RectanbleRenderer.prototype={setCartoCSS:function(cartocss){this._cartoCssStyle=(new carto.RendererJS).render(cartocss);if(this._cartoCssStyle.getLayers().length>1){throw new Error("only one CartoCSS layer is supported")}this._shader=this._cartoCssStyle.getLayers()[0].shader},setCanvas:function(canvas){if(!canvas)return;this._canvas=canvas;this._ctx=canvas.getContext("2d")},accumulate:function(tile,keys){var prof=Profiler.metric("RectangleRender:accumulate").start();var x,y,posIdx,p,k,key,activePixels,pixelIndex;var res=this.options.resolution;var s=256/res;var accum=new Float32Array(s*s);if(typeof keys!=="object"){keys=[keys]}for(k=0;k<keys.length;++k){key=keys[k];activePixels=tile.timeCount[key];if(activePixels){pixelIndex=tile.timeIndex[key];for(p=0;p<activePixels;++p){posIdx=tile.renderDataPos[pixelIndex+p];x=tile.x[posIdx]/res;y=tile.y[posIdx]/res;accum[x*s+y]+=tile.renderData[pixelIndex+p]}}}prof.end();return accum},renderTileAccum:function(accum,px,py){var prof=Profiler.metric("RectangleRender:renderTileAccum").start();var color,x,y,alpha;var res=this.options.resolution;var ctx=this._ctx;var s=256/res|0;var s2=s*s;var colors=this._colors;if(this.options.blendmode){ctx.globalCompositeOperation=this.options.blendmode}var polygon_alpha=this._shader["polygon-opacity"]||function(){return 1};for(var i=0;i<s2;++i){var xy=i;var value=accum[i];if(value){x=xy/s|0;y=xy%s;color=this._shader["polygon-fill"]({value:value},{zoom:0});ctx.fillStyle=color;alpha=polygon_alpha({value:value},{zoom:0});if(alpha===null){alpha=1}ctx.globalAlpha=alpha;ctx.fillRect(x*res,256-res-y*res,res,res)}}prof.end()},renderTile:function(tile,key,callback){if(!this._canvas)return;var res=this.options.resolution;var ctx=this._ctx;var colors=this._colors;var activepixels=tile.timeCount[key];if(activepixels){var w=this._canvas.width;var h=this._canvas.height;var pixelIndex=tile.timeIndex[key];for(var p=0;p<activePixels;++p){var posIdx=tile.renderDataPos[pixelIndex+p];var c=tile.renderData[pixelIndex+p];if(c){var color=colors[Math.min(c,colors.length-1)];var x=tile.x[posIdx];var y=tile.y[posIdx];ctx.fillStyle=color;ctx.fillRect(x,y,res,res)}}}return callback&&callback(null)}};module.exports=RectanbleRenderer}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{carto:41}],33:[function(require,module,exports){"use strict";function torque_filters(canvas,options){if(!(this instanceof torque_filters)){return new torque_filters(canvas,options)}options=options||{};this._canvas=canvas=typeof canvas==="string"?document.getElementById(canvas):canvas;this._ctx=canvas.getContext("2d");this._width=canvas.width;this._height=canvas.height;this._max=1;this._data=[];this.canvasClass=options.canvasClass}torque_filters.prototype={defaultGradient:{.4:"blue",.6:"cyan",.7:"lime",.8:"yellow",1:"red"},gradient:function(grad){var canvas=this._createCanvas(),ctx=canvas.getContext("2d"),gradient=ctx.createLinearGradient(0,0,0,256);canvas.width=1;canvas.height=256;for(var i in grad){gradient.addColorStop(+i,grad[i])}ctx.fillStyle=gradient;ctx.fillRect(0,0,1,256);this._grad=ctx.getImageData(0,0,1,256).data;return this},draw:function(){if(!this._grad){this.gradient(this.defaultGradient)}var ctx=this._ctx;var colored=ctx.getImageData(0,0,this._canvas.width,this._canvas.height);this._colorize(colored.data,this._grad);ctx.putImageData(colored,0,0);return this},_colorize:function(pixels,gradient){for(var i=3,len=pixels.length,j;i<len;i+=4){j=pixels[i]*4;if(j){pixels[i-3]=gradient[j];pixels[i-2]=gradient[j+1];pixels[i-1]=gradient[j+2]}}},_createCanvas:function(){return this.canvasClass?new this.canvasClass:document.createElement("canvas")}};module.exports=torque_filters},{}],34:[function(require,module,exports){(function(global){var torque=require("./core");var lastCall=null;function jsonp(url,callback,options){options=options||{};options.timeout=options.timeout===undefined?1e4:options.timeout;var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");var fnName=options.callbackName||"torque_"+Date.now();if(torque.isFunction(fnName)){fnName=fnName()}function clean(){head.removeChild(script);clearTimeout(timeoutTimer);delete window[fnName]}window[fnName]=function(){clean();callback.apply(window,arguments)};var timeoutTimer=setTimeout(function(){clean();callback.call(window,null)},options.timeout);url=url.replace("callback=?","callback="+fnName);script.type="text/javascript";script.src=url;script.async=true;setTimeout(function(){head.appendChild(script)},0)}function get(url,callback,options){options=options||{method:"GET",data:null,responseType:"text"};lastCall={url:url,callback:callback};var request=XMLHttpRequest;if(global.XDomainRequest&&!("withCredentials"in request)&&/^(http(s)?:)?\/\//.test(url))request=XDomainRequest;var req=new request;req.open(options.method,url,true);function respond(){var status=req.status,result;var r=options.responseType==="arraybuffer"?req.response:req.responseText;if(!status&&r||status>=200&&status<300||status===304||status===429){callback(req)}else{callback(null)}}"onload"in req?req.onload=req.onerror=respond:req.onreadystatechange=function(){req.readyState>3&&respond()};req.onprogress=function(){};req.responseType=options.responseType;if(options.data){req.setRequestHeader("Content-type","application/json");req.setRequestHeader("Accept","*")}req.send(options.data);return req}function post(url,data,callback){return get(url,callback,{data:data,method:"POST"})}module.exports={get:get,post:post,jsonp:jsonp,lastCall:function(){return lastCall}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./core":5}],35:[function(require,module,exports){(function(global){"use strict";function compare(a,b){if(a===b){return 0}var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break}}if(x<y){return-1}if(y<x){return 1}return 0}function isBuffer(b){if(global.Buffer&&typeof global.Buffer.isBuffer==="function"){return global.Buffer.isBuffer(b)}return!!(b!=null&&b._isBuffer)}var util=require("util/");var hasOwn=Object.prototype.hasOwnProperty;var pSlice=Array.prototype.slice;var functionsHaveNames=function(){return function foo(){}.name==="foo"}();function pToString(obj){return Object.prototype.toString.call(obj)}function isView(arrbuf){if(isBuffer(arrbuf)){return false}if(typeof global.ArrayBuffer!=="function"){return false}if(typeof ArrayBuffer.isView==="function"){return ArrayBuffer.isView(arrbuf)}if(!arrbuf){return false}if(arrbuf instanceof DataView){return true}if(arrbuf.buffer&&arrbuf.buffer instanceof ArrayBuffer){return true}return false}var assert=module.exports=ok;var regex=/\s*function\s+([^\(\s]*)\s*/;function getName(func){if(!util.isFunction(func)){return}if(functionsHaveNames){return func.name}var str=func.toString();var match=str.match(regex);return match&&match[1]}assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;if(options.message){this.message=options.message;this.generatedMessage=false}else{this.message=getMessage(this);this.generatedMessage=true}var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}else{var err=new Error;if(err.stack){var out=err.stack;var fn_name=getName(stackStartFunction);var idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function truncate(s,n){if(typeof s==="string"){return s.length<n?s:s.slice(0,n)}else{return s}}function inspect(something){if(functionsHaveNames||!util.isFunction(something)){return util.inspect(something)}var rawname=getName(something);var name=rawname?": "+rawname:"";return"[Function"+name+"]"}function getMessage(self){return truncate(inspect(self.actual),128)+" "+self.operator+" "+truncate(inspect(self.expected),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}assert.fail=fail;function ok(value,message){if(!value)fail(value,true,message,"==",assert.ok)}assert.ok=ok;assert.equal=function equal(actual,expected,message){if(actual!=expected)fail(actual,expected,message,"==",assert.equal)};assert.notEqual=function notEqual(actual,expected,message){if(actual==expected){fail(actual,expected,message,"!=",assert.notEqual)}};assert.deepEqual=function deepEqual(actual,expected,message){if(!_deepEqual(actual,expected,false)){fail(actual,expected,message,"deepEqual",assert.deepEqual)}};assert.deepStrictEqual=function deepStrictEqual(actual,expected,message){if(!_deepEqual(actual,expected,true)){fail(actual,expected,message,"deepStrictEqual",assert.deepStrictEqual)}};function _deepEqual(actual,expected,strict,memos){if(actual===expected){return true}else if(isBuffer(actual)&&isBuffer(expected)){return compare(actual,expected)===0}else if(util.isDate(actual)&&util.isDate(expected)){return actual.getTime()===expected.getTime()}else if(util.isRegExp(actual)&&util.isRegExp(expected)){return actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase}else if((actual===null||typeof actual!=="object")&&(expected===null||typeof expected!=="object")){return strict?actual===expected:actual==expected}else if(isView(actual)&&isView(expected)&&pToString(actual)===pToString(expected)&&!(actual instanceof Float32Array||actual instanceof Float64Array)){return compare(new Uint8Array(actual.buffer),new Uint8Array(expected.buffer))===0}else if(isBuffer(actual)!==isBuffer(expected)){return false}else{memos=memos||{actual:[],expected:[]};var actualIndex=memos.actual.indexOf(actual);if(actualIndex!==-1){if(actualIndex===memos.expected.indexOf(expected)){return true}}memos.actual.push(actual);memos.expected.push(expected);return objEquiv(actual,expected,strict,memos)}}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b,strict,actualVisitedObjects){if(a===null||a===undefined||b===null||b===undefined)return false;if(util.isPrimitive(a)||util.isPrimitive(b))return a===b;if(strict&&Object.getPrototypeOf(a)!==Object.getPrototypeOf(b))return false;var aIsArgs=isArguments(a);var bIsArgs=isArguments(b);if(aIsArgs&&!bIsArgs||!aIsArgs&&bIsArgs)return false;if(aIsArgs){a=pSlice.call(a);b=pSlice.call(b);return _deepEqual(a,b,strict)}var ka=objectKeys(a);var kb=objectKeys(b);var key,i;if(ka.length!==kb.length)return false;ka.sort();kb.sort();for(i=ka.length-1;i>=0;i--){if(ka[i]!==kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key],strict,actualVisitedObjects))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected,false)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.notDeepStrictEqual=notDeepStrictEqual;function notDeepStrictEqual(actual,expected,message){if(_deepEqual(actual,expected,true)){fail(actual,expected,message,"notDeepStrictEqual",notDeepStrictEqual)}}assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}try{if(actual instanceof expected){return true}}catch(e){}if(Error.isPrototypeOf(expected)){return false}return expected.call({},actual)===true}function _tryBlock(block){var error;try{block()}catch(e){error=e}return error}function _throws(shouldThrow,block,expected,message){var actual;if(typeof block!=="function"){throw new TypeError('"block" argument must be a function')}if(typeof expected==="string"){message=expected;expected=null}actual=_tryBlock(block);message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}var userProvidedMessage=typeof message==="string";var isUnwantedException=!shouldThrow&&util.isError(actual);var isUnexpectedException=!shouldThrow&&actual&&!expected;if(isUnwantedException&&userProvidedMessage&&expectedException(actual,expected)||isUnexpectedException){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws(true,block,error,message)};assert.doesNotThrow=function(block,error,message){_throws(false,block,error,message)};assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"util/":38}],36:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],37:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],38:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!debugs[set]){if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else{debugs[set]=function(){}}}return debugs[set]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":37,_process:116,inherits:36}],39:[function(require,module,exports){},{}],40:[function(require,module,exports){(function(tree){tree.functions={rgb:function(r,g,b){return this.rgba(r,g,b,1)},rgba:function(r,g,b,a){var rgb=[r,g,b].map(function(c){return number(c)});a=number(a);if(rgb.some(isNaN)||isNaN(a))return null;return new tree.Color(rgb,a)},stop:function(val){var color,mode;if(arguments.length>1)color=arguments[1];if(arguments.length>2)mode=arguments[2];return{is:"tag",val:val,color:color,mode:mode,toString:function(env){return'\n\t<stop value="'+val.ev(env)+'"'+(color?' color="'+color.ev(env)+'" ':"")+(mode?' mode="'+mode.ev(env)+'" ':"")+"/>"}}},hsl:function(h,s,l){return this.hsla(h,s,l,1)},hsla:function(h,s,l,a){h=number(h)%360/360;s=number(s);l=number(l);a=number(a);if([h,s,l,a].some(isNaN))return null;var m2=l<=.5?l*(s+1):l+s-l*s,m1=l*2-m2;return this.rgba(hue(h+1/3)*255,hue(h)*255,hue(h-1/3)*255,a);function hue(h){h=h<0?h+1:h>1?h-1:h;if(h*6<1)return m1+(m2-m1)*h*6;else if(h*2<1)return m2;else if(h*3<2)return m1+(m2-m1)*(2/3-h)*6;else return m1}},hue:function(color){if(!("toHSL"in color))return null;return new tree.Dimension(Math.round(color.toHSL().h))},saturation:function(color){if(!("toHSL"in color))return null;return new tree.Dimension(Math.round(color.toHSL().s*100),"%")},lightness:function(color){if(!("toHSL"in color))return null;return new tree.Dimension(Math.round(color.toHSL().l*100),"%")},alpha:function(color){if(!("toHSL"in color))return null;return new tree.Dimension(color.toHSL().a)},saturate:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.s+=amount.value/100;hsl.s=clamp(hsl.s);return hsla(hsl)},desaturate:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.s-=amount.value/100;hsl.s=clamp(hsl.s);return hsla(hsl)},lighten:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.l+=amount.value/100;hsl.l=clamp(hsl.l);return hsla(hsl)},darken:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.l-=amount.value/100;hsl.l=clamp(hsl.l);return hsla(hsl)},fadein:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.a+=amount.value/100;hsl.a=clamp(hsl.a);return hsla(hsl)},fadeout:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();hsl.a-=amount.value/100;hsl.a=clamp(hsl.a);return hsla(hsl)},spin:function(color,amount){if(!("toHSL"in color))return null;var hsl=color.toHSL();var hue=(hsl.h+amount.value)%360;hsl.h=hue<0?360+hue:hue;return hsla(hsl)},replace:function(entity,a,b){if(entity.is==="field"){return entity.toString+".replace("+a.toString()+", "+b.toString()+")"}else{return entity.replace(a,b)}},mix:function(color1,color2,weight){var p=weight.value/100;var w=p*2-1;var a=color1.toHSL().a-color2.toHSL().a;var w1=((w*a==-1?w:(w+a)/(1+w*a))+1)/2;var w2=1-w1;var rgb=[color1.rgb[0]*w1+color2.rgb[0]*w2,color1.rgb[1]*w1+color2.rgb[1]*w2,color1.rgb[2]*w1+color2.rgb[2]*w2];var alpha=color1.alpha*p+color2.alpha*(1-p);return new tree.Color(rgb,alpha)},greyscale:function(color){return this.desaturate(color,new tree.Dimension(100))},"%":function(quoted){var args=Array.prototype.slice.call(arguments,1),str=quoted.value;for(var i=0;i<args.length;i++){str=str.replace(/%s/,args[i].value).replace(/%[da]/,args[i].toString())}str=str.replace(/%%/g,"%");return new tree.Quoted(str)}};var image_filter_functors=["emboss","blur","gray","sobel","edge-detect","x-gradient","y-gradient","sharpen"];for(var i=0;i<image_filter_functors.length;i++){var f=image_filter_functors[i];tree.functions[f]=function(f){return function(){return new tree.ImageFilter(f)}}(f)}tree.functions["agg-stack-blur"]=function(x,y){return new tree.ImageFilter("agg-stack-blur",[x,y])};tree.functions["scale-hsla"]=function(h0,h1,s0,s1,l0,l1,a0,a1){return new tree.ImageFilter("scale-hsla",[h0,h1,s0,s1,l0,l1,a0,a1])};function hsla(h){return tree.functions.hsla(h.h,h.s,h.l,h.a)}function number(n){if(n instanceof tree.Dimension){return parseFloat(n.unit=="%"?n.value/100:n.value)}else if(typeof n==="number"){return n}else{return NaN}}function clamp(val){return Math.min(1,Math.max(0,val))}})(require("./tree"))},{"./tree":46}],41:[function(require,module,exports){(function(process,__dirname){var util=require("util"),fs=require("fs"),path=require("path");function getVersion(){if(process.browser){return require("../../package.json").version.split(".")}else if(parseInt(process.version.split(".")[1],10)>4){return require("../../package.json").version.split(".")}else{var package_json=JSON.parse(fs.readFileSync(path.join(__dirname,"../../package.json")));return package_json.version.split(".")}}var carto={version:getVersion(),Parser:require("./parser").Parser,Renderer:require("./renderer").Renderer,tree:require("./tree"),RendererJS:require("./renderer_js"),default_reference:require("./torque-reference"),writeError:function(ctx,options){var message="";var extract=ctx.extract;var error=[];options=options||{};if(options.silent){return}options.indent=options.indent||"";if(!("index"in ctx)||!extract){return util.error(options.indent+(ctx.stack||ctx.message))}if(typeof extract[0]==="string"){error.push(stylize(ctx.line-1+" "+extract[0],"grey"))}if(extract[1]===""&&typeof extract[2]==="undefined"){extract[1]="¶"}error.push(ctx.line+" "+extract[1].slice(0,ctx.column)+stylize(stylize(extract[1][ctx.column],"bold")+extract[1].slice(ctx.column+1),"yellow"));if(typeof extract[2]==="string"){error.push(stylize(ctx.line+1+" "+extract[2],"grey"))}error=options.indent+error.join("\n"+options.indent)+"\n";message=options.indent+message+stylize(ctx.message,"red");if(ctx.filename)message+=stylize(" in ","red")+ctx.filename;util.error(message,error);if(ctx.callLine){util.error(stylize("from ","red")+(ctx.filename||""));util.error(stylize(ctx.callLine,"grey")+" "+ctx.callExtract)}if(ctx.stack){util.error(stylize(ctx.stack,"red"))}}};require("./tree/call");require("./tree/color");require("./tree/comment");require("./tree/definition");require("./tree/dimension");require("./tree/element");require("./tree/expression");require("./tree/filterset");require("./tree/filter");require("./tree/field");require("./tree/keyword");require("./tree/layer");require("./tree/literal");require("./tree/operation");require("./tree/quoted");require("./tree/imagefilter");require("./tree/reference");require("./tree/rule");require("./tree/ruleset");require("./tree/selector");require("./tree/style");require("./tree/url");require("./tree/value");require("./tree/variable");require("./tree/zoom");require("./tree/invalid");require("./tree/fontset");require("./tree/frame_offset");require("./functions");for(var k in carto){exports[k]=carto[k]}function stylize(str,style){var styles={bold:[1,22],inverse:[7,27],underline:[4,24],yellow:[33,39],green:[32,39],red:[31,39],grey:[90,39]};return"["+styles[style][0]+"m"+str+"["+styles[style][1]+"m"}}).call(this,require("_process"),"/node_modules/carto/lib/carto")},{"../../package.json":75,"./functions":40,"./parser":42,"./renderer":43,"./renderer_js":44,"./torque-reference":45,"./tree":46,"./tree/call":47,"./tree/color":48,"./tree/comment":49,"./tree/definition":50,"./tree/dimension":51,"./tree/element":52,"./tree/expression":53,"./tree/field":54,"./tree/filter":55,"./tree/filterset":56,"./tree/fontset":57,"./tree/frame_offset":58,"./tree/imagefilter":59,"./tree/invalid":60,"./tree/keyword":61,"./tree/layer":62,"./tree/literal":63,"./tree/operation":64,"./tree/quoted":65,"./tree/reference":66,"./tree/rule":67,"./tree/ruleset":68,"./tree/selector":69,"./tree/style":70,"./tree/url":71,"./tree/value":72,"./tree/variable":73,"./tree/zoom":74,_process:116,fs:39,path:86,util:165}],42:[function(require,module,exports){(function(global){var carto=exports,tree=require("./tree"),_=global._||require("underscore");carto.Parser=function Parser(env){var input,i,j,temp,memo,furthest,chunks,current,parser;var that=this;var finish=function(){};function save(){temp=chunks[j];memo=i;current=i}function restore(){chunks[j]=temp;i=memo;current=i}function sync(){if(i>current){chunks[j]=chunks[j].slice(i-current);current=i}}function $(tok){var match,args,length,c,index,endIndex,k;if(tok instanceof Function){return tok.call(parser.parsers)}else if(typeof tok==="string"){match=input.charAt(i)===tok?tok:null;length=1;sync()}else{sync();match=tok.exec(chunks[j]);if(match){length=match[0].length}else{return null}}if(match){var mem=i+=length;endIndex=i+chunks[j].length-length;while(i<endIndex){c=input.charCodeAt(i);if(!(c===32||c===10||c===9)){break}i++}chunks[j]=chunks[j].slice(length+(i-mem));current=i;if(chunks[j].length===0&&j<chunks.length-1){j++}if(typeof match==="string"){return match}else{return match.length===1?match[0]:match}}}function peek(tok){if(typeof tok==="string"){return input.charAt(i)===tok}else{return!!tok.test(chunks[j])}}function extractErrorLine(style,errorIndex){return(style.slice(0,errorIndex).match(/\n/g)||"").length+1}function makeError(err){var einput;var errorTemplate;_.defaults(err,{index:furthest,filename:env.filename,message:"Parse error.",line:0,column:-1});if(err.filename&&that.env.inputs&&that.env.inputs[err.filename]){einput=that.env.inputs[err.filename]}else{einput=input}err.line=extractErrorLine(einput,err.index);for(var n=err.index;n>=0&&einput.charAt(n)!=="\n";n--){err.column++}errorTemplate=_.template("<%=filename%>:<%=line%>:<%=column%> <%=message%>");return new Error(errorTemplate(err))}this.env=env=env||{};this.env.filename=this.env.filename||null;this.env.inputs=this.env.inputs||{};parser={extractErrorLine:extractErrorLine,parse:function(str){var root,start,end,zone,line,lines,buff=[],c,error=null;i=j=current=furthest=0;chunks=[];input=str.replace(/\r\n/g,"\n");if(env.filename){that.env.inputs[env.filename]=input}var early_exit=false;chunks=function(chunks){var j=0,skip=/(?:@\{[\w-]+\}|[^"'`\{\}\/\(\)\\])+/g,comment=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,string=/"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'|`((?:[^`]|\\.)*)`/g,level=0,match,chunk=chunks[0],inParam;for(var i=0,c,cc;i<input.length;){skip.lastIndex=i;if(match=skip.exec(input)){if(match.index===i){i+=match[0].length;chunk.push(match[0])}}c=input.charAt(i);comment.lastIndex=string.lastIndex=i;if(match=string.exec(input)){if(match.index===i){i+=match[0].length;chunk.push(match[0]);continue}}if(!inParam&&c==="/"){cc=input.charAt(i+1);if(cc==="/"||cc==="*"){if(match=comment.exec(input)){if(match.index===i){i+=match[0].length;chunk.push(match[0]);continue}}}}switch(c){case"{":if(!inParam){level++;chunk.push(c);break}case"}":if(!inParam){level--;chunk.push(c);chunks[++j]=chunk=[];break}case"(":if(!inParam){inParam=true;chunk.push(c);break}case")":if(inParam){inParam=false;chunk.push(c);break}default:chunk.push(c)}i++}if(level!==0){error={index:i-1,type:"Parse",message:level>0?"missing closing `}`":"missing opening `{`"}}return chunks.map(function(c){return c.join("")})}([[]]);if(error){throw makeError(error)}root=new tree.Ruleset([],$(this.parsers.primary));root.root=true;root.toList=function(){var line,lines,column;return function(env){env.error=function(e){if(!env.errors)env.errors=new Error("");if(env.errors.message){env.errors.message+="\n"+makeError(e).message}else{env.errors.message=makeError(e).message}};env.frames=env.frames||[];var definitions=this.flatten([],[],env);definitions.sort(specificitySort);return definitions}}();var specificitySort=function(a,b){var as=a.specificity;var bs=b.specificity;if(as[0]!=bs[0])return bs[0]-as[0];if(as[1]!=bs[1])return bs[1]-as[1];if(as[2]!=bs[2])return bs[2]-as[2];return bs[3]-as[3]};return root},parsers:{primary:function(){var node,root=[];while((node=$(this.rule)||$(this.ruleset)||$(this.comment))||$(/^[\s\n]+/)||(node=$(this.invalid))){if(node)root.push(node)}return root},invalid:function(){var chunk=$(/^[^;\n]*[;\n]/);if(chunk){return new tree.Invalid(chunk,memo)}},comment:function(){var comment;if(input.charAt(i)!=="/")return;if(input.charAt(i+1)==="/"){return new tree.Comment($(/^\/\/.*/),true)}else if(comment=$(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/)){return new tree.Comment(comment)}},entities:{quoted:function(){if(input.charAt(i)!=='"'&&input.charAt(i)!=="'")return;var str=$(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/);if(str){return new tree.Quoted(str[1]||str[2])}},field:function(){if(!$("["))return;var field_name=$(/(^[^\]]+)/);if(!$("]"))return;if(field_name)return new tree.Field(field_name[1])},comparison:function(){var str=$(/^=~|=|!=|<=|>=|<|>/);if(str){return str}},keyword:function(){var k=$(/^[A-Za-z-]+[A-Za-z-0-9_]*/);if(k){return new tree.Keyword(k)}},call:function(){var name,args;if(!(name=/^([\w\-]+|%)\(/.exec(chunks[j])))return;name=name[1];if(name==="url"){return null}else{i+=name.length}$("(");args=$(this.entities["arguments"]);if(!$(")"))return;if(name){return new tree.Call(name,args,i)}},arguments:function(){var args=[],arg;while(arg=$(this.expression)){args.push(arg);if(!$(",")){break}}return args},literal:function(){return $(this.entities.dimension)||$(this.entities.keywordcolor)||$(this.entities.hexcolor)||$(this.entities.quoted)},url:function(){var value;if(input.charAt(i)!=="u"||!$(/^url\(/))return;value=$(this.entities.quoted)||$(this.entities.variable)||$(/^[\-\w%@$\/.&=:;#+?~]+/)||"";if(!$(")")){return new tree.Invalid(value,memo,"Missing closing ) in URL.")}else{return new tree.URL(typeof value.value!=="undefined"||value instanceof tree.Variable?value:new tree.Quoted(value))}},variable:function(){var name,index=i;if(input.charAt(i)==="@"&&(name=$(/^@[\w-]+/))){return new tree.Variable(name,index,env.filename)}},hexcolor:function(){var rgb;if(input.charAt(i)==="#"&&(rgb=$(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/))){return new tree.Color(rgb[1])}},keywordcolor:function(){var rgb=chunks[j].match(/^[a-z]+/);if(rgb&&rgb[0]in tree.Reference.data.colors){return new tree.Color(tree.Reference.data.colors[$(/^[a-z]+/)])}},dimension:function(){var c=input.charCodeAt(i);if(c>57||c<45||c===47)return;var value=$(/^(-?\d*\.?\d+(?:[eE][-+]?\d+)?)(\%|\w+)?/);if(value){return new tree.Dimension(value[1],value[2],memo)}}},variable:function(){var name;if(input.charAt(i)==="@"&&(name=$(/^(@[\w-]+)\s*:/))){return name[1]}},entity:function(){return $(this.entities.call)||$(this.entities.literal)||$(this.entities.field)||$(this.entities.variable)||$(this.entities.url)||$(this.entities.keyword)},end:function(){return $(";")||peek("}")},element:function(){var e=$(/^(?:[.#][\w\-]+|\*|Map)/);if(e)return new tree.Element(e)},attachment:function(){var s=$(/^::([\w\-]+(?:\/[\w\-]+)*)/);if(s)return s[1]},selector:function(){var a,attachment,e,elements=[],f,filters=new tree.Filterset,z,zooms=[],frame_offset=tree.FrameOffset.none;segments=0,conditions=0;while((e=$(this.element))||(z=$(this.zoom))||(fo=$(this.frame_offset))||(f=$(this.filter))||(a=$(this.attachment))){segments++;if(e){elements.push(e)}else if(z){zooms.push(z);conditions++}else if(fo){frame_offset=fo;conditions++}else if(f){var err=filters.add(f);if(err){throw makeError({message:err,index:i-1})}conditions++}else if(attachment){throw makeError({message:"Encountered second attachment name.",index:i-1})}else{attachment=a}var c=input.charAt(i);if(c==="{"||c==="}"||c===";"||c===","){break}}if(segments){return new tree.Selector(filters,zooms,frame_offset,elements,attachment,conditions,memo)}},filter:function(){save();var key,op,val;if(!$("["))return;if(key=$(/^[a-zA-Z0-9\-_]+/)||$(this.entities.quoted)||$(this.entities.variable)||$(this.entities.keyword)||$(this.entities.field)){if(key instanceof tree.Quoted){key=new tree.Field(key.toString())}if((op=$(this.entities.comparison))&&(val=$(this.entities.quoted)||$(this.entities.variable)||$(this.entities.dimension)||$(this.entities.keyword)||$(this.entities.field))){if(!$("]")){throw makeError({message:"Missing closing ] of filter.",index:memo-1})}if(!key.is)key=new tree.Field(key);return new tree.Filter(key,op,val,memo,env.filename)}}},frame_offset:function(){save();var op,val;if($(/^\[\s*frame-offset/g)&&(op=$(this.entities.comparison))&&(val=$(/^\d+/))&&$("]")){return tree.FrameOffset(op,val,memo)}},zoom:function(){save();var op,val;if($(/^\[\s*zoom/g)&&(op=$(this.entities.comparison))&&(val=$(this.entities.variable)||$(this.entities.dimension))&&$("]")){return new tree.Zoom(op,val,memo)}else{restore()}},block:function(){var content;if($("{")&&(content=$(this.primary))&&$("}")){return content}},ruleset:function(){var selectors=[],s,f,l,rules,filters=[];save();while(s=$(this.selector)){selectors.push(s);while($(this.comment)){}if(!$(",")){break}while($(this.comment)){}}if(s){while($(this.comment)){}}if(selectors.length>0&&(rules=$(this.block))){if(selectors.length===1&&selectors[0].elements.length&&selectors[0].elements[0].value==="Map"){var rs=new tree.Ruleset(selectors,rules);rs.isMap=true;return rs}return new tree.Ruleset(selectors,rules)}else{restore()}},rule:function(){var name,value,c=input.charAt(i);save();if(c==="."||c==="#"){return}if(name=$(this.variable)||$(this.property)){value=$(this.value);if(value&&$(this.end)){return new tree.Rule(name,value,memo,env.filename)}else{furthest=i;restore()}}},font:function(){var value=[],expression=[],weight,font,e;while(e=$(this.entity)){expression.push(e)}value.push(new tree.Expression(expression));if($(",")){while(e=$(this.expression)){value.push(e);if(!$(",")){break}}}return new tree.Value(value)},value:function(){var e,expressions=[];while(e=$(this.expression)){expressions.push(e);if(!$(",")){break}}if(expressions.length>1){return new tree.Value(expressions.map(function(e){return e.value[0]}))}else if(expressions.length===1){return new tree.Value(expressions)}},sub:function(){var e,expressions=[];if($("(")){while(e=$(this.expression)){expressions.push(e);if(!$(",")){break}}$(")")}if(expressions.length>1){return new tree.Value(expressions.map(function(e){return e.value[0]}))}else if(expressions.length===1){return new tree.Value(expressions)}},multiplication:function(){var m,a,op,operation;if(m=$(this.operand)){while((op=$("/")||$("*")||$("%"))&&(a=$(this.operand))){operation=new tree.Operation(op,[operation||m,a],memo)}return operation||m}},addition:function(){var m,a,op,operation;if(m=$(this.multiplication)){while((op=$(/^[-+]\s+/)||input.charAt(i-1)!=" "&&($("+")||$("-")))&&(a=$(this.multiplication))){operation=new tree.Operation(op,[operation||m,a],memo)}return operation||m}},operand:function(){return $(this.sub)||$(this.entity)},expression:function(){var e,delim,entities=[],d;while(e=$(this.addition)||$(this.entity)){entities.push(e)}if(entities.length>0){return new tree.Expression(entities)}},property:function(){var name=$(/^(([a-z][-a-z_0-9]*\/)?\*?-?[-a-z_0-9]+)\s*:/);if(name)return name[1]}}};return parser}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./tree":46,underscore:163}],43:[function(require,module,exports){(function(global){var _=global._||require("underscore");var carto=require("./index");carto.Renderer=function Renderer(env,options){this.env=env||{};this.options=options||{};this.options.mapnik_version=this.options.mapnik_version||"3.0.0"};carto.Renderer.prototype.renderMSS=function render(data){var env=_.defaults(this.env,{benchmark:false,validation_data:false,effects:[]});if(!carto.tree.Reference.setVersion(this.options.mapnik_version)){throw new Error("Could not set mapnik version to "+this.options.mapnik_version)}var output=[];var styles=[];if(env.benchmark)console.time("Parsing MSS");var parser=carto.Parser(env).parse(data);if(env.benchmark)console.timeEnd("Parsing MSS");if(env.benchmark)console.time("Rule generation");var rule_list=parser.toList(env);if(env.benchmark)console.timeEnd("Rule generation");if(env.benchmark)console.time("Rule inheritance");var rules=inheritDefinitions(rule_list,env);if(env.benchmark)console.timeEnd("Rule inheritance");if(env.benchmark)console.time("Style sort");var sorted=sortStyles(rules,env);if(env.benchmark)console.timeEnd("Style sort");if(env.benchmark)console.time("Total Style generation");for(var k=0,rule,style_name;k<sorted.length;k++){rule=sorted[k];style_name="style"+(rule.attachment!=="__default__"?"-"+rule.attachment:"");styles.push(style_name);var bench_name='\tStyle "'+style_name+'" (#'+k+") toXML";if(env.benchmark)console.time(bench_name);output.push(carto.tree.StyleXML(style_name,rule.attachment,rule,env));if(env.benchmark)console.timeEnd(bench_name)}if(env.benchmark)console.timeEnd("Total Style generation");if(env.errors)throw env.errors;return output.join("\n")};carto.Renderer.prototype.render=function render(m){var env=_.defaults(this.env,{benchmark:false,validation_data:false,effects:[],ppi:90.714});if(!carto.tree.Reference.setVersion(this.options.mapnik_version)){throw new Error("Could not set mapnik version to "+this.options.mapnik_version)}var output=[];var definitions=_.chain(m.Stylesheet).map(function(s){if(typeof s=="string"){throw new Error("Stylesheet object is expected not a string: '"+s+"'")}env=_.extend(env,{filename:s.id});var time=+new Date,root=carto.Parser(env).parse(s.data);if(env.benchmark)console.warn("Parsing time: "+(new Date-time)+"ms");return root.toList(env)}).flatten().value();function appliesTo(name,classIndex){return function(definition){return definition.appliesTo(l.name,classIndex)}}var styles,l,classIndex,rules,sorted,matching;for(var i=0;i<m.Layer.length;i++){l=m.Layer[i];styles=[];classIndex={};if(env.benchmark)console.warn("processing layer: "+l.id);var classes=(l["class"]||"").split(/\s+/g);for(var j=0;j<classes.length;j++){classIndex[classes[j]]=true}matching=definitions.filter(appliesTo(l.name,classIndex));rules=inheritDefinitions(matching,env);sorted=sortStyles(rules,env);for(var k=0,rule,style_name;k<sorted.length;k++){rule=sorted[k];style_name=l.name+(rule.attachment!=="__default__"?"-"+rule.attachment:"");var styleXML=carto.tree.StyleXML(style_name,rule.attachment,rule,env);if(styleXML){output.push(styleXML);styles.push(style_name)}}output.push(carto.tree.LayerXML(l,styles))}output.unshift(env.effects.map(function(e){return e.toXML(env)}).join("\n"));var map_properties=getMapProperties(m,definitions,env);if(env.errors)throw env.errors;var parameters=_.reduce(m,function(memo,v,k){if(!v&&v!==0)return memo;switch(k){case"srs":case"Layer":case"Stylesheet":break;case"bounds":case"center":case"minzoom":case"maxzoom":case"version":memo.push(' <Parameter name="'+k+'">'+v+"</Parameter>");break;case"name":case"description":case"legend":case"attribution":case"template":memo.push(' <Parameter name="'+k+'"><![CDATA['+v+"]]></Parameter>");break;case"format":memo.push(' <Parameter name="'+k+'">'+v+"</Parameter>");break;case"interactivity":memo.push(' <Parameter name="interactivity_layer">'+v.layer+"</Parameter>");memo.push(' <Parameter name="interactivity_fields">'+v.fields+"</Parameter>");break;default:if("string"===typeof v){memo.push(' <Parameter name="'+k+'"><![CDATA['+v+"]]></Parameter>")}else if("number"===typeof v){memo.push(' <Parameter name="'+k+'">'+v+"</Parameter>")}else if("boolean"===typeof v){memo.push(' <Parameter name="'+k+'">'+v+"</Parameter>")}break}return memo},[]);if(parameters.length)output.unshift("<Parameters>\n"+parameters.join("\n")+"\n</Parameters>\n");var properties=_.map(map_properties,function(v){return" "+v}).join("");output.unshift('<?xml version="1.0" '+'encoding="utf-8"?>\n'+"<!DOCTYPE Map[]>\n"+"<Map"+properties+">\n");output.push("</Map>");return output.join("\n")};function addRules(current,definition,byFilter,env){var newFilters=definition.filters,newRules=definition.rules,updatedFilters,clone,previous;for(var k=0;k<current.length;k++){updatedFilters=current[k].filters.cloneWith(newFilters);if(updatedFilters){previous=byFilter[updatedFilters];if(previous){previous.addRules(newRules)}else{clone=current[k].clone(updatedFilters);if(clone.addRules(newRules)){byFilter[updatedFilters]=clone;current.splice(k,0,clone);k++}}}else if(updatedFilters===null){current[k]=current[k].clone();current[k].addRules(newRules)}}return current}function inheritDefinitions(definitions,env){var inheritTime=+new Date;var byAttachment={},byFilter={};var result=[];var current,previous,attachment;definitions.forEach(function(d){d.filters.ev(env)});for(var i=0;i<definitions.length;i++){attachment=definitions[i].attachment;current=[definitions[i]];if(!byAttachment[attachment]){byAttachment[attachment]=[];byAttachment[attachment].attachment=attachment;byFilter[attachment]={};result.push(byAttachment[attachment])}for(var j=i+1;j<definitions.length;j++){if(definitions[j].attachment===attachment){current=addRules(current,definitions[j],byFilter[attachment],env)}}for(var k=0;k<current.length;k++){byFilter[attachment][current[k].filters]=current[k];byAttachment[attachment].push(current[k])}}if(env.benchmark)console.warn("Inheritance time: "+(new Date-inheritTime)+"ms");return result}function sortStylesIndex(a,b){return b.index-a.index}function sortStyles(styles,env){for(var i=0;i<styles.length;i++){var style=styles[i];style.index=Infinity;for(var b=0;b<style.length;b++){var rules=style[b].rules;for(var r=0;r<rules.length;r++){var rule=rules[r];if(rule.index<style.index){style.index=rule.index}}}}var result=styles.slice();result.sort(sortStylesIndex);return result}function getMapProperties(m,definitions,env){var rules={};var symbolizers=carto.tree.Reference.data.symbolizers.map;_(m).each(function(value,key){if(key in symbolizers)rules[key]=key+'="'+value+'"'});definitions.filter(function(r){return r.elements.join("")==="Map"}).forEach(function(r){for(var i=0;i<r.rules.length;i++){var key=r.rules[i].name;if(!(key in symbolizers)){env.error({message:"Rule "+key+" not allowed for Map.",index:r.rules[i].index})}rules[key]=r.rules[i].ev(env).toXML(env)}});return rules}module.exports=carto;module.exports.addRules=addRules;module.exports.inheritDefinitions=inheritDefinitions;module.exports.sortStyles=sortStyles}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./index":41,underscore:163}],44:[function(require,module,exports){(function(global){(function(carto){var tree=require("./tree");var _=global._||require("underscore");function CartoCSS(style,options){this.options=options||{};this.imageURLs=[];if(style){this.setStyle(style)}}CartoCSS.Layer=function(shader,options){this.options=options;this.shader=shader};CartoCSS.Layer.prototype={fullName:function(){return this.shader.attachment},name:function(){return this.fullName().split("::")[0]},frames:function(){return this.shader.frames},attachment:function(){return this.fullName().split("::")[1]},eval:function(prop){var p=this.shader[prop];if(!p||!p.style)return;return p.style({},{zoom:0,"frame-offset":0})},getStyle:function(props,context){var style={};for(var i in this.shader){if(i!=="attachment"&&i!=="zoom"&&i!=="frames"&&i!=="symbolizers"){style[i]=this.shader[i].style(props,context)}}return style},getSymbolizers:function(){return this.shader.symbolizers},isVariable:function(){for(var i in this.shader){if(i!=="attachment"&&i!=="zoom"&&i!=="frames"&&i!=="symbolizers"){if(!this.shader[i].constant){return true}}}return false},getShader:function(){return this.shader},filter:function(featureType,props,context){for(var i in this.shader){var s=this.shader[i](props,context);if(s){return true}}return false},transformGeometry:function(type){return type},transformGeometries:function(geojson){return geojson}};CartoCSS.prototype={setStyle:function(style){var layers=this.parse(style);if(!layers){throw new Error(this.parse_env.errors)}this.layers=layers.map(function(shader){return new CartoCSS.Layer(shader)})},getLayers:function(){return this.layers},getDefault:function(){return this.findLayer({attachment:"__default__"})},findLayer:function(where){return _.find(this.layers,function(value){for(var key in where){var v=value[key];if(typeof v==="function"){v=v.call(value)}if(where[key]!==v)return false}return true})},_createFn:function(ops){var body=ops.join("\n");if(this.options.debug)console.log(body);return Function("data","ctx","var _value = null; "+body+"; return _value; ")},_compile:function(shader){if(typeof shader==="string"){shader=eval("(function() { return "+shader+"; })()")}this.shader_src=shader;for(var attr in shader){var c=mapper[attr];if(c){this.compiled[c]=eval("(function() { return shader[attr]; })();")}}},getImageURLs:function(){return this.imageURLs},parse:function(cartocss){var parse_env={frames:[],errors:[],error:function(obj){this.errors.push(obj)}};this.parse_env=parse_env;var ruleset=null;try{ruleset=new carto.Parser(parse_env).parse(cartocss)}catch(e){parse_env.errors.push(e.message);return}if(ruleset){function defKey(def){return def.elements[0]+"::"+def.attachment}var defs=ruleset.toList(parse_env);defs.reverse();var layers={};for(var i=0;i<defs.length;++i){var def=defs[i];var key=defKey(def);var layer=layers[key]=layers[key]||{symbolizers:[]};for(var u=0;u<def.rules.length;u++){var rule=def.rules[u];if(rule.name==="marker-file"||rule.name==="point-file"){var value=rule.value.value[0].value[0].value.value;this.imageURLs.push(value)}}layer.frames=[];layer.zoom=tree.Zoom.all;var props=def.toJS(parse_env);if(this.options.debug)console.log("props",props);for(var v in props){var lyr=layer[v]=layer[v]||{constant:false,symbolizer:null,js:[],index:0};lyr.js.push(props[v].map(function(a){return a.js}).join("\n"));lyr.symbolizer=_.first(props[v].map(function(a){return a.symbolizer}));lyr.index=_.max(props[v].map(function(a){return a.index}).concat(lyr.index));lyr.constant=!_.any(props[v].map(function(a){return!a.constant}));lyr.filtered=props[v][0].filtered}}var ordered_layers=[];if(this.options.debug)console.log(layers);var done={};for(var i=0;i<defs.length;++i){var def=defs[i];if(this.options.strict){def.toXML(parse_env,{});if(parse_env.errors.message){throw new Error(parse_env.errors.message)}}var k=defKey(def);var layer=layers[k];if(!done[k]){if(this.options.debug)console.log("**",k);for(var prop in layer){if(prop!=="zoom"&&prop!=="frames"&&prop!=="symbolizers"){if(this.options.debug)console.log("*",prop);layer[prop].style=this._createFn(layer[prop].js);layer.symbolizers.push(layer[prop].symbolizer);layer.symbolizers=_.uniq(layer.symbolizers)}}layer.attachment=k;ordered_layers.push(layer);done[k]=true}layer.zoom|=def.zoom;layer.frames.push(def.frame_offset)}for(i=0;i<ordered_layers.length;++i){ordered_layers[i].frames=_.uniq(ordered_layers[i].frames)}return ordered_layers}return null}};carto.RendererJS=function(options){this.options=options||{};this.options.mapnik_version=this.options.mapnik_version||"latest";this.reference=this.options.reference||require("./torque-reference").version.latest;this.options.strict=this.options.hasOwnProperty("strict")?this.options.strict:false};carto.RendererJS.prototype.render=function render(cartocss,callback){tree.Reference.setData(this.reference);return new CartoCSS(cartocss,this.options)};if(typeof module!=="undefined"){module.exports=carto.RendererJS}})(require("../carto"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../carto":41,"./torque-reference":45,"./tree":46,underscore:163}],45:[function(require,module,exports){var _mapnik_reference_latest={version:"2.1.1",style:{"filter-mode":{type:["all","first"],doc:"Control the processing behavior of Rule filters within a Style. If 'all' is used then all Rules are processed sequentially independent of whether any previous filters matched. If 'first' is used then it means processing ends after the first match (a positive filter evaluation) and no further Rules in the Style are processed ('first' is usually the default for CSS implementations on top of Mapnik to simplify translation from CSS to Mapnik XML)","default-value":"all","default-meaning":"All Rules in a Style are processed whether they have filters or not and whether or not the filter conditions evaluate to true."},"image-filters":{css:"image-filters","default-value":"none","default-meaning":"no filters",type:"functions",functions:[["agg-stack-blur",2],["emboss",0],["blur",0],["gray",0],["sobel",0],["edge-detect",0],["x-gradient",0],["y-gradient",0],["invert",0],["sharpen",0],["colorize-alpha",-1],["color-to-alpha",1],["scale-hsla",8]],doc:"A list of image filters."},"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["clear","src","dst","src-over","source-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","lighter","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]},opacity:{css:"opacity",type:"float",doc:"An alpha value for the style (which means an alpha applied to all features in separate buffer and then composited back to main buffer)","default-value":1,"default-meaning":"no separate buffer will be used and no alpha will be applied to the style after rendering"}},layer:{name:{"default-value":"",type:"string",required:true,"default-meaning":"No layer name has been provided",doc:"The name of a layer. Can be anything you wish and is not strictly validated, but ideally unique in the map"},srs:{"default-value":"",type:"string","default-meaning":"No srs value is provided and the value will be inherited from the Map's srs",doc:"The spatial reference system definition for the layer, aka the projection. Can either be a proj4 literal string like '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' or, if the proper proj4 epsg/nad/etc identifier files are installed, a string that uses an id like: '+init=epsg:4326'"},status:{"default-value":true,type:"boolean","default-meaning":"This layer will be marked as active and available for processing",doc:"A property that can be set to false to disable this layer from being processed"},minzoom:{"default-value":"0",type:"float","default-meaning":"The layer will be visible at the minimum possible scale",doc:"The minimum scale denominator that this layer will be visible at. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6"},maxzoom:{"default-value":"1.79769e+308",type:"float","default-meaning":"The layer will be visible at the maximum possible scale",doc:"The maximum scale denominator that this layer will be visible at. The default is the numeric limit of the C++ double type, which may vary slightly by system, but is likely a massive number like 1.79769e+308 and ensures that this layer will always be visible unless the value is reduced. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6"},queryable:{"default-value":false,type:"boolean","default-meaning":"The layer will not be available for the direct querying of data values",doc:"This property was added for GetFeatureInfo/WMS compatibility and is rarely used. It is off by default meaning that in a WMS context the layer will not be able to be queried unless the property is explicitly set to true"},"clear-label-cache":{"default-value":false,type:"boolean","default-meaning":"The renderer's collision detector cache (used for avoiding duplicate labels and overlapping markers) will not be cleared immediately before processing this layer",doc:"This property, by default off, can be enabled to allow a user to clear the collision detector cache before a given layer is processed. This may be desirable to ensure that a given layers data shows up on the map even if it normally would not because of collisions with previously rendered labels or markers"},"group-by":{"default-value":"",type:"string","default-meaning":"No special layer grouping will be used during rendering",doc:"https://github.com/mapnik/mapnik/wiki/Grouped-rendering"},"buffer-size":{"default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:"Extra tolerance around the Layer extent (in pixels) used to when querying and (potentially) clipping the layer data during rendering"},"maximum-extent":{"default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query this specific layer data during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Layer."}},symbolizers:{"*":{"image-filters":{css:"image-filters","default-value":"none","default-meaning":"no filters",type:"functions",functions:[["agg-stack-blur",2],["emboss",0],["blur",0],["gray",0],["sobel",0],["edge-detect",0],["x-gradient",0],["y-gradient",0],["invert",0],["sharpen",0],["colorize-alpha",-1],["color-to-alpha",1],["scale-hsla",8],["buckets",-1],["category",-1],["equal",-1],["headtails",-1],["jenks",-1],["quantiles",-1],["cartocolor",-1],["colorbrewer",-1],["range",-1],["ramp",-1]],doc:"A list of image filters."},"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["clear","src","dst","src-over","source-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","lighter","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]},opacity:{css:"opacity",type:"float",doc:"An alpha value for the style (which means an alpha applied to all features in separate buffer and then composited back to main buffer)","default-value":1,"default-meaning":"no separate buffer will be used and no alpha will be applied to the style after rendering"}},map:{"background-color":{css:"background-color","default-value":"none","default-meaning":"transparent",type:"color",doc:"Map Background color"},"background-image":{css:"background-image",type:"uri","default-value":"","default-meaning":"transparent",doc:"An image that is repeated below all features on a map as a background.",description:"Map Background image"},srs:{css:"srs",type:"string","default-value":"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs","default-meaning":"The proj4 literal of EPSG:4326 is assumed to be the Map's spatial reference and all data from layers within this map will be plotted using this coordinate system. If any layers do not declare an srs value then they will be assumed to be in the same srs as the Map and not transformations will be needed to plot them in the Map's coordinate space",doc:"Map spatial reference (proj4 string)"},"buffer-size":{css:"buffer-size","default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:'Extra tolerance around the map (in pixels) used to ensure labels crossing tile boundaries are equally rendered in each tile (e.g. cut in each tile). Not intended to be used in combination with "avoid-edges".'},"maximum-extent":{css:"","default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query all layers during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Map."},base:{css:"base","default-value":"","default-meaning":"This base path defaults to an empty string meaning that any relative paths to files referenced in styles or layers will be interpreted relative to the application process.",type:"string",doc:"Any relative paths used to reference files will be understood as relative to this directory path if the map is loaded from an in memory object rather than from the filesystem. If the map is loaded from the filesystem and this option is not provided it will be set to the directory of the stylesheet."},"paths-from-xml":{css:"","default-value":true,"default-meaning":"Paths read from XML will be interpreted from the location of the XML",type:"boolean",doc:"value to control whether paths in the XML will be interpreted from the location of the XML or from the working directory of the program that calls load_map()"},"minimum-version":{css:"","default-value":"none","default-meaning":"Mapnik version will not be detected and no error will be thrown about compatibility",type:"string",doc:"The minumum Mapnik version (e.g. 0.7.2) needed to use certain functionality in the stylesheet"},"font-directory":{css:"font-directory",type:"uri","default-value":"none","default-meaning":"No map-specific fonts will be registered",doc:"Path to a directory which holds fonts which should be registered when the Map is loaded (in addition to any fonts that may be automatically registered)."}},polygon:{fill:{css:"polygon-fill",type:"color","default-value":"rgba(128,128,128,1)","default-meaning":"gray and fully opaque (alpha = 1), same as rgb(128,128,128)",doc:"Fill color to assign to a polygon",expression:true},"fill-opacity":{css:"polygon-opacity",type:"float",doc:"The opacity of the polygon","default-value":1,"default-meaning":"opaque",expression:true},gamma:{css:"polygon-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon edges"},"gamma-method":{css:"polygon-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},clip:{css:"polygon-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},line:{stroke:{css:"line-color","default-value":"rgba(0,0,0,1)",type:"color","default-meaning":"black and fully opaque (alpha = 1), same as rgb(0,0,0)",doc:"The color of a drawn line",expression:true},"stroke-width":{css:"line-width","default-value":1,type:"float",doc:"The width of a line in pixels",expression:true},"stroke-opacity":{css:"line-opacity","default-value":1,type:"float","default-meaning":"opaque",doc:"The opacity of a line"},"stroke-linejoin":{css:"line-join","default-value":"miter",type:["miter","round","bevel"],doc:"The behavior of lines when joining"},"stroke-linecap":{css:"line-cap","default-value":"butt",type:["butt","round","square"],doc:"The display of line endings"},"stroke-gamma":{css:"line-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of stroke line"},"stroke-gamma-method":{css:"line-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},"stroke-dasharray":{css:"line-dasharray",type:"numbers",doc:"A pair of length values [a,b], where (a) is the dash length and (b) is the gap length respectively. More than two values are supported for more complex patterns.","default-value":"none","default-meaning":"solid line"},"stroke-dashoffset":{css:"line-dash-offset",type:"numbers",doc:"valid parameter but not currently used in renderers (only exists for experimental svg support in Mapnik which is not yet enabled)","default-value":"none","default-meaning":"solid line"},"stroke-miterlimit":{css:"line-miterlimit",type:"float",doc:"The limit on the ratio of the miter length to the stroke-width. Used to automatically convert miter joins to bevel joins for sharp angles to avoid the miter extending beyond the thickness of the stroking path. Normally will not need to be set, but a larger value can sometimes help avoid jaggy artifacts.","default-value":4,"default-meaning":"Will auto-convert miters to bevel line joins when theta is less than 29 degrees as per the SVG spec: 'miterLength / stroke-width = 1 / sin ( theta / 2 )'"},clip:{css:"line-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},offset:{css:"line-offset",type:"float","default-value":0,"default-meaning":"no offset",doc:"Offsets a line a number of pixels parallel to its actual path. Postive values move the line left, negative values move it right (relative to the directionality of the line)."},rasterizer:{css:"line-rasterizer",type:["full","fast"],"default-value":"full",doc:"Exposes an alternate AGG rendering method that sacrifices some accuracy for speed."},"geometry-transform":{css:"line-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},markers:{file:{css:"marker-file",doc:"An SVG file that this marker shows at each placement. If no file is given, the marker will show an ellipse.","default-value":"","default-meaning":"An ellipse or circle, if width equals height",type:"uri",expression:true},opacity:{css:"marker-opacity",doc:"The overall opacity of the marker, if set, overrides both the opacity of both the fill and stroke","default-value":1,"default-meaning":"The stroke-opacity and fill-opacity will be used",type:"float"},"fill-opacity":{css:"marker-fill-opacity",doc:"The fill opacity of the marker","default-value":1,"default-meaning":"opaque",type:"float"},stroke:{css:"marker-line-color",doc:"The color of the stroke around a marker shape.","default-value":"black",type:"color"},"stroke-width":{css:"marker-line-width",doc:"The width of the stroke around a marker shape, in pixels. This is positioned on the boundary, so high values can cover the area itself.",type:"float"},"stroke-opacity":{css:"marker-line-opacity","default-value":1,"default-meaning":"opaque",doc:"The opacity of a line",type:"float"},placement:{css:"marker-placement",type:["point","line","interior"],"default-value":"point","default-meaning":"Place markers at the center point (centroid) of the geometry",doc:"Attempt to place markers on a point, in the center of a polygon, or if markers-placement:line, then multiple times along a line. 'interior' placement can be used to ensure that points placed on polygons are forced to be inside the polygon interior"},"multi-policy":{css:"marker-multi-policy",type:["each","whole","largest"],"default-value":"each","default-meaning":"If a feature contains multiple geometries and the placement type is either point or interior then a marker will be rendered for each",doc:"A special setting to allow the user to control rendering behavior for 'multi-geometries' (when a feature contains multiple geometries). This setting does not apply to markers placed along lines. The 'each' policy is default and means all geometries will get a marker. The 'whole' policy means that the aggregate centroid between all geometries will be used. The 'largest' policy means that only the largest (by bounding box areas) feature will get a rendered marker (this is how text labeling behaves by default)."},"marker-type":{css:"marker-type",type:["arrow","ellipse","rectangle"],"default-value":"ellipse",doc:"The default marker-type. If a SVG file is not given as the marker-file parameter, the renderer provides either an arrow or an ellipse (a circle if height is equal to width)"},width:{css:"marker-width","default-value":10,doc:"The width of the marker, if using one of the default types.",type:"float",expression:true},height:{css:"marker-height","default-value":10,doc:"The height of the marker, if using one of the default types.",type:"float",expression:true},fill:{css:"marker-fill","default-value":"blue",doc:"The color of the area of the marker.",type:"color",expression:true},"allow-overlap":{css:"marker-allow-overlap",type:"boolean","default-value":false,doc:"Control whether overlapping markers are shown or hidden.","default-meaning":"Do not allow makers to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"marker-ignore-placement",type:"boolean","default-value":false,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},spacing:{css:"marker-spacing",doc:"Space between repeated labels","default-value":100,type:"float"},"max-error":{css:"marker-max-error",type:"float","default-value":.2,doc:"The maximum difference between actual marker placement and the marker-spacing parameter. Setting a high value can allow the renderer to try to resolve placement conflicts with other symbolizers."},transform:{css:"marker-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},clip:{css:"marker-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"marker-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"marker-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"marker-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},shield:{name:{css:"shield-name",type:"string",expression:true,serialization:"content",doc:'Value to use for a shield"s text label. Data columns are specified using brackets like [column_name]'},file:{css:"shield-file",required:true,type:"uri","default-value":"none",doc:"Image file to render behind the shield text"},"face-name":{css:"shield-face-name",type:"string",validate:"font",doc:"Font name and style to use for the shield text","default-value":"",required:true},"unlock-image":{css:"shield-unlock-image",type:"boolean",doc:"This parameter should be set to true if you are trying to position text beside rather than on top of the shield image","default-value":false,"default-meaning":"text alignment relative to the shield image uses the center of the image as the anchor for text positioning."},size:{css:"shield-size",type:"float",doc:"The size of the shield text in pixels"},fill:{css:"shield-fill",type:"color",doc:"The color of the shield text"},placement:{css:"shield-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"How this shield should be placed. Point placement attempts to place it on top of points, line places along lines multiple times per feature, vertex places on the vertexes of polygons, and interior attempts to place inside of polygons."},"placement-type":{css:"shield-placement-type",doc:'Re-position and/or re-size shield to avoid overlaps. "simple" for basic algorithm (using shield-placements string,) "dummy" to turn this feature off.',type:["dummy","simple","list"],expression:true,"default-meaning":"Alternative placements will not be enabled.","default-value":"dummy"},"avoid-edges":{css:"shield-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.",type:"boolean","default-value":false},"allow-overlap":{css:"shield-allow-overlap",type:"boolean","default-value":false,doc:"Control whether overlapping shields are shown or hidden.","default-meaning":"Do not allow shields to overlap with other map elements already placed."},"minimum-distance":{css:"shield-min-distance",type:"float","default-value":0,doc:"Minimum distance to the next shield symbol, not necessarily the same shield."},spacing:{css:"shield-spacing",type:"float","default-value":0,doc:"The spacing between repeated occurrences of the same shield on a line"},"minimum-padding":{css:"shield-min-padding","default-value":0,doc:"Determines the minimum amount of padding that a shield gets relative to other shields",type:"float"},"wrap-width":{css:"shield-wrap-width",type:"unsigned","default-value":0,doc:"Length of a chunk of text in characters before wrapping text"},"wrap-before":{css:"shield-wrap-before",type:"boolean","default-value":false,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"shield-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long names."},"halo-fill":{css:"shield-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"shield-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},"character-spacing":{css:"shield-character-spacing",type:"unsigned","default-value":0,doc:"Horizontal spacing between characters (in pixels). Currently works for point placement only, not line placement."},"line-spacing":{css:"shield-line-spacing",doc:"Vertical spacing between lines of multiline labels (in pixels)",type:"unsigned"},dx:{css:"shield-text-dx",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"shield-text-dy",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"shield-dx":{css:"shield-dx",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},"shield-dy":{css:"shield-dy",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},opacity:{css:"shield-opacity",type:"float",doc:"(Default 1.0) - opacity of the image used for the shield","default-value":1},"text-opacity":{css:"shield-text-opacity",type:"float",doc:"(Default 1.0) - opacity of the text placed on top of the shield","default-value":1},"horizontal-alignment":{css:"shield-horizontal-alignment",type:["left","middle","right","auto"],doc:"The shield's horizontal alignment from its centerpoint","default-value":"auto"},"vertical-alignment":{css:"shield-vertical-alignment",type:["top","middle","bottom","auto"],doc:"The shield's vertical alignment from its centerpoint","default-value":"middle"},"text-transform":{css:"shield-text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"justify-alignment":{css:"shield-justify-alignment",type:["left","center","right","auto"],doc:"Define how text in a shield's label is justified","default-value":"auto"},clip:{css:"shield-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"shield-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"line-pattern":{file:{css:"line-pattern-file",type:"uri","default-value":"none",required:true,doc:"An image file to be repeated and warped along a line",expression:true},clip:{css:"line-pattern-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"line-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"polygon-pattern":{file:{css:"polygon-pattern-file",type:"uri","default-value":"none",required:true,doc:"Image to use as a repeated pattern fill within a polygon",expression:true},alignment:{css:"polygon-pattern-alignment",type:["local","global"],"default-value":"local",doc:"Specify whether to align pattern fills to the layer or to the map."},gamma:{css:"polygon-pattern-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon pattern edges"},opacity:{css:"polygon-pattern-opacity",type:"float",doc:"(Default 1.0) - Apply an opacity level to the image used for the pattern","default-value":1,"default-meaning":"The image is rendered without modifications"},clip:{css:"polygon-pattern-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},raster:{opacity:{css:"raster-opacity","default-value":1,"default-meaning":"opaque",type:"float",doc:"The opacity of the raster symbolizer on top of other symbolizers."},"filter-factor":{css:"raster-filter-factor","default-value":-1,"default-meaning":"Allow the datasource to choose appropriate downscaling.",type:"float",doc:"This is used by the Raster or Gdal datasources to pre-downscale images using overviews. Higher numbers can sometimes cause much better scaled image output, at the cost of speed."},scaling:{css:"raster-scaling",type:["near","fast","bilinear","bilinear8","bicubic","spline16","spline36","hanning","hamming","hermite","kaiser","quadric","catrom","gaussian","bessel","mitchell","sinc","lanczos","blackman"],"default-value":"near",doc:"The scaling algorithm used to making different resolution versions of this raster layer. Bilinear is a good compromise between speed and accuracy, while lanczos gives the highest quality."},"mesh-size":{css:"raster-mesh-size","default-value":16,"default-meaning":"Reprojection mesh will be 1/16 of the resolution of the source image",type:"unsigned",doc:"A reduced resolution mesh is used for raster reprojection, and the total image size is divided by the mesh-size to determine the quality of that mesh. Values for mesh-size larger than the default will result in faster reprojection but might lead to distortion."},"comp-op":{css:"raster-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},point:{file:{css:"point-file",type:"uri",required:false,"default-value":"none",doc:"Image file to represent a point"},"allow-overlap":{css:"point-allow-overlap",type:"boolean","default-value":false,doc:"Control whether overlapping points are shown or hidden.","default-meaning":"Do not allow points to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"point-ignore-placement",type:"boolean","default-value":false,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},opacity:{css:"point-opacity",type:"float","default-value":1,"default-meaning":"Fully opaque",doc:"A value from 0 to 1 to control the opacity of the point"},placement:{css:"point-placement",type:["centroid","interior"],doc:"How this point should be placed. Centroid calculates the geometric center of a polygon, which can be outside of it, while interior always places inside of a polygon.","default-value":"centroid"},transform:{css:"point-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},"comp-op":{css:"point-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},text:{name:{css:"text-name",type:"string",expression:true,required:true,"default-value":"",serialization:"content",doc:"Value to use for a text label. Data columns are specified using brackets like [column_name]"},"face-name":{css:"text-face-name",type:"string",validate:"font",doc:"Font name and style to render a label in",required:true},size:{css:"text-size",type:"float","default-value":10,doc:"Text size in pixels"},"text-ratio":{css:"text-ratio",doc:"Define the amount of text (of the total) present on successive lines when wrapping occurs","default-value":0,type:"unsigned"},"wrap-width":{css:"text-wrap-width",doc:"Length of a chunk of text in characters before wrapping text","default-value":0,type:"unsigned"},"wrap-before":{css:"text-wrap-before",type:"boolean","default-value":false,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"text-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long text."},spacing:{css:"text-spacing",type:"unsigned",doc:"Distance between repeated text labels on a line (aka. label-spacing)"},"character-spacing":{css:"text-character-spacing",type:"float","default-value":0,doc:"Horizontal spacing adjustment between characters in pixels"},"line-spacing":{css:"text-line-spacing","default-value":0,type:"unsigned",doc:"Vertical spacing adjustment between lines in pixels"},"label-position-tolerance":{css:"text-label-position-tolerance","default-value":0,type:"unsigned",doc:"Allows the label to be displaced from its ideal position by a number of pixels (only works with placement:line)"},"max-char-angle-delta":{css:"text-max-char-angle-delta",type:"float","default-value":"22.5",doc:"The maximum angle change, in degrees, allowed between adjacent characters in a label. This value internally is converted to radians to the default is 22.5*math.pi/180.0. The higher the value the fewer labels will be placed around around sharp corners."},fill:{css:"text-fill",doc:"Specifies the color for the text","default-value":"#000000",type:"color"},opacity:{css:"text-opacity",doc:"A number from 0 to 1 specifying the opacity for the text","default-value":1,"default-meaning":"Fully opaque",type:"float"},"halo-fill":{css:"text-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"text-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},dx:{css:"text-dx",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"text-dy",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"vertical-alignment":{css:"text-vertical-alignment",type:["top","middle","bottom","auto"],doc:"Position of label relative to point position.","default-value":"auto","default-meaning":'Default affected by value of dy; "bottom" for dy>0, "top" for dy<0.'},"avoid-edges":{css:"text-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.","default-value":false,type:"boolean"},"minimum-distance":{css:"text-min-distance",doc:"Minimum permitted distance to the next text symbolizer.",type:"float"},"minimum-padding":{css:"text-min-padding",doc:"Determines the minimum amount of padding that a text symbolizer gets relative to other text",type:"float"},"minimum-path-length":{css:"text-min-path-length",type:"float","default-value":0,"default-meaning":"place labels on all paths",doc:"Place labels only on paths longer than this value."},"allow-overlap":{css:"text-allow-overlap",type:"boolean","default-value":false,doc:"Control whether overlapping text is shown or hidden.","default-meaning":"Do not allow text to overlap with other text - overlapping markers will not be shown."},orientation:{css:"text-orientation",type:"float",expression:true,doc:"Rotate the text."},placement:{css:"text-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"Control the style of placement of a point versus the geometry it is attached to."},"placement-type":{css:"text-placement-type",doc:'Re-position and/or re-size text to avoid overlaps. "simple" for basic algorithm (using text-placements string,) "dummy" to turn this feature off.',type:["dummy","simple"],"default-value":"dummy"},placements:{css:"text-placements",type:"string","default-value":"",doc:'If "placement-type" is set to "simple", use this "POSITIONS,[SIZES]" string. An example is `text-placements: "E,NE,SE,W,NW,SW";` '},"text-transform":{css:"text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"horizontal-alignment":{css:"text-horizontal-alignment",type:["left","middle","right","auto"],doc:"The text's horizontal alignment from its centerpoint","default-value":"auto"},"justify-alignment":{css:"text-align",type:["left","right","center","auto"],doc:"Define how text is justified","default-value":"auto","default-meaning":"Auto alignment means that text will be centered by default except when using the `placement-type` parameter - in that case either right or left justification will be used automatically depending on where the text could be fit given the `text-placements` directives"},clip:{css:"text-clip",type:"boolean","default-value":true,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"text-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},building:{fill:{css:"building-fill","default-value":"#FFFFFF",doc:"The color of the buildings walls.",type:"color"},"fill-opacity":{css:"building-fill-opacity",type:"float",doc:"The opacity of the building as a whole, including all walls.","default-value":1},height:{css:"building-height",doc:"The height of the building in pixels.",type:"float",expression:true,"default-value":"0"}},torque:{"-torque-clear-color":{css:"-torque-clear-color",type:"color","default-value":"rgba(255, 255, 255, 0)","default-meaning":"full clear",doc:"color used to clear canvas on each frame"},"-torque-frame-count":{css:"-torque-frame-count","default-value":"128",type:"float","default-meaning":"the data is broken into 128 time frames",doc:"Number of animation steps/frames used in the animation. If the data contains a fewere number of total frames, the lesser value will be used."},"-torque-resolution":{css:"-torque-resolution","default-value":"2",type:"float","default-meaning":"",doc:"Spatial resolution in pixels. A resolution of 1 means no spatial aggregation of the data. Any other resolution of N results in spatial aggregation into cells of NxN pixels. The value N must be power of 2"},"-torque-animation-duration":{css:"-torque-animation-duration","default-value":"30",type:"float","default-meaning":"the animation lasts 30 seconds",doc:"Animation duration in seconds"},"-torque-aggregation-function":{css:"-torque-aggregation-function","default-value":"count(cartodb_id)",type:"string","default-meaning":"the value for each cell is the count of points in that cell",doc:"A function used to calculate a value from the aggregate data for each cell. See -torque-resolution"},"-torque-time-attribute":{css:"-torque-time-attribute","default-value":"time",type:"string","default-meaning":"the data column in your table that is of a time based type",doc:"The table column that contains the time information used create the animation"},"-torque-data-aggregation":{css:"-torque-data-aggregation","default-value":"linear",type:["linear","cumulative"],"default-meaning":"previous values are discarded",doc:"A linear animation will discard previous values while a cumulative animation will accumulate them until it restarts"}}},colors:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50],transparent:[0,0,0,0]},filter:{value:["true","false","null","point","linestring","polygon","collection"]}};module.exports={version:{latest:_mapnik_reference_latest,"2.1.1":_mapnik_reference_latest}}},{}],46:[function(require,module,exports){if(typeof module!=="undefined"){module.exports.find=function(obj,fun){for(var i=0,r;i<obj.length;i++){if(r=fun.call(obj,obj[i])){return r}}return null}}},{}],47:[function(require,module,exports){(function(global){(function(tree){var _=global._||require("underscore");tree.Call=function Call(name,args,index){this.name=name;this.args=args;this.index=index};tree.Call.prototype={is:"call",ev:function(env){var args=this.args.map(function(a){return a.ev(env)});for(var i=0;i<args.length;i++){if(args[i].is==="undefined"){return{is:"undefined",value:"undefined"}}}if(this.name in tree.functions){if(tree.functions[this.name].length<=args.length){var val=tree.functions[this.name].apply(tree.functions,args);if(val===null){env.error({message:"incorrect arguments given to "+this.name+"()",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}return val}else{env.error({message:"incorrect number of arguments for "+this.name+"(). "+tree.functions[this.name].length+" expected.",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}}else{var fn=tree.Reference.mapnikFunctions[this.name];if(fn===undefined){var functions=_.pairs(tree.Reference.mapnikFunctions);var name=this.name;var mean=functions.map(function(f){return[f[0],tree.Reference.editDistance(name,f[0]),f[1]]}).sort(function(a,b){return a[1]-b[1]});env.error({message:"unknown function "+this.name+"(), did you mean "+mean[0][0]+"("+mean[0][2]+")",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}if(fn!==args.length&&!(Array.isArray(fn)&&_.include(fn,args.length))&&fn!==-1){env.error({message:"function "+this.name+"() takes "+fn+" arguments and was given "+args.length,index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}else{this.args=args;return this}}},toString:function(env,format){if(this.args.length){return this.name+"("+this.args.join(",")+")"}else{return this.name}}}})(require("../tree"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,underscore:163}],48:[function(require,module,exports){(function(tree){tree.Color=function Color(rgb,a){if(Array.isArray(rgb)){this.rgb=rgb.slice(0,3)}else if(rgb.length==6){this.rgb=rgb.match(/.{2}/g).map(function(c){return parseInt(c,16)})}else{this.rgb=rgb.split("").map(function(c){return parseInt(c+c,16)})}if(typeof a==="number"){this.alpha=a}else if(rgb.length===4){this.alpha=rgb[3]}else{this.alpha=1}};tree.Color.prototype={is:"color",ev:function(){return this},toString:function(){if(this.alpha<1){return"rgba("+this.rgb.map(function(c){return Math.round(c)}).concat(this.alpha).join(", ")+")"}else{return"#"+this.rgb.map(function(i){i=Math.round(i);i=(i>255?255:i<0?0:i).toString(16);return i.length===1?"0"+i:i}).join("")}},operate:function(env,op,other){var result=[];if(!(other instanceof tree.Color)){other=other.toColor()}for(var c=0;c<3;c++){result[c]=tree.operate(op,this.rgb[c],other.rgb[c])}return new tree.Color(result)},toHSL:function(){var r=this.rgb[0]/255,g=this.rgb[1]/255,b=this.rgb[2]/255,a=this.alpha;var max=Math.max(r,g,b),min=Math.min(r,g,b);var h,s,l=(max+min)/2,d=max-min;if(max===min){h=s=0}else{s=l>.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break}h/=6}return{h:h*360,s:s,l:l,a:a}}}})(require("../tree"))},{"../tree":46}],49:[function(require,module,exports){(function(tree){tree.Comment=function Comment(value,silent){this.value=value;this.silent=!!silent};tree.Comment.prototype={toString:function(env){return"\x3c!--"+this.value+"--\x3e"},ev:function(){return this}}})(require("../tree"))},{"../tree":46}],50:[function(require,module,exports){(function(global){(function(tree){var assert=require("assert"),_=global._||require("underscore");tree.Definition=function Definition(selector,rules){this.elements=selector.elements;assert.ok(selector.filters instanceof tree.Filterset);this.rules=rules;this.ruleIndex={};for(var i=0;i<this.rules.length;i++){if("zoom"in this.rules[i])this.rules[i]=this.rules[i].clone();this.rules[i].zoom=selector.zoom;this.ruleIndex[this.rules[i].updateID()]=true}this.filters=selector.filters;this.zoom=selector.zoom;this.frame_offset=selector.frame_offset;this.attachment=selector.attachment||"__default__";this.specificity=selector.specificity()};tree.Definition.prototype.toString=function(){var str=this.filters.toString();for(var i=0;i<this.rules.length;i++){str+="\n "+this.rules[i]}return str};tree.Definition.prototype.clone=function(filters){if(filters)assert.ok(filters instanceof tree.Filterset);var clone=Object.create(tree.Definition.prototype);clone.rules=this.rules.slice();clone.ruleIndex=_.clone(this.ruleIndex);clone.filters=filters?filters:this.filters.clone();clone.attachment=this.attachment;return clone};tree.Definition.prototype.addRules=function(rules){var added=0;for(var i=0;i<rules.length;i++){if(!this.ruleIndex[rules[i].id]){this.rules.push(rules[i]);this.ruleIndex[rules[i].id]=true;added++}}return added};tree.Definition.prototype.appliesTo=function(id,classes){for(var i=0,l=this.elements.length;i<l;i++){var elem=this.elements[i];if(!(elem.wildcard||elem.type==="class"&&classes[elem.clean]||elem.type==="id"&&id===elem.clean))return false}return true};function symbolizerName(symbolizer){function capitalize(str){return str[1].toUpperCase()}return symbolizer.charAt(0).toUpperCase()+symbolizer.slice(1).replace(/\-./,capitalize)+"Symbolizer"}function symbolizerList(sym_order){return sym_order.sort(function(a,b){return a[1]-b[1]}).map(function(v){return v[0]})}tree.Definition.prototype.symbolizersToXML=function(env,symbolizers,zoom){var xml=zoom.toXML(env).join("")+this.filters.toXML(env);var sym_order=[],indexes=[];for(var key in symbolizers){indexes=[];for(var prop in symbolizers[key]){indexes.push(symbolizers[key][prop].index)}var min_idx=Math.min.apply(Math,indexes);sym_order.push([key,min_idx])}sym_order=symbolizerList(sym_order);var sym_count=0;for(var i=0;i<sym_order.length;i++){var attributes=symbolizers[sym_order[i]];var symbolizer=sym_order[i].split("/").pop();if(symbolizer==="*")continue;sym_count++;var fail=tree.Reference.requiredProperties(symbolizer,attributes);if(fail){var rule=attributes[Object.keys(attributes).shift()];env.error({message:fail,index:rule.index,filename:rule.filename})}var name=symbolizerName(symbolizer);var selfclosing=true,tagcontent;xml+=" <"+name+" ";for(var j in attributes){if(symbolizer==="map")env.error({message:"Map properties are not permitted in other rules",index:attributes[j].index,filename:attributes[j].filename});var x=tree.Reference.selector(attributes[j].name);if(x&&x.serialization&&x.serialization==="content"){selfclosing=false;tagcontent=attributes[j].ev(env).toXML(env,true)}else if(x&&x.serialization&&x.serialization==="tag"){selfclosing=false;tagcontent=attributes[j].ev(env).toXML(env,true)}else{xml+=attributes[j].ev(env).toXML(env)+" "}}if(selfclosing){xml+="/>\n"}else if(typeof tagcontent!=="undefined"){if(tagcontent.indexOf("<")!=-1){xml+=">"+tagcontent+"</"+name+">\n"}else{xml+="><![CDATA["+tagcontent+"]]></"+name+">\n"}}}if(!sym_count||!xml)return"";return" <Rule>\n"+xml+" </Rule>\n"};tree.Definition.prototype.collectSymbolizers=function(zooms,i){var symbolizers={},child;for(var j=i;j<this.rules.length;j++){child=this.rules[j];var key=child.instance+"/"+child.symbolizer;if(zooms.current&child.zoom&&(!(key in symbolizers)||!(child.name in symbolizers[key]))){zooms.current&=child.zoom;if(!(key in symbolizers)){symbolizers[key]={}}symbolizers[key][child.name]=child}}if(Object.keys(symbolizers).length){zooms.rule&=zooms.available&=~zooms.current;return symbolizers}};tree.Definition.prototype.toXML=function(env,existing){var filter=this.filters.toString();if(!(filter in existing))existing[filter]=tree.Zoom.all;var available=tree.Zoom.all,xml="",zoom,symbolizers,zooms={available:tree.Zoom.all};for(var i=0;i<this.rules.length&&available;i++){zooms.rule=this.rules[i].zoom;if(!(existing[filter]&zooms.rule))continue;while(zooms.current=zooms.rule&available){if(symbolizers=this.collectSymbolizers(zooms,i)){if(!(existing[filter]&zooms.current))continue;xml+=this.symbolizersToXML(env,symbolizers,(new tree.Zoom).setZoom(existing[filter]&zooms.current));existing[filter]&=~zooms.current}}}return xml};tree.Definition.prototype.toJS=function(env){var shaderAttrs={};var frame_offset=this.frame_offset;var zoomFilter="("+this.zoom+" & (1 << ctx.zoom))";var filters=[zoomFilter];var originalFilters=this.filters.toJS(env);var zoomFiltered=this.zoom!==tree.Zoom.all;if(originalFilters){filters.push(originalFilters)}if(frame_offset){filters.push('ctx["frame-offset"] === '+frame_offset)}_.each(this.rules,function(rule){var exportedRule={};if(!rule instanceof tree.Rule){throw new Error("Ruleset not supported")}exportedRule.index=rule.index;exportedRule.symbolizer=rule.symbolizer;exportedRule.js="if("+filters.join(" && ")+"){"+rule.value.toJS(env)+"}";exportedRule.constant=rule.value.ev(env).is!=="field";exportedRule.filtered=zoomFiltered||originalFilters!=="";shaderAttrs[rule.name]=shaderAttrs[rule.name]||[];shaderAttrs[rule.name].push(exportedRule)});return shaderAttrs}})(require("../tree"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,assert:35,underscore:163}],51:[function(require,module,exports){(function(global){(function(tree){var _=global._||require("underscore");tree.Dimension=function Dimension(value,unit,index){this.value=parseFloat(value);this.unit=unit||null;this.index=index};tree.Dimension.prototype={is:"float",physical_units:["m","cm","in","mm","pt","pc"],screen_units:["px","%"],all_units:["m","cm","in","mm","pt","pc","px","%"],densities:{m:.0254,mm:25.4,cm:2.54,pt:72,pc:6},ev:function(env){if(this.unit&&!_.contains(this.all_units,this.unit)){env.error({message:"Invalid unit: '"+this.unit+"'",index:this.index});return{is:"undefined",value:"undefined"}}if(this.unit&&_.contains(this.physical_units,this.unit)){if(!env.ppi){env.error({message:"ppi is not set, so metric units can't be used",index:this.index});return{is:"undefined",value:"undefined"}}this.value=this.value/this.densities[this.unit]*env.ppi;this.unit="px"}return this},round:function(){this.value=Math.round(this.value);return this},toColor:function(){return new tree.Color([this.value,this.value,this.value])},round:function(){this.value=Math.round(this.value);return this},toString:function(){return this.value.toString()},operate:function(env,op,other){if(this.unit==="%"&&other.unit!=="%"){env.error({message:"If two operands differ, the first must not be %",index:this.index});return{is:"undefined",value:"undefined"}}if(this.unit!=="%"&&other.unit==="%"){if(op==="*"||op==="/"||op==="%"){env.error({message:"Percent values can only be added or subtracted from other values",index:this.index});return{is:"undefined",value:"undefined"}}return new tree.Dimension(tree.operate(op,this.value,this.value*other.value*.01),this.unit)}return new tree.Dimension(tree.operate(op,this.value,other.value),this.unit||other.unit)}}})(require("../tree"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,underscore:163}],52:[function(require,module,exports){(function(tree){tree.Element=function Element(value){this.value=value.trim();if(this.value[0]==="#"){this.type="id";this.clean=this.value.replace(/^#/,"")}if(this.value[0]==="."){this.type="class";this.clean=this.value.replace(/^\./,"")}if(this.value.indexOf("*")!==-1){this.type="wildcard"}};tree.Element.prototype.specificity=function(){return[this.type==="id"?1:0,this.type==="class"?1:0]};tree.Element.prototype.toString=function(){return this.value}})(require("../tree"))},{"../tree":46}],53:[function(require,module,exports){(function(tree){tree.Expression=function Expression(value){this.value=value};tree.Expression.prototype={is:"expression",ev:function(env){if(this.value.length>1){return new tree.Expression(this.value.map(function(e){return e.ev(env)}))}else{return this.value[0].ev(env)}},toString:function(env){return this.value.map(function(e){return e.toString(env)}).join(" ")}}})(require("../tree"))},{"../tree":46}],54:[function(require,module,exports){(function(tree){tree.Field=function Field(content){this.value=content||""};tree.Field.prototype={is:"field",toString:function(){return"["+this.value+"]"},ev:function(){return this}}})(require("../tree"))},{"../tree":46}],55:[function(require,module,exports){(function(tree){tree.Filter=function Filter(key,op,val,index,filename){this.key=key;this.op=op;this.val=val;this.index=index;this.filename=filename;this.id=this.key+this.op+this.val};var ops={"<":[" &lt; ","numeric"],">":[" &gt; ","numeric"],"=":[" = ","both"],"!=":[" != ","both"],"<=":[" &lt;= ","numeric"],">=":[" &gt;= ","numeric"],"=~":[".match(","string",")"]};tree.Filter.prototype.ev=function(env){this.key=this.key.ev(env);this.val=this.val.ev(env);return this};tree.Filter.prototype.toXML=function(env){if(tree.Reference.data.filter){if(this.key.is==="keyword"&&-1===tree.Reference.data.filter.value.indexOf(this.key.toString())){env.error({message:this.key.toString()+" is not a valid keyword in a filter expression",index:this.index,filename:this.filename})}if(this.val.is==="keyword"&&-1===tree.Reference.data.filter.value.indexOf(this.val.toString())){env.error({message:this.val.toString()+" is not a valid keyword in a filter expression",index:this.index,filename:this.filename})}}var key=this.key.toString(false);var val=this.val.toString(this.val.is=="string");if(ops[this.op][1]=="numeric"&&isNaN(val)&&this.val.is!=="field"||ops[this.op][1]=="string"&&val[0]!="'"){env.error({message:'Cannot use operator "'+this.op+'" with value '+this.val,index:this.index,filename:this.filename})}return key+ops[this.op][0]+val+(ops[this.op][2]||"")};tree.Filter.prototype.toString=function(){return"["+this.id+"]"}})(require("../tree"))},{"../tree":46}],56:[function(require,module,exports){(function(global){var tree=require("../tree");var _=global._||require("underscore");tree.Filterset=function Filterset(){this.filters={}};tree.Filterset.prototype.toXML=function(env){var filters=[];for(var id in this.filters){filters.push("("+this.filters[id].toXML(env).trim()+")")}if(filters.length){return" <Filter>"+filters.join(" and ")+"</Filter>\n"}else{return""}};tree.Filterset.prototype.toString=function(){var arr=[];for(var id in this.filters)arr.push(this.filters[id].id);return arr.sort().join("\t")};tree.Filterset.prototype.ev=function(env){for(var i in this.filters){this.filters[i].ev(env)}return this};tree.Filterset.prototype.clone=function(){var clone=new tree.Filterset;for(var id in this.filters){clone.filters[id]=this.filters[id]}return clone};tree.Filterset.prototype.cloneWith=function(other){var additions=[];for(var id in other.filters){var status=this.addable(other.filters[id]);if(status===false){return false}if(status===true){additions.push(other.filters[id])}}if(!additions.length){return null}var clone=new tree.Filterset;for(id in this.filters){clone.filters[id]=this.filters[id]}while(id=additions.shift()){clone.add(id)}return clone};tree.Filterset.prototype.toJS=function(env){var opMap={"=":"==="};return _.map(this.filters,function(filter){var op=filter.op;if(op in opMap){op=opMap[op]}var val=filter.val;if(filter._val!==undefined){val=filter._val.toString(true)}var attrs="data";if(op==="=~"){return"("+attrs+"['"+filter.key.value+"'] + '').match("+(val.is==="string"?"'"+val.toString().replace(/'/g,"\\'").replace(/&amp;/g,"&")+"'":val)+")"}return attrs+"['"+filter.key.value+"'] "+op+" "+(val.is==="string"?"'"+val.toString().replace(/'/g,"\\'").replace(/&amp;/g,"&")+"'":val)}).join(" && ")};tree.Filterset.prototype.addable=function(filter){var key=filter.key.toString(),value=filter.val.toString();if(value.match(/^[0-9]+(\.[0-9]*)?$/))value=parseFloat(value);switch(filter.op){case"=":if(this.filters[key+"="]!==undefined){if(this.filters[key+"="].val.toString()!=value){return false}else{return null}}if(this.filters[key+"!="+value]!==undefined)return false;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return false;if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return false;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>value)return false;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<value)return false;return true;case"=~":return true;case"!=":if(this.filters[key+"="]!==undefined)return this.filters[key+"="].val==value?false:null;if(this.filters[key+"!="+value]!==undefined)return null;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return null;if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return null;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>value)return null;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<value)return null;return true;case">":if(key+"="in this.filters){if(this.filters[key+"="].val<=value){return false}else{return null}}if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return false;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<=value)return false;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return null;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>value)return null;return true;case">=":if(this.filters[key+"="]!==undefined)return this.filters[key+"="].val<value?false:null;if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return false;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<value)return false;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return null;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>=value)return null;return true;case"<":if(this.filters[key+"="]!==undefined)return this.filters[key+"="].val>=value?false:null;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return false;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>=value)return false;if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return null;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<value)return null;return true;case"<=":if(this.filters[key+"="]!==undefined)return this.filters[key+"="].val>value?false:null;if(this.filters[key+">"]!==undefined&&this.filters[key+">"].val>=value)return false;if(this.filters[key+">="]!==undefined&&this.filters[key+">="].val>value)return false;if(this.filters[key+"<"]!==undefined&&this.filters[key+"<"].val<=value)return null;if(this.filters[key+"<="]!==undefined&&this.filters[key+"<="].val<=value)return null;return true}};tree.Filterset.prototype.conflict=function(filter){var key=filter.key.toString(),value=filter.val.toString();if(!isNaN(parseFloat(value)))value=parseFloat(value);if(filter.op==="="&&this.filters[key+"="]!==undefined&&value!=this.filters[key+"="].val.toString()||filter.op==="!="&&this.filters[key+"="]!==undefined&&value==this.filters[key+"="].val.toString()||filter.op==="="&&this.filters[key+"!="]!==undefined&&value==this.filters[key+"!="].val.toString()){return filter.toString()+" added to "+this.toString()+" produces an invalid filter"}return false};tree.Filterset.prototype.add=function(filter,env){var key=filter.key.toString(),id,op=filter.op,conflict=this.conflict(filter),numval;if(conflict)return conflict;if(op==="="){for(var i in this.filters){if(this.filters[i].key==key)delete this.filters[i]}this.filters[key+"="]=filter}else if(op==="!="){this.filters[key+"!="+filter.val]=filter}else if(op==="=~"){this.filters[key+"=~"+filter.val]=filter}else if(op===">"){for(var j in this.filters){if(this.filters[j].key==key&&this.filters[j].val<=filter.val){delete this.filters[j]}}this.filters[key+">"]=filter}else if(op===">="){for(var k in this.filters){numval=+this.filters[k].val.toString();if(this.filters[k].key==key&&numval<filter.val){delete this.filters[k]}}if(this.filters[key+"!="+filter.val]!==undefined){delete this.filters[key+"!="+filter.val];filter.op=">";this.filters[key+">"]=filter}else{this.filters[key+">="]=filter}}else if(op==="<"){for(var l in this.filters){numval=+this.filters[l].val.toString();if(this.filters[l].key==key&&numval>=filter.val){delete this.filters[l]}}this.filters[key+"<"]=filter}else if(op==="<="){for(var m in this.filters){numval=+this.filters[m].val.toString();if(this.filters[m].key==key&&numval>filter.val){delete this.filters[m]}}if(this.filters[key+"!="+filter.val]!==undefined){delete this.filters[key+"!="+filter.val];filter.op="<";this.filters[key+"<"]=filter}else{this.filters[key+"<="]=filter}}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,underscore:163}],57:[function(require,module,exports){(function(tree){tree._getFontSet=function(env,fonts){var fontKey=fonts.join("");if(env._fontMap&&env._fontMap[fontKey]){return env._fontMap[fontKey]}var new_fontset=new tree.FontSet(env,fonts);env.effects.push(new_fontset);if(!env._fontMap)env._fontMap={};env._fontMap[fontKey]=new_fontset;return new_fontset};tree.FontSet=function FontSet(env,fonts){this.fonts=fonts;this.name="fontset-"+env.effects.length};tree.FontSet.prototype.toXML=function(env){return'<FontSet name="'+this.name+'">\n'+this.fonts.map(function(f){return' <Font face-name="'+f+'"/>'}).join("\n")+"\n</FontSet>"}})(require("../tree"))},{"../tree":46}],58:[function(require,module,exports){var tree=require("../tree");tree.FrameOffset=function(op,value,index){value=parseInt(value,10);if(value>tree.FrameOffset.max||value<=0){throw{message:"Only frame-offset levels between 1 and "+tree.FrameOffset.max+" supported.",index:index}}if(op!=="="){throw{message:"only = operator is supported for frame-offset",index:index}}return value};tree.FrameOffset.max=32;tree.FrameOffset.none=0},{"../tree":46}],59:[function(require,module,exports){(function(tree){tree.ImageFilter=function ImageFilter(filter,args){this.filter=filter;this.args=args||null};tree.ImageFilter.prototype={is:"imagefilter",ev:function(){return this},toString:function(){if(this.args){return this.filter+"("+this.args.join(",")+")"}else{return this.filter}}}})(require("../tree"))},{"../tree":46}],60:[function(require,module,exports){(function(tree){tree.Invalid=function Invalid(chunk,index,message){this.chunk=chunk;this.index=index;this.type="syntax";this.message=message||"Invalid code: "+this.chunk};tree.Invalid.prototype.is="invalid";tree.Invalid.prototype.ev=function(env){env.error({chunk:this.chunk,index:this.index,type:"syntax",message:this.message||"Invalid code: "+this.chunk});return{is:"undefined"}}})(require("../tree"))},{"../tree":46}],61:[function(require,module,exports){(function(tree){tree.Keyword=function Keyword(value){this.value=value;var special={transparent:"color",true:"boolean",false:"boolean"};this.is=special[value]?special[value]:"keyword"};tree.Keyword.prototype={ev:function(){return this},toString:function(){return this.value}}})(require("../tree"))},{"../tree":46}],62:[function(require,module,exports){(function(tree){tree.LayerXML=function(obj,styles){var dsoptions=[];for(var i in obj.Datasource){dsoptions.push('<Parameter name="'+i+'"><![CDATA['+obj.Datasource[i]+"]]></Parameter>")}var prop_string="";for(var prop in obj.properties){if(prop==="minzoom"){prop_string+=' maxzoom="'+tree.Zoom.ranges[obj.properties[prop]]+'"\n'}else if(prop==="maxzoom"){prop_string+=' minzoom="'+tree.Zoom.ranges[obj.properties[prop]+1]+'"\n'}else{prop_string+=" "+prop+'="'+obj.properties[prop]+'"\n'}}return"<Layer"+' name="'+obj.name+'"\n'+prop_string+(typeof obj.status==="undefined"?"":' status="'+obj.status+'"\n')+(typeof obj.srs==="undefined"?"":' srs="'+obj.srs+'"')+">\n "+styles.reverse().map(function(s){return"<StyleName>"+s+"</StyleName>"}).join("\n ")+(dsoptions.length?"\n <Datasource>\n "+dsoptions.join("\n ")+"\n </Datasource>\n":"")+" </Layer>\n"}})(require("../tree"))},{"../tree":46}],63:[function(require,module,exports){(function(tree){tree.Literal=function Field(content){this.value=content||"";this.is="field"};tree.Literal.prototype={toString:function(){return this.value},ev:function(){return this}}})(require("../tree"))},{"../tree":46}],64:[function(require,module,exports){(function(tree){tree.Operation=function Operation(op,operands,index){this.op=op.trim();this.operands=operands;this.index=index};tree.Operation.prototype.is="operation";tree.Operation.prototype.ev=function(env){var a=this.operands[0].ev(env),b=this.operands[1].ev(env),temp;if(a.is==="undefined"||b.is==="undefined"){return{is:"undefined",value:"undefined"}}if(a instanceof tree.Dimension&&b instanceof tree.Color){if(this.op==="*"||this.op==="+"){temp=b,b=a,a=temp}else{env.error({name:"OperationError",message:"Can't substract or divide a color from a number",index:this.index})}}if(a instanceof tree.Quoted&&b instanceof tree.Quoted&&this.op!=="+"){env.error({message:"Can't subtract, divide, or multiply strings.",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}if(a instanceof tree.Field||b instanceof tree.Field||a instanceof tree.Literal||b instanceof tree.Literal){if(a.is==="color"||b.is==="color"){env.error({message:"Can't subtract, divide, or multiply colors in expressions.",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}else{return new tree.Literal(a.ev(env).toString(true)+this.op+b.ev(env).toString(true))}}if(a.operate===undefined){env.error({message:"Cannot do math with type "+a.is+".",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}return a.operate(env,this.op,b)};tree.operate=function(op,a,b){switch(op){case"+":return a+b;case"-":return a-b;case"*":return a*b;case"%":return a%b;case"/":return a/b}}})(require("../tree"))},{"../tree":46}],65:[function(require,module,exports){(function(tree){tree.Quoted=function Quoted(content){this.value=content||""};tree.Quoted.prototype={is:"string",toString:function(quotes){var escapedValue=this.value.replace(/&/g,"&amp;");var xmlvalue=escapedValue.replace(/\'/g,"\\'").replace(/\"/g,"&quot;").replace(/</g,"&lt;").replace(/\>/g,"&gt;");return quotes===true?"'"+xmlvalue+"'":escapedValue},ev:function(){return this},operate:function(env,op,other){return new tree.Quoted(tree.operate(op,this.toString(),other.toString(this.contains_field)))}}})(require("../tree"))},{"../tree":46}],66:[function(require,module,exports){(function(global){(function(tree){var _=global._||require("underscore"),ref={};ref.setData=function(data){ref.data=data;ref.selector_cache=generateSelectorCache(data);ref.mapnikFunctions=generateMapnikFunctions(data);ref.mapnikFunctions.matrix=[6];ref.mapnikFunctions.translate=[1,2];ref.mapnikFunctions.scale=[1,2];ref.mapnikFunctions.rotate=[1,3];ref.mapnikFunctions.skewX=[1];ref.mapnikFunctions.skewY=[1];ref.required_cache=generateRequiredProperties(data)};ref.setVersion=function(version){var mapnik_reference=require("mapnik-reference");if(mapnik_reference.version.hasOwnProperty(version)){ref.setData(mapnik_reference.version[version]);return true}else{return false}};ref.selectorData=function(selector,i){if(ref.selector_cache[selector])return ref.selector_cache[selector][i]};ref.validSelector=function(selector){return!!ref.selector_cache[selector]};ref.selectorName=function(selector){return ref.selectorData(selector,2)};ref.selector=function(selector){return ref.selectorData(selector,0)};ref.symbolizer=function(selector){return ref.selectorData(selector,1)};function generateSelectorCache(data){var index={};for(var i in data.symbolizers){for(var j in data.symbolizers[i]){if(data.symbolizers[i][j].hasOwnProperty("css")){index[data.symbolizers[i][j].css]=[data.symbolizers[i][j],i,j]}}}return index}function generateMapnikFunctions(data){var functions={};for(var i in data.symbolizers){for(var j in data.symbolizers[i]){if(data.symbolizers[i][j].type==="functions"){for(var k=0;k<data.symbolizers[i][j].functions.length;k++){var fn=data.symbolizers[i][j].functions[k];functions[fn[0]]=fn[1]}}}}return functions}function generateRequiredProperties(data){var cache={};for(var symbolizer_name in data.symbolizers){cache[symbolizer_name]=[];for(var j in data.symbolizers[symbolizer_name]){if(data.symbolizers[symbolizer_name][j].required){cache[symbolizer_name].push(data.symbolizers[symbolizer_name][j].css)}}}return cache}ref.requiredProperties=function(symbolizer_name,rules){var req=ref.required_cache[symbolizer_name];for(var i in req){if(!(req[i]in rules)){return"Property "+req[i]+" required for defining "+symbolizer_name+" styles."}}};ref._validateValue={font:function(env,value){if(env.validation_data&&env.validation_data.fonts){return env.validation_data.fonts.indexOf(value)!=-1}else{return true}}};ref.isFont=function(selector){return ref.selector(selector).validate=="font"};ref.editDistance=function(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];for(var i=0;i<=b.length;i++){matrix[i]=[i]}for(var j=0;j<=a.length;j++){matrix[0][j]=j}for(i=1;i<=b.length;i++){for(j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]};function validateFunctions(value,selector){if(value.value[0].is==="string")return true;for(var i in value.value){for(var j in value.value[i].value){if(value.value[i].value[j].is!=="call")return false;var f=_.find(ref.selector(selector).functions,function(x){return x[0]==value.value[i].value[j].name});if(!(f&&f[1]==-1)){if(!f||f[1]!==value.value[i].value[j].args.length)return false}}}return true}function validateKeyword(value,selector){if(typeof ref.selector(selector).type==="object"){return ref.selector(selector).type.indexOf(value.value[0].value)!==-1}else{return ref.selector(selector).type==="string"}}ref.validValue=function(env,selector,value){var i,j;if(!ref.selector(selector)){return false}else if(value.value[0].is=="keyword"){return validateKeyword(value,selector)}else if(value.value[0].is=="undefined"){return true}else if(ref.selector(selector).type=="numbers"){for(i in value.value){if(value.value[i].is!=="float"){return false}}return true}else if(ref.selector(selector).type=="tags"){if(!value.value)return false;if(!value.value[0].value){return value.value[0].is==="tag"}for(i=0;i<value.value[0].value.length;i++){if(value.value[0].value[i].is!=="tag")return false}return true}else if(ref.selector(selector).type=="functions"){return validateFunctions(value,selector)}else if(ref.selector(selector).type==="unsigned"){if(value.value[0].is==="float"){value.value[0].round();return true}else{return false}}else if(ref.selector(selector).expression){return true}else{if(ref.selector(selector).validate){var valid=false;for(i=0;i<value.value.length;i++){if(ref.selector(selector).type==value.value[i].is&&ref._validateValue[ref.selector(selector).validate](env,value.value[i].value)){return true}}return valid}else{return ref.selector(selector).type==value.value[0].is}}};tree.Reference=ref})(require("../tree"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,"mapnik-reference":84,underscore:163}],67:[function(require,module,exports){(function(tree){tree.Rule=function Rule(name,value,index,filename){var parts=name.split("/");this.name=parts.pop();this.instance=parts.length?parts[0]:"__default__";this.value=value instanceof tree.Value?value:new tree.Value([value]);this.index=index;this.symbolizer=tree.Reference.symbolizer(this.name);this.filename=filename;this.variable=name.charAt(0)==="@"};tree.Rule.prototype.is="rule";tree.Rule.prototype.clone=function(){var clone=Object.create(tree.Rule.prototype);clone.name=this.name;clone.value=this.value;clone.index=this.index;clone.instance=this.instance;clone.symbolizer=this.symbolizer;clone.filename=this.filename;clone.variable=this.variable;return clone};tree.Rule.prototype.updateID=function(){return this.id=this.zoom+"#"+this.instance+"#"+this.name};tree.Rule.prototype.toString=function(){return"["+tree.Zoom.toString(this.zoom)+"] "+this.name+": "+this.value};function getMean(name){return Object.keys(tree.Reference.selector_cache).map(function(f){return[f,tree.Reference.editDistance(name,f)]}).sort(function(a,b){return a[1]-b[1]})}tree.Rule.prototype.toXML=function(env,content,sep,format){if(!tree.Reference.validSelector(this.name)){var mean=getMean(this.name);var mean_message="";if(mean[0][1]<3){mean_message=". Did you mean "+mean[0][0]+"?"}return env.error({message:"Unrecognized rule: "+this.name+mean_message,index:this.index,type:"syntax",filename:this.filename})}if(this.value instanceof tree.Value&&!tree.Reference.validValue(env,this.name,this.value)){if(!tree.Reference.selector(this.name)){return env.error({message:"Unrecognized property: "+this.name,index:this.index,type:"syntax",filename:this.filename})}else{var typename;if(tree.Reference.selector(this.name).validate){typename=tree.Reference.selector(this.name).validate}else if(typeof tree.Reference.selector(this.name).type==="object"){typename="keyword (options: "+tree.Reference.selector(this.name).type.join(", ")+")"}else{typename=tree.Reference.selector(this.name).type}return env.error({message:"Invalid value for "+this.name+", the type "+typename+" is expected. "+this.value+" (of type "+this.value.value[0].is+") "+" was given.",index:this.index,type:"syntax",filename:this.filename})}}if(this.variable){return""}else if(tree.Reference.isFont(this.name)&&this.value.value.length>1){var f=tree._getFontSet(env,this.value.value);return'fontset-name="'+f.name+'"'}else if(content){return this.value.toString(env,this.name,sep)}else{return tree.Reference.selectorName(this.name)+'="'+this.value.toString(env,this.name)+'"'}};tree.Rule.prototype.ev=function(context){return new tree.Rule(this.name,this.value.ev(context),this.index,this.filename)}})(require("../tree"))},{"../tree":46}],68:[function(require,module,exports){(function(tree){tree.Ruleset=function Ruleset(selectors,rules){this.selectors=selectors;this.rules=rules;this._lookups={}};tree.Ruleset.prototype={is:"ruleset",ev:function(env){var i,ruleset=new tree.Ruleset(this.selectors,this.rules.slice(0));ruleset.root=this.root;env.frames.unshift(ruleset);for(i=0,rule;i<ruleset.rules.length;i++){rule=ruleset.rules[i];ruleset.rules[i]=rule.ev?rule.ev(env):rule}env.frames.shift();return ruleset},match:function(args){return!args||args.length===0},variables:function(){if(this._variables){return this._variables}else{return this._variables=this.rules.reduce(function(hash,r){if(r instanceof tree.Rule&&r.variable===true){hash[r.name]=r}return hash},{})}},variable:function(name){return this.variables()[name]},rulesets:function(){if(this._rulesets){return this._rulesets}else{return this._rulesets=this.rules.filter(function(r){return r instanceof tree.Ruleset})}},find:function(selector,self){self=self||this;var rules=[],rule,match,key=selector.toString();if(key in this._lookups){return this._lookups[key]}this.rulesets().forEach(function(rule){if(rule!==self){for(var j=0;j<rule.selectors.length;j++){match=selector.match(rule.selectors[j]);if(match){if(selector.elements.length>1){Array.prototype.push.apply(rules,rule.find(new tree.Selector(null,null,null,selector.elements.slice(1)),self))}else{rules.push(rule)}break}}}});return this._lookups[key]=rules},evZooms:function(env){for(var i=0;i<this.selectors.length;i++){var zval=tree.Zoom.all;for(var z=0;z<this.selectors[i].zoom.length;z++){zval=zval&this.selectors[i].zoom[z].ev(env).zoom}this.selectors[i].zoom=zval}},flatten:function(result,parents,env){var selectors=[],i,j;if(this.selectors.length===0){env.frames=env.frames.concat(this.rules)}this.evZooms(env);for(i=0;i<this.selectors.length;i++){var child=this.selectors[i];if(!child.filters){continue}if(parents.length){for(j=0;j<parents.length;j++){var parent=parents[j];var mergedFilters=parent.filters.cloneWith(child.filters);if(mergedFilters===null){if(parent.zoom===(parent.zoom&child.zoom)&&parent.frame_offset===child.frame_offset&&parent.attachment===child.attachment&&parent.elements.join()===child.elements.join()){selectors.push(parent);continue}else{mergedFilters=parent.filters}}else if(!mergedFilters){continue}var clone=Object.create(tree.Selector.prototype);clone.filters=mergedFilters;clone.zoom=parent.zoom&child.zoom;clone.frame_offset=child.frame_offset;clone.elements=parent.elements.concat(child.elements);if(parent.attachment&&child.attachment){clone.attachment=parent.attachment+"/"+child.attachment}else clone.attachment=child.attachment||parent.attachment;clone.conditions=parent.conditions+child.conditions;clone.index=child.index;selectors.push(clone)}}else{selectors.push(child)}}var rules=[];for(i=0;i<this.rules.length;i++){var rule=this.rules[i];if(rule instanceof tree.Ruleset){rule.flatten(result,selectors,env)}else if(rule instanceof tree.Rule){rules.push(rule)}else if(rule instanceof tree.Invalid){env.error(rule)}}var index=rules.length?rules[0].index:false;for(i=0;i<selectors.length;i++){if(index!==false){selectors[i].index=index}result.push(new tree.Definition(selectors[i],rules.slice()))}return result}}})(require("../tree"))},{"../tree":46}],69:[function(require,module,exports){(function(tree){tree.Selector=function Selector(filters,zoom,frame_offset,elements,attachment,conditions,index){this.elements=elements||[];this.attachment=attachment;this.filters=filters||{};this.frame_offset=frame_offset;this.zoom=typeof zoom!=="undefined"?zoom:tree.Zoom.all;this.conditions=conditions;this.index=index};tree.Selector.prototype.specificity=function(){return this.elements.reduce(function(memo,e){var spec=e.specificity();memo[0]+=spec[0];memo[1]+=spec[1];return memo},[0,0,this.conditions,this.index])}})(require("../tree"))},{"../tree":46}],70:[function(require,module,exports){(function(global){(function(tree){var _=global._||require("underscore");tree.StyleXML=function(name,attachment,definitions,env){var existing={};var image_filters=[],image_filters_inflate=[],direct_image_filters=[],comp_op=[],opacity=[];for(var i=0;i<definitions.length;i++){for(var j=0;j<definitions[i].rules.length;j++){if(definitions[i].rules[j].name==="image-filters"){image_filters.push(definitions[i].rules[j])}if(definitions[i].rules[j].name==="image-filters-inflate"){image_filters_inflate.push(definitions[i].rules[j])}if(definitions[i].rules[j].name==="direct-image-filters"){direct_image_filters.push(definitions[i].rules[j])}if(definitions[i].rules[j].name==="comp-op"){comp_op.push(definitions[i].rules[j])}if(definitions[i].rules[j].name==="opacity"){opacity.push(definitions[i].rules[j])}}}var rules=definitions.map(function(definition){return definition.toXML(env,existing)});var attrs_xml="";if(image_filters.length){attrs_xml+=' image-filters="'+_.chain(image_filters).uniq(function(i){return i.id}).map(function(f){return f.ev(env).toXML(env,true,",","image-filter")}).value().join(",")+'"'}if(image_filters_inflate.length){attrs_xml+=' image-filters-inflate="'+image_filters_inflate[0].value.ev(env).toString()+'"'}if(direct_image_filters.length){attrs_xml+=' direct-image-filters="'+_.chain(direct_image_filters).uniq(function(i){return i.id}).map(function(f){return f.ev(env).toXML(env,true,",","direct-image-filter")}).value().join(",")+'"'}if(comp_op.length&&comp_op[0].value.ev(env).value!="src-over"){attrs_xml+=' comp-op="'+comp_op[0].value.ev(env).toString()+'"'}if(opacity.length&&opacity[0].value.ev(env).value!=1){attrs_xml+=' opacity="'+opacity[0].value.ev(env).toString()+'"'}var rule_string=rules.join("");if(!attrs_xml&&!rule_string)return"";return'<Style name="'+name+'" filter-mode="first"'+attrs_xml+">\n"+rule_string+"</Style>"}})(require("../tree"))}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../tree":46,underscore:163}],71:[function(require,module,exports){(function(tree){tree.URL=function URL(val,paths){this.value=val;this.paths=paths};tree.URL.prototype={is:"uri",toString:function(){return this.value.toString()},ev:function(ctx){return new tree.URL(this.value.ev(ctx),this.paths)}}})(require("../tree"))},{"../tree":46}],72:[function(require,module,exports){(function(tree){tree.Value=function Value(value){this.value=value};tree.Value.prototype={is:"value",ev:function(env){if(this.value.length===1){return this.value[0].ev(env)}else{return new tree.Value(this.value.map(function(v){return v.ev(env)}))}},toString:function(env,selector,sep,format){return this.value.map(function(e){return e.toString(env,format)}).join(sep||", ")},clone:function(){var obj=Object.create(tree.Value.prototype);if(Array.isArray(obj))obj.value=this.value.slice();else obj.value=this.value;obj.is=this.is;return obj},toJS:function(env){var val=this.ev(env);var v=val.toString();if(val.is==="color"||val.is==="uri"||val.is==="string"||val.is==="keyword"){v="'"+v.replace(/&amp;/g,"&")+"'"}else if(Array.isArray(this.value)&&this.value.length>1){v="["+this.value.join(",")+"]"}else if(val.is==="field"){v=v.replace(/\[([^\]]*)\]/g,function(matched){return matched.replace(/\[(.*)\]/g,"data['$1']")})}else if(val.is==="call"){v=JSON.stringify({name:val.name,args:val.args})}return"_value = "+v+";"}}})(require("../tree"))},{"../tree":46}],73:[function(require,module,exports){(function(tree){tree.Variable=function Variable(name,index,filename){this.name=name;this.index=index;this.filename=filename};tree.Variable.prototype={is:"variable",toString:function(){return this.name},ev:function(env){var variable,v,name=this.name;if(this._css)return this._css;var thisframe=env.frames.filter(function(f){return f.name==this.name}.bind(this));if(thisframe.length){return thisframe[0].value.ev(env)}else{env.error({message:"variable "+this.name+" is undefined",index:this.index,type:"runtime",filename:this.filename});return{is:"undefined",value:"undefined"}}}}})(require("../tree"))},{"../tree":46}],74:[function(require,module,exports){var tree=require("../tree");tree.Zoom=function(op,value,index){this.op=op;this.value=value;this.index=index};tree.Zoom.prototype.setZoom=function(zoom){this.zoom=zoom;return this};tree.Zoom.prototype.ev=function(env){var start=0,end=Infinity,value=parseInt(this.value.ev(env).toString(),10),zoom=0;if(value>tree.Zoom.maxZoom||value<0){env.error({message:"Only zoom levels between 0 and "+tree.Zoom.maxZoom+" supported.",index:this.index})}switch(this.op){case"=":this.zoom=1<<value;return this;case">":start=value+1;break;case">=":start=value;break;case"<":end=value-1;break;case"<=":end=value;break}for(var i=0;i<=tree.Zoom.maxZoom;i++){if(i>=start&&i<=end){zoom|=1<<i}}this.zoom=zoom;return this};tree.Zoom.prototype.toString=function(){return this.zoom};tree.Zoom.all=8388607;tree.Zoom.maxZoom=22;tree.Zoom.ranges={0:1e9,1:5e8,2:2e8,3:1e8,4:5e7,5:25e6,6:125e5,7:65e5,8:3e6,9:15e5,10:75e4,11:4e5,12:2e5,13:1e5,14:5e4,15:25e3,16:12500,17:5e3,18:2500,19:1500,20:750,21:500,22:250,23:100};tree.Zoom.prototype.toXML=function(){var conditions=[];if(this.zoom!=tree.Zoom.all){var start=null,end=null;for(var i=0;i<=tree.Zoom.maxZoom;i++){if(this.zoom&1<<i){if(start===null)start=i;end=i}}if(start>0)conditions.push(" <MaxScaleDenominator>"+tree.Zoom.ranges[start]+"</MaxScaleDenominator>\n");if(end<22)conditions.push(" <MinScaleDenominator>"+tree.Zoom.ranges[end+1]+"</MinScaleDenominator>\n")}return conditions};tree.Zoom.prototype.toString=function(){var str="";for(var i=0;i<=tree.Zoom.maxZoom;i++){str+=this.zoom&1<<i?"X":"."}return str}},{"../tree":46}],75:[function(require,module,exports){module.exports={_args:[["github:cartodb/carto#master","/vagrant/repos/torque"]],_from:"github:cartodb/carto#master",_id:"carto@github:cartodb/carto#31abb8bee02df605521247b0223d508320f7d4c8",_inBundle:false,_integrity:"",_location:"/carto",_phantomChildren:{},_requested:{type:"git",raw:"github:cartodb/carto#master",rawSpec:"github:cartodb/carto#master",saveSpec:"github:cartodb/carto#master",fetchSpec:null,gitCommittish:"master"},_requiredBy:["/"],_resolved:"github:cartodb/carto#31abb8bee02df605521247b0223d508320f7d4c8",_spec:"github:cartodb/carto#master",_where:"/vagrant/repos/torque",author:{name:"CartoDB",url:"http://cartodb.com/"},bin:{carto:"./bin/carto"},bugs:{url:"https://github.com/cartodb/carto/issues"},contributors:[{name:"Tom MacWright",email:"macwright@gmail.com"},{name:"Konstantin Käfer"},{name:"Alexis Sellier",email:"self@cloudhead.net"},{name:"Raul Ochoa",email:"rochoa@cartodb.com"},{name:"Javi Santana",email:"jsantana@cartodb.com"}],dependencies:{"mapnik-reference":"~6.0.2",optimist:"~0.6.0",underscore:"1.8.3"},description:"CartoCSS Stylesheet Compiler",devDependencies:{browserify:"~7.0.0",coveralls:"~2.10.1",istanbul:"~0.2.14",jshint:"0.2.x",mocha:"1.12.x",sax:"0.1.x","uglify-js":"1.3.3"},engines:{node:">=0.4.x"},homepage:"https://github.com/cartodb/carto#readme",keywords:["maps","css","stylesheets"],licenses:[{type:"Apache"}],main:"./lib/carto/index",man:["./man/carto.1"],name:"carto",repository:{type:"git",url:"git+ssh://git@github.com/cartodb/carto.git"},scripts:{bump:"npm version patch","bump:major":"npm version major","bump:minor":"npm version minor",coverage:"istanbul cover ./node_modules/.bin/_mocha && coveralls < ./coverage/lcov.info",postversion:"git push origin master --follow-tags",pretest:"npm install",tdd:"env HIDE_LOGS=true mocha -w -R spec",test:"mocha -R spec"},url:"https://github.com/cartodb/carto",version:"0.15.1-cdb5"}},{}],76:[function(require,module,exports){!function(){var cartocolor={Burg:{2:["#ffc6c4","#672044"],3:["#ffc6c4","#cc607d","#672044"],4:["#ffc6c4","#e38191","#ad466c","#672044"],5:["#ffc6c4","#ee919b","#cc607d","#9e3963","#672044"],6:["#ffc6c4","#f29ca3","#da7489","#b95073","#93345d","#672044"],7:["#ffc6c4","#f4a3a8","#e38191","#cc607d","#ad466c","#8b3058","#672044"],tags:["quantitative"]},BurgYl:{2:["#fbe6c5","#70284a"],3:["#fbe6c5","#dc7176","#70284a"],4:["#fbe6c5","#ee8a82","#c8586c","#70284a"],5:["#fbe6c5","#f2a28a","#dc7176","#b24b65","#70284a"],6:["#fbe6c5","#f4b191","#e7807d","#d06270","#a44360","#70284a"],7:["#fbe6c5","#f5ba98","#ee8a82","#dc7176","#c8586c","#9c3f5d","#70284a"],tags:["quantitative"]},RedOr:{2:["#f6d2a9","#b13f64"],3:["#f6d2a9","#ea8171","#b13f64"],4:["#f6d2a9","#f19c7c","#dd686c","#b13f64"],5:["#f6d2a9","#f3aa84","#ea8171","#d55d6a","#b13f64"],6:["#f6d2a9","#f4b28a","#ef9177","#e3726d","#cf5669","#b13f64"],7:["#f6d2a9","#f5b78e","#f19c7c","#ea8171","#dd686c","#ca5268","#b13f64"],tags:["quantitative"]},OrYel:{2:["#ecda9a","#ee4d5a"],3:["#ecda9a","#f7945d","#ee4d5a"],4:["#ecda9a","#f3ad6a","#f97b57","#ee4d5a"],5:["#ecda9a","#f1b973","#f7945d","#f86f56","#ee4d5a"],6:["#ecda9a","#f0c079","#f5a363","#f98558","#f76856","#ee4d5a"],7:["#ecda9a","#efc47e","#f3ad6a","#f7945d","#f97b57","#f66356","#ee4d5a"],tags:["quantitative"]},Peach:{2:["#fde0c5","#eb4a40"],3:["#fde0c5","#f59e72","#eb4a40"],4:["#fde0c5","#f8b58b","#f2855d","#eb4a40"],5:["#fde0c5","#f9c098","#f59e72","#f17854","#eb4a40"],6:["#fde0c5","#fac7a1","#f7ac80","#f38f65","#f0704f","#eb4a40"],7:["#fde0c5","#facba6","#f8b58b","#f59e72","#f2855d","#ef6a4c","#eb4a40"],tags:["quantitative"]},PinkYl:{2:["#fef6b5","#e15383"],3:["#fef6b5","#ffa679","#e15383"],4:["#fef6b5","#ffc285","#fa8a76","#e15383"],5:["#fef6b5","#ffd08e","#ffa679","#f67b77","#e15383"],6:["#fef6b5","#ffd795","#ffb77f","#fd9576","#f37378","#e15383"],7:["#fef6b5","#ffdd9a","#ffc285","#ffa679","#fa8a76","#f16d7a","#e15383"],tags:["quantitative"]},Mint:{2:["#e4f1e1","#0d585f"],3:["#e4f1e1","#63a6a0","#0d585f"],4:["#e4f1e1","#89c0b6","#448c8a","#0d585f"],5:["#E4F1E1","#9CCDC1","#63A6A0","#337F7F","#0D585F"],6:["#e4f1e1","#abd4c7","#7ab5ad","#509693","#2c7778","#0d585f"],7:["#e4f1e1","#b4d9cc","#89c0b6","#63a6a0","#448c8a","#287274","#0d585f"],tags:["quantitative"]},BluGrn:{2:["#c4e6c3","#1d4f60"],3:["#c4e6c3","#4da284","#1d4f60"],4:["#c4e6c3","#6dbc90","#36877a","#1d4f60"],5:["#c4e6c3","#80c799","#4da284","#2d7974","#1d4f60"],6:["#c4e6c3","#8dce9f","#5fb28b","#3e927e","#297071","#1d4f60"],7:["#c4e6c3","#96d2a4","#6dbc90","#4da284","#36877a","#266b6e","#1d4f60"],tags:["quantitative"]},DarkMint:{2:["#d2fbd4","#123f5a"],3:["#d2fbd4","#559c9e","#123f5a"],4:["#d2fbd4","#7bbcb0","#3a7c89","#123f5a"],5:["#d2fbd4","#8eccb9","#559c9e","#2b6c7f","#123f5a"],6:["#d2fbd4","#9cd5be","#6cafa9","#458892","#266377","#123f5a"],7:["#d2fbd4","#a5dbc2","#7bbcb0","#559c9e","#3a7c89","#235d72","#123f5a"],tags:["quantitative"]},Emrld:{2:["#d3f2a3","#074050"],3:["#d3f2a3","#4c9b82","#074050"],4:["#d3f2a3","#6cc08b","#217a79","#074050"],5:["#d3f2a3","#82d091","#4c9b82","#19696f","#074050"],6:["#d3f2a3","#8fda94","#60b187","#35877d","#145f69","#074050"],7:["#d3f2a3","#97e196","#6cc08b","#4c9b82","#217a79","#105965","#074050"],tags:["quantitative"]},ag_GrnYl:{2:["#245668","#EDEF5D"],3:["#245668","#39AB7E","#EDEF5D"],4:["#245668","#0D8F81","#6EC574","#EDEF5D"],5:["#245668","#04817E","#39AB7E","#8BD16D","#EDEF5D"],6:["#245668","#09787C","#1D9A81","#58BB79","#9DD869","#EDEF5D"],7:["#245668","#0F7279","#0D8F81","#39AB7E","#6EC574","#A9DC67","#EDEF5D"],tags:["aggregation"]},BluYl:{2:["#f7feae","#045275"],3:["#f7feae","#46aea0","#045275"],4:["#f7feae","#7ccba2","#089099","#045275"],5:["#f7feae","#9bd8a4","#46aea0","#058092","#045275"],6:["#f7feae","#ace1a4","#68bfa1","#2a9c9c","#02778e","#045275"],7:["#f7feae","#b7e6a5","#7ccba2","#46aea0","#089099","#00718b","#045275"],tags:["quantitative"]},Teal:{2:["#d1eeea","#2a5674"],3:["#d1eeea","#68abb8","#2a5674"],4:["#d1eeea","#85c4c9","#4f90a6","#2a5674"],5:["#d1eeea","#96d0d1","#68abb8","#45829b","#2a5674"],6:["#d1eeea","#a1d7d6","#79bbc3","#599bae","#3f7994","#2a5674"],7:["#d1eeea","#a8dbd9","#85c4c9","#68abb8","#4f90a6","#3b738f","#2a5674"],tags:["quantitative"]},TealGrn:{2:["#b0f2bc","#257d98"],3:["#b0f2bc","#4cc8a3","#257d98"],4:["#b0f2bc","#67dba5","#38b2a3","#257d98"],5:["#b0f2bc","#77e2a8","#4cc8a3","#31a6a2","#257d98"],6:["#b0f2bc","#82e6aa","#5bd4a4","#3fbba3","#2e9ea1","#257d98"],7:["#b0f2bc","#89e8ac","#67dba5","#4cc8a3","#38b2a3","#2c98a0","#257d98"],tags:["quantitative"]},Purp:{2:["#f3e0f7","#63589f"],3:["#f3e0f7","#b998dd","#63589f"],4:["#f3e0f7","#d1afe8","#9f82ce","#63589f"],5:["#f3e0f7","#dbbaed","#b998dd","#9178c4","#63589f"],6:["#f3e0f7","#e0c2ef","#c8a5e4","#aa8bd4","#8871be","#63589f"],7:["#f3e0f7","#e4c7f1","#d1afe8","#b998dd","#9f82ce","#826dba","#63589f"],tags:["quantitative"]},PurpOr:{3:["#f9ddda","#ce78b3","#573b88"],4:["#f9ddda","#e597b9","#ad5fad","#573b88"],5:["#f9ddda","#eda8bd","#ce78b3","#9955a8","#573b88"],6:["#f9ddda","#f0b2c1","#dd8ab6","#bb69b0","#8c4fa4","#573b88"],7:["#f9ddda","#f2b9c4","#e597b9","#ce78b3","#ad5fad","#834ba0","#573b88"],tags:["quantitative"]},Sunset:{2:["#f3e79b","#5c53a5"],3:["#f3e79b","#eb7f86","#5c53a5"],4:["#f3e79b","#f8a07e","#ce6693","#5c53a5"],5:["#f3e79b","#fab27f","#eb7f86","#b95e9a","#5c53a5"],6:["#f3e79b","#fabc82","#f59280","#dc6f8e","#ab5b9e","#5c53a5"],7:["#f3e79b","#fac484","#f8a07e","#eb7f86","#ce6693","#a059a0","#5c53a5"],tags:["quantitative"]},Magenta:{2:["#f3cbd3","#6c2167"],3:["#f3cbd3","#ca699d","#6c2167"],4:["#f3cbd3","#dd88ac","#b14d8e","#6c2167"],5:["#f3cbd3","#e498b4","#ca699d","#a24186","#6c2167"],6:["#f3cbd3","#e7a2b9","#d67ba5","#bc5894","#983a81","#6c2167"],7:["#f3cbd3","#eaa9bd","#dd88ac","#ca699d","#b14d8e","#91357d","#6c2167"],tags:["quantitative"]},SunsetDark:{2:["#fcde9c","#7c1d6f"],3:["#fcde9c","#e34f6f","#7c1d6f"],4:["#fcde9c","#f0746e","#dc3977","#7c1d6f"],5:["#fcde9c","#f58670","#e34f6f","#d72d7c","#7c1d6f"],6:["#fcde9c","#f89872","#ec666d","#df4273","#c5287b","#7c1d6f"],7:["#fcde9c","#faa476","#f0746e","#e34f6f","#dc3977","#b9257a","#7c1d6f"],tags:["quantitative"]},ag_Sunset:{2:["#4b2991","#edd9a3"],3:["#4b2991","#ea4f88","#edd9a3"],4:["#4b2991","#c0369d","#fa7876","#edd9a3"],5:["#4b2991","#a52fa2","#ea4f88","#fa9074","#edd9a3"],6:["#4b2991","#932da3","#d43f96","#f7667c","#f89f77","#edd9a3"],7:["#4b2991","#872ca2","#c0369d","#ea4f88","#fa7876","#f6a97a","#edd9a3"],tags:["aggregation"]},BrwnYl:{2:["#ede5cf","#541f3f"],3:["#ede5cf","#c1766f","#541f3f"],4:["#ede5cf","#d39c83","#a65461","#541f3f"],5:["#ede5cf","#daaf91","#c1766f","#95455a","#541f3f"],6:["#ede5cf","#ddba9b","#cd8c7a","#b26166","#8a3c56","#541f3f"],7:["#ede5cf","#e0c2a2","#d39c83","#c1766f","#a65461","#813753","#541f3f"],tags:["quantitative"]},ArmyRose:{2:["#929b4f","#db8195"],3:["#a3ad62","#fdfbe4","#df91a3"],4:["#929b4f","#d9dbaf","#f3d1ca","#db8195"],5:["#879043","#c1c68c","#fdfbe4","#ebb4b8","#d8758b"],6:["#7f883b","#b0b874","#e3e4be","#f6ddd1","#e4a0ac","#d66d85"],7:["#798234","#a3ad62","#d0d3a2","#fdfbe4","#f0c6c3","#df91a3","#d46780"],tags:["diverging"]},Fall:{2:["#3d5941","#ca562c"],3:["#3d5941","#f6edbd","#ca562c"],4:["#3d5941","#b5b991","#edbb8a","#ca562c"],5:["#3d5941","#96a07c","#f6edbd","#e6a272","#ca562c"],6:["#3d5941","#839170","#cecea2","#f1cf9e","#e19464","#ca562c"],7:["#3d5941","#778868","#b5b991","#f6edbd","#edbb8a","#de8a5a","#ca562c"],tags:["diverging"]},Geyser:{2:["#008080","#ca562c"],3:["#008080","#f6edbd","#ca562c"],4:["#008080","#b4c8a8","#edbb8a","#ca562c"],5:["#008080","#92b69e","#f6edbd","#e6a272","#ca562c"],6:["#008080","#7eab98","#ced7b1","#f1cf9e","#e19464","#ca562c"],7:["#008080","#70a494","#b4c8a8","#f6edbd","#edbb8a","#de8a5a","#ca562c"],tags:["diverging"]},Temps:{2:["#009392","#cf597e"],3:["#009392","#e9e29c","#cf597e"],4:["#009392","#9ccb86","#eeb479","#cf597e"],5:["#009392","#71be83","#e9e29c","#ed9c72","#cf597e"],6:["#009392","#52b684","#bcd48c","#edc783","#eb8d71","#cf597e"],7:["#009392","#39b185","#9ccb86","#e9e29c","#eeb479","#e88471","#cf597e"],tags:["diverging"]},TealRose:{2:["#009392","#d0587e"],3:["#009392","#f1eac8","#d0587e"],4:["#009392","#91b8aa","#f1eac8","#dfa0a0","#d0587e"],5:["#009392","#91b8aa","#f1eac8","#dfa0a0","#d0587e"],6:["#009392","#72aaa1","#b1c7b3","#e5b9ad","#d98994","#d0587e"],7:["#009392","#72aaa1","#b1c7b3","#f1eac8","#e5b9ad","#d98994","#d0587e"],tags:["diverging"]},Tropic:{2:["#009B9E","#C75DAB"],3:["#009B9E","#F1F1F1","#C75DAB"],4:["#009B9E","#A7D3D4","#E4C1D9","#C75DAB"],5:["#009B9E","#7CC5C6","#F1F1F1","#DDA9CD","#C75DAB"],6:["#009B9E","#5DBCBE","#C6DFDF","#E9D4E2","#D99BC6","#C75DAB"],7:["#009B9E","#42B7B9","#A7D3D4","#F1F1F1","#E4C1D9","#D691C1","#C75DAB"],tags:["diverging"]},Earth:{2:["#A16928","#2887a1"],3:["#A16928","#edeac2","#2887a1"],4:["#A16928","#d6bd8d","#b5c8b8","#2887a1"],5:["#A16928","#caa873","#edeac2","#98b7b2","#2887a1"],6:["#A16928","#c29b64","#e0cfa2","#cbd5bc","#85adaf","#2887a1"],7:["#A16928","#bd925a","#d6bd8d","#edeac2","#b5c8b8","#79a7ac","#2887a1"],tags:["diverging"]},Antique:{2:["#855C75","#D9AF6B","#7C7C7C"],3:["#855C75","#D9AF6B","#AF6458","#7C7C7C"],4:["#855C75","#D9AF6B","#AF6458","#736F4C","#7C7C7C"],5:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#7C7C7C"],6:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#7C7C7C"],7:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#7C7C7C"],8:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#7C7C7C"],9:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#7C7C7C"],10:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#8C785D","#7C7C7C"],11:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#8C785D","#467378","#7C7C7C"],tags:["qualitative"]},Bold:{2:["#7F3C8D","#11A579","#A5AA99"],3:["#7F3C8D","#11A579","#3969AC","#A5AA99"],4:["#7F3C8D","#11A579","#3969AC","#F2B701","#A5AA99"],5:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#A5AA99"],6:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#A5AA99"],7:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#A5AA99"],8:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#A5AA99"],9:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#A5AA99"],10:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#f97b72","#A5AA99"],11:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#f97b72","#4b4b8f","#A5AA99"],tags:["qualitative"]},Pastel:{2:["#66C5CC","#F6CF71","#B3B3B3"],3:["#66C5CC","#F6CF71","#F89C74","#B3B3B3"],4:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#B3B3B3"],5:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#B3B3B3"],6:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#B3B3B3"],7:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#B3B3B3"],8:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#B3B3B3"],9:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B3B3B3"],10:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B497E7","#B3B3B3"],11:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B497E7","#D3B484","#B3B3B3"],tags:["qualitative"]},Prism:{2:["#5F4690","#1D6996","#666666"],3:["#5F4690","#1D6996","#38A6A5","#666666"],4:["#5F4690","#1D6996","#38A6A5","#0F8554","#666666"],5:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#666666"],6:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#666666"],7:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#666666"],8:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#666666"],9:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#666666"],10:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#6F4070","#666666"],11:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#6F4070","#994E95","#666666"],tags:["qualitative"]},Safe:{2:["#88CCEE","#CC6677","#888888"],3:["#88CCEE","#CC6677","#DDCC77","#888888"],4:["#88CCEE","#CC6677","#DDCC77","#117733","#888888"],5:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#888888"],6:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#888888"],7:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#888888"],8:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#888888"],9:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#888888"],10:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#661100","#888888"],11:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#661100","#6699CC","#888888"],tags:["qualitative","colorblind"]},Vivid:{2:["#E58606","#5D69B1","#A5AA99"],3:["#E58606","#5D69B1","#52BCA3","#A5AA99"],4:["#E58606","#5D69B1","#52BCA3","#99C945","#A5AA99"],5:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#A5AA99"],6:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#A5AA99"],7:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#A5AA99"],8:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#A5AA99"],9:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#A5AA99"],10:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#ED645A","#A5AA99"],11:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#ED645A","#CC3A8E","#A5AA99"],tags:["qualitative"]}};var colorbrewer_tags={Blues:{tags:["quantitative"]},BrBG:{tags:["diverging"]},Greys:{tags:["quantitative"]},PiYG:{tags:["diverging"]},PRGn:{tags:["diverging"]},Purples:{tags:["quantitative"]},RdYlGn:{tags:["diverging"]},Spectral:{tags:["diverging"]},YlOrBr:{tags:["quantitative"]},YlGn:{tags:["quantitative"]},YlGnBu:{tags:["quantitative"]},YlOrRd:{tags:["quantitative"]}};var colorbrewer=require("colorbrewer");for(var r in colorbrewer){var ramps=colorbrewer[r];var augmentedRamps={};for(var i in ramps){augmentedRamps[i]=ramps[i]}if(r in colorbrewer_tags){augmentedRamps.tags=colorbrewer_tags[r].tags}cartocolor["cb_"+r]=augmentedRamps}if(typeof define==="function"&&define.amd){define(cartocolor)}else if(typeof module==="object"&&module.exports){module.exports=cartocolor}else{this.colorbrewer=cartocolor}}()},{colorbrewer:79}],77:[function(require,module,exports){module.exports=require("./cartocolor")},{"./cartocolor":76}],78:[function(require,module,exports){!function(){var colorbrewer={YlGn:{3:["#f7fcb9","#addd8e","#31a354"],4:["#ffffcc","#c2e699","#78c679","#238443"],5:["#ffffcc","#c2e699","#78c679","#31a354","#006837"],6:["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],7:["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],8:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],9:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]},YlGnBu:{3:["#edf8b1","#7fcdbb","#2c7fb8"],4:["#ffffcc","#a1dab4","#41b6c4","#225ea8"],5:["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],6:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],7:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],8:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],9:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]},GnBu:{3:["#e0f3db","#a8ddb5","#43a2ca"],4:["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],5:["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],6:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],7:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],8:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],9:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]},BuGn:{3:["#e5f5f9","#99d8c9","#2ca25f"],4:["#edf8fb","#b2e2e2","#66c2a4","#238b45"],5:["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],6:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],7:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],8:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],9:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]},PuBuGn:{3:["#ece2f0","#a6bddb","#1c9099"],4:["#f6eff7","#bdc9e1","#67a9cf","#02818a"],5:["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],6:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],7:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],8:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],9:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]},PuBu:{3:["#ece7f2","#a6bddb","#2b8cbe"],4:["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],5:["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],6:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],7:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],8:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],9:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]},BuPu:{3:["#e0ecf4","#9ebcda","#8856a7"],4:["#edf8fb","#b3cde3","#8c96c6","#88419d"],5:["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],6:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],7:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],8:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],9:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]},RdPu:{3:["#fde0dd","#fa9fb5","#c51b8a"],4:["#feebe2","#fbb4b9","#f768a1","#ae017e"],5:["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],6:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],7:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],8:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],9:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]},PuRd:{3:["#e7e1ef","#c994c7","#dd1c77"],4:["#f1eef6","#d7b5d8","#df65b0","#ce1256"],5:["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],6:["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],7:["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],8:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],9:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]},OrRd:{3:["#fee8c8","#fdbb84","#e34a33"],4:["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],5:["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],6:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],7:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],8:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],9:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]},YlOrRd:{3:["#ffeda0","#feb24c","#f03b20"],4:["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],5:["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],6:["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],7:["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],8:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],9:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]},YlOrBr:{3:["#fff7bc","#fec44f","#d95f0e"],4:["#ffffd4","#fed98e","#fe9929","#cc4c02"],5:["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],6:["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],7:["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],8:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],9:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]},Purples:{3:["#efedf5","#bcbddc","#756bb1"],4:["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],5:["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],6:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],7:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],8:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],9:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]},Blues:{3:["#deebf7","#9ecae1","#3182bd"],4:["#eff3ff","#bdd7e7","#6baed6","#2171b5"],5:["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],6:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],7:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],8:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],9:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]},Greens:{3:["#e5f5e0","#a1d99b","#31a354"],4:["#edf8e9","#bae4b3","#74c476","#238b45"],5:["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],6:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],7:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],8:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],9:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]},Oranges:{3:["#fee6ce","#fdae6b","#e6550d"],4:["#feedde","#fdbe85","#fd8d3c","#d94701"],5:["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],6:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],7:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],8:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],9:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]},Reds:{3:["#fee0d2","#fc9272","#de2d26"],4:["#fee5d9","#fcae91","#fb6a4a","#cb181d"],5:["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],6:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],7:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],8:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],9:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]},Greys:{3:["#f0f0f0","#bdbdbd","#636363"],4:["#f7f7f7","#cccccc","#969696","#525252"],5:["#f7f7f7","#cccccc","#969696","#636363","#252525"],6:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],7:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],8:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],9:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]},PuOr:{3:["#f1a340","#f7f7f7","#998ec3"],4:["#e66101","#fdb863","#b2abd2","#5e3c99"],5:["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],6:["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],7:["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],8:["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],9:["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],10:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],11:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]},BrBG:{3:["#d8b365","#f5f5f5","#5ab4ac"],4:["#a6611a","#dfc27d","#80cdc1","#018571"],5:["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],6:["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],7:["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],8:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],9:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],10:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],11:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]},PRGn:{3:["#af8dc3","#f7f7f7","#7fbf7b"],4:["#7b3294","#c2a5cf","#a6dba0","#008837"],5:["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],6:["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],7:["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],8:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],9:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],10:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],11:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]},PiYG:{3:["#e9a3c9","#f7f7f7","#a1d76a"],4:["#d01c8b","#f1b6da","#b8e186","#4dac26"],5:["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],6:["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],7:["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],8:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],9:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],10:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],11:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]},RdBu:{3:["#ef8a62","#f7f7f7","#67a9cf"],4:["#ca0020","#f4a582","#92c5de","#0571b0"],5:["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],6:["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],7:["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]},RdGy:{3:["#ef8a62","#ffffff","#999999"],4:["#ca0020","#f4a582","#bababa","#404040"],5:["#ca0020","#f4a582","#ffffff","#bababa","#404040"],6:["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],7:["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]},RdYlBu:{3:["#fc8d59","#ffffbf","#91bfdb"],4:["#d7191c","#fdae61","#abd9e9","#2c7bb6"],5:["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],6:["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],7:["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],8:["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],9:["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]},Spectral:{3:["#fc8d59","#ffffbf","#99d594"],4:["#d7191c","#fdae61","#abdda4","#2b83ba"],5:["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],6:["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],7:["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],8:["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],9:["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],10:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],11:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]},RdYlGn:{3:["#fc8d59","#ffffbf","#91cf60"],4:["#d7191c","#fdae61","#a6d96a","#1a9641"],5:["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],6:["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],7:["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],8:["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],9:["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]},Accent:{3:["#7fc97f","#beaed4","#fdc086"],4:["#7fc97f","#beaed4","#fdc086","#ffff99"],5:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],6:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],7:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],8:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]},Dark2:{3:["#1b9e77","#d95f02","#7570b3"],4:["#1b9e77","#d95f02","#7570b3","#e7298a"],5:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],6:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],7:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],8:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]},Paired:{3:["#a6cee3","#1f78b4","#b2df8a"],4:["#a6cee3","#1f78b4","#b2df8a","#33a02c"],5:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],6:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],7:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],8:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],9:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],10:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],11:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],12:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]},Pastel1:{3:["#fbb4ae","#b3cde3","#ccebc5"],4:["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],5:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],6:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],7:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],8:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],9:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Pastel2:{3:["#b3e2cd","#fdcdac","#cbd5e8"],4:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],5:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],6:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],7:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],8:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]},Set1:{3:["#e41a1c","#377eb8","#4daf4a"],4:["#e41a1c","#377eb8","#4daf4a","#984ea3"],5:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],6:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],7:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],8:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],9:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]},Set2:{3:["#66c2a5","#fc8d62","#8da0cb"],4:["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],5:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],6:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],7:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],8:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]},Set3:{3:["#8dd3c7","#ffffb3","#bebada"],4:["#8dd3c7","#ffffb3","#bebada","#fb8072"],5:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],6:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],7:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],8:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],9:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],10:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],11:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],12:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]}};if(typeof define==="function"&&define.amd){define(colorbrewer)}else if(typeof module==="object"&&module.exports){module.exports=colorbrewer}else{this.colorbrewer=colorbrewer}}()},{}],79:[function(require,module,exports){module.exports=require("./colorbrewer.js")},{"./colorbrewer.js":78}],80:[function(require,module,exports){!function(){var d3={version:"3.5.17"};var d3_arraySlice=[].slice,d3_array=function(list){return d3_arraySlice.call(list)};var d3_document=this.document;function d3_documentElement(node){return node&&(node.ownerDocument||node.document||node).documentElement}function d3_window(node){return node&&(node.ownerDocument&&node.ownerDocument.defaultView||node.document&&node||node.defaultView)}if(d3_document){try{d3_array(d3_document.documentElement.childNodes)[0].nodeType}catch(e){d3_array=function(list){var i=list.length,array=new Array(i);while(i--)array[i]=list[i];return array}}}if(!Date.now)Date.now=function(){return+new Date};if(d3_document){try{d3_document.createElement("DIV").style.setProperty("opacity",0,"")}catch(error){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;d3_element_prototype.setAttribute=function(name,value){d3_element_setAttribute.call(this,name,value+"")};d3_element_prototype.setAttributeNS=function(space,local,value){d3_element_setAttributeNS.call(this,space,local,value+"")};d3_style_prototype.setProperty=function(name,value,priority){d3_style_setProperty.call(this,name,value+"",priority)}}}d3.ascending=d3_ascending;function d3_ascending(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}d3.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN};d3.min=function(array,f){var i=-1,n=array.length,a,b;if(arguments.length===1){while(++i<n)if((b=array[i])!=null&&b>=b){a=b;break}while(++i<n)if((b=array[i])!=null&&a>b)a=b}else{while(++i<n)if((b=f.call(array,array[i],i))!=null&&b>=b){a=b;break}while(++i<n)if((b=f.call(array,array[i],i))!=null&&a>b)a=b}return a};d3.max=function(array,f){var i=-1,n=array.length,a,b;if(arguments.length===1){while(++i<n)if((b=array[i])!=null&&b>=b){a=b;break}while(++i<n)if((b=array[i])!=null&&b>a)a=b}else{while(++i<n)if((b=f.call(array,array[i],i))!=null&&b>=b){a=b;break}while(++i<n)if((b=f.call(array,array[i],i))!=null&&b>a)a=b}return a};d3.extent=function(array,f){var i=-1,n=array.length,a,b,c;if(arguments.length===1){while(++i<n)if((b=array[i])!=null&&b>=b){a=c=b;break}while(++i<n)if((b=array[i])!=null){if(a>b)a=b;if(c<b)c=b}}else{while(++i<n)if((b=f.call(array,array[i],i))!=null&&b>=b){a=c=b;break}while(++i<n)if((b=f.call(array,array[i],i))!=null){if(a>b)a=b;if(c<b)c=b}}return[a,c]};function d3_number(x){return x===null?NaN:+x}function d3_numeric(x){return!isNaN(x)}d3.sum=function(array,f){var s=0,n=array.length,a,i=-1;if(arguments.length===1){while(++i<n)if(d3_numeric(a=+array[i]))s+=a}else{while(++i<n)if(d3_numeric(a=+f.call(array,array[i],i)))s+=a}return s};d3.mean=function(array,f){var s=0,n=array.length,a,i=-1,j=n;if(arguments.length===1){while(++i<n)if(d3_numeric(a=d3_number(array[i])))s+=a;else--j}else{while(++i<n)if(d3_numeric(a=d3_number(f.call(array,array[i],i))))s+=a;else--j}if(j)return s/j};d3.quantile=function(values,p){var H=(values.length-1)*p+1,h=Math.floor(H),v=+values[h-1],e=H-h;return e?v+e*(values[h]-v):v};d3.median=function(array,f){var numbers=[],n=array.length,a,i=-1;if(arguments.length===1){while(++i<n)if(d3_numeric(a=d3_number(array[i])))numbers.push(a)}else{while(++i<n)if(d3_numeric(a=d3_number(f.call(array,array[i],i))))numbers.push(a)}if(numbers.length)return d3.quantile(numbers.sort(d3_ascending),.5)};d3.variance=function(array,f){var n=array.length,m=0,a,d,s=0,i=-1,j=0;if(arguments.length===1){while(++i<n){if(d3_numeric(a=d3_number(array[i]))){d=a-m;m+=d/++j;s+=d*(a-m)}}}else{while(++i<n){if(d3_numeric(a=d3_number(f.call(array,array[i],i)))){d=a-m;m+=d/++j;s+=d*(a-m)}}}if(j>1)return s/(j-1)};d3.deviation=function(){var v=d3.variance.apply(this,arguments);return v?Math.sqrt(v):v};function d3_bisector(compare){return{left:function(a,x,lo,hi){if(arguments.length<3)lo=0;if(arguments.length<4)hi=a.length;while(lo<hi){var mid=lo+hi>>>1;if(compare(a[mid],x)<0)lo=mid+1;else hi=mid}return lo},right:function(a,x,lo,hi){if(arguments.length<3)lo=0;if(arguments.length<4)hi=a.length;while(lo<hi){var mid=lo+hi>>>1;if(compare(a[mid],x)>0)hi=mid;else lo=mid+1}return lo}}}var d3_bisect=d3_bisector(d3_ascending);d3.bisectLeft=d3_bisect.left;d3.bisect=d3.bisectRight=d3_bisect.right;d3.bisector=function(f){return d3_bisector(f.length===1?function(d,x){return d3_ascending(f(d),x)}:f)};d3.shuffle=function(array,i0,i1){if((m=arguments.length)<3){i1=array.length;if(m<2)i0=0}var m=i1-i0,t,i;while(m){i=Math.random()*m--|0;t=array[m+i0],array[m+i0]=array[i+i0],array[i+i0]=t}return array};d3.permute=function(array,indexes){var i=indexes.length,permutes=new Array(i);while(i--)permutes[i]=array[indexes[i]];return permutes};d3.pairs=function(array){var i=0,n=array.length-1,p0,p1=array[0],pairs=new Array(n<0?0:n);while(i<n)pairs[i]=[p0=p1,p1=array[++i]];return pairs};d3.transpose=function(matrix){if(!(n=matrix.length))return[];for(var i=-1,m=d3.min(matrix,d3_transposeLength),transpose=new Array(m);++i<m;){for(var j=-1,n,row=transpose[i]=new Array(n);++j<n;){row[j]=matrix[j][i]}}return transpose};function d3_transposeLength(d){return d.length}d3.zip=function(){return d3.transpose(arguments)};d3.keys=function(map){var keys=[];for(var key in map)keys.push(key);return keys};d3.values=function(map){var values=[];for(var key in map)values.push(map[key]);return values};d3.entries=function(map){var entries=[];for(var key in map)entries.push({key:key,value:map[key]});return entries};d3.merge=function(arrays){var n=arrays.length,m,i=-1,j=0,merged,array;while(++i<n)j+=arrays[i].length;merged=new Array(j);while(--n>=0){array=arrays[n];m=array.length;while(--m>=0){merged[--j]=array[m]}}return merged};var abs=Math.abs;d3.range=function(start,stop,step){if(arguments.length<3){step=1;if(arguments.length<2){stop=start;start=0}}if((stop-start)/step===Infinity)throw new Error("infinite range");var range=[],k=d3_range_integerScale(abs(step)),i=-1,j;start*=k,stop*=k,step*=k;if(step<0)while((j=start+step*++i)>stop)range.push(j/k);else while((j=start+step*++i)<stop)range.push(j/k);return range};function d3_range_integerScale(x){var k=1;while(x*k%1)k*=10;return k}function d3_class(ctor,properties){for(var key in properties){Object.defineProperty(ctor.prototype,key,{value:properties[key],enumerable:false})}}d3.map=function(object,f){var map=new d3_Map;if(object instanceof d3_Map){object.forEach(function(key,value){map.set(key,value)})}else if(Array.isArray(object)){var i=-1,n=object.length,o;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)}else{for(var key in object)map.set(key,object[key])}return map};function d3_Map(){this._=Object.create(null)}var d3_map_proto="__proto__",d3_map_zero="\0";d3_class(d3_Map,{has:d3_map_has,get:function(key){return this._[d3_map_escape(key)]},set:function(key,value){return this._[d3_map_escape(key)]=value},remove:d3_map_remove,keys:d3_map_keys,values:function(){var values=[];for(var key in this._)values.push(this._[key]);return values},entries:function(){var entries=[];for(var key in this._)entries.push({key:d3_map_unescape(key),value:this._[key]});return entries},size:d3_map_size,empty:d3_map_empty,forEach:function(f){for(var key in this._)f.call(this,d3_map_unescape(key),this._[key])}});function d3_map_escape(key){return(key+="")===d3_map_proto||key[0]===d3_map_zero?d3_map_zero+key:key}function d3_map_unescape(key){return(key+="")[0]===d3_map_zero?key.slice(1):key}function d3_map_has(key){return d3_map_escape(key)in this._}function d3_map_remove(key){return(key=d3_map_escape(key))in this._&&delete this._[key]}function d3_map_keys(){var keys=[];for(var key in this._)keys.push(d3_map_unescape(key));return keys}function d3_map_size(){var size=0;for(var key in this._)++size;return size}function d3_map_empty(){for(var key in this._)return false;return true}d3.nest=function(){var nest={},keys=[],sortKeys=[],sortValues,rollup;function map(mapType,array,depth){if(depth>=keys.length)return rollup?rollup.call(nest,array):sortValues?array.sort(sortValues):array;var i=-1,n=array.length,key=keys[depth++],keyValue,object,setter,valuesByKey=new d3_Map,values;while(++i<n){if(values=valuesByKey.get(keyValue=key(object=array[i]))){values.push(object)}else{valuesByKey.set(keyValue,[object])}}if(mapType){object=mapType();setter=function(keyValue,values){object.set(keyValue,map(mapType,values,depth))}}else{object={};setter=function(keyValue,values){object[keyValue]=map(mapType,values,depth)}}valuesByKey.forEach(setter);return object}function entries(map,depth){if(depth>=keys.length)return map;var array=[],sortKey=sortKeys[depth++];map.forEach(function(key,keyMap){array.push({key:key,values:entries(keyMap,depth)})});return sortKey?array.sort(function(a,b){return sortKey(a.key,b.key)}):array}nest.map=function(array,mapType){return map(mapType,array,0)};nest.entries=function(array){return entries(map(d3.map,array,0),0)};nest.key=function(d){keys.push(d);return nest};nest.sortKeys=function(order){sortKeys[keys.length-1]=order;return nest};nest.sortValues=function(order){sortValues=order;return nest};nest.rollup=function(f){rollup=f;return nest};return nest};d3.set=function(array){var set=new d3_Set;if(array)for(var i=0,n=array.length;i<n;++i)set.add(array[i]);return set};function d3_Set(){this._=Object.create(null)}d3_class(d3_Set,{has:d3_map_has,add:function(key){this._[d3_map_escape(key+="")]=true;return key},remove:d3_map_remove,values:d3_map_keys,size:d3_map_size,empty:d3_map_empty,forEach:function(f){for(var key in this._)f.call(this,d3_map_unescape(key))}});d3.behavior={};function d3_identity(d){return d}d3.rebind=function(target,source){var i=1,n=arguments.length,method;while(++i<n)target[method=arguments[i]]=d3_rebind(target,source,source[method]);return target};function d3_rebind(target,source,method){return function(){var value=method.apply(source,arguments);return value===source?target:value}}function d3_vendorSymbol(object,name){if(name in object)return name;name=name.charAt(0).toUpperCase()+name.slice(1);for(var i=0,n=d3_vendorPrefixes.length;i<n;++i){var prefixName=d3_vendorPrefixes[i]+name;if(prefixName in object)return prefixName}}var d3_vendorPrefixes=["webkit","ms","moz","Moz","o","O"];function d3_noop(){}d3.dispatch=function(){var dispatch=new d3_dispatch,i=-1,n=arguments.length;while(++i<n)dispatch[arguments[i]]=d3_dispatch_event(dispatch);return dispatch};function d3_dispatch(){}d3_dispatch.prototype.on=function(type,listener){var i=type.indexOf("."),name="";if(i>=0){name=type.slice(i+1);type=type.slice(0,i)}if(type)return arguments.length<2?this[type].on(name):this[type].on(name,listener);if(arguments.length===2){if(listener==null)for(type in this){if(this.hasOwnProperty(type))this[type].on(name,null)}return this}};function d3_dispatch_event(dispatch){var listeners=[],listenerByName=new d3_Map;function event(){var z=listeners,i=-1,n=z.length,l;while(++i<n)if(l=z[i].on)l.apply(this,arguments);return dispatch}event.on=function(name,listener){var l=listenerByName.get(name),i;if(arguments.length<2)return l&&l.on;if(l){l.on=null;listeners=listeners.slice(0,i=listeners.indexOf(l)).concat(listeners.slice(i+1));listenerByName.remove(name)}if(listener)listeners.push(listenerByName.set(name,{on:listener}));return dispatch};return event}d3.event=null;function d3_eventPreventDefault(){d3.event.preventDefault()}function d3_eventSource(){var e=d3.event,s;while(s=e.sourceEvent)e=s;return e}function d3_eventDispatch(target){var dispatch=new d3_dispatch,i=0,n=arguments.length;while(++i<n)dispatch[arguments[i]]=d3_dispatch_event(dispatch);dispatch.of=function(thiz,argumentz){return function(e1){try{var e0=e1.sourceEvent=d3.event;e1.target=target;d3.event=e1;dispatch[e1.type].apply(thiz,argumentz)}finally{d3.event=e0}}};return dispatch}d3.requote=function(s){return s.replace(d3_requote_re,"\\$&")};var d3_requote_re=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;var d3_subclass={}.__proto__?function(object,prototype){object.__proto__=prototype}:function(object,prototype){for(var property in prototype)object[property]=prototype[property]};function d3_selection(groups){d3_subclass(groups,d3_selectionPrototype);return groups}var d3_select=function(s,n){return n.querySelector(s)},d3_selectAll=function(s,n){return n.querySelectorAll(s)},d3_selectMatches=function(n,s){var d3_selectMatcher=n.matches||n[d3_vendorSymbol(n,"matchesSelector")];d3_selectMatches=function(n,s){return d3_selectMatcher.call(n,s)};return d3_selectMatches(n,s)};if(typeof Sizzle==="function"){d3_select=function(s,n){return Sizzle(s,n)[0]||null};d3_selectAll=Sizzle;d3_selectMatches=Sizzle.matchesSelector}d3.selection=function(){return d3.select(d3_document.documentElement)};var d3_selectionPrototype=d3.selection.prototype=[];d3_selectionPrototype.select=function(selector){var subgroups=[],subgroup,subnode,group,node;selector=d3_selection_selector(selector);for(var j=-1,m=this.length;++j<m;){subgroups.push(subgroup=[]);subgroup.parentNode=(group=this[j]).parentNode;for(var i=-1,n=group.length;++i<n;){if(node=group[i]){subgroup.push(subnode=selector.call(node,node.__data__,i,j));if(subnode&&"__data__"in node)subnode.__data__=node.__data__}else{subgroup.push(null)}}}return d3_selection(subgroups)};function d3_selection_selector(selector){return typeof selector==="function"?selector:function(){return d3_select(selector,this)}}d3_selectionPrototype.selectAll=function(selector){var subgroups=[],subgroup,node;selector=d3_selection_selectorAll(selector);for(var j=-1,m=this.length;++j<m;){for(var group=this[j],i=-1,n=group.length;++i<n;){if(node=group[i]){subgroups.push(subgroup=d3_array(selector.call(node,node.__data__,i,j)));subgroup.parentNode=node}}}return d3_selection(subgroups)};function d3_selection_selectorAll(selector){return typeof selector==="function"?selector:function(){return d3_selectAll(selector,this)}}var d3_nsXhtml="http://www.w3.org/1999/xhtml";var d3_nsPrefix={svg:"http://www.w3.org/2000/svg",xhtml:d3_nsXhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};d3.ns={prefix:d3_nsPrefix,qualify:function(name){var i=name.indexOf(":"),prefix=name;if(i>=0&&(prefix=name.slice(0,i))!=="xmlns")name=name.slice(i+1);return d3_nsPrefix.hasOwnProperty(prefix)?{space:d3_nsPrefix[prefix],local:name}:name}};d3_selectionPrototype.attr=function(name,value){if(arguments.length<2){if(typeof name==="string"){var node=this.node();name=d3.ns.qualify(name);return name.local?node.getAttributeNS(name.space,name.local):node.getAttribute(name)}for(value in name)this.each(d3_selection_attr(value,name[value]));return this}return this.each(d3_selection_attr(name,value))};function d3_selection_attr(name,value){name=d3.ns.qualify(name);function attrNull(){this.removeAttribute(name)}function attrNullNS(){this.removeAttributeNS(name.space,name.local)}function attrConstant(){this.setAttribute(name,value)}function attrConstantNS(){this.setAttributeNS(name.space,name.local,value)}function attrFunction(){var x=value.apply(this,arguments);if(x==null)this.removeAttribute(name);else this.setAttribute(name,x)}function attrFunctionNS(){var x=value.apply(this,arguments);if(x==null)this.removeAttributeNS(name.space,name.local);else this.setAttributeNS(name.space,name.local,x)}return value==null?name.local?attrNullNS:attrNull:typeof value==="function"?name.local?attrFunctionNS:attrFunction:name.local?attrConstantNS:attrConstant}function d3_collapse(s){return s.trim().replace(/\s+/g," ")}d3_selectionPrototype.classed=function(name,value){if(arguments.length<2){if(typeof name==="string"){var node=this.node(),n=(name=d3_selection_classes(name)).length,i=-1;if(value=node.classList){while(++i<n)if(!value.contains(name[i]))return false}else{value=node.getAttribute("class");while(++i<n)if(!d3_selection_classedRe(name[i]).test(value))return false}return true}for(value in name)this.each(d3_selection_classed(value,name[value]));return this}return this.each(d3_selection_classed(name,value))};function d3_selection_classedRe(name){return new RegExp("(?:^|\\s+)"+d3.requote(name)+"(?:\\s+|$)","g")}function d3_selection_classes(name){return(name+"").trim().split(/^|\s+/)}function d3_selection_classed(name,value){name=d3_selection_classes(name).map(d3_selection_classedName);var n=name.length;function classedConstant(){var i=-1;while(++i<n)name[i](this,value)}function classedFunction(){var i=-1,x=value.apply(this,arguments);while(++i<n)name[i](this,x)}return typeof value==="function"?classedFunction:classedConstant}function d3_selection_classedName(name){var re=d3_selection_classedRe(name);return function(node,value){if(c=node.classList)return value?c.add(name):c.remove(name);var c=node.getAttribute("class")||"";if(value){re.lastIndex=0;if(!re.test(c))node.setAttribute("class",d3_collapse(c+" "+name))}else{node.setAttribute("class",d3_collapse(c.replace(re," ")))}}}d3_selectionPrototype.style=function(name,value,priority){var n=arguments.length;if(n<3){if(typeof name!=="string"){if(n<2)value="";for(priority in name)this.each(d3_selection_style(priority,name[priority],value));return this}if(n<2){var node=this.node();return d3_window(node).getComputedStyle(node,null).getPropertyValue(name)}priority=""}return this.each(d3_selection_style(name,value,priority))};function d3_selection_style(name,value,priority){function styleNull(){this.style.removeProperty(name)}function styleConstant(){this.style.setProperty(name,value,priority)}function styleFunction(){var x=value.apply(this,arguments);if(x==null)this.style.removeProperty(name);else this.style.setProperty(name,x,priority)}return value==null?styleNull:typeof value==="function"?styleFunction:styleConstant}d3_selectionPrototype.property=function(name,value){if(arguments.length<2){if(typeof name==="string")return this.node()[name];for(value in name)this.each(d3_selection_property(value,name[value]));return this}return this.each(d3_selection_property(name,value))};function d3_selection_property(name,value){function propertyNull(){delete this[name]}function propertyConstant(){this[name]=value}function propertyFunction(){var x=value.apply(this,arguments);if(x==null)delete this[name];else this[name]=x}return value==null?propertyNull:typeof value==="function"?propertyFunction:propertyConstant}d3_selectionPrototype.text=function(value){return arguments.length?this.each(typeof value==="function"?function(){var v=value.apply(this,arguments);this.textContent=v==null?"":v}:value==null?function(){this.textContent=""}:function(){this.textContent=value}):this.node().textContent};d3_selectionPrototype.html=function(value){return arguments.length?this.each(typeof value==="function"?function(){var v=value.apply(this,arguments);this.innerHTML=v==null?"":v}:value==null?function(){this.innerHTML=""}:function(){this.innerHTML=value}):this.node().innerHTML};d3_selectionPrototype.append=function(name){name=d3_selection_creator(name);return this.select(function(){return this.appendChild(name.apply(this,arguments))})};function d3_selection_creator(name){function create(){var document=this.ownerDocument,namespace=this.namespaceURI;return namespace===d3_nsXhtml&&document.documentElement.namespaceURI===d3_nsXhtml?document.createElement(name):document.createElementNS(namespace,name)}function createNS(){return this.ownerDocument.createElementNS(name.space,name.local)}return typeof name==="function"?name:(name=d3.ns.qualify(name)).local?createNS:create}d3_selectionPrototype.insert=function(name,before){name=d3_selection_creator(name);before=d3_selection_selector(before);return this.select(function(){return this.insertBefore(name.apply(this,arguments),before.apply(this,arguments)||null)})};d3_selectionPrototype.remove=function(){return this.each(d3_selectionRemove)};function d3_selectionRemove(){var parent=this.parentNode;if(parent)parent.removeChild(this)}d3_selectionPrototype.data=function(value,key){var i=-1,n=this.length,group,node;if(!arguments.length){value=new Array(n=(group=this[0]).length);while(++i<n){if(node=group[i]){value[i]=node.__data__}}return value}function bind(group,groupData){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;if(key){var nodeByKeyValue=new d3_Map,keyValues=new Array(n),keyValue;for(i=-1;++i<n;){if(node=group[i]){if(nodeByKeyValue.has(keyValue=key.call(node,node.__data__,i))){exitNodes[i]=node}else{nodeByKeyValue.set(keyValue,node)}keyValues[i]=keyValue}}for(i=-1;++i<m;){if(!(node=nodeByKeyValue.get(keyValue=key.call(groupData,nodeData=groupData[i],i)))){enterNodes[i]=d3_selection_dataNode(nodeData)}else if(node!==true){updateNodes[i]=node;node.__data__=nodeData}nodeByKeyValue.set(keyValue,true)}for(i=-1;++i<n;){if(i in keyValues&&nodeByKeyValue.get(keyValues[i])!==true){exitNodes[i]=group[i]}}}else{for(i=-1;++i<n0;){node=group[i];nodeData=groupData[i];if(node){node.__data__=nodeData;updateNodes[i]=node}else{enterNodes[i]=d3_selection_dataNode(nodeData)}}for(;i<m;++i){enterNodes[i]=d3_selection_dataNode(groupData[i])}for(;i<n;++i){exitNodes[i]=group[i]}}enterNodes.update=updateNodes;enterNodes.parentNode=updateNodes.parentNode=exitNodes.parentNode=group.parentNode;enter.push(enterNodes);update.push(updateNodes);exit.push(exitNodes)}var enter=d3_selection_enter([]),update=d3_selection([]),exit=d3_selection([]);if(typeof value==="function"){while(++i<n){bind(group=this[i],value.call(group,group.parentNode.__data__,i))}}else{while(++i<n){bind(group=this[i],value)}}update.enter=function(){return enter};update.exit=function(){return exit};return update};function d3_selection_dataNode(data){return{__data__:data}}d3_selectionPrototype.datum=function(value){return arguments.length?this.property("__data__",value):this.property("__data__")};d3_selectionPrototype.filter=function(filter){var subgroups=[],subgroup,group,node;if(typeof filter!=="function")filter=d3_selection_filter(filter);for(var j=0,m=this.length;j<m;j++){subgroups.push(subgroup=[]);subgroup.parentNode=(group=this[j]).parentNode;for(var i=0,n=group.length;i<n;i++){if((node=group[i])&&filter.call(node,node.__data__,i,j)){subgroup.push(node)}}}return d3_selection(subgroups)};function d3_selection_filter(selector){return function(){return d3_selectMatches(this,selector)}}d3_selectionPrototype.order=function(){for(var j=-1,m=this.length;++j<m;){for(var group=this[j],i=group.length-1,next=group[i],node;--i>=0;){if(node=group[i]){if(next&&next!==node.nextSibling)next.parentNode.insertBefore(node,next);next=node}}}return this};d3_selectionPrototype.sort=function(comparator){comparator=d3_selection_sortComparator.apply(this,arguments);for(var j=-1,m=this.length;++j<m;)this[j].sort(comparator);return this.order()};function d3_selection_sortComparator(comparator){if(!arguments.length)comparator=d3_ascending;return function(a,b){return a&&b?comparator(a.__data__,b.__data__):!a-!b}}d3_selectionPrototype.each=function(callback){return d3_selection_each(this,function(node,i,j){callback.call(node,node.__data__,i,j)})};function d3_selection_each(groups,callback){for(var j=0,m=groups.length;j<m;j++){for(var group=groups[j],i=0,n=group.length,node;i<n;i++){if(node=group[i])callback(node,i,j)}}return groups}d3_selectionPrototype.call=function(callback){var args=d3_array(arguments);callback.apply(args[0]=this,args);return this};d3_selectionPrototype.empty=function(){return!this.node()};d3_selectionPrototype.node=function(){for(var j=0,m=this.length;j<m;j++){for(var group=this[j],i=0,n=group.length;i<n;i++){var node=group[i];if(node)return node}}return null};d3_selectionPrototype.size=function(){var n=0;d3_selection_each(this,function(){++n});return n};function d3_selection_enter(selection){d3_subclass(selection,d3_selection_enterPrototype);return selection}var d3_selection_enterPrototype=[];d3.selection.enter=d3_selection_enter;d3.selection.enter.prototype=d3_selection_enterPrototype;d3_selection_enterPrototype.append=d3_selectionPrototype.append;d3_selection_enterPrototype.empty=d3_selectionPrototype.empty;d3_selection_enterPrototype.node=d3_selectionPrototype.node;d3_selection_enterPrototype.call=d3_selectionPrototype.call;d3_selection_enterPrototype.size=d3_selectionPrototype.size;d3_selection_enterPrototype.select=function(selector){var subgroups=[],subgroup,subnode,upgroup,group,node;for(var j=-1,m=this.length;++j<m;){upgroup=(group=this[j]).update;subgroups.push(subgroup=[]);subgroup.parentNode=group.parentNode;for(var i=-1,n=group.length;++i<n;){if(node=group[i]){subgroup.push(upgroup[i]=subnode=selector.call(group.parentNode,node.__data__,i,j));subnode.__data__=node.__data__}else{subgroup.push(null)}}}return d3_selection(subgroups)};d3_selection_enterPrototype.insert=function(name,before){if(arguments.length<2)before=d3_selection_enterInsertBefore(this);return d3_selectionPrototype.insert.call(this,name,before)};function d3_selection_enterInsertBefore(enter){var i0,j0;return function(d,i,j){var group=enter[j].update,n=group.length,node;if(j!=j0)j0=j,i0=0;if(i>=i0)i0=i+1;while(!(node=group[i0])&&++i0<n);return node}}d3.select=function(node){var group;if(typeof node==="string"){group=[d3_select(node,d3_document)];group.parentNode=d3_document.documentElement}else{group=[node];group.parentNode=d3_documentElement(node)}return d3_selection([group])};d3.selectAll=function(nodes){var group;if(typeof nodes==="string"){group=d3_array(d3_selectAll(nodes,d3_document));group.parentNode=d3_document.documentElement}else{group=d3_array(nodes);group.parentNode=null}return d3_selection([group])};d3_selectionPrototype.on=function(type,listener,capture){var n=arguments.length;if(n<3){if(typeof type!=="string"){if(n<2)listener=false;for(capture in type)this.each(d3_selection_on(capture,type[capture],listener));return this}if(n<2)return(n=this.node()["__on"+type])&&n._;capture=false}return this.each(d3_selection_on(type,listener,capture))};function d3_selection_on(type,listener,capture){var name="__on"+type,i=type.indexOf("."),wrap=d3_selection_onListener;if(i>0)type=type.slice(0,i);var filter=d3_selection_onFilters.get(type);if(filter)type=filter,wrap=d3_selection_onFilter;function onRemove(){var l=this[name];if(l){this.removeEventListener(type,l,l.$);delete this[name]}}function onAdd(){var l=wrap(listener,d3_array(arguments));onRemove.call(this);this.addEventListener(type,this[name]=l,l.$=capture);l._=listener}function removeAll(){var re=new RegExp("^__on([^.]+)"+d3.requote(type)+"$"),match;for(var name in this){if(match=name.match(re)){var l=this[name];this.removeEventListener(match[1],l,l.$);delete this[name]}}}return i?listener?onAdd:onRemove:listener?d3_noop:removeAll}var d3_selection_onFilters=d3.map({mouseenter:"mouseover",mouseleave:"mouseout"});if(d3_document){d3_selection_onFilters.forEach(function(k){if("on"+k in d3_document)d3_selection_onFilters.remove(k)})}function d3_selection_onListener(listener,argumentz){return function(e){var o=d3.event;d3.event=e;argumentz[0]=this.__data__;try{listener.apply(this,argumentz)}finally{d3.event=o}}}function d3_selection_onFilter(listener,argumentz){var l=d3_selection_onListener(listener,argumentz);return function(e){var target=this,related=e.relatedTarget;if(!related||related!==target&&!(related.compareDocumentPosition(target)&8)){l.call(target,e)}}}var d3_event_dragSelect,d3_event_dragId=0;function d3_event_dragSuppress(node){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);if(d3_event_dragSelect==null){d3_event_dragSelect="onselectstart"in node?false:d3_vendorSymbol(node.style,"userSelect")}if(d3_event_dragSelect){var style=d3_documentElement(node).style,select=style[d3_event_dragSelect];style[d3_event_dragSelect]="none"}return function(suppressClick){w.on(name,null);if(d3_event_dragSelect)style[d3_event_dragSelect]=select;if(suppressClick){var off=function(){w.on(click,null)};w.on(click,function(){d3_eventPreventDefault();off()},true);setTimeout(off,0)}}}d3.mouse=function(container){return d3_mousePoint(container,d3_eventSource())};var d3_mouse_bug44083=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function d3_mousePoint(container,e){if(e.changedTouches)e=e.changedTouches[0];var svg=container.ownerSVGElement||container;if(svg.createSVGPoint){var point=svg.createSVGPoint();if(d3_mouse_bug44083<0){var window=d3_window(container);if(window.scrollX||window.scrollY){svg=d3.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var ctm=svg[0][0].getScreenCTM();d3_mouse_bug44083=!(ctm.f||ctm.e);svg.remove()}}if(d3_mouse_bug44083)point.x=e.pageX,point.y=e.pageY;else point.x=e.clientX,point.y=e.clientY;point=point.matrixTransform(container.getScreenCTM().inverse());return[point.x,point.y]}var rect=container.getBoundingClientRect();return[e.clientX-rect.left-container.clientLeft,e.clientY-rect.top-container.clientTop]}d3.touch=function(container,touches,identifier){if(arguments.length<3)identifier=touches,touches=d3_eventSource().changedTouches;if(touches)for(var i=0,n=touches.length,touch;i<n;++i){if((touch=touches[i]).identifier===identifier){return d3_mousePoint(container,touch)}}};d3.behavior.drag=function(){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");function drag(){this.on("mousedown.drag",mousedown).on("touchstart.drag",touchstart)}function dragstart(id,position,subject,move,end){return function(){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);if(origin){dragOffset=origin.apply(that,arguments);dragOffset=[dragOffset.x-position0[0],dragOffset.y-position0[1]]}else{dragOffset=[0,0]}dispatch({type:"dragstart"});function moved(){var position1=position(parent,dragId),dx,dy;if(!position1)return;dx=position1[0]-position0[0];dy=position1[1]-position0[1];dragged|=dx|dy;position0=position1;dispatch({type:"drag",x:position1[0]+dragOffset[0],y:position1[1]+dragOffset[1],dx:dx,dy:dy})}function ended(){if(!position(parent,dragId))return;dragSubject.on(move+dragName,null).on(end+dragName,null);dragRestore(dragged);dispatch({type:"dragend"})}}}drag.origin=function(x){if(!arguments.length)return origin;origin=x;return drag};return d3.rebind(drag,event,"on")};function d3_behavior_dragTouchId(){return d3.event.changedTouches[0].identifier}d3.touches=function(container,touches){if(arguments.length<2)touches=d3_eventSource().touches;return touches?d3_array(touches).map(function(touch){var point=d3_mousePoint(container,touch);point.identifier=touch.identifier;return point}):[]};var ε=1e-6,ε2=ε*ε,π=Math.PI,τ=2*π,τε=τ-ε,halfπ=π/2,d3_radians=π/180,d3_degrees=180/π;function d3_sgn(x){return x>0?1:x<0?-1:0}function d3_cross2d(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function d3_acos(x){return x>1?0:x<-1?π:Math.acos(x)}function d3_asin(x){return x>1?halfπ:x<-1?-halfπ:Math.asin(x)}function d3_sinh(x){return((x=Math.exp(x))-1/x)/2}function d3_cosh(x){return((x=Math.exp(x))+1/x)/2}function d3_tanh(x){return((x=Math.exp(2*x))-1)/(x+1)}function d3_haversin(x){return(x=Math.sin(x/2))*x}var ρ=Math.SQRT2,ρ2=2,ρ4=4;d3.interpolateZoom=function(p0,p1){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;if(d2<ε2){S=Math.log(w1/w0)/ρ;i=function(t){return[ux0+t*dx,uy0+t*dy,w0*Math.exp(ρ*t*S)]}}else{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);S=(r1-r0)/ρ;i=function(t){var s=t*S,coshr0=d3_cosh(r0),u=w0/(ρ2*d1)*(coshr0*d3_tanh(ρ*s+r0)-d3_sinh(r0));return[ux0+u*dx,uy0+u*dy,w0*coshr0/d3_cosh(ρ*s+r0)]}}i.duration=S*1e3;return i};d3.behavior.zoom=function(){var view={x:0,y:0,k:1},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;if(!d3_behavior_zoomWheel){d3_behavior_zoomWheel="onwheel"in d3_document?(d3_behavior_zoomDelta=function(){return-d3.event.deltaY*(d3.event.deltaMode?120:1)},"wheel"):"onmousewheel"in d3_document?(d3_behavior_zoomDelta=function(){return d3.event.wheelDelta},"mousewheel"):(d3_behavior_zoomDelta=function(){return-d3.event.detail},"MozMousePixelScroll")}function zoom(g){g.on(mousedown,mousedowned).on(d3_behavior_zoomWheel+".zoom",mousewheeled).on("dblclick.zoom",dblclicked).on(touchstart,touchstarted)}zoom.event=function(g){g.each(function(){var dispatch=event.of(this,arguments),view1=view;if(d3_transitionInheritId){d3.select(this).transition().each("start.zoom",function(){view=this.__chart__||{x:0,y:0,k:1};zoomstarted(dispatch)}).tween("zoom:zoom",function(){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]);return function(t){var l=i(t),k=dx/l[2];this.__chart__=view={x:cx-l[0]*k,y:cy-l[1]*k,k:k};zoomed(dispatch)}}).each("interrupt.zoom",function(){zoomended(dispatch)}).each("end.zoom",function(){zoomended(dispatch)})}else{this.__chart__=view;zoomstarted(dispatch);zoomed(dispatch);zoomended(dispatch)}})};zoom.translate=function(_){if(!arguments.length)return[view.x,view.y];view={x:+_[0],y:+_[1],k:view.k};rescale();return zoom};zoom.scale=function(_){if(!arguments.length)return view.k;view={x:view.x,y:view.y,k:null};scaleTo(+_);rescale();return zoom};zoom.scaleExtent=function(_){if(!arguments.length)return scaleExtent;scaleExtent=_==null?d3_behavior_zoomInfinity:[+_[0],+_[1]];return zoom};zoom.center=function(_){if(!arguments.length)return center;center=_&&[+_[0],+_[1]];return zoom};zoom.size=function(_){if(!arguments.length)return size;size=_&&[+_[0],+_[1]];return zoom};zoom.duration=function(_){if(!arguments.length)return duration;duration=+_;return zoom};zoom.x=function(z){if(!arguments.length)return x1;x1=z;x0=z.copy();view={x:0,y:0,k:1};return zoom};zoom.y=function(z){if(!arguments.length)return y1;y1=z;y0=z.copy();view={x:0,y:0,k:1};return zoom};function location(p){return[(p[0]-view.x)/view.k,(p[1]-view.y)/view.k]}function point(l){return[l[0]*view.k+view.x,l[1]*view.k+view.y]}function scaleTo(s){view.k=Math.max(scaleExtent[0],Math.min(scaleExtent[1],s))}function translateTo(p,l){l=point(l);view.x+=p[0]-l[0];view.y+=p[1]-l[1]}function zoomTo(that,p,l,k){that.__chart__={x:view.x,y:view.y,k:view.k};scaleTo(Math.pow(2,k));translateTo(center0=p,l);that=d3.select(that);if(duration>0)that=that.transition().duration(duration);that.call(zoom.event)}function rescale(){if(x1)x1.domain(x0.range().map(function(x){return(x-view.x)/view.k}).map(x0.invert));if(y1)y1.domain(y0.range().map(function(y){return(y-view.y)/view.k}).map(y0.invert))}function zoomstarted(dispatch){if(!zooming++)dispatch({type:"zoomstart"})}function zoomed(dispatch){rescale();dispatch({type:"zoom",scale:view.k,translate:[view.x,view.y]})}function zoomended(dispatch){if(!--zooming)dispatch({type:"zoomend"}),center0=null}function mousedowned(){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);d3_selection_interrupt.call(that);zoomstarted(dispatch);function moved(){dragged=1;translateTo(d3.mouse(that),location0);zoomed(dispatch)}function ended(){subject.on(mousemove,null).on(mouseup,null);dragRestore(dragged);zoomended(dispatch)}}function touchstarted(){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);started();zoomstarted(dispatch);subject.on(mousedown,null).on(touchstart,started);function relocate(){var touches=d3.touches(that);scale0=view.k;touches.forEach(function(t){if(t.identifier in locations0)locations0[t.identifier]=location(t)});return touches}function started(){var target=d3.event.target;d3.select(target).on(touchmove,moved).on(touchend,ended);targets.push(target);var changed=d3.event.changedTouches;for(var i=0,n=changed.length;i<n;++i){locations0[changed[i].identifier]=null}var touches=relocate(),now=Date.now();if(touches.length===1){if(now-touchtime<500){var p=touches[0];zoomTo(that,p,locations0[p.identifier],Math.floor(Math.log(view.k)/Math.LN2)+1);d3_eventPreventDefault()}touchtime=now}else if(touches.length>1){var p=touches[0],q=touches[1],dx=p[0]-q[0],dy=p[1]-q[1];distance0=dx*dx+dy*dy}}function moved(){var touches=d3.touches(that),p0,l0,p1,l1;d3_selection_interrupt.call(that);for(var i=0,n=touches.length;i<n;++i,l1=null){p1=touches[i];if(l1=locations0[p1.identifier]){if(l0)break;p0=p1,l0=l1}}if(l1){var distance1=(distance1=p1[0]-p0[0])*distance1+(distance1=p1[1]-p0[1])*distance1,scale1=distance0&&Math.sqrt(distance1/distance0);p0=[(p0[0]+p1[0])/2,(p0[1]+p1[1])/2];l0=[(l0[0]+l1[0])/2,(l0[1]+l1[1])/2];scaleTo(scale1*scale0)}touchtime=null;translateTo(p0,l0);zoomed(dispatch)}function ended(){if(d3.event.touches.length){var changed=d3.event.changedTouches;for(var i=0,n=changed.length;i<n;++i){delete locations0[changed[i].identifier]}for(var identifier in locations0){return void relocate()}}d3.selectAll(targets).on(zoomName,null);subject.on(mousedown,mousedowned).on(touchstart,touchstarted);dragRestore();zoomended(dispatch)}}function mousewheeled(){var dispatch=event.of(this,arguments);if(mousewheelTimer)clearTimeout(mousewheelTimer);else d3_selection_interrupt.call(this),translate0=location(center0=center||d3.mouse(this)),zoomstarted(dispatch);mousewheelTimer=setTimeout(function(){mousewheelTimer=null;zoomended(dispatch)},50);d3_eventPreventDefault();scaleTo(Math.pow(2,d3_behavior_zoomDelta()*.002)*view.k);translateTo(center0,translate0);zoomed(dispatch)}function dblclicked(){var p=d3.mouse(this),k=Math.log(view.k)/Math.LN2;zoomTo(this,p,location(p),d3.event.shiftKey?Math.ceil(k)-1:Math.floor(k)+1)}return d3.rebind(zoom,event,"on")};var d3_behavior_zoomInfinity=[0,Infinity],d3_behavior_zoomDelta,d3_behavior_zoomWheel;d3.color=d3_color;function d3_color(){}d3_color.prototype.toString=function(){return this.rgb()+""};d3.hsl=d3_hsl;function d3_hsl(h,s,l){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)}var d3_hslPrototype=d3_hsl.prototype=new d3_color;d3_hslPrototype.brighter=function(k){k=Math.pow(.7,arguments.length?k:1);return new d3_hsl(this.h,this.s,this.l/k)};d3_hslPrototype.darker=function(k){k=Math.pow(.7,arguments.length?k:1);return new d3_hsl(this.h,this.s,k*this.l)};d3_hslPrototype.rgb=function(){return d3_hsl_rgb(this.h,this.s,this.l)};function d3_hsl_rgb(h,s,l){var m1,m2;h=isNaN(h)?0:(h%=360)<0?h+360:h;s=isNaN(s)?0:s<0?0:s>1?1:s;l=l<0?0:l>1?1:l;m2=l<=.5?l*(1+s):l+s-l*s;m1=2*l-m2;function v(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return m1+(m2-m1)*h/60;if(h<180)return m2;if(h<240)return m1+(m2-m1)*(240-h)/60;return m1}function vv(h){return Math.round(v(h)*255)}return new d3_rgb(vv(h+120),vv(h),vv(h-120))}d3.hcl=d3_hcl;function d3_hcl(h,c,l){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)}var d3_hclPrototype=d3_hcl.prototype=new d3_color;d3_hclPrototype.brighter=function(k){return new d3_hcl(this.h,this.c,Math.min(100,this.l+d3_lab_K*(arguments.length?k:1)))};d3_hclPrototype.darker=function(k){return new d3_hcl(this.h,this.c,Math.max(0,this.l-d3_lab_K*(arguments.length?k:1)))};d3_hclPrototype.rgb=function(){return d3_hcl_lab(this.h,this.c,this.l).rgb()};function d3_hcl_lab(h,c,l){if(isNaN(h))h=0;if(isNaN(c))c=0;return new d3_lab(l,Math.cos(h*=d3_radians)*c,Math.sin(h)*c)}d3.lab=d3_lab;function d3_lab(l,a,b){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)}var d3_lab_K=18;var d3_lab_X=.95047,d3_lab_Y=1,d3_lab_Z=1.08883;var d3_labPrototype=d3_lab.prototype=new d3_color;d3_labPrototype.brighter=function(k){return new d3_lab(Math.min(100,this.l+d3_lab_K*(arguments.length?k:1)),this.a,this.b)};d3_labPrototype.darker=function(k){return new d3_lab(Math.max(0,this.l-d3_lab_K*(arguments.length?k:1)),this.a,this.b)};d3_labPrototype.rgb=function(){return d3_lab_rgb(this.l,this.a,this.b)};function d3_lab_rgb(l,a,b){var y=(l+16)/116,x=y+a/500,z=y-b/200;x=d3_lab_xyz(x)*d3_lab_X;y=d3_lab_xyz(y)*d3_lab_Y;z=d3_lab_xyz(z)*d3_lab_Z;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))}function d3_lab_hcl(l,a,b){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)}function d3_lab_xyz(x){return x>.206893034?x*x*x:(x-4/29)/7.787037}function d3_xyz_lab(x){return x>.008856?Math.pow(x,1/3):7.787037*x+4/29}function d3_xyz_rgb(r){return Math.round(255*(r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055))}d3.rgb=d3_rgb;function d3_rgb(r,g,b){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)}function d3_rgbNumber(value){return new d3_rgb(value>>16,value>>8&255,value&255)}function d3_rgbString(value){return d3_rgbNumber(value)+""}var d3_rgbPrototype=d3_rgb.prototype=new d3_color;d3_rgbPrototype.brighter=function(k){k=Math.pow(.7,arguments.length?k:1);var r=this.r,g=this.g,b=this.b,i=30;if(!r&&!g&&!b)return new d3_rgb(i,i,i);if(r&&r<i)r=i;if(g&&g<i)g=i;if(b&&b<i)b=i;return new d3_rgb(Math.min(255,r/k),Math.min(255,g/k),Math.min(255,b/k))};d3_rgbPrototype.darker=function(k){k=Math.pow(.7,arguments.length?k:1);return new d3_rgb(k*this.r,k*this.g,k*this.b)};d3_rgbPrototype.hsl=function(){return d3_rgb_hsl(this.r,this.g,this.b)};d3_rgbPrototype.toString=function(){return"#"+d3_rgb_hex(this.r)+d3_rgb_hex(this.g)+d3_rgb_hex(this.b)};function d3_rgb_hex(v){return v<16?"0"+Math.max(0,v).toString(16):Math.min(255,v).toString(16)}function d3_rgb_parse(format,rgb,hsl){var r=0,g=0,b=0,m1,m2,color;m1=/([a-z]+)\((.*)\)/.exec(format=format.toLowerCase());if(m1){m2=m1[2].split(",");switch(m1[1]){case"hsl":{return hsl(parseFloat(m2[0]),parseFloat(m2[1])/100,parseFloat(m2[2])/100)}case"rgb":{return rgb(d3_rgb_parseNumber(m2[0]),d3_rgb_parseNumber(m2[1]),d3_rgb_parseNumber(m2[2]))}}}if(color=d3_rgb_names.get(format)){return rgb(color.r,color.g,color.b)}if(format!=null&&format.charAt(0)==="#"&&!isNaN(color=parseInt(format.slice(1),16))){if(format.length===4){r=(color&3840)>>4;r=r>>4|r;g=color&240;g=g>>4|g;b=color&15;b=b<<4|b}else if(format.length===7){r=(color&16711680)>>16;g=(color&65280)>>8;b=color&255}}return rgb(r,g,b)}function d3_rgb_hsl(r,g,b){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;if(d){s=l<.5?d/(max+min):d/(2-max-min);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;h*=60}else{h=NaN;s=l>0&&l<1?0:h}return new d3_hsl(h,s,l)}function d3_rgb_lab(r,g,b){r=d3_rgb_xyz(r);g=d3_rgb_xyz(g);b=d3_rgb_xyz(b);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);return d3_lab(116*y-16,500*(x-y),200*(y-z))}function d3_rgb_xyz(r){return(r/=255)<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function d3_rgb_parseNumber(c){var f=parseFloat(c);return c.charAt(c.length-1)==="%"?Math.round(f*2.55):f}var d3_rgb_names=d3.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});d3_rgb_names.forEach(function(key,value){d3_rgb_names.set(key,d3_rgbNumber(value))});function d3_functor(v){return typeof v==="function"?v:function(){return v}}d3.functor=d3_functor;d3.xhr=d3_xhrType(d3_identity);function d3_xhrType(response){return function(url,mimeType,callback){if(arguments.length===2&&typeof mimeType==="function")callback=mimeType,mimeType=null;return d3_xhr(url,mimeType,response,callback)}}function d3_xhr(url,mimeType,response,callback){var xhr={},dispatch=d3.dispatch("beforesend","progress","load","error"),headers={},request=new XMLHttpRequest,responseType=null;if(this.XDomainRequest&&!("withCredentials"in request)&&/^(http(s)?:)?\/\//.test(url))request=new XDomainRequest;"onload"in request?request.onload=request.onerror=respond:request.onreadystatechange=function(){request.readyState>3&&respond()};function respond(){var status=request.status,result;if(!status&&d3_xhrHasResponse(request)||status>=200&&status<300||status===304){try{result=response.call(xhr,request)}catch(e){dispatch.error.call(xhr,e);return}dispatch.load.call(xhr,result)}else{dispatch.error.call(xhr,request)}}request.onprogress=function(event){var o=d3.event;d3.event=event;try{dispatch.progress.call(xhr,request)}finally{d3.event=o}};xhr.header=function(name,value){name=(name+"").toLowerCase();if(arguments.length<2)return headers[name];if(value==null)delete headers[name];else headers[name]=value+"";return xhr};xhr.mimeType=function(value){if(!arguments.length)return mimeType;mimeType=value==null?null:value+"";return xhr};xhr.responseType=function(value){if(!arguments.length)return responseType;responseType=value;return xhr};xhr.response=function(value){response=value;return xhr};["get","post"].forEach(function(method){xhr[method]=function(){return xhr.send.apply(xhr,[method].concat(d3_array(arguments)))}});xhr.send=function(method,data,callback){if(arguments.length===2&&typeof data==="function")callback=data,data=null;request.open(method,url,true);if(mimeType!=null&&!("accept"in headers))headers["accept"]=mimeType+",*/*";if(request.setRequestHeader)for(var name in headers)request.setRequestHeader(name,headers[name]);if(mimeType!=null&&request.overrideMimeType)request.overrideMimeType(mimeType);if(responseType!=null)request.responseType=responseType;if(callback!=null)xhr.on("error",callback).on("load",function(request){callback(null,request)});dispatch.beforesend.call(xhr,request);request.send(data==null?null:data);return xhr};xhr.abort=function(){request.abort();return xhr};d3.rebind(xhr,dispatch,"on");return callback==null?xhr:xhr.get(d3_xhr_fixCallback(callback))}function d3_xhr_fixCallback(callback){return callback.length===1?function(error,request){callback(error==null?request:null)}:callback}function d3_xhrHasResponse(request){var type=request.responseType;return type&&type!=="text"?request.response:request.responseText}d3.dsv=function(delimiter,mimeType){var reFormat=new RegExp('["'+delimiter+"\n]"),delimiterCode=delimiter.charCodeAt(0);function dsv(url,row,callback){if(arguments.length<3)callback=row,row=null;var xhr=d3_xhr(url,mimeType,row==null?response:typedResponse(row),callback);xhr.row=function(_){return arguments.length?xhr.response((row=_)==null?response:typedResponse(_)):row};return xhr}function response(request){return dsv.parse(request.responseText)}function typedResponse(f){return function(request){return dsv.parse(request.responseText,f)}}dsv.parse=function(text,f){var o;return dsv.parseRows(text,function(row,i){if(o)return o(row,i-1);var a=new Function("d","return {"+row.map(function(name,i){return JSON.stringify(name)+": d["+i+"]"}).join(",")+"}");o=f?function(row,i){return f(a(row),i)}:a})};dsv.parseRows=function(text,f){var EOL={},EOF={},rows=[],N=text.length,I=0,n=0,t,eol;function token(){if(I>=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===34){var i=j;while(i++<N){if(text.charCodeAt(i)===34){if(text.charCodeAt(i+1)!==34)break;++i}}I=i+2;var c=text.charCodeAt(i+1);if(c===13){eol=true;if(text.charCodeAt(i+2)===10)++I}else if(c===10){eol=true}return text.slice(j+1,i).replace(/""/g,'"')}while(I<N){var c=text.charCodeAt(I++),k=1;if(c===10)eol=true;else if(c===13){eol=true;if(text.charCodeAt(I)===10)++I,++k}else if(c!==delimiterCode)continue;return text.slice(j,I-k)}return text.slice(j)}while((t=token())!==EOF){var a=[];while(t!==EOL&&t!==EOF){a.push(t);t=token()}if(f&&(a=f(a,n++))==null)continue;rows.push(a)}return rows};dsv.format=function(rows){if(Array.isArray(rows[0]))return dsv.formatRows(rows);var fieldSet=new d3_Set,fields=[];rows.forEach(function(row){for(var field in row){if(!fieldSet.has(field)){fields.push(fieldSet.add(field))}}});return[fields.map(formatValue).join(delimiter)].concat(rows.map(function(row){return fields.map(function(field){return formatValue(row[field])}).join(delimiter)})).join("\n")};dsv.formatRows=function(rows){return rows.map(formatRow).join("\n")};function formatRow(row){return row.map(formatValue).join(delimiter)}function formatValue(text){return reFormat.test(text)?'"'+text.replace(/\"/g,'""')+'"':text}return dsv};d3.csv=d3.dsv(",","text/csv");d3.tsv=d3.dsv("\t","text/tab-separated-values");var d3_timer_queueHead,d3_timer_queueTail,d3_timer_interval,d3_timer_timeout,d3_timer_frame=this[d3_vendorSymbol(this,"requestAnimationFrame")]||function(callback){setTimeout(callback,17)};d3.timer=function(){d3_timer.apply(this,arguments)};function d3_timer(callback,delay,then){var n=arguments.length;if(n<2)delay=0;if(n<3)then=Date.now();var time=then+delay,timer={c:callback,t:time,n:null};if(d3_timer_queueTail)d3_timer_queueTail.n=timer;else d3_timer_queueHead=timer;d3_timer_queueTail=timer;if(!d3_timer_interval){d3_timer_timeout=clearTimeout(d3_timer_timeout);d3_timer_interval=1;d3_timer_frame(d3_timer_step)}return timer}function d3_timer_step(){var now=d3_timer_mark(),delay=d3_timer_sweep()-now;if(delay>24){if(isFinite(delay)){clearTimeout(d3_timer_timeout);d3_timer_timeout=setTimeout(d3_timer_step,delay)}d3_timer_interval=0}else{d3_timer_interval=1;d3_timer_frame(d3_timer_step)}}d3.timer.flush=function(){d3_timer_mark();d3_timer_sweep()};function d3_timer_mark(){var now=Date.now(),timer=d3_timer_queueHead;while(timer){if(now>=timer.t&&timer.c(now-timer.t))timer.c=null;timer=timer.n}return now}function d3_timer_sweep(){var t0,t1=d3_timer_queueHead,time=Infinity;while(t1){if(t1.c){if(t1.t<time)time=t1.t;t1=(t0=t1).n}else{t1=t0?t0.n=t1.n:d3_timer_queueHead=t1.n}}d3_timer_queueTail=t0;return time}function d3_format_precision(x,p){return p-(x?Math.ceil(Math.log(x)/Math.LN10):1)}d3.round=function(x,n){return n?Math.round(x*(n=Math.pow(10,n)))/n:Math.round(x)};var d3_formatPrefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix);d3.formatPrefix=function(value,precision){var i=0;if(value=+value){if(value<0)value*=-1;if(precision)value=d3.round(value,d3_format_precision(value,precision));i=1+Math.floor(1e-12+Math.log(value)/Math.LN10);i=Math.max(-24,Math.min(24,Math.floor((i-1)/3)*3))}return d3_formatPrefixes[8+i/3]};function d3_formatPrefix(d,i){var k=Math.pow(10,abs(8-i)*3);return{scale:i>8?function(d){return d/k}:function(d){return d*k},symbol:d}}function d3_locale_numberFormat(locale){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){var i=value.length,t=[],j=0,g=locale_grouping[0],length=0;while(i>0&&g>0){if(length+g+1>width)g=Math.max(1,width-length);t.push(value.substring(i-=g,i+g));if((length+=g+1)>width)break;g=locale_grouping[j=(j+1)%locale_grouping.length]}return t.reverse().join(locale_thousands)}:d3_identity;return function(specifier){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;if(precision)precision=+precision.substring(1);if(zfill||fill==="0"&&align==="="){zfill=fill="0";align="="}switch(type){case"n":comma=true;type="g";break;case"%":scale=100;suffix="%";type="f";break;case"p":scale=100;suffix="%";type="r";break;case"b":case"o":case"x":case"X":if(symbol==="#")prefix="0"+type.toLowerCase();case"c":exponent=false;case"d":integer=true;precision=0;break;case"s":scale=-1;type="r";break}if(symbol==="$")prefix=locale_currency[0],suffix=locale_currency[1];if(type=="r"&&!precision)type="g";if(precision!=null){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))}type=d3_format_types.get(type)||d3_format_typeDefault;var zcomma=zfill&&comma;return function(value){var fullSuffix=suffix;if(integer&&value%1)return"";var negative=value<0||value===0&&1/value<0?(value=-value,"-"):sign==="-"?"":sign;if(scale<0){var unit=d3.formatPrefix(value,precision);value=unit.scale(value);fullSuffix=unit.symbol+suffix}else{value*=scale}value=type(value,precision);var i=value.lastIndexOf("."),before,after;if(i<0){var j=exponent?value.lastIndexOf("e"):-1;if(j<0)before=value,after="";else before=value.substring(0,j),after=value.substring(j)}else{before=value.substring(0,i);after=locale_decimal+value.substring(i+1)}if(!zfill&&comma)before=formatGroup(before,Infinity);var length=prefix.length+before.length+after.length+(zcomma?0:negative.length),padding=length<width?new Array(length=width-length+1).join(fill):"";if(zcomma)before=formatGroup(padding+before,padding.length?width-after.length:Infinity);negative+=prefix;value=before+after;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}}}var d3_format_re=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;var d3_format_types=d3.map({b:function(x){return x.toString(2)},c:function(x){return String.fromCharCode(x)},o:function(x){return x.toString(8)},x:function(x){return x.toString(16)},X:function(x){return x.toString(16).toUpperCase()},g:function(x,p){return x.toPrecision(p)},e:function(x,p){return x.toExponential(p)},f:function(x,p){return x.toFixed(p)},r:function(x,p){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))))}});function d3_format_typeDefault(x){return x+""}var d3_time=d3.time={},d3_date=Date;function d3_date_utc(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}d3_date_utc.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){d3_time_prototype.setUTCDate.apply(this._,arguments)},setDay:function(){d3_time_prototype.setUTCDay.apply(this._,arguments)},setFullYear:function(){d3_time_prototype.setUTCFullYear.apply(this._,arguments)},setHours:function(){d3_time_prototype.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){d3_time_prototype.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){d3_time_prototype.setUTCMinutes.apply(this._,arguments)},setMonth:function(){d3_time_prototype.setUTCMonth.apply(this._,arguments)},setSeconds:function(){d3_time_prototype.setUTCSeconds.apply(this._,arguments)},setTime:function(){d3_time_prototype.setTime.apply(this._,arguments)}};var d3_time_prototype=Date.prototype;function d3_time_interval(local,step,number){function round(date){var d0=local(date),d1=offset(d0,1);return date-d0<d1-date?d0:d1}function ceil(date){step(date=local(new d3_date(date-1)),1);return date}function offset(date,k){step(date=new d3_date(+date),k);return date}function range(t0,t1,dt){var time=ceil(t0),times=[];if(dt>1){while(time<t1){if(!(number(time)%dt))times.push(new Date(+time));step(time,1)}}else{while(time<t1)times.push(new Date(+time)),step(time,1)}return times}function range_utc(t0,t1,dt){try{d3_date=d3_date_utc;var utc=new d3_date_utc;utc._=t0;return range(utc,t1,dt)}finally{d3_date=Date}}local.floor=local;local.round=round;local.ceil=ceil;local.offset=offset;local.range=range;var utc=local.utc=d3_time_interval_utc(local);utc.floor=utc;utc.round=d3_time_interval_utc(round);utc.ceil=d3_time_interval_utc(ceil);utc.offset=d3_time_interval_utc(offset);utc.range=range_utc;return local}function d3_time_interval_utc(method){return function(date,k){try{d3_date=d3_date_utc;var utc=new d3_date_utc;utc._=date;return method(utc,k)._}finally{d3_date=Date}}}d3_time.year=d3_time_interval(function(date){date=d3_time.day(date);date.setMonth(0,1);return date},function(date,offset){date.setFullYear(date.getFullYear()+offset)},function(date){return date.getFullYear()});d3_time.years=d3_time.year.range;d3_time.years.utc=d3_time.year.utc.range;d3_time.day=d3_time_interval(function(date){var day=new d3_date(2e3,0);day.setFullYear(date.getFullYear(),date.getMonth(),date.getDate());return day},function(date,offset){date.setDate(date.getDate()+offset)},function(date){return date.getDate()-1});d3_time.days=d3_time.day.range;d3_time.days.utc=d3_time.day.utc.range;d3_time.dayOfYear=function(date){var year=d3_time.year(date);return Math.floor((date-year-(date.getTimezoneOffset()-year.getTimezoneOffset())*6e4)/864e5)};["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(day,i){i=7-i;var interval=d3_time[day]=d3_time_interval(function(date){(date=d3_time.day(date)).setDate(date.getDate()-(date.getDay()+i)%7);return date},function(date,offset){date.setDate(date.getDate()+Math.floor(offset)*7)},function(date){var day=d3_time.year(date).getDay();return Math.floor((d3_time.dayOfYear(date)+(day+i)%7)/7)-(day!==i)});d3_time[day+"s"]=interval.range;d3_time[day+"s"].utc=interval.utc.range;d3_time[day+"OfYear"]=function(date){var day=d3_time.year(date).getDay();return Math.floor((d3_time.dayOfYear(date)+(day+i)%7)/7)}});d3_time.week=d3_time.sunday;d3_time.weeks=d3_time.sunday.range;d3_time.weeks.utc=d3_time.sunday.utc.range;d3_time.weekOfYear=d3_time.sundayOfYear;function d3_locale_timeFormat(locale){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;function d3_time_format(template){var n=template.length;function format(date){var string=[],i=-1,j=0,c,p,f;while(++i<n){if(template.charCodeAt(i)===37){string.push(template.slice(j,i));if((p=d3_time_formatPads[c=template.charAt(++i)])!=null)c=template.charAt(++i);if(f=d3_time_formats[c])c=f(date,p==null?c==="e"?" ":"0":p);string.push(c);j=i+1}}string.push(template.slice(j,i));return string.join("")}format.parse=function(string){var d={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=d3_time_parse(d,template,string,0);if(i!=string.length)return null;if("p"in d)d.H=d.H%12+d.p*12;var localZ=d.Z!=null&&d3_date!==d3_date_utc,date=new(localZ?d3_date_utc:d3_date);if("j"in d)date.setFullYear(d.y,0,d.j);else if("W"in d||"U"in d){if(!("w"in d))d.w="W"in d?1:0;date.setFullYear(d.y,0,1);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)}else date.setFullYear(d.y,d.m,d.d);date.setHours(d.H+(d.Z/100|0),d.M+d.Z%100,d.S,d.L);return localZ?date._:date};format.toString=function(){return template};return format}function d3_time_parse(date,template,string,j){var c,p,t,i=0,n=template.length,m=string.length;while(i<n){if(j>=m)return-1;c=template.charCodeAt(i++);if(c===37){t=template.charAt(i++);p=d3_time_parsers[t in d3_time_formatPads?template.charAt(i++):t];if(!p||(j=p(date,string,j))<0)return-1}else if(c!=string.charCodeAt(j++)){return-1}}return j}d3_time_format.utc=function(template){var local=d3_time_format(template);function format(date){try{d3_date=d3_date_utc;var utc=new d3_date;utc._=date;return local(utc)}finally{d3_date=Date}}format.parse=function(string){try{d3_date=d3_date_utc;var date=local.parse(string);return date&&date._}finally{d3_date=Date}};format.toString=local.toString;return format};d3_time_format.multi=d3_time_format.utc.multi=d3_time_formatMulti;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);locale_periods.forEach(function(p,i){d3_time_periodLookup.set(p.toLowerCase(),i)});var d3_time_formats={a:function(d){return locale_shortDays[d.getDay()]},A:function(d){return locale_days[d.getDay()]},b:function(d){return locale_shortMonths[d.getMonth()]},B:function(d){return locale_months[d.getMonth()]},c:d3_time_format(locale_dateTime),d:function(d,p){return d3_time_formatPad(d.getDate(),p,2)},e:function(d,p){return d3_time_formatPad(d.getDate(),p,2)},H:function(d,p){return d3_time_formatPad(d.getHours(),p,2)},I:function(d,p){return d3_time_formatPad(d.getHours()%12||12,p,2)},j:function(d,p){return d3_time_formatPad(1+d3_time.dayOfYear(d),p,3)},L:function(d,p){return d3_time_formatPad(d.getMilliseconds(),p,3)},m:function(d,p){return d3_time_formatPad(d.getMonth()+1,p,2)},M:function(d,p){return d3_time_formatPad(d.getMinutes(),p,2)},p:function(d){return locale_periods[+(d.getHours()>=12)]},S:function(d,p){return d3_time_formatPad(d.getSeconds(),p,2)},U:function(d,p){return d3_time_formatPad(d3_time.sundayOfYear(d),p,2)},w:function(d){return d.getDay()},W:function(d,p){return d3_time_formatPad(d3_time.mondayOfYear(d),p,2)},x:d3_time_format(locale_date),X:d3_time_format(locale_time),y:function(d,p){return d3_time_formatPad(d.getFullYear()%100,p,2)},Y:function(d,p){return d3_time_formatPad(d.getFullYear()%1e4,p,4)},Z:d3_time_zone,"%":function(){return"%"}};var d3_time_parsers={a:d3_time_parseWeekdayAbbrev,A:d3_time_parseWeekday,b:d3_time_parseMonthAbbrev,B:d3_time_parseMonth,c:d3_time_parseLocaleFull,d:d3_time_parseDay,e:d3_time_parseDay,H:d3_time_parseHour24,I:d3_time_parseHour24,j:d3_time_parseDayOfYear,L:d3_time_parseMilliseconds,m:d3_time_parseMonthNumber,M:d3_time_parseMinutes,p:d3_time_parseAmPm,S:d3_time_parseSeconds,U:d3_time_parseWeekNumberSunday,w:d3_time_parseWeekdayNumber,W:d3_time_parseWeekNumberMonday,x:d3_time_parseLocaleDate,X:d3_time_parseLocaleTime,y:d3_time_parseYear,Y:d3_time_parseFullYear,Z:d3_time_parseZone,"%":d3_time_parseLiteralPercent};function d3_time_parseWeekdayAbbrev(date,string,i){d3_time_dayAbbrevRe.lastIndex=0;var n=d3_time_dayAbbrevRe.exec(string.slice(i));return n?(date.w=d3_time_dayAbbrevLookup.get(n[0].toLowerCase()),i+n[0].length):-1}function d3_time_parseWeekday(date,string,i){d3_time_dayRe.lastIndex=0;var n=d3_time_dayRe.exec(string.slice(i));return n?(date.w=d3_time_dayLookup.get(n[0].toLowerCase()),i+n[0].length):-1}function d3_time_parseMonthAbbrev(date,string,i){d3_time_monthAbbrevRe.lastIndex=0;var n=d3_time_monthAbbrevRe.exec(string.slice(i));return n?(date.m=d3_time_monthAbbrevLookup.get(n[0].toLowerCase()),i+n[0].length):-1}function d3_time_parseMonth(date,string,i){d3_time_monthRe.lastIndex=0;var n=d3_time_monthRe.exec(string.slice(i));return n?(date.m=d3_time_monthLookup.get(n[0].toLowerCase()),i+n[0].length):-1}function d3_time_parseLocaleFull(date,string,i){return d3_time_parse(date,d3_time_formats.c.toString(),string,i)}function d3_time_parseLocaleDate(date,string,i){return d3_time_parse(date,d3_time_formats.x.toString(),string,i)}function d3_time_parseLocaleTime(date,string,i){return d3_time_parse(date,d3_time_formats.X.toString(),string,i)}function d3_time_parseAmPm(date,string,i){var n=d3_time_periodLookup.get(string.slice(i,i+=2).toLowerCase());return n==null?-1:(date.p=n,i)}return d3_time_format}var d3_time_formatPads={"-":"",_:" ",0:"0"},d3_time_numberRe=/^\s*\d+/,d3_time_percentRe=/^%/;function d3_time_formatPad(value,fill,width){var sign=value<0?"-":"",string=(sign?-value:value)+"",length=string.length;return sign+(length<width?new Array(width-length+1).join(fill)+string:string)}function d3_time_formatRe(names){return new RegExp("^(?:"+names.map(d3.requote).join("|")+")","i")}function d3_time_formatLookup(names){var map=new d3_Map,i=-1,n=names.length;while(++i<n)map.set(names[i].toLowerCase(),i);return map}function d3_time_parseWeekdayNumber(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+1));return n?(date.w=+n[0],i+n[0].length):-1}function d3_time_parseWeekNumberSunday(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i));return n?(date.U=+n[0],i+n[0].length):-1}function d3_time_parseWeekNumberMonday(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i));return n?(date.W=+n[0],i+n[0].length):-1}function d3_time_parseFullYear(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+4));return n?(date.y=+n[0],i+n[0].length):-1}function d3_time_parseYear(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.y=d3_time_expandYear(+n[0]),i+n[0].length):-1}function d3_time_parseZone(date,string,i){return/^[+-]\d{4}$/.test(string=string.slice(i,i+5))?(date.Z=-string,i+5):-1}function d3_time_expandYear(d){return d+(d>68?1900:2e3)}function d3_time_parseMonthNumber(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.m=n[0]-1,i+n[0].length):-1}function d3_time_parseDay(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.d=+n[0],i+n[0].length):-1}function d3_time_parseDayOfYear(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+3));return n?(date.j=+n[0],i+n[0].length):-1}function d3_time_parseHour24(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.H=+n[0],i+n[0].length):-1}function d3_time_parseMinutes(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.M=+n[0],i+n[0].length):-1}function d3_time_parseSeconds(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+2));return n?(date.S=+n[0],i+n[0].length):-1}function d3_time_parseMilliseconds(date,string,i){d3_time_numberRe.lastIndex=0;var n=d3_time_numberRe.exec(string.slice(i,i+3));return n?(date.L=+n[0],i+n[0].length):-1}function d3_time_zone(d){var z=d.getTimezoneOffset(),zs=z>0?"-":"+",zh=abs(z)/60|0,zm=abs(z)%60;return zs+d3_time_formatPad(zh,"0",2)+d3_time_formatPad(zm,"0",2)}function d3_time_parseLiteralPercent(date,string,i){d3_time_percentRe.lastIndex=0;var n=d3_time_percentRe.exec(string.slice(i,i+1));return n?i+n[0].length:-1}function d3_time_formatMulti(formats){var n=formats.length,i=-1;while(++i<n)formats[i][0]=this(formats[i][0]);return function(date){var i=0,f=formats[i];while(!f[1](date))f=formats[++i];return f[0](date)}}d3.locale=function(locale){return{numberFormat:d3_locale_numberFormat(locale),timeFormat:d3_locale_timeFormat(locale)}};var d3_locale_enUS=d3.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});d3.format=d3_locale_enUS.numberFormat;d3.geo={};function d3_adder(){}d3_adder.prototype={s:0,t:0,add:function(y){d3_adderSum(y,this.t,d3_adderTemp);d3_adderSum(d3_adderTemp.s,this.s,this);if(this.s)this.t+=d3_adderTemp.t;else this.s=d3_adderTemp.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var d3_adderTemp=new d3_adder;function d3_adderSum(a,b,o){var x=o.s=a+b,bv=x-a,av=x-bv;o.t=a-av+(b-bv)}d3.geo.stream=function(object,listener){if(object&&d3_geo_streamObjectType.hasOwnProperty(object.type)){d3_geo_streamObjectType[object.type](object,listener)}else{d3_geo_streamGeometry(object,listener)}};function d3_geo_streamGeometry(geometry,listener){if(geometry&&d3_geo_streamGeometryType.hasOwnProperty(geometry.type)){d3_geo_streamGeometryType[geometry.type](geometry,listener)}}var d3_geo_streamObjectType={Feature:function(feature,listener){d3_geo_streamGeometry(feature.geometry,listener)},FeatureCollection:function(object,listener){var features=object.features,i=-1,n=features.length;while(++i<n)d3_geo_streamGeometry(features[i].geometry,listener)}};var d3_geo_streamGeometryType={Sphere:function(object,listener){listener.sphere()},Point:function(object,listener){object=object.coordinates;listener.point(object[0],object[1],object[2])},MultiPoint:function(object,listener){var coordinates=object.coordinates,i=-1,n=coordinates.length;while(++i<n)object=coordinates[i],listener.point(object[0],object[1],object[2])},LineString:function(object,listener){d3_geo_streamLine(object.coordinates,listener,0)},MultiLineString:function(object,listener){var coordinates=object.coordinates,i=-1,n=coordinates.length;while(++i<n)d3_geo_streamLine(coordinates[i],listener,0)},Polygon:function(object,listener){d3_geo_streamPolygon(object.coordinates,listener)},MultiPolygon:function(object,listener){var coordinates=object.coordinates,i=-1,n=coordinates.length;while(++i<n)d3_geo_streamPolygon(coordinates[i],listener)},GeometryCollection:function(object,listener){var geometries=object.geometries,i=-1,n=geometries.length;while(++i<n)d3_geo_streamGeometry(geometries[i],listener)}};function d3_geo_streamLine(coordinates,listener,closed){var i=-1,n=coordinates.length-closed,coordinate;listener.lineStart();while(++i<n)coordinate=coordinates[i],listener.point(coordinate[0],coordinate[1],coordinate[2]);listener.lineEnd()}function d3_geo_streamPolygon(coordinates,listener){var i=-1,n=coordinates.length;listener.polygonStart();while(++i<n)d3_geo_streamLine(coordinates[i],listener,1);listener.polygonEnd()}d3.geo.area=function(object){d3_geo_areaSum=0;d3.geo.stream(object,d3_geo_area);return d3_geo_areaSum};var d3_geo_areaSum,d3_geo_areaRingSum=new d3_adder;var d3_geo_area={sphere:function(){d3_geo_areaSum+=4*π},point:d3_noop,lineStart:d3_noop,lineEnd:d3_noop,polygonStart:function(){d3_geo_areaRingSum.reset();d3_geo_area.lineStart=d3_geo_areaRingStart},polygonEnd:function(){var area=2*d3_geo_areaRingSum;d3_geo_areaSum+=area<0?4*π+area:area;d3_geo_area.lineStart=d3_geo_area.lineEnd=d3_geo_area.point=d3_noop}};function d3_geo_areaRingStart(){var λ00,φ00,λ0,cosφ0,sinφ0;d3_geo_area.point=function(λ,φ){d3_geo_area.point=nextPoint;λ0=(λ00=λ)*d3_radians,cosφ0=Math.cos(φ=(φ00=φ)*d3_radians/2+π/4),sinφ0=Math.sin(φ)};function nextPoint(λ,φ){λ*=d3_radians;φ=φ*d3_radians/2+π/4;var =λ-λ0,sdλ=>=0?1:-1,adλ=sdλ*,cosφ=Math.cos(φ),sinφ=Math.sin(φ),k=sinφ0*sinφ,u=cosφ0*cosφ+k*Math.cos(adλ),v=k*sdλ*Math.sin(adλ);d3_geo_areaRingSum.add(Math.atan2(v,u));λ0=λ,cosφ0=cosφ,sinφ0=sinφ}d3_geo_area.lineEnd=function(){nextPoint(λ00,φ00)}}function d3_geo_cartesian(spherical){var λ=spherical[0],φ=spherical[1],cosφ=Math.cos(φ);return[cosφ*Math.cos(λ),cosφ*Math.sin(λ),Math.sin(φ)]}function d3_geo_cartesianDot(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function d3_geo_cartesianCross(a,b){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]]}function d3_geo_cartesianAdd(a,b){a[0]+=b[0];a[1]+=b[1];a[2]+=b[2]}function d3_geo_cartesianScale(vector,k){return[vector[0]*k,vector[1]*k,vector[2]*k]}function d3_geo_cartesianNormalize(d){var l=Math.sqrt(d[0]*d[0]+d[1]*d[1]+d[2]*d[2]);d[0]/=l;d[1]/=l;d[2]/=l}function d3_geo_spherical(cartesian){return[Math.atan2(cartesian[1],cartesian[0]),d3_asin(cartesian[2])]}function d3_geo_sphericalEqual(a,b){return abs(a[0]-b[0])<ε&&abs(a[1]-b[1])<ε}d3.geo.bounds=function(){var λ0,φ0,λ1,φ1,λ_,λ__,φ__,p0,dλSum,ranges,range;var bound={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){bound.point=ringPoint;bound.lineStart=ringStart;bound.lineEnd=ringEnd;dλSum=0;d3_geo_area.polygonStart()},polygonEnd:function(){d3_geo_area.polygonEnd();bound.point=point;bound.lineStart=lineStart;bound.lineEnd=lineEnd;if(d3_geo_areaRingSum<0)λ0=-(λ1=180),φ0=-(φ1=90);else if(dλSum>ε)φ1=90;else if(dλSum<-ε)φ0=-90;range[0]=λ0,range[1]=λ1}};function point(λ,φ){ranges.push(range=[λ0=λ,λ1=λ]);if(φ<φ0)φ0=φ;if(φ>φ1)φ1=φ}function linePoint(λ,φ){var p=d3_geo_cartesian([λ*d3_radians,φ*d3_radians]);if(p0){var normal=d3_geo_cartesianCross(p0,p),equatorial=[normal[1],-normal[0],0],inflection=d3_geo_cartesianCross(equatorial,normal);d3_geo_cartesianNormalize(inflection);inflection=d3_geo_spherical(inflection);var =λ-λ_,s=>0?1:-1,λi=inflection[0]*d3_degrees*s,antimeridian=abs()>180;if(antimeridian^(s*λ_<λi&&λi<s*λ)){var φi=inflection[1]*d3_degrees;if(φi>φ1)φ1=φi}else if(λi=(λi+360)%360-180,antimeridian^(s*λ_<λi&&λi<s*λ)){var φi=-inflection[1]*d3_degrees;if(φi<φ0)φ0=φi}else{if(φ<φ0)φ0=φ;if(φ>φ1)φ1=φ}if(antimeridian){if(λ<λ_){if(angle(λ0,λ)>angle(λ0,λ1))λ1=λ}else{if(angle(λ,λ1)>angle(λ0,λ1))λ0=λ}}else{if(λ1>=λ0){if(λ<λ0)λ0=λ;if(λ>λ1)λ1=λ}else{if(λ>λ_){if(angle(λ0,λ)>angle(λ0,λ1))λ1=λ}else{if(angle(λ,λ1)>angle(λ0,λ1))λ0=λ}}}}else{point(λ,φ)}p0=p,λ_=λ}function lineStart(){bound.point=linePoint}function lineEnd(){range[0]=λ0,range[1]=λ1;bound.point=point;p0=null}function ringPoint(λ,φ){if(p0){var =λ-λ_;dλSum+=abs()>180?+(>0?360:-360):}else λ__=λ,φ__=φ;d3_geo_area.point(λ,φ);linePoint(λ,φ)}function ringStart(){d3_geo_area.lineStart()}function ringEnd(){ringPoint(λ__,φ__);d3_geo_area.lineEnd();if(abs(dλSum)>ε)λ0=-(λ1=180);range[0]=λ0,range[1]=λ1;p0=null}function angle(λ0,λ1){return(λ1-=λ0)<0?λ1+360:λ1}function compareRanges(a,b){return a[0]-b[0]}function withinRange(x,range){return range[0]<=range[1]?range[0]<=x&&x<=range[1]:x<range[0]||range[1]<x}return function(feature){φ1=λ1=-(λ0=φ0=Infinity);ranges=[];d3.geo.stream(feature,bound);var n=ranges.length;if(n){ranges.sort(compareRanges);for(var i=1,a=ranges[0],b,merged=[a];i<n;++i){b=ranges[i];if(withinRange(b[0],a)||withinRange(b[1],a)){if(angle(a[0],b[1])>angle(a[0],a[1]))a[1]=b[1];if(angle(b[0],a[1])>angle(a[0],a[1]))a[0]=b[0]}else{merged.push(a=b)}}var best=-Infinity,;for(var n=merged.length-1,i=0,a=merged[n],b;i<=n;a=b,++i){b=merged[i];if((=angle(a[1],b[0]))>best)best=,λ0=b[0],λ1=a[1]}}ranges=range=null;return λ0===Infinity||φ0===Infinity?[[NaN,NaN],[NaN,NaN]]:[[λ0,φ0],[λ1,φ1]]}}();d3.geo.centroid=function(object){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;d3.geo.stream(object,d3_geo_centroid);var x=d3_geo_centroidX2,y=d3_geo_centroidY2,z=d3_geo_centroidZ2,m=x*x+y*y+z*z;if(m<ε2){x=d3_geo_centroidX1,y=d3_geo_centroidY1,z=d3_geo_centroidZ1;if(d3_geo_centroidW1<ε)x=d3_geo_centroidX0,y=d3_geo_centroidY0,z=d3_geo_centroidZ0;m=x*x+y*y+z*z;if(m<ε2)return[NaN,NaN]}return[Math.atan2(y,x)*d3_degrees,d3_asin(z/Math.sqrt(m))*d3_degrees]};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;var d3_geo_centroid={sphere:d3_noop,point:d3_geo_centroidPoint,lineStart:d3_geo_centroidLineStart,lineEnd:d3_geo_centroidLineEnd,polygonStart:function(){d3_geo_centroid.lineStart=d3_geo_centroidRingStart},polygonEnd:function(){d3_geo_centroid.lineStart=d3_geo_centroidLineStart}};function d3_geo_centroidPoint(λ,φ){λ*=d3_radians;var cosφ=Math.cos(φ*=d3_radians);d3_geo_centroidPointXYZ(cosφ*Math.cos(λ),cosφ*Math.sin(λ),Math.sin(φ))}function d3_geo_centroidPointXYZ(x,y,z){++d3_geo_centroidW0;d3_geo_centroidX0+=(x-d3_geo_centroidX0)/d3_geo_centroidW0;d3_geo_centroidY0+=(y-d3_geo_centroidY0)/d3_geo_centroidW0;d3_geo_centroidZ0+=(z-d3_geo_centroidZ0)/d3_geo_centroidW0}function d3_geo_centroidLineStart(){var x0,y0,z0;d3_geo_centroid.point=function(λ,φ){λ*=d3_radians;var cosφ=Math.cos(φ*=d3_radians);x0=cosφ*Math.cos(λ);y0=cosφ*Math.sin(λ);z0=Math.sin(φ);d3_geo_centroid.point=nextPoint;d3_geo_centroidPointXYZ(x0,y0,z0)};function nextPoint(λ,φ){λ*=d3_radians;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);d3_geo_centroidW1+=w;d3_geo_centroidX1+=w*(x0+(x0=x));d3_geo_centroidY1+=w*(y0+(y0=y));d3_geo_centroidZ1+=w*(z0+(z0=z));d3_geo_centroidPointXYZ(x0,y0,z0)}}function d3_geo_centroidLineEnd(){d3_geo_centroid.point=d3_geo_centroidPoint}function d3_geo_centroidRingStart(){var λ00,φ00,x0,y0,z0;d3_geo_centroid.point=function(λ,φ){λ00=λ,φ00=φ;d3_geo_centroid.point=nextPoint;λ*=d3_radians;var cosφ=Math.cos(φ*=d3_radians);x0=cosφ*Math.cos(λ);y0=cosφ*Math.sin(λ);z0=Math.sin(φ);d3_geo_centroidPointXYZ(x0,y0,z0)};d3_geo_centroid.lineEnd=function(){nextPoint(λ00,φ00);d3_geo_centroid.lineEnd=d3_geo_centroidLineEnd;d3_geo_centroid.point=d3_geo_centroidPoint};function nextPoint(λ,φ){λ*=d3_radians;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);d3_geo_centroidX2+=v*cx;d3_geo_centroidY2+=v*cy;d3_geo_centroidZ2+=v*cz;d3_geo_centroidW1+=w;d3_geo_centroidX1+=w*(x0+(x0=x));d3_geo_centroidY1+=w*(y0+(y0=y));d3_geo_centroidZ1+=w*(z0+(z0=z));d3_geo_centroidPointXYZ(x0,y0,z0)}}function d3_geo_compose(a,b){function compose(x,y){return x=a(x,y),b(x[0],x[1])}if(a.invert&&b.invert)compose.invert=function(x,y){return x=b.invert(x,y),x&&a.invert(x[0],x[1])};return compose}function d3_true(){return true}function d3_geo_clipPolygon(segments,compare,clipStartInside,interpolate,listener){var subject=[],clip=[];segments.forEach(function(segment){if((n=segment.length-1)<=0)return;var n,p0=segment[0],p1=segment[n];if(d3_geo_sphericalEqual(p0,p1)){listener.lineStart();for(var i=0;i<n;++i)listener.point((p0=segment[i])[0],p0[1]);listener.lineEnd();return}var a=new d3_geo_clipPolygonIntersection(p0,segment,null,true),b=new d3_geo_clipPolygonIntersection(p0,null,a,false);a.o=b;subject.push(a);clip.push(b);a=new d3_geo_clipPolygonIntersection(p1,segment,null,false);b=new d3_geo_clipPolygonIntersection(p1,null,a,true);a.o=b;subject.push(a);clip.push(b)});clip.sort(compare);d3_geo_clipPolygonLinkCircular(subject);d3_geo_clipPolygonLinkCircular(clip);if(!subject.length)return;for(var i=0,entry=clipStartInside,n=clip.length;i<n;++i){clip[i].e=entry=!entry}var start=subject[0],points,point;while(1){var current=start,isSubject=true;while(current.v)if((current=current.n)===start)return;points=current.z;listener.lineStart();do{current.v=current.o.v=true;if(current.e){if(isSubject){for(var i=0,n=points.length;i<n;++i)listener.point((point=points[i])[0],point[1])}else{interpolate(current.x,current.n.x,1,listener)}current=current.n}else{if(isSubject){points=current.p.z;for(var i=points.length-1;i>=0;--i)listener.point((point=points[i])[0],point[1])}else{interpolate(current.x,current.p.x,-1,listener)}current=current.p}current=current.o;points=current.z;isSubject=!isSubject}while(!current.v);listener.lineEnd()}}function d3_geo_clipPolygonLinkCircular(array){if(!(n=array.length))return;var n,i=0,a=array[0],b;while(++i<n){a.n=b=array[i];b.p=a;a=b}a.n=b=array[0];b.p=a}function d3_geo_clipPolygonIntersection(point,points,other,entry){this.x=point;this.z=points;this.o=other;this.e=entry;this.v=false;this.n=this.p=null}function d3_geo_clip(pointVisible,clipLine,interpolate,clipStart){return function(rotate,listener){var line=clipLine(listener),rotatedClipStart=rotate.invert(clipStart[0],clipStart[1]);var clip={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){clip.point=pointRing;clip.lineStart=ringStart;clip.lineEnd=ringEnd;segments=[];polygon=[]},polygonEnd:function(){clip.point=point;clip.lineStart=lineStart;clip.lineEnd=lineEnd;segments=d3.merge(segments);var clipStartInside=d3_geo_pointInPolygon(rotatedClipStart,polygon);if(segments.length){if(!polygonStarted)listener.polygonStart(),polygonStarted=true;d3_geo_clipPolygon(segments,d3_geo_clipSort,clipStartInside,interpolate,listener)}else if(clipStartInside){if(!polygonStarted)listener.polygonStart(),polygonStarted=true;listener.lineStart();interpolate(null,null,1,listener);listener.lineEnd()}if(polygonStarted)listener.polygonEnd(),polygonStarted=false;segments=polygon=null},sphere:function(){listener.polygonStart();listener.lineStart();interpolate(null,null,1,listener);listener.lineEnd();listener.polygonEnd()}};function point(λ,φ){var point=rotate(λ,φ);if(pointVisible(λ=point[0],φ=point[1]))listener.point(λ,φ)}function pointLine(λ,φ){var point=rotate(λ,φ);line.point(point[0],point[1])}function lineStart(){clip.point=pointLine;line.lineStart()}function lineEnd(){clip.point=point;line.lineEnd()}var segments;var buffer=d3_geo_clipBufferListener(),ringListener=clipLine(buffer),polygonStarted=false,polygon,ring;function pointRing(λ,φ){ring.push([λ,φ]);var point=rotate(λ,φ);ringListener.point(point[0],point[1])}function ringStart(){ringListener.lineStart();ring=[]}function ringEnd(){pointRing(ring[0][0],ring[0][1]);ringListener.lineEnd();var clean=ringListener.clean(),ringSegments=buffer.buffer(),segment,n=ringSegments.length;ring.pop();polygon.push(ring);ring=null;if(!n)return;if(clean&1){segment=ringSegments[0];var n=segment.length-1,i=-1,point;if(n>0){if(!polygonStarted)listener.polygonStart(),polygonStarted=true;listener.lineStart();while(++i<n)listener.point((point=segment[i])[0],point[1]);listener.lineEnd()}return}if(n>1&&clean&2)ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));segments.push(ringSegments.filter(d3_geo_clipSegmentLength1))}return clip}}function d3_geo_clipSegmentLength1(segment){return segment.length>1}function d3_geo_clipBufferListener(){var lines=[],line;return{lineStart:function(){lines.push(line=[])},point:function(λ,φ){line.push([λ,φ])},lineEnd:d3_noop,buffer:function(){var buffer=lines;lines=[];line=null;return buffer},rejoin:function(){if(lines.length>1)lines.push(lines.pop().concat(lines.shift()))}}}function d3_geo_clipSort(a,b){return((a=a.x)[0]<0?a[1]-halfπ-ε:halfπ-a[1])-((b=b.x)[0]<0?b[1]-halfπ-ε:halfπ-b[1])}var d3_geo_clipAntimeridian=d3_geo_clip(d3_true,d3_geo_clipAntimeridianLine,d3_geo_clipAntimeridianInterpolate,[-π,-π/2]);function d3_geo_clipAntimeridianLine(listener){var λ0=NaN,φ0=NaN,sλ0=NaN,clean;return{lineStart:function(){listener.lineStart();clean=1},point:function(λ1,φ1){var sλ1=λ1>0?π:-π,=abs(λ1-λ0);if(abs(-π)<ε){listener.point(λ0,φ0=(φ0+φ1)/2>0?halfπ:-halfπ);listener.point(sλ0,φ0);listener.lineEnd();listener.lineStart();listener.point(sλ1,φ0);listener.point(λ1,φ0);clean=0}else if(sλ0!==sλ1&&>=π){if(abs(λ0-sλ0)<ε)λ0-=sλ0*ε;if(abs(λ1-sλ1)<ε)λ1-=sλ1*ε;φ0=d3_geo_clipAntimeridianIntersect(λ0,φ0,λ1,φ1);listener.point(sλ0,φ0);listener.lineEnd();listener.lineStart();listener.point(sλ1,φ0);clean=0}listener.point(λ0=λ1,φ0=φ1);sλ0=sλ1},lineEnd:function(){listener.lineEnd();λ0=φ0=NaN},clean:function(){return 2-clean}}}function d3_geo_clipAntimeridianIntersect(λ0,φ0,λ1,φ1){var cosφ0,cosφ1,sinλ0_λ1=Math.sin(λ0-λ1);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}function d3_geo_clipAntimeridianInterpolate(from,to,direction,listener){var φ;if(from==null){φ=direction*halfπ;listener.point(-π,φ);listener.point(0,φ);listener.point(π,φ);listener.point(π,0);listener.point(π,-φ);listener.point(0,-φ);listener.point(-π,-φ);listener.point(-π,0);listener.point(-π,φ)}else if(abs(from[0]-to[0])>ε){var s=from[0]<to[0]?π:-π;φ=direction*s/2;listener.point(-s,φ);listener.point(0,φ);listener.point(s,φ)}else{listener.point(to[0],to[1])}}function d3_geo_pointInPolygon(point,polygon){var meridian=point[0],parallel=point[1],meridianNormal=[Math.sin(meridian),-Math.cos(meridian),0],polarAngle=0,winding=0;d3_geo_areaRingSum.reset();for(var i=0,n=polygon.length;i<n;++i){var ring=polygon[i],m=ring.length;if(!m)continue;var point0=ring[0],λ0=point0[0],φ0=point0[1]/2+π/4,sinφ0=Math.sin(φ0),cosφ0=Math.cos(φ0),j=1;while(true){if(j===m)j=0;point=ring[j];var λ=point[0],φ=point[1]/2+π/4,sinφ=Math.sin(φ),cosφ=Math.cos(φ),=λ-λ0,sdλ=>=0?1:-1,adλ=sdλ*,antimeridian=adλ>π,k=sinφ0*sinφ;d3_geo_areaRingSum.add(Math.atan2(k*sdλ*Math.sin(adλ),cosφ0*cosφ+k*Math.cos(adλ)));polarAngle+=antimeridian?+sdλ*τ:;if(antimeridian^λ0>=meridian^λ>=meridian){var arc=d3_geo_cartesianCross(d3_geo_cartesian(point0),d3_geo_cartesian(point));d3_geo_cartesianNormalize(arc);var intersection=d3_geo_cartesianCross(meridianNormal,arc);d3_geo_cartesianNormalize(intersection);var φarc=(antimeridian^>=0?-1:1)*d3_asin(intersection[2]);if(parallel>φarc||parallel===φarc&&(arc[0]||arc[1])){winding+=antimeridian^>=0?1:-1}}if(!j++)break;λ0=λ,sinφ0=sinφ,cosφ0=cosφ,point0=point}}return(polarAngle<-ε||polarAngle<ε&&d3_geo_areaRingSum<-ε)^winding&1}function d3_geo_clipCircle(radius){var cr=Math.cos(radius),smallRadius=cr>0,notHemisphere=abs(cr)>ε,interpolate=d3_geo_circleInterpolate(radius,6*d3_radians);return d3_geo_clip(visible,clipLine,interpolate,smallRadius?[0,-radius]:[-π,radius-π]);function visible(λ,φ){return Math.cos(λ)*Math.cos(φ)>cr}function clipLine(listener){var point0,c0,v0,v00,clean;return{lineStart:function(){v00=v0=false;clean=1},point:function(λ,φ){var point1=[λ,φ],point2,v=visible(λ,φ),c=smallRadius?v?0:code(λ,φ):v?code(λ+(λ<0?π:-π),φ):0;if(!point0&&(v00=v0=v))listener.lineStart();if(v!==v0){point2=intersect(point0,point1);if(d3_geo_sphericalEqual(point0,point2)||d3_geo_sphericalEqual(point1,point2)){point1[0]+=ε;point1[1]+=ε;v=visible(point1[0],point1[1])}}if(v!==v0){clean=0;if(v){listener.lineStart();point2=intersect(point1,point0);listener.point(point2[0],point2[1])}else{point2=intersect(point0,point1);listener.point(point2[0],point2[1]);listener.lineEnd()}point0=point2}else if(notHemisphere&&point0&&smallRadius^v){var t;if(!(c&c0)&&(t=intersect(point1,point0,true))){clean=0;if(smallRadius){listener.lineStart();listener.point(t[0][0],t[0][1]);listener.point(t[1][0],t[1][1]);listener.lineEnd()}else{listener.point(t[1][0],t[1][1]);listener.lineEnd();listener.lineStart();listener.point(t[0][0],t[0][1])}}}if(v&&(!point0||!d3_geo_sphericalEqual(point0,point1))){listener.point(point1[0],point1[1])}point0=point1,v0=v,c0=c},lineEnd:function(){if(v0)listener.lineEnd();point0=null},clean:function(){return clean|(v00&&v0)<<1}}}function intersect(a,b,two){var pa=d3_geo_cartesian(a),pb=d3_geo_cartesian(b);var n1=[1,0,0],n2=d3_geo_cartesianCross(pa,pb),n2n2=d3_geo_cartesianDot(n2,n2),n1n2=n2[0],determinant=n2n2-n1n2*n1n2;if(!determinant)return!two&&a;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);d3_geo_cartesianAdd(A,B);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);if(t2<0)return;var t=Math.sqrt(t2),q=d3_geo_cartesianScale(u,(-w-t)/uu);d3_geo_cartesianAdd(q,A);q=d3_geo_spherical(q);if(!two)return q;var λ0=a[0],λ1=b[0],φ0=a[1],φ1=b[1],z;if(λ1<λ0)z=λ0,λ0=λ1,λ1=z;var δλ=λ1-λ0,polar=abs(δλ-π)<ε,meridian=polar||δλ<ε;if(!polar&&φ1<φ0)z=φ0,φ0=φ1,φ1=z;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)){var q1=d3_geo_cartesianScale(u,(-w+t)/uu);d3_geo_cartesianAdd(q1,A);return[q,d3_geo_spherical(q1)]}}function code(λ,φ){var r=smallRadius?radius:π-radius,code=0;if(λ<-r)code|=1;else if(λ>r)code|=2;if(φ<-r)code|=4;else if(φ>r)code|=8;return code}}function d3_geom_clipLine(x0,y0,x1,y1){return function(line){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;r=x0-ax;if(!dx&&r>0)return;r/=dx;if(dx<0){if(r<t0)return;if(r<t1)t1=r}else if(dx>0){if(r>t1)return;if(r>t0)t0=r}r=x1-ax;if(!dx&&r<0)return;r/=dx;if(dx<0){if(r>t1)return;if(r>t0)t0=r}else if(dx>0){if(r<t0)return;if(r<t1)t1=r}r=y0-ay;if(!dy&&r>0)return;r/=dy;if(dy<0){if(r<t0)return;if(r<t1)t1=r}else if(dy>0){if(r>t1)return;if(r>t0)t0=r}r=y1-ay;if(!dy&&r<0)return;r/=dy;if(dy<0){if(r>t1)return;if(r>t0)t0=r}else if(dy>0){if(r<t0)return;if(r<t1)t1=r}if(t0>0)line.a={x:ax+t0*dx,y:ay+t0*dy};if(t1<1)line.b={x:ax+t1*dx,y:ay+t1*dy};return line}}var d3_geo_clipExtentMAX=1e9;d3.geo.clipExtent=function(){var x0,y0,x1,y1,stream,clip,clipExtent={stream:function(output){if(stream)stream.valid=false;stream=clip(output);stream.valid=true;return stream},extent:function(_){if(!arguments.length)return[[x0,y0],[x1,y1]];clip=d3_geo_clipExtent(x0=+_[0][0],y0=+_[0][1],x1=+_[1][0],y1=+_[1][1]);if(stream)stream.valid=false,stream=null;return clipExtent}};return clipExtent.extent([[0,0],[960,500]])};function d3_geo_clipExtent(x0,y0,x1,y1){return function(listener){var listener_=listener,bufferListener=d3_geo_clipBufferListener(),clipLine=d3_geom_clipLine(x0,y0,x1,y1),segments,polygon,ring;var clip={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){listener=bufferListener;segments=[];polygon=[];clean=true},polygonEnd:function(){listener=listener_;segments=d3.merge(segments);var clipStartInside=insidePolygon([x0,y1]),inside=clean&&clipStartInside,visible=segments.length;if(inside||visible){listener.polygonStart();if(inside){listener.lineStart();interpolate(null,null,1,listener);listener.lineEnd()}if(visible){d3_geo_clipPolygon(segments,compare,clipStartInside,interpolate,listener)}listener.polygonEnd()}segments=polygon=ring=null}};function insidePolygon(p){var wn=0,n=polygon.length,y=p[1];for(var i=0;i<n;++i){for(var j=1,v=polygon[i],m=v.length,a=v[0],b;j<m;++j){b=v[j];if(a[1]<=y){if(b[1]>y&&d3_cross2d(a,b,p)>0)++wn}else{if(b[1]<=y&&d3_cross2d(a,b,p)<0)--wn}a=b}}return wn!==0}function interpolate(from,to,direction,listener){var a=0,a1=0;if(from==null||(a=corner(from,direction))!==(a1=corner(to,direction))||comparePoints(from,to)<0^direction>0){do{listener.point(a===0||a===3?x0:x1,a>1?y1:y0)}while((a=(a+direction+4)%4)!==a1)}else{listener.point(to[0],to[1])}}function pointVisible(x,y){return x0<=x&&x<=x1&&y0<=y&&y<=y1}function point(x,y){if(pointVisible(x,y))listener.point(x,y)}var x__,y__,v__,x_,y_,v_,first,clean;function lineStart(){clip.point=linePoint;if(polygon)polygon.push(ring=[]);first=true;v_=false;x_=y_=NaN}function lineEnd(){if(segments){linePoint(x__,y__);if(v__&&v_)bufferListener.rejoin();segments.push(bufferListener.buffer())}clip.point=point;if(v_)listener.lineEnd()}function linePoint(x,y){x=Math.max(-d3_geo_clipExtentMAX,Math.min(d3_geo_clipExtentMAX,x));y=Math.max(-d3_geo_clipExtentMAX,Math.min(d3_geo_clipExtentMAX,y));var v=pointVisible(x,y);if(polygon)ring.push([x,y]);if(first){x__=x,y__=y,v__=v;first=false;if(v){listener.lineStart();listener.point(x,y)}}else{if(v&&v_)listener.point(x,y);else{var l={a:{x:x_,y:y_},b:{x:x,y:y}};if(clipLine(l)){if(!v_){listener.lineStart();listener.point(l.a.x,l.a.y)}listener.point(l.b.x,l.b.y);if(!v)listener.lineEnd();clean=false}else if(v){listener.lineStart();listener.point(x,y);clean=false}}}x_=x,y_=y,v_=v}return clip};function corner(p,direction){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}function compare(a,b){return comparePoints(a.x,b.x)}function comparePoints(a,b){var ca=corner(a,1),cb=corner(b,1);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]}}function d3_geo_conic(projectAt){var φ0=0,φ1=π/3,m=d3_geo_projectionMutator(projectAt),p=m(φ0,φ1);p.parallels=function(_){if(!arguments.length)return[φ0/π*180,φ1/π*180];return m(φ0=_[0]*π/180,φ1=_[1]*π/180)};return p}function d3_geo_conicEqualArea(φ0,φ1){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;function forward(λ,φ){var ρ=Math.sqrt(C-2*n*Math.sin(φ))/n;return[ρ*Math.sin(λ*=n),ρ0-ρ*Math.cos(λ)]}forward.invert=function(x,y){var ρ0_y=ρ0-y;return[Math.atan2(x,ρ0_y)/n,d3_asin((C-(x*x+ρ0_y*ρ0_y)*n*n)/(2*n))]};return forward}(d3.geo.conicEqualArea=function(){return d3_geo_conic(d3_geo_conicEqualArea)}).raw=d3_geo_conicEqualArea;d3.geo.albers=function(){return d3.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)};d3.geo.albersUsa=function(){var lower48=d3.geo.albers();var alaska=d3.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]);var hawaii=d3.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]);var point,pointStream={point:function(x,y){point=[x,y]}},lower48Point,alaskaPoint,hawaiiPoint;function albersUsa(coordinates){var x=coordinates[0],y=coordinates[1];point=null;(lower48Point(x,y),point)||(alaskaPoint(x,y),point)||hawaiiPoint(x,y);return point}albersUsa.invert=function(coordinates){var k=lower48.scale(),t=lower48.translate(),x=(coordinates[0]-t[0])/k,y=(coordinates[1]-t[1])/k;return(y>=.12&&y<.234&&x>=-.425&&x<-.214?alaska:y>=.166&&y<.234&&x>=-.214&&x<-.115?hawaii:lower48).invert(coordinates)};albersUsa.stream=function(stream){var lower48Stream=lower48.stream(stream),alaskaStream=alaska.stream(stream),hawaiiStream=hawaii.stream(stream);return{point:function(x,y){lower48Stream.point(x,y);alaskaStream.point(x,y);hawaiiStream.point(x,y)},sphere:function(){lower48Stream.sphere();alaskaStream.sphere();hawaiiStream.sphere()},lineStart:function(){lower48Stream.lineStart();alaskaStream.lineStart();hawaiiStream.lineStart()},lineEnd:function(){lower48Stream.lineEnd();alaskaStream.lineEnd();hawaiiStream.lineEnd()},polygonStart:function(){lower48Stream.polygonStart();alaskaStream.polygonStart();hawaiiStream.polygonStart()},polygonEnd:function(){lower48Stream.polygonEnd();alaskaStream.polygonEnd();hawaiiStream.polygonEnd()}}};albersUsa.precision=function(_){if(!arguments.length)return lower48.precision();lower48.precision(_);alaska.precision(_);hawaii.precision(_);return albersUsa};albersUsa.scale=function(_){if(!arguments.length)return lower48.scale();lower48.scale(_);alaska.scale(_*.35);hawaii.scale(_);return albersUsa.translate(lower48.translate())};albersUsa.translate=function(_){if(!arguments.length)return lower48.translate();var k=lower48.scale(),x=+_[0],y=+_[1];lower48Point=lower48.translate(_).clipExtent([[x-.455*k,y-.238*k],[x+.455*k,y+.238*k]]).stream(pointStream).point;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;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;return albersUsa};return albersUsa.scale(1070)};var d3_geo_pathAreaSum,d3_geo_pathAreaPolygon,d3_geo_pathArea={point:d3_noop,lineStart:d3_noop,lineEnd:d3_noop,polygonStart:function(){d3_geo_pathAreaPolygon=0;d3_geo_pathArea.lineStart=d3_geo_pathAreaRingStart},polygonEnd:function(){d3_geo_pathArea.lineStart=d3_geo_pathArea.lineEnd=d3_geo_pathArea.point=d3_noop;d3_geo_pathAreaSum+=abs(d3_geo_pathAreaPolygon/2)}};function d3_geo_pathAreaRingStart(){var x00,y00,x0,y0;d3_geo_pathArea.point=function(x,y){d3_geo_pathArea.point=nextPoint;x00=x0=x,y00=y0=y};function nextPoint(x,y){d3_geo_pathAreaPolygon+=y0*x-x0*y;x0=x,y0=y}d3_geo_pathArea.lineEnd=function(){nextPoint(x00,y00)}}var d3_geo_pathBoundsX0,d3_geo_pathBoundsY0,d3_geo_pathBoundsX1,d3_geo_pathBoundsY1;var d3_geo_pathBounds={point:d3_geo_pathBoundsPoint,lineStart:d3_noop,lineEnd:d3_noop,polygonStart:d3_noop,polygonEnd:d3_noop};function d3_geo_pathBoundsPoint(x,y){if(x<d3_geo_pathBoundsX0)d3_geo_pathBoundsX0=x;if(x>d3_geo_pathBoundsX1)d3_geo_pathBoundsX1=x;if(y<d3_geo_pathBoundsY0)d3_geo_pathBoundsY0=y;if(y>d3_geo_pathBoundsY1)d3_geo_pathBoundsY1=y}function d3_geo_pathBuffer(){var pointCircle=d3_geo_pathBufferCircle(4.5),buffer=[];var stream={point:point,lineStart:function(){stream.point=pointLineStart},lineEnd:lineEnd,polygonStart:function(){stream.lineEnd=lineEndPolygon},polygonEnd:function(){stream.lineEnd=lineEnd;stream.point=point},pointRadius:function(_){pointCircle=d3_geo_pathBufferCircle(_);return stream},result:function(){if(buffer.length){var result=buffer.join("");buffer=[];return result}}};function point(x,y){buffer.push("M",x,",",y,pointCircle)}function pointLineStart(x,y){buffer.push("M",x,",",y);stream.point=pointLine}function pointLine(x,y){buffer.push("L",x,",",y)}function lineEnd(){stream.point=point}function lineEndPolygon(){buffer.push("Z")}return stream}function d3_geo_pathBufferCircle(radius){return"m0,"+radius+"a"+radius+","+radius+" 0 1,1 0,"+-2*radius+"a"+radius+","+radius+" 0 1,1 0,"+2*radius+"z"}var d3_geo_pathCentroid={point:d3_geo_pathCentroidPoint,lineStart:d3_geo_pathCentroidLineStart,lineEnd:d3_geo_pathCentroidLineEnd,polygonStart:function(){d3_geo_pathCentroid.lineStart=d3_geo_pathCentroidRingStart},polygonEnd:function(){d3_geo_pathCentroid.point=d3_geo_pathCentroidPoint;d3_geo_pathCentroid.lineStart=d3_geo_pathCentroidLineStart;d3_geo_pathCentroid.lineEnd=d3_geo_pathCentroidLineEnd}};function d3_geo_pathCentroidPoint(x,y){d3_geo_centroidX0+=x;d3_geo_centroidY0+=y;++d3_geo_centroidZ0}function d3_geo_pathCentroidLineStart(){var x0,y0;d3_geo_pathCentroid.point=function(x,y){d3_geo_pathCentroid.point=nextPoint;d3_geo_pathCentroidPoint(x0=x,y0=y)};function nextPoint(x,y){var dx=x-x0,dy=y-y0,z=Math.sqrt(dx*dx+dy*dy);d3_geo_centroidX1+=z*(x0+x)/2;d3_geo_centroidY1+=z*(y0+y)/2;d3_geo_centroidZ1+=z;d3_geo_pathCentroidPoint(x0=x,y0=y)}}function d3_geo_pathCentroidLineEnd(){d3_geo_pathCentroid.point=d3_geo_pathCentroidPoint}function d3_geo_pathCentroidRingStart(){var x00,y00,x0,y0;d3_geo_pathCentroid.point=function(x,y){d3_geo_pathCentroid.point=nextPoint;d3_geo_pathCentroidPoint(x00=x0=x,y00=y0=y)};function nextPoint(x,y){var dx=x-x0,dy=y-y0,z=Math.sqrt(dx*dx+dy*dy);d3_geo_centroidX1+=z*(x0+x)/2;d3_geo_centroidY1+=z*(y0+y)/2;d3_geo_centroidZ1+=z;z=y0*x-x0*y;d3_geo_centroidX2+=z*(x0+x);d3_geo_centroidY2+=z*(y0+y);d3_geo_centroidZ2+=z*3;d3_geo_pathCentroidPoint(x0=x,y0=y)}d3_geo_pathCentroid.lineEnd=function(){nextPoint(x00,y00)}}function d3_geo_pathContext(context){var pointRadius=4.5;var stream={point:point,lineStart:function(){stream.point=pointLineStart},lineEnd:lineEnd,polygonStart:function(){stream.lineEnd=lineEndPolygon},polygonEnd:function(){stream.lineEnd=lineEnd;stream.point=point},pointRadius:function(_){pointRadius=_;return stream},result:d3_noop};function point(x,y){context.moveTo(x+pointRadius,y);context.arc(x,y,pointRadius,0,τ)}function pointLineStart(x,y){context.moveTo(x,y);stream.point=pointLine}function pointLine(x,y){context.lineTo(x,y)}function lineEnd(){stream.point=point}function lineEndPolygon(){context.closePath()}return stream}function d3_geo_resample(project){var δ2=.5,cosMinDistance=Math.cos(30*d3_radians),maxDepth=16;function resample(stream){return(maxDepth?resampleRecursive:resampleNone)(stream)}function resampleNone(stream){return d3_geo_transformPoint(stream,function(x,y){x=project(x,y);stream.point(x[0],x[1])})}function resampleRecursive(stream){var λ00,φ00,x00,y00,a00,b00,c00,λ0,x0,y0,a0,b0,c0;var resample={point:point,lineStart:lineStart,lineEnd:lineEnd,polygonStart:function(){stream.polygonStart();resample.lineStart=ringStart},polygonEnd:function(){stream.polygonEnd();resample.lineStart=lineStart}};function point(x,y){x=project(x,y);stream.point(x[0],x[1])}function lineStart(){x0=NaN;resample.point=linePoint;stream.lineStart()}function linePoint(λ,φ){var c=d3_geo_cartesian([λ,φ]),p=project(λ,φ);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);stream.point(x0,y0)}function lineEnd(){resample.point=point;stream.lineEnd()}function ringStart(){lineStart();resample.point=ringPoint;resample.lineEnd=ringEnd}function ringPoint(λ,φ){linePoint(λ00=λ,φ00=φ),x00=x0,y00=y0,a00=a0,b00=b0,c00=c0;resample.point=linePoint}function ringEnd(){resampleLineTo(x0,y0,λ0,a0,b0,c0,x00,y00,λ00,a00,b00,c00,maxDepth,stream);resample.lineEnd=lineEnd;lineEnd()}return resample}function resampleLineTo(x0,y0,λ0,a0,b0,c0,x1,y1,λ1,a1,b1,c1,depth,stream){var dx=x1-x0,dy=y1-y0,d2=dx*dx+dy*dy;if(d2>4*δ2&&depth--){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;if(dz*dz/d2>δ2||abs((dx*dx2+dy*dy2)/d2-.5)>.3||a0*a1+b0*b1+c0*c1<cosMinDistance){resampleLineTo(x0,y0,λ0,a0,b0,c0,x2,y2,λ2,a/=m,b/=m,c,depth,stream);stream.point(x2,y2);resampleLineTo(x2,y2,λ2,a,b,c,x1,y1,λ1,a1,b1,c1,depth,stream)}}}resample.precision=function(_){if(!arguments.length)return Math.sqrt(δ2);maxDepth=(δ2=_*_)>0&&16;return resample};return resample}d3.geo.path=function(){var pointRadius=4.5,projection,context,projectStream,contextStream,cacheStream;function path(object){if(object){if(typeof pointRadius==="function")contextStream.pointRadius(+pointRadius.apply(this,arguments));if(!cacheStream||!cacheStream.valid)cacheStream=projectStream(contextStream);d3.geo.stream(object,cacheStream)}return contextStream.result()}path.area=function(object){d3_geo_pathAreaSum=0;d3.geo.stream(object,projectStream(d3_geo_pathArea));return d3_geo_pathAreaSum};path.centroid=function(object){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;d3.geo.stream(object,projectStream(d3_geo_pathCentroid));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]};path.bounds=function(object){d3_geo_pathBoundsX1=d3_geo_pathBoundsY1=-(d3_geo_pathBoundsX0=d3_geo_pathBoundsY0=Infinity);d3.geo.stream(object,projectStream(d3_geo_pathBounds));return[[d3_geo_pathBoundsX0,d3_geo_pathBoundsY0],[d3_geo_pathBoundsX1,d3_geo_pathBoundsY1]]};path.projection=function(_){if(!arguments.length)return projection;projectStream=(projection=_)?_.stream||d3_geo_pathProjectStream(_):d3_identity;return reset()};path.context=function(_){if(!arguments.length)return context;contextStream=(context=_)==null?new d3_geo_pathBuffer:new d3_geo_pathContext(_);if(typeof pointRadius!=="function")contextStream.pointRadius(pointRadius);return reset()};path.pointRadius=function(_){if(!arguments.length)return pointRadius;pointRadius=typeof _==="function"?_:(contextStream.pointRadius(+_),+_);return path};function reset(){cacheStream=null;return path}return path.projection(d3.geo.albersUsa()).context(null)};function d3_geo_pathProjectStream(project){var resample=d3_geo_resample(function(x,y){return project([x*d3_degrees,y*d3_degrees])});return function(stream){return d3_geo_projectionRadians(resample(stream))}}d3.geo.transform=function(methods){return{stream:function(stream){var transform=new d3_geo_transform(stream);for(var k in methods)transform[k]=methods[k];return transform}}};function d3_geo_transform(stream){this.stream=stream}d3_geo_transform.prototype={point:function(x,y){this.stream.point(x,y)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function d3_geo_transformPoint(stream,point){return{point:point,sphere:function(){stream.sphere()},lineStart:function(){stream.lineStart()},lineEnd:function(){stream.lineEnd()},polygonStart:function(){stream.polygonStart()},polygonEnd:function(){stream.polygonEnd()}}}d3.geo.projection=d3_geo_projection;d3.geo.projectionMutator=d3_geo_projectionMutator;function d3_geo_projection(project){return d3_geo_projectionMutator(function(){return project})()}function d3_geo_projectionMutator(projectAt){var project,rotate,projectRotate,projectResample=d3_geo_resample(function(x,y){x=project(x,y);return[x[0]*k+δx,δy-x[1]*k]}),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;function projection(point){point=projectRotate(point[0]*d3_radians,point[1]*d3_radians);return[point[0]*k+δx,δy-point[1]*k]}function invert(point){point=projectRotate.invert((point[0]-δx)/k,(δy-point[1])/k);return point&&[point[0]*d3_degrees,point[1]*d3_degrees]}projection.stream=function(output){if(stream)stream.valid=false;stream=d3_geo_projectionRadians(preclip(rotate,projectResample(postclip(output))));stream.valid=true;return stream};projection.clipAngle=function(_){if(!arguments.length)return clipAngle;preclip=_==null?(clipAngle=_,d3_geo_clipAntimeridian):d3_geo_clipCircle((clipAngle=+_)*d3_radians);return invalidate()};projection.clipExtent=function(_){if(!arguments.length)return clipExtent;clipExtent=_;postclip=_?d3_geo_clipExtent(_[0][0],_[0][1],_[1][0],_[1][1]):d3_identity;return invalidate()};projection.scale=function(_){if(!arguments.length)return k;k=+_;return reset()};projection.translate=function(_){if(!arguments.length)return[x,y];x=+_[0];y=+_[1];return reset()};projection.center=function(_){if(!arguments.length)return[λ*d3_degrees,φ*d3_degrees];λ=_[0]%360*d3_radians;φ=_[1]%360*d3_radians;return reset()};projection.rotate=function(_){if(!arguments.length)return[δλ*d3_degrees,δφ*d3_degrees,δγ*d3_degrees];δλ=_[0]%360*d3_radians;δφ=_[1]%360*d3_radians;δγ=_.length>2?_[2]%360*d3_radians:0;return reset()};d3.rebind(projection,projectResample,"precision");function reset(){projectRotate=d3_geo_compose(rotate=d3_geo_rotation(δλ,δφ,δγ),project);var center=project(λ,φ);δx=x-center[0]*k;δy=y+center[1]*k;return invalidate()}function invalidate(){if(stream)stream.valid=false,stream=null;return projection}return function(){project=projectAt.apply(this,arguments);projection.invert=project.invert&&invert;return reset()}}function d3_geo_projectionRadians(stream){return d3_geo_transformPoint(stream,function(x,y){stream.point(x*d3_radians,y*d3_radians)})}function d3_geo_equirectangular(λ,φ){return[λ,φ]}(d3.geo.equirectangular=function(){return d3_geo_projection(d3_geo_equirectangular)}).raw=d3_geo_equirectangular.invert=d3_geo_equirectangular;d3.geo.rotation=function(rotate){rotate=d3_geo_rotation(rotate[0]%360*d3_radians,rotate[1]*d3_radians,rotate.length>2?rotate[2]*d3_radians:0);function forward(coordinates){coordinates=rotate(coordinates[0]*d3_radians,coordinates[1]*d3_radians);return coordinates[0]*=d3_degrees,coordinates[1]*=d3_degrees,coordinates}forward.invert=function(coordinates){coordinates=rotate.invert(coordinates[0]*d3_radians,coordinates[1]*d3_radians);return coordinates[0]*=d3_degrees,coordinates[1]*=d3_degrees,coordinates};return forward};function d3_geo_identityRotation(λ,φ){return[λ>π?λ-τ:λ<-π?λ+τ:λ,φ]}d3_geo_identityRotation.invert=d3_geo_equirectangular;function d3_geo_rotation(δλ,δφ,δγ){return δλ?δφ||δγ?d3_geo_compose(d3_geo_rotationλ(δλ),d3_geo_rotationφγ(δφ,δγ)):d3_geo_rotationλ(δλ):δφ||δγ?d3_geo_rotationφγ(δφ,δγ):d3_geo_identityRotation}function d3_geo_forwardRotationλ(δλ){return function(λ,φ){return λ+=δλ,[λ>π?λ-τ:λ<-π?λ+τ:λ,φ]}}function d3_geo_rotationλ(δλ){var rotation=d3_geo_forwardRotationλ(δλ);rotation.invert=d3_geo_forwardRotationλ(-δλ);return rotation}function d3_geo_rotationφγ(δφ,δγ){var cosδφ=Math.cos(δφ),sinδφ=Math.sin(δφ),cosδγ=Math.cos(δγ),sinδγ=Math.sin(δγ);function rotation(λ,φ){var cosφ=Math.cos(φ),x=Math.cos(λ)*cosφ,y=Math.sin(λ)*cosφ,z=Math.sin(φ),k=z*cosδφ+x*sinδφ;return[Math.atan2(y*cosδγ-k*sinδγ,x*cosδφ-z*sinδφ),d3_asin(k*cosδγ+y*sinδγ)]}rotation.invert=function(λ,φ){var cosφ=Math.cos(φ),x=Math.cos(λ)*cosφ,y=Math.sin(λ)*cosφ,z=Math.sin(φ),k=z*cosδγ-y*sinδγ;return[Math.atan2(y*cosδγ+z*sinδγ,x*cosδφ+k*sinδφ),d3_asin(k*cosδφ-x*sinδφ)]};return rotation}d3.geo.circle=function(){var origin=[0,0],angle,precision=6,interpolate;function circle(){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=[];interpolate(null,null,1,{point:function(x,y){ring.push(x=rotate(x,y));x[0]*=d3_degrees,x[1]*=d3_degrees}});return{type:"Polygon",coordinates:[ring]}}circle.origin=function(x){if(!arguments.length)return origin;origin=x;return circle};circle.angle=function(x){if(!arguments.length)return angle;interpolate=d3_geo_circleInterpolate((angle=+x)*d3_radians,precision*d3_radians);return circle};circle.precision=function(_){if(!arguments.length)return precision;interpolate=d3_geo_circleInterpolate(angle*d3_radians,(precision=+_)*d3_radians);return circle};return circle.angle(90)};function d3_geo_circleInterpolate(radius,precision){var cr=Math.cos(radius),sr=Math.sin(radius);return function(from,to,direction,listener){var step=direction*precision;if(from!=null){from=d3_geo_circleAngle(cr,from);to=d3_geo_circleAngle(cr,to);if(direction>0?from<to:from>to)from+=direction*τ}else{from=radius+direction*τ;to=radius-.5*step}for(var point,t=from;direction>0?t>to:t<to;t-=step){listener.point((point=d3_geo_spherical([cr,-sr*Math.cos(t),-sr*Math.sin(t)]))[0],point[1])}}}function d3_geo_circleAngle(cr,point){var a=d3_geo_cartesian(point);a[0]-=cr;d3_geo_cartesianNormalize(a);var angle=d3_acos(-a[1]);return((-a[2]<0?-angle:angle)+2*Math.PI-ε)%(2*Math.PI)}d3.geo.distance=function(a,b){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;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Δλ)};d3.geo.graticule=function(){var x1,x0,X1,X0,y1,y0,Y1,Y0,dx=10,dy=dx,DX=90,DY=360,x,y,X,Y,precision=2.5;function graticule(){return{type:"MultiLineString",coordinates:lines()}}function lines(){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){return abs(x%DX)>ε}).map(x)).concat(d3.range(Math.ceil(y0/dy)*dy,y1,dy).filter(function(y){return abs(y%DY)>ε}).map(y))}graticule.lines=function(){return lines().map(function(coordinates){return{type:"LineString",coordinates:coordinates}})};graticule.outline=function(){return{type:"Polygon",coordinates:[X(X0).concat(Y(Y1).slice(1),X(X1).reverse().slice(1),Y(Y0).reverse().slice(1))]}};graticule.extent=function(_){if(!arguments.length)return graticule.minorExtent();return graticule.majorExtent(_).minorExtent(_)};graticule.majorExtent=function(_){if(!arguments.length)return[[X0,Y0],[X1,Y1]];X0=+_[0][0],X1=+_[1][0];Y0=+_[0][1],Y1=+_[1][1];if(X0>X1)_=X0,X0=X1,X1=_;if(Y0>Y1)_=Y0,Y0=Y1,Y1=_;return graticule.precision(precision)};graticule.minorExtent=function(_){if(!arguments.length)return[[x0,y0],[x1,y1]];x0=+_[0][0],x1=+_[1][0];y0=+_[0][1],y1=+_[1][1];if(x0>x1)_=x0,x0=x1,x1=_;if(y0>y1)_=y0,y0=y1,y1=_;return graticule.precision(precision)};graticule.step=function(_){if(!arguments.length)return graticule.minorStep();return graticule.majorStep(_).minorStep(_)};graticule.majorStep=function(_){if(!arguments.length)return[DX,DY];DX=+_[0],DY=+_[1];return graticule};graticule.minorStep=function(_){if(!arguments.length)return[dx,dy];dx=+_[0],dy=+_[1];return graticule};graticule.precision=function(_){if(!arguments.length)return precision;precision=+_;x=d3_geo_graticuleX(y0,y1,90);y=d3_geo_graticuleY(x0,x1,precision);X=d3_geo_graticuleX(Y0,Y1,90);Y=d3_geo_graticuleY(X0,X1,precision);return graticule};return graticule.majorExtent([[-180,-90+ε],[180,90-ε]]).minorExtent([[-180,-80-ε],[180,80+ε]])};function d3_geo_graticuleX(y0,y1,dy){var y=d3.range(y0,y1-ε,dy).concat(y1);return function(x){return y.map(function(y){return[x,y]})}}function d3_geo_graticuleY(x0,x1,dx){var x=d3.range(x0,x1-ε,dx).concat(x1);return function(y){return x.map(function(x){return[x,y]})}}function d3_source(d){return d.source}function d3_target(d){return d.target}d3.geo.greatArc=function(){var source=d3_source,source_,target=d3_target,target_;function greatArc(){return{type:"LineString",coordinates:[source_||source.apply(this,arguments),target_||target.apply(this,arguments)]}}greatArc.distance=function(){return d3.geo.distance(source_||source.apply(this,arguments),target_||target.apply(this,arguments))};greatArc.source=function(_){if(!arguments.length)return source;source=_,source_=typeof _==="function"?null:_;return greatArc};greatArc.target=function(_){if(!arguments.length)return target;target=_,target_=typeof _==="function"?null:_;return greatArc};greatArc.precision=function(){return arguments.length?greatArc:0};return greatArc};d3.geo.interpolate=function(source,target){return d3_geo_interpolate(source[0]*d3_radians,source[1]*d3_radians,target[0]*d3_radians,target[1]*d3_radians)};function d3_geo_interpolate(x0,y0,x1,y1){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);var interpolate=d?function(t){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;return[Math.atan2(y,x)*d3_degrees,Math.atan2(z,Math.sqrt(x*x+y*y))*d3_degrees]}:function(){return[x0*d3_degrees,y0*d3_degrees]};interpolate.distance=d;return interpolate}d3.geo.length=function(object){d3_geo_lengthSum=0;d3.geo.stream(object,d3_geo_length);return d3_geo_lengthSum};var d3_geo_lengthSum;var d3_geo_length={sphere:d3_noop,point:d3_noop,lineStart:d3_geo_lengthLineStart,lineEnd:d3_noop,polygonStart:d3_noop,polygonEnd:d3_noop};function d3_geo_lengthLineStart(){var λ0,sinφ0,cosφ0;d3_geo_length.point=function(λ,φ){λ0=λ*d3_radians,sinφ0=Math.sin(φ*=d3_radians),cosφ0=Math.cos(φ);d3_geo_length.point=nextPoint};d3_geo_length.lineEnd=function(){d3_geo_length.point=d3_geo_length.lineEnd=d3_noop};function nextPoint(λ,φ){var sinφ=Math.sin(φ*=d3_radians),cosφ=Math.cos(φ),t=abs((λ*=d3_radians)-λ0),cosΔλ=Math.cos(t);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Δλ);λ0=λ,sinφ0=sinφ,cosφ0=cosφ}}function d3_geo_azimuthal(scale,angle){function azimuthal(λ,φ){var cosλ=Math.cos(λ),cosφ=Math.cos(φ),k=scale(cosλ*cosφ);return[k*cosφ*Math.sin(λ),k*Math.sin(φ)]}azimuthal.invert=function(x,y){var ρ=Math.sqrt(x*x+y*y),c=angle(ρ),sinc=Math.sin(c),cosc=Math.cos(c);return[Math.atan2(x*sinc,ρ*cosc),Math.asin(ρ&&y*sinc/ρ)]};return azimuthal}var d3_geo_azimuthalEqualArea=d3_geo_azimuthal(function(cosλcosφ){return Math.sqrt(2/(1+cosλcosφ))},function(ρ){return 2*Math.asin(ρ/2)});(d3.geo.azimuthalEqualArea=function(){return d3_geo_projection(d3_geo_azimuthalEqualArea)}).raw=d3_geo_azimuthalEqualArea;var d3_geo_azimuthalEquidistant=d3_geo_azimuthal(function(cosλcosφ){var c=Math.acos(cosλcosφ);return c&&c/Math.sin(c)},d3_identity);(d3.geo.azimuthalEquidistant=function(){return d3_geo_projection(d3_geo_azimuthalEquidistant)}).raw=d3_geo_azimuthalEquidistant;function d3_geo_conicConformal(φ0,φ1){var cosφ0=Math.cos(φ0),t=function(φ){return Math.tan(π/4+φ/2)},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;if(!n)return d3_geo_mercator;function forward(λ,φ){if(F>0){if(φ<-halfπ+ε)φ=-halfπ+ε}else{if(φ>halfπ-ε)φ=halfπ-ε}var ρ=F/Math.pow(t(φ),n);return[ρ*Math.sin(n*λ),F-ρ*Math.cos(n*λ)]}forward.invert=function(x,y){var ρ0_y=F-y,ρ=d3_sgn(n)*Math.sqrt(x*x+ρ0_y*ρ0_y);return[Math.atan2(x,ρ0_y)/n,2*Math.atan(Math.pow(F/ρ,1/n))-halfπ]};return forward}(d3.geo.conicConformal=function(){return d3_geo_conic(d3_geo_conicConformal)}).raw=d3_geo_conicConformal;function d3_geo_conicEquidistant(φ0,φ1){var cosφ0=Math.cos(φ0),n=φ0===φ1?Math.sin(φ0):(cosφ0-Math.cos(φ1))/(φ1-φ0),G=cosφ0/n+φ0;if(abs(n)<ε)return d3_geo_equirectangular;function forward(λ,φ){var ρ=G-φ;return[ρ*Math.sin(n*λ),G-ρ*Math.cos(n*λ)]}forward.invert=function(x,y){var ρ0_y=G-y;return[Math.atan2(x,ρ0_y)/n,G-d3_sgn(n)*Math.sqrt(x*x+ρ0_y*ρ0_y)]};return forward}(d3.geo.conicEquidistant=function(){return d3_geo_conic(d3_geo_conicEquidistant)}).raw=d3_geo_conicEquidistant;var d3_geo_gnomonic=d3_geo_azimuthal(function(cosλcosφ){return 1/cosλcosφ},Math.atan);(d3.geo.gnomonic=function(){return d3_geo_projection(d3_geo_gnomonic)}).raw=d3_geo_gnomonic;function d3_geo_mercator(λ,φ){return[λ,Math.log(Math.tan(π/4+φ/2))]}d3_geo_mercator.invert=function(x,y){return[x,2*Math.atan(Math.exp(y))-halfπ]};function d3_geo_mercatorProjection(project){var m=d3_geo_projection(project),scale=m.scale,translate=m.translate,clipExtent=m.clipExtent,clipAuto;m.scale=function(){var v=scale.apply(m,arguments);return v===m?clipAuto?m.clipExtent(null):m:v};m.translate=function(){var v=translate.apply(m,arguments);return v===m?clipAuto?m.clipExtent(null):m:v};m.clipExtent=function(_){var v=clipExtent.apply(m,arguments);if(v===m){if(clipAuto=_==null){var k=π*scale(),t=translate();clipExtent([[t[0]-k,t[1]-k],[t[0]+k,t[1]+k]])}}else if(clipAuto){v=null}return v};return m.clipExtent(null)}(d3.geo.mercator=function(){return d3_geo_mercatorProjection(d3_geo_mercator)}).raw=d3_geo_mercator;var d3_geo_orthographic=d3_geo_azimuthal(function(){return 1},Math.asin);(d3.geo.orthographic=function(){return d3_geo_projection(d3_geo_orthographic)}).raw=d3_geo_orthographic;var d3_geo_stereographic=d3_geo_azimuthal(function(cosλcosφ){return 1/(1+cosλcosφ)},function(ρ){return 2*Math.atan(ρ)});(d3.geo.stereographic=function(){return d3_geo_projection(d3_geo_stereographic)}).raw=d3_geo_stereographic;function d3_geo_transverseMercator(λ,φ){return[Math.log(Math.tan(π/4+φ/2)),-λ]}d3_geo_transverseMercator.invert=function(x,y){return[-y,2*Math.atan(Math.exp(x))-halfπ]};(d3.geo.transverseMercator=function(){var projection=d3_geo_mercatorProjection(d3_geo_transverseMercator),center=projection.center,rotate=projection.rotate;projection.center=function(_){return _?center([-_[1],_[0]]):(_=center(),[_[1],-_[0]])};projection.rotate=function(_){return _?rotate([_[0],_[1],_.length>2?_[2]+90:90]):(_=rotate(),[_[0],_[1],_[2]-90])};return rotate([0,0,90])}).raw=d3_geo_transverseMercator;d3.geom={};function d3_geom_pointX(d){return d[0]}function d3_geom_pointY(d){return d[1]}d3.geom.hull=function(vertices){var x=d3_geom_pointX,y=d3_geom_pointY;if(arguments.length)return hull(vertices);function hull(data){if(data.length<3)return[];var fx=d3_functor(x),fy=d3_functor(y),i,n=data.length,points=[],flippedPoints=[];for(i=0;i<n;i++){points.push([+fx.call(this,data[i],i),+fy.call(this,data[i],i),i])}points.sort(d3_geom_hullOrder);for(i=0;i<n;i++)flippedPoints.push([points[i][0],-points[i][1]]);var upper=d3_geom_hullUpper(points),lower=d3_geom_hullUpper(flippedPoints);var skipLeft=lower[0]===upper[0],skipRight=lower[lower.length-1]===upper[upper.length-1],polygon=[];for(i=upper.length-1;i>=0;--i)polygon.push(data[points[upper[i]][2]]);for(i=+skipLeft;i<lower.length-skipRight;++i)polygon.push(data[points[lower[i]][2]]);return polygon}hull.x=function(_){return arguments.length?(x=_,hull):x};hull.y=function(_){return arguments.length?(y=_,hull):y};return hull};function d3_geom_hullUpper(points){var n=points.length,hull=[0,1],hs=2;for(var i=2;i<n;i++){while(hs>1&&d3_cross2d(points[hull[hs-2]],points[hull[hs-1]],points[i])<=0)--hs;hull[hs++]=i}return hull.slice(0,hs)}function d3_geom_hullOrder(a,b){return a[0]-b[0]||a[1]-b[1]}d3.geom.polygon=function(coordinates){d3_subclass(coordinates,d3_geom_polygonPrototype);return coordinates};var d3_geom_polygonPrototype=d3.geom.polygon.prototype=[];d3_geom_polygonPrototype.area=function(){var i=-1,n=this.length,a,b=this[n-1],area=0;while(++i<n){a=b;b=this[i];area+=a[1]*b[0]-a[0]*b[1]}return area*.5};d3_geom_polygonPrototype.centroid=function(k){var i=-1,n=this.length,x=0,y=0,a,b=this[n-1],c;if(!arguments.length)k=-1/(6*this.area());while(++i<n){a=b;b=this[i];c=a[0]*b[1]-b[0]*a[1];x+=(a[0]+b[0])*c;y+=(a[1]+b[1])*c}return[x*k,y*k]};d3_geom_polygonPrototype.clip=function(subject){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;while(++i<n){input=subject.slice();subject.length=0;b=this[i];c=input[(m=input.length-closed)-1];j=-1;while(++j<m){d=input[j];if(d3_geom_polygonInside(d,a,b)){if(!d3_geom_polygonInside(c,a,b)){subject.push(d3_geom_polygonIntersect(c,d,a,b))}subject.push(d)}else if(d3_geom_polygonInside(c,a,b)){subject.push(d3_geom_polygonIntersect(c,d,a,b))}c=d}if(closed)subject.push(subject[0]);a=b}return subject};function d3_geom_polygonInside(p,a,b){return(b[0]-a[0])*(p[1]-a[1])<(b[1]-a[1])*(p[0]-a[0])}function d3_geom_polygonIntersect(c,d,a,b){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);return[x1+ua*x21,y1+ua*y21]}function d3_geom_polygonClosed(coordinates){var a=coordinates[0],b=coordinates[coordinates.length-1];return!(a[0]-b[0]||a[1]-b[1])}var d3_geom_voronoiEdges,d3_geom_voronoiCells,d3_geom_voronoiBeaches,d3_geom_voronoiBeachPool=[],d3_geom_voronoiFirstCircle,d3_geom_voronoiCircles,d3_geom_voronoiCirclePool=[];function d3_geom_voronoiBeach(){d3_geom_voronoiRedBlackNode(this);this.edge=this.site=this.circle=null}function d3_geom_voronoiCreateBeach(site){var beach=d3_geom_voronoiBeachPool.pop()||new d3_geom_voronoiBeach;beach.site=site;return beach}function d3_geom_voronoiDetachBeach(beach){d3_geom_voronoiDetachCircle(beach);d3_geom_voronoiBeaches.remove(beach);d3_geom_voronoiBeachPool.push(beach);d3_geom_voronoiRedBlackNode(beach)}function d3_geom_voronoiRemoveBeach(beach){var circle=beach.circle,x=circle.x,y=circle.cy,vertex={x:x,y:y},previous=beach.P,next=beach.N,disappearing=[beach];d3_geom_voronoiDetachBeach(beach);var lArc=previous;while(lArc.circle&&abs(x-lArc.circle.x)<ε&&abs(y-lArc.circle.cy)<ε){previous=lArc.P;disappearing.unshift(lArc);d3_geom_voronoiDetachBeach(lArc);lArc=previous}disappearing.unshift(lArc);d3_geom_voronoiDetachCircle(lArc);var rArc=next;while(rArc.circle&&abs(x-rArc.circle.x)<ε&&abs(y-rArc.circle.cy)<ε){next=rArc.N;disappearing.push(rArc);d3_geom_voronoiDetachBeach(rArc);rArc=next}disappearing.push(rArc);d3_geom_voronoiDetachCircle(rArc);var nArcs=disappearing.length,iArc;for(iArc=1;iArc<nArcs;++iArc){rArc=disappearing[iArc];lArc=disappearing[iArc-1];d3_geom_voronoiSetEdgeEnd(rArc.edge,lArc.site,rArc.site,vertex)}lArc=disappearing[0];rArc=disappearing[nArcs-1];rArc.edge=d3_geom_voronoiCreateEdge(lArc.site,rArc.site,null,vertex);d3_geom_voronoiAttachCircle(lArc);d3_geom_voronoiAttachCircle(rArc)}function d3_geom_voronoiAddBeach(site){var x=site.x,directrix=site.y,lArc,rArc,dxl,dxr,node=d3_geom_voronoiBeaches._;while(node){dxl=d3_geom_voronoiLeftBreakPoint(node,directrix)-x;if(dxl>ε)node=node.L;else{dxr=x-d3_geom_voronoiRightBreakPoint(node,directrix);if(dxr>ε){if(!node.R){lArc=node;break}node=node.R}else{if(dxl>-ε){lArc=node.P;rArc=node}else if(dxr>-ε){lArc=node;rArc=node.N}else{lArc=rArc=node}break}}}var newArc=d3_geom_voronoiCreateBeach(site);d3_geom_voronoiBeaches.insert(lArc,newArc);if(!lArc&&!rArc)return;if(lArc===rArc){d3_geom_voronoiDetachCircle(lArc);rArc=d3_geom_voronoiCreateBeach(lArc.site);d3_geom_voronoiBeaches.insert(newArc,rArc);newArc.edge=rArc.edge=d3_geom_voronoiCreateEdge(lArc.site,newArc.site);d3_geom_voronoiAttachCircle(lArc);d3_geom_voronoiAttachCircle(rArc);return}if(!rArc){newArc.edge=d3_geom_voronoiCreateEdge(lArc.site,newArc.site);return}d3_geom_voronoiDetachCircle(lArc);d3_geom_voronoiDetachCircle(rArc);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={x:(cy*hb-by*hc)/d+ax,y:(bx*hc-cx*hb)/d+ay};d3_geom_voronoiSetEdgeEnd(rArc.edge,lSite,rSite,vertex);newArc.edge=d3_geom_voronoiCreateEdge(lSite,site,null,vertex);rArc.edge=d3_geom_voronoiCreateEdge(site,rSite,null,vertex);d3_geom_voronoiAttachCircle(lArc);d3_geom_voronoiAttachCircle(rArc)}function d3_geom_voronoiLeftBreakPoint(arc,directrix){var site=arc.site,rfocx=site.x,rfocy=site.y,pby2=rfocy-directrix;if(!pby2)return rfocx;var lArc=arc.P;if(!lArc)return-Infinity;site=lArc.site;var lfocx=site.x,lfocy=site.y,plby2=lfocy-directrix;if(!plby2)return lfocx;var hl=lfocx-rfocx,aby2=1/pby2-1/plby2,b=hl/plby2;if(aby2)return(-b+Math.sqrt(b*b-2*aby2*(hl*hl/(-2*plby2)-lfocy+plby2/2+rfocy-pby2/2)))/aby2+rfocx;return(rfocx+lfocx)/2}function d3_geom_voronoiRightBreakPoint(arc,directrix){var rArc=arc.N;if(rArc)return d3_geom_voronoiLeftBreakPoint(rArc,directrix);var site=arc.site;return site.y===directrix?site.x:Infinity}function d3_geom_voronoiCell(site){this.site=site;this.edges=[]}d3_geom_voronoiCell.prototype.prepare=function(){var halfEdges=this.edges,iHalfEdge=halfEdges.length,edge;while(iHalfEdge--){edge=halfEdges[iHalfEdge].edge;if(!edge.b||!edge.a)halfEdges.splice(iHalfEdge,1)}halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);return halfEdges.length};function d3_geom_voronoiCloseCells(extent){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;while(iCell--){cell=cells[iCell];if(!cell||!cell.prepare())continue;halfEdges=cell.edges;nHalfEdges=halfEdges.length;iHalfEdge=0;while(iHalfEdge<nHalfEdges){end=halfEdges[iHalfEdge].end(),x3=end.x,y3=end.y;start=halfEdges[++iHalfEdge%nHalfEdges].start(),x2=start.x,y2=start.y;if(abs(x3-x2)>ε||abs(y3-y2)>ε){halfEdges.splice(iHalfEdge,0,new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site,end,abs(x3-x0)<ε&&y1-y3>ε?{x:x0,y:abs(x2-x0)<ε?y2:y1}:abs(y3-y1)<ε&&x1-x3>ε?{x:abs(y2-y1)<ε?x2:x1,y:y1}:abs(x3-x1)<ε&&y3-y0>ε?{x:x1,y:abs(x2-x1)<ε?y2:y0}:abs(y3-y0)<ε&&x3-x0>ε?{x:abs(y2-y0)<ε?x2:x0,y:y0}:null),cell.site,null));++nHalfEdges}}}}function d3_geom_voronoiHalfEdgeOrder(a,b){return b.angle-a.angle}function d3_geom_voronoiCircle(){d3_geom_voronoiRedBlackNode(this);this.x=this.y=this.arc=this.site=this.cy=null}function d3_geom_voronoiAttachCircle(arc){var lArc=arc.P,rArc=arc.N;if(!lArc||!rArc)return;var lSite=lArc.site,cSite=arc.site,rSite=rArc.site;if(lSite===rSite)return;var bx=cSite.x,by=cSite.y,ax=lSite.x-bx,ay=lSite.y-by,cx=rSite.x-bx,cy=rSite.y-by;var d=2*(ax*cy-ay*cx);if(d>=-ε2)return;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;var circle=d3_geom_voronoiCirclePool.pop()||new d3_geom_voronoiCircle;circle.arc=arc;circle.site=cSite;circle.x=x+bx;circle.y=cy+Math.sqrt(x*x+y*y);circle.cy=cy;arc.circle=circle;var before=null,node=d3_geom_voronoiCircles._;while(node){if(circle.y<node.y||circle.y===node.y&&circle.x<=node.x){if(node.L)node=node.L;else{before=node.P;break}}else{if(node.R)node=node.R;else{before=node;break}}}d3_geom_voronoiCircles.insert(before,circle);if(!before)d3_geom_voronoiFirstCircle=circle}function d3_geom_voronoiDetachCircle(arc){var circle=arc.circle;if(circle){if(!circle.P)d3_geom_voronoiFirstCircle=circle.N;d3_geom_voronoiCircles.remove(circle);d3_geom_voronoiCirclePool.push(circle);d3_geom_voronoiRedBlackNode(circle);arc.circle=null}}function d3_geom_voronoiClipEdges(extent){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;while(i--){e=edges[i];if(!d3_geom_voronoiConnectEdge(e,extent)||!clip(e)||abs(e.a.x-e.b.x)<ε&&abs(e.a.y-e.b.y)<ε){e.a=e.b=null;edges.splice(i,1)}}}function d3_geom_voronoiConnectEdge(edge,extent){var vb=edge.b;if(vb)return true;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;if(ry===ly){if(fx<x0||fx>=x1)return;if(lx>rx){if(!va)va={x:fx,y:y0};else if(va.y>=y1)return;vb={x:fx,y:y1}}else{if(!va)va={x:fx,y:y1};else if(va.y<y0)return;vb={x:fx,y:y0}}}else{fm=(lx-rx)/(ry-ly);fb=fy-fm*fx;if(fm<-1||fm>1){if(lx>rx){if(!va)va={x:(y0-fb)/fm,y:y0};else if(va.y>=y1)return;vb={x:(y1-fb)/fm,y:y1}}else{if(!va)va={x:(y1-fb)/fm,y:y1};else if(va.y<y0)return;vb={x:(y0-fb)/fm,y:y0}}}else{if(ly<ry){if(!va)va={x:x0,y:fm*x0+fb};else if(va.x>=x1)return;vb={x:x1,y:fm*x1+fb}}else{if(!va)va={x:x1,y:fm*x1+fb};else if(va.x<x0)return;vb={x:x0,y:fm*x0+fb}}}}edge.a=va;edge.b=vb;return true}function d3_geom_voronoiEdge(lSite,rSite){this.l=lSite;this.r=rSite;this.a=this.b=null}function d3_geom_voronoiCreateEdge(lSite,rSite,va,vb){var edge=new d3_geom_voronoiEdge(lSite,rSite);d3_geom_voronoiEdges.push(edge);if(va)d3_geom_voronoiSetEdgeEnd(edge,lSite,rSite,va);if(vb)d3_geom_voronoiSetEdgeEnd(edge,rSite,lSite,vb);d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge,lSite,rSite));d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge,rSite,lSite));return edge}function d3_geom_voronoiCreateBorderEdge(lSite,va,vb){var edge=new d3_geom_voronoiEdge(lSite,null);edge.a=va;edge.b=vb;d3_geom_voronoiEdges.push(edge);return edge}function d3_geom_voronoiSetEdgeEnd(edge,lSite,rSite,vertex){if(!edge.a&&!edge.b){edge.a=vertex;edge.l=lSite;edge.r=rSite}else if(edge.l===rSite){edge.b=vertex}else{edge.a=vertex}}function d3_geom_voronoiHalfEdge(edge,lSite,rSite){var va=edge.a,vb=edge.b;this.edge=edge;this.site=lSite;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)}d3_geom_voronoiHalfEdge.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}};function d3_geom_voronoiRedBlackTree(){this._=null}function d3_geom_voronoiRedBlackNode(node){node.U=node.C=node.L=node.R=node.P=node.N=null}d3_geom_voronoiRedBlackTree.prototype={insert:function(after,node){var parent,grandpa,uncle;if(after){node.P=after;node.N=after.N;if(after.N)after.N.P=node;after.N=node;if(after.R){after=after.R;while(after.L)after=after.L;after.L=node}else{after.R=node}parent=after}else if(this._){after=d3_geom_voronoiRedBlackFirst(this._);node.P=null;node.N=after;after.P=after.L=node;parent=after}else{node.P=node.N=null;this._=node;parent=null}node.L=node.R=null;node.U=parent;node.C=true;after=node;while(parent&&parent.C){grandpa=parent.U;if(parent===grandpa.L){uncle=grandpa.R;if(uncle&&uncle.C){parent.C=uncle.C=false;grandpa.C=true;after=grandpa}else{if(after===parent.R){d3_geom_voronoiRedBlackRotateLeft(this,parent);after=parent;parent=after.U}parent.C=false;grandpa.C=true;d3_geom_voronoiRedBlackRotateRight(this,grandpa)}}else{uncle=grandpa.L;if(uncle&&uncle.C){parent.C=uncle.C=false;grandpa.C=true;after=grandpa}else{if(after===parent.L){d3_geom_voronoiRedBlackRotateRight(this,parent);after=parent;parent=after.U}parent.C=false;grandpa.C=true;d3_geom_voronoiRedBlackRotateLeft(this,grandpa)}}parent=after.U}this._.C=false},remove:function(node){if(node.N)node.N.P=node.P;if(node.P)node.P.N=node.N;node.N=node.P=null;var parent=node.U,sibling,left=node.L,right=node.R,next,red;if(!left)next=right;else if(!right)next=left;else next=d3_geom_voronoiRedBlackFirst(right);if(parent){if(parent.L===node)parent.L=next;else parent.R=next}else{this._=next}if(left&&right){red=next.C;next.C=node.C;next.L=left;left.U=next;if(next!==right){parent=next.U;next.U=node.U;node=next.R;parent.L=node;next.R=right;right.U=next}else{next.U=parent;parent=next;node=next.R}}else{red=node.C;node=next}if(node)node.U=parent;if(red)return;if(node&&node.C){node.C=false;return}do{if(node===this._)break;if(node===parent.L){sibling=parent.R;if(sibling.C){sibling.C=false;parent.C=true;d3_geom_voronoiRedBlackRotateLeft(this,parent);sibling=parent.R}if(sibling.L&&sibling.L.C||sibling.R&&sibling.R.C){if(!sibling.R||!sibling.R.C){sibling.L.C=false;sibling.C=true;d3_geom_voronoiRedBlackRotateRight(this,sibling);sibling=parent.R}sibling.C=parent.C;parent.C=sibling.R.C=false;d3_geom_voronoiRedBlackRotateLeft(this,parent);node=this._;break}}else{sibling=parent.L;if(sibling.C){sibling.C=false;parent.C=true;d3_geom_voronoiRedBlackRotateRight(this,parent);sibling=parent.L}if(sibling.L&&sibling.L.C||sibling.R&&sibling.R.C){if(!sibling.L||!sibling.L.C){sibling.R.C=false;sibling.C=true;d3_geom_voronoiRedBlackRotateLeft(this,sibling);sibling=parent.L}sibling.C=parent.C;parent.C=sibling.L.C=false;d3_geom_voronoiRedBlackRotateRight(this,parent);node=this._;break}}sibling.C=true;node=parent;parent=parent.U}while(!node.C);if(node)node.C=false}};function d3_geom_voronoiRedBlackRotateLeft(tree,node){var p=node,q=node.R,parent=p.U;if(parent){if(parent.L===p)parent.L=q;else parent.R=q}else{tree._=q}q.U=parent;p.U=q;p.R=q.L;if(p.R)p.R.U=p;q.L=p}function d3_geom_voronoiRedBlackRotateRight(tree,node){var p=node,q=node.L,parent=p.U;if(parent){if(parent.L===p)parent.L=q;else parent.R=q}else{tree._=q}q.U=parent;p.U=q;p.L=q.R;if(p.L)p.L.U=p;q.R=p}function d3_geom_voronoiRedBlackFirst(node){while(node.L)node=node.L;return node}function d3_geom_voronoi(sites,bbox){var site=sites.sort(d3_geom_voronoiVertexOrder).pop(),x0,y0,circle;d3_geom_voronoiEdges=[];d3_geom_voronoiCells=new Array(sites.length);d3_geom_voronoiBeaches=new d3_geom_voronoiRedBlackTree;d3_geom_voronoiCircles=new d3_geom_voronoiRedBlackTree;while(true){circle=d3_geom_voronoiFirstCircle;if(site&&(!circle||site.y<circle.y||site.y===circle.y&&site.x<circle.x)){if(site.x!==x0||site.y!==y0){d3_geom_voronoiCells[site.i]=new d3_geom_voronoiCell(site);d3_geom_voronoiAddBeach(site);x0=site.x,y0=site.y}site=sites.pop()}else if(circle){d3_geom_voronoiRemoveBeach(circle.arc)}else{break}}if(bbox)d3_geom_voronoiClipEdges(bbox),d3_geom_voronoiCloseCells(bbox);var diagram={cells:d3_geom_voronoiCells,edges:d3_geom_voronoiEdges};d3_geom_voronoiBeaches=d3_geom_voronoiCircles=d3_geom_voronoiEdges=d3_geom_voronoiCells=null;return diagram}function d3_geom_voronoiVertexOrder(a,b){return b.y-a.y||b.x-a.x}d3.geom.voronoi=function(points){var x=d3_geom_pointX,y=d3_geom_pointY,fx=x,fy=y,clipExtent=d3_geom_voronoiClipExtent;if(points)return voronoi(points);function voronoi(data){var polygons=new Array(data.length),x0=clipExtent[0][0],y0=clipExtent[0][1],x1=clipExtent[1][0],y1=clipExtent[1][1];d3_geom_voronoi(sites(data),clipExtent).cells.forEach(function(cell,i){var edges=cell.edges,site=cell.site,polygon=polygons[i]=edges.length?edges.map(function(e){var s=e.start();return[s.x,s.y]}):site.x>=x0&&site.x<=x1&&site.y>=y0&&site.y<=y1?[[x0,y1],[x1,y1],[x1,y0],[x0,y0]]:[];polygon.point=data[i]});return polygons}function sites(data){return data.map(function(d,i){return{x:Math.round(fx(d,i)/ε)*ε,y:Math.round(fy(d,i)/ε)*ε,i:i}})}voronoi.links=function(data){return d3_geom_voronoi(sites(data)).edges.filter(function(edge){return edge.l&&edge.r}).map(function(edge){return{source:data[edge.l.i],target:data[edge.r.i]}})};voronoi.triangles=function(data){var triangles=[];d3_geom_voronoi(sites(data)).cells.forEach(function(cell,i){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;while(++j<m){e0=e1;s0=s1;e1=edges[j].edge;s1=e1.l===site?e1.r:e1.l;if(i<s0.i&&i<s1.i&&d3_geom_voronoiTriangleArea(site,s0,s1)<0){triangles.push([data[i],data[s0.i],data[s1.i]])}}});return triangles};voronoi.x=function(_){return arguments.length?(fx=d3_functor(x=_),voronoi):x};voronoi.y=function(_){return arguments.length?(fy=d3_functor(y=_),voronoi):y};voronoi.clipExtent=function(_){if(!arguments.length)return clipExtent===d3_geom_voronoiClipExtent?null:clipExtent;clipExtent=_==null?d3_geom_voronoiClipExtent:_;return voronoi};voronoi.size=function(_){if(!arguments.length)return clipExtent===d3_geom_voronoiClipExtent?null:clipExtent&&clipExtent[1];return voronoi.clipExtent(_&&[[0,0],_])};return voronoi};var d3_geom_voronoiClipExtent=[[-1e6,-1e6],[1e6,1e6]];function d3_geom_voronoiTriangleArea(a,b,c){return(a.x-c.x)*(b.y-a.y)-(a.x-b.x)*(c.y-a.y)}d3.geom.delaunay=function(vertices){return d3.geom.voronoi().triangles(vertices)};d3.geom.quadtree=function(points,x1,y1,x2,y2){var x=d3_geom_pointX,y=d3_geom_pointY,compat;if(compat=arguments.length){x=d3_geom_quadtreeCompatX;y=d3_geom_quadtreeCompatY;if(compat===3){y2=y1;x2=x1;y1=x1=0}return quadtree(points)}function quadtree(data){var d,fx=d3_functor(x),fy=d3_functor(y),xs,ys,i,n,x1_,y1_,x2_,y2_;if(x1!=null){x1_=x1,y1_=y1,x2_=x2,y2_=y2}else{x2_=y2_=-(x1_=y1_=Infinity);xs=[],ys=[];n=data.length;if(compat)for(i=0;i<n;++i){d=data[i];if(d.x<x1_)x1_=d.x;if(d.y<y1_)y1_=d.y;if(d.x>x2_)x2_=d.x;if(d.y>y2_)y2_=d.y;xs.push(d.x);ys.push(d.y)}else for(i=0;i<n;++i){var x_=+fx(d=data[i],i),y_=+fy(d,i);if(x_<x1_)x1_=x_;if(y_<y1_)y1_=y_;if(x_>x2_)x2_=x_;if(y_>y2_)y2_=y_;xs.push(x_);ys.push(y_)}}var dx=x2_-x1_,dy=y2_-y1_;if(dx>dy)y2_=y1_+dx;else x2_=x1_+dy;function insert(n,d,x,y,x1,y1,x2,y2){if(isNaN(x)||isNaN(y))return;if(n.leaf){var nx=n.x,ny=n.y;if(nx!=null){if(abs(nx-x)+abs(ny-y)<.01){insertChild(n,d,x,y,x1,y1,x2,y2)}else{var nPoint=n.point;n.x=n.y=n.point=null;insertChild(n,nPoint,nx,ny,x1,y1,x2,y2);insertChild(n,d,x,y,x1,y1,x2,y2)}}else{n.x=x,n.y=y,n.point=d}}else{insertChild(n,d,x,y,x1,y1,x2,y2)}}function insertChild(n,d,x,y,x1,y1,x2,y2){var xm=(x1+x2)*.5,ym=(y1+y2)*.5,right=x>=xm,below=y>=ym,i=below<<1|right;n.leaf=false;n=n.nodes[i]||(n.nodes[i]=d3_geom_quadtreeNode());if(right)x1=xm;else x2=xm;if(below)y1=ym;else y2=ym;insert(n,d,x,y,x1,y1,x2,y2)}var root=d3_geom_quadtreeNode();root.add=function(d){insert(root,d,+fx(d,++i),+fy(d,i),x1_,y1_,x2_,y2_)};root.visit=function(f){d3_geom_quadtreeVisit(f,root,x1_,y1_,x2_,y2_)};root.find=function(point){return d3_geom_quadtreeFind(root,point[0],point[1],x1_,y1_,x2_,y2_)};i=-1;if(x1==null){while(++i<n){insert(root,data[i],xs[i],ys[i],x1_,y1_,x2_,y2_)}--i}else data.forEach(root.add);xs=ys=data=d=null;return root}quadtree.x=function(_){return arguments.length?(x=_,quadtree):x};quadtree.y=function(_){return arguments.length?(y=_,quadtree):y};quadtree.extent=function(_){if(!arguments.length)return x1==null?null:[[x1,y1],[x2,y2]];if(_==null)x1=y1=x2=y2=null;else x1=+_[0][0],y1=+_[0][1],x2=+_[1][0],y2=+_[1][1];return quadtree};quadtree.size=function(_){if(!arguments.length)return x1==null?null:[x2-x1,y2-y1];if(_==null)x1=y1=x2=y2=null;else x1=y1=0,x2=+_[0],y2=+_[1];return quadtree};return quadtree};function d3_geom_quadtreeCompatX(d){return d.x}function d3_geom_quadtreeCompatY(d){return d.y}function d3_geom_quadtreeNode(){return{leaf:true,nodes:[],point:null,x:null,y:null}}function d3_geom_quadtreeVisit(f,node,x1,y1,x2,y2){if(!f(node,x1,y1,x2,y2)){var sx=(x1+x2)*.5,sy=(y1+y2)*.5,children=node.nodes;if(children[0])d3_geom_quadtreeVisit(f,children[0],x1,y1,sx,sy);if(children[1])d3_geom_quadtreeVisit(f,children[1],sx,y1,x2,sy);if(children[2])d3_geom_quadtreeVisit(f,children[2],x1,sy,sx,y2);if(children[3])d3_geom_quadtreeVisit(f,children[3],sx,sy,x2,y2)}}function d3_geom_quadtreeFind(root,x,y,x0,y0,x3,y3){var minDistance2=Infinity,closestPoint;(function find(node,x1,y1,x2,y2){if(x1>x3||y1>y3||x2<x0||y2<y0)return;if(point=node.point){var point,dx=x-node.x,dy=y-node.y,distance2=dx*dx+dy*dy;if(distance2<minDistance2){var distance=Math.sqrt(minDistance2=distance2);x0=x-distance,y0=y-distance;x3=x+distance,y3=y+distance;closestPoint=point}}var children=node.nodes,xm=(x1+x2)*.5,ym=(y1+y2)*.5,right=x>=xm,below=y>=ym;for(var i=below<<1|right,j=i+4;i<j;++i){if(node=children[i&3])switch(i&3){case 0:find(node,x1,y1,xm,ym);break;case 1:find(node,xm,y1,x2,ym);break;case 2:find(node,x1,ym,xm,y2);break;case 3:find(node,xm,ym,x2,y2);break}}})(root,x0,y0,x3,y3);return closestPoint}d3.interpolateRgb=d3_interpolateRgb;function d3_interpolateRgb(a,b){a=d3.rgb(a);b=d3.rgb(b);var ar=a.r,ag=a.g,ab=a.b,br=b.r-ar,bg=b.g-ag,bb=b.b-ab;return function(t){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))}}d3.interpolateObject=d3_interpolateObject;function d3_interpolateObject(a,b){var i={},c={},k;for(k in a){if(k in b){i[k]=d3_interpolate(a[k],b[k])}else{c[k]=a[k]}}for(k in b){if(!(k in a)){c[k]=b[k]}}return function(t){for(k in i)c[k]=i[k](t);return c}}d3.interpolateNumber=d3_interpolateNumber;function d3_interpolateNumber(a,b){a=+a,b=+b;return function(t){return a*(1-t)+b*t}}d3.interpolateString=d3_interpolateString;function d3_interpolateString(a,b){var bi=d3_interpolate_numberA.lastIndex=d3_interpolate_numberB.lastIndex=0,am,bm,bs,i=-1,s=[],q=[];a=a+"",b=b+"";while((am=d3_interpolate_numberA.exec(a))&&(bm=d3_interpolate_numberB.exec(b))){if((bs=bm.index)>bi){bs=b.slice(bi,bs);if(s[i])s[i]+=bs;else s[++i]=bs}if((am=am[0])===(bm=bm[0])){if(s[i])s[i]+=bm;else s[++i]=bm}else{s[++i]=null;q.push({i:i,x:d3_interpolateNumber(am,bm)})}bi=d3_interpolate_numberB.lastIndex}if(bi<b.length){bs=b.slice(bi);if(s[i])s[i]+=bs;else s[++i]=bs}return s.length<2?q[0]?(b=q[0].x,function(t){return b(t)+""}):function(){return b}:(b=q.length,function(t){for(var i=0,o;i<b;++i)s[(o=q[i]).i]=o.x(t);return s.join("")})}var d3_interpolate_numberA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,d3_interpolate_numberB=new RegExp(d3_interpolate_numberA.source,"g");d3.interpolate=d3_interpolate;function d3_interpolate(a,b){var i=d3.interpolators.length,f;while(--i>=0&&!(f=d3.interpolators[i](a,b)));return f}d3.interpolators=[function(a,b){var t=typeof b;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)}];d3.interpolateArray=d3_interpolateArray;function d3_interpolateArray(a,b){var x=[],c=[],na=a.length,nb=b.length,n0=Math.min(a.length,b.length),i;for(i=0;i<n0;++i)x.push(d3_interpolate(a[i],b[i]));for(;i<na;++i)c[i]=a[i];for(;i<nb;++i)c[i]=b[i];return function(t){for(i=0;i<n0;++i)c[i]=x[i](t);return c}}var d3_ease_default=function(){return d3_identity};var d3_ease=d3.map({linear:d3_ease_default,poly:d3_ease_poly,quad:function(){return d3_ease_quad},cubic:function(){return d3_ease_cubic},sin:function(){return d3_ease_sin},exp:function(){return d3_ease_exp},circle:function(){return d3_ease_circle},elastic:d3_ease_elastic,back:d3_ease_back,bounce:function(){return d3_ease_bounce}});var d3_ease_mode=d3.map({in:d3_identity,out:d3_ease_reverse,"in-out":d3_ease_reflect,"out-in":function(f){return d3_ease_reflect(d3_ease_reverse(f))}});d3.ease=function(name){var i=name.indexOf("-"),t=i>=0?name.slice(0,i):name,m=i>=0?name.slice(i+1):"in";t=d3_ease.get(t)||d3_ease_default;m=d3_ease_mode.get(m)||d3_identity;return d3_ease_clamp(m(t.apply(null,d3_arraySlice.call(arguments,1))))};function d3_ease_clamp(f){return function(t){return t<=0?0:t>=1?1:f(t)}}function d3_ease_reverse(f){return function(t){return 1-f(1-t)}}function d3_ease_reflect(f){return function(t){return.5*(t<.5?f(2*t):2-f(2-2*t))}}function d3_ease_quad(t){return t*t}function d3_ease_cubic(t){return t*t*t}function d3_ease_cubicInOut(t){if(t<=0)return 0;if(t>=1)return 1;var t2=t*t,t3=t2*t;return 4*(t<.5?t3:3*(t-t2)+t3-.75)}function d3_ease_poly(e){return function(t){return Math.pow(t,e)}}function d3_ease_sin(t){return 1-Math.cos(t*halfπ)}function d3_ease_exp(t){return Math.pow(2,10*(t-1))}function d3_ease_circle(t){return 1-Math.sqrt(1-t*t)}function d3_ease_elastic(a,p){var s;if(arguments.length<2)p=.45;if(arguments.length)s=p/τ*Math.asin(1/a);else a=1,s=p/4;return function(t){return 1+a*Math.pow(2,-10*t)*Math.sin((t-s)*τ/p)}}function d3_ease_back(s){if(!s)s=1.70158;return function(t){return t*t*((s+1)*t-s)}}function d3_ease_bounce(t){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}d3.interpolateHcl=d3_interpolateHcl;function d3_interpolateHcl(a,b){a=d3.hcl(a);b=d3.hcl(b);var ah=a.h,ac=a.c,al=a.l,bh=b.h-ah,bc=b.c-ac,bl=b.l-al;if(isNaN(bc))bc=0,ac=isNaN(ac)?b.c:ac;if(isNaN(bh))bh=0,ah=isNaN(ah)?b.h:ah;else if(bh>180)bh-=360;else if(bh<-180)bh+=360;return function(t){return d3_hcl_lab(ah+bh*t,ac+bc*t,al+bl*t)+""}}d3.interpolateHsl=d3_interpolateHsl;function d3_interpolateHsl(a,b){a=d3.hsl(a);b=d3.hsl(b);var ah=a.h,as=a.s,al=a.l,bh=b.h-ah,bs=b.s-as,bl=b.l-al;if(isNaN(bs))bs=0,as=isNaN(as)?b.s:as;if(isNaN(bh))bh=0,ah=isNaN(ah)?b.h:ah;else if(bh>180)bh-=360;else if(bh<-180)bh+=360;return function(t){return d3_hsl_rgb(ah+bh*t,as+bs*t,al+bl*t)+""}}d3.interpolateLab=d3_interpolateLab;function d3_interpolateLab(a,b){a=d3.lab(a);b=d3.lab(b);var al=a.l,aa=a.a,ab=a.b,bl=b.l-al,ba=b.a-aa,bb=b.b-ab;return function(t){return d3_lab_rgb(al+bl*t,aa+ba*t,ab+bb*t)+""}}d3.interpolateRound=d3_interpolateRound;function d3_interpolateRound(a,b){b-=a;return function(t){return Math.round(a+b*t)}}d3.transform=function(string){var g=d3_document.createElementNS(d3.ns.prefix.svg,"g");return(d3.transform=function(string){if(string!=null){g.setAttribute("transform",string);var t=g.transform.baseVal.consolidate()}return new d3_transform(t?t.matrix:d3_transformIdentity)})(string)};function d3_transform(m){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;if(r0[0]*r1[1]<r1[0]*r0[1]){r0[0]*=-1;r0[1]*=-1;kx*=-1;kz*=-1}this.rotate=(kx?Math.atan2(r0[1],r0[0]):Math.atan2(-r1[0],r1[1]))*d3_degrees;this.translate=[m.e,m.f];this.scale=[kx,ky];this.skew=ky?Math.atan2(kz,ky)*d3_degrees:0}d3_transform.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};function d3_transformDot(a,b){return a[0]*b[0]+a[1]*b[1]}function d3_transformNormalize(a){var k=Math.sqrt(d3_transformDot(a,a));if(k){a[0]/=k;a[1]/=k}return k}function d3_transformCombine(a,b,k){a[0]+=k*b[0];a[1]+=k*b[1];return a}var d3_transformIdentity={a:1,b:0,c:0,d:1,e:0,f:0};d3.interpolateTransform=d3_interpolateTransform;function d3_interpolateTransformPop(s){return s.length?s.pop()+",":""}function d3_interpolateTranslate(ta,tb,s,q){if(ta[0]!==tb[0]||ta[1]!==tb[1]){var i=s.push("translate(",null,",",null,")");q.push({i:i-4,x:d3_interpolateNumber(ta[0],tb[0])},{i:i-2,x:d3_interpolateNumber(ta[1],tb[1])})}else if(tb[0]||tb[1]){s.push("translate("+tb+")")}}function d3_interpolateRotate(ra,rb,s,q){if(ra!==rb){if(ra-rb>180)rb+=360;else if(rb-ra>180)ra+=360;q.push({i:s.push(d3_interpolateTransformPop(s)+"rotate(",null,")")-2,x:d3_interpolateNumber(ra,rb)})}else if(rb){s.push(d3_interpolateTransformPop(s)+"rotate("+rb+")")}}function d3_interpolateSkew(wa,wb,s,q){if(wa!==wb){q.push({i:s.push(d3_interpolateTransformPop(s)+"skewX(",null,")")-2,x:d3_interpolateNumber(wa,wb)})}else if(wb){s.push(d3_interpolateTransformPop(s)+"skewX("+wb+")")}}function d3_interpolateScale(ka,kb,s,q){if(ka[0]!==kb[0]||ka[1]!==kb[1]){var i=s.push(d3_interpolateTransformPop(s)+"scale(",null,",",null,")");q.push({i:i-4,x:d3_interpolateNumber(ka[0],kb[0])},{i:i-2,x:d3_interpolateNumber(ka[1],kb[1])})}else if(kb[0]!==1||kb[1]!==1){s.push(d3_interpolateTransformPop(s)+"scale("+kb+")")}}function d3_interpolateTransform(a,b){var s=[],q=[];a=d3.transform(a),b=d3.transform(b);d3_interpolateTranslate(a.translate,b.translate,s,q);d3_interpolateRotate(a.rotate,b.rotate,s,q);d3_interpolateSkew(a.skew,b.skew,s,q);d3_interpolateScale(a.scale,b.scale,s,q);a=b=null;return function(t){var i=-1,n=q.length,o;while(++i<n)s[(o=q[i]).i]=o.x(t);return s.join("")}}function d3_uninterpolateNumber(a,b){b=(b-=a=+a)||1/b;return function(x){return(x-a)/b}}function d3_uninterpolateClamp(a,b){b=(b-=a=+a)||1/b;return function(x){return Math.max(0,Math.min(1,(x-a)/b))}}d3.layout={};d3.layout.bundle=function(){return function(links){var paths=[],i=-1,n=links.length;while(++i<n)paths.push(d3_layout_bundlePath(links[i]));return paths}};function d3_layout_bundlePath(link){var start=link.source,end=link.target,lca=d3_layout_bundleLeastCommonAncestor(start,end),points=[start];while(start!==lca){start=start.parent;points.push(start)}var k=points.length;while(end!==lca){points.splice(k,0,end);end=end.parent}return points}function d3_layout_bundleAncestors(node){var ancestors=[],parent=node.parent;while(parent!=null){ancestors.push(node);node=parent;parent=parent.parent}ancestors.push(node);return ancestors}function d3_layout_bundleLeastCommonAncestor(a,b){if(a===b)return a;var aNodes=d3_layout_bundleAncestors(a),bNodes=d3_layout_bundleAncestors(b),aNode=aNodes.pop(),bNode=bNodes.pop(),sharedNode=null;while(aNode===bNode){sharedNode=aNode;aNode=aNodes.pop();bNode=bNodes.pop()}return sharedNode}d3.layout.chord=function(){var chord={},chords,groups,matrix,n,padding=0,sortGroups,sortSubgroups,sortChords;function relayout(){var subgroups={},groupSums=[],groupIndex=d3.range(n),subgroupIndex=[],k,x,x0,i,j;chords=[];groups=[];k=0,i=-1;while(++i<n){x=0,j=-1;while(++j<n){x+=matrix[i][j]}groupSums.push(x);subgroupIndex.push(d3.range(n));k+=x}if(sortGroups){groupIndex.sort(function(a,b){return sortGroups(groupSums[a],groupSums[b])})}if(sortSubgroups){subgroupIndex.forEach(function(d,i){d.sort(function(a,b){return sortSubgroups(matrix[i][a],matrix[i][b])})})}k=(τ-padding*n)/k;x=0,i=-1;while(++i<n){x0=x,j=-1;while(++j<n){var di=groupIndex[i],dj=subgroupIndex[di][j],v=matrix[di][dj],a0=x,a1=x+=v*k;subgroups[di+"-"+dj]={index:di,subindex:dj,startAngle:a0,endAngle:a1,value:v}}groups[di]={index:di,startAngle:x0,endAngle:x,value:groupSums[di]};x+=padding}i=-1;while(++i<n){j=i-1;while(++j<n){var source=subgroups[i+"-"+j],target=subgroups[j+"-"+i];if(source.value||target.value){chords.push(source.value<target.value?{source:target,target:source}:{source:source,target:target})}}}if(sortChords)resort()}function resort(){chords.sort(function(a,b){return sortChords((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}chord.matrix=function(x){if(!arguments.length)return matrix;n=(matrix=x)&&matrix.length;chords=groups=null;return chord};chord.padding=function(x){if(!arguments.length)return padding;padding=x;chords=groups=null;return chord};chord.sortGroups=function(x){if(!arguments.length)return sortGroups;sortGroups=x;chords=groups=null;return chord};chord.sortSubgroups=function(x){if(!arguments.length)return sortSubgroups;sortSubgroups=x;chords=null;return chord};chord.sortChords=function(x){if(!arguments.length)return sortChords;sortChords=x;if(chords)resort();return chord};chord.chords=function(){if(!chords)relayout();return chords};chord.groups=function(){if(!groups)relayout();return groups};return chord};d3.layout.force=function(){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;function repulse(node){return function(quad,x1,_,x2){if(quad.point!==node){var dx=quad.cx-node.x,dy=quad.cy-node.y,dw=x2-x1,dn=dx*dx+dy*dy;if(dw*dw/theta2<dn){if(dn<chargeDistance2){var k=quad.charge/dn;node.px-=dx*k;node.py-=dy*k}return true}if(quad.point&&dn&&dn<chargeDistance2){var k=quad.pointCharge/dn;node.px-=dx*k;node.py-=dy*k}}return!quad.charge}}force.tick=function(){if((alpha*=.99)<.005){timer=null;event.end({type:"end",alpha:alpha=0});return true}var n=nodes.length,m=links.length,q,i,o,s,t,l,k,x,y;for(i=0;i<m;++i){o=links[i];s=o.source;t=o.target;x=t.x-s.x;y=t.y-s.y;if(l=x*x+y*y){l=alpha*strengths[i]*((l=Math.sqrt(l))-distances[i])/l;x*=l;y*=l;t.x-=x*(k=s.weight+t.weight?s.weight/(s.weight+t.weight):.5);t.y-=y*k;s.x+=x*(k=1-k);s.y+=y*k}}if(k=alpha*gravity){x=size[0]/2;y=size[1]/2;i=-1;if(k)while(++i<n){o=nodes[i];o.x+=(x-o.x)*k;o.y+=(y-o.y)*k}}if(charge){d3_layout_forceAccumulate(q=d3.geom.quadtree(nodes),alpha,charges);i=-1;while(++i<n){if(!(o=nodes[i]).fixed){q.visit(repulse(o))}}}i=-1;while(++i<n){o=nodes[i];if(o.fixed){o.x=o.px;o.y=o.py}else{o.x-=(o.px-(o.px=o.x))*friction;o.y-=(o.py-(o.py=o.y))*friction}}event.tick({type:"tick",alpha:alpha})};force.nodes=function(x){if(!arguments.length)return nodes;nodes=x;return force};force.links=function(x){if(!arguments.length)return links;links=x;return force};force.size=function(x){if(!arguments.length)return size;size=x;return force};force.linkDistance=function(x){if(!arguments.length)return linkDistance;linkDistance=typeof x==="function"?x:+x;return force};force.distance=force.linkDistance;force.linkStrength=function(x){if(!arguments.length)return linkStrength;linkStrength=typeof x==="function"?x:+x;return force};force.friction=function(x){if(!arguments.length)return friction;friction=+x;return force};force.charge=function(x){if(!arguments.length)return charge;charge=typeof x==="function"?x:+x;return force};force.chargeDistance=function(x){if(!arguments.length)return Math.sqrt(chargeDistance2);chargeDistance2=x*x;return force};force.gravity=function(x){if(!arguments.length)return gravity;gravity=+x;return force};force.theta=function(x){if(!arguments.length)return Math.sqrt(theta2);theta2=x*x;return force};force.alpha=function(x){if(!arguments.length)return alpha;x=+x;if(alpha){if(x>0){alpha=x}else{timer.c=null,timer.t=NaN,timer=null;event.end({type:"end",alpha:alpha=0})}}else if(x>0){event.start({type:"start",alpha:alpha=x});timer=d3_timer(force.tick)}return force};force.start=function(){var i,n=nodes.length,m=links.length,w=size[0],h=size[1],neighbors,o;for(i=0;i<n;++i){(o=nodes[i]).index=i;o.weight=0}for(i=0;i<m;++i){o=links[i];if(typeof o.source=="number")o.source=nodes[o.source];if(typeof o.target=="number")o.target=nodes[o.target];++o.source.weight;++o.target.weight}for(i=0;i<n;++i){o=nodes[i];if(isNaN(o.x))o.x=position("x",w);if(isNaN(o.y))o.y=position("y",h);if(isNaN(o.px))o.px=o.x;if(isNaN(o.py))o.py=o.y}distances=[];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;strengths=[];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;charges=[];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;function position(dimension,size){if(!neighbors){neighbors=new Array(n);for(j=0;j<n;++j){neighbors[j]=[]}for(j=0;j<m;++j){var o=links[j];neighbors[o.source.index].push(o.target);neighbors[o.target.index].push(o.source)}}var candidates=neighbors[i],j=-1,l=candidates.length,x;while(++j<l)if(!isNaN(x=candidates[j][dimension]))return x;return Math.random()*size}return force.resume()};force.resume=function(){return force.alpha(.1)};force.stop=function(){return force.alpha(0)};force.drag=function(){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);if(!arguments.length)return drag;this.on("mouseover.force",d3_layout_forceMouseover).on("mouseout.force",d3_layout_forceMouseout).call(drag)};function dragmove(d){d.px=d3.event.x,d.py=d3.event.y;force.resume()}return d3.rebind(force,event,"on")};function d3_layout_forceDragstart(d){d.fixed|=2}function d3_layout_forceDragend(d){d.fixed&=~6}function d3_layout_forceMouseover(d){d.fixed|=4;d.px=d.x,d.py=d.y}function d3_layout_forceMouseout(d){d.fixed&=~4}function d3_layout_forceAccumulate(quad,alpha,charges){var cx=0,cy=0;quad.charge=0;if(!quad.leaf){var nodes=quad.nodes,n=nodes.length,i=-1,c;while(++i<n){c=nodes[i];if(c==null)continue;d3_layout_forceAccumulate(c,alpha,charges);quad.charge+=c.charge;cx+=c.charge*c.cx;cy+=c.charge*c.cy}}if(quad.point){if(!quad.leaf){quad.point.x+=Math.random()-.5;quad.point.y+=Math.random()-.5}var k=alpha*charges[quad.point.index];quad.charge+=quad.pointCharge=k;cx+=k*quad.point.x;cy+=k*quad.point.y}quad.cx=cx/quad.charge;quad.cy=cy/quad.charge}var d3_layout_forceLinkDistance=20,d3_layout_forceLinkStrength=1,d3_layout_forceChargeDistance2=Infinity;d3.layout.hierarchy=function(){var sort=d3_layout_hierarchySort,children=d3_layout_hierarchyChildren,value=d3_layout_hierarchyValue;function hierarchy(root){var stack=[root],nodes=[],node;root.depth=0;while((node=stack.pop())!=null){nodes.push(node);if((childs=children.call(hierarchy,node,node.depth))&&(n=childs.length)){var n,childs,child;while(--n>=0){stack.push(child=childs[n]);child.parent=node;child.depth=node.depth+1}if(value)node.value=0;node.children=childs}else{if(value)node.value=+value.call(hierarchy,node,node.depth)||0;delete node.children}}d3_layout_hierarchyVisitAfter(root,function(node){var childs,parent;if(sort&&(childs=node.children))childs.sort(sort);if(value&&(parent=node.parent))parent.value+=node.value});return nodes}hierarchy.sort=function(x){if(!arguments.length)return sort;sort=x;return hierarchy};hierarchy.children=function(x){if(!arguments.length)return children;children=x;return hierarchy};hierarchy.value=function(x){if(!arguments.length)return value;value=x;return hierarchy};hierarchy.revalue=function(root){if(value){d3_layout_hierarchyVisitBefore(root,function(node){if(node.children)node.value=0});d3_layout_hierarchyVisitAfter(root,function(node){var parent;if(!node.children)node.value=+value.call(hierarchy,node,node.depth)||0;if(parent=node.parent)parent.value+=node.value})}return root};return hierarchy};function d3_layout_hierarchyRebind(object,hierarchy){d3.rebind(object,hierarchy,"sort","children","value");object.nodes=object;object.links=d3_layout_hierarchyLinks;return object}function d3_layout_hierarchyVisitBefore(node,callback){var nodes=[node];while((node=nodes.pop())!=null){callback(node);if((children=node.children)&&(n=children.length)){var n,children;while(--n>=0)nodes.push(children[n])}}}function d3_layout_hierarchyVisitAfter(node,callback){var nodes=[node],nodes2=[];while((node=nodes.pop())!=null){nodes2.push(node);if((children=node.children)&&(n=children.length)){var i=-1,n,children;while(++i<n)nodes.push(children[i])}}while((node=nodes2.pop())!=null){callback(node)}}function d3_layout_hierarchyChildren(d){return d.children}function d3_layout_hierarchyValue(d){return d.value}function d3_layout_hierarchySort(a,b){return b.value-a.value}function d3_layout_hierarchyLinks(nodes){return d3.merge(nodes.map(function(parent){return(parent.children||[]).map(function(child){return{source:parent,target:child}})}))}d3.layout.partition=function(){var hierarchy=d3.layout.hierarchy(),size=[1,1];function position(node,x,dx,dy){var children=node.children;node.x=x;node.y=node.depth*dy;node.dx=dx;node.dy=dy;if(children&&(n=children.length)){var i=-1,n,c,d;dx=node.value?dx/node.value:0;while(++i<n){position(c=children[i],x,d=c.value*dx,dy);x+=d}}}function depth(node){var children=node.children,d=0;if(children&&(n=children.length)){var i=-1,n;while(++i<n)d=Math.max(d,depth(children[i]))}return 1+d}function partition(d,i){var nodes=hierarchy.call(this,d,i);position(nodes[0],0,size[0],size[1]/depth(nodes[0]));return nodes}partition.size=function(x){if(!arguments.length)return size;size=x;return partition};return d3_layout_hierarchyRebind(partition,hierarchy)};d3.layout.pie=function(){var value=Number,sort=d3_layout_pieSortByValue,startAngle=0,endAngle=τ,padAngle=0;function pie(data){var n=data.length,values=data.map(function(d,i){return+value.call(pie,d,i)}),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;if(sort!=null)index.sort(sort===d3_layout_pieSortByValue?function(i,j){return values[j]-values[i]}:function(i,j){return sort(data[i],data[j])});index.forEach(function(i){arcs[i]={data:data[i],value:v=values[i],startAngle:a,endAngle:a+=v*k+pa,padAngle:p}});return arcs}pie.value=function(_){if(!arguments.length)return value;value=_;return pie};pie.sort=function(_){if(!arguments.length)return sort;sort=_;return pie};pie.startAngle=function(_){if(!arguments.length)return startAngle;startAngle=_;return pie};pie.endAngle=function(_){if(!arguments.length)return endAngle;endAngle=_;return pie};pie.padAngle=function(_){if(!arguments.length)return padAngle;padAngle=_;return pie};return pie};var d3_layout_pieSortByValue={};d3.layout.stack=function(){var values=d3_identity,order=d3_layout_stackOrderDefault,offset=d3_layout_stackOffsetZero,out=d3_layout_stackOut,x=d3_layout_stackX,y=d3_layout_stackY;function stack(data,index){if(!(n=data.length))return data;var series=data.map(function(d,i){return values.call(stack,d,i)});var points=series.map(function(d){return d.map(function(v,i){return[x.call(stack,v,i),y.call(stack,v,i)]})});var orders=order.call(stack,points,index);series=d3.permute(series,orders);points=d3.permute(points,orders);var offsets=offset.call(stack,points,index);var m=series[0].length,n,i,j,o;for(j=0;j<m;++j){out.call(stack,series[0][j],o=offsets[j],points[0][j][1]);for(i=1;i<n;++i){out.call(stack,series[i][j],o+=points[i-1][j][1],points[i][j][1])}}return data}stack.values=function(x){if(!arguments.length)return values;values=x;return stack};stack.order=function(x){if(!arguments.length)return order;order=typeof x==="function"?x:d3_layout_stackOrders.get(x)||d3_layout_stackOrderDefault;return stack};stack.offset=function(x){if(!arguments.length)return offset;offset=typeof x==="function"?x:d3_layout_stackOffsets.get(x)||d3_layout_stackOffsetZero;return stack};stack.x=function(z){if(!arguments.length)return x;x=z;return stack};stack.y=function(z){if(!arguments.length)return y;y=z;return stack};stack.out=function(z){if(!arguments.length)return out;out=z;return stack};return stack};function d3_layout_stackX(d){return d.x}function d3_layout_stackY(d){return d.y}function d3_layout_stackOut(d,y0,y){d.y0=y0;d.y=y}var d3_layout_stackOrders=d3.map({"inside-out":function(data){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){return max[a]-max[b]}),top=0,bottom=0,tops=[],bottoms=[];for(i=0;i<n;++i){j=index[i];if(top<bottom){top+=sums[j];tops.push(j)}else{bottom+=sums[j];bottoms.push(j)}}return bottoms.reverse().concat(tops)},reverse:function(data){return d3.range(data.length).reverse()},default:d3_layout_stackOrderDefault});var d3_layout_stackOffsets=d3.map({silhouette:function(data){var n=data.length,m=data[0].length,sums=[],max=0,i,j,o,y0=[];for(j=0;j<m;++j){for(i=0,o=0;i<n;i++)o+=data[i][j][1];if(o>max)max=o;sums.push(o)}for(j=0;j<m;++j){y0[j]=(max-sums[j])/2}return y0},wiggle:function(data){var n=data.length,x=data[0],m=x.length,i,j,k,s1,s2,s3,dx,o,o0,y0=[];y0[0]=o=o0=0;for(j=1;j<m;++j){for(i=0,s1=0;i<n;++i)s1+=data[i][j][1];for(i=0,s2=0,dx=x[j][0]-x[j-1][0];i<n;++i){for(k=0,s3=(data[i][j][1]-data[i][j-1][1])/(2*dx);k<i;++k){s3+=(data[k][j][1]-data[k][j-1][1])/dx}s2+=s3*data[i][j][1]}y0[j]=o-=s1?s2/s1*dx:0;if(o<o0)o0=o}for(j=0;j<m;++j)y0[j]-=o0;return y0},expand:function(data){var n=data.length,m=data[0].length,k=1/n,i,j,o,y0=[];for(j=0;j<m;++j){for(i=0,o=0;i<n;i++)o+=data[i][j][1];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}for(j=0;j<m;++j)y0[j]=0;return y0},zero:d3_layout_stackOffsetZero});function d3_layout_stackOrderDefault(data){return d3.range(data.length)}function d3_layout_stackOffsetZero(data){var j=-1,m=data[0].length,y0=[];while(++j<m)y0[j]=0;return y0}function d3_layout_stackMaxIndex(array){var i=1,j=0,v=array[0][1],k,n=array.length;for(;i<n;++i){if((k=array[i][1])>v){j=i;v=k}}return j}function d3_layout_stackReduceSum(d){return d.reduce(d3_layout_stackSum,0)}function d3_layout_stackSum(p,d){return p+d[1]}d3.layout.histogram=function(){var frequency=true,valuer=Number,ranger=d3_layout_histogramRange,binner=d3_layout_histogramBinSturges;function histogram(data,i){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;while(++i<m){bin=bins[i]=[];bin.dx=thresholds[i+1]-(bin.x=thresholds[i]);bin.y=0}if(m>0){i=-1;while(++i<n){x=values[i];if(x>=range[0]&&x<=range[1]){bin=bins[d3.bisect(thresholds,x,1,m)-1];bin.y+=k;bin.push(data[i])}}}return bins}histogram.value=function(x){if(!arguments.length)return valuer;valuer=x;return histogram};histogram.range=function(x){if(!arguments.length)return ranger;ranger=d3_functor(x);return histogram};histogram.bins=function(x){if(!arguments.length)return binner;binner=typeof x==="number"?function(range){return d3_layout_histogramBinFixed(range,x)}:d3_functor(x);return histogram};histogram.frequency=function(x){if(!arguments.length)return frequency;frequency=!!x;return histogram};return histogram};function d3_layout_histogramBinSturges(range,values){return d3_layout_histogramBinFixed(range,Math.ceil(Math.log(values.length)/Math.LN2+1))}function d3_layout_histogramBinFixed(range,n){var x=-1,b=+range[0],m=(range[1]-b)/n,f=[];while(++x<=n)f[x]=m*x+b;return f}function d3_layout_histogramRange(values){return[d3.min(values),d3.max(values)]}d3.layout.pack=function(){var hierarchy=d3.layout.hierarchy().sort(d3_layout_packSort),padding=0,size=[1,1],radius;function pack(d,i){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(){return radius};root.x=root.y=0;d3_layout_hierarchyVisitAfter(root,function(d){d.r=+r(d.value)});d3_layout_hierarchyVisitAfter(root,d3_layout_packSiblings);if(padding){var dr=padding*(radius?1:Math.max(2*root.r/w,2*root.r/h))/2;d3_layout_hierarchyVisitAfter(root,function(d){d.r+=dr});d3_layout_hierarchyVisitAfter(root,d3_layout_packSiblings);d3_layout_hierarchyVisitAfter(root,function(d){d.r-=dr})}d3_layout_packTransform(root,w/2,h/2,radius?1:1/Math.max(2*root.r/w,2*root.r/h));return nodes}pack.size=function(_){if(!arguments.length)return size;size=_;return pack};pack.radius=function(_){if(!arguments.length)return radius;radius=_==null||typeof _==="function"?_:+_;return pack};pack.padding=function(_){if(!arguments.length)return padding;padding=+_;return pack};return d3_layout_hierarchyRebind(pack,hierarchy)};function d3_layout_packSort(a,b){return a.value-b.value}function d3_layout_packInsert(a,b){var c=a._pack_next;a._pack_next=b;b._pack_prev=a;b._pack_next=c;c._pack_prev=b}function d3_layout_packSplice(a,b){a._pack_next=b;b._pack_prev=a}function d3_layout_packIntersects(a,b){var dx=b.x-a.x,dy=b.y-a.y,dr=a.r+b.r;return.999*dr*dr>dx*dx+dy*dy}function d3_layout_packSiblings(node){if(!(nodes=node.children)||!(n=nodes.length))return;var nodes,xMin=Infinity,xMax=-Infinity,yMin=Infinity,yMax=-Infinity,a,b,c,i,j,k,n;function bound(node){xMin=Math.min(node.x-node.r,xMin);xMax=Math.max(node.x+node.r,xMax);yMin=Math.min(node.y-node.r,yMin);yMax=Math.max(node.y+node.r,yMax)}nodes.forEach(d3_layout_packLink);a=nodes[0];a.x=-a.r;a.y=0;bound(a);if(n>1){b=nodes[1];b.x=b.r;b.y=0;bound(b);if(n>2){c=nodes[2];d3_layout_packPlace(a,b,c);bound(c);d3_layout_packInsert(a,c);a._pack_prev=c;d3_layout_packInsert(c,b);b=a._pack_next;for(i=3;i<n;i++){d3_layout_packPlace(a,b,c=nodes[i]);var isect=0,s1=1,s2=1;for(j=b._pack_next;j!==b;j=j._pack_next,s1++){if(d3_layout_packIntersects(j,c)){isect=1;break}}if(isect==1){for(k=a._pack_prev;k!==j._pack_prev;k=k._pack_prev,s2++){if(d3_layout_packIntersects(k,c)){break}}}if(isect){if(s1<s2||s1==s2&&b.r<a.r)d3_layout_packSplice(a,b=j);else d3_layout_packSplice(a=k,b);i--}else{d3_layout_packInsert(a,c);b=c;bound(c)}}}}var cx=(xMin+xMax)/2,cy=(yMin+yMax)/2,cr=0;for(i=0;i<n;i++){c=nodes[i];c.x-=cx;c.y-=cy;cr=Math.max(cr,c.r+Math.sqrt(c.x*c.x+c.y*c.y))}node.r=cr;nodes.forEach(d3_layout_packUnlink)}function d3_layout_packLink(node){node._pack_next=node._pack_prev=node}function d3_layout_packUnlink(node){delete node._pack_next;delete node._pack_prev}function d3_layout_packTransform(node,x,y,k){var children=node.children;node.x=x+=k*node.x;node.y=y+=k*node.y;node.r*=k;if(children){var i=-1,n=children.length;while(++i<n)d3_layout_packTransform(children[i],x,y,k)}}function d3_layout_packPlace(a,b,c){var db=a.r+c.r,dx=b.x-a.x,dy=b.y-a.y;if(db&&(dx||dy)){var da=b.r+c.r,dc=dx*dx+dy*dy;da*=da;db*=db;var x=.5+(db-da)/(2*dc),y=Math.sqrt(Math.max(0,2*da*(db+dc)-(db-=dc)*db-da*da))/(2*dc);c.x=a.x+x*dx+y*dy;c.y=a.y+x*dy-y*dx}else{c.x=a.x+db;c.y=a.y}}d3.layout.tree=function(){var hierarchy=d3.layout.hierarchy().sort(null).value(null),separation=d3_layout_treeSeparation,size=[1,1],nodeSize=null;function tree(d,i){var nodes=hierarchy.call(this,d,i),root0=nodes[0],root1=wrapTree(root0);d3_layout_hierarchyVisitAfter(root1,firstWalk),root1.parent.m=-root1.z;d3_layout_hierarchyVisitBefore(root1,secondWalk);if(nodeSize)d3_layout_hierarchyVisitBefore(root0,sizeNode);else{var left=root0,right=root0,bottom=root0;d3_layout_hierarchyVisitBefore(root0,function(node){if(node.x<left.x)left=node;if(node.x>right.x)right=node;if(node.depth>bottom.depth)bottom=node});var tx=separation(left,right)/2-left.x,kx=size[0]/(right.x+separation(right,left)/2+tx),ky=size[1]/(bottom.depth||1);d3_layout_hierarchyVisitBefore(root0,function(node){node.x=(node.x+tx)*kx;node.y=node.depth*ky})}return nodes}function wrapTree(root0){var root1={A:null,children:[root0]},queue=[root1],node1;while((node1=queue.pop())!=null){for(var children=node1.children,child,i=0,n=children.length;i<n;++i){queue.push((children[i]=child={_:children[i],parent:node1,children:(child=children[i].children)&&child.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:i}).a=child)}}return root1.children[0]}function firstWalk(v){var children=v.children,siblings=v.parent.children,w=v.i?siblings[v.i-1]:null;if(children.length){d3_layout_treeShift(v);var midpoint=(children[0].z+children[children.length-1].z)/2;if(w){v.z=w.z+separation(v._,w._);v.m=v.z-midpoint}else{v.z=midpoint}}else if(w){v.z=w.z+separation(v._,w._)}v.parent.A=apportion(v,w,v.parent.A||siblings[0])}function secondWalk(v){v._.x=v.z+v.parent.m;v.m+=v.parent.m}function apportion(v,w,ancestor){if(w){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;while(vim=d3_layout_treeRight(vim),vip=d3_layout_treeLeft(vip),vim&&vip){vom=d3_layout_treeLeft(vom);vop=d3_layout_treeRight(vop);vop.a=v;shift=vim.z+sim-vip.z-sip+separation(vim._,vip._);if(shift>0){d3_layout_treeMove(d3_layout_treeAncestor(vim,v,ancestor),v,shift);sip+=shift;sop+=shift}sim+=vim.m;sip+=vip.m;som+=vom.m;sop+=vop.m}if(vim&&!d3_layout_treeRight(vop)){vop.t=vim;vop.m+=sim-sop}if(vip&&!d3_layout_treeLeft(vom)){vom.t=vip;vom.m+=sip-som;ancestor=v}}return ancestor}function sizeNode(node){node.x*=size[0];node.y=node.depth*size[1]}tree.separation=function(x){if(!arguments.length)return separation;separation=x;return tree};tree.size=function(x){if(!arguments.length)return nodeSize?null:size;nodeSize=(size=x)==null?sizeNode:null;return tree};tree.nodeSize=function(x){if(!arguments.length)return nodeSize?size:null;nodeSize=(size=x)==null?null:sizeNode;return tree};return d3_layout_hierarchyRebind(tree,hierarchy)};function d3_layout_treeSeparation(a,b){return a.parent==b.parent?1:2}function d3_layout_treeLeft(v){var children=v.children;return children.length?children[0]:v.t}function d3_layout_treeRight(v){var children=v.children,n;return(n=children.length)?children[n-1]:v.t}function d3_layout_treeMove(wm,wp,shift){var change=shift/(wp.i-wm.i);wp.c-=change;wp.s+=shift;wm.c+=change;wp.z+=shift;wp.m+=shift}function d3_layout_treeShift(v){var shift=0,change=0,children=v.children,i=children.length,w;while(--i>=0){w=children[i];w.z+=shift;w.m+=shift;shift+=w.s+(change+=w.c)}}function d3_layout_treeAncestor(vim,v,ancestor){return vim.a.parent===v.parent?vim.a:ancestor}d3.layout.cluster=function(){var hierarchy=d3.layout.hierarchy().sort(null).value(null),separation=d3_layout_treeSeparation,size=[1,1],nodeSize=false;function cluster(d,i){var nodes=hierarchy.call(this,d,i),root=nodes[0],previousNode,x=0;d3_layout_hierarchyVisitAfter(root,function(node){var children=node.children;if(children&&children.length){node.x=d3_layout_clusterX(children);node.y=d3_layout_clusterY(children)}else{node.x=previousNode?x+=separation(node,previousNode):0;node.y=0;previousNode=node}});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;d3_layout_hierarchyVisitAfter(root,nodeSize?function(node){node.x=(node.x-root.x)*size[0];node.y=(root.y-node.y)*size[1]}:function(node){node.x=(node.x-x0)/(x1-x0)*size[0];node.y=(1-(root.y?node.y/root.y:1))*size[1]});return nodes}cluster.separation=function(x){if(!arguments.length)return separation;separation=x;return cluster};cluster.size=function(x){if(!arguments.length)return nodeSize?null:size;nodeSize=(size=x)==null;return cluster};cluster.nodeSize=function(x){if(!arguments.length)return nodeSize?size:null;nodeSize=(size=x)!=null;return cluster};return d3_layout_hierarchyRebind(cluster,hierarchy)};function d3_layout_clusterY(children){return 1+d3.max(children,function(child){return child.y})}function d3_layout_clusterX(children){return children.reduce(function(x,child){return x+child.x},0)/children.length}function d3_layout_clusterLeft(node){var children=node.children;return children&&children.length?d3_layout_clusterLeft(children[0]):node}function d3_layout_clusterRight(node){var children=node.children,n;return children&&(n=children.length)?d3_layout_clusterRight(children[n-1]):node}d3.layout.treemap=function(){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));function scale(children,k){var i=-1,n=children.length,child,area;while(++i<n){area=(child=children[i]).value*(k<0?0:k);child.area=isNaN(area)||area<=0?0:area}}function squarify(node){var children=node.children;if(children&&children.length){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;scale(remaining,rect.dx*rect.dy/node.value);row.area=0;while((n=remaining.length)>0){row.push(child=remaining[n-1]);row.area+=child.area;if(mode!=="squarify"||(score=worst(row,u))<=best){remaining.pop();best=score}else{row.area-=row.pop().area;position(row,u,rect,false);u=Math.min(rect.dx,rect.dy);row.length=row.area=0;best=Infinity}}if(row.length){position(row,u,rect,true);row.length=row.area=0}children.forEach(squarify)}}function stickify(node){var children=node.children;if(children&&children.length){var rect=pad(node),remaining=children.slice(),child,row=[];scale(remaining,rect.dx*rect.dy/node.value);row.area=0;while(child=remaining.pop()){row.push(child);row.area+=child.area;if(child.z!=null){position(row,child.z?rect.dx:rect.dy,rect,!remaining.length);row.length=row.area=0}}children.forEach(stickify)}}function worst(row,u){var s=row.area,r,rmax=0,rmin=Infinity,i=-1,n=row.length;while(++i<n){if(!(r=row[i].area))continue;if(r<rmin)rmin=r;if(r>rmax)rmax=r}s*=s;u*=u;return s?Math.max(u*rmax*ratio/s,s/(u*rmin*ratio)):Infinity}function position(row,u,rect,flush){var i=-1,n=row.length,x=rect.x,y=rect.y,v=u?round(row.area/u):0,o;if(u==rect.dx){if(flush||v>rect.dy)v=rect.dy;while(++i<n){o=row[i];o.x=x;o.y=y;o.dy=v;x+=o.dx=Math.min(rect.x+rect.dx-x,v?round(o.area/v):0)}o.z=true;o.dx+=rect.x+rect.dx-x;rect.y+=v;rect.dy-=v}else{if(flush||v>rect.dx)v=rect.dx;while(++i<n){o=row[i];o.x=x;o.y=y;o.dx=v;y+=o.dy=Math.min(rect.y+rect.dy-y,v?round(o.area/v):0)}o.z=false;o.dy+=rect.y+rect.dy-y;rect.x+=v;rect.dx-=v}}function treemap(d){var nodes=stickies||hierarchy(d),root=nodes[0];root.x=root.y=0;if(root.value)root.dx=size[0],root.dy=size[1];else root.dx=root.dy=0;if(stickies)hierarchy.revalue(root);scale([root],root.dx*root.dy/root.value);(stickies?stickify:squarify)(root);if(sticky)stickies=nodes;return nodes}treemap.size=function(x){if(!arguments.length)return size;size=x;return treemap};treemap.padding=function(x){if(!arguments.length)return padding;function padFunction(node){var p=x.call(treemap,node,node.depth);return p==null?d3_layout_treemapPadNull(node):d3_layout_treemapPad(node,typeof p==="number"?[p,p,p,p]:p)}function padConstant(node){return d3_layout_treemapPad(node,x)}var type;pad=(padding=x)==null?d3_layout_treemapPadNull:(type=typeof x)==="function"?padFunction:type==="number"?(x=[x,x,x,x],padConstant):padConstant;return treemap};treemap.round=function(x){if(!arguments.length)return round!=Number;round=x?Math.round:Number;return treemap};treemap.sticky=function(x){if(!arguments.length)return sticky;sticky=x;stickies=null;return treemap};treemap.ratio=function(x){if(!arguments.length)return ratio;ratio=x;return treemap};treemap.mode=function(x){if(!arguments.length)return mode;mode=x+"";return treemap};return d3_layout_hierarchyRebind(treemap,hierarchy)};function d3_layout_treemapPadNull(node){return{x:node.x,y:node.y,dx:node.dx,dy:node.dy}}function d3_layout_treemapPad(node,padding){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];if(dx<0){x+=dx/2;dx=0}if(dy<0){y+=dy/2;dy=0}return{x:x,y:y,dx:dx,dy:dy}}d3.random={normal:function(µ,σ){var n=arguments.length;if(n<2)σ=1;if(n<1)µ=0;return function(){var x,y,r;do{x=Math.random()*2-1;y=Math.random()*2-1;r=x*x+y*y}while(!r||r>1);return µ+σ*x*Math.sqrt(-2*Math.log(r)/r)}},logNormal:function(){var random=d3.random.normal.apply(d3,arguments);return function(){return Math.exp(random())}},bates:function(m){var random=d3.random.irwinHall(m);return function(){return random()/m}},irwinHall:function(m){return function(){for(var s=0,j=0;j<m;j++)s+=Math.random();return s}}};d3.scale={};function d3_scaleExtent(domain){var start=domain[0],stop=domain[domain.length-1];return start<stop?[start,stop]:[stop,start]}function d3_scaleRange(scale){return scale.rangeExtent?scale.rangeExtent():d3_scaleExtent(scale.range())}function d3_scale_bilinear(domain,range,uninterpolate,interpolate){var u=uninterpolate(domain[0],domain[1]),i=interpolate(range[0],range[1]);return function(x){return i(u(x))}}function d3_scale_nice(domain,nice){var i0=0,i1=domain.length-1,x0=domain[i0],x1=domain[i1],dx;if(x1<x0){dx=i0,i0=i1,i1=dx;dx=x0,x0=x1,x1=dx}domain[i0]=nice.floor(x0);domain[i1]=nice.ceil(x1);return domain}function d3_scale_niceStep(step){return step?{floor:function(x){return Math.floor(x/step)*step},ceil:function(x){return Math.ceil(x/step)*step}}:d3_scale_niceIdentity}var d3_scale_niceIdentity={floor:d3_identity,ceil:d3_identity};function d3_scale_polylinear(domain,range,uninterpolate,interpolate){var u=[],i=[],j=0,k=Math.min(domain.length,range.length)-1;if(domain[k]<domain[0]){domain=domain.slice().reverse();range=range.slice().reverse()}while(++j<=k){u.push(uninterpolate(domain[j-1],domain[j]));i.push(interpolate(range[j-1],range[j]))}return function(x){var j=d3.bisect(domain,x,1,k)-1;return i[j](u[j](x))}}d3.scale.linear=function(){return d3_scale_linear([0,1],[0,1],d3_interpolate,false)};function d3_scale_linear(domain,range,interpolate,clamp){var output,input;function rescale(){var linear=Math.min(domain.length,range.length)>2?d3_scale_polylinear:d3_scale_bilinear,uninterpolate=clamp?d3_uninterpolateClamp:d3_uninterpolateNumber;output=linear(domain,range,uninterpolate,interpolate);input=linear(range,domain,uninterpolate,d3_interpolate);return scale}function scale(x){return output(x)}scale.invert=function(y){return input(y)};scale.domain=function(x){if(!arguments.length)return domain;domain=x.map(Number);return rescale()};scale.range=function(x){if(!arguments.length)return range;range=x;return rescale()};scale.rangeRound=function(x){return scale.range(x).interpolate(d3_interpolateRound)};scale.clamp=function(x){if(!arguments.length)return clamp;clamp=x;return rescale()};scale.interpolate=function(x){if(!arguments.length)return interpolate;interpolate=x;return rescale()};scale.ticks=function(m){return d3_scale_linearTicks(domain,m)};scale.tickFormat=function(m,format){return d3_scale_linearTickFormat(domain,m,format)};scale.nice=function(m){d3_scale_linearNice(domain,m);return rescale()};scale.copy=function(){return d3_scale_linear(domain,range,interpolate,clamp)};return rescale()}function d3_scale_linearRebind(scale,linear){return d3.rebind(scale,linear,"range","rangeRound","interpolate","clamp")}function d3_scale_linearNice(domain,m){d3_scale_nice(domain,d3_scale_niceStep(d3_scale_linearTickRange(domain,m)[2]));d3_scale_nice(domain,d3_scale_niceStep(d3_scale_linearTickRange(domain,m)[2]));return domain}function d3_scale_linearTickRange(domain,m){if(m==null)m=10;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;if(err<=.15)step*=10;else if(err<=.35)step*=5;else if(err<=.75)step*=2;extent[0]=Math.ceil(extent[0]/step)*step;extent[1]=Math.floor(extent[1]/step)*step+step*.5;extent[2]=step;return extent}function d3_scale_linearTicks(domain,m){return d3.range.apply(d3,d3_scale_linearTickRange(domain,m))}function d3_scale_linearTickFormat(domain,m,format){var range=d3_scale_linearTickRange(domain,m);if(format){var match=d3_format_re.exec(format);match.shift();if(match[8]==="s"){var prefix=d3.formatPrefix(Math.max(abs(range[0]),abs(range[1])));if(!match[7])match[7]="."+d3_scale_linearPrecision(prefix.scale(range[2]));match[8]="f";format=d3.format(match.join(""));return function(d){return format(prefix.scale(d))+prefix.symbol}}if(!match[7])match[7]="."+d3_scale_linearFormatPrecision(match[8],range);format=match.join("")}else{format=",."+d3_scale_linearPrecision(range[2])+"f"}return d3.format(format)}var d3_scale_linearFormatSignificant={s:1,g:1,p:1,r:1,e:1};function d3_scale_linearPrecision(value){return-Math.floor(Math.log(value)/Math.LN10+.01)}function d3_scale_linearFormatPrecision(type,range){var p=d3_scale_linearPrecision(range[2]);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}d3.scale.log=function(){return d3_scale_log(d3.scale.linear().domain([0,1]),10,true,[1,10])};function d3_scale_log(linear,base,positive,domain){function log(x){return(positive?Math.log(x<0?0:x):-Math.log(x>0?0:-x))/Math.log(base)}function pow(x){return positive?Math.pow(base,x):-Math.pow(base,-x)}function scale(x){return linear(log(x))}scale.invert=function(x){return pow(linear.invert(x))};scale.domain=function(x){if(!arguments.length)return domain;positive=x[0]>=0;linear.domain((domain=x.map(Number)).map(log));return scale};scale.base=function(_){if(!arguments.length)return base;base=+_;linear.domain(domain.map(log));return scale};scale.nice=function(){var niced=d3_scale_nice(domain.map(log),positive?Math:d3_scale_logNiceNegative);linear.domain(niced);domain=niced.map(pow);return scale};scale.ticks=function(){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;if(isFinite(j-i)){if(positive){for(;i<j;i++)for(var k=1;k<n;k++)ticks.push(pow(i)*k);ticks.push(pow(i))}else{ticks.push(pow(i));for(;i++<j;)for(var k=n-1;k>0;k--)ticks.push(pow(i)*k)}for(i=0;ticks[i]<u;i++){}for(j=ticks.length;ticks[j-1]>v;j--){}ticks=ticks.slice(i,j)}return ticks};scale.tickFormat=function(n,format){if(!arguments.length)return d3_scale_logFormat;if(arguments.length<2)format=d3_scale_logFormat;else if(typeof format!=="function")format=d3.format(format);var k=Math.max(1,base*n/scale.ticks().length);return function(d){var i=d/pow(Math.round(log(d)));if(i*base<base-.5)i*=base;return i<=k?format(d):""}};scale.copy=function(){return d3_scale_log(linear.copy(),base,positive,domain)};return d3_scale_linearRebind(scale,linear)}var d3_scale_logFormat=d3.format(".0e"),d3_scale_logNiceNegative={floor:function(x){return-Math.ceil(-x)},ceil:function(x){return-Math.floor(-x)}};d3.scale.pow=function(){return d3_scale_pow(d3.scale.linear(),1,[0,1])};function d3_scale_pow(linear,exponent,domain){var powp=d3_scale_powPow(exponent),powb=d3_scale_powPow(1/exponent);function scale(x){return linear(powp(x))}scale.invert=function(x){return powb(linear.invert(x))};scale.domain=function(x){if(!arguments.length)return domain;linear.domain((domain=x.map(Number)).map(powp));return scale};scale.ticks=function(m){return d3_scale_linearTicks(domain,m)};scale.tickFormat=function(m,format){return d3_scale_linearTickFormat(domain,m,format)};scale.nice=function(m){return scale.domain(d3_scale_linearNice(domain,m))};scale.exponent=function(x){if(!arguments.length)return exponent;powp=d3_scale_powPow(exponent=x);powb=d3_scale_powPow(1/exponent);linear.domain(domain.map(powp));return scale};scale.copy=function(){return d3_scale_pow(linear.copy(),exponent,domain)};return d3_scale_linearRebind(scale,linear)}function d3_scale_powPow(e){return function(x){return x<0?-Math.pow(-x,e):Math.pow(x,e)}}d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)};d3.scale.ordinal=function(){return d3_scale_ordinal([],{t:"range",a:[[]]})};function d3_scale_ordinal(domain,ranger){var index,range,rangeBand;function scale(x){return range[((index.get(x)||(ranger.t==="range"?index.set(x,domain.push(x)):NaN))-1)%range.length]}function steps(start,step){return d3.range(domain.length).map(function(i){return start+step*i})}scale.domain=function(x){if(!arguments.length)return domain;domain=[];index=new d3_Map;var i=-1,n=x.length,xi;while(++i<n)if(!index.has(xi=x[i]))index.set(xi,domain.push(xi));return scale[ranger.t].apply(scale,ranger.a)};scale.range=function(x){if(!arguments.length)return range;range=x;rangeBand=0;ranger={t:"range",a:arguments};return scale};scale.rangePoints=function(x,padding){if(arguments.length<2)padding=0;var start=x[0],stop=x[1],step=domain.length<2?(start=(start+stop)/2,0):(stop-start)/(domain.length-1+padding);range=steps(start+step*padding/2,step);rangeBand=0;ranger={t:"rangePoints",a:arguments};return scale};scale.rangeRoundPoints=function(x,padding){if(arguments.length<2)padding=0;var start=x[0],stop=x[1],step=domain.length<2?(start=stop=Math.round((start+stop)/2),0):(stop-start)/(domain.length-1+padding)|0;range=steps(start+Math.round(step*padding/2+(stop-start-(domain.length-1+padding)*step)/2),step);rangeBand=0;ranger={t:"rangeRoundPoints",a:arguments};return scale};scale.rangeBands=function(x,padding,outerPadding){if(arguments.length<2)padding=0;if(arguments.length<3)outerPadding=padding;var reverse=x[1]<x[0],start=x[reverse-0],stop=x[1-reverse],step=(stop-start)/(domain.length-padding+2*outerPadding);range=steps(start+step*outerPadding,step);if(reverse)range.reverse();rangeBand=step*(1-padding);ranger={t:"rangeBands",a:arguments};return scale};scale.rangeRoundBands=function(x,padding,outerPadding){if(arguments.length<2)padding=0;if(arguments.length<3)outerPadding=padding;var reverse=x[1]<x[0],start=x[reverse-0],stop=x[1-reverse],step=Math.floor((stop-start)/(domain.length-padding+2*outerPadding));range=steps(start+Math.round((stop-start-(domain.length-padding)*step)/2),step);if(reverse)range.reverse();rangeBand=Math.round(step*(1-padding));ranger={t:"rangeRoundBands",a:arguments};return scale};scale.rangeBand=function(){return rangeBand};scale.rangeExtent=function(){return d3_scaleExtent(ranger.a[0])};scale.copy=function(){return d3_scale_ordinal(domain,ranger)};return scale.domain(domain)}d3.scale.category10=function(){return d3.scale.ordinal().range(d3_category10)};d3.scale.category20=function(){return d3.scale.ordinal().range(d3_category20)};d3.scale.category20b=function(){return d3.scale.ordinal().range(d3_category20b)};d3.scale.category20c=function(){return d3.scale.ordinal().range(d3_category20c)};var d3_category10=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(d3_rgbString);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);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);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);d3.scale.quantile=function(){return d3_scale_quantile([],[])};function d3_scale_quantile(domain,range){var thresholds;function rescale(){var k=0,q=range.length;thresholds=[];while(++k<q)thresholds[k-1]=d3.quantile(domain,k/q);return scale}function scale(x){if(!isNaN(x=+x))return range[d3.bisect(thresholds,x)]}scale.domain=function(x){if(!arguments.length)return domain;domain=x.map(d3_number).filter(d3_numeric).sort(d3_ascending);return rescale()};scale.range=function(x){if(!arguments.length)return range;range=x;return rescale()};scale.quantiles=function(){return thresholds};scale.invertExtent=function(y){y=range.indexOf(y);return y<0?[NaN,NaN]:[y>0?thresholds[y-1]:domain[0],y<thresholds.length?thresholds[y]:domain[domain.length-1]]};scale.copy=function(){return d3_scale_quantile(domain,range)};return rescale()}d3.scale.quantize=function(){return d3_scale_quantize(0,1,[0,1])};function d3_scale_quantize(x0,x1,range){var kx,i;function scale(x){return range[Math.max(0,Math.min(i,Math.floor(kx*(x-x0))))]}function rescale(){kx=range.length/(x1-x0);i=range.length-1;return scale}scale.domain=function(x){if(!arguments.length)return[x0,x1];x0=+x[0];x1=+x[x.length-1];return rescale()};scale.range=function(x){if(!arguments.length)return range;range=x;return rescale()};scale.invertExtent=function(y){y=range.indexOf(y);y=y<0?NaN:y/kx+x0;return[y,y+1/kx]};scale.copy=function(){return d3_scale_quantize(x0,x1,range)};return rescale()}d3.scale.threshold=function(){return d3_scale_threshold([.5],[0,1])};function d3_scale_threshold(domain,range){function scale(x){if(x<=x)return range[d3.bisect(domain,x)]}scale.domain=function(_){if(!arguments.length)return domain;domain=_;return scale};scale.range=function(_){if(!arguments.length)return range;range=_;return scale};scale.invertExtent=function(y){y=range.indexOf(y);return[domain[y-1],domain[y]]};scale.copy=function(){return d3_scale_threshold(domain,range)};return scale}d3.scale.identity=function(){return d3_scale_identity([0,1])};function d3_scale_identity(domain){function identity(x){return+x}identity.invert=identity;identity.domain=identity.range=function(x){if(!arguments.length)return domain;domain=x.map(identity);return identity};identity.ticks=function(m){return d3_scale_linearTicks(domain,m)};identity.tickFormat=function(m,format){return d3_scale_linearTickFormat(domain,m,format)};identity.copy=function(){return d3_scale_identity(domain)};return identity}d3.svg={};function d3_zero(){return 0}d3.svg.arc=function(){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;function arc(){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;if(r1<r0)rc=r1,r1=r0,r0=rc;if(da>=τε)return circleSegment(r1,cw)+(r0?circleSegment(r0,1-cw):"")+"Z";var rc,cr,rp,ap,p0=0,p1=0,x0,y0,x1,y1,x2,y2,x3,y3,path=[];if(ap=(+padAngle.apply(this,arguments)||0)/2){rp=padRadius===d3_svg_arcAuto?Math.sqrt(r0*r0+r1*r1):+padRadius.apply(this,arguments);if(!cw)p1*=-1;if(r1)p1=d3_asin(rp/r1*Math.sin(ap));if(r0)p0=d3_asin(rp/r0*Math.sin(ap))}if(r1){x0=r1*Math.cos(a0+p1);y0=r1*Math.sin(a0+p1);x1=r1*Math.cos(a1-p1);y1=r1*Math.sin(a1-p1);var l1=Math.abs(a1-a0-2*p1)<=π?0:1;if(p1&&d3_svg_arcSweep(x0,y0,x1,y1)===cw^l1){var h1=(a0+a1)/2;x0=r1*Math.cos(h1);y0=r1*Math.sin(h1);x1=y1=null}}else{x0=y0=0}if(r0){x2=r0*Math.cos(a1-p0);y2=r0*Math.sin(a1-p0);x3=r0*Math.cos(a0+p0);y3=r0*Math.sin(a0+p0);var l0=Math.abs(a0-a1+2*p0)<=π?0:1;if(p0&&d3_svg_arcSweep(x2,y2,x3,y3)===1-cw^l0){var h0=(a0+a1)/2;x2=r0*Math.cos(h0);y2=r0*Math.sin(h0);x3=y3=null}}else{x2=y2=0}if(da>ε&&(rc=Math.min(Math.abs(r1-r0)/2,+cornerRadius.apply(this,arguments)))>.001){cr=r0<r1^cw?0:1;var rc1=rc,rc0=rc;if(da<π){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]);rc0=Math.min(rc,(r0-lc)/(kc-1));rc1=Math.min(rc,(r1-lc)/(kc+1))}if(x1!=null){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);if(rc===rc1){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])}else{path.push("M",t30[0],"A",rc1,",",rc1," 0 1,",cr," ",t12[0])}}else{path.push("M",x0,",",y0)}if(x3!=null){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);if(rc===rc0){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])}else{path.push("L",t21[0],"A",rc0,",",rc0," 0 0,",cr," ",t03[0])}}else{path.push("L",x2,",",y2)}}else{path.push("M",x0,",",y0);if(x1!=null)path.push("A",r1,",",r1," 0 ",l1,",",cw," ",x1,",",y1);path.push("L",x2,",",y2);if(x3!=null)path.push("A",r0,",",r0," 0 ",l0,",",1-cw," ",x3,",",y3)}path.push("Z");return path.join("")}function circleSegment(r1,cw){return"M0,"+r1+"A"+r1+","+r1+" 0 1,"+cw+" 0,"+-r1+"A"+r1+","+r1+" 0 1,"+cw+" 0,"+r1}arc.innerRadius=function(v){if(!arguments.length)return innerRadius;innerRadius=d3_functor(v);return arc};arc.outerRadius=function(v){if(!arguments.length)return outerRadius;outerRadius=d3_functor(v);return arc};arc.cornerRadius=function(v){if(!arguments.length)return cornerRadius;cornerRadius=d3_functor(v);return arc};arc.padRadius=function(v){if(!arguments.length)return padRadius;padRadius=v==d3_svg_arcAuto?d3_svg_arcAuto:d3_functor(v);return arc};arc.startAngle=function(v){if(!arguments.length)return startAngle;startAngle=d3_functor(v);return arc};arc.endAngle=function(v){if(!arguments.length)return endAngle;endAngle=d3_functor(v);return arc};arc.padAngle=function(v){if(!arguments.length)return padAngle;padAngle=d3_functor(v);return arc};arc.centroid=function(){var r=(+innerRadius.apply(this,arguments)+ +outerRadius.apply(this,arguments))/2,a=(+startAngle.apply(this,arguments)+ +endAngle.apply(this,arguments))/2-halfπ;return[Math.cos(a)*r,Math.sin(a)*r]};return arc};var d3_svg_arcAuto="auto";function d3_svg_arcInnerRadius(d){return d.innerRadius}function d3_svg_arcOuterRadius(d){return d.outerRadius}function d3_svg_arcStartAngle(d){return d.startAngle}function d3_svg_arcEndAngle(d){return d.endAngle}function d3_svg_arcPadAngle(d){return d&&d.padAngle}function d3_svg_arcSweep(x0,y0,x1,y1){return(x0-x1)*y0-(y0-y1)*x0>0?0:1}function d3_svg_arcCornerTangents(p0,p1,r1,rc,cw){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;if(dx0*dx0+dy0*dy0>dx1*dx1+dy1*dy1)cx0=cx1,cy0=cy1;return[[cx0-ox,cy0-oy],[cx0*r1/r,cy0*r1/r]]}function d3_svg_line(projection){var x=d3_geom_pointX,y=d3_geom_pointY,defined=d3_true,interpolate=d3_svg_lineLinear,interpolateKey=interpolate.key,tension=.7;function line(data){var segments=[],points=[],i=-1,n=data.length,d,fx=d3_functor(x),fy=d3_functor(y);function segment(){segments.push("M",interpolate(projection(points),tension))}while(++i<n){if(defined.call(this,d=data[i],i)){points.push([+fx.call(this,d,i),+fy.call(this,d,i)])}else if(points.length){segment();points=[]}}if(points.length)segment();return segments.length?segments.join(""):null}line.x=function(_){if(!arguments.length)return x;x=_;return line};line.y=function(_){if(!arguments.length)return y;y=_;return line};line.defined=function(_){if(!arguments.length)return defined;defined=_;return line};line.interpolate=function(_){if(!arguments.length)return interpolateKey;if(typeof _==="function")interpolateKey=interpolate=_;else interpolateKey=(interpolate=d3_svg_lineInterpolators.get(_)||d3_svg_lineLinear).key;return line};line.tension=function(_){if(!arguments.length)return tension;tension=_;return line};return line}d3.svg.line=function(){return d3_svg_line(d3_identity)};var d3_svg_lineInterpolators=d3.map({linear:d3_svg_lineLinear,"linear-closed":d3_svg_lineLinearClosed,step:d3_svg_lineStep,"step-before":d3_svg_lineStepBefore,"step-after":d3_svg_lineStepAfter,basis:d3_svg_lineBasis,"basis-open":d3_svg_lineBasisOpen,"basis-closed":d3_svg_lineBasisClosed,bundle:d3_svg_lineBundle,cardinal:d3_svg_lineCardinal,"cardinal-open":d3_svg_lineCardinalOpen,"cardinal-closed":d3_svg_lineCardinalClosed,monotone:d3_svg_lineMonotone});d3_svg_lineInterpolators.forEach(function(key,value){value.key=key;value.closed=/-closed$/.test(key)});function d3_svg_lineLinear(points){return points.length>1?points.join("L"):points+"Z"}function d3_svg_lineLinearClosed(points){return points.join("L")+"Z"}function d3_svg_lineStep(points){var i=0,n=points.length,p=points[0],path=[p[0],",",p[1]];while(++i<n)path.push("H",(p[0]+(p=points[i])[0])/2,"V",p[1]);if(n>1)path.push("H",p[0]);return path.join("")}function d3_svg_lineStepBefore(points){var i=0,n=points.length,p=points[0],path=[p[0],",",p[1]];while(++i<n)path.push("V",(p=points[i])[1],"H",p[0]);return path.join("")}function d3_svg_lineStepAfter(points){var i=0,n=points.length,p=points[0],path=[p[0],",",p[1]];while(++i<n)path.push("H",(p=points[i])[0],"V",p[1]);return path.join("")}function d3_svg_lineCardinalOpen(points,tension){return points.length<4?d3_svg_lineLinear(points):points[1]+d3_svg_lineHermite(points.slice(1,-1),d3_svg_lineCardinalTangents(points,tension))}function d3_svg_lineCardinalClosed(points,tension){return points.length<3?d3_svg_lineLinearClosed(points):points[0]+d3_svg_lineHermite((points.push(points[0]),points),d3_svg_lineCardinalTangents([points[points.length-2]].concat(points,[points[1]]),tension))}function d3_svg_lineCardinal(points,tension){return points.length<3?d3_svg_lineLinear(points):points[0]+d3_svg_lineHermite(points,d3_svg_lineCardinalTangents(points,tension))}function d3_svg_lineHermite(points,tangents){if(tangents.length<1||points.length!=tangents.length&&points.length!=tangents.length+2){return d3_svg_lineLinear(points)}var quad=points.length!=tangents.length,path="",p0=points[0],p=points[1],t0=tangents[0],t=t0,pi=1;if(quad){path+="Q"+(p[0]-t0[0]*2/3)+","+(p[1]-t0[1]*2/3)+","+p[0]+","+p[1];p0=points[1];pi=2}if(tangents.length>1){t=tangents[1];p=points[pi];pi++;path+="C"+(p0[0]+t0[0])+","+(p0[1]+t0[1])+","+(p[0]-t[0])+","+(p[1]-t[1])+","+p[0]+","+p[1];for(var i=2;i<tangents.length;i++,pi++){p=points[pi];t=tangents[i];path+="S"+(p[0]-t[0])+","+(p[1]-t[1])+","+p[0]+","+p[1]}}if(quad){var lp=points[pi];path+="Q"+(p[0]+t[0]*2/3)+","+(p[1]+t[1]*2/3)+","+lp[0]+","+lp[1]}return path}function d3_svg_lineCardinalTangents(points,tension){var tangents=[],a=(1-tension)/2,p0,p1=points[0],p2=points[1],i=1,n=points.length;while(++i<n){p0=p1;p1=p2;p2=points[i];tangents.push([a*(p2[0]-p0[0]),a*(p2[1]-p0[1])])}return tangents}function d3_svg_lineBasis(points){if(points.length<3)return d3_svg_lineLinear(points);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)];points.push(points[n-1]);while(++i<=n){pi=points[i];px.shift();px.push(pi[0]);py.shift();py.push(pi[1]);d3_svg_lineBasisBezier(path,px,py)}points.pop();path.push("L",pi);return path.join("")}function d3_svg_lineBasisOpen(points){if(points.length<4)return d3_svg_lineLinear(points);var path=[],i=-1,n=points.length,pi,px=[0],py=[0];while(++i<3){pi=points[i];px.push(pi[0]);py.push(pi[1])}path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3,px)+","+d3_svg_lineDot4(d3_svg_lineBasisBezier3,py));--i;while(++i<n){pi=points[i];px.shift();px.push(pi[0]);py.shift();py.push(pi[1]);d3_svg_lineBasisBezier(path,px,py)}return path.join("")}function d3_svg_lineBasisClosed(points){var path,i=-1,n=points.length,m=n+4,pi,px=[],py=[];while(++i<4){pi=points[i%n];px.push(pi[0]);py.push(pi[1])}path=[d3_svg_lineDot4(d3_svg_lineBasisBezier3,px),",",d3_svg_lineDot4(d3_svg_lineBasisBezier3,py)];--i;while(++i<m){pi=points[i%n];px.shift();px.push(pi[0]);py.shift();py.push(pi[1]);d3_svg_lineBasisBezier(path,px,py)}return path.join("")}function d3_svg_lineBundle(points,tension){var n=points.length-1;if(n){var x0=points[0][0],y0=points[0][1],dx=points[n][0]-x0,dy=points[n][1]-y0,i=-1,p,t;while(++i<=n){p=points[i];t=i/n;p[0]=tension*p[0]+(1-tension)*(x0+t*dx);p[1]=tension*p[1]+(1-tension)*(y0+t*dy)}}return d3_svg_lineBasis(points)}function d3_svg_lineDot4(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}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];function d3_svg_lineBasisBezier(path,x,y){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))}function d3_svg_lineSlope(p0,p1){return(p1[1]-p0[1])/(p1[0]-p0[0])}function d3_svg_lineFiniteDifferences(points){var i=0,j=points.length-1,m=[],p0=points[0],p1=points[1],d=m[0]=d3_svg_lineSlope(p0,p1);while(++i<j){m[i]=(d+(d=d3_svg_lineSlope(p0=p1,p1=points[i+1])))/2}m[i]=d;return m}function d3_svg_lineMonotoneTangents(points){var tangents=[],d,a,b,s,m=d3_svg_lineFiniteDifferences(points),i=-1,j=points.length-1;while(++i<j){d=d3_svg_lineSlope(points[i],points[i+1]);if(abs(d)<ε){m[i]=m[i+1]=0}else{a=m[i]/d;b=m[i+1]/d;s=a*a+b*b;if(s>9){s=d*3/Math.sqrt(s);m[i]=s*a;m[i+1]=s*b}}}i=-1;while(++i<=j){s=(points[Math.min(j,i+1)][0]-points[Math.max(0,i-1)][0])/(6*(1+m[i]*m[i]));tangents.push([s||0,m[i]*s||0])}return tangents}function d3_svg_lineMonotone(points){return points.length<3?d3_svg_lineLinear(points):points[0]+d3_svg_lineHermite(points,d3_svg_lineMonotoneTangents(points))}d3.svg.line.radial=function(){var line=d3_svg_line(d3_svg_lineRadial);line.radius=line.x,delete line.x;line.angle=line.y,delete line.y;return line};function d3_svg_lineRadial(points){var point,i=-1,n=points.length,r,a;while(++i<n){point=points[i];r=point[0];a=point[1]-halfπ;point[0]=r*Math.cos(a);point[1]=r*Math.sin(a)}return points}function d3_svg_area(projection){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;function area(data){var segments=[],points0=[],points1=[],i=-1,n=data.length,d,fx0=d3_functor(x0),fy0=d3_functor(y0),fx1=x0===x1?function(){return x}:d3_functor(x1),fy1=y0===y1?function(){return y}:d3_functor(y1),x,y;function segment(){segments.push("M",interpolate(projection(points1),tension),L,interpolateReverse(projection(points0.reverse()),tension),"Z")}while(++i<n){if(defined.call(this,d=data[i],i)){points0.push([x=+fx0.call(this,d,i),y=+fy0.call(this,d,i)]);points1.push([+fx1.call(this,d,i),+fy1.call(this,d,i)])}else if(points0.length){segment();points0=[];points1=[]}}if(points0.length)segment();return segments.length?segments.join(""):null}area.x=function(_){if(!arguments.length)return x1;x0=x1=_;return area};area.x0=function(_){if(!arguments.length)return x0;x0=_;return area};area.x1=function(_){if(!arguments.length)return x1;x1=_;return area};area.y=function(_){if(!arguments.length)return y1;y0=y1=_;return area};area.y0=function(_){if(!arguments.length)return y0;y0=_;return area};area.y1=function(_){if(!arguments.length)return y1;y1=_;return area};area.defined=function(_){if(!arguments.length)return defined;defined=_;return area};area.interpolate=function(_){if(!arguments.length)return interpolateKey;if(typeof _==="function")interpolateKey=interpolate=_;else interpolateKey=(interpolate=d3_svg_lineInterpolators.get(_)||d3_svg_lineLinear).key;interpolateReverse=interpolate.reverse||interpolate;L=interpolate.closed?"M":"L";return area};area.tension=function(_){if(!arguments.length)return tension;tension=_;return area};return area}d3_svg_lineStepBefore.reverse=d3_svg_lineStepAfter;d3_svg_lineStepAfter.reverse=d3_svg_lineStepBefore;d3.svg.area=function(){return d3_svg_area(d3_identity)};d3.svg.area.radial=function(){var area=d3_svg_area(d3_svg_lineRadial);area.radius=area.x,delete area.x;area.innerRadius=area.x0,delete area.x0;area.outerRadius=area.x1,delete area.x1;area.angle=area.y,delete area.y;area.startAngle=area.y0,delete area.y0;area.endAngle=area.y1,delete area.y1;return area};d3.svg.chord=function(){var source=d3_source,target=d3_target,radius=d3_svg_chordRadius,startAngle=d3_svg_arcStartAngle,endAngle=d3_svg_arcEndAngle;function chord(d,i){var s=subgroup(this,source,d,i),t=subgroup(this,target,d,i);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"}function subgroup(self,f,d,i){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π;return{r:r,a0:a0,a1:a1,p0:[r*Math.cos(a0),r*Math.sin(a0)],p1:[r*Math.cos(a1),r*Math.sin(a1)]}}function equals(a,b){return a.a0==b.a0&&a.a1==b.a1}function arc(r,p,a){return"A"+r+","+r+" 0 "+ +(a>π)+",1 "+p}function curve(r0,p0,r1,p1){return"Q 0,0 "+p1}chord.radius=function(v){if(!arguments.length)return radius;radius=d3_functor(v);return chord};chord.source=function(v){if(!arguments.length)return source;source=d3_functor(v);return chord};chord.target=function(v){if(!arguments.length)return target;target=d3_functor(v);return chord};chord.startAngle=function(v){if(!arguments.length)return startAngle;startAngle=d3_functor(v);return chord};chord.endAngle=function(v){if(!arguments.length)return endAngle;endAngle=d3_functor(v);return chord};return chord};function d3_svg_chordRadius(d){return d.radius}d3.svg.diagonal=function(){var source=d3_source,target=d3_target,projection=d3_svg_diagonalProjection;function diagonal(d,i){var p0=source.call(this,d,i),p3=target.call(this,d,i),m=(p0.y+p3.y)/2,p=[p0,{x:p0.x,y:m},{x:p3.x,y:m},p3];p=p.map(projection);return"M"+p[0]+"C"+p[1]+" "+p[2]+" "+p[3]}diagonal.source=function(x){if(!arguments.length)return source;source=d3_functor(x);return diagonal};diagonal.target=function(x){if(!arguments.length)return target;target=d3_functor(x);return diagonal};diagonal.projection=function(x){if(!arguments.length)return projection;projection=x;return diagonal};return diagonal};function d3_svg_diagonalProjection(d){return[d.x,d.y]}d3.svg.diagonal.radial=function(){var diagonal=d3.svg.diagonal(),projection=d3_svg_diagonalProjection,projection_=diagonal.projection;diagonal.projection=function(x){return arguments.length?projection_(d3_svg_diagonalRadialProjection(projection=x)):projection};return diagonal};function d3_svg_diagonalRadialProjection(projection){return function(){var d=projection.apply(this,arguments),r=d[0],a=d[1]-halfπ;return[r*Math.cos(a),r*Math.sin(a)]}}d3.svg.symbol=function(){var type=d3_svg_symbolType,size=d3_svg_symbolSize;function symbol(d,i){return(d3_svg_symbols.get(type.call(this,d,i))||d3_svg_symbolCircle)(size.call(this,d,i))}symbol.type=function(x){if(!arguments.length)return type;type=d3_functor(x);return symbol};symbol.size=function(x){if(!arguments.length)return size;size=d3_functor(x);return symbol};return symbol};function d3_svg_symbolSize(){return 64}function d3_svg_symbolType(){return"circle"}function d3_svg_symbolCircle(size){var r=Math.sqrt(size/π);return"M0,"+r+"A"+r+","+r+" 0 1,1 0,"+-r+"A"+r+","+r+" 0 1,1 0,"+r+"Z"}var d3_svg_symbols=d3.map({circle:d3_svg_symbolCircle,cross:function(size){var r=Math.sqrt(size/5)/2;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"},diamond:function(size){var ry=Math.sqrt(size/(2*d3_svg_symbolTan30)),rx=ry*d3_svg_symbolTan30;return"M0,"+-ry+"L"+rx+",0"+" 0,"+ry+" "+-rx+",0"+"Z"},square:function(size){var r=Math.sqrt(size)/2;return"M"+-r+","+-r+"L"+r+","+-r+" "+r+","+r+" "+-r+","+r+"Z"},"triangle-down":function(size){var rx=Math.sqrt(size/d3_svg_symbolSqrt3),ry=rx*d3_svg_symbolSqrt3/2;return"M0,"+ry+"L"+rx+","+-ry+" "+-rx+","+-ry+"Z"},"triangle-up":function(size){var rx=Math.sqrt(size/d3_svg_symbolSqrt3),ry=rx*d3_svg_symbolSqrt3/2;return"M0,"+-ry+"L"+rx+","+ry+" "+-rx+","+ry+"Z"}});d3.svg.symbolTypes=d3_svg_symbols.keys();var d3_svg_symbolSqrt3=Math.sqrt(3),d3_svg_symbolTan30=Math.tan(30*d3_radians);d3_selectionPrototype.transition=function(name){var id=d3_transitionInheritId||++d3_transitionId,ns=d3_transitionNamespace(name),subgroups=[],subgroup,node,transition=d3_transitionInherit||{time:Date.now(),ease:d3_ease_cubicInOut,delay:0,duration:250};for(var j=-1,m=this.length;++j<m;){subgroups.push(subgroup=[]);for(var group=this[j],i=-1,n=group.length;++i<n;){if(node=group[i])d3_transitionNode(node,i,ns,id,transition);subgroup.push(node)}}return d3_transition(subgroups,ns,id)};d3_selectionPrototype.interrupt=function(name){return this.each(name==null?d3_selection_interrupt:d3_selection_interruptNS(d3_transitionNamespace(name)))};var d3_selection_interrupt=d3_selection_interruptNS(d3_transitionNamespace());function d3_selection_interruptNS(ns){return function(){var lock,activeId,active;if((lock=this[ns])&&(active=lock[activeId=lock.active])){active.timer.c=null;active.timer.t=NaN;if(--lock.count)delete lock[activeId];else delete this[ns];lock.active+=.5;active.event&&active.event.interrupt.call(this,this.__data__,active.index)}}}function d3_transition(groups,ns,id){d3_subclass(groups,d3_transitionPrototype);groups.namespace=ns;groups.id=id;return groups}var d3_transitionPrototype=[],d3_transitionId=0,d3_transitionInheritId,d3_transitionInherit;d3_transitionPrototype.call=d3_selectionPrototype.call;d3_transitionPrototype.empty=d3_selectionPrototype.empty;d3_transitionPrototype.node=d3_selectionPrototype.node;d3_transitionPrototype.size=d3_selectionPrototype.size;d3.transition=function(selection,name){return selection&&selection.transition?d3_transitionInheritId?selection.transition(name):selection:d3.selection().transition(selection)};d3.transition.prototype=d3_transitionPrototype;d3_transitionPrototype.select=function(selector){var id=this.id,ns=this.namespace,subgroups=[],subgroup,subnode,node;selector=d3_selection_selector(selector);for(var j=-1,m=this.length;++j<m;){subgroups.push(subgroup=[]);for(var group=this[j],i=-1,n=group.length;++i<n;){if((node=group[i])&&(subnode=selector.call(node,node.__data__,i,j))){if("__data__"in node)subnode.__data__=node.__data__;d3_transitionNode(subnode,i,ns,id,node[ns][id]);subgroup.push(subnode)}else{subgroup.push(null)}}}return d3_transition(subgroups,ns,id)};d3_transitionPrototype.selectAll=function(selector){var id=this.id,ns=this.namespace,subgroups=[],subgroup,subnodes,node,subnode,transition;selector=d3_selection_selectorAll(selector);for(var j=-1,m=this.length;++j<m;){for(var group=this[j],i=-1,n=group.length;++i<n;){if(node=group[i]){transition=node[ns][id];subnodes=selector.call(node,node.__data__,i,j);subgroups.push(subgroup=[]);for(var k=-1,o=subnodes.length;++k<o;){if(subnode=subnodes[k])d3_transitionNode(subnode,k,ns,id,transition);subgroup.push(subnode)}}}}return d3_transition(subgroups,ns,id)};d3_transitionPrototype.filter=function(filter){var subgroups=[],subgroup,group,node;if(typeof filter!=="function")filter=d3_selection_filter(filter);for(var j=0,m=this.length;j<m;j++){subgroups.push(subgroup=[]);for(var group=this[j],i=0,n=group.length;i<n;i++){if((node=group[i])&&filter.call(node,node.__data__,i,j)){subgroup.push(node)}}}return d3_transition(subgroups,this.namespace,this.id)};d3_transitionPrototype.tween=function(name,tween){var id=this.id,ns=this.namespace;if(arguments.length<2)return this.node()[ns][id].tween.get(name);return d3_selection_each(this,tween==null?function(node){node[ns][id].tween.remove(name)}:function(node){node[ns][id].tween.set(name,tween)})};function d3_transition_tween(groups,name,value,tween){var id=groups.id,ns=groups.namespace;return d3_selection_each(groups,typeof value==="function"?function(node,i,j){node[ns][id].tween.set(name,tween(value.call(node,node.__data__,i,j)))}:(value=tween(value),function(node){node[ns][id].tween.set(name,value)}))}d3_transitionPrototype.attr=function(nameNS,value){if(arguments.length<2){for(value in nameNS)this.attr(value,nameNS[value]);return this}var interpolate=nameNS=="transform"?d3_interpolateTransform:d3_interpolate,name=d3.ns.qualify(nameNS);function attrNull(){this.removeAttribute(name)}function attrNullNS(){this.removeAttributeNS(name.space,name.local)}function attrTween(b){return b==null?attrNull:(b+="",function(){var a=this.getAttribute(name),i;return a!==b&&(i=interpolate(a,b),function(t){this.setAttribute(name,i(t))})})}function attrTweenNS(b){return b==null?attrNullNS:(b+="",function(){var a=this.getAttributeNS(name.space,name.local),i;return a!==b&&(i=interpolate(a,b),function(t){this.setAttributeNS(name.space,name.local,i(t))})})}return d3_transition_tween(this,"attr."+nameNS,value,name.local?attrTweenNS:attrTween)};d3_transitionPrototype.attrTween=function(nameNS,tween){var name=d3.ns.qualify(nameNS);function attrTween(d,i){var f=tween.call(this,d,i,this.getAttribute(name));return f&&function(t){this.setAttribute(name,f(t))}}function attrTweenNS(d,i){var f=tween.call(this,d,i,this.getAttributeNS(name.space,name.local));return f&&function(t){this.setAttributeNS(name.space,name.local,f(t))}}return this.tween("attr."+nameNS,name.local?attrTweenNS:attrTween)};d3_transitionPrototype.style=function(name,value,priority){var n=arguments.length;if(n<3){if(typeof name!=="string"){if(n<2)value="";for(priority in name)this.style(priority,name[priority],value);return this}priority=""}function styleNull(){this.style.removeProperty(name)}function styleString(b){return b==null?styleNull:(b+="",function(){var a=d3_window(this).getComputedStyle(this,null).getPropertyValue(name),i;return a!==b&&(i=d3_interpolate(a,b),function(t){this.style.setProperty(name,i(t),priority)})})}return d3_transition_tween(this,"style."+name,value,styleString)};d3_transitionPrototype.styleTween=function(name,tween,priority){if(arguments.length<3)priority="";function styleTween(d,i){var f=tween.call(this,d,i,d3_window(this).getComputedStyle(this,null).getPropertyValue(name));return f&&function(t){this.style.setProperty(name,f(t),priority)}}return this.tween("style."+name,styleTween)};d3_transitionPrototype.text=function(value){return d3_transition_tween(this,"text",value,d3_transition_text)};function d3_transition_text(b){if(b==null)b="";return function(){this.textContent=b}}d3_transitionPrototype.remove=function(){var ns=this.namespace;return this.each("end.transition",function(){var p;if(this[ns].count<2&&(p=this.parentNode))p.removeChild(this)})};d3_transitionPrototype.ease=function(value){var id=this.id,ns=this.namespace;if(arguments.length<1)return this.node()[ns][id].ease;if(typeof value!=="function")value=d3.ease.apply(d3,arguments);return d3_selection_each(this,function(node){node[ns][id].ease=value})};d3_transitionPrototype.delay=function(value){var id=this.id,ns=this.namespace;if(arguments.length<1)return this.node()[ns][id].delay;return d3_selection_each(this,typeof value==="function"?function(node,i,j){node[ns][id].delay=+value.call(node,node.__data__,i,j)}:(value=+value,function(node){node[ns][id].delay=value}))};d3_transitionPrototype.duration=function(value){var id=this.id,ns=this.namespace;if(arguments.length<1)return this.node()[ns][id].duration;return d3_selection_each(this,typeof value==="function"?function(node,i,j){node[ns][id].duration=Math.max(1,value.call(node,node.__data__,i,j))}:(value=Math.max(1,value),function(node){node[ns][id].duration=value}))};d3_transitionPrototype.each=function(type,listener){var id=this.id,ns=this.namespace;if(arguments.length<2){var inherit=d3_transitionInherit,inheritId=d3_transitionInheritId;try{d3_transitionInheritId=id;d3_selection_each(this,function(node,i,j){d3_transitionInherit=node[ns][id];type.call(node,node.__data__,i,j)})}finally{d3_transitionInherit=inherit;d3_transitionInheritId=inheritId}}else{d3_selection_each(this,function(node){var transition=node[ns][id];(transition.event||(transition.event=d3.dispatch("start","end","interrupt"))).on(type,listener)})}return this};d3_transitionPrototype.transition=function(){var id0=this.id,id1=++d3_transitionId,ns=this.namespace,subgroups=[],subgroup,group,node,transition;for(var j=0,m=this.length;j<m;j++){subgroups.push(subgroup=[]);for(var group=this[j],i=0,n=group.length;i<n;i++){if(node=group[i]){transition=node[ns][id0];d3_transitionNode(node,i,ns,id1,{time:transition.time,ease:transition.ease,delay:transition.delay+transition.duration,duration:transition.duration})}subgroup.push(node)}}return d3_transition(subgroups,ns,id1)};function d3_transitionNamespace(name){return name==null?"__transition__":"__transition_"+name+"__"}function d3_transitionNode(node,i,ns,id,inherit){var lock=node[ns]||(node[ns]={active:0,count:0}),transition=lock[id],time,timer,duration,ease,tweens;function schedule(elapsed){var delay=transition.delay;timer.t=delay+time;if(delay<=elapsed)return start(elapsed-delay);timer.c=start}function start(elapsed){var activeId=lock.active,active=lock[activeId];if(active){active.timer.c=null;active.timer.t=NaN;--lock.count;delete lock[activeId];active.event&&active.event.interrupt.call(node,node.__data__,active.index)}for(var cancelId in lock){if(+cancelId<id){var cancel=lock[cancelId];cancel.timer.c=null;cancel.timer.t=NaN;--lock.count;delete lock[cancelId]}}timer.c=tick;d3_timer(function(){if(timer.c&&tick(elapsed||1)){timer.c=null;timer.t=NaN}return 1},0,time);lock.active=id;transition.event&&transition.event.start.call(node,node.__data__,i);tweens=[];transition.tween.forEach(function(key,value){if(value=value.call(node,node.__data__,i)){tweens.push(value)}});ease=transition.ease;duration=transition.duration}function tick(elapsed){var t=elapsed/duration,e=ease(t),n=tweens.length;while(n>0){tweens[--n].call(node,e)}if(t>=1){transition.event&&transition.event.end.call(node,node.__data__,i);if(--lock.count)delete lock[id];else delete node[ns];return 1}}if(!transition){time=inherit.time;timer=d3_timer(schedule,0,time);transition=lock[id]={tween:new d3_Map,time:time,timer:timer,delay:inherit.delay,duration:inherit.duration,ease:inherit.ease,index:i};inherit=null;++lock.count}}d3.svg.axis=function(){var scale=d3.scale.linear(),orient=d3_svg_axisDefaultOrient,innerTickSize=6,outerTickSize=6,tickPadding=3,tickArguments_=[10],tickValues=null,tickFormat_;function axis(g){g.each(function(){var g=d3.select(this);var scale0=this.__chart__||scale,scale1=this.__chart__=scale.copy();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;var range=d3_scaleRange(scale1),path=g.selectAll(".domain").data([0]),pathUpdate=(path.enter().append("path").attr("class","domain"),d3.transition(path));tickEnter.append("line");tickEnter.append("text");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;if(orient==="bottom"||orient==="top"){tickTransform=d3_svg_axisX,x1="x",y1="y",x2="x2",y2="y2";text.attr("dy",sign<0?"0em":".71em").style("text-anchor","middle");pathUpdate.attr("d","M"+range[0]+","+sign*outerTickSize+"V0H"+range[1]+"V"+sign*outerTickSize)}else{tickTransform=d3_svg_axisY,x1="y",y1="x",x2="y2",y2="x2";text.attr("dy",".32em").style("text-anchor",sign<0?"end":"start");pathUpdate.attr("d","M"+sign*outerTickSize+","+range[0]+"H0V"+range[1]+"H"+sign*outerTickSize)}lineEnter.attr(y2,sign*innerTickSize);textEnter.attr(y1,sign*tickSpacing);lineUpdate.attr(x2,0).attr(y2,sign*innerTickSize);textUpdate.attr(x1,0).attr(y1,sign*tickSpacing);if(scale1.rangeBand){var x=scale1,dx=x.rangeBand()/2;scale0=scale1=function(d){return x(d)+dx}}else if(scale0.rangeBand){scale0=scale1}else{tickExit.call(tickTransform,scale1,scale0)}tickEnter.call(tickTransform,scale0,scale1);tickUpdate.call(tickTransform,scale1,scale1)})}axis.scale=function(x){if(!arguments.length)return scale;scale=x;return axis};axis.orient=function(x){if(!arguments.length)return orient;orient=x in d3_svg_axisOrients?x+"":d3_svg_axisDefaultOrient;return axis};axis.ticks=function(){if(!arguments.length)return tickArguments_;tickArguments_=d3_array(arguments);return axis};axis.tickValues=function(x){if(!arguments.length)return tickValues;tickValues=x;return axis};axis.tickFormat=function(x){if(!arguments.length)return tickFormat_;tickFormat_=x;return axis};axis.tickSize=function(x){var n=arguments.length;if(!n)return innerTickSize;innerTickSize=+x;outerTickSize=+arguments[n-1];return axis};axis.innerTickSize=function(x){if(!arguments.length)return innerTickSize;innerTickSize=+x;return axis};axis.outerTickSize=function(x){if(!arguments.length)return outerTickSize;outerTickSize=+x;return axis};axis.tickPadding=function(x){if(!arguments.length)return tickPadding;tickPadding=+x;return axis};axis.tickSubdivide=function(){return arguments.length&&axis};return axis};var d3_svg_axisDefaultOrient="bottom",d3_svg_axisOrients={top:1,right:1,bottom:1,left:1};function d3_svg_axisX(selection,x0,x1){selection.attr("transform",function(d){var v0=x0(d);return"translate("+(isFinite(v0)?v0:x1(d))+",0)"})}function d3_svg_axisY(selection,y0,y1){selection.attr("transform",function(d){var v0=y0(d);return"translate(0,"+(isFinite(v0)?v0:y1(d))+")"})}d3.svg.brush=function(){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];function brush(g){g.each(function(){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);var background=g.selectAll(".background").data([0]);background.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair");g.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var resize=g.selectAll(".resize").data(resizes,d3_identity);resize.exit().remove();resize.enter().append("g").attr("class",function(d){return"resize "+d}).style("cursor",function(d){return d3_svg_brushCursor[d]}).append("rect").attr("x",function(d){return/[ew]$/.test(d)?-3:null}).attr("y",function(d){return/^[ns]/.test(d)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden");resize.style("display",brush.empty()?"none":null);var gUpdate=d3.transition(g),backgroundUpdate=d3.transition(background),range;if(x){range=d3_scaleRange(x);backgroundUpdate.attr("x",range[0]).attr("width",range[1]-range[0]);redrawX(gUpdate)}if(y){range=d3_scaleRange(y);backgroundUpdate.attr("y",range[0]).attr("height",range[1]-range[0]);redrawY(gUpdate)}redraw(gUpdate)})}brush.event=function(g){g.each(function(){var event_=event.of(this,arguments),extent1={x:xExtent,y:yExtent,i:xExtentDomain,j:yExtentDomain},extent0=this.__chart__||extent1;this.__chart__=extent1;if(d3_transitionInheritId){d3.select(this).transition().each("start.brush",function(){xExtentDomain=extent0.i;yExtentDomain=extent0.j;xExtent=extent0.x;yExtent=extent0.y;event_({type:"brushstart"})}).tween("brush:brush",function(){var xi=d3_interpolateArray(xExtent,extent1.x),yi=d3_interpolateArray(yExtent,extent1.y);xExtentDomain=yExtentDomain=null;return function(t){xExtent=extent1.x=xi(t);yExtent=extent1.y=yi(t);event_({type:"brush",mode:"resize"})}}).each("end.brush",function(){xExtentDomain=extent1.i;yExtentDomain=extent1.j;event_({type:"brush",mode:"resize"});event_({type:"brushend"})})}else{event_({type:"brushstart"});event_({type:"brush",mode:"resize"});event_({type:"brushend"})}})};function redraw(g){g.selectAll(".resize").attr("transform",function(d){return"translate("+xExtent[+/e$/.test(d)]+","+yExtent[+/^s/.test(d)]+")"})}function redrawX(g){g.select(".extent").attr("x",xExtent[0]);g.selectAll(".extent,.n>rect,.s>rect").attr("width",xExtent[1]-xExtent[0])}function redrawY(g){g.select(".extent").attr("y",yExtent[0]);g.selectAll(".extent,.e>rect,.w>rect").attr("height",yExtent[1]-yExtent[0])}function brushstart(){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;var w=d3.select(d3_window(target)).on("keydown.brush",keydown).on("keyup.brush",keyup);if(d3.event.changedTouches){w.on("touchmove.brush",brushmove).on("touchend.brush",brushend)}else{w.on("mousemove.brush",brushmove).on("mouseup.brush",brushend)}g.interrupt().selectAll("*").interrupt();if(dragging){origin[0]=xExtent[0]-origin[0];origin[1]=yExtent[0]-origin[1]}else if(resizing){var ex=+/w$/.test(resizing),ey=+/^n/.test(resizing);offset=[xExtent[1-ex]-origin[0],yExtent[1-ey]-origin[1]];origin[0]=xExtent[ex];origin[1]=yExtent[ey]}else if(d3.event.altKey)center=origin.slice();g.style("pointer-events","none").selectAll(".resize").style("display",null);d3.select("body").style("cursor",eventTarget.style("cursor"));event_({type:"brushstart"});brushmove();function keydown(){if(d3.event.keyCode==32){if(!dragging){center=null;origin[0]-=xExtent[1];origin[1]-=yExtent[1];dragging=2}d3_eventPreventDefault()}}function keyup(){if(d3.event.keyCode==32&&dragging==2){origin[0]+=xExtent[1];origin[1]+=yExtent[1];dragging=0;d3_eventPreventDefault()}}function brushmove(){var point=d3.mouse(target),moved=false;if(offset){point[0]+=offset[0];point[1]+=offset[1]}if(!dragging){if(d3.event.altKey){if(!center)center=[(xExtent[0]+xExtent[1])/2,(yExtent[0]+yExtent[1])/2];origin[0]=xExtent[+(point[0]<center[0])];origin[1]=yExtent[+(point[1]<center[1])]}else center=null}if(resizingX&&move1(point,x,0)){redrawX(g);moved=true}if(resizingY&&move1(point,y,1)){redrawY(g);moved=true}if(moved){redraw(g);event_({type:"brush",mode:dragging?"move":"resize"})}}function move1(point,scale,i){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;if(dragging){r0-=position;r1-=size+position}min=(i?yClamp:xClamp)?Math.max(r0,Math.min(r1,point[i])):point[i];if(dragging){max=(min+=position)+size}else{if(center)position=Math.max(r0,Math.min(r1,2*center[i]-min));if(position<min){max=min;min=position}else{max=position}}if(extent[0]!=min||extent[1]!=max){if(i)yExtentDomain=null;else xExtentDomain=null;extent[0]=min;extent[1]=max;return true}}function brushend(){brushmove();g.style("pointer-events","all").selectAll(".resize").style("display",brush.empty()?"none":null);d3.select("body").style("cursor",null);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);dragRestore();event_({type:"brushend"})}}brush.x=function(z){if(!arguments.length)return x;x=z;resizes=d3_svg_brushResizes[!x<<1|!y];return brush};brush.y=function(z){if(!arguments.length)return y;y=z;resizes=d3_svg_brushResizes[!x<<1|!y];return brush};brush.clamp=function(z){if(!arguments.length)return x&&y?[xClamp,yClamp]:x?xClamp:y?yClamp:null;if(x&&y)xClamp=!!z[0],yClamp=!!z[1];else if(x)xClamp=!!z;else if(y)yClamp=!!z;return brush};brush.extent=function(z){var x0,x1,y0,y1,t;if(!arguments.length){if(x){if(xExtentDomain){x0=xExtentDomain[0],x1=xExtentDomain[1]}else{x0=xExtent[0],x1=xExtent[1];if(x.invert)x0=x.invert(x0),x1=x.invert(x1);if(x1<x0)t=x0,x0=x1,x1=t}}if(y){if(yExtentDomain){y0=yExtentDomain[0],y1=yExtentDomain[1]}else{y0=yExtent[0],y1=yExtent[1];if(y.invert)y0=y.invert(y0),y1=y.invert(y1);if(y1<y0)t=y0,y0=y1,y1=t}}return x&&y?[[x0,y0],[x1,y1]]:x?[x0,x1]:y&&[y0,y1]}if(x){x0=z[0],x1=z[1];if(y)x0=x0[0],x1=x1[0];xExtentDomain=[x0,x1];if(x.invert)x0=x(x0),x1=x(x1);if(x1<x0)t=x0,x0=x1,x1=t;if(x0!=xExtent[0]||x1!=xExtent[1])xExtent=[x0,x1]}if(y){y0=z[0],y1=z[1];if(x)y0=y0[1],y1=y1[1];yExtentDomain=[y0,y1];if(y.invert)y0=y(y0),y1=y(y1);if(y1<y0)t=y0,y0=y1,y1=t;if(y0!=yExtent[0]||y1!=yExtent[1])yExtent=[y0,y1]}return brush};brush.clear=function(){if(!brush.empty()){xExtent=[0,0],yExtent=[0,0];xExtentDomain=yExtentDomain=null}return brush};brush.empty=function(){return!!x&&xExtent[0]==xExtent[1]||!!y&&yExtent[0]==yExtent[1]};return d3.rebind(brush,event,"on")};var d3_svg_brushCursor={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"};var d3_svg_brushResizes=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];var d3_time_format=d3_time.format=d3_locale_enUS.timeFormat;var d3_time_formatUtc=d3_time_format.utc;var d3_time_formatIso=d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ");d3_time_format.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?d3_time_formatIsoNative:d3_time_formatIso;function d3_time_formatIsoNative(date){return date.toISOString()}d3_time_formatIsoNative.parse=function(string){var date=new Date(string);return isNaN(date)?null:date};d3_time_formatIsoNative.toString=d3_time_formatIso.toString;d3_time.second=d3_time_interval(function(date){return new d3_date(Math.floor(date/1e3)*1e3)},function(date,offset){date.setTime(date.getTime()+Math.floor(offset)*1e3)},function(date){return date.getSeconds()});d3_time.seconds=d3_time.second.range;d3_time.seconds.utc=d3_time.second.utc.range;d3_time.minute=d3_time_interval(function(date){return new d3_date(Math.floor(date/6e4)*6e4)},function(date,offset){date.setTime(date.getTime()+Math.floor(offset)*6e4)},function(date){return date.getMinutes()});d3_time.minutes=d3_time.minute.range;d3_time.minutes.utc=d3_time.minute.utc.range;d3_time.hour=d3_time_interval(function(date){var timezone=date.getTimezoneOffset()/60;return new d3_date((Math.floor(date/36e5-timezone)+timezone)*36e5)},function(date,offset){date.setTime(date.getTime()+Math.floor(offset)*36e5)},function(date){return date.getHours()});d3_time.hours=d3_time.hour.range;d3_time.hours.utc=d3_time.hour.utc.range;d3_time.month=d3_time_interval(function(date){date=d3_time.day(date);date.setDate(1);return date},function(date,offset){date.setMonth(date.getMonth()+offset)},function(date){return date.getMonth()});d3_time.months=d3_time.month.range;d3_time.months.utc=d3_time.month.utc.range;function d3_time_scale(linear,methods,format){function scale(x){return linear(x)}scale.invert=function(x){return d3_time_scaleDate(linear.invert(x))};scale.domain=function(x){if(!arguments.length)return linear.domain().map(d3_time_scaleDate);linear.domain(x);return scale};function tickMethod(extent,count){var span=extent[1]-extent[0],target=span/count,i=d3.bisect(d3_time_scaleSteps,target);return i==d3_time_scaleSteps.length?[methods.year,d3_scale_linearTickRange(extent.map(function(d){return d/31536e6}),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]}scale.nice=function(interval,skip){var domain=scale.domain(),extent=d3_scaleExtent(domain),method=interval==null?tickMethod(extent,10):typeof interval==="number"&&tickMethod(extent,interval);if(method)interval=method[0],skip=method[1];function skipped(date){return!isNaN(date)&&!interval.range(date,d3_time_scaleDate(+date+1),skip).length}return scale.domain(d3_scale_nice(domain,skip>1?{floor:function(date){while(skipped(date=interval.floor(date)))date=d3_time_scaleDate(date-1);return date},ceil:function(date){while(skipped(date=interval.ceil(date)))date=d3_time_scaleDate(+date+1);return date}}:interval))};scale.ticks=function(interval,skip){var extent=d3_scaleExtent(scale.domain()),method=interval==null?tickMethod(extent,10):typeof interval==="number"?tickMethod(extent,interval):!interval.range&&[{range:interval},skip];if(method)interval=method[0],skip=method[1];return interval.range(extent[0],d3_time_scaleDate(+extent[1]+1),skip<1?1:skip)};scale.tickFormat=function(){return format};scale.copy=function(){return d3_time_scale(linear.copy(),methods,format)};return d3_scale_linearRebind(scale,linear)}function d3_time_scaleDate(t){return new Date(t)}var d3_time_scaleSteps=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6];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]];var d3_time_scaleLocalFormat=d3_time_format.multi([[".%L",function(d){return d.getMilliseconds()}],[":%S",function(d){return d.getSeconds()}],["%I:%M",function(d){return d.getMinutes()}],["%I %p",function(d){return d.getHours()}],["%a %d",function(d){return d.getDay()&&d.getDate()!=1}],["%b %d",function(d){return d.getDate()!=1}],["%B",function(d){return d.getMonth()}],["%Y",d3_true]]);var d3_time_scaleMilliseconds={range:function(start,stop,step){return d3.range(Math.ceil(start/step)*step,+stop,step).map(d3_time_scaleDate)},floor:d3_identity,ceil:d3_identity};d3_time_scaleLocalMethods.year=d3_time.year;d3_time.scale=function(){return d3_time_scale(d3.scale.linear(),d3_time_scaleLocalMethods,d3_time_scaleLocalFormat)};var d3_time_scaleUtcMethods=d3_time_scaleLocalMethods.map(function(m){return[m[0].utc,m[1]]});var d3_time_scaleUtcFormat=d3_time_formatUtc.multi([[".%L",function(d){return d.getUTCMilliseconds()}],[":%S",function(d){return d.getUTCSeconds()}],["%I:%M",function(d){return d.getUTCMinutes()}],["%I %p",function(d){return d.getUTCHours()}],["%a %d",function(d){return d.getUTCDay()&&d.getUTCDate()!=1}],["%b %d",function(d){return d.getUTCDate()!=1}],["%B",function(d){return d.getUTCMonth()}],["%Y",d3_true]]);d3_time_scaleUtcMethods.year=d3_time.year.utc;d3_time.scale.utc=function(){return d3_time_scale(d3.scale.linear(),d3_time_scaleUtcMethods,d3_time_scaleUtcFormat)};d3.text=d3_xhrType(function(request){return request.responseText});d3.json=function(url,callback){return d3_xhr(url,"application/json",d3_json,callback)};function d3_json(request){return JSON.parse(request.responseText)}d3.html=function(url,callback){return d3_xhr(url,"text/html",d3_html,callback)};function d3_html(request){var range=d3_document.createRange();range.selectNode(d3_document.body);return range.createContextualFragment(request.responseText)}d3.xml=d3_xhrType(function(request){return request.responseXML});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}()},{}],81:[function(require,module,exports){(function(process,global){(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return typeof x==="function"||typeof x==="object"&&x!==null}function lib$es6$promise$utils$$isFunction(x){return typeof x==="function"}function lib$es6$promise$utils$$isMaybeThenable(x){return typeof x==="object"&&x!==null}var lib$es6$promise$utils$$_isArray;if(!Array.isArray){lib$es6$promise$utils$$_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}else{lib$es6$promise$utils$$_isArray=Array.isArray}var lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray;var lib$es6$promise$asap$$len=0;var lib$es6$promise$asap$$vertxNext;var lib$es6$promise$asap$$customSchedulerFn;var lib$es6$promise$asap$$asap=function asap(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback;lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg;lib$es6$promise$asap$$len+=2;if(lib$es6$promise$asap$$len===2){if(lib$es6$promise$asap$$customSchedulerFn){lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush)}else{lib$es6$promise$asap$$scheduleFlush()}}};function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}var lib$es6$promise$asap$$browserWindow=typeof window!=="undefined"?window:undefined;var lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{};var lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;var lib$es6$promise$asap$$isNode=typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var lib$es6$promise$asap$$isWorker=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0;var observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;channel.port1.onmessage=lib$es6$promise$asap$$flush;return function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}var lib$es6$promise$asap$$queue=new Array(1e3);function lib$es6$promise$asap$$flush(){for(var i=0;i<lib$es6$promise$asap$$len;i+=2){var callback=lib$es6$promise$asap$$queue[i];var arg=lib$es6$promise$asap$$queue[i+1];callback(arg);lib$es6$promise$asap$$queue[i]=undefined;lib$es6$promise$asap$$queue[i+1]=undefined}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require;var vertx=r("vertx");lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext;return lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}var lib$es6$promise$asap$$scheduleFlush;if(lib$es6$promise$asap$$isNode){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useNextTick()}else if(lib$es6$promise$asap$$BrowserMutationObserver){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMutationObserver()}else if(lib$es6$promise$asap$$isWorker){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMessageChannel()}else if(lib$es6$promise$asap$$browserWindow===undefined&&typeof require==="function"){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$attemptVertx()}else{lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useSetTimeout()}function lib$es6$promise$then$$then(onFulfillment,onRejection){var parent=this;var state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection){return this}var child=new this.constructor(lib$es6$promise$$internal$$noop);var result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else{lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection)}return child}var lib$es6$promise$then$$default=lib$es6$promise$then$$then;function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object}var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$resolve(promise,object);return promise}var lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve;function lib$es6$promise$$internal$$noop(){}var lib$es6$promise$$internal$$PENDING=void 0;var lib$es6$promise$$internal$$FULFILLED=1;var lib$es6$promise$$internal$$REJECTED=2;var lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){lib$es6$promise$$internal$$GET_THEN_ERROR.error=error;return lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=false;var error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){if(sealed){return}sealed=true;if(thenable!==value){lib$es6$promise$$internal$$resolve(promise,value)}else{lib$es6$promise$$internal$$fulfill(promise,value)}},function(reason){if(sealed){return}sealed=true;lib$es6$promise$$internal$$reject(promise,reason)},"Settle: "+(promise._label||" unknown promise"));if(!sealed&&error){sealed=true;lib$es6$promise$$internal$$reject(promise,error)}},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){if(thenable._state===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,thenable._result)}else if(thenable._state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,thenable._result)}else{lib$es6$promise$$internal$$subscribe(thenable,undefined,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable,then){if(maybeThenable.constructor===promise.constructor&&then===lib$es6$promise$then$$default&&constructor.resolve===lib$es6$promise$promise$resolve$$default){lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable)}else{if(then===lib$es6$promise$$internal$$GET_THEN_ERROR){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error)}else if(then===undefined){lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}else if(lib$es6$promise$utils$$isFunction(then)){lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then)}else{lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}}}function lib$es6$promise$$internal$$resolve(promise,value){if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment())}else if(lib$es6$promise$utils$$objectOrFunction(value)){lib$es6$promise$$internal$$handleMaybeThenable(promise,value,lib$es6$promise$$internal$$getThen(value))}else{lib$es6$promise$$internal$$fulfill(promise,value)}}function lib$es6$promise$$internal$$publishRejection(promise){if(promise._onerror){promise._onerror(promise._result)}lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._result=value;promise._state=lib$es6$promise$$internal$$FULFILLED;if(promise._subscribers.length!==0){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise)}}function lib$es6$promise$$internal$$reject(promise,reason){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._state=lib$es6$promise$$internal$$REJECTED;promise._result=reason;lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise)}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers;var length=subscribers.length;parent._onerror=null;subscribers[length]=child;subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment;subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection;if(length===0&&parent._state){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers;var settled=promise._state;if(subscribers.length===0){return}var child,callback,detail=promise._result;for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];if(child){lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail)}else{callback(detail)}}promise._subscribers.length=0}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}var lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e;return lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var hasCallback=lib$es6$promise$utils$$isFunction(callback),value,error,succeeded,failed;if(hasCallback){value=lib$es6$promise$$internal$$tryCatch(callback,detail);if(value===lib$es6$promise$$internal$$TRY_CATCH_ERROR){failed=true;error=value.error;value=null}else{succeeded=true}if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn());return}}else{value=detail;succeeded=true}if(promise._state!==lib$es6$promise$$internal$$PENDING){}else if(hasCallback&&succeeded){lib$es6$promise$$internal$$resolve(promise,value)}else if(failed){lib$es6$promise$$internal$$reject(promise,error)}else if(settled===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,value)}else if(settled===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function resolvePromise(value){lib$es6$promise$$internal$$resolve(promise,value)},function rejectPromise(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}var lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all;function lib$es6$promise$promise$race$$race(entries){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries)){lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race."));return promise}var length=entries.length;function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}for(var i=0;promise._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),undefined,onFulfillment,onRejection)}return promise}var lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race;function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$reject(promise,reason);return promise}var lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject;var lib$es6$promise$promise$$counter=0;function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++;this._state=undefined;this._result=undefined;this._subscribers=[];if(lib$es6$promise$$internal$$noop!==resolver){typeof resolver!=="function"&&lib$es6$promise$promise$$needsResolver();this instanceof lib$es6$promise$promise$$Promise?lib$es6$promise$$internal$$initializePromise(this,resolver):lib$es6$promise$promise$$needsNew()}}lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default;lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default;lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default;lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default;lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler;lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap;lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap;lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:lib$es6$promise$then$$default,catch:function(onRejection){return this.then(null,onRejection)}};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;function lib$es6$promise$enumerator$$Enumerator(Constructor,input){this._instanceConstructor=Constructor;this.promise=new Constructor(lib$es6$promise$$internal$$noop);if(Array.isArray(input)){this._input=input;this.length=input.length;this._remaining=input.length;this._result=new Array(this.length);if(this.length===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}else{this.length=this.length||0;this._enumerate();if(this._remaining===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}}}else{lib$es6$promise$$internal$$reject(this.promise,this._validationError())}}lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")};lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){var length=this.length;var input=this._input;for(var i=0;this._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){this._eachEntry(input[i],i)}};lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var c=this._instanceConstructor;var resolve=c.resolve;if(resolve===lib$es6$promise$promise$resolve$$default){var then=lib$es6$promise$$internal$$getThen(entry);if(then===lib$es6$promise$then$$default&&entry._state!==lib$es6$promise$$internal$$PENDING){this._settledAt(entry._state,i,entry._result)}else if(typeof then!=="function"){this._remaining--;this._result[i]=entry}else if(c===lib$es6$promise$promise$$default){var promise=new c(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$handleMaybeThenable(promise,entry,then);this._willSettleAt(promise,i)}else{this._willSettleAt(new c(function(resolve){resolve(entry)}),i)}}else{this._willSettleAt(resolve(entry),i)}};lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var promise=this.promise;if(promise._state===lib$es6$promise$$internal$$PENDING){this._remaining--;if(state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}else{this._result[i]=value}}if(this._remaining===0){lib$es6$promise$$internal$$fulfill(promise,this._result)}};lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,undefined,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};function lib$es6$promise$polyfill$$polyfill(){var local;if(typeof global!=="undefined"){local=global}else if(typeof self!=="undefined"){local=self}else{try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}}var P=local.Promise;if(P&&Object.prototype.toString.call(P.resolve())==="[object Promise]"&&!P.cast){return}local.Promise=lib$es6$promise$promise$$default}var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill;var lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};if(typeof define==="function"&&define["amd"]){define(function(){return lib$es6$promise$umd$$ES6Promise})}else if(typeof module!=="undefined"&&module["exports"]){module["exports"]=lib$es6$promise$umd$$ES6Promise}else if(typeof this!=="undefined"){this["ES6Promise"]=lib$es6$promise$umd$$ES6Promise}lib$es6$promise$polyfill$$default()}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:116}],82:[function(require,module,exports){arguments[4][36][0].apply(exports,arguments)},{dup:36}],83:[function(require,module,exports){(function(global){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.1";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],84:[function(require,module,exports){(function(__dirname){var fs=require("fs"),path=require("path"),existsSync=require("fs").existsSync||require("path").existsSync;module.exports.version={};var refs=["2.0.0","2.0.1","2.0.2","2.1.0","2.1.1","2.2.0","2.3.0","3.0.0"];refs.map(function(version){module.exports.version[version]=require(path.join(__dirname,version,"reference.json"));var ds_path=path.join(__dirname,version,"datasources.json");if(existsSync(ds_path)){module.exports.version[version].datasources=require(ds_path).datasources}})}).call(this,"/node_modules/mapnik-reference")},{fs:39,path:86}],85:[function(require,module,exports){var s=1e3;var m=s*60;var h=m*60;var d=h*24;var w=d*7;var y=d*365.25;module.exports=function(val,options){options=options||{};var type=typeof val;if(type==="string"&&val.length>0){return parse(val)}else if(type==="number"&&isNaN(val)===false){return options.long?fmtLong(val):fmtShort(val)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(val))};function parse(str){str=String(str);if(str.length>100){return}var match=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);if(!match){return}var n=parseFloat(match[1]);var type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"weeks":case"week":case"w":return n*w;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return undefined}}function fmtShort(ms){var msAbs=Math.abs(ms);if(msAbs>=d){return Math.round(ms/d)+"d"}if(msAbs>=h){return Math.round(ms/h)+"h"}if(msAbs>=m){return Math.round(ms/m)+"m"}if(msAbs>=s){return Math.round(ms/s)+"s"}return ms+"ms"}function fmtLong(ms){var msAbs=Math.abs(ms);if(msAbs>=d){return plural(ms,msAbs,d,"day")}if(msAbs>=h){return plural(ms,msAbs,h,"hour")}if(msAbs>=m){return plural(ms,msAbs,m,"minute")}if(msAbs>=s){return plural(ms,msAbs,s,"second")}return ms+" ms"}function plural(ms,msAbs,n,name){var isPlural=msAbs>=n*1.5;return Math.round(ms/n)+" "+name+(isPlural?"s":"")}},{}],86:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){if(typeof path!=="string")path=path+"";if(path.length===0)return".";var code=path.charCodeAt(0);var hasRoot=code===47;var end=-1;var matchedSlash=true;for(var i=path.length-1;i>=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1){return"/"}return path.slice(0,end)};function basename(path){if(typeof path!=="string")path=path+"";var start=0;var end=-1;var matchedSlash=true;var i;for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}exports.basename=function(path,ext){var f=basename(path);if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){if(typeof path!=="string")path=path+"";var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:116}],87:[function(require,module,exports){var parse=require("./parse");var walk=require("./walk");var stringify=require("./stringify");function ValueParser(value){if(this instanceof ValueParser){this.nodes=parse(value);return this}return new ValueParser(value)}ValueParser.prototype.toString=function(){return Array.isArray(this.nodes)?stringify(this.nodes):""};ValueParser.prototype.walk=function(cb,bubble){walk(this.nodes,cb,bubble);return this};ValueParser.unit=require("./unit");ValueParser.walk=walk;ValueParser.stringify=stringify;module.exports=ValueParser},{"./parse":88,"./stringify":89,"./unit":90,"./walk":91}],88:[function(require,module,exports){var openParentheses="(".charCodeAt(0);var closeParentheses=")".charCodeAt(0);var singleQuote="'".charCodeAt(0);var doubleQuote='"'.charCodeAt(0);var backslash="\\".charCodeAt(0);var slash="/".charCodeAt(0);var comma=",".charCodeAt(0);var colon=":".charCodeAt(0);var star="*".charCodeAt(0);module.exports=function(input){var tokens=[];var value=input;var next,quote,prev,token,escape,escapePos,whitespacePos;var pos=0;var code=value.charCodeAt(pos);var max=value.length;var stack=[{nodes:tokens}];var balanced=0;var parent;var name="";var before="";var after="";while(pos<max){if(code<=32){next=pos;do{next+=1;code=value.charCodeAt(next)}while(code<=32);token=value.slice(pos,next);prev=tokens[tokens.length-1];if(code===closeParentheses&&balanced){after=token}else if(prev&&prev.type==="div"){prev.after=token}else if(code===comma||code===colon||code===slash&&value.charCodeAt(next+1)!==star){before=token}else{tokens.push({type:"space",sourceIndex:pos,value:token})}pos=next}else if(code===singleQuote||code===doubleQuote){next=pos;quote=code===singleQuote?"'":'"';token={type:"string",sourceIndex:pos,quote:quote};do{escape=false;next=value.indexOf(quote,next+1);if(~next){escapePos=next;while(value.charCodeAt(escapePos-1)===backslash){escapePos-=1;escape=!escape}}else{value+=quote;next=value.length-1;token.unclosed=true}}while(escape);token.value=value.slice(pos+1,next);tokens.push(token);pos=next+1;code=value.charCodeAt(pos)}else if(code===slash&&value.charCodeAt(pos+1)===star){token={type:"comment",sourceIndex:pos};next=value.indexOf("*/",pos);if(next===-1){token.unclosed=true;next=value.length}token.value=value.slice(pos+2,next);tokens.push(token);pos=next+2;code=value.charCodeAt(pos)}else if(code===slash||code===comma||code===colon){token=value[pos];tokens.push({type:"div",sourceIndex:pos-before.length,value:token,before:before,after:""});before="";pos+=1;code=value.charCodeAt(pos)}else if(openParentheses===code){next=pos;do{next+=1;code=value.charCodeAt(next)}while(code<=32);token={type:"function",sourceIndex:pos-name.length,value:name,before:value.slice(pos+1,next)};pos=next;if(name==="url"&&code!==singleQuote&&code!==doubleQuote){next-=1;do{escape=false;next=value.indexOf(")",next+1);if(~next){escapePos=next;while(value.charCodeAt(escapePos-1)===backslash){escapePos-=1;escape=!escape}}else{value+=")";next=value.length-1;token.unclosed=true}}while(escape);whitespacePos=next;do{whitespacePos-=1;code=value.charCodeAt(whitespacePos)}while(code<=32);if(pos!==whitespacePos+1){token.nodes=[{type:"word",sourceIndex:pos,value:value.slice(pos,whitespacePos+1)}]}else{token.nodes=[]}if(token.unclosed&&whitespacePos+1!==next){token.after="";token.nodes.push({type:"space",sourceIndex:whitespacePos+1,value:value.slice(whitespacePos+1,next)})}else{token.after=value.slice(whitespacePos+1,next)}pos=next+1;code=value.charCodeAt(pos);tokens.push(token)}else{balanced+=1;token.after="";tokens.push(token);stack.push(token);tokens=token.nodes=[];parent=token}name=""}else if(closeParentheses===code&&balanced){pos+=1;code=value.charCodeAt(pos);parent.after=after;after="";balanced-=1;stack.pop();parent=stack[balanced];tokens=parent.nodes}else{next=pos;do{if(code===backslash){next+=1}next+=1;code=value.charCodeAt(next)}while(next<max&&!(code<=32||code===singleQuote||code===doubleQuote||code===comma||code===colon||code===slash||code===openParentheses||code===closeParentheses&&balanced));token=value.slice(pos,next);if(openParentheses===code){name=token}else{tokens.push({type:"word",sourceIndex:pos,value:token})}pos=next}}for(pos=stack.length-1;pos;pos-=1){stack[pos].unclosed=true}return stack[0].nodes}},{}],89:[function(require,module,exports){function stringifyNode(node,custom){var type=node.type;var value=node.value;var buf;var customResult;if(custom&&(customResult=custom(node))!==undefined){return customResult}else if(type==="word"||type==="space"){return value}else if(type==="string"){buf=node.quote||"";return buf+value+(node.unclosed?"":buf)}else if(type==="comment"){return"/*"+value+(node.unclosed?"":"*/")}else if(type==="div"){return(node.before||"")+value+(node.after||"")}else if(Array.isArray(node.nodes)){buf=stringify(node.nodes);if(type!=="function"){return buf}return value+"("+(node.before||"")+buf+(node.after||"")+(node.unclosed?"":")")}return value}function stringify(nodes,custom){var result,i;if(Array.isArray(nodes)){result="";for(i=nodes.length-1;~i;i-=1){result=stringifyNode(nodes[i],custom)+result}return result}return stringifyNode(nodes,custom)}module.exports=stringify},{}],90:[function(require,module,exports){var minus="-".charCodeAt(0);var plus="+".charCodeAt(0);var dot=".".charCodeAt(0);module.exports=function(value){var pos=0;var length=value.length;var dotted=false;var containsNumber=false;var code;var number="";while(pos<length){code=value.charCodeAt(pos);if(code>=48&&code<=57){number+=value[pos];containsNumber=true}else if(code===dot){if(dotted){break}dotted=true;number+=value[pos]}else if(code===plus||code===minus){if(pos!==0){break}number+=value[pos]}else{break}pos+=1}return containsNumber?{number:number,unit:value.slice(pos)}:false}},{}],91:[function(require,module,exports){module.exports=function walk(nodes,cb,bubble){var i,max,node,result;for(i=0,max=nodes.length;i<max;i+=1){node=nodes[i];if(!bubble){result=cb(node,i,nodes)}if(result!==false&&node.type==="function"&&Array.isArray(node.nodes)){walk(node.nodes,cb,bubble)}if(bubble){cb(node,i,nodes)}}}},{}],92:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _container=require("./container");var _container2=_interopRequireDefault(_container);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var AtRule=function(_Container){_inherits(AtRule,_Container);function AtRule(defaults){_classCallCheck(this,AtRule);var _this=_possibleConstructorReturn(this,_Container.call(this,defaults));_this.type="atrule";return _this}AtRule.prototype.append=function append(){var _Container$prototype$;if(!this.nodes)this.nodes=[];for(var _len=arguments.length,children=Array(_len),_key=0;_key<_len;_key++){children[_key]=arguments[_key]}return(_Container$prototype$=_Container.prototype.append).call.apply(_Container$prototype$,[this].concat(children))};AtRule.prototype.prepend=function prepend(){var _Container$prototype$2;if(!this.nodes)this.nodes=[];for(var _len2=arguments.length,children=Array(_len2),_key2=0;_key2<_len2;_key2++){children[_key2]=arguments[_key2]}return(_Container$prototype$2=_Container.prototype.prepend).call.apply(_Container$prototype$2,[this].concat(children))};_createClass(AtRule,[{key:"afterName",get:function get(){(0,_warnOnce2.default)("AtRule#afterName was deprecated. Use AtRule#raws.afterName");return this.raws.afterName},set:function set(val){(0,_warnOnce2.default)("AtRule#afterName was deprecated. Use AtRule#raws.afterName");this.raws.afterName=val}},{key:"_params",get:function get(){(0,_warnOnce2.default)("AtRule#_params was deprecated. Use AtRule#raws.params");return this.raws.params},set:function set(val){(0,_warnOnce2.default)("AtRule#_params was deprecated. Use AtRule#raws.params");this.raws.params=val}}]);return AtRule}(_container2.default);exports.default=AtRule;module.exports=exports["default"]},{"./container":94,"./warn-once":114}],93:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);var _node=require("./node");var _node2=_interopRequireDefault(_node);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Comment=function(_Node){_inherits(Comment,_Node);function Comment(defaults){_classCallCheck(this,Comment);var _this=_possibleConstructorReturn(this,_Node.call(this,defaults));_this.type="comment";return _this}_createClass(Comment,[{key:"left",get:function get(){(0,_warnOnce2.default)("Comment#left was deprecated. Use Comment#raws.left");return this.raws.left},set:function set(val){(0,_warnOnce2.default)("Comment#left was deprecated. Use Comment#raws.left");this.raws.left=val}},{key:"right",get:function get(){(0,_warnOnce2.default)("Comment#right was deprecated. Use Comment#raws.right");return this.raws.right},set:function set(val){(0,_warnOnce2.default)("Comment#right was deprecated. Use Comment#raws.right");this.raws.right=val}}]);return Comment}(_node2.default);exports.default=Comment;module.exports=exports["default"]},{"./node":101,"./warn-once":114}],94:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _declaration=require("./declaration");var _declaration2=_interopRequireDefault(_declaration);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);var _comment=require("./comment");var _comment2=_interopRequireDefault(_comment);var _node=require("./node");var _node2=_interopRequireDefault(_node);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Container=function(_Node){_inherits(Container,_Node);function Container(){_classCallCheck(this,Container);return _possibleConstructorReturn(this,_Node.apply(this,arguments))}Container.prototype.push=function push(child){child.parent=this;this.nodes.push(child);return this};Container.prototype.each=function each(callback){if(!this.lastEach)this.lastEach=0;if(!this.indexes)this.indexes={};this.lastEach+=1;var id=this.lastEach;this.indexes[id]=0;if(!this.nodes)return undefined;var index=undefined,result=undefined;while(this.indexes[id]<this.nodes.length){index=this.indexes[id];result=callback(this.nodes[index],index);if(result===false)break;this.indexes[id]+=1}delete this.indexes[id];return result};Container.prototype.walk=function walk(callback){return this.each(function(child,i){var result=callback(child,i);if(result!==false&&child.walk){result=child.walk(callback)}return result})};Container.prototype.walkDecls=function walkDecls(prop,callback){if(!callback){callback=prop;return this.walk(function(child,i){if(child.type==="decl"){return callback(child,i)}})}else if(prop instanceof RegExp){return this.walk(function(child,i){if(child.type==="decl"&&prop.test(child.prop)){return callback(child,i)}})}else{return this.walk(function(child,i){if(child.type==="decl"&&child.prop===prop){return callback(child,i)}})}};Container.prototype.walkRules=function walkRules(selector,callback){if(!callback){callback=selector;return this.walk(function(child,i){if(child.type==="rule"){return callback(child,i)}})}else if(selector instanceof RegExp){return this.walk(function(child,i){if(child.type==="rule"&&selector.test(child.selector)){return callback(child,i)}})}else{return this.walk(function(child,i){if(child.type==="rule"&&child.selector===selector){return callback(child,i)}})}};Container.prototype.walkAtRules=function walkAtRules(name,callback){if(!callback){callback=name;return this.walk(function(child,i){if(child.type==="atrule"){return callback(child,i)}})}else if(name instanceof RegExp){return this.walk(function(child,i){if(child.type==="atrule"&&name.test(child.name)){return callback(child,i)}})}else{return this.walk(function(child,i){if(child.type==="atrule"&&child.name===name){return callback(child,i)}})}};Container.prototype.walkComments=function walkComments(callback){return this.walk(function(child,i){if(child.type==="comment"){return callback(child,i)}})};Container.prototype.append=function append(){for(var _len=arguments.length,children=Array(_len),_key=0;_key<_len;_key++){children[_key]=arguments[_key]}for(var _iterator=children,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var child=_ref;var nodes=this.normalize(child,this.last);for(var _iterator2=nodes,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;){var _ref2;if(_isArray2){if(_i2>=_iterator2.length)break;_ref2=_iterator2[_i2++]}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value}var node=_ref2;this.nodes.push(node)}}return this};Container.prototype.prepend=function prepend(){for(var _len2=arguments.length,children=Array(_len2),_key2=0;_key2<_len2;_key2++){children[_key2]=arguments[_key2]}children=children.reverse();for(var _iterator3=children,_isArray3=Array.isArray(_iterator3),_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[Symbol.iterator]();;){var _ref3;if(_isArray3){if(_i3>=_iterator3.length)break;_ref3=_iterator3[_i3++]}else{_i3=_iterator3.next();if(_i3.done)break;_ref3=_i3.value}var child=_ref3;var nodes=this.normalize(child,this.first,"prepend").reverse();for(var _iterator4=nodes,_isArray4=Array.isArray(_iterator4),_i4=0,_iterator4=_isArray4?_iterator4:_iterator4[Symbol.iterator]();;){var _ref4;if(_isArray4){if(_i4>=_iterator4.length)break;_ref4=_iterator4[_i4++]}else{_i4=_iterator4.next();if(_i4.done)break;_ref4=_i4.value}var node=_ref4;this.nodes.unshift(node)}for(var id in this.indexes){this.indexes[id]=this.indexes[id]+nodes.length}}return this};Container.prototype.cleanRaws=function cleanRaws(keepBetween){_Node.prototype.cleanRaws.call(this,keepBetween);if(this.nodes){for(var _iterator5=this.nodes,_isArray5=Array.isArray(_iterator5),_i5=0,_iterator5=_isArray5?_iterator5:_iterator5[Symbol.iterator]();;){var _ref5;if(_isArray5){if(_i5>=_iterator5.length)break;_ref5=_iterator5[_i5++]}else{_i5=_iterator5.next();if(_i5.done)break;_ref5=_i5.value}var node=_ref5;node.cleanRaws(keepBetween)}}};Container.prototype.insertBefore=function insertBefore(exist,add){exist=this.index(exist);var type=exist===0?"prepend":false;var nodes=this.normalize(add,this.nodes[exist],type).reverse();for(var _iterator6=nodes,_isArray6=Array.isArray(_iterator6),_i6=0,_iterator6=_isArray6?_iterator6:_iterator6[Symbol.iterator]();;){var _ref6;if(_isArray6){if(_i6>=_iterator6.length)break;_ref6=_iterator6[_i6++]}else{_i6=_iterator6.next();if(_i6.done)break;_ref6=_i6.value}var node=_ref6;this.nodes.splice(exist,0,node)}var index=undefined;for(var id in this.indexes){index=this.indexes[id];if(exist<=index){this.indexes[id]=index+nodes.length}}return this};Container.prototype.insertAfter=function insertAfter(exist,add){exist=this.index(exist);var nodes=this.normalize(add,this.nodes[exist]).reverse();for(var _iterator7=nodes,_isArray7=Array.isArray(_iterator7),_i7=0,_iterator7=_isArray7?_iterator7:_iterator7[Symbol.iterator]();;){var _ref7;if(_isArray7){if(_i7>=_iterator7.length)break;_ref7=_iterator7[_i7++]}else{_i7=_iterator7.next();if(_i7.done)break;_ref7=_i7.value}var node=_ref7;this.nodes.splice(exist+1,0,node)}var index=undefined;for(var id in this.indexes){index=this.indexes[id];if(exist<index){this.indexes[id]=index+nodes.length}}return this};Container.prototype.remove=function remove(child){if(typeof child!=="undefined"){(0,_warnOnce2.default)("Container#remove is deprecated. "+"Use Container#removeChild");this.removeChild(child)}else{_Node.prototype.remove.call(this)}return this};Container.prototype.removeChild=function removeChild(child){child=this.index(child);this.nodes[child].parent=undefined;this.nodes.splice(child,1);var index=undefined;for(var id in this.indexes){index=this.indexes[id];if(index>=child){this.indexes[id]=index-1}}return this};Container.prototype.removeAll=function removeAll(){for(var _iterator8=this.nodes,_isArray8=Array.isArray(_iterator8),_i8=0,_iterator8=_isArray8?_iterator8:_iterator8[Symbol.iterator]();;){var _ref8;if(_isArray8){if(_i8>=_iterator8.length)break;_ref8=_iterator8[_i8++]}else{_i8=_iterator8.next();if(_i8.done)break;_ref8=_i8.value}var node=_ref8;node.parent=undefined}this.nodes=[];return this};Container.prototype.replaceValues=function replaceValues(regexp,opts,callback){if(!callback){callback=opts;opts={}}this.walkDecls(function(decl){if(opts.props&&opts.props.indexOf(decl.prop)===-1)return;if(opts.fast&&decl.value.indexOf(opts.fast)===-1)return;decl.value=decl.value.replace(regexp,callback)});return this};Container.prototype.every=function every(condition){return this.nodes.every(condition)};Container.prototype.some=function some(condition){return this.nodes.some(condition)};Container.prototype.index=function index(child){if(typeof child==="number"){return child}else{return this.nodes.indexOf(child)}};Container.prototype.normalize=function normalize(nodes,sample){var _this2=this;if(typeof nodes==="string"){var parse=require("./parse");nodes=parse(nodes).nodes}else if(!Array.isArray(nodes)){if(nodes.type==="root"){nodes=nodes.nodes}else if(nodes.type){nodes=[nodes]}else if(nodes.prop){if(typeof nodes.value==="undefined"){throw new Error("Value field is missed in node creation")}nodes=[new _declaration2.default(nodes)]}else if(nodes.selector){var Rule=require("./rule");nodes=[new Rule(nodes)]}else if(nodes.name){var AtRule=require("./at-rule");nodes=[new AtRule(nodes)]}else if(nodes.text){nodes=[new _comment2.default(nodes)]}else{throw new Error("Unknown node type in node creation")}}var processed=nodes.map(function(i){if(typeof i.raws==="undefined")i=_this2.rebuild(i);if(i.parent)i=i.clone();if(typeof i.raws.before==="undefined"){if(sample&&typeof sample.raws.before!=="undefined"){i.raws.before=sample.raws.before.replace(/[^\s]/g,"")}}i.parent=_this2;return i});return processed};Container.prototype.rebuild=function rebuild(node,parent){var _this3=this;var fix=undefined;if(node.type==="root"){var Root=require("./root");fix=new Root}else if(node.type==="atrule"){var AtRule=require("./at-rule");fix=new AtRule}else if(node.type==="rule"){var Rule=require("./rule");fix=new Rule}else if(node.type==="decl"){fix=new _declaration2.default}else if(node.type==="comment"){fix=new _comment2.default}for(var i in node){if(i==="nodes"){fix.nodes=node.nodes.map(function(j){return _this3.rebuild(j,fix)})}else if(i==="parent"&&parent){fix.parent=parent}else if(node.hasOwnProperty(i)){fix[i]=node[i]}}return fix};Container.prototype.eachInside=function eachInside(callback){(0,_warnOnce2.default)("Container#eachInside is deprecated. "+"Use Container#walk instead.");return this.walk(callback)};Container.prototype.eachDecl=function eachDecl(prop,callback){(0,_warnOnce2.default)("Container#eachDecl is deprecated. "+"Use Container#walkDecls instead.");return this.walkDecls(prop,callback)};Container.prototype.eachRule=function eachRule(selector,callback){(0,_warnOnce2.default)("Container#eachRule is deprecated. "+"Use Container#walkRules instead.");return this.walkRules(selector,callback)};Container.prototype.eachAtRule=function eachAtRule(name,callback){(0,_warnOnce2.default)("Container#eachAtRule is deprecated. "+"Use Container#walkAtRules instead.");return this.walkAtRules(name,callback)};Container.prototype.eachComment=function eachComment(callback){(0,_warnOnce2.default)("Container#eachComment is deprecated. "+"Use Container#walkComments instead.");return this.walkComments(callback)};_createClass(Container,[{key:"first",get:function get(){if(!this.nodes)return undefined;return this.nodes[0]}},{key:"last",get:function get(){if(!this.nodes)return undefined;return this.nodes[this.nodes.length-1]}},{key:"semicolon",get:function get(){(0,_warnOnce2.default)("Node#semicolon is deprecated. Use Node#raws.semicolon");return this.raws.semicolon},set:function set(val){(0,_warnOnce2.default)("Node#semicolon is deprecated. Use Node#raws.semicolon");this.raws.semicolon=val}},{key:"after",get:function get(){(0,_warnOnce2.default)("Node#after is deprecated. Use Node#raws.after");return this.raws.after},set:function set(val){(0,_warnOnce2.default)("Node#after is deprecated. Use Node#raws.after");this.raws.after=val}}]);return Container}(_node2.default);exports.default=Container;module.exports=exports["default"]},{"./at-rule":92,"./comment":93,"./declaration":96,"./node":101,"./parse":102,"./root":108,"./rule":109,"./warn-once":114}],95:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _supportsColor=require("supports-color");var _supportsColor2=_interopRequireDefault(_supportsColor);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var CssSyntaxError=function(){function CssSyntaxError(message,line,column,source,file,plugin){_classCallCheck(this,CssSyntaxError);this.name="CssSyntaxError";this.reason=message;if(file)this.file=file;if(source)this.source=source;if(plugin)this.plugin=plugin;if(typeof line!=="undefined"&&typeof column!=="undefined"){this.line=line;this.column=column}this.setMessage();if(Error.captureStackTrace){Error.captureStackTrace(this,CssSyntaxError)}}CssSyntaxError.prototype.setMessage=function setMessage(){this.message=this.plugin?this.plugin+": ":"";this.message+=this.file?this.file:"<css input>";if(typeof this.line!=="undefined"){this.message+=":"+this.line+":"+this.column}this.message+=": "+this.reason};CssSyntaxError.prototype.showSourceCode=function showSourceCode(color){if(!this.source)return"";var num=this.line-1;var lines=this.source.split("\n");var prev=num>0?lines[num-1]+"\n":"";var broken=lines[num];var next=num<lines.length-1?"\n"+lines[num+1]:"";var mark="\n";for(var i=0;i<this.column-1;i++){mark+=" "}if(typeof color==="undefined")color=_supportsColor2.default;if(color){mark+="^"}else{mark+="^"}return"\n"+prev+broken+mark+next};CssSyntaxError.prototype.toString=function toString(){return this.name+": "+this.message+this.showSourceCode()};_createClass(CssSyntaxError,[{key:"generated",get:function get(){(0,_warnOnce2.default)("CssSyntaxError#generated is depreacted. Use input instead.");return this.input}}]);return CssSyntaxError}();exports.default=CssSyntaxError;module.exports=exports["default"]},{"./warn-once":114,"supports-color":129}],96:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);var _node=require("./node");var _node2=_interopRequireDefault(_node);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Declaration=function(_Node){_inherits(Declaration,_Node);function Declaration(defaults){_classCallCheck(this,Declaration);var _this=_possibleConstructorReturn(this,_Node.call(this,defaults));_this.type="decl";return _this}_createClass(Declaration,[{key:"_value",get:function get(){(0,_warnOnce2.default)("Node#_value was deprecated. Use Node#raws.value");return this.raws.value},set:function set(val){(0,_warnOnce2.default)("Node#_value was deprecated. Use Node#raws.value");this.raws.value=val}},{key:"_important",get:function get(){(0,_warnOnce2.default)("Node#_important was deprecated. Use Node#raws.important");return this.raws.important},set:function set(val){(0,_warnOnce2.default)("Node#_important was deprecated. Use Node#raws.important");this.raws.important=val}}]);return Declaration}(_node2.default);exports.default=Declaration;module.exports=exports["default"]},{"./node":101,"./warn-once":114}],97:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _cssSyntaxError=require("./css-syntax-error");var _cssSyntaxError2=_interopRequireDefault(_cssSyntaxError);var _previousMap=require("./previous-map");var _previousMap2=_interopRequireDefault(_previousMap);var _path=require("path");var _path2=_interopRequireDefault(_path);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var sequence=0;var Input=function(){function Input(css){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];_classCallCheck(this,Input);this.css=css.toString();if(this.css[0]==="\ufeff"||this.css[0]==="￾"){this.css=this.css.slice(1)}if(opts.from)this.file=_path2.default.resolve(opts.from);var map=new _previousMap2.default(this.css,opts);if(map.text){this.map=map;var file=map.consumer().file;if(!this.file&&file)this.file=this.mapResolve(file)}if(!this.file){sequence+=1;this.id="<input css "+sequence+">"}if(this.map)this.map.file=this.from}Input.prototype.error=function error(message,line,column){var opts=arguments.length<=3||arguments[3]===undefined?{}:arguments[3];var result=undefined;var origin=this.origin(line,column);if(origin){result=new _cssSyntaxError2.default(message,origin.line,origin.column,origin.source,origin.file,opts.plugin)}else{result=new _cssSyntaxError2.default(message,line,column,this.css,this.file,opts.plugin)}result.input={line:line,column:column,source:this.css};if(this.file)result.input.file=this.file;return result};Input.prototype.origin=function origin(line,column){if(!this.map)return false;var consumer=this.map.consumer();var from=consumer.originalPositionFor({line:line,column:column});if(!from.source)return false;var result={file:this.mapResolve(from.source),line:from.line,column:from.column};var source=consumer.sourceContentFor(from.source);if(source)result.source=source;return result};Input.prototype.mapResolve=function mapResolve(file){return _path2.default.resolve(this.map.consumer().sourceRoot||".",file)};_createClass(Input,[{key:"from",get:function get(){return this.file||this.id}}]);return Input}();exports.default=Input;module.exports=exports["default"]},{"./css-syntax-error":95,"./previous-map":105,path:86}],98:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _mapGenerator=require("./map-generator");var _mapGenerator2=_interopRequireDefault(_mapGenerator);var _stringify2=require("./stringify");var _stringify3=_interopRequireDefault(_stringify2);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);var _result=require("./result");var _result2=_interopRequireDefault(_result);var _parse=require("./parse");var _parse2=_interopRequireDefault(_parse);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function isPromise(obj){return(typeof obj==="undefined"?"undefined":_typeof(obj))==="object"&&typeof obj.then==="function"}var LazyResult=function(){function LazyResult(processor,css,opts){_classCallCheck(this,LazyResult);this.stringified=false;this.processed=false;var root=undefined;if((typeof css==="undefined"?"undefined":_typeof(css))==="object"&&css.type==="root"){root=css}else if(css instanceof LazyResult||css instanceof _result2.default){root=css.root;if(css.map){if(typeof opts.map==="undefined")opts.map={};if(!opts.map.inline)opts.map.inline=false;opts.map.prev=css.map}}else{var parser=_parse2.default;if(opts.syntax)parser=opts.syntax.parse;if(opts.parser)parser=opts.parser;if(parser.parse)parser=parser.parse;try{root=parser(css,opts)}catch(error){this.error=error}}this.result=new _result2.default(processor,root,opts)}LazyResult.prototype.warnings=function warnings(){return this.sync().warnings()};LazyResult.prototype.toString=function toString(){return this.css};LazyResult.prototype.then=function then(onFulfilled,onRejected){return this.async().then(onFulfilled,onRejected)};LazyResult.prototype.catch=function _catch(onRejected){return this.async().catch(onRejected)};LazyResult.prototype.handleError=function handleError(error,plugin){try{this.error=error;if(error.name==="CssSyntaxError"&&!error.plugin){error.plugin=plugin.postcssPlugin;error.setMessage()}else if(plugin.postcssVersion){var pluginName=plugin.postcssPlugin;var pluginVer=plugin.postcssVersion;var runtimeVer=this.result.processor.version;var a=pluginVer.split(".");var b=runtimeVer.split(".");if(a[0]!==b[0]||parseInt(a[1])>parseInt(b[1])){(0,_warnOnce2.default)("Your current PostCSS version "+"is "+runtimeVer+", but "+pluginName+" "+"uses "+pluginVer+". Perhaps this is "+"the source of the error below.")}}}catch(err){if(console&&console.error)console.error(err)}};LazyResult.prototype.asyncTick=function asyncTick(resolve,reject){var _this=this;if(this.plugin>=this.processor.plugins.length){this.processed=true;return resolve()}try{(function(){var plugin=_this.processor.plugins[_this.plugin];var promise=_this.run(plugin);_this.plugin+=1;if(isPromise(promise)){promise.then(function(){_this.asyncTick(resolve,reject)}).catch(function(error){_this.handleError(error,plugin);_this.processed=true;reject(error)})}else{_this.asyncTick(resolve,reject)}})()}catch(error){this.processed=true;reject(error)}};LazyResult.prototype.async=function async(){var _this2=this;if(this.processed){return new Promise(function(resolve,reject){if(_this2.error){reject(_this2.error)}else{resolve(_this2.stringify())}})}if(this.processing){return this.processing}this.processing=new Promise(function(resolve,reject){if(_this2.error)return reject(_this2.error);_this2.plugin=0;_this2.asyncTick(resolve,reject)}).then(function(){_this2.processed=true;return _this2.stringify()});return this.processing};LazyResult.prototype.sync=function sync(){if(this.processed)return this.result;this.processed=true;if(this.processing){throw new Error("Use process(css).then(cb) to work with async plugins")}if(this.error)throw this.error;for(var _iterator=this.result.processor.plugins,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var plugin=_ref;var promise=this.run(plugin);if(isPromise(promise)){throw new Error("Use process(css).then(cb) to work with async plugins")}}return this.result};LazyResult.prototype.run=function run(plugin){this.result.lastPlugin=plugin;try{return plugin(this.result.root,this.result)}catch(error){this.handleError(error,plugin);throw error}};LazyResult.prototype.stringify=function stringify(){if(this.stringified)return this.result;this.stringified=true;this.sync();var opts=this.result.opts;var str=_stringify3.default;if(opts.syntax)str=opts.syntax.stringify;if(opts.stringifier)str=opts.stringifier;if(str.stringify)str=str.stringify;var map=new _mapGenerator2.default(str,this.result.root,this.result.opts);var data=map.generate();this.result.css=data[0];this.result.map=data[1];return this.result};_createClass(LazyResult,[{key:"processor",get:function get(){return this.result.processor}},{key:"opts",get:function get(){return this.result.opts}},{key:"css",get:function get(){return this.stringify().css}},{key:"content",get:function get(){return this.stringify().content}},{key:"map",get:function get(){return this.stringify().map}},{key:"root",get:function get(){return this.sync().root}},{key:"messages",get:function get(){return this.sync().messages}}]);return LazyResult}();exports.default=LazyResult;module.exports=exports["default"]},{"./map-generator":100,"./parse":102,"./result":107,"./stringify":111,"./warn-once":114}],99:[function(require,module,exports){"use strict";exports.__esModule=true;var list={split:function split(string,separators,last){var array=[];var current="";var split=false;var func=0;var quote=false;var escape=false;for(var i=0;i<string.length;i++){var letter=string[i];if(quote){if(escape){escape=false}else if(letter==="\\"){escape=true}else if(letter===quote){quote=false}}else if(letter==='"'||letter==="'"){quote=letter}else if(letter==="("){func+=1}else if(letter===")"){if(func>0)func-=1}else if(func===0){if(separators.indexOf(letter)!==-1)split=true}if(split){if(current!=="")array.push(current.trim());current="";split=false}else{current+=letter}}if(last||current!=="")array.push(current.trim());return array},space:function space(string){var spaces=[" ","\n","\t"];return list.split(string,spaces)},comma:function comma(string){var comma=",";return list.split(string,[comma],true)}};exports.default=list;module.exports=exports["default"]},{}],100:[function(require,module,exports){"use strict";exports.__esModule=true;var _jsBase=require("js-base64");var _sourceMap=require("source-map");var _sourceMap2=_interopRequireDefault(_sourceMap);var _path=require("path");var _path2=_interopRequireDefault(_path);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var _class=function(){function _class(stringify,root,opts){_classCallCheck(this,_class);this.stringify=stringify;this.mapOpts=opts.map||{};this.root=root;this.opts=opts}_class.prototype.isMap=function isMap(){if(typeof this.opts.map!=="undefined"){return!!this.opts.map}else{return this.previous().length>0}};_class.prototype.previous=function previous(){var _this=this;if(!this.previousMaps){this.previousMaps=[];this.root.walk(function(node){if(node.source&&node.source.input.map){var map=node.source.input.map;if(_this.previousMaps.indexOf(map)===-1){_this.previousMaps.push(map)}}})}return this.previousMaps};_class.prototype.isInline=function isInline(){if(typeof this.mapOpts.inline!=="undefined"){return this.mapOpts.inline}var annotation=this.mapOpts.annotation;if(typeof annotation!=="undefined"&&annotation!==true){return false}if(this.previous().length){return this.previous().some(function(i){return i.inline})}else{return true}};_class.prototype.isSourcesContent=function isSourcesContent(){if(typeof this.mapOpts.sourcesContent!=="undefined"){return this.mapOpts.sourcesContent}if(this.previous().length){return this.previous().some(function(i){return i.withContent()})}else{return true}};_class.prototype.clearAnnotation=function clearAnnotation(){if(this.mapOpts.annotation===false)return;var node=undefined;for(var i=this.root.nodes.length-1;i>=0;i--){node=this.root.nodes[i];if(node.type!=="comment")continue;if(node.text.indexOf("# sourceMappingURL=")===0){this.root.removeChild(i)}}};_class.prototype.setSourcesContent=function setSourcesContent(){var _this2=this;var already={};this.root.walk(function(node){if(node.source){var from=node.source.input.from;if(from&&!already[from]){already[from]=true;var relative=_this2.relative(from);_this2.map.setSourceContent(relative,node.source.input.css)}}})};_class.prototype.applyPrevMaps=function applyPrevMaps(){for(var _iterator=this.previous(),_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var prev=_ref;var from=this.relative(prev.file);var root=prev.root||_path2.default.dirname(prev.file);var map=undefined;if(this.mapOpts.sourcesContent===false){map=new _sourceMap2.default.SourceMapConsumer(prev.text);if(map.sourcesContent){map.sourcesContent=map.sourcesContent.map(function(){return null})}}else{map=prev.consumer()}this.map.applySourceMap(map,from,this.relative(root))}};_class.prototype.isAnnotation=function isAnnotation(){if(this.isInline()){return true}else if(typeof this.mapOpts.annotation!=="undefined"){return this.mapOpts.annotation}else if(this.previous().length){return this.previous().some(function(i){return i.annotation})}else{return true}};_class.prototype.addAnnotation=function addAnnotation(){var content=undefined;if(this.isInline()){content="data:application/json;base64,"+_jsBase.Base64.encode(this.map.toString())}else if(typeof this.mapOpts.annotation==="string"){content=this.mapOpts.annotation}else{content=this.outputFile()+".map"}var eol="\n";if(this.css.indexOf("\r\n")!==-1)eol="\r\n";this.css+=eol+"/*# sourceMappingURL="+content+" */"};_class.prototype.outputFile=function outputFile(){if(this.opts.to){return this.relative(this.opts.to)}else if(this.opts.from){return this.relative(this.opts.from)}else{return"to.css"}};_class.prototype.generateMap=function generateMap(){this.generateString();if(this.isSourcesContent())this.setSourcesContent();if(this.previous().length>0)this.applyPrevMaps();if(this.isAnnotation())this.addAnnotation();if(this.isInline()){return[this.css]}else{return[this.css,this.map]}};_class.prototype.relative=function relative(file){var from=this.opts.to?_path2.default.dirname(this.opts.to):".";if(typeof this.mapOpts.annotation==="string"){from=_path2.default.dirname(_path2.default.resolve(from,this.mapOpts.annotation))}file=_path2.default.relative(from,file);if(_path2.default.sep==="\\"){return file.replace(/\\/g,"/")}else{return file}};_class.prototype.sourcePath=function sourcePath(node){return this.relative(node.source.input.from)};_class.prototype.generateString=function generateString(){var _this3=this;this.css="";this.map=new _sourceMap2.default.SourceMapGenerator({file:this.outputFile()});var line=1;var column=1;var lines=undefined,last=undefined;this.stringify(this.root,function(str,node,type){_this3.css+=str;if(node&&node.source&&node.source.start&&type!=="end"){_this3.map.addMapping({source:_this3.sourcePath(node),original:{line:node.source.start.line,column:node.source.start.column-1},generated:{line:line,column:column-1}})}lines=str.match(/\n/g);if(lines){line+=lines.length;last=str.lastIndexOf("\n");column=str.length-last}else{column+=str.length}if(node&&node.source&&node.source.end&&type!=="start"){_this3.map.addMapping({source:_this3.sourcePath(node),original:{line:node.source.end.line,column:node.source.end.column},generated:{line:line,column:column-1}})}})};_class.prototype.generate=function generate(){this.clearAnnotation();if(this.isMap()){return this.generateMap()}else{var result="";this.stringify(this.root,function(i){result+=i});return[result]}};return _class}();exports.default=_class;module.exports=exports["default"]},{"js-base64":83,path:86,"source-map":128}],101:[function(require,module,exports){"use strict";exports.__esModule=true;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _cssSyntaxError=require("./css-syntax-error");var _cssSyntaxError2=_interopRequireDefault(_cssSyntaxError);var _stringifier=require("./stringifier");var _stringifier2=_interopRequireDefault(_stringifier);var _stringify=require("./stringify");var _stringify2=_interopRequireDefault(_stringify);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var cloneNode=function cloneNode(obj,parent){var cloned=new obj.constructor;for(var i in obj){if(!obj.hasOwnProperty(i))continue;var value=obj[i];var type=typeof value==="undefined"?"undefined":_typeof(value);if(i==="parent"&&type==="object"){if(parent)cloned[i]=parent}else if(i==="source"){cloned[i]=value}else if(value instanceof Array){cloned[i]=value.map(function(j){return cloneNode(j,cloned)})}else if(i!=="before"&&i!=="after"&&i!=="between"&&i!=="semicolon"){if(type==="object"&&value!==null)value=cloneNode(value);cloned[i]=value}}return cloned};var Node=function(){function Node(){var defaults=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];_classCallCheck(this,Node);this.raws={};for(var name in defaults){this[name]=defaults[name]}}Node.prototype.error=function error(message){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];if(this.source){var pos=this.positionBy(opts);return this.source.input.error(message,pos.line,pos.column,opts)}else{return new _cssSyntaxError2.default(message)}};Node.prototype.warn=function warn(result,text,opts){return result.warn(text,_extends({node:this},opts))};Node.prototype.remove=function remove(){if(this.parent){this.parent.removeChild(this)}this.parent=undefined;return this};Node.prototype.toString=function toString(){var stringifier=arguments.length<=0||arguments[0]===undefined?_stringify2.default:arguments[0];if(stringifier.stringify)stringifier=stringifier.stringify;var result="";stringifier(this,function(i){result+=i});return result};Node.prototype.clone=function clone(){var overrides=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var cloned=cloneNode(this);for(var name in overrides){cloned[name]=overrides[name]}return cloned};Node.prototype.cloneBefore=function cloneBefore(){var overrides=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var cloned=this.clone(overrides);this.parent.insertBefore(this,cloned);return cloned};Node.prototype.cloneAfter=function cloneAfter(){var overrides=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var cloned=this.clone(overrides);this.parent.insertAfter(this,cloned);return cloned};Node.prototype.replaceWith=function replaceWith(){if(this.parent){for(var _len=arguments.length,nodes=Array(_len),_key=0;_key<_len;_key++){nodes[_key]=arguments[_key]}for(var _iterator=nodes,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var node=_ref;this.parent.insertBefore(this,node)}this.remove()}return this};Node.prototype.moveTo=function moveTo(container){this.cleanRaws(this.root()===container.root());this.remove();container.append(this);return this};Node.prototype.moveBefore=function moveBefore(node){this.cleanRaws(this.root()===node.root());this.remove();node.parent.insertBefore(node,this);return this};Node.prototype.moveAfter=function moveAfter(node){this.cleanRaws(this.root()===node.root());this.remove();node.parent.insertAfter(node,this);return this};Node.prototype.next=function next(){var index=this.parent.index(this);return this.parent.nodes[index+1]};Node.prototype.prev=function prev(){var index=this.parent.index(this);return this.parent.nodes[index-1]};Node.prototype.toJSON=function toJSON(){var fixed={};for(var name in this){if(!this.hasOwnProperty(name))continue;if(name==="parent")continue;var value=this[name];if(value instanceof Array){fixed[name]=value.map(function(i){if((typeof i==="undefined"?"undefined":_typeof(i))==="object"&&i.toJSON){return i.toJSON()}else{return i}})}else if((typeof value==="undefined"?"undefined":_typeof(value))==="object"&&value.toJSON){fixed[name]=value.toJSON()}else{fixed[name]=value}}return fixed};Node.prototype.raw=function raw(own,detect){var str=new _stringifier2.default;return str.raw(this,own,detect)};Node.prototype.root=function root(){var result=this;while(result.parent){result=result.parent}return result};Node.prototype.cleanRaws=function cleanRaws(keepBetween){delete this.raws.before;delete this.raws.after;if(!keepBetween)delete this.raws.between};Node.prototype.positionInside=function positionInside(index){var string=this.toString();var column=this.source.start.column;var line=this.source.start.line;for(var i=0;i<index;i++){if(string[i]==="\n"){column=1;line+=1}else{column+=1}}return{line:line,column:column}};Node.prototype.positionBy=function positionBy(opts){var pos=this.source.start;if(opts.index){pos=this.positionInside(opts.index)}else if(opts.word){var index=this.toString().indexOf(opts.word);if(index!==-1)pos=this.positionInside(index)}return pos};Node.prototype.removeSelf=function removeSelf(){(0,_warnOnce2.default)("Node#removeSelf is deprecated. Use Node#remove.");return this.remove()};Node.prototype.replace=function replace(nodes){(0,_warnOnce2.default)("Node#replace is deprecated. Use Node#replaceWith");return this.replaceWith(nodes)};Node.prototype.style=function style(own,detect){(0,_warnOnce2.default)("Node#style() is deprecated. Use Node#raw()");return this.raw(own,detect)};Node.prototype.cleanStyles=function cleanStyles(keepBetween){(0,_warnOnce2.default)("Node#cleanStyles() is deprecated. Use Node#cleanRaws()");return this.cleanRaws(keepBetween)};_createClass(Node,[{key:"before",get:function get(){(0,_warnOnce2.default)("Node#before is deprecated. Use Node#raws.before");return this.raws.before},set:function set(val){(0,_warnOnce2.default)("Node#before is deprecated. Use Node#raws.before");this.raws.before=val}},{key:"between",get:function get(){(0,_warnOnce2.default)("Node#between is deprecated. Use Node#raws.between");return this.raws.between},set:function set(val){(0,_warnOnce2.default)("Node#between is deprecated. Use Node#raws.between");this.raws.between=val}}]);return Node}();exports.default=Node;module.exports=exports["default"]},{"./css-syntax-error":95,"./stringifier":110,"./stringify":111,"./warn-once":114}],102:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default=parse;var _parser=require("./parser");var _parser2=_interopRequireDefault(_parser);var _input=require("./input");var _input2=_interopRequireDefault(_input);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function parse(css,opts){if(opts&&opts.safe){throw new Error("Option safe was removed. "+'Use parser: require("postcss-safe-parser")')}var input=new _input2.default(css,opts);var parser=new _parser2.default(input);parser.tokenize();parser.loop();return parser.root}module.exports=exports["default"]},{"./input":97,"./parser":103}],103:[function(require,module,exports){"use strict";exports.__esModule=true;var _declaration=require("./declaration");var _declaration2=_interopRequireDefault(_declaration);var _tokenize=require("./tokenize");var _tokenize2=_interopRequireDefault(_tokenize);var _comment=require("./comment");var _comment2=_interopRequireDefault(_comment);var _atRule=require("./at-rule");var _atRule2=_interopRequireDefault(_atRule);var _root=require("./root");var _root2=_interopRequireDefault(_root);var _rule=require("./rule");var _rule2=_interopRequireDefault(_rule);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Parser=function(){function Parser(input){_classCallCheck(this,Parser);this.input=input;this.pos=0;this.root=new _root2.default;this.current=this.root;this.spaces="";this.semicolon=false;this.root.source={input:input,start:{line:1,column:1}}}Parser.prototype.tokenize=function tokenize(){this.tokens=(0,_tokenize2.default)(this.input)};Parser.prototype.loop=function loop(){var token=undefined;while(this.pos<this.tokens.length){token=this.tokens[this.pos];switch(token[0]){case"word":case":":this.word();break;case"}":this.end(token);break;case"comment":this.comment(token);break;case"at-word":this.atrule(token);break;case"{":this.emptyRule(token);break;default:this.spaces+=token[1];break}this.pos+=1}this.endFile()};Parser.prototype.comment=function comment(token){var node=new _comment2.default;this.init(node,token[2],token[3]);node.source.end={line:token[4],column:token[5]};var text=token[1].slice(2,-2);if(/^\s*$/.test(text)){node.text="";node.raws.left=text;node.raws.right=""}else{var match=text.match(/^(\s*)([^]*[^\s])(\s*)$/);node.text=match[2];node.raws.left=match[1];node.raws.right=match[3]}};Parser.prototype.emptyRule=function emptyRule(token){var node=new _rule2.default;this.init(node,token[2],token[3]);node.selector="";node.raws.between="";this.current=node};Parser.prototype.word=function word(){var token=undefined;var end=false;var type=null;var colon=false;var bracket=null;var brackets=0;var start=this.pos;this.pos+=1;while(this.pos<this.tokens.length){token=this.tokens[this.pos];type=token[0];if(type==="("){if(!bracket)bracket=token;brackets+=1}else if(brackets===0){if(type===";"){if(colon){this.decl(this.tokens.slice(start,this.pos+1));return}else{break}}else if(type==="{"){this.rule(this.tokens.slice(start,this.pos+1));return}else if(type==="}"){this.pos-=1;end=true;break}else if(type===":"){colon=true}}else if(type===")"){brackets-=1;if(brackets===0)bracket=null}this.pos+=1}if(this.pos===this.tokens.length){this.pos-=1;end=true}if(brackets>0)this.unclosedBracket(bracket);if(end&&colon){while(this.pos>start){token=this.tokens[this.pos][0];if(token!=="space"&&token!=="comment")break;this.pos-=1}this.decl(this.tokens.slice(start,this.pos+1));return}this.unknownWord(start)};Parser.prototype.rule=function rule(tokens){tokens.pop();var node=new _rule2.default;this.init(node,tokens[0][2],tokens[0][3]);node.raws.between=this.spacesFromEnd(tokens);this.raw(node,"selector",tokens);this.current=node};Parser.prototype.decl=function decl(tokens){var node=new _declaration2.default;this.init(node);var last=tokens[tokens.length-1];if(last[0]===";"){this.semicolon=true;tokens.pop()}if(last[4]){node.source.end={line:last[4],column:last[5]}}else{node.source.end={line:last[2],column:last[3]}}while(tokens[0][0]!=="word"){node.raws.before+=tokens.shift()[1]}node.source.start={line:tokens[0][2],column:tokens[0][3]};node.prop="";while(tokens.length){var type=tokens[0][0];if(type===":"||type==="space"||type==="comment"){break}node.prop+=tokens.shift()[1]}node.raws.between="";var token=undefined;while(tokens.length){token=tokens.shift();if(token[0]===":"){node.raws.between+=token[1];break}else{node.raws.between+=token[1]}}if(node.prop[0]==="_"||node.prop[0]==="*"){node.raws.before+=node.prop[0];node.prop=node.prop.slice(1)}node.raws.between+=this.spacesFromStart(tokens);this.precheckMissedSemicolon(tokens);for(var i=tokens.length-1;i>0;i--){token=tokens[i];if(token[1]==="!important"){node.important=true;var string=this.stringFrom(tokens,i);string=this.spacesFromEnd(tokens)+string;if(string!==" !important")node.raws.important=string;break}else if(token[1]==="important"){var cache=tokens.slice(0);var str="";for(var j=i;j>0;j--){var type=cache[j][0];if(str.trim().indexOf("!")===0&&type!=="space"){break}str=cache.pop()[1]+str}if(str.trim().indexOf("!")===0){node.important=true;node.raws.important=str;tokens=cache}}if(token[0]!=="space"&&token[0]!=="comment"){break}}this.raw(node,"value",tokens);if(node.value.indexOf(":")!==-1)this.checkMissedSemicolon(tokens)};Parser.prototype.atrule=function atrule(token){var node=new _atRule2.default;node.name=token[1].slice(1);if(node.name===""){this.unnamedAtrule(node,token)}this.init(node,token[2],token[3]);var last=false;var open=false;var params=[];this.pos+=1;while(this.pos<this.tokens.length){token=this.tokens[this.pos];if(token[0]===";"){node.source.end={line:token[2],column:token[3]};this.semicolon=true;break}else if(token[0]==="{"){open=true;break}else if(token[0]==="}"){this.end(token);break}else{params.push(token)}this.pos+=1}if(this.pos===this.tokens.length){last=true}node.raws.between=this.spacesFromEnd(params);if(params.length){node.raws.afterName=this.spacesFromStart(params);this.raw(node,"params",params);if(last){token=params[params.length-1];node.source.end={line:token[4],column:token[5]};this.spaces=node.raws.between;node.raws.between=""}}else{node.raws.afterName="";node.params=""}if(open){node.nodes=[];this.current=node}};Parser.prototype.end=function end(token){if(this.current.nodes&&this.current.nodes.length){this.current.raws.semicolon=this.semicolon}this.semicolon=false;this.current.raws.after=(this.current.raws.after||"")+this.spaces;this.spaces="";if(this.current.parent){this.current.source.end={line:token[2],column:token[3]};this.current=this.current.parent}else{this.unexpectedClose(token)}};Parser.prototype.endFile=function endFile(){if(this.current.parent)this.unclosedBlock();if(this.current.nodes&&this.current.nodes.length){this.current.raws.semicolon=this.semicolon}this.current.raws.after=(this.current.raws.after||"")+this.spaces};Parser.prototype.init=function init(node,line,column){this.current.push(node);node.source={start:{line:line,column:column},input:this.input};node.raws.before=this.spaces;this.spaces="";if(node.type!=="comment")this.semicolon=false};Parser.prototype.raw=function raw(node,prop,tokens){var token=undefined,type=undefined;var length=tokens.length;var value="";var clean=true;for(var i=0;i<length;i+=1){token=tokens[i];type=token[0];if(type==="comment"||type==="space"&&i===length-1){clean=false}else{value+=token[1]}}if(!clean){var raw=tokens.reduce(function(all,i){return all+i[1]},"");node.raws[prop]={value:value,raw:raw}}node[prop]=value};Parser.prototype.spacesFromEnd=function spacesFromEnd(tokens){var next=undefined;var spaces="";while(tokens.length){next=tokens[tokens.length-1][0];if(next!=="space"&&next!=="comment")break;spaces+=tokens.pop()[1]}return spaces};Parser.prototype.spacesFromStart=function spacesFromStart(tokens){var next=undefined;var spaces="";while(tokens.length){next=tokens[0][0];if(next!=="space"&&next!=="comment")break;spaces+=tokens.shift()[1]}return spaces};Parser.prototype.stringFrom=function stringFrom(tokens,from){var result="";for(var i=from;i<tokens.length;i++){result+=tokens[i][1]}tokens.splice(from,tokens.length-from);return result};Parser.prototype.colon=function colon(tokens){var brackets=0;var token=undefined,type=undefined,prev=undefined;for(var i=0;i<tokens.length;i++){token=tokens[i];type=token[0];if(type==="("){brackets+=1}else if(type===")"){brackets-=1}else if(brackets===0&&type===":"){if(!prev){this.doubleColon(token)}else if(prev[0]==="word"&&prev[1]==="progid"){continue}else{return i}}prev=token}return false};Parser.prototype.unclosedBracket=function unclosedBracket(bracket){throw this.input.error("Unclosed bracket",bracket[2],bracket[3])};Parser.prototype.unknownWord=function unknownWord(start){var token=this.tokens[start];throw this.input.error("Unknown word",token[2],token[3])};Parser.prototype.unexpectedClose=function unexpectedClose(token){throw this.input.error("Unexpected }",token[2],token[3])};Parser.prototype.unclosedBlock=function unclosedBlock(){var pos=this.current.source.start;throw this.input.error("Unclosed block",pos.line,pos.column)};Parser.prototype.doubleColon=function doubleColon(token){throw this.input.error("Double colon",token[2],token[3])};Parser.prototype.unnamedAtrule=function unnamedAtrule(node,token){throw this.input.error("At-rule without name",token[2],token[3])};Parser.prototype.precheckMissedSemicolon=function precheckMissedSemicolon(tokens){tokens};Parser.prototype.checkMissedSemicolon=function checkMissedSemicolon(tokens){var colon=this.colon(tokens);if(colon===false)return;var founded=0;var token=undefined;for(var j=colon-1;j>=0;j--){token=tokens[j];if(token[0]!=="space"){founded+=1;if(founded===2)break}}throw this.input.error("Missed semicolon",token[2],token[3])};return Parser}();exports.default=Parser;module.exports=exports["default"]},{"./at-rule":92,"./comment":93,"./declaration":96,"./root":108,"./rule":109,"./tokenize":112}],104:[function(require,module,exports){"use strict";exports.__esModule=true;var _declaration=require("./declaration");var _declaration2=_interopRequireDefault(_declaration);var _processor=require("./processor");var _processor2=_interopRequireDefault(_processor);var _stringify=require("./stringify");var _stringify2=_interopRequireDefault(_stringify);var _comment=require("./comment");var _comment2=_interopRequireDefault(_comment);var _atRule=require("./at-rule");var _atRule2=_interopRequireDefault(_atRule);var _vendor=require("./vendor");var _vendor2=_interopRequireDefault(_vendor);var _parse=require("./parse");var _parse2=_interopRequireDefault(_parse);var _list=require("./list");var _list2=_interopRequireDefault(_list);var _rule=require("./rule");var _rule2=_interopRequireDefault(_rule);var _root=require("./root");var _root2=_interopRequireDefault(_root);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var postcss=function postcss(){for(var _len=arguments.length,plugins=Array(_len),_key=0;_key<_len;_key++){plugins[_key]=arguments[_key]}if(plugins.length===1&&Array.isArray(plugins[0])){plugins=plugins[0]}return new _processor2.default(plugins)};postcss.plugin=function(name,initializer){var creator=function creator(){var transformer=initializer.apply(undefined,arguments);transformer.postcssPlugin=name;transformer.postcssVersion=(new _processor2.default).version;return transformer};creator.postcss=creator();creator.process=function(css,opts){return postcss([creator(opts)]).process(css,opts)};return creator};postcss.stringify=_stringify2.default;postcss.vendor=_vendor2.default;postcss.parse=_parse2.default;postcss.list=_list2.default;postcss.comment=function(defaults){return new _comment2.default(defaults)};postcss.atRule=function(defaults){return new _atRule2.default(defaults)};postcss.decl=function(defaults){return new _declaration2.default(defaults)};postcss.rule=function(defaults){return new _rule2.default(defaults)};postcss.root=function(defaults){return new _root2.default(defaults)};exports.default=postcss;module.exports=exports["default"]},{"./at-rule":92,"./comment":93,"./declaration":96,"./list":99,"./parse":102,"./processor":106,"./root":108,"./rule":109,"./stringify":111,"./vendor":113}],105:[function(require,module,exports){"use strict";exports.__esModule=true;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _jsBase=require("js-base64");var _sourceMap=require("source-map");var _sourceMap2=_interopRequireDefault(_sourceMap);var _path=require("path");var _path2=_interopRequireDefault(_path);var _fs=require("fs");var _fs2=_interopRequireDefault(_fs);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var PreviousMap=function(){function PreviousMap(css,opts){_classCallCheck(this,PreviousMap);this.loadAnnotation(css);this.inline=this.startWith(this.annotation,"data:");var prev=opts.map?opts.map.prev:undefined;var text=this.loadMap(opts.from,prev);if(text)this.text=text}PreviousMap.prototype.consumer=function consumer(){if(!this.consumerCache){this.consumerCache=new _sourceMap2.default.SourceMapConsumer(this.text)}return this.consumerCache};PreviousMap.prototype.withContent=function withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)};PreviousMap.prototype.startWith=function startWith(string,start){if(!string)return false;return string.substr(0,start.length)===start};PreviousMap.prototype.loadAnnotation=function loadAnnotation(css){var match=css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//);if(match)this.annotation=match[1].trim()};PreviousMap.prototype.decodeInline=function decodeInline(text){var utf64="data:application/json;charset=utf-8;base64,";var b64="data:application/json;base64,";var uri="data:application/json,";if(this.startWith(text,uri)){return decodeURIComponent(text.substr(uri.length))}else if(this.startWith(text,b64)){return _jsBase.Base64.decode(text.substr(b64.length))}else if(this.startWith(text,utf64)){return _jsBase.Base64.decode(text.substr(utf64.length))}else{var encoding=text.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+encoding)}};PreviousMap.prototype.loadMap=function loadMap(file,prev){if(prev===false)return false;if(prev){if(typeof prev==="string"){return prev}else if(prev instanceof _sourceMap2.default.SourceMapConsumer){return _sourceMap2.default.SourceMapGenerator.fromSourceMap(prev).toString()}else if(prev instanceof _sourceMap2.default.SourceMapGenerator){return prev.toString()}else if(this.isMap(prev)){return JSON.stringify(prev)}else{throw new Error("Unsupported previous source map format: "+prev.toString())}}else if(this.inline){return this.decodeInline(this.annotation)}else if(this.annotation){var map=this.annotation;if(file)map=_path2.default.join(_path2.default.dirname(file),map);this.root=_path2.default.dirname(map);if(_fs2.default.existsSync&&_fs2.default.existsSync(map)){return _fs2.default.readFileSync(map,"utf-8").toString().trim()}else{return false}}};PreviousMap.prototype.isMap=function isMap(map){if((typeof map==="undefined"?"undefined":_typeof(map))!=="object")return false;return typeof map.mappings==="string"||typeof map._mappings==="string"};return PreviousMap}();exports.default=PreviousMap;module.exports=exports["default"]},{fs:39,"js-base64":83,path:86,"source-map":128}],106:[function(require,module,exports){"use strict";exports.__esModule=true;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _lazyResult=require("./lazy-result");var _lazyResult2=_interopRequireDefault(_lazyResult);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Processor=function(){function Processor(){var plugins=arguments.length<=0||arguments[0]===undefined?[]:arguments[0];_classCallCheck(this,Processor);this.version="5.0.14";this.plugins=this.normalize(plugins)}Processor.prototype.use=function use(plugin){this.plugins=this.plugins.concat(this.normalize([plugin]));return this};Processor.prototype.process=function process(css){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return new _lazyResult2.default(this,css,opts)};Processor.prototype.normalize=function normalize(plugins){var normalized=[];for(var _iterator=plugins,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var i=_ref;if(i.postcss)i=i.postcss;if((typeof i==="undefined"?"undefined":_typeof(i))==="object"&&Array.isArray(i.plugins)){normalized=normalized.concat(i.plugins)}else if(typeof i==="function"){normalized.push(i)}else{throw new Error(i+" is not a PostCSS plugin")}}return normalized};return Processor}();exports.default=Processor;module.exports=exports["default"]},{"./lazy-result":98}],107:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _warning=require("./warning");var _warning2=_interopRequireDefault(_warning);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Result=function(){function Result(processor,root,opts){_classCallCheck(this,Result);this.processor=processor;this.messages=[];this.root=root;this.opts=opts;this.css=undefined;this.map=undefined}Result.prototype.toString=function toString(){return this.css};Result.prototype.warn=function warn(text){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];if(!opts.plugin){if(this.lastPlugin&&this.lastPlugin.postcssPlugin){opts.plugin=this.lastPlugin.postcssPlugin}}this.messages.push(new _warning2.default(text,opts))};Result.prototype.warnings=function warnings(){return this.messages.filter(function(i){return i.type==="warning"})};_createClass(Result,[{key:"content",get:function get(){return this.css}}]);return Result}();exports.default=Result;module.exports=exports["default"]},{"./warning":115}],108:[function(require,module,exports){"use strict";exports.__esModule=true;var _container=require("./container");var _container2=_interopRequireDefault(_container);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Root=function(_Container){_inherits(Root,_Container);function Root(defaults){_classCallCheck(this,Root);var _this=_possibleConstructorReturn(this,_Container.call(this,defaults));_this.type="root";if(!_this.nodes)_this.nodes=[];return _this}Root.prototype.removeChild=function removeChild(child){child=this.index(child);if(child===0&&this.nodes.length>1){this.nodes[1].raws.before=this.nodes[child].raws.before}return _Container.prototype.removeChild.call(this,child)};Root.prototype.normalize=function normalize(child,sample,type){var nodes=_Container.prototype.normalize.call(this,child);if(sample){if(type==="prepend"){if(this.nodes.length>1){sample.raws.before=this.nodes[1].raws.before}else{delete sample.raws.before}}else if(this.first!==sample){for(var _iterator=nodes,_isArray=Array.isArray(_iterator),_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value}var node=_ref;node.raws.before=sample.raws.before}}}return nodes};Root.prototype.toResult=function toResult(){var opts=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var LazyResult=require("./lazy-result");var Processor=require("./processor");var lazy=new LazyResult(new Processor,this,opts);return lazy.stringify()};Root.prototype.remove=function remove(child){(0,_warnOnce2.default)("Root#remove is deprecated. Use Root#removeChild");this.removeChild(child)};Root.prototype.prevMap=function prevMap(){(0,_warnOnce2.default)("Root#prevMap is deprecated. Use Root#source.input.map");return this.source.input.map};return Root}(_container2.default);exports.default=Root;module.exports=exports["default"]},{"./container":94,"./lazy-result":98,"./processor":106,"./warn-once":114}],109:[function(require,module,exports){"use strict";exports.__esModule=true;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _container=require("./container");var _container2=_interopRequireDefault(_container);var _warnOnce=require("./warn-once");var _warnOnce2=_interopRequireDefault(_warnOnce);var _list=require("./list");var _list2=_interopRequireDefault(_list);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Rule=function(_Container){_inherits(Rule,_Container);function Rule(defaults){_classCallCheck(this,Rule);var _this=_possibleConstructorReturn(this,_Container.call(this,defaults));_this.type="rule";if(!_this.nodes)_this.nodes=[];return _this}_createClass(Rule,[{key:"selectors",get:function get(){return _list2.default.comma(this.selector)},set:function set(values){var match=this.selector?this.selector.match(/,\s*/):null;var sep=match?match[0]:","+this.raw("between","beforeOpen");this.selector=values.join(sep)}},{key:"_selector",get:function get(){(0,_warnOnce2.default)("Rule#_selector is deprecated. Use Rule#raws.selector");return this.raws.selector},set:function set(val){(0,_warnOnce2.default)("Rule#_selector is deprecated. Use Rule#raws.selector");this.raws.selector=val}}]);return Rule}(_container2.default);exports.default=Rule;module.exports=exports["default"]},{"./container":94,"./list":99,"./warn-once":114}],110:[function(require,module,exports){"use strict";exports.__esModule=true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var defaultRaw={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" "};function capitalize(str){return str[0].toUpperCase()+str.slice(1)}var Stringifier=function(){function Stringifier(builder){_classCallCheck(this,Stringifier);this.builder=builder}Stringifier.prototype.stringify=function stringify(node,semicolon){this[node.type](node,semicolon)};Stringifier.prototype.root=function root(node){this.body(node);if(node.raws.after)this.builder(node.raws.after)};Stringifier.prototype.comment=function comment(node){var left=this.raw(node,"left","commentLeft");var right=this.raw(node,"right","commentRight");this.builder("/*"+left+node.text+right+"*/",node)};Stringifier.prototype.decl=function decl(node,semicolon){var between=this.raw(node,"between","colon");var string=node.prop+between+this.rawValue(node,"value");if(node.important){string+=node.raws.important||" !important"}if(semicolon)string+=";";this.builder(string,node)};Stringifier.prototype.rule=function rule(node){this.block(node,this.rawValue(node,"selector"))};Stringifier.prototype.atrule=function atrule(node,semicolon){var name="@"+node.name;var params=node.params?this.rawValue(node,"params"):"";if(typeof node.raws.afterName!=="undefined"){name+=node.raws.afterName}else if(params){name+=" "}if(node.nodes){this.block(node,name+params)}else{var end=(node.raws.between||"")+(semicolon?";":"");this.builder(name+params+end,node)}};Stringifier.prototype.body=function body(node){var last=node.nodes.length-1;while(last>0){if(node.nodes[last].type!=="comment")break;last-=1}var semicolon=this.raw(node,"semicolon");for(var i=0;i<node.nodes.length;i++){var child=node.nodes[i];var before=this.raw(child,"before");if(before)this.builder(before);this.stringify(child,last!==i||semicolon)}};Stringifier.prototype.block=function block(node,start){var between=this.raw(node,"between","beforeOpen");this.builder(start+between+"{",node,"start");var after=undefined;if(node.nodes&&node.nodes.length){this.body(node);after=this.raw(node,"after")}else{after=this.raw(node,"after","emptyBody")}if(after)this.builder(after);this.builder("}",node,"end")};Stringifier.prototype.raw=function raw(node,own,detect){var value=undefined;if(!detect)detect=own;if(own){value=node.raws[own];if(typeof value!=="undefined")return value}var parent=node.parent;if(detect==="before"){if(!parent||parent.type==="root"&&parent.first===node){return""}}if(!parent)return defaultRaw[detect];var root=node.root();if(!root.rawCache)root.rawCache={};if(typeof root.rawCache[detect]!=="undefined"){return root.rawCache[detect]}if(detect==="before"||detect==="after"){return this.beforeAfter(node,detect)}else{var method="raw"+capitalize(detect);if(this[method]){value=this[method](root,node)}else{root.walk(function(i){value=i.raws[own];if(typeof value!=="undefined")return false})}}if(typeof value==="undefined")value=defaultRaw[detect];root.rawCache[detect]=value;return value};Stringifier.prototype.rawSemicolon=function rawSemicolon(root){var value=undefined;root.walk(function(i){if(i.nodes&&i.nodes.length&&i.last.type==="decl"){value=i.raws.semicolon;if(typeof value!=="undefined")return false}});return value};Stringifier.prototype.rawEmptyBody=function rawEmptyBody(root){var value=undefined;root.walk(function(i){if(i.nodes&&i.nodes.length===0){value=i.raws.after;if(typeof value!=="undefined")return false}});return value};Stringifier.prototype.rawIndent=function rawIndent(root){if(root.raws.indent)return root.raws.indent;var value=undefined;root.walk(function(i){var p=i.parent;if(p&&p!==root&&p.parent&&p.parent===root){if(typeof i.raws.before!=="undefined"){var parts=i.raws.before.split("\n");value=parts[parts.length-1];value=value.replace(/[^\s]/g,"");return false}}});return value};Stringifier.prototype.rawBeforeComment=function rawBeforeComment(root,node){var value=undefined;root.walkComments(function(i){if(typeof i.raws.before!=="undefined"){value=i.raws.before;if(value.indexOf("\n")!==-1){value=value.replace(/[^\n]+$/,"")}return false}});if(typeof value==="undefined"){value=this.raw(node,null,"beforeDecl")}return value};Stringifier.prototype.rawBeforeDecl=function rawBeforeDecl(root,node){var value=undefined;root.walkDecls(function(i){if(typeof i.raws.before!=="undefined"){value=i.raws.before;if(value.indexOf("\n")!==-1){value=value.replace(/[^\n]+$/,"")}return false}});if(typeof value==="undefined"){value=this.raw(node,null,"beforeRule")}return value};Stringifier.prototype.rawBeforeRule=function rawBeforeRule(root){var value=undefined;root.walk(function(i){if(i.nodes&&(i.parent!==root||root.first!==i)){if(typeof i.raws.before!=="undefined"){value=i.raws.before;if(value.indexOf("\n")!==-1){value=value.replace(/[^\n]+$/,"")}return false}}});return value};Stringifier.prototype.rawBeforeClose=function rawBeforeClose(root){var value=undefined;root.walk(function(i){if(i.nodes&&i.nodes.length>0){if(typeof i.raws.after!=="undefined"){value=i.raws.after;if(value.indexOf("\n")!==-1){value=value.replace(/[^\n]+$/,"")}return false}}});return value};Stringifier.prototype.rawBeforeOpen=function rawBeforeOpen(root){var value=undefined;root.walk(function(i){if(i.type!=="decl"){value=i.raws.between;if(typeof value!=="undefined")return false}});return value};Stringifier.prototype.rawColon=function rawColon(root){var value=undefined;root.walkDecls(function(i){if(typeof i.raws.between!=="undefined"){value=i.raws.between.replace(/[^\s:]/g,"");return false}});return value};Stringifier.prototype.beforeAfter=function beforeAfter(node,detect){var value=undefined;if(node.type==="decl"){value=this.raw(node,null,"beforeDecl")}else if(node.type==="comment"){value=this.raw(node,null,"beforeComment")}else if(detect==="before"){value=this.raw(node,null,"beforeRule")}else{value=this.raw(node,null,"beforeClose")}var buf=node.parent;var depth=0;while(buf&&buf.type!=="root"){depth+=1;buf=buf.parent}if(value.indexOf("\n")!==-1){var indent=this.raw(node,null,"indent");if(indent.length){for(var step=0;step<depth;step++){value+=indent}}}return value};Stringifier.prototype.rawValue=function rawValue(node,prop){var value=node[prop];var raw=node.raws[prop];if(raw&&raw.value===value){return raw.raw}else{return value}};return Stringifier}();exports.default=Stringifier;module.exports=exports["default"]},{}],111:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default=stringify;var _stringifier=require("./stringifier");var _stringifier2=_interopRequireDefault(_stringifier);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function stringify(node,builder){var str=new _stringifier2.default(builder);str.stringify(node)}module.exports=exports["default"]},{"./stringifier":110}],112:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default=tokenize;var SINGLE_QUOTE=39;var DOUBLE_QUOTE=34;var BACKSLASH=92;var SLASH=47;var NEWLINE=10;var SPACE=32;var FEED=12;var TAB=9;var CR=13;var OPEN_PARENTHESES=40;var CLOSE_PARENTHESES=41;var OPEN_CURLY=123;var CLOSE_CURLY=125;var SEMICOLON=59;var ASTERICK=42;var COLON=58;var AT=64;var RE_AT_END=/[ \n\t\r\f\{\(\)'"\\;/]/g;var RE_WORD_END=/[ \n\t\r\f\(\)\{\}:;@!'"\\]|\/(?=\*)/g;var RE_BAD_BRACKET=/.[\\\/\("'\n]/;function tokenize(input){var tokens=[];var css=input.css.valueOf();var code=undefined,next=undefined,quote=undefined,lines=undefined,last=undefined,content=undefined,escape=undefined,nextLine=undefined,nextOffset=undefined,escaped=undefined,escapePos=undefined,prev=undefined,n=undefined;var length=css.length;var offset=-1;var line=1;var pos=0;function unclosed(what){throw input.error("Unclosed "+what,line,pos-offset)}while(pos<length){code=css.charCodeAt(pos);if(code===NEWLINE||code===FEED||code===CR&&css.charCodeAt(pos+1)!==NEWLINE){offset=pos;line+=1}switch(code){case NEWLINE:case SPACE:case TAB:case CR:case FEED:next=pos;do{next+=1;code=css.charCodeAt(next);if(code===NEWLINE){offset=next;line+=1}}while(code===SPACE||code===NEWLINE||code===TAB||code===CR||code===FEED);tokens.push(["space",css.slice(pos,next)]);pos=next-1;break;case OPEN_CURLY:tokens.push(["{","{",line,pos-offset]);break;case CLOSE_CURLY:tokens.push(["}","}",line,pos-offset]);break;case COLON:tokens.push([":",":",line,pos-offset]);break;case SEMICOLON:tokens.push([";",";",line,pos-offset]);break;case OPEN_PARENTHESES:prev=tokens.length?tokens[tokens.length-1][1]:"";n=css.charCodeAt(pos+1);if(prev==="url"&&n!==SINGLE_QUOTE&&n!==DOUBLE_QUOTE&&n!==SPACE&&n!==NEWLINE&&n!==TAB&&n!==FEED&&n!==CR){next=pos;do{escaped=false;next=css.indexOf(")",next+1);if(next===-1)unclosed("bracket");escapePos=next;while(css.charCodeAt(escapePos-1)===BACKSLASH){escapePos-=1;escaped=!escaped}}while(escaped);tokens.push(["brackets",css.slice(pos,next+1),line,pos-offset,line,next-offset]);pos=next}else{next=css.indexOf(")",pos+1);content=css.slice(pos,next+1);if(next===-1||RE_BAD_BRACKET.test(content)){tokens.push(["(","(",line,pos-offset])}else{tokens.push(["brackets",content,line,pos-offset,line,next-offset]);pos=next}}break;case CLOSE_PARENTHESES:tokens.push([")",")",line,pos-offset]);break;case SINGLE_QUOTE:case DOUBLE_QUOTE:quote=code===SINGLE_QUOTE?"'":'"';next=pos;do{escaped=false;next=css.indexOf(quote,next+1);if(next===-1)unclosed("quote");escapePos=next;while(css.charCodeAt(escapePos-1)===BACKSLASH){escapePos-=1;escaped=!escaped}}while(escaped);content=css.slice(pos,next+1);lines=content.split("\n");last=lines.length-1;if(last>0){nextLine=line+last;nextOffset=next-lines[last].length}else{nextLine=line;nextOffset=offset}tokens.push(["string",css.slice(pos,next+1),line,pos-offset,nextLine,next-nextOffset]);offset=nextOffset;line=nextLine;pos=next;break;case AT:RE_AT_END.lastIndex=pos+1;RE_AT_END.test(css);if(RE_AT_END.lastIndex===0){next=css.length-1}else{next=RE_AT_END.lastIndex-2}tokens.push(["at-word",css.slice(pos,next+1),line,pos-offset,line,next-offset]);pos=next;break;case BACKSLASH:next=pos;escape=true;while(css.charCodeAt(next+1)===BACKSLASH){next+=1;escape=!escape}code=css.charCodeAt(next+1);if(escape&&code!==SLASH&&code!==SPACE&&code!==NEWLINE&&code!==TAB&&code!==CR&&code!==FEED){next+=1}tokens.push(["word",css.slice(pos,next+1),line,pos-offset,line,next-offset]);pos=next;break;default:if(code===SLASH&&css.charCodeAt(pos+1)===ASTERICK){next=css.indexOf("*/",pos+2)+1;if(next===0)unclosed("comment");content=css.slice(pos,next+1);lines=content.split("\n");last=lines.length-1;if(last>0){nextLine=line+last;nextOffset=next-lines[last].length}else{nextLine=line;nextOffset=offset}tokens.push(["comment",content,line,pos-offset,nextLine,next-nextOffset]);offset=nextOffset;line=nextLine;pos=next}else{RE_WORD_END.lastIndex=pos+1;RE_WORD_END.test(css);if(RE_WORD_END.lastIndex===0){next=css.length-1}else{next=RE_WORD_END.lastIndex-2}tokens.push(["word",css.slice(pos,next+1),line,pos-offset,line,next-offset]);pos=next}break}pos++}return tokens}module.exports=exports["default"]},{}],113:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default={prefix:function prefix(prop){if(prop[0]==="-"){var sep=prop.indexOf("-",1);return prop.substr(0,sep+1)}else{return""}},unprefixed:function unprefixed(prop){if(prop[0]==="-"){var sep=prop.indexOf("-",1);return prop.substr(sep+1)}else{return prop}}};module.exports=exports["default"]},{}],114:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default=warnOnce;var printed={};function warnOnce(message){if(printed[message])return;printed[message]=true;if(typeof console!=="undefined"&&console.warn)console.warn(message)}module.exports=exports["default"]},{}],115:[function(require,module,exports){"use strict";exports.__esModule=true;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Warning=function(){function Warning(text){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];_classCallCheck(this,Warning);this.type="warning";this.text=text;if(opts.node&&opts.node.source){var pos=opts.node.positionBy(opts);this.line=pos.line;this.column=pos.column}for(var opt in opts){this[opt]=opts[opt]}}Warning.prototype.toString=function toString(){if(this.node){return this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message}else if(this.plugin){return this.plugin+": "+this.text}else{return this.text}};return Warning}();exports.default=Warning;module.exports=exports["default"]},{}],116:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],117:[function(require,module,exports){"use strict";(function(){var ss={};if(typeof module!=="undefined"){module.exports=ss}else{this.ss=ss}function linear_regression(){var linreg={},data=[];linreg.data=function(x){if(!arguments.length)return data;data=x.slice();return linreg};linreg.mb=function(){var m,b;var data_length=data.length;if(data_length===1){m=0;b=data[0][1]}else{var sum_x=0,sum_y=0,sum_xx=0,sum_xy=0;var point,x,y;for(var i=0;i<data_length;i++){point=data[i];x=point[0];y=point[1];sum_x+=x;sum_y+=y;sum_xx+=x*x;sum_xy+=x*y}m=(data_length*sum_xy-sum_x*sum_y)/(data_length*sum_xx-sum_x*sum_x);b=sum_y/data_length-m*sum_x/data_length}return{m:m,b:b}};linreg.m=function(){return linreg.mb().m};linreg.b=function(){return linreg.mb().b};linreg.line=function(){var mb=linreg.mb(),m=mb.m,b=mb.b;return function(x){return b+m*x}};return linreg}function r_squared(data,f){if(data.length<2)return 1;var sum=0,average;for(var i=0;i<data.length;i++){sum+=data[i][1]}average=sum/data.length;var sum_of_squares=0;for(var j=0;j<data.length;j++){sum_of_squares+=Math.pow(average-data[j][1],2)}var err=0;for(var k=0;k<data.length;k++){err+=Math.pow(data[k][1]-f(data[k][0]),2)}return 1-err/sum_of_squares}function bayesian(){var bayes_model={},total_count=0,data={};bayes_model.train=function(item,category){if(!data[category])data[category]={};for(var k in item){var v=item[k];if(data[category][k]===undefined)data[category][k]={};if(data[category][k][v]===undefined)data[category][k][v]=0;data[category][k][item[k]]++}total_count++};bayes_model.score=function(item){var odds={},category;for(var k in item){var v=item[k];for(category in data){if(odds[category]===undefined)odds[category]={};if(data[category][k]){odds[category][k+"_"+v]=(data[category][k][v]||0)/total_count}else{odds[category][k+"_"+v]=0}}}var odds_sums={};for(category in odds){for(var combination in odds[category]){if(odds_sums[category]===undefined)odds_sums[category]=0;odds_sums[category]+=odds[category][combination]}}return odds_sums};return bayes_model}function sum(x){var value=0;for(var i=0;i<x.length;i++){value+=x[i]}return value}function mean(x){if(x.length===0)return null;return sum(x)/x.length}function geometric_mean(x){if(x.length===0)return null;var value=1;for(var i=0;i<x.length;i++){if(x[i]<=0)return null;value*=x[i]}return Math.pow(value,1/x.length)}function harmonic_mean(x){if(x.length===0)return null;var reciprocal_sum=0;for(var i=0;i<x.length;i++){if(x[i]<=0)return null;reciprocal_sum+=1/x[i]}return x.length/reciprocal_sum}function root_mean_square(x){if(x.length===0)return null;var sum_of_squares=0;for(var i=0;i<x.length;i++){sum_of_squares+=Math.pow(x[i],2)}return Math.sqrt(sum_of_squares/x.length)}function min(x){var value;for(var i=0;i<x.length;i++){if(x[i]<value||value===undefined)value=x[i]}return value}function max(x){var value;for(var i=0;i<x.length;i++){if(x[i]>value||value===undefined)value=x[i]}return value}function variance(x){if(x.length===0)return null;var mean_value=mean(x),deviations=[];for(var i=0;i<x.length;i++){deviations.push(Math.pow(x[i]-mean_value,2))}return mean(deviations)}function standard_deviation(x){if(x.length===0)return null;return Math.sqrt(variance(x))}function sum_nth_power_deviations(x,n){var mean_value=mean(x),sum=0;for(var i=0;i<x.length;i++){sum+=Math.pow(x[i]-mean_value,n)}return sum}function sample_variance(x){if(x.length<=1)return null;var sum_squared_deviations_value=sum_nth_power_deviations(x,2);return sum_squared_deviations_value/(x.length-1)}function sample_standard_deviation(x){if(x.length<=1)return null;return Math.sqrt(sample_variance(x))}function sample_covariance(x,y){if(x.length<=1||x.length!==y.length){return null}var xmean=mean(x),ymean=mean(y),sum=0;for(var i=0;i<x.length;i++){sum+=(x[i]-xmean)*(y[i]-ymean)}return sum/(x.length-1)}function sample_correlation(x,y){var cov=sample_covariance(x,y),xstd=sample_standard_deviation(x),ystd=sample_standard_deviation(y);if(cov===null||xstd===null||ystd===null){return null}return cov/xstd/ystd}function median(x){if(x.length===0)return null;var sorted=x.slice().sort(function(a,b){return a-b});if(sorted.length%2===1){return sorted[(sorted.length-1)/2]}else{var a=sorted[sorted.length/2-1];var b=sorted[sorted.length/2];return(a+b)/2}}function mode(x){if(x.length===0)return null;else if(x.length===1)return x[0];var sorted=x.slice().sort(function(a,b){return a-b});var last=sorted[0],value,max_seen=0,seen_this=1;for(var i=1;i<sorted.length+1;i++){if(sorted[i]!==last){if(seen_this>max_seen){max_seen=seen_this;value=last}seen_this=1;last=sorted[i]}else{seen_this++}}return value}function t_test(sample,x){var sample_mean=mean(sample);var sd=standard_deviation(sample);var rootN=Math.sqrt(sample.length);return(sample_mean-x)/(sd/rootN)}function t_test_two_sample(sample_x,sample_y,difference){var n=sample_x.length,m=sample_y.length;if(!n||!m)return null;if(!difference)difference=0;var meanX=mean(sample_x),meanY=mean(sample_y);var weightedVariance=((n-1)*sample_variance(sample_x)+(m-1)*sample_variance(sample_y))/(n+m-2);return(meanX-meanY-difference)/Math.sqrt(weightedVariance*(1/n+1/m))}function chunk(sample,chunkSize){var output=[];if(chunkSize<=0){return null}for(var start=0;start<sample.length;start+=chunkSize){output.push(sample.slice(start,start+chunkSize))}return output}function shuffle_in_place(sample,randomSource){randomSource=randomSource||Math.random;var length=sample.length;var temporary;var index;while(length>0){index=Math.floor(randomSource()*length--);temporary=sample[length];sample[length]=sample[index];sample[index]=temporary}return sample}function shuffle(sample,randomSource){sample=sample.slice();return shuffle_in_place(sample.slice(),randomSource)}function sample(array,n,randomSource){var shuffled=shuffle(array,randomSource);return shuffled.slice(0,n)}function quantile_sorted(sample,p){var idx=sample.length*p;if(p<0||p>1){return null}else if(p===1){return sample[sample.length-1]}else if(p===0){return sample[0]}else if(idx%1!==0){return sample[Math.ceil(idx)-1]}else if(sample.length%2===0){return(sample[idx-1]+sample[idx])/2}else{return sample[idx]}}function quantile(sample,p){if(sample.length===0)return null;var sorted=sample.slice().sort(function(a,b){return a-b});if(p.length){var results=[];for(var i=0;i<p.length;i++){results[i]=quantile_sorted(sorted,p[i])}return results}else{return quantile_sorted(sorted,p)}}function iqr(sample){if(sample.length===0)return null;return quantile(sample,.75)-quantile(sample,.25)}function mad(x){if(!x||x.length===0)return null;var median_value=median(x),median_absolute_deviations=[];for(var i=0;i<x.length;i++){median_absolute_deviations.push(Math.abs(x[i]-median_value))}return median(median_absolute_deviations)}function jenksMatrices(data,n_classes){var lower_class_limits=[],variance_combinations=[],i,j,variance=0;for(i=0;i<data.length+1;i++){var tmp1=[],tmp2=[];for(j=0;j<n_classes+1;j++){tmp1.push(0);tmp2.push(0)}lower_class_limits.push(tmp1);variance_combinations.push(tmp2)}for(i=1;i<n_classes+1;i++){lower_class_limits[1][i]=1;variance_combinations[1][i]=0;for(j=2;j<data.length+1;j++){variance_combinations[j][i]=Infinity}}for(var l=2;l<data.length+1;l++){var sum=0,sum_squares=0,w=0,i4=0;for(var m=1;m<l+1;m++){var lower_class_limit=l-m+1,val=data[lower_class_limit-1];w++;sum+=val;sum_squares+=val*val;variance=sum_squares-sum*sum/w;i4=lower_class_limit-1;if(i4!==0){for(j=2;j<n_classes+1;j++){if(variance_combinations[l][j]>=variance+variance_combinations[i4][j-1]){lower_class_limits[l][j]=lower_class_limit;variance_combinations[l][j]=variance+variance_combinations[i4][j-1]}}}}lower_class_limits[l][1]=1;variance_combinations[l][1]=variance}return{lower_class_limits:lower_class_limits,variance_combinations:variance_combinations}}function jenksBreaks(data,lower_class_limits,n_classes){var k=data.length,kclass=[],countNum=n_classes;kclass[n_classes]=data[data.length-1];while(countNum>0){kclass[countNum-1]=data[lower_class_limits[k][countNum]-1];k=lower_class_limits[k][countNum]-1;countNum--}return kclass}function jenks(data,n_classes){if(n_classes>data.length)return null;data=data.slice().sort(function(a,b){return a-b});var matrices=jenksMatrices(data,n_classes),lower_class_limits=matrices.lower_class_limits;return jenksBreaks(data,lower_class_limits,n_classes)}function sample_skewness(x){if(x.length<3)return null;var n=x.length,cubed_s=Math.pow(sample_standard_deviation(x),3),sum_cubed_deviations=sum_nth_power_deviations(x,3);return n*sum_cubed_deviations/((n-1)*(n-2)*cubed_s)}var standard_normal_table=[.5,.504,.508,.512,.516,.5199,.5239,.5279,.5319,.5359,.5398,.5438,.5478,.5517,.5557,.5596,.5636,.5675,.5714,.5753,.5793,.5832,.5871,.591,.5948,.5987,.6026,.6064,.6103,.6141,.6179,.6217,.6255,.6293,.6331,.6368,.6406,.6443,.648,.6517,.6554,.6591,.6628,.6664,.67,.6736,.6772,.6808,.6844,.6879,.6915,.695,.6985,.7019,.7054,.7088,.7123,.7157,.719,.7224,.7257,.7291,.7324,.7357,.7389,.7422,.7454,.7486,.7517,.7549,.758,.7611,.7642,.7673,.7704,.7734,.7764,.7794,.7823,.7852,.7881,.791,.7939,.7967,.7995,.8023,.8051,.8078,.8106,.8133,.8159,.8186,.8212,.8238,.8264,.8289,.8315,.834,.8365,.8389,.8413,.8438,.8461,.8485,.8508,.8531,.8554,.8577,.8599,.8621,.8643,.8665,.8686,.8708,.8729,.8749,.877,.879,.881,.883,.8849,.8869,.8888,.8907,.8925,.8944,.8962,.898,.8997,.9015,.9032,.9049,.9066,.9082,.9099,.9115,.9131,.9147,.9162,.9177,.9192,.9207,.9222,.9236,.9251,.9265,.9279,.9292,.9306,.9319,.9332,.9345,.9357,.937,.9382,.9394,.9406,.9418,.9429,.9441,.9452,.9463,.9474,.9484,.9495,.9505,.9515,.9525,.9535,.9545,.9554,.9564,.9573,.9582,.9591,.9599,.9608,.9616,.9625,.9633,.9641,.9649,.9656,.9664,.9671,.9678,.9686,.9693,.9699,.9706,.9713,.9719,.9726,.9732,.9738,.9744,.975,.9756,.9761,.9767,.9772,.9778,.9783,.9788,.9793,.9798,.9803,.9808,.9812,.9817,.9821,.9826,.983,.9834,.9838,.9842,.9846,.985,.9854,.9857,.9861,.9864,.9868,.9871,.9875,.9878,.9881,.9884,.9887,.989,.9893,.9896,.9898,.9901,.9904,.9906,.9909,.9911,.9913,.9916,.9918,.992,.9922,.9925,.9927,.9929,.9931,.9932,.9934,.9936,.9938,.994,.9941,.9943,.9945,.9946,.9948,.9949,.9951,.9952,.9953,.9955,.9956,.9957,.9959,.996,.9961,.9962,.9963,.9964,.9965,.9966,.9967,.9968,.9969,.997,.9971,.9972,.9973,.9974,.9974,.9975,.9976,.9977,.9977,.9978,.9979,.9979,.998,.9981,.9981,.9982,.9982,.9983,.9984,.9984,.9985,.9985,.9986,.9986,.9987,.9987,.9987,.9988,.9988,.9989,.9989,.9989,.999,.999];function error_function(x){var t=1/(1+.5*Math.abs(x));var tau=t*Math.exp(-Math.pow(x,2)-1.26551223+1.00002368*t+.37409196*Math.pow(t,2)+.09678418*Math.pow(t,3)-.18628806*Math.pow(t,4)+.27886807*Math.pow(t,5)-1.13520398*Math.pow(t,6)+1.48851587*Math.pow(t,7)-.82215223*Math.pow(t,8)+.17087277*Math.pow(t,9));if(x>=0){return 1-tau}else{return tau-1}}function cumulative_std_normal_probability(z){var absZ=Math.abs(z),index=Math.min(Math.round(absZ*100),standard_normal_table.length-1);if(z>=0){return standard_normal_table[index]}else{return+(1-standard_normal_table[index]).toFixed(4)}}function z_score(x,mean,standard_deviation){return(x-mean)/standard_deviation}var epsilon=1e-4;function factorial(n){if(n<0){return null}var accumulator=1;for(var i=2;i<=n;i++){accumulator*=i}return accumulator}function binomial_distribution(trials,probability){if(probability<0||probability>1||trials<=0||trials%1!==0){return null}function probability_mass(x,trials,probability){return factorial(trials)/(factorial(x)*factorial(trials-x))*(Math.pow(probability,x)*Math.pow(1-probability,trials-x))}var x=0,cumulative_probability=0,cells={};do{cells[x]=probability_mass(x,trials,probability);cumulative_probability+=cells[x];x++}while(cumulative_probability<1-epsilon);return cells}function bernoulli_distribution(p){if(p<0||p>1){return null}return binomial_distribution(1,p)}function poisson_distribution(lambda){if(lambda<=0){return null}var x=0,cumulative_probability=0,cells={};function probability_mass(x,lambda){return Math.pow(Math.E,-lambda)*Math.pow(lambda,x)/factorial(x)}do{cells[x]=probability_mass(x,lambda);cumulative_probability+=cells[x];x++}while(cumulative_probability<1-epsilon);return cells}var chi_squared_distribution_table={1:{.995:0,.99:0,.975:0,.95:0,.9:.02,.5:.45,.1:2.71,.05:3.84,.025:5.02,.01:6.63,.005:7.88},2:{.995:.01,.99:.02,.975:.05,.95:.1,.9:.21,.5:1.39,.1:4.61,.05:5.99,.025:7.38,.01:9.21,.005:10.6},3:{.995:.07,.99:.11,.975:.22,.95:.35,.9:.58,.5:2.37,.1:6.25,.05:7.81,.025:9.35,.01:11.34,.005:12.84},4:{.995:.21,.99:.3,.975:.48,.95:.71,.9:1.06,.5:3.36,.1:7.78,.05:9.49,.025:11.14,.01:13.28,.005:14.86},5:{.995:.41,.99:.55,.975:.83,.95:1.15,.9:1.61,.5:4.35,.1:9.24,.05:11.07,.025:12.83,.01:15.09,.005:16.75},6:{.995:.68,.99:.87,.975:1.24,.95:1.64,.9:2.2,.5:5.35,.1:10.65,.05:12.59,.025:14.45,.01:16.81,.005:18.55},7:{.995:.99,.99:1.25,.975:1.69,.95:2.17,.9:2.83,.5:6.35,.1:12.02,.05:14.07,.025:16.01,.01:18.48,.005:20.28},8:{.995:1.34,.99:1.65,.975:2.18,.95:2.73,.9:3.49,.5:7.34,.1:13.36,.05:15.51,.025:17.53,.01:20.09,.005:21.96},9:{.995:1.73,.99:2.09,.975:2.7,.95:3.33,.9:4.17,.5:8.34,.1:14.68,.05:16.92,.025:19.02,.01:21.67,.005:23.59},10:{.995:2.16,.99:2.56,.975:3.25,.95:3.94,.9:4.87,.5:9.34,.1:15.99,.05:18.31,.025:20.48,.01:23.21,.005:25.19},11:{.995:2.6,.99:3.05,.975:3.82,.95:4.57,.9:5.58,.5:10.34,.1:17.28,.05:19.68,.025:21.92,.01:24.72,.005:26.76},12:{.995:3.07,.99:3.57,.975:4.4,.95:5.23,.9:6.3,.5:11.34,.1:18.55,.05:21.03,.025:23.34,.01:26.22,.005:28.3},13:{.995:3.57,.99:4.11,.975:5.01,.95:5.89,.9:7.04,.5:12.34,.1:19.81,.05:22.36,.025:24.74,.01:27.69,.005:29.82},14:{.995:4.07,.99:4.66,.975:5.63,.95:6.57,.9:7.79,.5:13.34,.1:21.06,.05:23.68,.025:26.12,.01:29.14,.005:31.32},15:{.995:4.6,.99:5.23,.975:6.27,.95:7.26,.9:8.55,.5:14.34,.1:22.31,.05:25,.025:27.49,.01:30.58,.005:32.8},16:{.995:5.14,.99:5.81,.975:6.91,.95:7.96,.9:9.31,.5:15.34,.1:23.54,.05:26.3,.025:28.85,.01:32,.005:34.27},17:{.995:5.7,.99:6.41,.975:7.56,.95:8.67,.9:10.09,.5:16.34,.1:24.77,.05:27.59,.025:30.19,.01:33.41,.005:35.72},18:{.995:6.26,.99:7.01,.975:8.23,.95:9.39,.9:10.87,.5:17.34,.1:25.99,.05:28.87,.025:31.53,.01:34.81,.005:37.16},19:{.995:6.84,.99:7.63,.975:8.91,.95:10.12,.9:11.65,.5:18.34,.1:27.2,.05:30.14,.025:32.85,.01:36.19,.005:38.58},20:{.995:7.43,.99:8.26,.975:9.59,.95:10.85,.9:12.44,.5:19.34,.1:28.41,.05:31.41,.025:34.17,.01:37.57,.005:40},21:{.995:8.03,.99:8.9,.975:10.28,.95:11.59,.9:13.24,.5:20.34,.1:29.62,.05:32.67,.025:35.48,.01:38.93,.005:41.4},22:{.995:8.64,.99:9.54,.975:10.98,.95:12.34,.9:14.04,.5:21.34,.1:30.81,.05:33.92,.025:36.78,.01:40.29,.005:42.8},23:{.995:9.26,.99:10.2,.975:11.69,.95:13.09,.9:14.85,.5:22.34,.1:32.01,.05:35.17,.025:38.08,.01:41.64,.005:44.18},24:{.995:9.89,.99:10.86,.975:12.4,.95:13.85,.9:15.66,.5:23.34,.1:33.2,.05:36.42,.025:39.36,.01:42.98,.005:45.56},25:{.995:10.52,.99:11.52,.975:13.12,.95:14.61,.9:16.47,.5:24.34,.1:34.28,.05:37.65,.025:40.65,.01:44.31,.005:46.93},26:{.995:11.16,.99:12.2,.975:13.84,.95:15.38,.9:17.29,.5:25.34,.1:35.56,.05:38.89,.025:41.92,.01:45.64,.005:48.29},27:{.995:11.81,.99:12.88,.975:14.57,.95:16.15,.9:18.11,.5:26.34,.1:36.74,.05:40.11,.025:43.19,.01:46.96,.005:49.65},28:{.995:12.46,.99:13.57,.975:15.31,.95:16.93,.9:18.94,.5:27.34,.1:37.92,.05:41.34,.025:44.46,.01:48.28,.005:50.99},29:{.995:13.12,.99:14.26,.975:16.05,.95:17.71,.9:19.77,.5:28.34,.1:39.09,.05:42.56,.025:45.72,.01:49.59,.005:52.34},30:{.995:13.79,.99:14.95,.975:16.79,.95:18.49,.9:20.6,.5:29.34,.1:40.26,.05:43.77,.025:46.98,.01:50.89,.005:53.67},40:{.995:20.71,.99:22.16,.975:24.43,.95:26.51,.9:29.05,.5:39.34,.1:51.81,.05:55.76,.025:59.34,.01:63.69,.005:66.77},50:{.995:27.99,.99:29.71,.975:32.36,.95:34.76,.9:37.69,.5:49.33,.1:63.17,.05:67.5,.025:71.42,.01:76.15,.005:79.49},60:{.995:35.53,.99:37.48,.975:40.48,.95:43.19,.9:46.46,.5:59.33,.1:74.4,.05:79.08,.025:83.3,.01:88.38,.005:91.95},70:{.995:43.28,.99:45.44,.975:48.76,.95:51.74,.9:55.33,.5:69.33,.1:85.53,.05:90.53,.025:95.02,.01:100.42,.005:104.22},80:{.995:51.17,.99:53.54,.975:57.15,.95:60.39,.9:64.28,.5:79.33,.1:96.58,.05:101.88,.025:106.63,.01:112.33,.005:116.32},90:{.995:59.2,.99:61.75,.975:65.65,.95:69.13,.9:73.29,.5:89.33,.1:107.57,.05:113.14,.025:118.14,.01:124.12,.005:128.3},100:{.995:67.33,.99:70.06,.975:74.22,.95:77.93,.9:82.36,.5:99.33,.1:118.5,.05:124.34,.025:129.56,.01:135.81,.005:140.17}};function chi_squared_goodness_of_fit(data,distribution_type,significance){var input_mean=mean(data),chi_squared=0,degrees_of_freedom,c=1,hypothesized_distribution=distribution_type(input_mean),observed_frequencies=[],expected_frequencies=[],k;for(var i=0;i<data.length;i++){if(observed_frequencies[data[i]]===undefined){observed_frequencies[data[i]]=0}observed_frequencies[data[i]]++}for(i=0;i<observed_frequencies.length;i++){if(observed_frequencies[i]===undefined){observed_frequencies[i]=0}}for(k in hypothesized_distribution){if(k in observed_frequencies){expected_frequencies[k]=hypothesized_distribution[k]*data.length}}for(k=expected_frequencies.length-1;k>=0;k--){if(expected_frequencies[k]<3){expected_frequencies[k-1]+=expected_frequencies[k];expected_frequencies.pop();observed_frequencies[k-1]+=observed_frequencies[k];observed_frequencies.pop()}}for(k=0;k<observed_frequencies.length;k++){chi_squared+=Math.pow(observed_frequencies[k]-expected_frequencies[k],2)/expected_frequencies[k]}degrees_of_freedom=observed_frequencies.length-c-1;return chi_squared_distribution_table[degrees_of_freedom][significance]<chi_squared}function mixin(array){var support=!!(Object.defineProperty&&Object.defineProperties);if(!support)throw new Error("without defineProperty, simple-statistics cannot be mixed in");var arrayMethods=["median","standard_deviation","sum","sample_skewness","mean","min","max","quantile","geometric_mean","harmonic_mean","root_mean_square"];function wrap(method){return function(){var args=Array.prototype.slice.apply(arguments);args.unshift(this);return ss[method].apply(ss,args)}}var extending;if(array){extending=array.slice()}else{extending=Array.prototype}for(var i=0;i<arrayMethods.length;i++){Object.defineProperty(extending,arrayMethods[i],{value:wrap(arrayMethods[i]),configurable:true,enumerable:false,writable:true})}return extending}ss.linear_regression=linear_regression;ss.standard_deviation=standard_deviation;ss.r_squared=r_squared;ss.median=median;ss.mean=mean;ss.mode=mode;ss.min=min;ss.max=max;ss.sum=sum;ss.quantile=quantile;ss.quantile_sorted=quantile_sorted;ss.iqr=iqr;ss.mad=mad;ss.chunk=chunk;ss.shuffle=shuffle;ss.shuffle_in_place=shuffle_in_place;ss.sample=sample;ss.sample_covariance=sample_covariance;ss.sample_correlation=sample_correlation;ss.sample_variance=sample_variance;ss.sample_standard_deviation=sample_standard_deviation;ss.sample_skewness=sample_skewness;ss.geometric_mean=geometric_mean;ss.harmonic_mean=harmonic_mean;ss.root_mean_square=root_mean_square;ss.variance=variance;ss.t_test=t_test;ss.t_test_two_sample=t_test_two_sample;ss.jenksMatrices=jenksMatrices;ss.jenksBreaks=jenksBreaks;ss.jenks=jenks;ss.bayesian=bayesian;ss.epsilon=epsilon;ss.factorial=factorial;ss.bernoulli_distribution=bernoulli_distribution;ss.binomial_distribution=binomial_distribution;ss.poisson_distribution=poisson_distribution;ss.chi_squared_goodness_of_fit=chi_squared_goodness_of_fit;ss.z_score=z_score;ss.cumulative_std_normal_probability=cumulative_std_normal_probability;ss.standard_normal_table=standard_normal_table;ss.error_function=error_function;ss.average=mean;ss.interquartile_range=iqr;ss.mixin=mixin;ss.median_absolute_deviation=mad;ss.rms=root_mean_square;ss.erf=error_function})(this)},{}],118:[function(require,module,exports){var util=require("./util");var has=Object.prototype.hasOwnProperty;var hasNativeMap=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=hasNativeMap?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(aArray,aAllowDuplicates){var set=new ArraySet;for(var i=0,len=aArray.length;i<len;i++){set.add(aArray[i],aAllowDuplicates)}return set};ArraySet.prototype.size=function ArraySet_size(){return hasNativeMap?this._set.size:Object.getOwnPropertyNames(this._set).length};ArraySet.prototype.add=function ArraySet_add(aStr,aAllowDuplicates){var sStr=hasNativeMap?aStr:util.toSetString(aStr);var isDuplicate=hasNativeMap?this.has(aStr):has.call(this._set,sStr);var idx=this._array.length;if(!isDuplicate||aAllowDuplicates){this._array.push(aStr)}if(!isDuplicate){if(hasNativeMap){this._set.set(aStr,idx)}else{this._set[sStr]=idx}}};ArraySet.prototype.has=function ArraySet_has(aStr){if(hasNativeMap){return this._set.has(aStr)}else{var sStr=util.toSetString(aStr);return has.call(this._set,sStr)}};ArraySet.prototype.indexOf=function ArraySet_indexOf(aStr){if(hasNativeMap){var idx=this._set.get(aStr);if(idx>=0){return idx}}else{var sStr=util.toSetString(aStr);if(has.call(this._set,sStr)){return this._set[sStr]}}throw new Error('"'+aStr+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(aIdx){if(aIdx>=0&&aIdx<this._array.length){return this._array[aIdx]}throw new Error("No element indexed by "+aIdx)};ArraySet.prototype.toArray=function ArraySet_toArray(){return this._array.slice()};exports.ArraySet=ArraySet},{"./util":127}],119:[function(require,module,exports){var base64=require("./base64");var VLQ_BASE_SHIFT=5;var VLQ_BASE=1<<VLQ_BASE_SHIFT;var VLQ_BASE_MASK=VLQ_BASE-1;var VLQ_CONTINUATION_BIT=VLQ_BASE;function toVLQSigned(aValue){return aValue<0?(-aValue<<1)+1:(aValue<<1)+0}function fromVLQSigned(aValue){var isNegative=(aValue&1)===1;var shifted=aValue>>1;return isNegative?-shifted:shifted}exports.encode=function base64VLQ_encode(aValue){var encoded="";var digit;var vlq=toVLQSigned(aValue);do{digit=vlq&VLQ_BASE_MASK;vlq>>>=VLQ_BASE_SHIFT;if(vlq>0){digit|=VLQ_CONTINUATION_BIT}encoded+=base64.encode(digit)}while(vlq>0);return encoded};exports.decode=function base64VLQ_decode(aStr,aIndex,aOutParam){var strLen=aStr.length;var result=0;var shift=0;var continuation,digit;do{if(aIndex>=strLen){throw new Error("Expected more digits in base 64 VLQ value.")}digit=base64.decode(aStr.charCodeAt(aIndex++));if(digit===-1){throw new Error("Invalid base64 digit: "+aStr.charAt(aIndex-1))}continuation=!!(digit&VLQ_CONTINUATION_BIT);digit&=VLQ_BASE_MASK;result=result+(digit<<shift);shift+=VLQ_BASE_SHIFT}while(continuation);aOutParam.value=fromVLQSigned(result);aOutParam.rest=aIndex}},{"./base64":120}],120:[function(require,module,exports){var intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");exports.encode=function(number){if(0<=number&&number<intToCharMap.length){return intToCharMap[number]}throw new TypeError("Must be between 0 and 63: "+number)};exports.decode=function(charCode){var bigA=65;var bigZ=90;var littleA=97;var littleZ=122;var zero=48;var nine=57;var plus=43;var slash=47;var littleOffset=26;var numberOffset=52;if(bigA<=charCode&&charCode<=bigZ){return charCode-bigA}if(littleA<=charCode&&charCode<=littleZ){return charCode-littleA+littleOffset}if(zero<=charCode&&charCode<=nine){return charCode-zero+numberOffset}if(charCode==plus){return 62}if(charCode==slash){return 63}return-1}},{}],121:[function(require,module,exports){exports.GREATEST_LOWER_BOUND=1;exports.LEAST_UPPER_BOUND=2;function recursiveSearch(aLow,aHigh,aNeedle,aHaystack,aCompare,aBias){var mid=Math.floor((aHigh-aLow)/2)+aLow;var cmp=aCompare(aNeedle,aHaystack[mid],true);if(cmp===0){return mid}else if(cmp>0){if(aHigh-mid>1){return recursiveSearch(mid,aHigh,aNeedle,aHaystack,aCompare,aBias)}if(aBias==exports.LEAST_UPPER_BOUND){return aHigh<aHaystack.length?aHigh:-1}else{return mid}}else{if(mid-aLow>1){return recursiveSearch(aLow,mid,aNeedle,aHaystack,aCompare,aBias)}if(aBias==exports.LEAST_UPPER_BOUND){return mid}else{return aLow<0?-1:aLow}}}exports.search=function search(aNeedle,aHaystack,aCompare,aBias){if(aHaystack.length===0){return-1}var index=recursiveSearch(-1,aHaystack.length,aNeedle,aHaystack,aCompare,aBias||exports.GREATEST_LOWER_BOUND);if(index<0){return-1}while(index-1>=0){if(aCompare(aHaystack[index],aHaystack[index-1],true)!==0){break}--index}return index}},{}],122:[function(require,module,exports){var util=require("./util");function generatedPositionAfter(mappingA,mappingB){var lineA=mappingA.generatedLine;var lineB=mappingB.generatedLine;var columnA=mappingA.generatedColumn;var columnB=mappingB.generatedColumn;return lineB>lineA||lineB==lineA&&columnB>=columnA||util.compareByGeneratedPositionsInflated(mappingA,mappingB)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(aCallback,aThisArg){this._array.forEach(aCallback,aThisArg)};MappingList.prototype.add=function MappingList_add(aMapping){if(generatedPositionAfter(this._last,aMapping)){this._last=aMapping;this._array.push(aMapping)}else{this._sorted=false;this._array.push(aMapping)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(util.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};exports.MappingList=MappingList},{"./util":127}],123:[function(require,module,exports){function swap(ary,x,y){var temp=ary[x];ary[x]=ary[y];ary[y]=temp}function randomIntInRange(low,high){return Math.round(low+Math.random()*(high-low))}function doQuickSort(ary,comparator,p,r){if(p<r){var pivotIndex=randomIntInRange(p,r);var i=p-1;swap(ary,pivotIndex,r);var pivot=ary[r];for(var j=p;j<r;j++){if(comparator(ary[j],pivot)<=0){i+=1;swap(ary,i,j)}}swap(ary,i+1,j);var q=i+1;doQuickSort(ary,comparator,p,q-1);doQuickSort(ary,comparator,q+1,r)}}exports.quickSort=function(ary,comparator){doQuickSort(ary,comparator,0,ary.length-1)}},{}],124:[function(require,module,exports){var util=require("./util");var binarySearch=require("./binary-search");var ArraySet=require("./array-set").ArraySet;var base64VLQ=require("./base64-vlq");var quickSort=require("./quick-sort").quickSort;function SourceMapConsumer(aSourceMap){var sourceMap=aSourceMap;if(typeof aSourceMap==="string"){sourceMap=JSON.parse(aSourceMap.replace(/^\)\]\}'/,""))}return sourceMap.sections!=null?new IndexedSourceMapConsumer(sourceMap):new BasicSourceMapConsumer(sourceMap)}SourceMapConsumer.fromSourceMap=function(aSourceMap){return BasicSourceMapConsumer.fromSourceMap(aSourceMap)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(aStr,index){var c=aStr.charAt(index);return c===";"||c===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(aStr,aSourceRoot){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(aCallback,aContext,aOrder){var context=aContext||null;var order=aOrder||SourceMapConsumer.GENERATED_ORDER;var mappings;switch(order){case SourceMapConsumer.GENERATED_ORDER:mappings=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:mappings=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var sourceRoot=this.sourceRoot;mappings.map(function(mapping){var source=mapping.source===null?null:this._sources.at(mapping.source);if(source!=null&&sourceRoot!=null){source=util.join(sourceRoot,source)}return{source:source,generatedLine:mapping.generatedLine,generatedColumn:mapping.generatedColumn,originalLine:mapping.originalLine,originalColumn:mapping.originalColumn,name:mapping.name===null?null:this._names.at(mapping.name)}},this).forEach(aCallback,context)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(aArgs){var line=util.getArg(aArgs,"line");var needle={source:util.getArg(aArgs,"source"),originalLine:line,originalColumn:util.getArg(aArgs,"column",0)};if(this.sourceRoot!=null){needle.source=util.relative(this.sourceRoot,needle.source)}if(!this._sources.has(needle.source)){return[]}needle.source=this._sources.indexOf(needle.source);var mappings=[];var index=this._findMapping(needle,this._originalMappings,"originalLine","originalColumn",util.compareByOriginalPositions,binarySearch.LEAST_UPPER_BOUND);if(index>=0){var mapping=this._originalMappings[index];if(aArgs.column===undefined){var originalLine=mapping.originalLine;while(mapping&&mapping.originalLine===originalLine){mappings.push({line:util.getArg(mapping,"generatedLine",null),column:util.getArg(mapping,"generatedColumn",null),lastColumn:util.getArg(mapping,"lastGeneratedColumn",null)});mapping=this._originalMappings[++index]}}else{var originalColumn=mapping.originalColumn;while(mapping&&mapping.originalLine===line&&mapping.originalColumn==originalColumn){mappings.push({line:util.getArg(mapping,"generatedLine",null),column:util.getArg(mapping,"generatedColumn",null),lastColumn:util.getArg(mapping,"lastGeneratedColumn",null)});mapping=this._originalMappings[++index]}}}return mappings};exports.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(aSourceMap){var sourceMap=aSourceMap;if(typeof aSourceMap==="string"){sourceMap=JSON.parse(aSourceMap.replace(/^\)\]\}'/,""))}var version=util.getArg(sourceMap,"version");var sources=util.getArg(sourceMap,"sources");var names=util.getArg(sourceMap,"names",[]);var sourceRoot=util.getArg(sourceMap,"sourceRoot",null);var sourcesContent=util.getArg(sourceMap,"sourcesContent",null);var mappings=util.getArg(sourceMap,"mappings");var file=util.getArg(sourceMap,"file",null);if(version!=this._version){throw new Error("Unsupported version: "+version)}sources=sources.map(String).map(util.normalize).map(function(source){return sourceRoot&&util.isAbsolute(sourceRoot)&&util.isAbsolute(source)?util.relative(sourceRoot,source):source});this._names=ArraySet.fromArray(names.map(String),true);this._sources=ArraySet.fromArray(sources,true);this.sourceRoot=sourceRoot;this.sourcesContent=sourcesContent;this._mappings=mappings;this.file=file}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.fromSourceMap=function SourceMapConsumer_fromSourceMap(aSourceMap){var smc=Object.create(BasicSourceMapConsumer.prototype);var names=smc._names=ArraySet.fromArray(aSourceMap._names.toArray(),true);var sources=smc._sources=ArraySet.fromArray(aSourceMap._sources.toArray(),true);smc.sourceRoot=aSourceMap._sourceRoot;smc.sourcesContent=aSourceMap._generateSourcesContent(smc._sources.toArray(),smc.sourceRoot);smc.file=aSourceMap._file;var generatedMappings=aSourceMap._mappings.toArray().slice();var destGeneratedMappings=smc.__generatedMappings=[];var destOriginalMappings=smc.__originalMappings=[];for(var i=0,length=generatedMappings.length;i<length;i++){var srcMapping=generatedMappings[i];var destMapping=new Mapping;destMapping.generatedLine=srcMapping.generatedLine;destMapping.generatedColumn=srcMapping.generatedColumn;if(srcMapping.source){destMapping.source=sources.indexOf(srcMapping.source);destMapping.originalLine=srcMapping.originalLine;destMapping.originalColumn=srcMapping.originalColumn;if(srcMapping.name){destMapping.name=names.indexOf(srcMapping.name)}destOriginalMappings.push(destMapping)}destGeneratedMappings.push(destMapping)}quickSort(smc.__originalMappings,util.compareByOriginalPositions);return smc};BasicSourceMapConsumer.prototype._version=3;Object.defineProperty(BasicSourceMapConsumer.prototype,"sources",{get:function(){return this._sources.toArray().map(function(s){return this.sourceRoot!=null?util.join(this.sourceRoot,s):s},this)}});function Mapping(){this.generatedLine=0;this.generatedColumn=0;this.source=null;this.originalLine=null;this.originalColumn=null;this.name=null}BasicSourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(aStr,aSourceRoot){var generatedLine=1;var previousGeneratedColumn=0;var previousOriginalLine=0;var previousOriginalColumn=0;var previousSource=0;var previousName=0;var length=aStr.length;var index=0;var cachedSegments={};var temp={};var originalMappings=[];var generatedMappings=[];var mapping,str,segment,end,value;while(index<length){if(aStr.charAt(index)===";"){generatedLine++;index++;previousGeneratedColumn=0}else if(aStr.charAt(index)===","){index++}else{mapping=new Mapping;mapping.generatedLine=generatedLine;for(end=index;end<length;end++){if(this._charIsMappingSeparator(aStr,end)){break}}str=aStr.slice(index,end);segment=cachedSegments[str];if(segment){index+=str.length}else{segment=[];while(index<end){base64VLQ.decode(aStr,index,temp);value=temp.value;index=temp.rest;segment.push(value)}if(segment.length===2){throw new Error("Found a source, but no line and column")}if(segment.length===3){throw new Error("Found a source and line, but no column")}cachedSegments[str]=segment}mapping.generatedColumn=previousGeneratedColumn+segment[0];previousGeneratedColumn=mapping.generatedColumn;if(segment.length>1){mapping.source=previousSource+segment[1];previousSource+=segment[1];mapping.originalLine=previousOriginalLine+segment[2];previousOriginalLine=mapping.originalLine;mapping.originalLine+=1;mapping.originalColumn=previousOriginalColumn+segment[3];previousOriginalColumn=mapping.originalColumn;if(segment.length>4){mapping.name=previousName+segment[4];previousName+=segment[4]}}generatedMappings.push(mapping);if(typeof mapping.originalLine==="number"){originalMappings.push(mapping)}}}quickSort(generatedMappings,util.compareByGeneratedPositionsDeflated);this.__generatedMappings=generatedMappings;quickSort(originalMappings,util.compareByOriginalPositions);this.__originalMappings=originalMappings};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(aNeedle,aMappings,aLineName,aColumnName,aComparator,aBias){if(aNeedle[aLineName]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+aNeedle[aLineName])}if(aNeedle[aColumnName]<0){throw new TypeError("Column must be greater than or equal to 0, got "+aNeedle[aColumnName])}return binarySearch.search(aNeedle,aMappings,aComparator,aBias)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var index=0;index<this._generatedMappings.length;++index){var mapping=this._generatedMappings[index];if(index+1<this._generatedMappings.length){var nextMapping=this._generatedMappings[index+1];if(mapping.generatedLine===nextMapping.generatedLine){mapping.lastGeneratedColumn=nextMapping.generatedColumn-1;continue}}mapping.lastGeneratedColumn=Infinity}};BasicSourceMapConsumer.prototype.originalPositionFor=function SourceMapConsumer_originalPositionFor(aArgs){var needle={generatedLine:util.getArg(aArgs,"line"),generatedColumn:util.getArg(aArgs,"column")};var index=this._findMapping(needle,this._generatedMappings,"generatedLine","generatedColumn",util.compareByGeneratedPositionsDeflated,util.getArg(aArgs,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(index>=0){var mapping=this._generatedMappings[index];if(mapping.generatedLine===needle.generatedLine){var source=util.getArg(mapping,"source",null);if(source!==null){source=this._sources.at(source);if(this.sourceRoot!=null){source=util.join(this.sourceRoot,source)}}var name=util.getArg(mapping,"name",null);if(name!==null){name=this._names.at(name)}return{source:source,line:util.getArg(mapping,"originalLine",null),column:util.getArg(mapping,"originalColumn",null),name:name}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(sc){return sc==null})};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(aSource,nullOnMissing){if(!this.sourcesContent){return null}if(this.sourceRoot!=null){aSource=util.relative(this.sourceRoot,aSource)}if(this._sources.has(aSource)){return this.sourcesContent[this._sources.indexOf(aSource)]}var url;if(this.sourceRoot!=null&&(url=util.urlParse(this.sourceRoot))){var fileUriAbsPath=aSource.replace(/^file:\/\//,"");if(url.scheme=="file"&&this._sources.has(fileUriAbsPath)){return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]}if((!url.path||url.path=="/")&&this._sources.has("/"+aSource)){return this.sourcesContent[this._sources.indexOf("/"+aSource)]}}if(nullOnMissing){return null}else{throw new Error('"'+aSource+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(aArgs){var source=util.getArg(aArgs,"source");if(this.sourceRoot!=null){source=util.relative(this.sourceRoot,source)}if(!this._sources.has(source)){return{line:null,column:null,lastColumn:null}}source=this._sources.indexOf(source);var needle={source:source,originalLine:util.getArg(aArgs,"line"),originalColumn:util.getArg(aArgs,"column")};var index=this._findMapping(needle,this._originalMappings,"originalLine","originalColumn",util.compareByOriginalPositions,util.getArg(aArgs,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(index>=0){var mapping=this._originalMappings[index];if(mapping.source===needle.source){return{line:util.getArg(mapping,"generatedLine",null),column:util.getArg(mapping,"generatedColumn",null),lastColumn:util.getArg(mapping,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};exports.BasicSourceMapConsumer=BasicSourceMapConsumer;function IndexedSourceMapConsumer(aSourceMap){var sourceMap=aSourceMap;if(typeof aSourceMap==="string"){sourceMap=JSON.parse(aSourceMap.replace(/^\)\]\}'/,""))}var version=util.getArg(sourceMap,"version");var sections=util.getArg(sourceMap,"sections");if(version!=this._version){throw new Error("Unsupported version: "+version)}this._sources=new ArraySet;this._names=new ArraySet;var lastOffset={line:-1,column:0};this._sections=sections.map(function(s){if(s.url){throw new Error("Support for url field in sections not implemented.")}var offset=util.getArg(s,"offset");var offsetLine=util.getArg(offset,"line");var offsetColumn=util.getArg(offset,"column");if(offsetLine<lastOffset.line||offsetLine===lastOffset.line&&offsetColumn<lastOffset.column){throw new Error("Section offsets must be ordered and non-overlapping.")}lastOffset=offset;return{generatedOffset:{generatedLine:offsetLine+1,generatedColumn:offsetColumn+1},consumer:new SourceMapConsumer(util.getArg(s,"map"))}})}IndexedSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);IndexedSourceMapConsumer.prototype.constructor=SourceMapConsumer;IndexedSourceMapConsumer.prototype._version=3;Object.defineProperty(IndexedSourceMapConsumer.prototype,"sources",{get:function(){var sources=[];for(var i=0;i<this._sections.length;i++){for(var j=0;j<this._sections[i].consumer.sources.length;j++){sources.push(this._sections[i].consumer.sources[j])}}return sources}});IndexedSourceMapConsumer.prototype.originalPositionFor=function IndexedSourceMapConsumer_originalPositionFor(aArgs){var needle={generatedLine:util.getArg(aArgs,"line"),generatedColumn:util.getArg(aArgs,"column")};var sectionIndex=binarySearch.search(needle,this._sections,function(needle,section){var cmp=needle.generatedLine-section.generatedOffset.generatedLine;if(cmp){return cmp}return needle.generatedColumn-section.generatedOffset.generatedColumn});var section=this._sections[sectionIndex];if(!section){return{source:null,line:null,column:null,name:null}}return section.consumer.originalPositionFor({line:needle.generatedLine-(section.generatedOffset.generatedLine-1),column:needle.generatedColumn-(section.generatedOffset.generatedLine===needle.generatedLine?section.generatedOffset.generatedColumn-1:0),bias:aArgs.bias})};IndexedSourceMapConsumer.prototype.hasContentsOfAllSources=function IndexedSourceMapConsumer_hasContentsOfAllSources(){return this._sections.every(function(s){return s.consumer.hasContentsOfAllSources()})};IndexedSourceMapConsumer.prototype.sourceContentFor=function IndexedSourceMapConsumer_sourceContentFor(aSource,nullOnMissing){for(var i=0;i<this._sections.length;i++){var section=this._sections[i];var content=section.consumer.sourceContentFor(aSource,true);if(content){return content}}if(nullOnMissing){return null}else{throw new Error('"'+aSource+'" is not in the SourceMap.')}};IndexedSourceMapConsumer.prototype.generatedPositionFor=function IndexedSourceMapConsumer_generatedPositionFor(aArgs){for(var i=0;i<this._sections.length;i++){var section=this._sections[i];if(section.consumer.sources.indexOf(util.getArg(aArgs,"source"))===-1){continue}var generatedPosition=section.consumer.generatedPositionFor(aArgs);if(generatedPosition){var ret={line:generatedPosition.line+(section.generatedOffset.generatedLine-1),column:generatedPosition.column+(section.generatedOffset.generatedLine===generatedPosition.line?section.generatedOffset.generatedColumn-1:0)};return ret}}return{line:null,column:null}};IndexedSourceMapConsumer.prototype._parseMappings=function IndexedSourceMapConsumer_parseMappings(aStr,aSourceRoot){this.__generatedMappings=[];this.__originalMappings=[];for(var i=0;i<this._sections.length;i++){var section=this._sections[i];var sectionMappings=section.consumer._generatedMappings;for(var j=0;j<sectionMappings.length;j++){var mapping=sectionMappings[j];var source=section.consumer._sources.at(mapping.source);if(section.consumer.sourceRoot!==null){source=util.join(section.consumer.sourceRoot,source)}this._sources.add(source);source=this._sources.indexOf(source);var name=section.consumer._names.at(mapping.name);this._names.add(name);name=this._names.indexOf(name);var adjustedMapping={source:source,generatedLine:mapping.generatedLine+(section.generatedOffset.generatedLine-1),generatedColumn:mapping.generatedColumn+(section.generatedOffset.generatedLine===mapping.generatedLine?section.generatedOffset.generatedColumn-1:0),originalLine:mapping.originalLine,originalColumn:mapping.originalColumn,name:name};this.__generatedMappings.push(adjustedMapping);if(typeof adjustedMapping.originalLine==="number"){this.__originalMappings.push(adjustedMapping)}}}quickSort(this.__generatedMappings,util.compareByGeneratedPositionsDeflated);quickSort(this.__originalMappings,util.compareByOriginalPositions)};exports.IndexedSourceMapConsumer=IndexedSourceMapConsumer},{"./array-set":118,"./base64-vlq":119,"./binary-search":121,"./quick-sort":123,"./util":127}],125:[function(require,module,exports){var base64VLQ=require("./base64-vlq");var util=require("./util");var ArraySet=require("./array-set").ArraySet;var MappingList=require("./mapping-list").MappingList;function SourceMapGenerator(aArgs){if(!aArgs){aArgs={}}this._file=util.getArg(aArgs,"file",null);this._sourceRoot=util.getArg(aArgs,"sourceRoot",null);this._skipValidation=util.getArg(aArgs,"skipValidation",false);this._sources=new ArraySet;this._names=new ArraySet;this._mappings=new MappingList;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(aSourceMapConsumer){var sourceRoot=aSourceMapConsumer.sourceRoot;var generator=new SourceMapGenerator({file:aSourceMapConsumer.file,sourceRoot:sourceRoot});aSourceMapConsumer.eachMapping(function(mapping){var newMapping={generated:{line:mapping.generatedLine,column:mapping.generatedColumn}};if(mapping.source!=null){newMapping.source=mapping.source;if(sourceRoot!=null){newMapping.source=util.relative(sourceRoot,newMapping.source)}newMapping.original={line:mapping.originalLine,column:mapping.originalColumn};if(mapping.name!=null){newMapping.name=mapping.name}}generator.addMapping(newMapping)});aSourceMapConsumer.sources.forEach(function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){generator.setSourceContent(sourceFile,content)}});return generator};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(aArgs){var generated=util.getArg(aArgs,"generated");var original=util.getArg(aArgs,"original",null);var source=util.getArg(aArgs,"source",null);var name=util.getArg(aArgs,"name",null);if(!this._skipValidation){this._validateMapping(generated,original,source,name)}if(source!=null){source=String(source);if(!this._sources.has(source)){this._sources.add(source)}}if(name!=null){name=String(name);if(!this._names.has(name)){this._names.add(name)}}this._mappings.add({generatedLine:generated.line,generatedColumn:generated.column,originalLine:original!=null&&original.line,originalColumn:original!=null&&original.column,source:source,name:name})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(aSourceFile,aSourceContent){var source=aSourceFile;if(this._sourceRoot!=null){source=util.relative(this._sourceRoot,source)}if(aSourceContent!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[util.toSetString(source)]=aSourceContent}else if(this._sourcesContents){delete this._sourcesContents[util.toSetString(source)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(aSourceMapConsumer,aSourceFile,aSourceMapPath){var sourceFile=aSourceFile;if(aSourceFile==null){if(aSourceMapConsumer.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}sourceFile=aSourceMapConsumer.file}var sourceRoot=this._sourceRoot;if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}var newSources=new ArraySet;var newNames=new ArraySet;this._mappings.unsortedForEach(function(mapping){if(mapping.source===sourceFile&&mapping.originalLine!=null){var original=aSourceMapConsumer.originalPositionFor({line:mapping.originalLine,column:mapping.originalColumn});if(original.source!=null){mapping.source=original.source;if(aSourceMapPath!=null){mapping.source=util.join(aSourceMapPath,mapping.source)}if(sourceRoot!=null){mapping.source=util.relative(sourceRoot,mapping.source)}mapping.originalLine=original.line;mapping.originalColumn=original.column;if(original.name!=null){mapping.name=original.name}}}var source=mapping.source;if(source!=null&&!newSources.has(source)){newSources.add(source)}var name=mapping.name;if(name!=null&&!newNames.has(name)){newNames.add(name)}},this);this._sources=newSources;this._names=newNames;aSourceMapConsumer.sources.forEach(function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){if(aSourceMapPath!=null){sourceFile=util.join(aSourceMapPath,sourceFile)}if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}this.setSourceContent(sourceFile,content)}},this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(aGenerated,aOriginal,aSource,aName){if(aOriginal&&typeof aOriginal.line!=="number"&&typeof aOriginal.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aGenerated.line>0&&aGenerated.column>=0&&!aOriginal&&!aSource&&!aName){return}else if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aOriginal&&"line"in aOriginal&&"column"in aOriginal&&aGenerated.line>0&&aGenerated.column>=0&&aOriginal.line>0&&aOriginal.column>=0&&aSource){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:aGenerated,source:aSource,original:aOriginal,name:aName}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var previousGeneratedColumn=0;var previousGeneratedLine=1;var previousOriginalColumn=0;var previousOriginalLine=0;var previousName=0;var previousSource=0;var result="";var next;var mapping;var nameIdx;var sourceIdx;var mappings=this._mappings.toArray();for(var i=0,len=mappings.length;i<len;i++){mapping=mappings[i];next="";if(mapping.generatedLine!==previousGeneratedLine){previousGeneratedColumn=0;while(mapping.generatedLine!==previousGeneratedLine){next+=";";previousGeneratedLine++}}else{if(i>0){if(!util.compareByGeneratedPositionsInflated(mapping,mappings[i-1])){continue}next+=","}}next+=base64VLQ.encode(mapping.generatedColumn-previousGeneratedColumn);previousGeneratedColumn=mapping.generatedColumn;if(mapping.source!=null){sourceIdx=this._sources.indexOf(mapping.source);next+=base64VLQ.encode(sourceIdx-previousSource);previousSource=sourceIdx;next+=base64VLQ.encode(mapping.originalLine-1-previousOriginalLine);previousOriginalLine=mapping.originalLine-1;next+=base64VLQ.encode(mapping.originalColumn-previousOriginalColumn);previousOriginalColumn=mapping.originalColumn;if(mapping.name!=null){nameIdx=this._names.indexOf(mapping.name);next+=base64VLQ.encode(nameIdx-previousName);previousName=nameIdx}}result+=next}return result};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(aSources,aSourceRoot){return aSources.map(function(source){if(!this._sourcesContents){return null}if(aSourceRoot!=null){source=util.relative(aSourceRoot,source)}var key=util.toSetString(source);return Object.prototype.hasOwnProperty.call(this._sourcesContents,key)?this._sourcesContents[key]:null},this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var map={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){map.file=this._file}if(this._sourceRoot!=null){map.sourceRoot=this._sourceRoot}if(this._sourcesContents){map.sourcesContent=this._generateSourcesContent(map.sources,map.sourceRoot)}return map};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};exports.SourceMapGenerator=SourceMapGenerator},{"./array-set":118,"./base64-vlq":119,"./mapping-list":122,"./util":127}],126:[function(require,module,exports){var SourceMapGenerator=require("./source-map-generator").SourceMapGenerator;var util=require("./util");var REGEX_NEWLINE=/(\r?\n)/;var NEWLINE_CODE=10;var isSourceNode="$$$isSourceNode$$$";function SourceNode(aLine,aColumn,aSource,aChunks,aName){this.children=[];this.sourceContents={};this.line=aLine==null?null:aLine;this.column=aColumn==null?null:aColumn;this.source=aSource==null?null:aSource;this.name=aName==null?null:aName;this[isSourceNode]=true;if(aChunks!=null)this.add(aChunks)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(aGeneratedCode,aSourceMapConsumer,aRelativePath){var node=new SourceNode;var remainingLines=aGeneratedCode.split(REGEX_NEWLINE);var remainingLinesIndex=0;var shiftNextLine=function(){var lineContents=getNextLine();var newLine=getNextLine()||"";return lineContents+newLine;function getNextLine(){return remainingLinesIndex<remainingLines.length?remainingLines[remainingLinesIndex++]:undefined}};var lastGeneratedLine=1,lastGeneratedColumn=0;var lastMapping=null;aSourceMapConsumer.eachMapping(function(mapping){if(lastMapping!==null){if(lastGeneratedLine<mapping.generatedLine){addMappingWithCode(lastMapping,shiftNextLine());lastGeneratedLine++;lastGeneratedColumn=0}else{var nextLine=remainingLines[remainingLinesIndex];var code=nextLine.substr(0,mapping.generatedColumn-lastGeneratedColumn);remainingLines[remainingLinesIndex]=nextLine.substr(mapping.generatedColumn-lastGeneratedColumn);lastGeneratedColumn=mapping.generatedColumn;addMappingWithCode(lastMapping,code);lastMapping=mapping;return}}while(lastGeneratedLine<mapping.generatedLine){node.add(shiftNextLine());lastGeneratedLine++}if(lastGeneratedColumn<mapping.generatedColumn){var nextLine=remainingLines[remainingLinesIndex];node.add(nextLine.substr(0,mapping.generatedColumn));remainingLines[remainingLinesIndex]=nextLine.substr(mapping.generatedColumn);lastGeneratedColumn=mapping.generatedColumn}lastMapping=mapping},this);if(remainingLinesIndex<remainingLines.length){if(lastMapping){addMappingWithCode(lastMapping,shiftNextLine())}node.add(remainingLines.splice(remainingLinesIndex).join(""))}aSourceMapConsumer.sources.forEach(function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){if(aRelativePath!=null){sourceFile=util.join(aRelativePath,sourceFile)}node.setSourceContent(sourceFile,content)}});return node;function addMappingWithCode(mapping,code){if(mapping===null||mapping.source===undefined){node.add(code)}else{var source=aRelativePath?util.join(aRelativePath,mapping.source):mapping.source;node.add(new SourceNode(mapping.originalLine,mapping.originalColumn,source,code,mapping.name))}}};SourceNode.prototype.add=function SourceNode_add(aChunk){if(Array.isArray(aChunk)){aChunk.forEach(function(chunk){this.add(chunk)},this)}else if(aChunk[isSourceNode]||typeof aChunk==="string"){if(aChunk){this.children.push(aChunk)}}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+aChunk)}return this};SourceNode.prototype.prepend=function SourceNode_prepend(aChunk){if(Array.isArray(aChunk)){for(var i=aChunk.length-1;i>=0;i--){this.prepend(aChunk[i])}}else if(aChunk[isSourceNode]||typeof aChunk==="string"){this.children.unshift(aChunk)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+aChunk)}return this};SourceNode.prototype.walk=function SourceNode_walk(aFn){var chunk;for(var i=0,len=this.children.length;i<len;i++){chunk=this.children[i];if(chunk[isSourceNode]){chunk.walk(aFn)}else{if(chunk!==""){aFn(chunk,{source:this.source,line:this.line,column:this.column,name:this.name})}}}};SourceNode.prototype.join=function SourceNode_join(aSep){var newChildren;var i;var len=this.children.length;if(len>0){newChildren=[];for(i=0;i<len-1;i++){newChildren.push(this.children[i]);newChildren.push(aSep)}newChildren.push(this.children[i]);this.children=newChildren}return this};SourceNode.prototype.replaceRight=function SourceNode_replaceRight(aPattern,aReplacement){var lastChild=this.children[this.children.length-1];if(lastChild[isSourceNode]){lastChild.replaceRight(aPattern,aReplacement)}else if(typeof lastChild==="string"){this.children[this.children.length-1]=lastChild.replace(aPattern,aReplacement)}else{this.children.push("".replace(aPattern,aReplacement))}return this};SourceNode.prototype.setSourceContent=function SourceNode_setSourceContent(aSourceFile,aSourceContent){this.sourceContents[util.toSetString(aSourceFile)]=aSourceContent};SourceNode.prototype.walkSourceContents=function SourceNode_walkSourceContents(aFn){for(var i=0,len=this.children.length;i<len;i++){if(this.children[i][isSourceNode]){this.children[i].walkSourceContents(aFn)}}var sources=Object.keys(this.sourceContents);for(var i=0,len=sources.length;i<len;i++){aFn(util.fromSetString(sources[i]),this.sourceContents[sources[i]])}};SourceNode.prototype.toString=function SourceNode_toString(){var str="";this.walk(function(chunk){str+=chunk});return str};SourceNode.prototype.toStringWithSourceMap=function SourceNode_toStringWithSourceMap(aArgs){var generated={code:"",line:1,column:0};var map=new SourceMapGenerator(aArgs);var sourceMappingActive=false;var lastOriginalSource=null;var lastOriginalLine=null;var lastOriginalColumn=null;var lastOriginalName=null;this.walk(function(chunk,original){generated.code+=chunk;if(original.source!==null&&original.line!==null&&original.column!==null){if(lastOriginalSource!==original.source||lastOriginalLine!==original.line||lastOriginalColumn!==original.column||lastOriginalName!==original.name){map.addMapping({source:original.source,original:{line:original.line,column:original.column},generated:{line:generated.line,column:generated.column},name:original.name})}lastOriginalSource=original.source;lastOriginalLine=original.line;lastOriginalColumn=original.column;lastOriginalName=original.name;sourceMappingActive=true}else if(sourceMappingActive){map.addMapping({generated:{line:generated.line,column:generated.column}});lastOriginalSource=null;sourceMappingActive=false}for(var idx=0,length=chunk.length;idx<length;idx++){if(chunk.charCodeAt(idx)===NEWLINE_CODE){generated.line++;generated.column=0;if(idx+1===length){lastOriginalSource=null;sourceMappingActive=false}else if(sourceMappingActive){map.addMapping({source:original.source,original:{line:original.line,column:original.column},generated:{line:generated.line,column:generated.column},name:original.name})}}else{generated.column++}}});this.walkSourceContents(function(sourceFile,sourceContent){map.setSourceContent(sourceFile,sourceContent)});return{code:generated.code,map:map}};exports.SourceNode=SourceNode},{"./source-map-generator":125,"./util":127}],127:[function(require,module,exports){function getArg(aArgs,aName,aDefaultValue){if(aName in aArgs){return aArgs[aName]}else if(arguments.length===3){return aDefaultValue}else{throw new Error('"'+aName+'" is a required argument.')}}exports.getArg=getArg;var urlRegexp=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;var dataUrlRegexp=/^data:.+\,.+$/;function urlParse(aUrl){var match=aUrl.match(urlRegexp);if(!match){return null}return{scheme:match[1],auth:match[2],host:match[3],port:match[4],path:match[5]}}exports.urlParse=urlParse;function urlGenerate(aParsedUrl){var url="";if(aParsedUrl.scheme){url+=aParsedUrl.scheme+":"}url+="//";if(aParsedUrl.auth){url+=aParsedUrl.auth+"@"}if(aParsedUrl.host){url+=aParsedUrl.host}if(aParsedUrl.port){url+=":"+aParsedUrl.port}if(aParsedUrl.path){url+=aParsedUrl.path}return url}exports.urlGenerate=urlGenerate;function normalize(aPath){var path=aPath;var url=urlParse(aPath);if(url){if(!url.path){return aPath}path=url.path}var isAbsolute=exports.isAbsolute(path);var parts=path.split(/\/+/);for(var part,up=0,i=parts.length-1;i>=0;i--){part=parts[i];if(part==="."){parts.splice(i,1)}else if(part===".."){up++}else if(up>0){if(part===""){parts.splice(i+1,up);up=0}else{parts.splice(i,2);up--}}}path=parts.join("/");if(path===""){path=isAbsolute?"/":"."}if(url){url.path=path;return urlGenerate(url)}return path}exports.normalize=normalize;function join(aRoot,aPath){if(aRoot===""){aRoot="."}if(aPath===""){aPath="."}var aPathUrl=urlParse(aPath);var aRootUrl=urlParse(aRoot);if(aRootUrl){aRoot=aRootUrl.path||"/"}if(aPathUrl&&!aPathUrl.scheme){if(aRootUrl){aPathUrl.scheme=aRootUrl.scheme}return urlGenerate(aPathUrl)}if(aPathUrl||aPath.match(dataUrlRegexp)){return aPath}if(aRootUrl&&!aRootUrl.host&&!aRootUrl.path){aRootUrl.host=aPath;return urlGenerate(aRootUrl)}var joined=aPath.charAt(0)==="/"?aPath:normalize(aRoot.replace(/\/+$/,"")+"/"+aPath);if(aRootUrl){aRootUrl.path=joined;return urlGenerate(aRootUrl)}return joined}exports.join=join;exports.isAbsolute=function(aPath){return aPath.charAt(0)==="/"||!!aPath.match(urlRegexp)};function relative(aRoot,aPath){if(aRoot===""){aRoot="."}aRoot=aRoot.replace(/\/$/,"");var level=0;while(aPath.indexOf(aRoot+"/")!==0){var index=aRoot.lastIndexOf("/");if(index<0){return aPath}aRoot=aRoot.slice(0,index);if(aRoot.match(/^([^\/]+:\/)?\/*$/)){return aPath}++level}return Array(level+1).join("../")+aPath.substr(aRoot.length+1)}exports.relative=relative;var supportsNullProto=function(){var obj=Object.create(null);return!("__proto__"in obj)}();function identity(s){return s}function toSetString(aStr){if(isProtoString(aStr)){return"$"+aStr}return aStr}exports.toSetString=supportsNullProto?identity:toSetString;function fromSetString(aStr){if(isProtoString(aStr)){return aStr.slice(1)}return aStr}exports.fromSetString=supportsNullProto?identity:fromSetString;function isProtoString(s){if(!s){return false}var length=s.length;if(length<9){return false}if(s.charCodeAt(length-1)!==95||s.charCodeAt(length-2)!==95||s.charCodeAt(length-3)!==111||s.charCodeAt(length-4)!==116||s.charCodeAt(length-5)!==111||s.charCodeAt(length-6)!==114||s.charCodeAt(length-7)!==112||s.charCodeAt(length-8)!==95||s.charCodeAt(length-9)!==95){return false}for(var i=length-10;i>=0;i--){if(s.charCodeAt(i)!==36){return false}}return true}function compareByOriginalPositions(mappingA,mappingB,onlyCompareOriginal){var cmp=mappingA.source-mappingB.source;if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}return mappingA.name-mappingB.name}exports.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp}cmp=mappingA.source-mappingB.source;if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return mappingA.name-mappingB.name}exports.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(aStr1,aStr2){if(aStr1===aStr2){return 0}if(aStr1>aStr2){return 1}return-1}function compareByGeneratedPositionsInflated(mappingA,mappingB){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated},{}],128:[function(require,module,exports){exports.SourceMapGenerator=require("./lib/source-map-generator").SourceMapGenerator;exports.SourceMapConsumer=require("./lib/source-map-consumer").SourceMapConsumer;exports.SourceNode=require("./lib/source-node").SourceNode},{"./lib/source-map-consumer":124,"./lib/source-map-generator":125,"./lib/source-node":126}],129:[function(require,module,exports){"use strict";module.exports=false},{}],130:[function(require,module,exports){(function(process){"use strict";function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}exports.log=log;exports.formatArgs=formatArgs;exports.save=save;exports.load=load;exports.useColors=useColors;exports.storage=localstorage();exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(args){args[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+args[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff);if(!this.useColors){return}var c="color: "+this.color;args.splice(1,0,c,"color: inherit");var index=0;var lastC=0;args[0].replace(/%[a-zA-Z%]/g,function(match){if(match==="%%"){return}index++;if(match==="%c"){lastC=index}});args.splice(lastC,0,c)}function log(){var _console;return(typeof console==="undefined"?"undefined":_typeof(console))==="object"&&console.log&&(_console=console).log.apply(_console,arguments)}function save(namespaces){try{if(namespaces){exports.storage.setItem("debug",namespaces)}else{exports.storage.removeItem("debug")}}catch(error){}}function load(){var r;try{r=exports.storage.getItem("debug")}catch(error){}if(!r&&typeof process!=="undefined"&&"env"in process){r=process.env.DEBUG}return r}function localstorage(){try{return localStorage}catch(error){}}module.exports=require("./common")(exports);var formatters=module.exports.formatters;formatters.j=function(v){try{return JSON.stringify(v)}catch(error){return"[UnexpectedJSONParseError]: "+error.message}}}).call(this,require("_process"))},{"./common":131,_process:116}],131:[function(require,module,exports){"use strict";function setup(env){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=require("ms");Object.keys(env).forEach(function(key){createDebug[key]=env[key]});createDebug.instances=[];createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(namespace){var hash=0;for(var i=0;i<namespace.length;i++){hash=(hash<<5)-hash+namespace.charCodeAt(i);hash|=0}return createDebug.colors[Math.abs(hash)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(namespace){var prevTime;function debug(){if(!debug.enabled){return}for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var self=debug;var curr=Number(new Date);var ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;args[0]=createDebug.coerce(args[0]);if(typeof args[0]!=="string"){args.unshift("%O")}var index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,function(match,format){if(match==="%%"){return match}index++;var formatter=createDebug.formatters[format];if(typeof formatter==="function"){var val=args[index];match=formatter.call(self,val);args.splice(index,1);index--}return match});createDebug.formatArgs.call(self,args);var logFn=self.log||createDebug.log;logFn.apply(self,args)}debug.namespace=namespace;debug.enabled=createDebug.enabled(namespace);debug.useColors=createDebug.useColors();debug.color=selectColor(namespace);debug.destroy=destroy;debug.extend=extend;if(typeof createDebug.init==="function"){createDebug.init(debug)}createDebug.instances.push(debug);return debug}function destroy(){var index=createDebug.instances.indexOf(this);if(index!==-1){createDebug.instances.splice(index,1);return true}return false}function extend(namespace,delimiter){return createDebug(this.namespace+(typeof delimiter==="undefined"?":":delimiter)+namespace)}function enable(namespaces){createDebug.save(namespaces);createDebug.names=[];createDebug.skips=[];var i;var split=(typeof namespaces==="string"?namespaces:"").split(/[\s,]+/);var len=split.length;for(i=0;i<len;i++){if(!split[i]){continue}namespaces=split[i].replace(/\*/g,".*?");if(namespaces[0]==="-"){createDebug.skips.push(new RegExp("^"+namespaces.substr(1)+"$"))}else{createDebug.names.push(new RegExp("^"+namespaces+"$"))}}for(i=0;i<createDebug.instances.length;i++){var instance=createDebug.instances[i];instance.enabled=createDebug.enabled(instance.namespace)}}function disable(){createDebug.enable("")}function enabled(name){if(name[name.length-1]==="*"){return true}var i;var len;for(i=0,len=createDebug.skips.length;i<len;i++){if(createDebug.skips[i].test(name)){return false}}for(i=0,len=createDebug.names.length;i<len;i++){if(createDebug.names[i].test(name)){return true}}return false}function coerce(val){if(val instanceof Error){return val.stack||val.message}return val}createDebug.enable(createDebug.load());return createDebug}module.exports=setup},{ms:85}],132:[function(require,module,exports){module.exports={_from:"turbo-carto@0.21.1",_id:"turbo-carto@0.21.1",_inBundle:false,_integrity:"sha512-MijaCzgz4cRjKMLaNxhMBq/lw+bb8cs+ZwGsHMAeJ8nTVWN7LY4b5LDBMIyxALmGiRkY8ziglmAoMU+xYnSTMA==",_location:"/turbo-carto",_phantomChildren:{ms:"2.1.1"},_requested:{type:"version",registry:true,raw:"turbo-carto@0.21.1",name:"turbo-carto",escapedName:"turbo-carto",rawSpec:"0.21.1",saveSpec:null,fetchSpec:"0.21.1"},_requiredBy:["#USER","/"],_resolved:"https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.21.1.tgz",_shasum:"d104c16a7d0a46de01ccbda31258f66cf1cb5edc",_spec:"turbo-carto@0.21.1",_where:"/vagrant/repos/torque",author:{name:"CartoDB",email:"wadus@cartodb.com",url:"http://cartodb.com/"},bugs:{url:"https://github.com/CartoDB/turbo-carto/issues"},bundleDependencies:false,contributors:[{name:"Raul Ochoa",email:"rochoa@cartodb.com"},{name:"Daniel García Aubert",email:"dgaubert@carto.com"}],dependencies:{cartocolor:"4.0.0",colorbrewer:"1.0.0",debug:"^3.1.0","es6-promise":"3.1.2",postcss:"5.0.19","postcss-value-parser":"3.3.0"},deprecated:false,description:"CartoCSS preprocessor",devDependencies:{"browser-request":"^0.3.3",browserify:"^12.0.1",istanbul:"^0.4.1",jshint:"^2.9.1-rc2",mocha:"^5.2.0",querystring:"^0.2.0",request:"^2.67.0",semistandard:"^13.0.1","semistandard-format":"^3.0.0",yargs:"^3.31.0"},homepage:"https://github.com/CartoDB/turbo-carto#readme",license:"BSD-3-Clause",main:"src/index.js",name:"turbo-carto",repository:{type:"git",url:"git+ssh://git@github.com/CartoDB/turbo-carto.git"},scripts:{test:"make test-all"},semistandard:{globals:["describe","it"],ignore:["examples/app.js"]},version:"0.21.1"}},{}],133:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var FnExecutor=require("./executor");function FnBuilder(datasource){this.datasource=datasource;this.fnExecutors=[]}module.exports=FnBuilder;FnBuilder.prototype.add=function(decl,fnNode,metadataHolder){this.fnExecutors.push({decl:decl,fnExecutor:createFnExecutor(fnNode,this.datasource,decl,metadataHolder)})};function createFnExecutor(fnNode,datasource,decl,metadataHolder){var fnArgs=[];if(Array.isArray(fnNode.nodes)){fnArgs=fnNode.nodes.reduce(function(args,nestedFnNode){switch(nestedFnNode.type){case"word":if(Number.isFinite(+nestedFnNode.value)){args.push(+nestedFnNode.value)}else{args.push(nestedFnNode.value)}break;case"string":args.push(nestedFnNode.value);break;case"function":args.push(createFnExecutor(nestedFnNode,datasource,decl,metadataHolder));break;default:}return args},[])}return new FnExecutor(datasource,fnNode.value,fnArgs,decl,metadataHolder)}FnBuilder.prototype.exec=function(){var executorsExec=this.fnExecutors.map(function(fnExecutor){return fnExecutor.fnExecutor.exec()});return Promise.all(executorsExec)}},{"./executor":134,"es6-promise":81}],134:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var debug=require("../helper/debug")("fn-executor");var FnFactory=require("./factory");function FnExecutor(datasource,fnName,fnArgs,decl,metadataHolder){this.datasource=datasource;this.fnName=fnName;this.args=fnArgs;this.decl=decl;this.metadataHolder=metadataHolder}module.exports=FnExecutor;FnExecutor.prototype.exec=function(){var self=this;debug("[ENTERING] Fn.prototype.exec %s(%j)",self.fnName,self.args);var backendFn=FnFactory.create(self.fnName,self.datasource,self.decl,self.metadataHolder);return Promise.all(self.getNestedFns()).then(function(nestedFnResults){debug("[QUEUE DONE] %s=%j",self.fnName,nestedFnResults);nestedFnResults.forEach(function(nestedFnResult){self.args[nestedFnResult.index]=nestedFnResult.result});return backendFn.apply(backendFn,self.args)})};FnExecutor.prototype.getNestedFns=function(){var self=this;return self.getNestedFnIndexes().map(function(nestedFnIndex){return self.execFn(nestedFnIndex)})};FnExecutor.prototype.getNestedFnIndexes=function(){return this.args.reduce(function(nestedFns,arg,index){if(arg instanceof FnExecutor){nestedFns.push(index)}return nestedFns},[])};FnExecutor.prototype.execFn=function(nestedFnIndex){return this.args[nestedFnIndex].exec().then(function(result){return{index:nestedFnIndex,result:result}})}},{"../helper/debug":149,"./factory":135,"es6-promise":81}],135:[function(require,module,exports){"use strict";var fns=[require("./fn-buckets"),require("./fn-buckets-category"),require("./fn-buckets-equal"),require("./fn-buckets-headtails"),require("./fn-buckets-jenks"),require("./fn-buckets-quantiles"),require("./fn-cartocolor"),require("./fn-colorbrewer"),require("./fn-ramp"),require("./fn-range")];var fnMap=fns.reduce(function(fnMap,fn){fnMap[fn.fnName]=fn;return fnMap},{});var fnIdentity=require("./fn-identity");var fnAnonymousTuple=require("./fn-anonymous-tuple");var FnFactory={create:function(fnName,datasource,decl,metadataHolder){if(fnName===""){return fnAnonymousTuple()}var fn=fnMap[fnName];if(fn){return fn(datasource,decl,metadataHolder)}return fnIdentity(fnName)}};module.exports=FnFactory},{"./fn-anonymous-tuple":136,"./fn-buckets":142,"./fn-buckets-category":137,"./fn-buckets-equal":138,"./fn-buckets-headtails":139,"./fn-buckets-jenks":140,"./fn-buckets-quantiles":141,"./fn-cartocolor":143,"./fn-colorbrewer":144,"./fn-identity":145,"./fn-ramp":146,"./fn-range":147}],136:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var debug=require("../helper/debug")("fn-anonymous-tuple");var ValuesResult=require("../model/values-result");module.exports=function(){return function fn$anonymousTuple(){debug("fn$anonymousTuple(%j)",arguments);var args=arguments;return new Promise(function(resolve){var tupleValues=Object.keys(args).map(function(k){return args[k]});resolve(new ValuesResult(tupleValues))})}};module.exports.fnName="anonymousTuple"},{"../helper/debug":149,"../model/values-result":159,"es6-promise":81}],137:[function(require,module,exports){"use strict";var createBucketsFn=require("./fn-buckets").createBucketsFn;var FN_NAME="category";module.exports=function(datasource){return createBucketsFn(datasource,FN_NAME,"==")};module.exports.fnName=FN_NAME},{"./fn-buckets":142}],138:[function(require,module,exports){"use strict";var createBucketsFn=require("./fn-buckets").createBucketsFn;var FN_NAME="equal";module.exports=function(datasource){return createBucketsFn(datasource,FN_NAME,">")};module.exports.fnName=FN_NAME},{"./fn-buckets":142}],139:[function(require,module,exports){"use strict";var createBucketsFn=require("./fn-buckets").createBucketsFn;var FN_NAME="headtails";module.exports=function(datasource){return createBucketsFn(datasource,FN_NAME,"<")};module.exports.fnName=FN_NAME},{"./fn-buckets":142}],140:[function(require,module,exports){"use strict";var createBucketsFn=require("./fn-buckets").createBucketsFn;var FN_NAME="jenks";module.exports=function(datasource){return createBucketsFn(datasource,FN_NAME,">")};module.exports.fnName=FN_NAME},{"./fn-buckets":142}],141:[function(require,module,exports){"use strict";var createBucketsFn=require("./fn-buckets").createBucketsFn;var FN_NAME="quantiles";module.exports=function(datasource){return createBucketsFn(datasource,FN_NAME,">")};module.exports.fnName=FN_NAME},{"./fn-buckets":142}],142:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var debug=require("../helper/debug")("fn-buckets");var columnName=require("../helper/column-name");var TurboCartoError=require("../helper/turbo-carto-error");var FiltersResult=require("../model/filters-result");var LazyFiltersResult=require("../model/lazy-filters-result");function fnBuckets(datasource){return function fn$buckets(column,quantificationMethod,numBuckets){debug("fn$buckets(%j)",arguments);debug('Using "%s" datasource to calculate buckets',datasource.getName());return new Promise(function(resolve,reject){if(!quantificationMethod){return reject(new TurboCartoError("Missing quantification method in buckets function"))}numBuckets=Number.isFinite(+numBuckets)?+numBuckets:5;datasource.getRamp(columnName(column),numBuckets,quantificationMethod,function(err,filters){if(err){return reject(new TurboCartoError("unable to compute ramp,",err))}var strategy="max";var stats={};var meta={};if(!Array.isArray(filters)){strategy=filters.strategy||"max";stats=filters.stats;meta=filters.meta||{};filters=filters.ramp}resolve(new FiltersResult(filters,strategy,stats,meta))})})}}module.exports=fnBuckets;module.exports.fnName="buckets";module.exports.createBucketsFn=function(datasource,alias,defaultStrategy){return function fn$bucketsFn(numBuckets){debug("fn$%s(%j)",alias,arguments);debug('Using "%s" datasource to calculate %s',datasource.getName(),alias);return new Promise(function(resolve){return resolve(new LazyFiltersResult(function(column,strategy){return fnBuckets(datasource)(column,alias,numBuckets).then(function(filters){filters.strategy=strategy||defaultStrategy;return new Promise(function(resolve){return resolve(filters)})})}))})}}},{"../helper/column-name":148,"../helper/debug":149,"../helper/turbo-carto-error":152,"../model/filters-result":154,"../model/lazy-filters-result":156,"es6-promise":81}],143:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var cartocolor=require("cartocolor");var ValuesResult=require("../model/values-result");var minMaxKeys=require("../helper/min-max-keys");var debug=require("../helper/debug")("fn-cartocolor");module.exports=function(){return function fn$cartocolor(scheme,numberDataClasses){debug("fn$cartocolor(%j)",arguments);return new Promise(function(resolve,reject){if(!cartocolor.hasOwnProperty(scheme)){return reject(new Error('Invalid cartocolor scheme: "'+scheme+'"'))}var result=cartocolor[scheme];var minMax=minMaxKeys(result);numberDataClasses=Math.min(minMax.max,Math.max(minMax.min,numberDataClasses||5));resolve(new ValuesResult(result,numberDataClasses,null,minMax.max))})}};module.exports.fnName="cartocolor"},{"../helper/debug":149,"../helper/min-max-keys":151,"../model/values-result":159,cartocolor:77,"es6-promise":81}],144:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var colorbrewer=require("colorbrewer");var ValuesResult=require("../model/values-result");var minMaxKeys=require("../helper/min-max-keys");var debug=require("../helper/debug")("fn-colorbrewer");module.exports=function(){return function fn$colorbrewer(scheme,numberDataClasses){debug("fn$colorbrewer(%j)",arguments);return new Promise(function(resolve,reject){if(!colorbrewer.hasOwnProperty(scheme)){return reject(new Error('Invalid colorbrewer scheme: "'+scheme+'"'))}var result=colorbrewer[scheme];var minMax=minMaxKeys(result);numberDataClasses=Math.min(minMax.max,Math.max(minMax.min,numberDataClasses||5));resolve(new ValuesResult(result,numberDataClasses,null,minMax.max))})}};module.exports.fnName="colorbrewer"},{"../helper/debug":149,"../helper/min-max-keys":151,"../model/values-result":159,colorbrewer:79,"es6-promise":81}],145:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var debug=require("../helper/debug")("fn-identity");module.exports=function(fnName){return function fn$identity(){debug("fn$identity(%j)",arguments);var args=new Array(arguments.length);for(var i=0;i<args.length;++i){if(typeof arguments[i]==="string"){args[i]="'"+arguments[i]+"'"}else{args[i]=arguments[i]}}return Promise.resolve(fnName+"("+args.join(",")+")")}};module.exports.fnName="pass"},{"../helper/debug":149,"es6-promise":81}],146:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var debug=require("../helper/debug")("fn-ramp");var columnName=require("../helper/column-name");var TurboCartoError=require("../helper/turbo-carto-error");var isResult=require("../model/is-result");var linearBuckets=require("../helper/linear-buckets");var ValuesResult=require("../model/values-result");var FiltersResult=require("../model/filters-result");var LazyFiltersResult=require("../model/lazy-filters-result");var RampResult=require("../model/ramp/ramp-result");function createSplitStrategy(mapping){return function splitStrategy(column,rampResult,stats,meta,decl,metadataHolder){var allFilters=rampResult.filter(evenIndex);var values=rampResult.filter(reverse(evenIndex));var filters=allFilters.slice(1);if(mapping==="="){values=values.slice(1).concat([rampResult.filter(reverse(evenIndex))[0]])}filters=filters.filter(reverse(isNull));var ramp=new RampResult(new ValuesResult(values),new FiltersResult(filters,null,stats,meta),mapping);return ramp.process(column,decl,metadataHolder)}}function evenIndex(value,index){return index%2===0}function isNull(val){return val===null}function reverse(fn,ctx){return function(){return!fn.apply(ctx,arguments)}}var strategy={max:function maxStrategy(column,rampResult,stats,meta,decl,metadataHolder){var values=rampResult.filter(reverse(evenIndex));var filters=rampResult.filter(evenIndex).filter(reverse(isNull));var ramp=new RampResult(new ValuesResult(values),new FiltersResult(filters,null,stats,meta),">");return ramp.process(column,decl,metadataHolder)},split:createSplitStrategy(">"),exact:createSplitStrategy("="),"=":createSplitStrategy("=")};module.exports=function(datasource,decl,metadataHolder){return function fn$ramp(column,args){debug("fn$ramp(%j)",arguments);debug('Using "%s" datasource to calculate ramp',datasource.getName());args=Array.prototype.slice.call(arguments,1);return ramp(datasource,column,args).then(function(rampResult){if(rampResult.constructor===RampResult){return rampResult.process(columnName(column),decl,metadataHolder)}var strategyFn=strategy.hasOwnProperty(rampResult.strategy)?strategy[rampResult.strategy]:strategy.max;return strategyFn(columnName(column),rampResult.ramp,rampResult.stats,rampResult.meta,decl,metadataHolder)}).catch(function(err){var context={};if(decl.parent){context.selector=decl.parent.selector}if(decl.source){context.source={start:decl.source.start,end:decl.source.end}}throw new TurboCartoError('Failed to process "'+decl.prop+'" property:',err,context)})}};function ramp(datasource,column,args){if(args.length===0){return Promise.reject(new TurboCartoError("invalid number of arguments"))}if(Number.isFinite(args[0])){return compatibilityNumericRamp(datasource,column,args)}if(!isResult(args[1])){return compatibilityValuesRamp(datasource,column,args)}var values=args[0];var filters=args[1];var mapping=args[2];var strategy=strategyFromMapping(mapping);filters=filters.is(ValuesResult)?new FiltersResult(filters.get(),strategy):filters;if(filters.is(LazyFiltersResult)){return filters.get(column,strategy).then(createRampFn(values))}else{return Promise.resolve(filters).then(createRampFn(values))}}var oldMappings2Strategies={quantiles:"max",equal:"max",jenks:"max",headtails:"split",category:"exact"};function strategyFromMapping(mapping){if(oldMappings2Strategies.hasOwnProperty(mapping)){return oldMappings2Strategies[mapping]}return mapping}function compatibilityValuesRamp(datasource,column,args){var values=args[0];var method=(args[1]||"quantiles").toLowerCase();var numBuckets=values.getLength();return getRamp(datasource,column,numBuckets,method).then(compatibilityCreateRampFn(values))}function compatibilityNumericRamp(datasource,column,args){if(args.length<2){return Promise.reject(new TurboCartoError("invalid number of arguments"))}var min=+args[0];var max=+args[1];var numBuckets;var filters=null;var method;if(Number.isFinite(args[2])){numBuckets=args[2];if(isResult(args[3])){filters=args[3];method=null;if(filters.getLength()!==numBuckets){return Promise.reject(new TurboCartoError("invalid ramp length, got "+filters.getLength()+" values, expected "+numBuckets))}}else{filters=null;method=args[3]}}else if(isResult(args[2])){filters=args[2];numBuckets=filters.getLength();method=null}else{filters=null;numBuckets=5;method=args[2]}var values=new ValuesResult([min,max],numBuckets,linearBuckets,Number.POSITIVE_INFINITY);if(filters===null){method=(method||"quantiles").toLowerCase();return getRamp(datasource,column,numBuckets,method).then(compatibilityCreateRampFn(values))}filters=filters.is(FiltersResult)?filters:new FiltersResult(filters.get(),"max");return Promise.resolve(filters).then(compatibilityCreateRampFn(values))}function getRamp(datasource,column,buckets,method){return new Promise(function(resolve,reject){datasource.getRamp(columnName(column),buckets,method,function(err,filters){if(err){return reject(new TurboCartoError("unable to compute ramp,",err))}var strategy="max";var stats={};var meta={};if(!Array.isArray(filters)){strategy=filters.strategy||"max";stats=filters.stats;meta=filters.meta||{};filters=filters.ramp}resolve(new FiltersResult(filters,strategy,stats,meta))})})}function compatibilityCreateRampFn(valuesResult){return function prepareRamp(filtersResult){var buckets=Math.min(valuesResult.getLength(),filtersResult.getLength());var i;var rampResult=[];var filters=filtersResult.get();var values=valuesResult.get();if(buckets>0){for(i=0;i<buckets;i++){rampResult.push(filters[i]);rampResult.push(values[i])}}else{rampResult.push(null,values[0])}return{ramp:rampResult,strategy:filtersResult.getStrategy(),stats:filtersResult.stats,meta:filtersResult.meta}}}function createRampFn(valuesResult){return function prepareRamp(filtersResult){if(RampResult.supports(filtersResult.getStrategy())){return new RampResult(valuesResult,filtersResult,filtersResult.getStrategy())}var buckets=Math.min(valuesResult.getMaxSize(),filtersResult.getMaxSize());var i;var rampResult=[];var filters=filtersResult.get();var values=valuesResult.get(buckets);if(buckets>0){for(i=0;i<buckets;i++){rampResult.push(filters[i]);rampResult.push(values[i])}}else{rampResult.push(null,values[0])}return{ramp:rampResult,strategy:filtersResult.getStrategy(),stats:filtersResult.stats,meta:filtersResult.meta}}}module.exports.fnName="ramp"},{"../helper/column-name":148,"../helper/debug":149,"../helper/linear-buckets":150,"../helper/turbo-carto-error":152,"../model/filters-result":154,"../model/is-result":155,"../model/lazy-filters-result":156,"../model/ramp/ramp-result":158,"../model/values-result":159,"es6-promise":81}],147:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var ValuesResult=require("../model/values-result");var debug=require("../helper/debug")("fn-range");var linearBuckets=require("../helper/linear-buckets");module.exports=function(){return function fn$range(min,max,numBuckets){debug("fn$range(%j)",arguments);return new Promise(function(resolve){var result=[min,max];numBuckets=Number.isFinite(numBuckets)?numBuckets:5;resolve(new ValuesResult(result,numBuckets,linearBuckets,Number.POSITIVE_INFINITY))})}};module.exports.fnName="range"},{"../helper/debug":149,"../helper/linear-buckets":150,"../model/values-result":159,"es6-promise":81}],148:[function(require,module,exports){"use strict";function columnName(column){return column.replace("[","").replace("]","")}module.exports=columnName},{}],149:[function(require,module,exports){"use strict";var debug=require("debug");module.exports=function turboCartoDebug(ns){return debug(["turbo-carto",ns].join(":"))}},{debug:130}],150:[function(require,module,exports){"use strict";module.exports=function(min,max,numBuckets){if(Array.isArray(min)){numBuckets=max;max=min[1];min=min[0]}var buckets=[];var range=max-min;var width=range/(numBuckets-1);if(width===Number.POSITIVE_INFINITY||width===Number.NEGATIVE_INFINITY){width=0}for(var i=0;i<numBuckets;i++){buckets.push(min+i*width)}return buckets}},{}],151:[function(require,module,exports){"use strict";function minMaxNumericKey(obj){return Object.keys(obj).reduce(function(minMax,k){if(Number.isFinite(+k)){if(minMax.min===null){minMax.min=+k}if(minMax.max===null){minMax.max=+k}minMax.max=Math.max(minMax.max,+k);minMax.min=Math.min(minMax.min,+k)}return minMax},{min:null,max:null})}module.exports=minMaxNumericKey},{}],152:[function(require,module,exports){"use strict";function TurboCartoError(message,originalErr,context){Error.captureStackTrace(this,this.constructor);this.name=this.constructor.name;if(originalErr){message+=" "+originalErr.message}this.message=message;this.originalErr=originalErr;this.context=context}require("util").inherits(TurboCartoError,Error);module.exports=TurboCartoError},{util:165}],153:[function(require,module,exports){"use strict";var TurboCarto=require("./turbo-carto");function turbocarto(cartocss,datasource,callback){new TurboCarto(cartocss,datasource).getCartocss(callback)}module.exports=turbocarto;module.exports.TurboCarto=TurboCarto;module.exports.version=require("../package.json").version},{"../package.json":132,"./turbo-carto":161}],154:[function(require,module,exports){"use strict";var util=require("util");var ValuesResult=require("./values-result");function FiltersResult(result,strategy,stats,meta){ValuesResult.call(this,result,result.length);this.strategy=strategy;this.stats=stats;this.meta=meta||{}}util.inherits(FiltersResult,ValuesResult);module.exports=FiltersResult;FiltersResult.prototype.getStrategy=function(){if(this.result.some(nonNumeric)){return"="}return this.strategy};function nonNumeric(item){return!Number.isFinite(item)}},{"./values-result":159,util:165}],155:[function(require,module,exports){"use strict";var ValuesResult=require("./values-result");var FiltersResult=require("./filters-result");var LazyFiltersResult=require("./lazy-filters-result");function isResult(obj){return typeof obj==="object"&&obj!==null&&(obj.constructor===ValuesResult||obj.constructor===FiltersResult||obj.constructor===LazyFiltersResult)}module.exports=isResult},{"./filters-result":154,"./lazy-filters-result":156,"./values-result":159}],156:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var util=require("util");var FiltersResult=require("./filters-result");function LazyFiltersResult(filterGenerator){this.filterGenerator=filterGenerator}util.inherits(LazyFiltersResult,FiltersResult);module.exports=LazyFiltersResult;LazyFiltersResult.prototype.get=function(column,strategy){return this.filterGenerator(column,strategy)}},{"./filters-result":154,"es6-promise":81,util:165}],157:[function(require,module,exports){"use strict";function MetadataHolder(){this.rules=[]}module.exports=MetadataHolder;MetadataHolder.prototype.add=function(rule){this.rules.push(rule)}},{}],158:[function(require,module,exports){"use strict";var TurboCartoError=require("../../helper/turbo-carto-error");var postcss=require("postcss");var debug=require("../../helper/debug")("ramp-result");function RampResult(values,filters,mapping){this.values=values;this.filters=filters;this.mapping=mapping||">";this.mapping=this.mapping==="=="?"=":this.mapping}module.exports=RampResult;var SUPPORTED_STRATEGIES={"=":"equality","==":"equality",">":"greater_than_or_equal",">=":"greater_than_or_equal","<":"less_than_or_equal","<=":"less_than_or_equal"};var FILTER_TYPE={CATEGORY:"category",DEFAULT:"default",RANGE:"range"};RampResult.prototype.process=function(column,decl,metadataHolder){var strategy=SUPPORTED_STRATEGIES[this.mapping];if(strategy===SUPPORTED_STRATEGIES["<"]){return this.processLessThanOrEqual(column,decl,metadataHolder)}else if(strategy===SUPPORTED_STRATEGIES["=="]){return this.processEquality(column,decl,metadataHolder)}else{return this.processGreaterThanOrEqual(column,decl,metadataHolder)}};RampResult.supports=function(strategy){return SUPPORTED_STRATEGIES.hasOwnProperty(strategy)||!strategy};RampResult.prototype.processEquality=function(column,decl,metadataHolder){if(this.filters.getLength()>this.values.getMaxSize()){throw new TurboCartoError("`"+this.mapping+"` requires more or same values than filters to work.")}var values=this.values.get(this.filters.getLength()+1);var filters=this.filters.get();var initialDecl=decl;var defaultValue=null;if(values.length!==filters.length){defaultValue=values[values.length-1];initialDecl=postcss.decl({prop:decl.prop,value:defaultValue});decl.replaceWith(initialDecl)}var range={start:0,end:filters.length};var indexOffset=0;var result=this.processGeneric(initialDecl,column,defaultValue,values,filters,range,indexOffset);if(values.length===filters.length){decl.remove()}if(metadataHolder){var metadataRule={selector:selector(initialDecl.parent),prop:initialDecl.prop,column:column,mapping:this.mapping,buckets:[],stats:{}};metadataRule.buckets=filters.map(function(filterRaw,index){return{filter:{name:filterRaw,type:FILTER_TYPE.CATEGORY},value:values[index]}});if(defaultValue!==null){metadataRule.buckets.push({filter:{type:FILTER_TYPE.DEFAULT},value:defaultValue})}metadataHolder.add(metadataRule)}return result};RampResult.prototype.processGreaterThanOrEqual=function(column,decl,metadataHolder){var buckets=Math.min(this.values.getMaxSize(),this.filters.getMaxSize());var values=this.values.get(buckets<=1?buckets+1:buckets);var filters=this.filters.get(buckets);var defaultValue=values[0];var initialDecl=postcss.decl({prop:decl.prop,value:defaultValue});decl.replaceWith(initialDecl);var range={start:0,end:Math.max(filters.length-1,0)};var indexOffset=1;if(metadataHolder){var stats=defaultStats(this.filters.stats);var metadataRule={selector:selector(initialDecl.parent),prop:initialDecl.prop,column:column,mapping:this.mapping,buckets:[],stats:{filter_avg:stats.avg}};var previousFilter=null;if(Number.isFinite(stats.min)){previousFilter=stats.min}var lastIndex=null;metadataRule.buckets=filters.slice(range.start,range.end).map(function(filterRaw,index){var bucket={filter:{type:FILTER_TYPE.RANGE,start:previousFilter,end:filterRaw},value:values[index]};previousFilter=filterRaw;lastIndex=index;return bucket});var lastElementIndex=lastIndex===null?0:lastIndex+1;metadataRule.buckets.push({filter:{type:FILTER_TYPE.RANGE,start:previousFilter,end:stats.max},value:values[lastElementIndex]});debug(metadataRule.buckets);metadataHolder.add(metadataRule)}return this.processGeneric(initialDecl,column,defaultValue,values,filters,range,indexOffset)};RampResult.prototype.processLessThanOrEqual=function(column,decl,metadataHolder){var values=this.values.get(this.filters.getLength());var filters=this.filters.get();var defaultValue=values[values.length-1];var initialDecl=postcss.decl({prop:decl.prop,value:defaultValue});decl.replaceWith(initialDecl);var range={start:0,end:filters.length-1};var indexOffset=1;if(metadataHolder){var stats=defaultStats(this.filters.stats);var metadataRule={selector:selector(initialDecl.parent),prop:initialDecl.prop,column:column,mapping:this.mapping,buckets:[],stats:{filter_avg:stats.avg}};var previousFilter=null;if(Number.isFinite(stats.min)){previousFilter=stats.min}var lastIndex=null;metadataRule.buckets=filters.slice(range.start,range.end).map(function(filterRaw,index){var bucket={filter:{type:FILTER_TYPE.RANGE,start:previousFilter,end:filterRaw},value:values[index]};previousFilter=filterRaw;lastIndex=index;return bucket});var lastElementIndex=lastIndex===null?0:lastIndex+1;metadataRule.buckets.push({filter:{type:FILTER_TYPE.RANGE,start:previousFilter,end:stats.max},value:values[lastElementIndex]});metadataHolder.add(metadataRule)}var reversedValues=values.concat().reverse();var reversedFilters=filters.concat().reverse();return this.processGeneric(initialDecl,column,defaultValue,reversedValues,reversedFilters,range,indexOffset)};RampResult.prototype.processGeneric=function(decl,column,defaultValue,values,filters,range,indexOffset){var previousNode=decl;filters.slice(range.start,range.end).forEach(function(filterRaw,index){var filter=processFilterValue(filterRaw);var columnName=this.filters.meta.columnName||column;var rule=postcss.rule({selector:"[ "+columnName+" "+this.mapping+" "+filter+" ]"});rule.append(postcss.decl({prop:decl.prop,value:values[index+indexOffset]}));rule.moveAfter(previousNode);previousNode=rule}.bind(this));return{values:values,filters:filters,mapping:this.mapping}};function processFilterValue(rawValue){if(rawValue==="false"){return false}else if(rawValue==="true"){return true}else{return Number.isFinite(rawValue)?rawValue:'"'+rawValue+'"'}}function defaultStats(stats){stats=stats||{};return{min:stats.min_val,max:stats.max_val,avg:stats.avg_val}}function selector(node,repr){repr=repr||"";if(node&&node.type!=="root"){repr=selector(node.parent,node.selector+repr)}return repr}},{"../../helper/debug":149,"../../helper/turbo-carto-error":152,postcss:104}],159:[function(require,module,exports){"use strict";function ValuesResult(result,defaultSize,getter,maxSize){this.result=result;this.defaultSize=defaultSize||result.length;this.getter=getter;this.maxSize=maxSize||result.length}module.exports=ValuesResult;ValuesResult.prototype.get=function(size){size=size||this.defaultSize;if(this.getter){return this.getter(this.result,size)}if(Array.isArray(this.result)){if(size>0){return this.result.slice(0,size)}return this.result}return this.result.hasOwnProperty(size)?this.result[size]:this.result[this.defaultSize]};ValuesResult.prototype.getLength=function(size){return this.get(size).length};ValuesResult.prototype.getMaxSize=function(){return this.maxSize};ValuesResult.prototype.toString=function(){return JSON.stringify({result:this.result,defaultSize:this.defaultSize,getter:this.getter&&this.getter.toString()})};ValuesResult.prototype.is=function(constructor){return this.constructor===constructor}},{}],160:[function(require,module,exports){"use strict";require("es6-promise").polyfill();var valueParser=require("postcss-value-parser");var postcss=require("postcss");var FnBuilder=require("./fn/builder");function PostcssTurboCarto(datasource){this.datasource=datasource}module.exports=PostcssTurboCarto;PostcssTurboCarto.prototype.getPlugin=function(metadataHolder){var self=this;return postcss.plugin("turbo-carto",function(){return function(css){var fnBuilder=new FnBuilder(self.datasource);css.walkDecls(function(decl){var parsedValue=valueParser(decl.value);parsedValue.walk(function(node){if(node.type==="function"){fnBuilder.add(decl,node,metadataHolder);return false}},false)});return fnBuilder.exec()}})}},{"./fn/builder":133,"es6-promise":81,postcss:104,"postcss-value-parser":87}],161:[function(require,module,exports){"use strict";var postcss=require("postcss");var PostcssTurboCarto=require("./postcss-turbo-carto");var MetadataHolder=require("./model/metadata-holder");function TurboCarto(cartocss,datasource){this.cartocss=cartocss;this.datasource=datasource;this.metadataHolder=new MetadataHolder}TurboCarto.prototype.getCartocss=function(callback){var self=this;var postCssTurboCarto=new PostcssTurboCarto(this.datasource);postcss([postCssTurboCarto.getPlugin(this.metadataHolder)]).process(this.cartocss).then(function(result){callback(null,result.css,self.metadataHolder)}).catch(callback)};TurboCarto.prototype.getMetadata=function(callback){return callback(null,this.metadataHolder)};module.exports=TurboCarto},{"./model/metadata-holder":157,"./postcss-turbo-carto":160,postcss:104}],162:[function(require,module,exports){var ss=require("simple-statistics");module.exports=function(fc,field,num){var vals=[];var breaks=[];fc.features.forEach(function(feature){if(feature.properties[field]!==undefined){vals.push(feature.properties[field])}});breaks=ss.jenks(vals,num);return breaks}},{"simple-statistics":117}],163:[function(require,module,exports){(function(){var root=this;var previousUnderscore=root._;var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind,nativeCreate=Object.create;var Ctor=function(){};var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.8.3";var optimizeCb=function(func,context,argCount){if(context===void 0)return func;switch(argCount==null?3:argCount){case 1:return function(value){return func.call(context,value)};case 2:return function(value,other){return func.call(context,value,other)};case 3:return function(value,index,collection){return func.call(context,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(context,accumulator,value,index,collection)}}return function(){return func.apply(context,arguments)}};var cb=function(value,context,argCount){if(value==null)return _.identity;if(_.isFunction(value))return optimizeCb(value,context,argCount);if(_.isObject(value))return _.matcher(value);return _.property(value)};_.iteratee=function(value,context){return cb(value,context,Infinity)};var createAssigner=function(keysFunc,undefinedOnly){return function(obj){var length=arguments.length;if(length<2||obj==null)return obj;for(var index=1;index<length;index++){var source=arguments[index],keys=keysFunc(source),l=keys.length;for(var i=0;i<l;i++){var key=keys[i];if(!undefinedOnly||obj[key]===void 0)obj[key]=source[key]}}return obj}};var baseCreate=function(prototype){if(!_.isObject(prototype))return{};if(nativeCreate)return nativeCreate(prototype);Ctor.prototype=prototype;var result=new Ctor;Ctor.prototype=null;return result};var property=function(key){return function(obj){return obj==null?void 0:obj[key]}};var MAX_ARRAY_INDEX=Math.pow(2,53)-1;var getLength=property("length");var isArrayLike=function(collection){var length=getLength(collection);return typeof length=="number"&&length>=0&&length<=MAX_ARRAY_INDEX};_.each=_.forEach=function(obj,iteratee,context){iteratee=optimizeCb(iteratee,context);var i,length;if(isArrayLike(obj)){for(i=0,length=obj.length;i<length;i++){iteratee(obj[i],i,obj)}}else{var keys=_.keys(obj);for(i=0,length=keys.length;i<length;i++){iteratee(obj[keys[i]],keys[i],obj)}}return obj};_.map=_.collect=function(obj,iteratee,context){iteratee=cb(iteratee,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length,results=Array(length);for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;results[index]=iteratee(obj[currentKey],currentKey,obj)}return results};function createReduce(dir){function iterator(obj,iteratee,memo,keys,index,length){for(;index>=0&&index<length;index+=dir){var currentKey=keys?keys[index]:index;memo=iteratee(memo,obj[currentKey],currentKey,obj)}return memo}return function(obj,iteratee,memo,context){iteratee=optimizeCb(iteratee,context,4);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length,index=dir>0?0:length-1;if(arguments.length<3){memo=obj[keys?keys[index]:index];index+=dir}return iterator(obj,iteratee,memo,keys,index,length)}}_.reduce=_.foldl=_.inject=createReduce(1);_.reduceRight=_.foldr=createReduce(-1);_.find=_.detect=function(obj,predicate,context){var key;if(isArrayLike(obj)){key=_.findIndex(obj,predicate,context)}else{key=_.findKey(obj,predicate,context)}if(key!==void 0&&key!==-1)return obj[key]};_.filter=_.select=function(obj,predicate,context){var results=[];predicate=cb(predicate,context);_.each(obj,function(value,index,list){if(predicate(value,index,list))results.push(value)});return results};_.reject=function(obj,predicate,context){return _.filter(obj,_.negate(cb(predicate)),context)};_.every=_.all=function(obj,predicate,context){predicate=cb(predicate,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length;for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;if(!predicate(obj[currentKey],currentKey,obj))return false}return true};_.some=_.any=function(obj,predicate,context){predicate=cb(predicate,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length;for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;if(predicate(obj[currentKey],currentKey,obj))return true}return false};_.contains=_.includes=_.include=function(obj,item,fromIndex,guard){if(!isArrayLike(obj))obj=_.values(obj);if(typeof fromIndex!="number"||guard)fromIndex=0;return _.indexOf(obj,item,fromIndex)>=0};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){var func=isFunc?method:value[method];return func==null?func:func.apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,_.property(key))};_.where=function(obj,attrs){return _.filter(obj,_.matcher(attrs))};_.findWhere=function(obj,attrs){return _.find(obj,_.matcher(attrs))};_.max=function(obj,iteratee,context){var result=-Infinity,lastComputed=-Infinity,value,computed;if(iteratee==null&&obj!=null){obj=isArrayLike(obj)?obj:_.values(obj);for(var i=0,length=obj.length;i<length;i++){value=obj[i];if(value>result){result=value}}}else{iteratee=cb(iteratee,context);_.each(obj,function(value,index,list){computed=iteratee(value,index,list);if(computed>lastComputed||computed===-Infinity&&result===-Infinity){result=value;lastComputed=computed}})}return result};_.min=function(obj,iteratee,context){var result=Infinity,lastComputed=Infinity,value,computed;if(iteratee==null&&obj!=null){obj=isArrayLike(obj)?obj:_.values(obj);for(var i=0,length=obj.length;i<length;i++){value=obj[i];if(value<result){result=value}}}else{iteratee=cb(iteratee,context);_.each(obj,function(value,index,list){computed=iteratee(value,index,list);if(computed<lastComputed||computed===Infinity&&result===Infinity){result=value;lastComputed=computed}})}return result};_.shuffle=function(obj){var set=isArrayLike(obj)?obj:_.values(obj);var length=set.length;var shuffled=Array(length);for(var index=0,rand;index<length;index++){rand=_.random(0,index);if(rand!==index)shuffled[index]=shuffled[rand];shuffled[rand]=set[index]}return shuffled};_.sample=function(obj,n,guard){if(n==null||guard){if(!isArrayLike(obj))obj=_.values(obj);return obj[_.random(obj.length-1)]}return _.shuffle(obj).slice(0,Math.max(0,n))};_.sortBy=function(obj,iteratee,context){iteratee=cb(iteratee,context);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iteratee(value,index,list)}}).sort(function(left,right){var a=left.criteria;var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index-right.index}),"value")};var group=function(behavior){return function(obj,iteratee,context){var result={};iteratee=cb(iteratee,context);_.each(obj,function(value,index){var key=iteratee(value,index,obj);behavior(result,value,key)});return result}};_.groupBy=group(function(result,value,key){if(_.has(result,key))result[key].push(value);else result[key]=[value]});_.indexBy=group(function(result,value,key){result[key]=value});_.countBy=group(function(result,value,key){if(_.has(result,key))result[key]++;else result[key]=1});_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(isArrayLike(obj))return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return isArrayLike(obj)?obj.length:_.keys(obj).length};_.partition=function(obj,predicate,context){predicate=cb(predicate,context);var pass=[],fail=[];_.each(obj,function(value,key,obj){(predicate(value,key,obj)?pass:fail).push(value)});return[pass,fail]};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[0];return _.initial(array,array.length-n)};_.initial=function(array,n,guard){return slice.call(array,0,Math.max(0,array.length-(n==null||guard?1:n)))};_.last=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[array.length-1];return _.rest(array,Math.max(0,array.length-n))};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,strict,startIndex){var output=[],idx=0;for(var i=startIndex||0,length=getLength(input);i<length;i++){var value=input[i];if(isArrayLike(value)&&(_.isArray(value)||_.isArguments(value))){if(!shallow)value=flatten(value,shallow,strict);var j=0,len=value.length;output.length+=len;while(j<len){output[idx++]=value[j++]}}else if(!strict){output[idx++]=value}}return output};_.flatten=function(array,shallow){return flatten(array,shallow,false)};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iteratee,context){if(!_.isBoolean(isSorted)){context=iteratee;iteratee=isSorted;isSorted=false}if(iteratee!=null)iteratee=cb(iteratee,context);var result=[];var seen=[];for(var i=0,length=getLength(array);i<length;i++){var value=array[i],computed=iteratee?iteratee(value,i,array):value;if(isSorted){if(!i||seen!==computed)result.push(value);seen=computed}else if(iteratee){if(!_.contains(seen,computed)){seen.push(computed);result.push(value)}}else if(!_.contains(result,value)){result.push(value)}}return result};_.union=function(){return _.uniq(flatten(arguments,true,true))};_.intersection=function(array){var result=[];var argsLength=arguments.length;for(var i=0,length=getLength(array);i<length;i++){var item=array[i];if(_.contains(result,item))continue;for(var j=1;j<argsLength;j++){if(!_.contains(arguments[j],item))break}if(j===argsLength)result.push(item)}return result};_.difference=function(array){var rest=flatten(arguments,true,true,1);return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){return _.unzip(arguments)};_.unzip=function(array){var length=array&&_.max(array,getLength).length||0;var result=Array(length);for(var index=0;index<length;index++){result[index]=_.pluck(array,index)}return result};_.object=function(list,values){var result={};for(var i=0,length=getLength(list);i<length;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};function createPredicateIndexFinder(dir){return function(array,predicate,context){predicate=cb(predicate,context);var length=getLength(array);var index=dir>0?0:length-1;for(;index>=0&&index<length;index+=dir){if(predicate(array[index],index,array))return index}return-1}}_.findIndex=createPredicateIndexFinder(1);_.findLastIndex=createPredicateIndexFinder(-1);_.sortedIndex=function(array,obj,iteratee,context){iteratee=cb(iteratee,context,1);var value=iteratee(obj);var low=0,high=getLength(array);while(low<high){var mid=Math.floor((low+high)/2);if(iteratee(array[mid])<value)low=mid+1;else high=mid}return low};function createIndexFinder(dir,predicateFind,sortedIndex){return function(array,item,idx){var i=0,length=getLength(array);if(typeof idx=="number"){if(dir>0){i=idx>=0?idx:Math.max(idx+length,i)}else{length=idx>=0?Math.min(idx+1,length):idx+length+1}}else if(sortedIndex&&idx&&length){idx=sortedIndex(array,item);return array[idx]===item?idx:-1}if(item!==item){idx=predicateFind(slice.call(array,i,length),_.isNaN);return idx>=0?idx+i:-1}for(idx=dir>0?i:length-1;idx>=0&&idx<length;idx+=dir){if(array[idx]===item)return idx}return-1}}_.indexOf=createIndexFinder(1,_.findIndex,_.sortedIndex);_.lastIndexOf=createIndexFinder(-1,_.findLastIndex);_.range=function(start,stop,step){if(stop==null){stop=start||0;start=0}step=step||1;var length=Math.max(Math.ceil((stop-start)/step),0);var range=Array(length);for(var idx=0;idx<length;idx++,start+=step){range[idx]=start}return range};var executeBound=function(sourceFunc,boundFunc,context,callingContext,args){if(!(callingContext instanceof boundFunc))return sourceFunc.apply(context,args);var self=baseCreate(sourceFunc.prototype);var result=sourceFunc.apply(self,args);if(_.isObject(result))return result;return self};_.bind=function(func,context){if(nativeBind&&func.bind===nativeBind)return nativeBind.apply(func,slice.call(arguments,1));if(!_.isFunction(func))throw new TypeError("Bind must be called on a function");var args=slice.call(arguments,2);var bound=function(){return executeBound(func,bound,context,this,args.concat(slice.call(arguments)))};return bound};_.partial=function(func){var boundArgs=slice.call(arguments,1);var bound=function(){var position=0,length=boundArgs.length;var args=Array(length);for(var i=0;i<length;i++){args[i]=boundArgs[i]===_?arguments[position++]:boundArgs[i]}while(position<arguments.length)args.push(arguments[position++]);return executeBound(func,bound,this,this,args)};return bound};_.bindAll=function(obj){var i,length=arguments.length,key;if(length<=1)throw new Error("bindAll must be passed function names");for(i=1;i<length;i++){key=arguments[i];obj[key]=_.bind(obj[key],obj)}return obj};_.memoize=function(func,hasher){var memoize=function(key){var cache=memoize.cache;var address=""+(hasher?hasher.apply(this,arguments):key);if(!_.has(cache,address))cache[address]=func.apply(this,arguments);return cache[address]};memoize.cache={};return memoize};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=_.partial(_.delay,_,1);_.throttle=function(func,wait,options){var context,args,result;var timeout=null;var previous=0;if(!options)options={};var later=function(){previous=options.leading===false?0:_.now();timeout=null;result=func.apply(context,args);if(!timeout)context=args=null};return function(){var now=_.now();if(!previous&&options.leading===false)previous=now;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0||remaining>wait){if(timeout){clearTimeout(timeout);timeout=null}previous=now;result=func.apply(context,args);if(!timeout)context=args=null}else if(!timeout&&options.trailing!==false){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,args,context,timestamp,result;var later=function(){var last=_.now()-timestamp;if(last<wait&&last>=0){timeout=setTimeout(later,wait-last)}else{timeout=null;if(!immediate){result=func.apply(context,args);if(!timeout)context=args=null}}};return function(){context=this;args=arguments;timestamp=_.now();var callNow=immediate&&!timeout;if(!timeout)timeout=setTimeout(later,wait);if(callNow){result=func.apply(context,args);context=args=null}return result}};_.wrap=function(func,wrapper){return _.partial(wrapper,func)};_.negate=function(predicate){return function(){return!predicate.apply(this,arguments)}};_.compose=function(){var args=arguments;var start=args.length-1;return function(){var i=start;var result=args[start].apply(this,arguments);while(i--)result=args[i].call(this,result);return result}};_.after=function(times,func){return function(){if(--times<1){return func.apply(this,arguments)}}};_.before=function(times,func){var memo;return function(){if(--times>0){memo=func.apply(this,arguments)}if(times<=1)func=null;return memo}};_.once=_.partial(_.before,2);var hasEnumBug=!{toString:null}.propertyIsEnumerable("toString");var nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function collectNonEnumProps(obj,keys){var nonEnumIdx=nonEnumerableProps.length;var constructor=obj.constructor;var proto=_.isFunction(constructor)&&constructor.prototype||ObjProto;var prop="constructor";if(_.has(obj,prop)&&!_.contains(keys,prop))keys.push(prop);while(nonEnumIdx--){prop=nonEnumerableProps[nonEnumIdx];if(prop in obj&&obj[prop]!==proto[prop]&&!_.contains(keys,prop)){keys.push(prop)}}}_.keys=function(obj){if(!_.isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);if(hasEnumBug)collectNonEnumProps(obj,keys);return keys};_.allKeys=function(obj){if(!_.isObject(obj))return[];var keys=[];for(var key in obj)keys.push(key);if(hasEnumBug)collectNonEnumProps(obj,keys);return keys};_.values=function(obj){var keys=_.keys(obj);var length=keys.length;var values=Array(length);for(var i=0;i<length;i++){values[i]=obj[keys[i]]}return values};_.mapObject=function(obj,iteratee,context){iteratee=cb(iteratee,context);var keys=_.keys(obj),length=keys.length,results={},currentKey;for(var index=0;index<length;index++){currentKey=keys[index];results[currentKey]=iteratee(obj[currentKey],currentKey,obj)}return results};_.pairs=function(obj){var keys=_.keys(obj);var length=keys.length;var pairs=Array(length);for(var i=0;i<length;i++){pairs[i]=[keys[i],obj[keys[i]]]}return pairs};_.invert=function(obj){var result={};var keys=_.keys(obj);for(var i=0,length=keys.length;i<length;i++){result[obj[keys[i]]]=keys[i]}return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=createAssigner(_.allKeys);_.extendOwn=_.assign=createAssigner(_.keys);_.findKey=function(obj,predicate,context){predicate=cb(predicate,context);var keys=_.keys(obj),key;for(var i=0,length=keys.length;i<length;i++){key=keys[i];if(predicate(obj[key],key,obj))return key}};_.pick=function(object,oiteratee,context){var result={},obj=object,iteratee,keys;if(obj==null)return result;if(_.isFunction(oiteratee)){keys=_.allKeys(obj);iteratee=optimizeCb(oiteratee,context)}else{keys=flatten(arguments,false,false,1);iteratee=function(value,key,obj){return key in obj};obj=Object(obj)}for(var i=0,length=keys.length;i<length;i++){var key=keys[i];var value=obj[key];if(iteratee(value,key,obj))result[key]=value}return result};_.omit=function(obj,iteratee,context){if(_.isFunction(iteratee)){iteratee=_.negate(iteratee)}else{var keys=_.map(flatten(arguments,false,false,1),String);iteratee=function(value,key){return!_.contains(keys,key)}}return _.pick(obj,iteratee,context)};_.defaults=createAssigner(_.allKeys,true);_.create=function(prototype,props){var result=baseCreate(prototype);if(props)_.extendOwn(result,props);return result};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};_.isMatch=function(object,attrs){var keys=_.keys(attrs),length=keys.length;if(object==null)return!length;var obj=Object(object);for(var i=0;i<length;i++){var key=keys[i];if(attrs[key]!==obj[key]||!(key in obj))return false}return true};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a===1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!==toString.call(b))return false;switch(className){case"[object RegExp]":case"[object String]":return""+a===""+b;case"[object Number]":if(+a!==+a)return+b!==+b;return+a===0?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":return+a===+b}var areArrays=className==="[object Array]";if(!areArrays){if(typeof a!="object"||typeof b!="object")return false;var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)&&("constructor"in a&&"constructor"in b)){return false}}aStack=aStack||[];bStack=bStack||[];var length=aStack.length;while(length--){if(aStack[length]===a)return bStack[length]===b}aStack.push(a);bStack.push(b);if(areArrays){length=a.length;if(length!==b.length)return false;while(length--){if(!eq(a[length],b[length],aStack,bStack))return false}}else{var keys=_.keys(a),key;length=keys.length;if(_.keys(b).length!==length)return false;while(length--){key=keys[length];if(!(_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))return false}}aStack.pop();bStack.pop();return true};_.isEqual=function(a,b){return eq(a,b)};_.isEmpty=function(obj){if(obj==null)return true;if(isArrayLike(obj)&&(_.isArray(obj)||_.isString(obj)||_.isArguments(obj)))return obj.length===0;return _.keys(obj).length===0};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)==="[object Array]"};_.isObject=function(obj){var type=typeof obj;return type==="function"||type==="object"&&!!obj};_.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(name){_["is"+name]=function(obj){return toString.call(obj)==="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return _.has(obj,"callee")}}if(typeof/./!="function"&&typeof Int8Array!="object"){_.isFunction=function(obj){return typeof obj=="function"||false}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!==+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)==="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return obj!=null&&hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.constant=function(value){return function(){return value}};_.noop=function(){};_.property=property;_.propertyOf=function(obj){return obj==null?function(){}:function(key){return obj[key]}};_.matcher=_.matches=function(attrs){attrs=_.extendOwn({},attrs);return function(obj){return _.isMatch(obj,attrs)}};_.times=function(n,iteratee,context){var accum=Array(Math.max(0,n));iteratee=optimizeCb(iteratee,context,1);for(var i=0;i<n;i++)accum[i]=iteratee(i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};_.now=Date.now||function(){return(new Date).getTime()};var escapeMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"};var unescapeMap=_.invert(escapeMap);var createEscaper=function(map){var escaper=function(match){return map[match]};var source="(?:"+_.keys(map).join("|")+")";var testRegexp=RegExp(source);var replaceRegexp=RegExp(source,"g");return function(string){string=string==null?"":""+string;return testRegexp.test(string)?string.replace(replaceRegexp,escaper):string}};_.escape=createEscaper(escapeMap);_.unescape=createEscaper(unescapeMap);_.result=function(object,property,fallback){var value=object==null?void 0:object[property];if(value===void 0){value=fallback}return _.isFunction(value)?value.call(object):value};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\u2028|\u2029/g;var escapeChar=function(match){return"\\"+escapes[match]};_.template=function(text,settings,oldSettings){if(!settings&&oldSettings)settings=oldSettings;settings=_.defaults({},settings,_.templateSettings);var matcher=RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,escapeChar);index=offset+match.length;if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}else if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}else if(evaluate){source+="';\n"+evaluate+"\n__p+='"}return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{var render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}var template=function(data){return render.call(this,data,_)};var argument=settings.variable||"obj";template.source="function("+argument+"){\n"+source+"}";return template};_.chain=function(obj){var instance=_(obj);instance._chain=true;return instance};var result=function(instance,obj){return instance._chain?_(obj).chain():obj};_.mixin=function(obj){_.each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result(this,func.apply(_,args))}})};_.mixin(_);_.each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name==="shift"||name==="splice")&&obj.length===0)delete obj[0];return result(this,obj)}});_.each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result(this,method.apply(this._wrapped,arguments))}});_.prototype.value=function(){return this._wrapped};_.prototype.valueOf=_.prototype.toJSON=_.prototype.value;_.prototype.toString=function(){return""+this._wrapped};if(typeof define==="function"&&define.amd){define("underscore",[],function(){return _})}}).call(this)},{}],164:[function(require,module,exports){arguments[4][37][0].apply(exports,arguments)},{dup:37}],165:[function(require,module,exports){arguments[4][38][0].apply(exports,arguments)},{"./support/isBuffer":164,_process:116,dup:38,inherits:82}]},{},[11])(11)});