diff --git a/dist/contour.js b/dist/contour.js
index f5876352..0f8e7bc9 100644
--- a/dist/contour.js
+++ b/dist/contour.js
@@ -1328,7 +1328,7 @@
})();
-Contour.version = '0.9.88';
+Contour.version = '0.9.89';
(function () {
var helpers = {
@@ -3387,15 +3387,24 @@ Contour.export('nullVis', _.noop);
(function () {
+ function normalizeDataSet(dataSet) {
+ var all = _.flatten(_.pluck(dataSet, 'data'));
+ var isLinear = all.length && _.isNumber(all[0].x);
+ var normalizer = function (d, i) { return { x: i, y: d.y }; }
- function ctor(data, layer, options) {
+ return isLinear ? all : _.map(all, normalizer);
+ }
+
+ function ctor(raw, layer, options) {
this.checkDependencies('cartesian');
+ var data = normalizeDataSet(raw);
var duration = options.chart.animations.duration != null ? options.chart.animations.duration : 400;
var shouldAnimate = options.chart.animations && options.chart.animations.enable;
var x = _.bind(function(d) { return this.xScale(d) + this.rangeBand / 2; }, this);
var y = _.bind(function(d) { return this.yScale(d); }, this);
- var regression = _.nw.linearRegression(_.flatten(_.pluck(data, 'data')));
+ var regression = _.nw.linearRegression(data);
var domain = d3.extent(this.xScale.domain());
+ var numericDomain = d3.extent(data, function(p) { return p.x; });
var lineY = function (x) { return regression.intercept + regression.slope * x; };
var line = layer.selectAll('.trend-line')
@@ -3404,25 +3413,20 @@ Contour.export('nullVis', _.noop);
line.enter().append('line')
.attr('class', 'trend-line')
.attr('x1', x(domain[0]))
- .attr('y1', y(lineY(domain[0])))
+ .attr('y1', y(lineY(numericDomain[0])))
.attr('x2', x(domain[0]))
- .attr('y2', y(lineY(domain[0])));
+ .attr('y2', y(lineY(numericDomain[0])));
line.exit().remove();
if (shouldAnimate) {
- line.transition().duration(duration)
- .attr('x1', x(domain[0]))
- .attr('y1', y(lineY(domain[0])))
- .attr('x2', x(domain[1]))
- .attr('y2', y(lineY(domain[1])));
- } else {
- line
- .attr('x1', x(domain[0]))
- .attr('y1', y(lineY(domain[0])))
- .attr('x2', x(domain[1]))
- .attr('y2', y(lineY(domain[1])));
+ line = line.transition().duration(duration);
}
+
+ line.attr('x1', x(domain[0]))
+ .attr('y1', y(lineY(numericDomain[0])))
+ .attr('x2', x(domain[1]))
+ .attr('y2', y(lineY(numericDomain[1])));
}
ctor.defaults = {};
diff --git a/dist/contour.min.js b/dist/contour.min.js
index ffda95dd..7530a88d 100644
--- a/dist/contour.min.js
+++ b/dist/contour.min.js
@@ -1,4 +1,4 @@
-/*! Contour - v0.9.88 - 2014-06-12 */
-!function(a){var b=this;if("object"==typeof module&&module&&"object"==typeof module.exports&&"function"==typeof require&&(b.d3=require("d3"),b._=require("lodash")),!d3)throw new Error("You need to include d3.js before Contour. Go to http://d3js.org/");if(!_||!_.merge)throw new Error("You need to include lodash.js before Contour. Go to http://lodash.com/");!function(){var b={getValue:function(a,b,c,d){return d=Array.prototype.slice.call(arguments,3),a?"function"==typeof a?a.apply(c,d):a:b},seriesNameToClass:function(a){return a||""}},c={warn:function(a){console&&console.log&&console.log(a)}},d={firstAndLast:function(a){return[a[0],a[a.length-1]]},roundToNearest:function(a,b){return Math.ceil(a/b)*b},clamp:function(a,b,c){return a>c?c:b>a?b:a},clampLeft:function(a,b){return b>a?b:a},clampRight:function(a,b){return a>b?b:a},degToRad:function(a){return a*Math.PI/180},radToDeg:function(a){return 180*a/Math.PI},linearRegression:function(a){for(var b={},c=a.length,d=0,e=0,f=0,g=0,h=0,i=0;c>i;i++)d+=a[i].x,e+=a[i].y,f+=a[i].x*a[i].y,g+=a[i].x*a[i].x,h+=a[i].y*a[i].y;return b.slope=(c*f-d*e)/(c*g-d*d),b.intercept=(e-b.slope*d)/c,b.r2=Math.pow((c*f-d*e)/Math.sqrt((c*g-d*d)*(c*h-e*e)),2),b},niceRound:function(a){return Math.ceil(a+.1*a)}},e={textBounds:function(a,b){var c=document.getElementsByTagName("body")[0],d=document.createElement("span"),e=document.createElement("span");d.className="contour-chart",e.style.position="absolute",e.style.width="auto",e.style.height="auto",e.style.visibility="hidden",e.style.lineHeight="100%",e.style.whiteSpace="nowrap",e.innerHTML=a,e.className=b.replace(/\./g," "),d.appendChild(e),c.appendChild(d);var f={width:e.clientWidth,height:e.clientHeight};return d.removeChild(e),c.removeChild(d),f}},f={dateDiff:function(a,b){var c=a.getTime()-b.getTime();return c/864e5}},g={merge:function(a,b){return"number"==typeof a&&(a=[a]),"number"==typeof b&&(b=[b]),a&&a.length?b&&b.length?[].concat(a,b).sort(function(a,b){return a-b}):a:b},normalizeSeries:function(a,b){function c(a,b){return a.x-b.x}function d(a,d){var f={name:d,data:_.map(a,function(a,c){var d=null!=a&&a.hasOwnProperty("x"),f=function(a){return null!=a?a:null};return d?_.extend(a,{x:a.x,y:f(a.y)}):{x:e?b[c]+"":c,y:f(a)}})};return e||f.data.sort(c),f}var e=!(!b||!_.isArray(b)),f=_.isArray(a)&&_.all(a,function(a){return a.hasOwnProperty("x")&&a.hasOwnProperty("y")}),g=_.isArray(a)&&_.isObject(a[0])&&a[0].hasOwnProperty("data")&&a[0].hasOwnProperty("name")&&_.all(a[0].data,function(a){return a.hasOwnProperty("x")&&a.hasOwnProperty("y")});return g?a:f?(e||a.sort(c),[{name:"series 1",data:a}]):_.isArray(a)?_.isObject(a[0])&&a[0].hasOwnProperty("data")||_.isArray(a[0])?_.map(a,function(a,b){return d(a.data?a.data:a,a.name?a.name:"series "+(b+1))}):[d(a,"series 1")]:a},uniq:function(a){for(var b={},c=[],d=a.length,e=0;d>e;e++){var f=a[e],g=f+"";b.hasOwnProperty(g)||(b[g]=!0,c.push(f))}return c},maxTickValues:function(a,b){var c=b.length,d=[];if(a>=c)return b.slice();for(var e=Math.ceil(c/a),f=0;c>f;)d.push(b[f]),f+=e;return d},isSupportedDataFormat:function(a){return _.isArray(a)&&_.isObject(a[0])&&a[0].hasOwnProperty("data")||_.isArray(a[0])}},h={extractScaleDomain:function(a,b,c){var d=_.max(a),e=_.min(a);return null==b&&null==c?[e,d]:null==b?[Math.min(e,c),c]:null==c?[b,Math.max(b,d)]:[b,c]}},i={selectDom:function(a){return d3.select(a)[0][0]},getStyle:function(b,c){if(!b)return a;var d="string"==typeof b?this.selectDom(b):b,e=d.offsetParent?d.ownerDocument.defaultView.getComputedStyle(d,null):d.style;return c?e[c]:e},getCentroid:function(a){var b=a.offsetParent.getBoundingClientRect(),c=a.getBoundingClientRect();return[c.left-b.left+c.width/2,c.top-b.top+c.height/2]}},j={warning:function(a){console&&console.log&&console.log("WARNING: "+a)}};_.nw=_.extend({},_.nw,d,g,e,f,h,j,i,b,c)}(),function(){function b(a){return this.init(a),this}var c,d=this,e={chart:{animations:{enable:!0,duration:400},defaultWidth:400,defaultAspect:1/1.61803398875,width:a,height:a,margin:{top:0,right:0,bottom:0,left:0},padding:{top:null,right:null,bottom:null,left:null},internalPadding:{bottom:0,left:0},rotatedFrame:!1,plotWidth:a,plotHeight:a,plotTop:a,plotLeft:a},xAxis:{},yAxis:{},tooltip:{}};b.export=function(d,e){function f(a){if(!a||!a.length)return[];a[0].data&&_.each(a,f);var b=_.isObject(a[0])&&_.isDate(a[0].x),c=function(a,b){return a.x-b.x};return b&&a.sort(c),a}if("function"!=typeof e)throw new Error("Invalid render function for "+d+" visualization");b.prototype[d]=function(g,h){var i,j=this.options?this.options.xAxis?this.options.xAxis.categories:a:a,k=_.extend({},this.options[d],h);return g=g||c||[],f(g),i=new b.VisualizationContainer(_.nw.normalizeSeries(g,j),k,d,e,this),this._visualizations.push(i),c=g,this}},b.expose=function(a,c){var d=function(){var b="function"==typeof c?new c:c;return _.extend(this,_.omit(b,"init")),b.init&&b.init.call(this,this.options),this._exposed.push(a),this};return b.prototype[a]=d,this},b.prototype=_.extend(b.prototype,{_visualizations:a,_extraOptions:a,_exposed:a,init:function(a){return this.options=a||{},this._extraOptions=[],this._visualizations=[],this._exposed=[],this},calculateWidth:function(){var a=_.nw.getStyle(this.options.el,"width");return this.options.el?parseInt(a,10)||this.options.chart.defaultWidth:this.options.chart.defaultWidth},calculateHeight:function(){var b=_.nw.getStyle(this.options.el,"height"),c=this.options.el?parseInt(b,10):a,d=this.options.chart.width,e=this.options.chart.aspect||this.options.chart.defaultAspect;return c&&c>1?c:Math.round(d*e)},calcMetrics:function(){var a=this.options;this.adjustPadding(),this.adjustTitlePadding(),a.chart.width=a.chart.width||this.calculateWidth(),a.chart.height=a.chart.height||this.calculateHeight(),this.options=_.merge(a,{chart:{plotWidth:a.chart.width-a.chart.margin.left-a.chart.margin.right-a.chart.internalPadding.left-a.chart.padding.right,plotHeight:a.chart.height-a.chart.margin.top-a.chart.margin.bottom-a.chart.padding.top-a.chart.internalPadding.bottom,plotLeft:a.chart.margin.left+a.chart.internalPadding.left,plotTop:a.chart.margin.top+a.chart.padding.top}})},adjustPadding:function(){return this},adjustTitlePadding:function(){return this},composeOptions:function(){var a=_.merge({},e),b=function(b){_.merge(a,b)},c=function(b){_.merge(a,b.renderer.defaults)};_.each(this._extraOptions,b),_.each(this._visualizations,c),this.options=_.merge({},a,this.options)},baseRender:function(){return this.plotArea(),this},render:function(){return this.composeOptions(),this.calcMetrics(),this.baseRender(),this.renderVisualizations(),this},update:function(){return this.calcMetrics(),this},plotArea:function(){var a=this.options.chart;return this.container=d3.select(this.options.el),this.container.attr("style","-webkit-backface-visibility: hidden; position: relative"),this.svg||(this.svg=this.container.append("svg").attr("viewBox","0 0 "+a.width+" "+a.height).attr("preserveAspectRatio","xMinYMin").attr("class","contour-chart").attr("height",a.height).append("g").attr("transform","translate("+a.margin.left+","+a.margin.top+")")),this},createVisualizationLayer:function(a,b){return this.svg.append("g").attr("vis-id",b).attr("vis-type",a.type).attr("transform","translate("+this.options.chart.internalPadding.left+","+(this.options.chart.padding.top||0)+")")},renderVisualizations:function(){return _.each(this._visualizations,function(a,b){var c=b+1,d=a.layer||this.createVisualizationLayer(a,c),e=_.merge({},this.options,a.options);a.layer=d,a.parent=this,a.render(d,e,this)},this),this},checkDependencies:function(a){a=_.isArray(a)?a:[a];var b=this,c=[];if(_.each(a,function(a){-1===b._exposed.indexOf(a)&&c.push(a)}),c.length)throw new Error("ERROR: Missing depeendencies in the Contour instance (ej. new Contour({}).cartesian())\n The missing dependencies are: ["+c.join(", ")+"]\nGo to http://forio.com/contour/documentation.html#key_concepts for more information")},setData:function(a){return _.invoke(this._visualizations,"setData",a),this},select:function(a){return this._visualizations[a]},data:function(){}}),d.Contour=b}(),function(){function b(a,b){var c=b.chart.rotatedFrame?b.chart.plotWidth:b.chart.plotHeight,d=b.chart.rotatedFrame?[0,c]:[c,0];return a.range(d)}var c=function(a,b){this.data=a,this.options=b};c.prototype={axis:function(){var a=this.options.yAxis,b=this._scale.domain(),c=a.tickValues,d=this.numTicks(b,a.min,a.max),e=a.labels.formatter||d3.format(a.labels.format);return d3.svg.axis().scale(this._scale).tickFormat(e).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).ticks(d).tickValues(c)},scale:function(a){return this._scale||(this._scale=d3.scale.linear(),this.setDomain(a),b(this._scale,this.options)),this._scale},setDomain:function(a){return this._scale.domain(a),this._niceTheScale(),this._scale},update:function(a,b){this.data=b,this.setDomain(a)},numTicks:function(){return null!=this.options.yAxis.ticks?this.options.yAxis.ticks:a},_niceTheScale:function(){this.options.yAxis.nicing&&this._scale.nice()}},_.extend(_.nw,{YAxis:c})}(),function(){var b={chart:{gridlines:"none",padding:{top:6,right:5,bottom:a,left:a}},xAxis:{type:null,categories:a,innerTickSize:6,outerTickSize:0,tickPadding:6,maxTicks:a,ticks:a,tickValues:a,title:a,titlePadding:4,innerRangePadding:.1,outerRangePadding:.1,firstAndLast:!1,orient:"bottom",labels:{format:a,formatter:a},linearDomain:!1},yAxis:{min:a,max:a,smartAxis:!1,innerTickSize:6,outerTickSize:6,tickPadding:4,tickValues:a,ticks:a,title:a,titlePadding:4,nicing:!0,orient:"left",labels:{verticalAlign:"middle",format:"s",formatter:a}}},c=function(){return{dataSrc:[],init:function(c){var d={chart:{rotatedFrame:!1,internalPadding:{bottom:a,left:a}}};this.options=c||{},_.merge(this.options,d);var e={};return this.options.xAxis&&this.options.xAxis.firstAndLast||(e={chart:{padding:{right:15}}}),this._extraOptions.push(_.merge({},b,e)),this},xDomain:[],yDomain:[],_getYScaledDomain:function(){var b=this.yDomain&&this.yDomain[0]>0?0:a;return _.nw.extractScaleDomain(this.yDomain,this.options.yAxis.min||b,this.options.yAxis.max)},adjustPadding:function(){var a=this.options.xAxis,b=this.options.yAxis,c=function(a){return Math.max(a.outerTickSize||0,a.innerTickSize||0)};if(null==this.options.chart.padding.bottom)if(0!==a.ticks){var d=this.xDomain,e=d.join("
"),f=_.nw.textBounds(e,".x.axis"),g=_.nw.textBounds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890",".x.axis"),h=g.height,i=a.labels&&a.labels.rotation?a.labels.rotation%360:0,j=0===i?g.height:Math.ceil(Math.abs(f.width*Math.sin(_.nw.degToRad(i)))+h/5);this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||c(this.options.xAxis)+(this.options.xAxis.tickPadding||0)+j}else this.options.chart.internalPadding.bottom=c(this.options.xAxis)+(this.options.xAxis.tickPadding||0);else this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||0;if(null==this.options.chart.padding.left){var k=this._getYScaledDomain(),l=d3.scale.linear().domain(k),m=l.ticks(b.ticks),n=b.labels.formatter||d3.format(b.labels.format||",.0f"),o=_.map(m,n).join("
"),p=_.nw.textBounds(o,".y.axis");this.options.chart.internalPadding.left=this.options.chart.padding.left||c(this.options.yAxis)+(this.options.yAxis.tickPadding||0)+p.width}else this.options.chart.internalPadding.left=this.options.chart.padding.left},adjustTitlePadding:function(){var a;(this.options.xAxis.title||this.options.yAxis.title)&&(this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),this.options.chart.internalPadding.bottom+=a.height+this.options.xAxis.titlePadding),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),this.options.chart.internalPadding.left+=a.height+this.options.yAxis.titlePadding))},computeXScale:function(){if(!this.xDomain)throw new Error("You are trying to render without setting data (xDomain).");this.xScale?(this.xScaleGenerator.update(this.xDomain,this.dataSrc),this.rangeBand=this.xScaleGenerator.rangeBand()):(this.xScaleGenerator=_.nw.xScaleFactory(this.dataSrc,this.options),this.xScale=this.xScaleGenerator.scale(this.xDomain),this.rangeBand=this.xScaleGenerator.rangeBand())},computeYScale:function(){if(!this.yDomain)throw new Error("You are trying to render without setting data (yDomain).");var a=this._getYScaledDomain();this.yScale?this.yScaleGenerator.update(a,this.dataSrc):(this.yScaleGenerator=_.nw.yScaleFactory(this.dataSrc,this.options,this.yMin,this.yMax),this.yScale=this.yScaleGenerator.scale(a))},xScale:a,yScale:a,setYDomain:function(a){this.yScaleGenerator.setDomain(a)},redrawYAxis:function(){this.svg.select(".y.axis").call(this.yAxis()),this.renderGridlines()},_animationDuration:function(){var a=this.options.chart.animations;return a&&a.enable?null!=a.duration?a.duration:400:0},computeScales:function(){return this.computeXScale(),this.computeYScale(),this},_xAxis:a,xAxis:function(){return this._xAxis||(this._xAxis=this.xScaleGenerator.axis().orient(this.options.xAxis.orient)),this._xAxis},_yAxis:a,yAxis:function(){return this._yAxis||(this._yAxis=this.yScaleGenerator.axis().orient(this.options.yAxis.orient)),this._yAxis},renderXAxis:function(){var a=this.xAxis(),b=this.options.chart.plotHeight+this.options.chart.padding.top;return this._xAxisGroup=this.svg.selectAll(".x.axis").data([1]),this._xAxisGroup.enter().append("g").attr("transform","translate("+this.options.chart.internalPadding.left+","+b+")").attr("class","x axis"),this._xAxisGroup.transition().duration(this._animationDuration()).call(a),this.xScaleGenerator.postProcessAxis(this._xAxisGroup),this},renderYAxis:function(){var a=this.options.yAxis,b={bottom:".8em",middle:".35em",top:"0"},c=this.options.chart.internalPadding.left,d=this.options.chart.padding.top;return this._yAxisGroup=this.svg.selectAll(".y.axis").data([1]),this._yAxisGroup.enter().append("g").attr("transform","translate("+c+","+d+")").attr("class","y axis"),this._yAxisGroup.transition().duration(this._animationDuration()).call(this.yAxis()).selectAll(".tick text").attr("dy",b[a.labels.verticalAlign]),this},renderAxisLabels:function(){.25*this.titleOneEm;var a,b,c,d=40/46.609;return this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),c=this.options.chart.internalPadding.bottom,b=0,el=this._xAxisGroup.selectAll(".x.axis-title").data([1]),el.enter().append("text").attr("class","x axis-title").attr("x",b).attr("y",c).attr("dx",(this.options.chart.plotWidth-a.width)/2).attr("dy",-2).text(this.options.xAxis.title)),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),c=-this.options.chart.internalPadding.left+a.height*d,b=0,el=this._yAxisGroup.selectAll(".y.axis-title").data([1]),el.enter().append("text").attr("class","y axis-title").attr("transform","rotate(-90)").attr("x",b).attr("y",c).attr("dx",-(this.options.chart.plotHeight+a.width)/2).attr("dy",0).text(this.options.yAxis.title)),this},renderGridlines:function(){function a(a,b){var c=a.tickValues();if(!c){var d=a.ticks()[0];return a.scale().ticks(d).slice(1)}return b&&c.pop(),c.slice(1)}function b(a){return a.tickValues()||(a.scale().ticks?a.scale().ticks().slice(1):a.scale().domain())}var c,d,e=this.options.chart.gridlines,f="horizontal"===e||"both"===e,g="vertical"===e||"both"===e,h=this.xScale,i=this.yScale;if(f){c=a(this.yAxis(),this.options.yAxis.smartAxis);var j=this.options.chart.plotWidth;d=this._yAxisGroup.selectAll(".grid-lines").data([c]),d.enter().append("svg:g").attr("class","grid-lines");var k=d.selectAll(".grid-line").data(function(a){return a});k.transition().duration(this._animationDuration()).attr("x1",0).attr("x2",function(){return j}).attr("y1",i).attr("y2",i),k.enter().append("line").attr("class","grid-line").attr("x1",0).attr("x2",function(){return j}).attr("y1",i).attr("y2",i),k.exit().remove()}if(g){this._xAxisGroup.select("g.grid-lines").remove(),d=this._xAxisGroup.append("svg:g").attr("class","grid-lines"),c=b(this.xAxis());var l=this.rangeBand/2,m=this.options.chart.plotHeight;d.selectAll(".grid-line").data(c).enter().append("line").attr("class","grid-line").attr("x1",function(a){return h(a)+l}).attr("x2",function(a){return h(a)+l}).attr("y1",-m).attr("y2",0)}return this},renderBackground:function(){var a=this.options.chart;this.background=this.background||this.createVisualizationLayer("background",0);var b=this.background.selectAll(".plot-area-background").data([null]);return b.enter().append("rect").attr("class","plot-area-background").attr("x",0).attr("y",0).attr("width",a.plotWidth).attr("height",a.plotHeight),b.exit().remove(),this},render:function(){return this.composeOptions(),this.adjustDomain(),this.calcMetrics(),this.computeScales(),this.baseRender(),this.renderBackground().renderXAxis().renderYAxis().renderGridlines().renderAxisLabels().renderVisualizations(),this},datum:function(a,b){return _.isObject(a)&&_.isArray(a.data)?_.map(a.data,_.bind(this.datum,this)):{y:_.isObject(a)?a.y:a,x:_.isObject(a)?a.x:this.options.xAxis.categories?this.options.xAxis.categories[b]:b}},adjustDomain:function(){var a=this.getExtents();this.yDomain=a.length?a:[0,10],this.xDomain=this.getXDomain(),this.yMin=this.yDomain[0],this.yMax=this.yDomain[this.yDomain.length-1];var b=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)});this.dataSrc=_.flatten(_.map(b,function(a){return _.flatten(_.map(a.data,_.bind(this.datum,this)))},this)),this._yAxis=null,this._xAxis=null},getExtents:function(a){var b=a&&"x"===a?"xExtent":"yExtent",c=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)}),d=_.flatten(_.pluck(c,b));return d.length?d3.extent(d):[]},getXDomain:function(){var a=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)}),b=_.nw.uniq(_.flatten(_.pluck(a,"xDomain")));return b}}};Contour.expose("cartesian",c)}(),Contour.version="0.9.88",function(){var a={xScaleFactory:function(a,b){var c="time"===b.xAxis.type||(_.isArray(a)&&a.length>0&&a[0].data?a[0].data[0].x&&_.isDate(a[0].data[0].x):_.isArray(a)&&a.length>0&&a[0].x&&_.isDate(a[0].x));return c&&"ordinal"!==b.xAxis.type?new _.nw.TimeScale(a,b):b.xAxis.categories||"linear"!==b.xAxis.type?new _.nw.OrdinalScale(a,b):new _.nw.LinearScale(a,b)},yScaleFactory:function(a,b,c,d){var e={log:_.nw.LogYAxis,smart:_.nw.SmartYAxis,linear:_.nw.YAxis};if(b.yAxis.type||(b.yAxis.type="linear"),"linear"===b.yAxis.type&&b.yAxis.smartAxis&&(b.yAxis.type="smart"),!e[b.yAxis.type])throw new Error('Unknown axis type: "'+b.yAxis.type+'"');return new e[b.yAxis.type](a,b,c,d)}};_.nw=_.extend({},_.nw,a)}(),function(){function a(a,b){this.options=b,this.data=a,this.init()}a.prototype={init:function(){delete this._scale},scale:function(a){return this._domain=a?this._getAxisDomain(a):this._getAxisDomain(this.data),this._scale?this._scale.domain(this._domain):(this._scale=d3.scale.linear().domain(this._domain),null==this.options.xAxis.min&&null==this.options.xAxis.max&&this._scale.nice(),this._setRange()),this._scale},axis:function(){var a=this.options.xAxis,b=a.labels.formatter||d3.format(a.labels.format||"d"),c=d3.svg.axis().scale(this._scale).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).tickFormat(function(a){return _.isDate(a)?a.getDate():b(a)});return a.firstAndLast?c.tickValues(_.nw.firstAndLast(this._domain)):a.tickValues?c.tickValues(a.tickValues):null!=a.ticks&&c.ticks(a.ticks),c},update:function(a,b){this.data=b,this.scale(a)},rangeBand:function(){return 1},postProcessAxis:function(){return this},_setRange:function(){var a=this.options.chart.rotatedFrame?this.options.chart.plotHeight:this.options.chart.plotWidth,b=this.options.chart.rotatedFrame?[a,0]:[0,a];return this._scale.range(b)},_getAxisDomain:function(a){var b=this.options.xAxis.min,c=this.options.xAxis.max,d=null!=b?this.options.xAxis.min:d3.min(a),e=null!=c?this.options.xAxis.max:d3.max(a);return null!=b&&null!=c&&b>c?d3.extent(a):[d,e]}},_.nw=_.extend({},_.nw,{LinearScale:a})}(),function(){function a(a,b){var c=b.chart.rotatedFrame?b.chart.plotWidth:b.chart.plotHeight,d=b.chart.rotatedFrame?[0,c]:[c,0];return a.range(d)}var b=function(a,b){this.data=a,this.options=b};b.prototype=_.extend({},_.nw.YAxis.prototype,{axis:function(){var a=this.options.yAxis,b=this._scale.domain(),c=Math.ceil(Math.log(b[1])/Math.log(10)),d=a.labels.formatter||d3.format(a.labels.format||",.0f"),e=d3.svg.axis().scale(this._scale).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding);return a.labels.formatter?e.tickFormat(a.labels.formatter):e.ticks(a.ticks||c,d),e},scale:function(b){return this._scale||(b[0]<=.1&&(b[0]=.1),this._scale=d3.scale.log(),this.setDomain(b).clamp(!0),a(this._scale,this.options)),this._scale},update:function(a,b){this.data=b,a[0]<=.1&&(a[0]=.1),this.setDomain(a).clamp(!0)}}),_.extend(_.nw,{LogYAxis:b})}(),function(){function a(a,b){this.options=b,this.data=a,this.init()}a.prototype={init:function(){this.isCategorized=!0,delete this._scale},scale:function(a){return this._scale||(this._scale=new d3.scale.ordinal,this._range()),this.setDomain(a),this._scale},axis:function(){var a=this.options.xAxis,b=a.labels.format?d3.format(a.labels.format):0,c=a.labels.formatter||(this.isCategorized?0:b)||function(a){return _.isDate(a)?a.getDate():a},d=d3.svg.axis().scale(this._scale).innerTickSize(a.innerTickSize).outerTickSize(a.outerTickSize).tickPadding(a.tickPadding).tickFormat(c);return a.firstAndLast?d.tickValues(_.nw.firstAndLast(this._domain)):a.maxTicks?d.tickValues(_.nw.maxTickValues(a.maxTicks,this._domain)):a.tickValues?d.tickValues(a.tickValues):null!=a.ticks?(d.ticks(a.ticks),0===a.ticks&&d.tickValues([])):d.tickValues(a.categories),d},postProcessAxis:function(a){var b=this.options.xAxis;if(b.labels&&null!=b.labels.rotation){var c=b.labels.rotation,d=_.nw.degToRad(c),e=c>0?1:0>c?-1:0,f=.71,g=Math.cos(d),h=Math.sin(d);b.labels.rotation>0;var i=b.labels.rotation<0?"end":b.labels.rotation>0?"start":"middle";a.selectAll(".tick text").style({"text-anchor":i}).attr("transform",function(){var a=d3.select(this).attr("x")||0,c=d3.select(this).attr("y")||0;return"rotate("+b.labels.rotation+" "+a+","+c+")"}).attr("dy",function(){return(g*f).toFixed(4)+"em"}).attr("dx",function(){return-(h*f-.31*e).toFixed(4)+"em"})}},update:function(a,b){this.data=b,this.setDomain(a)},setDomain:function(a){this._domain=a,this._scale.domain(a)},rangeBand:function(){var a=this._scale.rangeBand();return a||_.nw.warn("rangeBand is 0, you may have too many points in in the domain for the size of the chart (ie. chartWidth = "+this.options.chart.plotWidth+"px and "+this._domain.length+" X-axis points (plus paddings) means less than 1 pixel per band and there're no half pixels"),this._scale.rangeBand()},_range:function(){var a=this.options.chart.rotatedFrame?[this.options.chart.plotHeight,0]:[0,this.options.chart.plotWidth];return this.isCategorized?this._scale.rangeRoundBands(a,this.options.xAxis.innerRangePadding,this.options.xAxis.outerRangePadding):this._scale.rangePoints(a)}},_.nw=_.extend({},_.nw,{OrdinalScale:a})}(),function(){function a(a,b,c,d,e){var f=_.nw.merge(a,e);return null==b&&null==c?f:null==b?c>d?_.nw.merge([c],f):[c]:null==c?b>=e?[b]:(f[0]=b,f):_.nw.merge([b,c],e)}var b=function(a,b,c,d){this.data=a,this.options=b,this.yMax=d,this.yMin=c};b.prototype=_.extend({},_.nw.YAxis.prototype,{axis:function(){var b=this.options.yAxis,c=this._scale.domain(),d=a(c,b.min,b.max,this.yMin,this.yMax),e=this.numTicks(),f=_.nw.YAxis.prototype.axis.call(this);return f.ticks(e).tickValues(d)},numTicks:function(){return 3},setDomain:function(a){var b=d3.extent(a);this.yMin=b[0],this.yMax=b[1],this._scale.domain(a),this._niceTheScale()},_niceTheScale:function(){var a=this._scale.domain(),b=[this.options.yAxis.min||a[0],this.options.yAxis.max||_.nw.niceRound(a[1])];this._scale.domain(b)}}),_.extend(_.nw,{SmartYAxis:b})}(),function(){function a(a,b){if(!a||!b)return 0;var c=a.getTime()-b.getTime();return c/864e5}function b(a,b){this.options=b,this.data=a,this.init()}b.prototype={init:function(){delete this._scale},scale:function(a){return this._scale||(this._scale=new d3.time.scale,this.setDomain(a),this.range()),this._scale},axis:function(){var a=this.options.xAxis,b=this.getOptimalTickFormat(),c=d3.svg.axis().scale(this._scale).tickFormat(b).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).tickValues(this._domain);return null!=this.options.xAxis.maxTicks&&this.options.xAxis.maxTicksb?d3.time.format("%H:%M"):365>b?d3.time.format("%d %b"):d3.time.format("%Y")},range:function(){var a=this._getAxisRange(this._domain);return this._scale.rangeRound(a,.1)},_getAxisDomain:function(a){return this.options.xAxis.linearDomain?a:d3.extent(a)},_getAxisRange:function(a){var b=this.options.chart.rotatedFrame?this.options.chart.plotHeight:this.options.chart.plotWidth;return this.options.xAxis.linearDomain?_.range(0,b,b/(a.length-1)).concat([b]):[0,b]}},_.nw=_.extend({},_.nw,{TimeScale:b})}(),function(){var a={chart:{rotatedFrame:!0},xAxis:{orient:"left"},yAxis:{orient:"bottom"}},b={init:function(){_.merge(this.options,a)},adjustPadding:function(){var a=this.options.xAxis.categories||_.pluck(this.dataSrc,"x"),b=a.join("
"),c=_.nw.textBounds(b,".x.axis"),d=_.nw.textBounds("ABC",".y.axis"),e=function(a){return Math.max(a.outerTickSize,a.innerTickSize)};this.options.chart.internalPadding.left=this.options.chart.padding.left||e(this.options.xAxis)+this.options.xAxis.tickPadding+c.width,this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||e(this.options.yAxis)+this.options.yAxis.tickPadding+d.height},adjustTitlePadding:function(){var a;(this.options.xAxis.title||this.options.yAxis.title)&&(this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),this.options.chart.internalPadding.left+=a.height+this.options.xAxis.titlePadding),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),this.options.chart.internalPadding.bottom+=a.height+this.options.yAxis.titlePadding))},renderYAxis:function(){var a=this.yAxis(),b=this.options.chart.internalPadding.left,c=this.options.chart.padding.top+this.options.chart.plotHeight;return this._yAxisGroup=this.svg.selectAll(".y.axis").data([1]),this._yAxisGroup.enter().append("g").attr("class","y axis").attr("transform","translate("+b+","+c+")"),this._yAxisGroup.exit().remove(),this._yAxisGroup.transition().duration(this._animationDuration()).attr("transform","translate("+b+","+c+")").call(a),this},renderXAxis:function(){var a=this.options.chart.internalPadding.left,b=this.options.chart.padding.top,c=this.xAxis();return this._xAxisGroup=this.svg.selectAll(".x.axis").data([1]),this._xAxisGroup.enter().append("g").attr("class","x axis").attr("transform","translate("+a+","+b+")"),this._xAxisGroup.exit().remove(),this._xAxisGroup.transition().duration(this._animationDuration()).attr("transform","translate("+a+","+b+")").call(c),this.xScaleGenerator.postProcessAxis(this._xAxisGroup),this},renderAxisLabels:function(){var a,b,c,d,e,f,g,h=.25*this.titleOneEm,i=40/46.609;return this.options.xAxis.title&&(b=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),f=this.options.chart.rotatedFrame?-b.height:this.options.chart.plotWidth,g=this.options.chart.rotatedFrame?-this.options.chart.internalPadding.left:this.options.chart.internalPadding.bottom-h,d=this.options.chart.rotatedFrame?"-90":"0",a=this._xAxisGroup.selectAll(".x.axis-title").data([null]),a.enter().append("text").attr("class","x axis-title"),a.attr("x",0).attr("y",g).attr("transform",["rotate(",d,")"].join("")).attr("dy",b.height*i).attr("dx",-(this.options.chart.plotHeight+b.width)/2).text(this.options.xAxis.title),a.exit().remove()),this.options.yAxis.title&&(b=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),e=Math.max(this.options.yAxis.innerTickSize,this.options.yAxis.outerTickSize),c=this.options.chart.rotatedFrame?"end":"middle",f=this.options.chart.rotatedFrame?this.options.chart.plotWidth:0,g=this.options.chart.rotatedFrame?this.options.chart.internalPadding.bottom:-this.options.chart.internalPadding.left+this.titleOneEm-h,d=this.options.chart.rotatedFrame?"0":"-90",a=this._yAxisGroup.selectAll(".y.axis-title").data([null]),a.enter().append("text").attr("class","y axis-title"),a.attr("y",g).attr("x",f).attr("dx",-(this.options.chart.plotWidth+b.width)/2).attr("dy",-4).attr("transform",["rotate(",d,")"].join("")).text(this.options.yAxis.title),a.exit().remove()),this}};Contour.expose("horizontal",b)}(),function(){function a(a,b,c,d,e){this.type=c,this.renderer=d,this.ctx=e,this.init(a,b)}var b=function(a,b){var c=[],d=[];return _.each(a,function(a){if(a.data.length){var e=_.pluck(a.data,b);c.push(d3.max(e)),d.push(d3.min(e))}}),d.length&&c.length?[_.min(d),_.max(c)]:[]},c=function(a){for(var b=_.pluck(a,"data"),c=_.max(_.map(b,function(a){return a.length})),d=[],e=0;c>e;e++)_.each(b,function(a){d[e]=a[e]?(d[e]||0)+a[e].y:d[e]||0});return[_.min(d),_.max(d)]},d=_.partialRight(b,"x"),e=_.partialRight(b,"y");a.prototype={init:function(a,b){this.setOptions(b),this.setData(a)},render:function(a,b){return this.renderer.call(this.ctx,this.data,a,b),this.ctx},setData:function(a){return this.data=_.nw.normalizeSeries(a),this._updateDomain(),this.ctx},setOptions:function(a){var b={};return b[this.type]=a||{},this.options={},this.options=_.merge({},this.renderer.defaults||{},b),this.ctx},_updateDomain:function(){if(!this.options[this.type])throw new Error("Set the options before calling setData or _updateDomain");_.nw.isSupportedDataFormat(this.data)&&(this.xDomain=_.flatten(_.map(this.data,function(a){return _.pluck(a.data,"x")})),this.xExtent=d(this.data,"x"),this.yExtent=this.options[this.type].stacked?c(this.data):e(this.data))}},Contour.VisualizationContainer=a}(),function(){function b(a,b,c){function d(){var d=b.selectAll("g.series").data(k(a));d.enter().append("svg:g").attr("class",j).append("path").datum(function(a){return a.data}).attr("class","area").attr("d",l),d.exit().remove(),c.chart.animations&&c.chart.animations.enable?d.select(".area").datum(function(a){return a.data}).transition().duration(c.chart.animations.duration||f).attr("d",n):d.select(".area").datum(function(a){return a.data}).attr("d",n),c.tooltip.enable&&e.call(this,d)}function e(a){var b=10;a.append("g").attr("class","tooltip-trackers").selectAll("tooltip-tracker").data(function(a){return a.data}).enter().append("circle").attr("class","tooltip-tracker").attr("opacity",0).attr("r",b).attr("cx",function(a){return g(a.x)}).attr("cy",function(a){return h((c.area.stacked?a.y0:0)+a.y)})}this.checkDependencies("cartesian");var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=_.bind(function(a){return this.xScale(a)+this.rangeBand/2+.5},this),h=_.bind(function(a){return this.yScale(a)+.5},this),i=c.chart.plotHeight,j=function(a,b){return"series s-"+(b+1)+" "+a.name},k=d3.layout.stack().values(function(a){return a.data}),l=d3.svg.area().x(function(a){return g(a.x)}).y0(function(){return i}).y1(function(){return i
-}),m=null!=c.area.areaBase?c.area.areaBase:c.yAxis.min,n=d3.svg.area().x(function(a){return g(a.x)}).y0(function(a){return c.area.stacked?h(a.y0||m||0):h(0)}).y1(function(a){return h((c.area.stacked?a.y0:0)+a.y)});c.area.smooth&&(n.interpolate("cardinal"),l.interpolate("cardinal")),d()}var c={xAxis:{type:"linear"},area:{stacked:!0,areaBase:a}};b.defaults=c,Contour.export("area",b)}(),function(){function a(a,b,c){function d(a,b){return a.attr("y",function(a){return h(a.x)}).attr("height",j),b?a.attr("x",function(){return i(0)}).attr("width",function(){return 0}):a.attr("x",function(a){return a.y>=0?i(a.y0||0):i(a.y+a.y0)}).attr("width",function(a){return a.y>=0?i(a.y)-i(0):i(0)-i(a.y)})}function e(b,d){var e=a.length,f=function(){return j/e-c.bar.groupPadding+.5},g=function(a,b){return j/e*b+.5};return b.attr("y",function(a,b,c){return h(a.x)+g(a,c)}).attr("x",i(0)).attr("height",f),d?b.attr("width",function(){return.5}):b.attr("width",function(a){return a.y>=0?i(a.y)-i(0):i(0)-i(a.y)}).attr("x",function(a){return a.y<0?i(a.y):i(0)})}this.checkDependencies(["cartesian","horizontal"]);var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=this,h=function(a){return g.xScale(a)-.5},i=function(a){return g.yScale(a)+.5},j=this.rangeBand,k=d3.layout.stack().values(function(a){return a.data}),l=c.bar.stacked?d:e,m=_.partialRight(l,!0),n=function(a,b){return"series s-"+(b+1)+" "+a.name},o=b.selectAll("g.series").data(k(a));o.enter().append("svg:g").attr("class",n),o.exit().remove();var p=o.selectAll(".bar").data(function(a){return a.data}),q="bar"+(c.tooltip.enable?" tooltip-tracker":"");p.enter().append("rect").attr("class",q).call(m),c.chart.animations&&c.chart.animations.enable?(p.transition().duration(f).call(l),p.exit().transition().duration(f).attr("width",i(0)).remove()):(p.call(l),p.exit().remove())}var b={bar:{stacked:!1,groupPadding:2}};a.defaults=b,Contour.export("bar",a)}(),function(){function a(a,b,c){function d(a,b){var c=k(0);a.attr("x",function(a){return j(a.x)+m}).attr("width",function(){return n}),b?a.attr("y",function(a){return a.y>=0?c:c}).attr("height",function(){return.5}):a.attr("y",function(a){return a.y>=0?k(a.y)+k(a.y0)-c:k(a.y0)}).attr("height",function(a){return a.y>=0?c-k(a.y):k(a.y)-c})}function e(b,c){var d=n/a.length-g.groupPadding+.5,e=function(b,c){return n/a.length*c+.5},f=k(0);b.attr("x",function(a,b,c){return j(a.x)+e(a,c)+m}).attr("width",d),c?b.attr("y",f).attr("height",0):b.attr("y",function(a){return a.y>=0?k(a.y):f}).attr("height",function(a){return a.y>=0?f-k(a.y):k(a.y)-f})}this.checkDependencies("cartesian");var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=c.column;c.chart.plotWidth;var h=c.chart.plotHeight,i=this,j=function(a){return Math.round(i.xScale(a))+.5},k=function(a){return Math.round(i.yScale(a))-.5},l=function(a){return a.data},m=_.nw.getValue(g.offset,0,this),n=_.nw.getValue(g.columnWidth,this.rangeBand,this),o=_.partialRight(c.column.stacked?d:e,!0),p=c.column.stacked?d:e,q=_.map(a,function(a){return{name:a.name,data:_.filter(a.data,function(b,c){return 0===c?!0:j(b.x)!==j(a.data[c-1].x)})}}),r=d3.layout.stack().values(function(a){return a.data}),s=b.selectAll("g.series").data(r(q));s.enter().append("g").attr("class",function(a,b){return"series s-"+(b+1)+" "+a.name}),s.exit().remove();var t=s.selectAll(".column").data(l);n/a.length-g.groupPadding-.5;var u="column"+(c.tooltip.enable?" tooltip-tracker":"");t.enter().append("rect").attr("class",u).call(o),c.chart.animations&&c.chart.animations.enable?(t.exit().transition().duration(f).attr("y",h).attr("height",function(){return.5}).remove(),t.transition().duration(f).call(p)):(t.exit().remove(),t.call(p))}var b={column:{stacked:!1,groupPadding:1,columnWidth:function(){return this.rangeBand},offset:function(){return 0}}};a.defaults=b,Contour.export("column",a)}(),function(){Contour.export("coolNarwhal",function(a,b){b.append("path").attr("class","cool").attr("opacity",0).attr("transform","scale(.5) translate(500 150)").attr("d","M-220.02,76.509l-0.78,8.927c-0.956,10.949,1.389,20.422,6.188,30.383c10.203,21.173,63.095,84.05,93.72,115.075c20.145,20.406,19.487,23.018,21.549,40.122c2.487,20.621,24.897,66.462,40.838,71.269 c15.086,4.549,12.91-12.398,13.319-37.83c5.746,2.457,10.917,5.638,20.206,12.697c61.697,46.892,139.734,69.97,206.5,71.733c46.209,1.221,81.432-7.081,142.957-33.694c40.484-17.512,54.271-22.098,65.639-21.504c4.432,0.232,22.678,11.204,41.746,21.563c35.398,19.229,69.457,34.595,75.896,34.239c12.609-1.457-0.701-11.783-8.072-24.217c-7.049-11.892-15.414-29.572-18.844-42.134s-4.723-22.272-8.91-27.091c-2.143-2.463-12.812-6.786-21.189-8.146c-18.045-2.933-22.191-2.922-13.531-8.957c13.076-9.115,17.377-11.039,1.826-29.068c-6.383-7.402-11.336-20.003-13.709-39.542c-1.607-13.237,1.057-23.679-3.869-27.451s-17.271,12.341-20.846,19.334c-2.01,3.937-7.102,19.005-11.312,33.485c-13.795,47.427-29.865,65.742-62.693,71.447c-34.361,5.971-71.623-9.506-116.543-48.404c-13.164-11.399-29.533-25.26-39.254-36.913c-13.428-16.101-15.48-18.138-19.785-20.66c-16.166-9.472-54.98-31.694-103.525-63.815c-24.393-16.141-57.72-36.928-71.453-43.693c-27.236-13.417-68.416-28.952-90.731-46.771c-24.665-19.697-38.108-19.793-67.804-5.479c-21.429,10.328-23.941,15.298-26.52,15.726c-8.216-10.129-22.917-11.198-31.647-20.682c-9.529-10.35-28.027-14.098-37.824-24.957c-10.668-11.826-31.25-16.752-40.886-26.94c-11.339-11.989-29.387-16.096-40.838-26.637c-11.617-10.694-27.159-14.843-37.68-24.045c-10.383-9.082-23.187-12.538-31.408-19.163c-8.193-6.601-16.593-9.444-22.026-11.993c-5.433-2.549-7.398-2.522-7.658-1.927c-0.26,0.594,1.355,2.955,6.054,6.447c4.699,3.491,22.193,18.451,31.645,22.77c10.921,5.104,17.502,15.01,29.671,21.375c13.224,6.918,22.212,18.731,36.229,25.924c15.53,7.971,24.754,21.184,39.657,28.253c16.462,7.808,25.503,21.598,39.958,28.36c14.499,6.78,20.647,20.252,34.429,23.428C-238.033,58.207-227.932,70.443-220.02,76.509L-220.02,76.509z").transition().delay(300).duration(2e3).attr("opacity",1)})}(),function(){function a(a){var b=[];return-1!=["top","middle","bottom"].indexOf(a.legend.vAlign)?b.push(a.legend.vAlign):b.push("top"),-1!=["left","center","right"].indexOf(a.legend.hAlign)?b.push(a.legend.hAlign):b.push("right"),"vertical"===a.legend.direction&&b.push("vertical"),b}function b(b,c,d){var e=this.container.selectAll(".contour-legend").data([null]),f=_.nw.textBounds("series",".contour-legend.contour-legend-entry"),g=b.length,h=(f.height+4)*g+12,i=(d.chart.plotHeight-h)/2,j=function(a){if("center"===d.legend.hAlign&&a.length){var b=a[0].parentNode.clientWidth,c=(d.chart.plotWidth-b)/2+d.chart.internalPadding.left;d3.select(a[0].parentNode).style("left",c+"px")}},k=e.enter().append("div").attr("class",function(){return["contour-legend"].concat(a(d)).join(" ")}).attr("style",function(){var a=[];if("top"===d.legend.vAlign?a.push("top: 0"):"middle"===d.legend.vAlign?a.push("top: "+i+"px"):a.push("bottom: "+(d.chart.internalPadding.bottom+5)+"px"),"left"===d.legend.hAlign)a.push("left: "+d.chart.plotLeft+"px");else if("center"===d.legend.hAlign){var b=_.nw.textBounds(this,".contour-legend");a.push("left: "+((d.chart.plotWidth-b.width)/2+d.chart.internalPadding.left)+"px")}else a.push("right: 10px");return a.join(";")}),l=k.selectAll(".contour-legend-entry").data(b,function(a){return a.name});l.enter().append("div").attr("class",function(){return"contour-legend-entry"}),l.append("span").attr("class",function(a,b){return"contour-legend-key series s-"+(b+1)+" "+_.nw.seriesNameToClass(a.name)}),l.append("span").attr("class","series-name").text(d.legend.formatter).call(j),l.exit().remove()}var c={legend:{vAlign:"middle",hAlign:"right",direction:"vertical",formatter:function(a){return a.name}}};b.defaults=c,Contour.export("legend",b)}(),function(){function a(a,d,f){function g(a){return function(b,c){return(a||"")+" s-"+(c+1)+" "+_.nw.seriesNameToClass(b.name)}}function h(){var a=d3.svg.line().x(function(a){return k(a)}).y(function(){return l({x:0,y:f.yAxis.min||0})}),b=d3.svg.line().x(function(a){return k(a)}).y(function(a){return l(a)});f.line.smooth&&b.interpolate("cardinal");var h=e[c],i=d.selectAll("g.series").data(n,function(a){return a.name}),j=i.enter().append("svg:g").attr("class",g("series")).append("path").attr("class","line");if(m){var o="left-to-right"===c?b:a;j.attr("d",function(a){return o(a.data)}).call(_.partial(h.enter,b))}else j.attr("d",function(a){return b(a.data)});j=i.attr("class",g("series")).select(".line"),m?j.call(_.partial(h.update,b)):j.attr("d",function(a){return b(a.data)}),m?i.exit().remove():i.exit().remove()}function i(){var a=d.selectAll(".line-chart-markers").data(n,function(a){return a.name});a.enter().append("g").attr("class",g("line-chart-markers markers")),a.exit().remove();var c=a.selectAll(".dot").data(function(a){return a.data},function(a){return a.x});c.enter().append("circle").attr("class","dot").attr("r",f.line.marker.size).attr("opacity",0),c.exit().remove(),m?c.transition().delay(b).attr("cx",k).attr("cy",l).attr("opacity",1):c.attr("cx",k).attr("cy",l).attr("opacity",1)}function j(){var a=10,b=d.selectAll(".tooltip-trackers").data(n,function(a){return a.name});b.enter().append("g").attr("class",function(a,b){return"tooltip-trackers s-"+(b+1)}),b.exit().remove();var c=b.selectAll(".tooltip-tracker").data(function(a){return a.data},function(a){return a.x});c.enter().append("circle").attr({"class":"tooltip-tracker",r:a,opacity:0}),c.attr({cx:k,cy:l}),c.exit().remove()}this.checkDependencies("cartesian");var k=_.bind(function(a){return this.xScale(a.x)+this.rangeBand/2+.5},this),l=_.bind(function(a){return this.yScale(a.y)+.5},this);f.chart.plotHeight;var m=f.chart.animations&&f.chart.animations.enable;c=f.line.animationDirection||"left-to-right",b=null!=f.chart.animations.duration?f.chart.animations.duration:400;var n=_.map(a,function(a){return _.extend(a,{data:_.filter(a.data,function(b,c){if(0===c&&null!=b.y)return!0;var d=k(a.data[c-1])!==k(b);return null!=b.y&&d})})});return h(),f.line.marker.enable&&i(),f.tooltip&&f.tooltip.enable&&j(),this}var b,c,d={line:{smooth:!1,animationDirection:"left-to-right",marker:{enable:!0,size:3}}},e={"left-to-right":{enter:function(){var a=this;a.each(function(){var a=this.getTotalLength();d3.select(this).attr("stroke-dasharray",a+" "+a).attr("stroke-dashoffset",a).transition().duration(b).ease("linear").attr("stroke-dashoffset",0)})},update:function(a){this.attr("d",function(b){return a(b.data)}),this.each(function(){var a=this.getTotalLength();d3.select(this).attr("stroke-dasharray",a+" "+a).attr("stroke-dashoffset",a).transition().duration(b).ease("linear").attr("stroke-dashoffset",0)})}},"bottom-to-top":{enter:function(a){this.transition().duration(b).attr("d",function(b){return a(b.data)})},update:function(a){this.transition().duration(b).attr("d",function(b){return a(b.data)})}}};a.defaults=d,Contour.export("line",a)}(),Contour.export("nullVis",_.noop),function(){function a(a){return _.isNumber(a.pie.piePadding)?{top:a.pie.piePadding,left:a.pie.piePadding,right:a.pie.piePadding,bottom:a.pie.piePadding}:a.pie.piePadding}function b(a,b,c){return{top:_.nw.clamp(a.top,0,c),bottom:_.nw.clamp(a.bottom,0,c),left:_.nw.clamp(a.left,0,b),right:_.nw.clamp(a.right,0,b)}}function c(c){padding=a(c);var d=c.chart.plotWidth,e=c.chart.plotHeight;return b(padding,d,e)}function d(a,b){return a>0&&1>a?b*a:a}function e(a,b,c){return{top:d(a.top,c)||1,bottom:d(a.bottom,c)||1,left:d(a.left,b)||1,right:d(a.right,b)||1}}function f(a,b,f){function g(a){function b(a){var b=d3.interpolate(this._current,a);return this._current=b(0),function(a){return c(b(a))}}var c=d3.svg.arc().outerRadius(s).innerRadius(t),d=d3.svg.arc().outerRadius(s).innerRadius(t).startAngle(0).endAngle(0),e=a.selectAll("path").data(function(a){return u(a.data)},function(a){return a.data.x});e.enter().append("path").attr("class",x).attr("d",function(a){return d(a)}).each(function(a){this._current={startAngle:a.startAngle,endAngle:a.startAngle}}),i?(e.exit().remove(),e.transition().duration(h).ease("cubic-in").attrTween("d",b)):(e.exit().remove(),e.attr("d",c))}var h=null!=f.chart.animations.duration?f.chart.animations.duration:400,i=f.chart.animations&&f.chart.animations.enable,j=f.chart.plotWidth,k=f.chart.plotHeight,l=c.call(this,f),m=a.length,n=_.all([f.pie.piePadding.left,f.pie.piePadding.right],function(a){return null==a}),o=_.all([f.pie.piePadding.top,f.pie.piePadding.bottom],function(a){return null==a}),p=e(l,j,k),q=Math.min(j,k),r=Math.min((j-p.left-p.right)/m,k-p.top-p.bottom)/2,s=d(_.nw.getValue(f.pie.outerRadius,r,this,r,q),q),t=d(_.nw.getValue(f.pie.innerRadius,0,this,s),s),u=d3.layout.pie().value(function(a){return a.y}).sort(null),v=(j-2*s*(m-1))/2,w=k/2,x=function(a,b){return"series arc"+(f.tooltip.enable?" tooltip-tracker":"")+" s-"+(b+1)+" "+a.data.x},y=function(a,b){var c=2*s,d=n?v:s+p.left,e=o?w:s+p.top;return"translate("+(d+c*b)+","+e+")"},z=b.selectAll("g.pie-group").data(a);z.enter().append("svg:g").attr("class","pie-group").attr("transform",y).call(g),z.exit().remove(),i?z.call(g).transition().duration(h/2).attr("transform",y):z.call(g).attr("transform",y)}var g={pie:{piePadding:{left:null,top:null,right:null,bottom:null},innerRadius:null,outerRadius:null}};f.defaults=g,Contour.export("pie",f)}(),function(){function a(a,b,c){this.checkDependencies("cartesian");var d=null!=c.chart.animations.duration?c.chart.animations.duration:400,e=c.chart.animations&&c.chart.animations.enable,f=c.scatter,g=this.rangeBand/2,d=400,h=_.bind(function(a){return this.xScale(a.x)+g},this),i=_.bind(function(a){return this.yScale(a.y)},this),j=c.chart.plotHeight,k=function(a,b){return a.name+" series s-"+(b+1)},l=b.selectAll(".series").data(a);l.attr("class",k),l.enter().append("svg:g").attr("class",k),l.exit().remove();var m=l.selectAll(".dot").data(function(a){return a.data},function(a){return c.scatter.dataKey?a[c.scatter.dataKey]:a.x});m.enter().append("circle").attr("class","dot tooltip-tracker").attr("r",f.radius).attr("cx",h).attr("cy",j),e?m.transition().duration(d).attr("r",f.radius).attr("cx",h).attr("cy",i):m.attr("r",f.radius).attr("cx",h).attr("cy",i),m.exit().remove()}var b={xAxis:{type:"linear"},scatter:{radius:4}};a.defaults=b,Contour.export("scatter",a)}(),function(){Contour.export("stackTooltip",function(a,b,c){var d=this.yAxis().tickFormat(),e=d3.select(c.stackTooltip.el);e.classed("stack-tooltip",!0);var f=function(b){var f=function(a){return!(a&&null!=a.y)},g=function(a,d){var e=_.isNumber(b.x)?b.x:c.xAxis.categories.indexOf(b.x);return f(a.data[e])?null:{seriesName:a.name,value:a.data[e].y,cssClass:"s-"+(d+1)}},h=_.filter(_.map(a,g),function(a){return a}),i=_.map(h,function(a){return''+a.seriesName+": "+d(a.value)+""}).join(" / ");e.html(i).style({display:"block"})},g=function(){e.html("")};this.svg.selectAll(".tooltip-tracker").on("mouseover.tooltip",f.bind(this)).on("mouseout.tooltip",g.bind(this))})}(),function(){function a(a,b,c){function d(b){var c=[];return _.each(a,function(a){var d=a.name;_.each(a.data,function(a){a.x===b.x&&b.y===a.y&&c.push({x:a.x,y:a.y,series:d})})}),c}var e=function(){clearTimeout(this.tooltip.hideTimer)},f=function(a,b){this.options.tooltip.animate?this.tooltipElement.transition().duration(b).style("opacity",a):this.tooltipElement.style("opacity",a)},g=function(a){var b,d=function(){return"path"===d3.event.target.tagName?_.nw.getCentroid(d3.event.target):d3.mouse(this.container.node())},e=this.xScale,f=this.yScale,g=this.options.chart.plotLeft,h=this.options.chart.plotWidth,i=this.options.chart.plotTop,j=this.options.chart.plotHeight,k=this.options.tooltip.distance,l=parseFloat(this.tooltipElement.node().offsetWidth),m=parseFloat(this.tooltipElement.node().offsetHeight),n=e?e(a.x):d.call(this)[0],o=f?f(a.y):d.call(this)[1],p=function(a){return a.xg+h&&(a.x-=a.x+l-(g+h),a.y=i+o-(m+k),b=!0),a.y=a.y&&o<=a.y+m&&(a.y=o+i+k)),a.y+m>i+j&&(a.y=Math.max(i,i+j-(m+k))),a},q={vertical:function(){var a={x:g+n-(k+l),y:i+o-(k+m)};return p(a)},horizontal:function(){var a={x:g+o-(k+l),y:i+n-(k+m)};return p(a)}};return c.chart.rotatedFrame?q.horizontal():q.vertical()},h=function(a){k.call(this,a)},i=function(){f.call(this,0,this.options.tooltip.hideTime)},j=function(a,b){function c(){var a=Array.prototype.slice.call(arguments),b=a[0],c=a.slice(1),d=_.map(b,function(a){return a.apply(this,c)}).concat([_.noop]);return _.first(_.select(d))}var d=this.options.tooltip,e=[function(a){return d.formatter?_.partial(d.formatter,a,b):null},function(a){return a.hasOwnProperty("x")?_.partial(function(a){return a.series+"
"+a.x+"
"+a.y},a):null},function(a){return a.data&&a.data.hasOwnProperty("x")?_.partial(function(a){return a.series+"
"+a.x+"
"+a.y},a.data):null},function(a){return a.hasOwnProperty("value")?_.partial(function(a){return a.value},a):null},function(){return function(){return"NA"}}];return c(e,a)()},k=function(a){e.call(this),dataPoints=d(a),this.tooltipElement.select(".text").html(j.call(this,dataPoints[0]||a,dataPoints));var b=g.call(this,a);this.tooltipElement.style("top",b.y+"px").style("left",b.x+"px"),f.call(this,this.options.tooltip.opacity,this.options.tooltip.showTime)};this.tooltipElement=this.container.style("position","relative").selectAll(".nw-tooltip").data([1]),this.tooltipElement.enter().append("div").attr("class","nw-tooltip").style("opacity",0).append("div").attr("class","text"),this.svg.selectAll(".tooltip-tracker").on("mouseover.tooltip",h.bind(this)).on("mouseout.tooltip",i.bind(this))}var b={tooltip:{enable:!0,animate:!0,opacity:.85,showTime:300,hideTime:500,distance:5}};a.defaults=b,Contour.export("tooltip",a)}(),function(){function a(a,b,c){this.checkDependencies("cartesian");var d=null!=c.chart.animations.duration?c.chart.animations.duration:400,e=c.chart.animations&&c.chart.animations.enable,f=_.bind(function(a){return this.xScale(a)+this.rangeBand/2},this),g=_.bind(function(a){return this.yScale(a)},this),h=_.nw.linearRegression(_.flatten(_.pluck(a,"data"))),i=d3.extent(this.xScale.domain()),j=function(a){return h.intercept+h.slope*a},k=b.selectAll(".trend-line").data([1]);k.enter().append("line").attr("class","trend-line").attr("x1",f(i[0])).attr("y1",g(j(i[0]))).attr("x2",f(i[0])).attr("y2",g(j(i[0]))),k.exit().remove(),e?k.transition().duration(d).attr("x1",f(i[0])).attr("y1",g(j(i[0]))).attr("x2",f(i[1])).attr("y2",g(j(i[1]))):k.attr("x1",f(i[0])).attr("y1",g(j(i[0]))).attr("x2",f(i[1])).attr("y2",g(j(i[1])))}a.defaults={},Contour.export("trendLine",a)}(),"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=Contour:(b.Contour=Contour,"function"==typeof define&&define.amd&&define("contour",[],function(){return Contour}))}();
+/*! Contour - v0.9.89 - 2014-06-16 */
+!function(a){var b=this;if("object"==typeof module&&module&&"object"==typeof module.exports&&"function"==typeof require&&(b.d3=require("d3"),b._=require("lodash")),!d3)throw new Error("You need to include d3.js before Contour. Go to http://d3js.org/");if(!_||!_.merge)throw new Error("You need to include lodash.js before Contour. Go to http://lodash.com/");!function(){var b={getValue:function(a,b,c,d){return d=Array.prototype.slice.call(arguments,3),a?"function"==typeof a?a.apply(c,d):a:b},seriesNameToClass:function(a){return a||""}},c={warn:function(a){console&&console.log&&console.log(a)}},d={firstAndLast:function(a){return[a[0],a[a.length-1]]},roundToNearest:function(a,b){return Math.ceil(a/b)*b},clamp:function(a,b,c){return a>c?c:b>a?b:a},clampLeft:function(a,b){return b>a?b:a},clampRight:function(a,b){return a>b?b:a},degToRad:function(a){return a*Math.PI/180},radToDeg:function(a){return 180*a/Math.PI},linearRegression:function(a){for(var b={},c=a.length,d=0,e=0,f=0,g=0,h=0,i=0;c>i;i++)d+=a[i].x,e+=a[i].y,f+=a[i].x*a[i].y,g+=a[i].x*a[i].x,h+=a[i].y*a[i].y;return b.slope=(c*f-d*e)/(c*g-d*d),b.intercept=(e-b.slope*d)/c,b.r2=Math.pow((c*f-d*e)/Math.sqrt((c*g-d*d)*(c*h-e*e)),2),b},niceRound:function(a){return Math.ceil(a+.1*a)}},e={textBounds:function(a,b){var c=document.getElementsByTagName("body")[0],d=document.createElement("span"),e=document.createElement("span");d.className="contour-chart",e.style.position="absolute",e.style.width="auto",e.style.height="auto",e.style.visibility="hidden",e.style.lineHeight="100%",e.style.whiteSpace="nowrap",e.innerHTML=a,e.className=b.replace(/\./g," "),d.appendChild(e),c.appendChild(d);var f={width:e.clientWidth,height:e.clientHeight};return d.removeChild(e),c.removeChild(d),f}},f={dateDiff:function(a,b){var c=a.getTime()-b.getTime();return c/864e5}},g={merge:function(a,b){return"number"==typeof a&&(a=[a]),"number"==typeof b&&(b=[b]),a&&a.length?b&&b.length?[].concat(a,b).sort(function(a,b){return a-b}):a:b},normalizeSeries:function(a,b){function c(a,b){return a.x-b.x}function d(a,d){var f={name:d,data:_.map(a,function(a,c){var d=null!=a&&a.hasOwnProperty("x"),f=function(a){return null!=a?a:null};return d?_.extend(a,{x:a.x,y:f(a.y)}):{x:e?b[c]+"":c,y:f(a)}})};return e||f.data.sort(c),f}var e=!(!b||!_.isArray(b)),f=_.isArray(a)&&_.all(a,function(a){return a.hasOwnProperty("x")&&a.hasOwnProperty("y")}),g=_.isArray(a)&&_.isObject(a[0])&&a[0].hasOwnProperty("data")&&a[0].hasOwnProperty("name")&&_.all(a[0].data,function(a){return a.hasOwnProperty("x")&&a.hasOwnProperty("y")});return g?a:f?(e||a.sort(c),[{name:"series 1",data:a}]):_.isArray(a)?_.isObject(a[0])&&a[0].hasOwnProperty("data")||_.isArray(a[0])?_.map(a,function(a,b){return d(a.data?a.data:a,a.name?a.name:"series "+(b+1))}):[d(a,"series 1")]:a},uniq:function(a){for(var b={},c=[],d=a.length,e=0;d>e;e++){var f=a[e],g=f+"";b.hasOwnProperty(g)||(b[g]=!0,c.push(f))}return c},maxTickValues:function(a,b){var c=b.length,d=[];if(a>=c)return b.slice();for(var e=Math.ceil(c/a),f=0;c>f;)d.push(b[f]),f+=e;return d},isSupportedDataFormat:function(a){return _.isArray(a)&&_.isObject(a[0])&&a[0].hasOwnProperty("data")||_.isArray(a[0])}},h={extractScaleDomain:function(a,b,c){var d=_.max(a),e=_.min(a);return null==b&&null==c?[e,d]:null==b?[Math.min(e,c),c]:null==c?[b,Math.max(b,d)]:[b,c]}},i={selectDom:function(a){return d3.select(a)[0][0]},getStyle:function(b,c){if(!b)return a;var d="string"==typeof b?this.selectDom(b):b,e=d.offsetParent?d.ownerDocument.defaultView.getComputedStyle(d,null):d.style;return c?e[c]:e},getCentroid:function(a){var b=a.offsetParent.getBoundingClientRect(),c=a.getBoundingClientRect();return[c.left-b.left+c.width/2,c.top-b.top+c.height/2]}},j={warning:function(a){console&&console.log&&console.log("WARNING: "+a)}};_.nw=_.extend({},_.nw,d,g,e,f,h,j,i,b,c)}(),function(){function b(a){return this.init(a),this}var c,d=this,e={chart:{animations:{enable:!0,duration:400},defaultWidth:400,defaultAspect:1/1.61803398875,width:a,height:a,margin:{top:0,right:0,bottom:0,left:0},padding:{top:null,right:null,bottom:null,left:null},internalPadding:{bottom:0,left:0},rotatedFrame:!1,plotWidth:a,plotHeight:a,plotTop:a,plotLeft:a},xAxis:{},yAxis:{},tooltip:{}};b.export=function(d,e){function f(a){if(!a||!a.length)return[];a[0].data&&_.each(a,f);var b=_.isObject(a[0])&&_.isDate(a[0].x),c=function(a,b){return a.x-b.x};return b&&a.sort(c),a}if("function"!=typeof e)throw new Error("Invalid render function for "+d+" visualization");b.prototype[d]=function(g,h){var i,j=this.options?this.options.xAxis?this.options.xAxis.categories:a:a,k=_.extend({},this.options[d],h);return g=g||c||[],f(g),i=new b.VisualizationContainer(_.nw.normalizeSeries(g,j),k,d,e,this),this._visualizations.push(i),c=g,this}},b.expose=function(a,c){var d=function(){var b="function"==typeof c?new c:c;return _.extend(this,_.omit(b,"init")),b.init&&b.init.call(this,this.options),this._exposed.push(a),this};return b.prototype[a]=d,this},b.prototype=_.extend(b.prototype,{_visualizations:a,_extraOptions:a,_exposed:a,init:function(a){return this.options=a||{},this._extraOptions=[],this._visualizations=[],this._exposed=[],this},calculateWidth:function(){var a=_.nw.getStyle(this.options.el,"width");return this.options.el?parseInt(a,10)||this.options.chart.defaultWidth:this.options.chart.defaultWidth},calculateHeight:function(){var b=_.nw.getStyle(this.options.el,"height"),c=this.options.el?parseInt(b,10):a,d=this.options.chart.width,e=this.options.chart.aspect||this.options.chart.defaultAspect;return c&&c>1?c:Math.round(d*e)},calcMetrics:function(){var a=this.options;this.adjustPadding(),this.adjustTitlePadding(),a.chart.width=a.chart.width||this.calculateWidth(),a.chart.height=a.chart.height||this.calculateHeight(),this.options=_.merge(a,{chart:{plotWidth:a.chart.width-a.chart.margin.left-a.chart.margin.right-a.chart.internalPadding.left-a.chart.padding.right,plotHeight:a.chart.height-a.chart.margin.top-a.chart.margin.bottom-a.chart.padding.top-a.chart.internalPadding.bottom,plotLeft:a.chart.margin.left+a.chart.internalPadding.left,plotTop:a.chart.margin.top+a.chart.padding.top}})},adjustPadding:function(){return this},adjustTitlePadding:function(){return this},composeOptions:function(){var a=_.merge({},e),b=function(b){_.merge(a,b)},c=function(b){_.merge(a,b.renderer.defaults)};_.each(this._extraOptions,b),_.each(this._visualizations,c),this.options=_.merge({},a,this.options)},baseRender:function(){return this.plotArea(),this},render:function(){return this.composeOptions(),this.calcMetrics(),this.baseRender(),this.renderVisualizations(),this},update:function(){return this.calcMetrics(),this},plotArea:function(){var a=this.options.chart;return this.container=d3.select(this.options.el),this.container.attr("style","-webkit-backface-visibility: hidden; position: relative"),this.svg||(this.svg=this.container.append("svg").attr("viewBox","0 0 "+a.width+" "+a.height).attr("preserveAspectRatio","xMinYMin").attr("class","contour-chart").attr("height",a.height).append("g").attr("transform","translate("+a.margin.left+","+a.margin.top+")")),this},createVisualizationLayer:function(a,b){return this.svg.append("g").attr("vis-id",b).attr("vis-type",a.type).attr("transform","translate("+this.options.chart.internalPadding.left+","+(this.options.chart.padding.top||0)+")")},renderVisualizations:function(){return _.each(this._visualizations,function(a,b){var c=b+1,d=a.layer||this.createVisualizationLayer(a,c),e=_.merge({},this.options,a.options);a.layer=d,a.parent=this,a.render(d,e,this)},this),this},checkDependencies:function(a){a=_.isArray(a)?a:[a];var b=this,c=[];if(_.each(a,function(a){-1===b._exposed.indexOf(a)&&c.push(a)}),c.length)throw new Error("ERROR: Missing depeendencies in the Contour instance (ej. new Contour({}).cartesian())\n The missing dependencies are: ["+c.join(", ")+"]\nGo to http://forio.com/contour/documentation.html#key_concepts for more information")},setData:function(a){return _.invoke(this._visualizations,"setData",a),this},select:function(a){return this._visualizations[a]},data:function(){}}),d.Contour=b}(),function(){function b(a,b){var c=b.chart.rotatedFrame?b.chart.plotWidth:b.chart.plotHeight,d=b.chart.rotatedFrame?[0,c]:[c,0];return a.range(d)}var c=function(a,b){this.data=a,this.options=b};c.prototype={axis:function(){var a=this.options.yAxis,b=this._scale.domain(),c=a.tickValues,d=this.numTicks(b,a.min,a.max),e=a.labels.formatter||d3.format(a.labels.format);return d3.svg.axis().scale(this._scale).tickFormat(e).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).ticks(d).tickValues(c)},scale:function(a){return this._scale||(this._scale=d3.scale.linear(),this.setDomain(a),b(this._scale,this.options)),this._scale},setDomain:function(a){return this._scale.domain(a),this._niceTheScale(),this._scale},update:function(a,b){this.data=b,this.setDomain(a)},numTicks:function(){return null!=this.options.yAxis.ticks?this.options.yAxis.ticks:a},_niceTheScale:function(){this.options.yAxis.nicing&&this._scale.nice()}},_.extend(_.nw,{YAxis:c})}(),function(){var b={chart:{gridlines:"none",padding:{top:6,right:5,bottom:a,left:a}},xAxis:{type:null,categories:a,innerTickSize:6,outerTickSize:0,tickPadding:6,maxTicks:a,ticks:a,tickValues:a,title:a,titlePadding:4,innerRangePadding:.1,outerRangePadding:.1,firstAndLast:!1,orient:"bottom",labels:{format:a,formatter:a},linearDomain:!1},yAxis:{min:a,max:a,smartAxis:!1,innerTickSize:6,outerTickSize:6,tickPadding:4,tickValues:a,ticks:a,title:a,titlePadding:4,nicing:!0,orient:"left",labels:{verticalAlign:"middle",format:"s",formatter:a}}},c=function(){return{dataSrc:[],init:function(c){var d={chart:{rotatedFrame:!1,internalPadding:{bottom:a,left:a}}};this.options=c||{},_.merge(this.options,d);var e={};return this.options.xAxis&&this.options.xAxis.firstAndLast||(e={chart:{padding:{right:15}}}),this._extraOptions.push(_.merge({},b,e)),this},xDomain:[],yDomain:[],_getYScaledDomain:function(){var b=this.yDomain&&this.yDomain[0]>0?0:a;return _.nw.extractScaleDomain(this.yDomain,this.options.yAxis.min||b,this.options.yAxis.max)},adjustPadding:function(){var a=this.options.xAxis,b=this.options.yAxis,c=function(a){return Math.max(a.outerTickSize||0,a.innerTickSize||0)};if(null==this.options.chart.padding.bottom)if(0!==a.ticks){var d=this.xDomain,e=d.join("
"),f=_.nw.textBounds(e,".x.axis"),g=_.nw.textBounds("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890",".x.axis"),h=g.height,i=a.labels&&a.labels.rotation?a.labels.rotation%360:0,j=0===i?g.height:Math.ceil(Math.abs(f.width*Math.sin(_.nw.degToRad(i)))+h/5);this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||c(this.options.xAxis)+(this.options.xAxis.tickPadding||0)+j}else this.options.chart.internalPadding.bottom=c(this.options.xAxis)+(this.options.xAxis.tickPadding||0);else this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||0;if(null==this.options.chart.padding.left){var k=this._getYScaledDomain(),l=d3.scale.linear().domain(k),m=l.ticks(b.ticks),n=b.labels.formatter||d3.format(b.labels.format||",.0f"),o=_.map(m,n).join("
"),p=_.nw.textBounds(o,".y.axis");this.options.chart.internalPadding.left=this.options.chart.padding.left||c(this.options.yAxis)+(this.options.yAxis.tickPadding||0)+p.width}else this.options.chart.internalPadding.left=this.options.chart.padding.left},adjustTitlePadding:function(){var a;(this.options.xAxis.title||this.options.yAxis.title)&&(this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),this.options.chart.internalPadding.bottom+=a.height+this.options.xAxis.titlePadding),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),this.options.chart.internalPadding.left+=a.height+this.options.yAxis.titlePadding))},computeXScale:function(){if(!this.xDomain)throw new Error("You are trying to render without setting data (xDomain).");this.xScale?(this.xScaleGenerator.update(this.xDomain,this.dataSrc),this.rangeBand=this.xScaleGenerator.rangeBand()):(this.xScaleGenerator=_.nw.xScaleFactory(this.dataSrc,this.options),this.xScale=this.xScaleGenerator.scale(this.xDomain),this.rangeBand=this.xScaleGenerator.rangeBand())},computeYScale:function(){if(!this.yDomain)throw new Error("You are trying to render without setting data (yDomain).");var a=this._getYScaledDomain();this.yScale?this.yScaleGenerator.update(a,this.dataSrc):(this.yScaleGenerator=_.nw.yScaleFactory(this.dataSrc,this.options,this.yMin,this.yMax),this.yScale=this.yScaleGenerator.scale(a))},xScale:a,yScale:a,setYDomain:function(a){this.yScaleGenerator.setDomain(a)},redrawYAxis:function(){this.svg.select(".y.axis").call(this.yAxis()),this.renderGridlines()},_animationDuration:function(){var a=this.options.chart.animations;return a&&a.enable?null!=a.duration?a.duration:400:0},computeScales:function(){return this.computeXScale(),this.computeYScale(),this},_xAxis:a,xAxis:function(){return this._xAxis||(this._xAxis=this.xScaleGenerator.axis().orient(this.options.xAxis.orient)),this._xAxis},_yAxis:a,yAxis:function(){return this._yAxis||(this._yAxis=this.yScaleGenerator.axis().orient(this.options.yAxis.orient)),this._yAxis},renderXAxis:function(){var a=this.xAxis(),b=this.options.chart.plotHeight+this.options.chart.padding.top;return this._xAxisGroup=this.svg.selectAll(".x.axis").data([1]),this._xAxisGroup.enter().append("g").attr("transform","translate("+this.options.chart.internalPadding.left+","+b+")").attr("class","x axis"),this._xAxisGroup.transition().duration(this._animationDuration()).call(a),this.xScaleGenerator.postProcessAxis(this._xAxisGroup),this},renderYAxis:function(){var a=this.options.yAxis,b={bottom:".8em",middle:".35em",top:"0"},c=this.options.chart.internalPadding.left,d=this.options.chart.padding.top;return this._yAxisGroup=this.svg.selectAll(".y.axis").data([1]),this._yAxisGroup.enter().append("g").attr("transform","translate("+c+","+d+")").attr("class","y axis"),this._yAxisGroup.transition().duration(this._animationDuration()).call(this.yAxis()).selectAll(".tick text").attr("dy",b[a.labels.verticalAlign]),this},renderAxisLabels:function(){.25*this.titleOneEm;var a,b,c,d=40/46.609;return this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),c=this.options.chart.internalPadding.bottom,b=0,el=this._xAxisGroup.selectAll(".x.axis-title").data([1]),el.enter().append("text").attr("class","x axis-title").attr("x",b).attr("y",c).attr("dx",(this.options.chart.plotWidth-a.width)/2).attr("dy",-2).text(this.options.xAxis.title)),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),c=-this.options.chart.internalPadding.left+a.height*d,b=0,el=this._yAxisGroup.selectAll(".y.axis-title").data([1]),el.enter().append("text").attr("class","y axis-title").attr("transform","rotate(-90)").attr("x",b).attr("y",c).attr("dx",-(this.options.chart.plotHeight+a.width)/2).attr("dy",0).text(this.options.yAxis.title)),this},renderGridlines:function(){function a(a,b){var c=a.tickValues();if(!c){var d=a.ticks()[0];return a.scale().ticks(d).slice(1)}return b&&c.pop(),c.slice(1)}function b(a){return a.tickValues()||(a.scale().ticks?a.scale().ticks().slice(1):a.scale().domain())}var c,d,e=this.options.chart.gridlines,f="horizontal"===e||"both"===e,g="vertical"===e||"both"===e,h=this.xScale,i=this.yScale;if(f){c=a(this.yAxis(),this.options.yAxis.smartAxis);var j=this.options.chart.plotWidth;d=this._yAxisGroup.selectAll(".grid-lines").data([c]),d.enter().append("svg:g").attr("class","grid-lines");var k=d.selectAll(".grid-line").data(function(a){return a});k.transition().duration(this._animationDuration()).attr("x1",0).attr("x2",function(){return j}).attr("y1",i).attr("y2",i),k.enter().append("line").attr("class","grid-line").attr("x1",0).attr("x2",function(){return j}).attr("y1",i).attr("y2",i),k.exit().remove()}if(g){this._xAxisGroup.select("g.grid-lines").remove(),d=this._xAxisGroup.append("svg:g").attr("class","grid-lines"),c=b(this.xAxis());var l=this.rangeBand/2,m=this.options.chart.plotHeight;d.selectAll(".grid-line").data(c).enter().append("line").attr("class","grid-line").attr("x1",function(a){return h(a)+l}).attr("x2",function(a){return h(a)+l}).attr("y1",-m).attr("y2",0)}return this},renderBackground:function(){var a=this.options.chart;this.background=this.background||this.createVisualizationLayer("background",0);var b=this.background.selectAll(".plot-area-background").data([null]);return b.enter().append("rect").attr("class","plot-area-background").attr("x",0).attr("y",0).attr("width",a.plotWidth).attr("height",a.plotHeight),b.exit().remove(),this},render:function(){return this.composeOptions(),this.adjustDomain(),this.calcMetrics(),this.computeScales(),this.baseRender(),this.renderBackground().renderXAxis().renderYAxis().renderGridlines().renderAxisLabels().renderVisualizations(),this},datum:function(a,b){return _.isObject(a)&&_.isArray(a.data)?_.map(a.data,_.bind(this.datum,this)):{y:_.isObject(a)?a.y:a,x:_.isObject(a)?a.x:this.options.xAxis.categories?this.options.xAxis.categories[b]:b}},adjustDomain:function(){var a=this.getExtents();this.yDomain=a.length?a:[0,10],this.xDomain=this.getXDomain(),this.yMin=this.yDomain[0],this.yMax=this.yDomain[this.yDomain.length-1];var b=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)});this.dataSrc=_.flatten(_.map(b,function(a){return _.flatten(_.map(a.data,_.bind(this.datum,this)))},this)),this._yAxis=null,this._xAxis=null},getExtents:function(a){var b=a&&"x"===a?"xExtent":"yExtent",c=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)}),d=_.flatten(_.pluck(c,b));return d.length?d3.extent(d):[]},getXDomain:function(){var a=_.filter(this._visualizations,function(a){return _.nw.isSupportedDataFormat(a.data)}),b=_.nw.uniq(_.flatten(_.pluck(a,"xDomain")));return b}}};Contour.expose("cartesian",c)}(),Contour.version="0.9.89",function(){var a={xScaleFactory:function(a,b){var c="time"===b.xAxis.type||(_.isArray(a)&&a.length>0&&a[0].data?a[0].data[0].x&&_.isDate(a[0].data[0].x):_.isArray(a)&&a.length>0&&a[0].x&&_.isDate(a[0].x));return c&&"ordinal"!==b.xAxis.type?new _.nw.TimeScale(a,b):b.xAxis.categories||"linear"!==b.xAxis.type?new _.nw.OrdinalScale(a,b):new _.nw.LinearScale(a,b)},yScaleFactory:function(a,b,c,d){var e={log:_.nw.LogYAxis,smart:_.nw.SmartYAxis,linear:_.nw.YAxis};if(b.yAxis.type||(b.yAxis.type="linear"),"linear"===b.yAxis.type&&b.yAxis.smartAxis&&(b.yAxis.type="smart"),!e[b.yAxis.type])throw new Error('Unknown axis type: "'+b.yAxis.type+'"');return new e[b.yAxis.type](a,b,c,d)}};_.nw=_.extend({},_.nw,a)}(),function(){function a(a,b){this.options=b,this.data=a,this.init()}a.prototype={init:function(){delete this._scale},scale:function(a){return this._domain=a?this._getAxisDomain(a):this._getAxisDomain(this.data),this._scale?this._scale.domain(this._domain):(this._scale=d3.scale.linear().domain(this._domain),null==this.options.xAxis.min&&null==this.options.xAxis.max&&this._scale.nice(),this._setRange()),this._scale},axis:function(){var a=this.options.xAxis,b=a.labels.formatter||d3.format(a.labels.format||"d"),c=d3.svg.axis().scale(this._scale).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).tickFormat(function(a){return _.isDate(a)?a.getDate():b(a)});return a.firstAndLast?c.tickValues(_.nw.firstAndLast(this._domain)):a.tickValues?c.tickValues(a.tickValues):null!=a.ticks&&c.ticks(a.ticks),c},update:function(a,b){this.data=b,this.scale(a)},rangeBand:function(){return 1},postProcessAxis:function(){return this},_setRange:function(){var a=this.options.chart.rotatedFrame?this.options.chart.plotHeight:this.options.chart.plotWidth,b=this.options.chart.rotatedFrame?[a,0]:[0,a];return this._scale.range(b)},_getAxisDomain:function(a){var b=this.options.xAxis.min,c=this.options.xAxis.max,d=null!=b?this.options.xAxis.min:d3.min(a),e=null!=c?this.options.xAxis.max:d3.max(a);return null!=b&&null!=c&&b>c?d3.extent(a):[d,e]}},_.nw=_.extend({},_.nw,{LinearScale:a})}(),function(){function a(a,b){var c=b.chart.rotatedFrame?b.chart.plotWidth:b.chart.plotHeight,d=b.chart.rotatedFrame?[0,c]:[c,0];return a.range(d)}var b=function(a,b){this.data=a,this.options=b};b.prototype=_.extend({},_.nw.YAxis.prototype,{axis:function(){var a=this.options.yAxis,b=this._scale.domain(),c=Math.ceil(Math.log(b[1])/Math.log(10)),d=a.labels.formatter||d3.format(a.labels.format||",.0f"),e=d3.svg.axis().scale(this._scale).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding);return a.labels.formatter?e.tickFormat(a.labels.formatter):e.ticks(a.ticks||c,d),e},scale:function(b){return this._scale||(b[0]<=.1&&(b[0]=.1),this._scale=d3.scale.log(),this.setDomain(b).clamp(!0),a(this._scale,this.options)),this._scale},update:function(a,b){this.data=b,a[0]<=.1&&(a[0]=.1),this.setDomain(a).clamp(!0)}}),_.extend(_.nw,{LogYAxis:b})}(),function(){function a(a,b){this.options=b,this.data=a,this.init()}a.prototype={init:function(){this.isCategorized=!0,delete this._scale},scale:function(a){return this._scale||(this._scale=new d3.scale.ordinal,this._range()),this.setDomain(a),this._scale},axis:function(){var a=this.options.xAxis,b=a.labels.format?d3.format(a.labels.format):0,c=a.labels.formatter||(this.isCategorized?0:b)||function(a){return _.isDate(a)?a.getDate():a},d=d3.svg.axis().scale(this._scale).innerTickSize(a.innerTickSize).outerTickSize(a.outerTickSize).tickPadding(a.tickPadding).tickFormat(c);return a.firstAndLast?d.tickValues(_.nw.firstAndLast(this._domain)):a.maxTicks?d.tickValues(_.nw.maxTickValues(a.maxTicks,this._domain)):a.tickValues?d.tickValues(a.tickValues):null!=a.ticks?(d.ticks(a.ticks),0===a.ticks&&d.tickValues([])):d.tickValues(a.categories),d},postProcessAxis:function(a){var b=this.options.xAxis;if(b.labels&&null!=b.labels.rotation){var c=b.labels.rotation,d=_.nw.degToRad(c),e=c>0?1:0>c?-1:0,f=.71,g=Math.cos(d),h=Math.sin(d);b.labels.rotation>0;var i=b.labels.rotation<0?"end":b.labels.rotation>0?"start":"middle";a.selectAll(".tick text").style({"text-anchor":i}).attr("transform",function(){var a=d3.select(this).attr("x")||0,c=d3.select(this).attr("y")||0;return"rotate("+b.labels.rotation+" "+a+","+c+")"}).attr("dy",function(){return(g*f).toFixed(4)+"em"}).attr("dx",function(){return-(h*f-.31*e).toFixed(4)+"em"})}},update:function(a,b){this.data=b,this.setDomain(a)},setDomain:function(a){this._domain=a,this._scale.domain(a)},rangeBand:function(){var a=this._scale.rangeBand();return a||_.nw.warn("rangeBand is 0, you may have too many points in in the domain for the size of the chart (ie. chartWidth = "+this.options.chart.plotWidth+"px and "+this._domain.length+" X-axis points (plus paddings) means less than 1 pixel per band and there're no half pixels"),this._scale.rangeBand()},_range:function(){var a=this.options.chart.rotatedFrame?[this.options.chart.plotHeight,0]:[0,this.options.chart.plotWidth];return this.isCategorized?this._scale.rangeRoundBands(a,this.options.xAxis.innerRangePadding,this.options.xAxis.outerRangePadding):this._scale.rangePoints(a)}},_.nw=_.extend({},_.nw,{OrdinalScale:a})}(),function(){function a(a,b,c,d,e){var f=_.nw.merge(a,e);return null==b&&null==c?f:null==b?c>d?_.nw.merge([c],f):[c]:null==c?b>=e?[b]:(f[0]=b,f):_.nw.merge([b,c],e)}var b=function(a,b,c,d){this.data=a,this.options=b,this.yMax=d,this.yMin=c};b.prototype=_.extend({},_.nw.YAxis.prototype,{axis:function(){var b=this.options.yAxis,c=this._scale.domain(),d=a(c,b.min,b.max,this.yMin,this.yMax),e=this.numTicks(),f=_.nw.YAxis.prototype.axis.call(this);return f.ticks(e).tickValues(d)},numTicks:function(){return 3},setDomain:function(a){var b=d3.extent(a);this.yMin=b[0],this.yMax=b[1],this._scale.domain(a),this._niceTheScale()},_niceTheScale:function(){var a=this._scale.domain(),b=[this.options.yAxis.min||a[0],this.options.yAxis.max||_.nw.niceRound(a[1])];this._scale.domain(b)}}),_.extend(_.nw,{SmartYAxis:b})}(),function(){function a(a,b){if(!a||!b)return 0;var c=a.getTime()-b.getTime();return c/864e5}function b(a,b){this.options=b,this.data=a,this.init()}b.prototype={init:function(){delete this._scale},scale:function(a){return this._scale||(this._scale=new d3.time.scale,this.setDomain(a),this.range()),this._scale},axis:function(){var a=this.options.xAxis,b=this.getOptimalTickFormat(),c=d3.svg.axis().scale(this._scale).tickFormat(b).tickSize(a.innerTickSize,a.outerTickSize).tickPadding(a.tickPadding).tickValues(this._domain);return null!=this.options.xAxis.maxTicks&&this.options.xAxis.maxTicksb?d3.time.format("%H:%M"):365>b?d3.time.format("%d %b"):d3.time.format("%Y")},range:function(){var a=this._getAxisRange(this._domain);return this._scale.rangeRound(a,.1)},_getAxisDomain:function(a){return this.options.xAxis.linearDomain?a:d3.extent(a)},_getAxisRange:function(a){var b=this.options.chart.rotatedFrame?this.options.chart.plotHeight:this.options.chart.plotWidth;return this.options.xAxis.linearDomain?_.range(0,b,b/(a.length-1)).concat([b]):[0,b]}},_.nw=_.extend({},_.nw,{TimeScale:b})}(),function(){var a={chart:{rotatedFrame:!0},xAxis:{orient:"left"},yAxis:{orient:"bottom"}},b={init:function(){_.merge(this.options,a)},adjustPadding:function(){var a=this.options.xAxis.categories||_.pluck(this.dataSrc,"x"),b=a.join("
"),c=_.nw.textBounds(b,".x.axis"),d=_.nw.textBounds("ABC",".y.axis"),e=function(a){return Math.max(a.outerTickSize,a.innerTickSize)};this.options.chart.internalPadding.left=this.options.chart.padding.left||e(this.options.xAxis)+this.options.xAxis.tickPadding+c.width,this.options.chart.internalPadding.bottom=this.options.chart.padding.bottom||e(this.options.yAxis)+this.options.yAxis.tickPadding+d.height},adjustTitlePadding:function(){var a;(this.options.xAxis.title||this.options.yAxis.title)&&(this.options.xAxis.title&&(a=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),this.options.chart.internalPadding.left+=a.height+this.options.xAxis.titlePadding),this.options.yAxis.title&&(a=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),this.options.chart.internalPadding.bottom+=a.height+this.options.yAxis.titlePadding))},renderYAxis:function(){var a=this.yAxis(),b=this.options.chart.internalPadding.left,c=this.options.chart.padding.top+this.options.chart.plotHeight;return this._yAxisGroup=this.svg.selectAll(".y.axis").data([1]),this._yAxisGroup.enter().append("g").attr("class","y axis").attr("transform","translate("+b+","+c+")"),this._yAxisGroup.exit().remove(),this._yAxisGroup.transition().duration(this._animationDuration()).attr("transform","translate("+b+","+c+")").call(a),this},renderXAxis:function(){var a=this.options.chart.internalPadding.left,b=this.options.chart.padding.top,c=this.xAxis();return this._xAxisGroup=this.svg.selectAll(".x.axis").data([1]),this._xAxisGroup.enter().append("g").attr("class","x axis").attr("transform","translate("+a+","+b+")"),this._xAxisGroup.exit().remove(),this._xAxisGroup.transition().duration(this._animationDuration()).attr("transform","translate("+a+","+b+")").call(c),this.xScaleGenerator.postProcessAxis(this._xAxisGroup),this},renderAxisLabels:function(){var a,b,c,d,e,f,g,h=.25*this.titleOneEm,i=40/46.609;return this.options.xAxis.title&&(b=_.nw.textBounds(this.options.xAxis.title,".x.axis-title"),f=this.options.chart.rotatedFrame?-b.height:this.options.chart.plotWidth,g=this.options.chart.rotatedFrame?-this.options.chart.internalPadding.left:this.options.chart.internalPadding.bottom-h,d=this.options.chart.rotatedFrame?"-90":"0",a=this._xAxisGroup.selectAll(".x.axis-title").data([null]),a.enter().append("text").attr("class","x axis-title"),a.attr("x",0).attr("y",g).attr("transform",["rotate(",d,")"].join("")).attr("dy",b.height*i).attr("dx",-(this.options.chart.plotHeight+b.width)/2).text(this.options.xAxis.title),a.exit().remove()),this.options.yAxis.title&&(b=_.nw.textBounds(this.options.yAxis.title,".y.axis-title"),e=Math.max(this.options.yAxis.innerTickSize,this.options.yAxis.outerTickSize),c=this.options.chart.rotatedFrame?"end":"middle",f=this.options.chart.rotatedFrame?this.options.chart.plotWidth:0,g=this.options.chart.rotatedFrame?this.options.chart.internalPadding.bottom:-this.options.chart.internalPadding.left+this.titleOneEm-h,d=this.options.chart.rotatedFrame?"0":"-90",a=this._yAxisGroup.selectAll(".y.axis-title").data([null]),a.enter().append("text").attr("class","y axis-title"),a.attr("y",g).attr("x",f).attr("dx",-(this.options.chart.plotWidth+b.width)/2).attr("dy",-4).attr("transform",["rotate(",d,")"].join("")).text(this.options.yAxis.title),a.exit().remove()),this}};Contour.expose("horizontal",b)}(),function(){function a(a,b,c,d,e){this.type=c,this.renderer=d,this.ctx=e,this.init(a,b)}var b=function(a,b){var c=[],d=[];return _.each(a,function(a){if(a.data.length){var e=_.pluck(a.data,b);c.push(d3.max(e)),d.push(d3.min(e))}}),d.length&&c.length?[_.min(d),_.max(c)]:[]},c=function(a){for(var b=_.pluck(a,"data"),c=_.max(_.map(b,function(a){return a.length})),d=[],e=0;c>e;e++)_.each(b,function(a){d[e]=a[e]?(d[e]||0)+a[e].y:d[e]||0});return[_.min(d),_.max(d)]},d=_.partialRight(b,"x"),e=_.partialRight(b,"y");a.prototype={init:function(a,b){this.setOptions(b),this.setData(a)},render:function(a,b){return this.renderer.call(this.ctx,this.data,a,b),this.ctx},setData:function(a){return this.data=_.nw.normalizeSeries(a),this._updateDomain(),this.ctx},setOptions:function(a){var b={};return b[this.type]=a||{},this.options={},this.options=_.merge({},this.renderer.defaults||{},b),this.ctx},_updateDomain:function(){if(!this.options[this.type])throw new Error("Set the options before calling setData or _updateDomain");_.nw.isSupportedDataFormat(this.data)&&(this.xDomain=_.flatten(_.map(this.data,function(a){return _.pluck(a.data,"x")})),this.xExtent=d(this.data,"x"),this.yExtent=this.options[this.type].stacked?c(this.data):e(this.data))}},Contour.VisualizationContainer=a}(),function(){function b(a,b,c){function d(){var d=b.selectAll("g.series").data(k(a));d.enter().append("svg:g").attr("class",j).append("path").datum(function(a){return a.data}).attr("class","area").attr("d",l),d.exit().remove(),c.chart.animations&&c.chart.animations.enable?d.select(".area").datum(function(a){return a.data}).transition().duration(c.chart.animations.duration||f).attr("d",n):d.select(".area").datum(function(a){return a.data}).attr("d",n),c.tooltip.enable&&e.call(this,d)}function e(a){var b=10;a.append("g").attr("class","tooltip-trackers").selectAll("tooltip-tracker").data(function(a){return a.data}).enter().append("circle").attr("class","tooltip-tracker").attr("opacity",0).attr("r",b).attr("cx",function(a){return g(a.x)}).attr("cy",function(a){return h((c.area.stacked?a.y0:0)+a.y)})}this.checkDependencies("cartesian");var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=_.bind(function(a){return this.xScale(a)+this.rangeBand/2+.5},this),h=_.bind(function(a){return this.yScale(a)+.5},this),i=c.chart.plotHeight,j=function(a,b){return"series s-"+(b+1)+" "+a.name},k=d3.layout.stack().values(function(a){return a.data}),l=d3.svg.area().x(function(a){return g(a.x)}).y0(function(){return i}).y1(function(){return i
+}),m=null!=c.area.areaBase?c.area.areaBase:c.yAxis.min,n=d3.svg.area().x(function(a){return g(a.x)}).y0(function(a){return c.area.stacked?h(a.y0||m||0):h(0)}).y1(function(a){return h((c.area.stacked?a.y0:0)+a.y)});c.area.smooth&&(n.interpolate("cardinal"),l.interpolate("cardinal")),d()}var c={xAxis:{type:"linear"},area:{stacked:!0,areaBase:a}};b.defaults=c,Contour.export("area",b)}(),function(){function a(a,b,c){function d(a,b){return a.attr("y",function(a){return h(a.x)}).attr("height",j),b?a.attr("x",function(){return i(0)}).attr("width",function(){return 0}):a.attr("x",function(a){return a.y>=0?i(a.y0||0):i(a.y+a.y0)}).attr("width",function(a){return a.y>=0?i(a.y)-i(0):i(0)-i(a.y)})}function e(b,d){var e=a.length,f=function(){return j/e-c.bar.groupPadding+.5},g=function(a,b){return j/e*b+.5};return b.attr("y",function(a,b,c){return h(a.x)+g(a,c)}).attr("x",i(0)).attr("height",f),d?b.attr("width",function(){return.5}):b.attr("width",function(a){return a.y>=0?i(a.y)-i(0):i(0)-i(a.y)}).attr("x",function(a){return a.y<0?i(a.y):i(0)})}this.checkDependencies(["cartesian","horizontal"]);var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=this,h=function(a){return g.xScale(a)-.5},i=function(a){return g.yScale(a)+.5},j=this.rangeBand,k=d3.layout.stack().values(function(a){return a.data}),l=c.bar.stacked?d:e,m=_.partialRight(l,!0),n=function(a,b){return"series s-"+(b+1)+" "+a.name},o=b.selectAll("g.series").data(k(a));o.enter().append("svg:g").attr("class",n),o.exit().remove();var p=o.selectAll(".bar").data(function(a){return a.data}),q="bar"+(c.tooltip.enable?" tooltip-tracker":"");p.enter().append("rect").attr("class",q).call(m),c.chart.animations&&c.chart.animations.enable?(p.transition().duration(f).call(l),p.exit().transition().duration(f).attr("width",i(0)).remove()):(p.call(l),p.exit().remove())}var b={bar:{stacked:!1,groupPadding:2}};a.defaults=b,Contour.export("bar",a)}(),function(){function a(a,b,c){function d(a,b){var c=k(0);a.attr("x",function(a){return j(a.x)+m}).attr("width",function(){return n}),b?a.attr("y",function(a){return a.y>=0?c:c}).attr("height",function(){return.5}):a.attr("y",function(a){return a.y>=0?k(a.y)+k(a.y0)-c:k(a.y0)}).attr("height",function(a){return a.y>=0?c-k(a.y):k(a.y)-c})}function e(b,c){var d=n/a.length-g.groupPadding+.5,e=function(b,c){return n/a.length*c+.5},f=k(0);b.attr("x",function(a,b,c){return j(a.x)+e(a,c)+m}).attr("width",d),c?b.attr("y",f).attr("height",0):b.attr("y",function(a){return a.y>=0?k(a.y):f}).attr("height",function(a){return a.y>=0?f-k(a.y):k(a.y)-f})}this.checkDependencies("cartesian");var f=null!=c.chart.animations.duration?c.chart.animations.duration:400,g=c.column;c.chart.plotWidth;var h=c.chart.plotHeight,i=this,j=function(a){return Math.round(i.xScale(a))+.5},k=function(a){return Math.round(i.yScale(a))-.5},l=function(a){return a.data},m=_.nw.getValue(g.offset,0,this),n=_.nw.getValue(g.columnWidth,this.rangeBand,this),o=_.partialRight(c.column.stacked?d:e,!0),p=c.column.stacked?d:e,q=_.map(a,function(a){return{name:a.name,data:_.filter(a.data,function(b,c){return 0===c?!0:j(b.x)!==j(a.data[c-1].x)})}}),r=d3.layout.stack().values(function(a){return a.data}),s=b.selectAll("g.series").data(r(q));s.enter().append("g").attr("class",function(a,b){return"series s-"+(b+1)+" "+a.name}),s.exit().remove();var t=s.selectAll(".column").data(l);n/a.length-g.groupPadding-.5;var u="column"+(c.tooltip.enable?" tooltip-tracker":"");t.enter().append("rect").attr("class",u).call(o),c.chart.animations&&c.chart.animations.enable?(t.exit().transition().duration(f).attr("y",h).attr("height",function(){return.5}).remove(),t.transition().duration(f).call(p)):(t.exit().remove(),t.call(p))}var b={column:{stacked:!1,groupPadding:1,columnWidth:function(){return this.rangeBand},offset:function(){return 0}}};a.defaults=b,Contour.export("column",a)}(),function(){Contour.export("coolNarwhal",function(a,b){b.append("path").attr("class","cool").attr("opacity",0).attr("transform","scale(.5) translate(500 150)").attr("d","M-220.02,76.509l-0.78,8.927c-0.956,10.949,1.389,20.422,6.188,30.383c10.203,21.173,63.095,84.05,93.72,115.075c20.145,20.406,19.487,23.018,21.549,40.122c2.487,20.621,24.897,66.462,40.838,71.269 c15.086,4.549,12.91-12.398,13.319-37.83c5.746,2.457,10.917,5.638,20.206,12.697c61.697,46.892,139.734,69.97,206.5,71.733c46.209,1.221,81.432-7.081,142.957-33.694c40.484-17.512,54.271-22.098,65.639-21.504c4.432,0.232,22.678,11.204,41.746,21.563c35.398,19.229,69.457,34.595,75.896,34.239c12.609-1.457-0.701-11.783-8.072-24.217c-7.049-11.892-15.414-29.572-18.844-42.134s-4.723-22.272-8.91-27.091c-2.143-2.463-12.812-6.786-21.189-8.146c-18.045-2.933-22.191-2.922-13.531-8.957c13.076-9.115,17.377-11.039,1.826-29.068c-6.383-7.402-11.336-20.003-13.709-39.542c-1.607-13.237,1.057-23.679-3.869-27.451s-17.271,12.341-20.846,19.334c-2.01,3.937-7.102,19.005-11.312,33.485c-13.795,47.427-29.865,65.742-62.693,71.447c-34.361,5.971-71.623-9.506-116.543-48.404c-13.164-11.399-29.533-25.26-39.254-36.913c-13.428-16.101-15.48-18.138-19.785-20.66c-16.166-9.472-54.98-31.694-103.525-63.815c-24.393-16.141-57.72-36.928-71.453-43.693c-27.236-13.417-68.416-28.952-90.731-46.771c-24.665-19.697-38.108-19.793-67.804-5.479c-21.429,10.328-23.941,15.298-26.52,15.726c-8.216-10.129-22.917-11.198-31.647-20.682c-9.529-10.35-28.027-14.098-37.824-24.957c-10.668-11.826-31.25-16.752-40.886-26.94c-11.339-11.989-29.387-16.096-40.838-26.637c-11.617-10.694-27.159-14.843-37.68-24.045c-10.383-9.082-23.187-12.538-31.408-19.163c-8.193-6.601-16.593-9.444-22.026-11.993c-5.433-2.549-7.398-2.522-7.658-1.927c-0.26,0.594,1.355,2.955,6.054,6.447c4.699,3.491,22.193,18.451,31.645,22.77c10.921,5.104,17.502,15.01,29.671,21.375c13.224,6.918,22.212,18.731,36.229,25.924c15.53,7.971,24.754,21.184,39.657,28.253c16.462,7.808,25.503,21.598,39.958,28.36c14.499,6.78,20.647,20.252,34.429,23.428C-238.033,58.207-227.932,70.443-220.02,76.509L-220.02,76.509z").transition().delay(300).duration(2e3).attr("opacity",1)})}(),function(){function a(a){var b=[];return-1!=["top","middle","bottom"].indexOf(a.legend.vAlign)?b.push(a.legend.vAlign):b.push("top"),-1!=["left","center","right"].indexOf(a.legend.hAlign)?b.push(a.legend.hAlign):b.push("right"),"vertical"===a.legend.direction&&b.push("vertical"),b}function b(b,c,d){var e=this.container.selectAll(".contour-legend").data([null]),f=_.nw.textBounds("series",".contour-legend.contour-legend-entry"),g=b.length,h=(f.height+4)*g+12,i=(d.chart.plotHeight-h)/2,j=function(a){if("center"===d.legend.hAlign&&a.length){var b=a[0].parentNode.clientWidth,c=(d.chart.plotWidth-b)/2+d.chart.internalPadding.left;d3.select(a[0].parentNode).style("left",c+"px")}},k=e.enter().append("div").attr("class",function(){return["contour-legend"].concat(a(d)).join(" ")}).attr("style",function(){var a=[];if("top"===d.legend.vAlign?a.push("top: 0"):"middle"===d.legend.vAlign?a.push("top: "+i+"px"):a.push("bottom: "+(d.chart.internalPadding.bottom+5)+"px"),"left"===d.legend.hAlign)a.push("left: "+d.chart.plotLeft+"px");else if("center"===d.legend.hAlign){var b=_.nw.textBounds(this,".contour-legend");a.push("left: "+((d.chart.plotWidth-b.width)/2+d.chart.internalPadding.left)+"px")}else a.push("right: 10px");return a.join(";")}),l=k.selectAll(".contour-legend-entry").data(b,function(a){return a.name});l.enter().append("div").attr("class",function(){return"contour-legend-entry"}),l.append("span").attr("class",function(a,b){return"contour-legend-key series s-"+(b+1)+" "+_.nw.seriesNameToClass(a.name)}),l.append("span").attr("class","series-name").text(d.legend.formatter).call(j),l.exit().remove()}var c={legend:{vAlign:"middle",hAlign:"right",direction:"vertical",formatter:function(a){return a.name}}};b.defaults=c,Contour.export("legend",b)}(),function(){function a(a,d,f){function g(a){return function(b,c){return(a||"")+" s-"+(c+1)+" "+_.nw.seriesNameToClass(b.name)}}function h(){var a=d3.svg.line().x(function(a){return k(a)}).y(function(){return l({x:0,y:f.yAxis.min||0})}),b=d3.svg.line().x(function(a){return k(a)}).y(function(a){return l(a)});f.line.smooth&&b.interpolate("cardinal");var h=e[c],i=d.selectAll("g.series").data(n,function(a){return a.name}),j=i.enter().append("svg:g").attr("class",g("series")).append("path").attr("class","line");if(m){var o="left-to-right"===c?b:a;j.attr("d",function(a){return o(a.data)}).call(_.partial(h.enter,b))}else j.attr("d",function(a){return b(a.data)});j=i.attr("class",g("series")).select(".line"),m?j.call(_.partial(h.update,b)):j.attr("d",function(a){return b(a.data)}),m?i.exit().remove():i.exit().remove()}function i(){var a=d.selectAll(".line-chart-markers").data(n,function(a){return a.name});a.enter().append("g").attr("class",g("line-chart-markers markers")),a.exit().remove();var c=a.selectAll(".dot").data(function(a){return a.data},function(a){return a.x});c.enter().append("circle").attr("class","dot").attr("r",f.line.marker.size).attr("opacity",0),c.exit().remove(),m?c.transition().delay(b).attr("cx",k).attr("cy",l).attr("opacity",1):c.attr("cx",k).attr("cy",l).attr("opacity",1)}function j(){var a=10,b=d.selectAll(".tooltip-trackers").data(n,function(a){return a.name});b.enter().append("g").attr("class",function(a,b){return"tooltip-trackers s-"+(b+1)}),b.exit().remove();var c=b.selectAll(".tooltip-tracker").data(function(a){return a.data},function(a){return a.x});c.enter().append("circle").attr({"class":"tooltip-tracker",r:a,opacity:0}),c.attr({cx:k,cy:l}),c.exit().remove()}this.checkDependencies("cartesian");var k=_.bind(function(a){return this.xScale(a.x)+this.rangeBand/2+.5},this),l=_.bind(function(a){return this.yScale(a.y)+.5},this);f.chart.plotHeight;var m=f.chart.animations&&f.chart.animations.enable;c=f.line.animationDirection||"left-to-right",b=null!=f.chart.animations.duration?f.chart.animations.duration:400;var n=_.map(a,function(a){return _.extend(a,{data:_.filter(a.data,function(b,c){if(0===c&&null!=b.y)return!0;var d=k(a.data[c-1])!==k(b);return null!=b.y&&d})})});return h(),f.line.marker.enable&&i(),f.tooltip&&f.tooltip.enable&&j(),this}var b,c,d={line:{smooth:!1,animationDirection:"left-to-right",marker:{enable:!0,size:3}}},e={"left-to-right":{enter:function(){var a=this;a.each(function(){var a=this.getTotalLength();d3.select(this).attr("stroke-dasharray",a+" "+a).attr("stroke-dashoffset",a).transition().duration(b).ease("linear").attr("stroke-dashoffset",0)})},update:function(a){this.attr("d",function(b){return a(b.data)}),this.each(function(){var a=this.getTotalLength();d3.select(this).attr("stroke-dasharray",a+" "+a).attr("stroke-dashoffset",a).transition().duration(b).ease("linear").attr("stroke-dashoffset",0)})}},"bottom-to-top":{enter:function(a){this.transition().duration(b).attr("d",function(b){return a(b.data)})},update:function(a){this.transition().duration(b).attr("d",function(b){return a(b.data)})}}};a.defaults=d,Contour.export("line",a)}(),Contour.export("nullVis",_.noop),function(){function a(a){return _.isNumber(a.pie.piePadding)?{top:a.pie.piePadding,left:a.pie.piePadding,right:a.pie.piePadding,bottom:a.pie.piePadding}:a.pie.piePadding}function b(a,b,c){return{top:_.nw.clamp(a.top,0,c),bottom:_.nw.clamp(a.bottom,0,c),left:_.nw.clamp(a.left,0,b),right:_.nw.clamp(a.right,0,b)}}function c(c){padding=a(c);var d=c.chart.plotWidth,e=c.chart.plotHeight;return b(padding,d,e)}function d(a,b){return a>0&&1>a?b*a:a}function e(a,b,c){return{top:d(a.top,c)||1,bottom:d(a.bottom,c)||1,left:d(a.left,b)||1,right:d(a.right,b)||1}}function f(a,b,f){function g(a){function b(a){var b=d3.interpolate(this._current,a);return this._current=b(0),function(a){return c(b(a))}}var c=d3.svg.arc().outerRadius(s).innerRadius(t),d=d3.svg.arc().outerRadius(s).innerRadius(t).startAngle(0).endAngle(0),e=a.selectAll("path").data(function(a){return u(a.data)},function(a){return a.data.x});e.enter().append("path").attr("class",x).attr("d",function(a){return d(a)}).each(function(a){this._current={startAngle:a.startAngle,endAngle:a.startAngle}}),i?(e.exit().remove(),e.transition().duration(h).ease("cubic-in").attrTween("d",b)):(e.exit().remove(),e.attr("d",c))}var h=null!=f.chart.animations.duration?f.chart.animations.duration:400,i=f.chart.animations&&f.chart.animations.enable,j=f.chart.plotWidth,k=f.chart.plotHeight,l=c.call(this,f),m=a.length,n=_.all([f.pie.piePadding.left,f.pie.piePadding.right],function(a){return null==a}),o=_.all([f.pie.piePadding.top,f.pie.piePadding.bottom],function(a){return null==a}),p=e(l,j,k),q=Math.min(j,k),r=Math.min((j-p.left-p.right)/m,k-p.top-p.bottom)/2,s=d(_.nw.getValue(f.pie.outerRadius,r,this,r,q),q),t=d(_.nw.getValue(f.pie.innerRadius,0,this,s),s),u=d3.layout.pie().value(function(a){return a.y}).sort(null),v=(j-2*s*(m-1))/2,w=k/2,x=function(a,b){return"series arc"+(f.tooltip.enable?" tooltip-tracker":"")+" s-"+(b+1)+" "+a.data.x},y=function(a,b){var c=2*s,d=n?v:s+p.left,e=o?w:s+p.top;return"translate("+(d+c*b)+","+e+")"},z=b.selectAll("g.pie-group").data(a);z.enter().append("svg:g").attr("class","pie-group").attr("transform",y).call(g),z.exit().remove(),i?z.call(g).transition().duration(h/2).attr("transform",y):z.call(g).attr("transform",y)}var g={pie:{piePadding:{left:null,top:null,right:null,bottom:null},innerRadius:null,outerRadius:null}};f.defaults=g,Contour.export("pie",f)}(),function(){function a(a,b,c){this.checkDependencies("cartesian");var d=null!=c.chart.animations.duration?c.chart.animations.duration:400,e=c.chart.animations&&c.chart.animations.enable,f=c.scatter,g=this.rangeBand/2,d=400,h=_.bind(function(a){return this.xScale(a.x)+g},this),i=_.bind(function(a){return this.yScale(a.y)},this),j=c.chart.plotHeight,k=function(a,b){return a.name+" series s-"+(b+1)},l=b.selectAll(".series").data(a);l.attr("class",k),l.enter().append("svg:g").attr("class",k),l.exit().remove();var m=l.selectAll(".dot").data(function(a){return a.data},function(a){return c.scatter.dataKey?a[c.scatter.dataKey]:a.x});m.enter().append("circle").attr("class","dot tooltip-tracker").attr("r",f.radius).attr("cx",h).attr("cy",j),e?m.transition().duration(d).attr("r",f.radius).attr("cx",h).attr("cy",i):m.attr("r",f.radius).attr("cx",h).attr("cy",i),m.exit().remove()}var b={xAxis:{type:"linear"},scatter:{radius:4}};a.defaults=b,Contour.export("scatter",a)}(),function(){Contour.export("stackTooltip",function(a,b,c){var d=this.yAxis().tickFormat(),e=d3.select(c.stackTooltip.el);e.classed("stack-tooltip",!0);var f=function(b){var f=function(a){return!(a&&null!=a.y)},g=function(a,d){var e=_.isNumber(b.x)?b.x:c.xAxis.categories.indexOf(b.x);return f(a.data[e])?null:{seriesName:a.name,value:a.data[e].y,cssClass:"s-"+(d+1)}},h=_.filter(_.map(a,g),function(a){return a}),i=_.map(h,function(a){return''+a.seriesName+": "+d(a.value)+""}).join(" / ");e.html(i).style({display:"block"})},g=function(){e.html("")};this.svg.selectAll(".tooltip-tracker").on("mouseover.tooltip",f.bind(this)).on("mouseout.tooltip",g.bind(this))})}(),function(){function a(a,b,c){function d(b){var c=[];return _.each(a,function(a){var d=a.name;_.each(a.data,function(a){a.x===b.x&&b.y===a.y&&c.push({x:a.x,y:a.y,series:d})})}),c}var e=function(){clearTimeout(this.tooltip.hideTimer)},f=function(a,b){this.options.tooltip.animate?this.tooltipElement.transition().duration(b).style("opacity",a):this.tooltipElement.style("opacity",a)},g=function(a){var b,d=function(){return"path"===d3.event.target.tagName?_.nw.getCentroid(d3.event.target):d3.mouse(this.container.node())},e=this.xScale,f=this.yScale,g=this.options.chart.plotLeft,h=this.options.chart.plotWidth,i=this.options.chart.plotTop,j=this.options.chart.plotHeight,k=this.options.tooltip.distance,l=parseFloat(this.tooltipElement.node().offsetWidth),m=parseFloat(this.tooltipElement.node().offsetHeight),n=e?e(a.x):d.call(this)[0],o=f?f(a.y):d.call(this)[1],p=function(a){return a.xg+h&&(a.x-=a.x+l-(g+h),a.y=i+o-(m+k),b=!0),a.y=a.y&&o<=a.y+m&&(a.y=o+i+k)),a.y+m>i+j&&(a.y=Math.max(i,i+j-(m+k))),a},q={vertical:function(){var a={x:g+n-(k+l),y:i+o-(k+m)};return p(a)},horizontal:function(){var a={x:g+o-(k+l),y:i+n-(k+m)};return p(a)}};return c.chart.rotatedFrame?q.horizontal():q.vertical()},h=function(a){k.call(this,a)},i=function(){f.call(this,0,this.options.tooltip.hideTime)},j=function(a,b){function c(){var a=Array.prototype.slice.call(arguments),b=a[0],c=a.slice(1),d=_.map(b,function(a){return a.apply(this,c)}).concat([_.noop]);return _.first(_.select(d))}var d=this.options.tooltip,e=[function(a){return d.formatter?_.partial(d.formatter,a,b):null},function(a){return a.hasOwnProperty("x")?_.partial(function(a){return a.series+"
"+a.x+"
"+a.y},a):null},function(a){return a.data&&a.data.hasOwnProperty("x")?_.partial(function(a){return a.series+"
"+a.x+"
"+a.y},a.data):null},function(a){return a.hasOwnProperty("value")?_.partial(function(a){return a.value},a):null},function(){return function(){return"NA"}}];return c(e,a)()},k=function(a){e.call(this),dataPoints=d(a),this.tooltipElement.select(".text").html(j.call(this,dataPoints[0]||a,dataPoints));var b=g.call(this,a);this.tooltipElement.style("top",b.y+"px").style("left",b.x+"px"),f.call(this,this.options.tooltip.opacity,this.options.tooltip.showTime)};this.tooltipElement=this.container.style("position","relative").selectAll(".nw-tooltip").data([1]),this.tooltipElement.enter().append("div").attr("class","nw-tooltip").style("opacity",0).append("div").attr("class","text"),this.svg.selectAll(".tooltip-tracker").on("mouseover.tooltip",h.bind(this)).on("mouseout.tooltip",i.bind(this))}var b={tooltip:{enable:!0,animate:!0,opacity:.85,showTime:300,hideTime:500,distance:5}};a.defaults=b,Contour.export("tooltip",a)}(),function(){function a(a){var b=_.flatten(_.pluck(a,"data")),c=b.length&&_.isNumber(b[0].x),d=function(a,b){return{x:b,y:a.y}};return c?b:_.map(b,d)}function b(b,c,d){this.checkDependencies("cartesian");var e=a(b),f=null!=d.chart.animations.duration?d.chart.animations.duration:400,g=d.chart.animations&&d.chart.animations.enable,h=_.bind(function(a){return this.xScale(a)+this.rangeBand/2},this),i=_.bind(function(a){return this.yScale(a)},this),j=_.nw.linearRegression(e),k=d3.extent(this.xScale.domain()),l=d3.extent(e,function(a){return a.x}),m=function(a){return j.intercept+j.slope*a},n=c.selectAll(".trend-line").data([1]);n.enter().append("line").attr("class","trend-line").attr("x1",h(k[0])).attr("y1",i(m(l[0]))).attr("x2",h(k[0])).attr("y2",i(m(l[0]))),n.exit().remove(),g&&(n=n.transition().duration(f)),n.attr("x1",h(k[0])).attr("y1",i(m(l[0]))).attr("x2",h(k[1])).attr("y2",i(m(l[1])))}b.defaults={},Contour.export("trendLine",b)}(),"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=Contour:(b.Contour=Contour,"function"==typeof define&&define.amd&&define("contour",[],function(){return Contour}))}();
//# sourceMappingURL=dist/contour.min.map
\ No newline at end of file
diff --git a/dist/contour.min.map b/dist/contour.min.map
index 0f079904..adcdedc9 100644
--- a/dist/contour.min.map
+++ b/dist/contour.min.map
@@ -1 +1 @@
-{"version":3,"file":"dist/contour.min.js","sources":["dist/contour.js"],"names":["undefined","root","this","module","exports","require","d3","_","Error","merge","generalHelpers","getValue","src","deafult","ctx","args","Array","prototype","slice","call","arguments","apply","seriesNameToClass","name","logging","warn","msg","console","log","numberHelpers","firstAndLast","ar","length","roundToNearest","number","multiple","Math","ceil","clamp","val","l","h","clampLeft","low","clampRight","high","degToRad","deg","PI","radToDeg","rad","linearRegression","dataSrc","lr","n","sum_x","sum_y","sum_xy","sum_xx","sum_yy","i","x","y","slope","intercept","r2","pow","sqrt","niceRound","stringHelpers","textBounds","text","css","body","document","getElementsByTagName","wrapper","createElement","dummy","className","style","position","width","height","visibility","lineHeight","whiteSpace","innerHTML","replace","appendChild","res","clientWidth","clientHeight","removeChild","dateHelpers","dateDiff","d1","d2","diff","getTime","arrayHelpers","array1","array2","concat","sort","a","b","normalizeSeries","data","categories","sortFn","normal","set","d","map","hasX","hasOwnProperty","v","extend","hasCategories","isArray","correctDataFormat","all","p","correctSeriesFormat","isObject","uniq","array","cache","result","len","j","el","key","push","maxTickValues","max","domain","values","tickInteval","cur","isSupportedDataFormat","ajaxHelpers","extractScaleDomain","min","dataMax","dataMin","domHelpers","selectDom","selector","select","getStyle","elem","styles","offsetParent","ownerDocument","defaultView","getComputedStyle","getCentroid","element","parentBox","getBoundingClientRect","bbox","left","top","debuggingHelpers","warning","nw","Contour","options","init","lastData","defaults","chart","animations","enable","duration","defaultWidth","defaultAspect","margin","right","bottom","padding","internalPadding","rotatedFrame","plotWidth","plotHeight","plotTop","plotLeft","xAxis","yAxis","tooltip","export","ctorName","renderer","sortSeries","each","shouldSort","isDate","sortFunc","vis","opt","VisualizationContainer","_visualizations","expose","functionalityConstructor","ctor","functionality","omit","_exposed","_extraOptions","calculateWidth","parseInt","calculateHeight","containerHeight","calcWidth","ratio","aspect","round","calcMetrics","adjustPadding","adjustTitlePadding","composeOptions","allDefaults","mergeExtraOptions","mergeDefaults","baseRender","plotArea","render","renderVisualizations","update","chartOpt","container","attr","svg","append","createVisualizationLayer","id","type","visualization","index","layer","parent","checkDependencies","listOfDependencies","_this","missing","dep","indexOf","join","setData","invoke","setRange","scale","rangeSize","range","YAxis","axis","_scale","tickValues","numTicks","format","labels","formatter","tickFormat","tickSize","innerTickSize","outerTickSize","tickPadding","ticks","linear","setDomain","_niceTheScale","nicing","nice","gridlines","maxTicks","title","titlePadding","innerRangePadding","outerRangePadding","orient","linearDomain","smartAxis","verticalAlign","cartesian","readOnlyProps","extraPadding","xDomain","yDomain","_getYScaledDomain","absMin","xOptions","yOptions","maxTickSize","xLabels","xAxisText","xLabelBounds","regularXBounds","em","ang","rotation","xLabelHeightUsed","abs","sin","yDomainScaled","tmpScale","yLabels","yAxisText","yLabelBounds","titleBounds","computeXScale","xScale","xScaleGenerator","rangeBand","xScaleFactory","computeYScale","yScaleDomain","yScale","yScaleGenerator","yScaleFactory","yMin","yMax","setYDomain","redrawYAxis","renderGridlines","_animationDuration","computeScales","_xAxis","_yAxis","renderXAxis","_xAxisGroup","selectAll","enter","transition","postProcessAxis","renderYAxis","alignmentOffset","middle","_yAxisGroup","renderAxisLabels","titleOneEm","bounds","adjustFactor","getYTicks","smart","pop","getXTicks","gr","option","horizontal","vertical","w","lines","exit","remove","offset","renderBackground","background","g","adjustDomain","datum","bind","extents","getExtents","getXDomain","dataVis","filter","flatten","field","pluck","extent","version","helpers","isTimeData","TimeScale","OrdinalScale","LinearScale","LogYAxis","SmartYAxis","_domain","_getAxisDomain","_setRange","formatLabel","getDate","optMin","optMax","ticksHint","isCategorized","ordinal","_range","optFormat","axisGroup","sign","lineCenter","cos","anchor","text-anchor","toFixed","band","rangeRoundBands","rangePoints","_extractYTickValues","adjustedDomain","time","getOptimalTickFormat","axisDomain","spanDays","daysThreshold","_getAxisRange","rangeRound","size","frame","categoryLabels","xLabel","yLabel","lineHeightAdjustment","VisInstanceContainer","context","_extent","series","maxs","mins","_stackedExtent","dataSets","maxLength","stackY","_xExtent","partialRight","_yExtent","setOptions","_updateDomain","xExtent","yExtent","stacked","renderSeries","stack","classFn","startArea","area","renderTooltipTrackers","trackerSize","y0","layout","y1","areaBase","smooth","interpolate","barRender","bar","grouped","numSeries","groupPadding","bars","cssClass","col","base","chartOffset","column","dataKey","columnWidth","filteredData","cols","delay","validAlignmentClasses","classes","legend","vAlign","hAlign","direction","Legend","count","legendHeight","mid","positioner","selection","legendWidth","parentNode","entries","rawData","seriesClassName","extras","renderPaths","startLine","line","animFn","animationsMap","animationDirection","shouldAnimate","startLineFn","partial","renderMarkers","markers","dots","marker","class","r","opacity","cx","cy","s","differentX","left-to-right","path","totalLength","getTotalLength","ease","bottom-to-top","noop","normalizePadding","isNumber","pie","piePadding","clampBounds","maxWidth","maxHeight","calcPadding","resolveValueUnits","value","ref","resolvePaddingUnits","group","arcTween","_current","t","arc","outerRadius","radius","innerRadius","startArc","startAngle","endAngle","pieData","attrTween","shouldCenterX","shouldCenterY","pixelPadding","referenceSize","proposedRadius","centerX","centerY","translatePie","offsetX","posX","posY","pieGroup","ScatterPlot","scatter","halfRangeBand","valueFormatter","stackTooltip","classed","onMouseOver","isNull","mapFn","seriesName","filtered","html","display","onMouseOut","on","findOriginalDataPoint","point","clearHideTimer","clearTimeout","hideTimer","changeOpacity","animate","tooltipElement","positionTooltip","alignedRight","pointOrCentroid","event","target","tagName","mouse","node","distance","parseFloat","offsetWidth","offsetHeight","pointX","pointY","clampPosition","pos","show","hideTime","getTooltipText","allPoints","match","params","list","rest","response","fn","first","formatters","dataPoints","showTime","regression","lineY","define","amd"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"dist/contour.min.js","sources":["dist/contour.js"],"names":["undefined","root","this","module","exports","require","d3","_","Error","merge","generalHelpers","getValue","src","deafult","ctx","args","Array","prototype","slice","call","arguments","apply","seriesNameToClass","name","logging","warn","msg","console","log","numberHelpers","firstAndLast","ar","length","roundToNearest","number","multiple","Math","ceil","clamp","val","l","h","clampLeft","low","clampRight","high","degToRad","deg","PI","radToDeg","rad","linearRegression","dataSrc","lr","n","sum_x","sum_y","sum_xy","sum_xx","sum_yy","i","x","y","slope","intercept","r2","pow","sqrt","niceRound","stringHelpers","textBounds","text","css","body","document","getElementsByTagName","wrapper","createElement","dummy","className","style","position","width","height","visibility","lineHeight","whiteSpace","innerHTML","replace","appendChild","res","clientWidth","clientHeight","removeChild","dateHelpers","dateDiff","d1","d2","diff","getTime","arrayHelpers","array1","array2","concat","sort","a","b","normalizeSeries","data","categories","sortFn","normal","set","d","map","hasX","hasOwnProperty","v","extend","hasCategories","isArray","correctDataFormat","all","p","correctSeriesFormat","isObject","uniq","array","cache","result","len","j","el","key","push","maxTickValues","max","domain","values","tickInteval","cur","isSupportedDataFormat","ajaxHelpers","extractScaleDomain","min","dataMax","dataMin","domHelpers","selectDom","selector","select","getStyle","elem","styles","offsetParent","ownerDocument","defaultView","getComputedStyle","getCentroid","element","parentBox","getBoundingClientRect","bbox","left","top","debuggingHelpers","warning","nw","Contour","options","init","lastData","defaults","chart","animations","enable","duration","defaultWidth","defaultAspect","margin","right","bottom","padding","internalPadding","rotatedFrame","plotWidth","plotHeight","plotTop","plotLeft","xAxis","yAxis","tooltip","export","ctorName","renderer","sortSeries","each","shouldSort","isDate","sortFunc","vis","opt","VisualizationContainer","_visualizations","expose","functionalityConstructor","ctor","functionality","omit","_exposed","_extraOptions","calculateWidth","parseInt","calculateHeight","containerHeight","calcWidth","ratio","aspect","round","calcMetrics","adjustPadding","adjustTitlePadding","composeOptions","allDefaults","mergeExtraOptions","mergeDefaults","baseRender","plotArea","render","renderVisualizations","update","chartOpt","container","attr","svg","append","createVisualizationLayer","id","type","visualization","index","layer","parent","checkDependencies","listOfDependencies","_this","missing","dep","indexOf","join","setData","invoke","setRange","scale","rangeSize","range","YAxis","axis","_scale","tickValues","numTicks","format","labels","formatter","tickFormat","tickSize","innerTickSize","outerTickSize","tickPadding","ticks","linear","setDomain","_niceTheScale","nicing","nice","gridlines","maxTicks","title","titlePadding","innerRangePadding","outerRangePadding","orient","linearDomain","smartAxis","verticalAlign","cartesian","readOnlyProps","extraPadding","xDomain","yDomain","_getYScaledDomain","absMin","xOptions","yOptions","maxTickSize","xLabels","xAxisText","xLabelBounds","regularXBounds","em","ang","rotation","xLabelHeightUsed","abs","sin","yDomainScaled","tmpScale","yLabels","yAxisText","yLabelBounds","titleBounds","computeXScale","xScale","xScaleGenerator","rangeBand","xScaleFactory","computeYScale","yScaleDomain","yScale","yScaleGenerator","yScaleFactory","yMin","yMax","setYDomain","redrawYAxis","renderGridlines","_animationDuration","computeScales","_xAxis","_yAxis","renderXAxis","_xAxisGroup","selectAll","enter","transition","postProcessAxis","renderYAxis","alignmentOffset","middle","_yAxisGroup","renderAxisLabels","titleOneEm","bounds","adjustFactor","getYTicks","smart","pop","getXTicks","gr","option","horizontal","vertical","w","lines","exit","remove","offset","renderBackground","background","g","adjustDomain","datum","bind","extents","getExtents","getXDomain","dataVis","filter","flatten","field","pluck","extent","version","helpers","isTimeData","TimeScale","OrdinalScale","LinearScale","LogYAxis","SmartYAxis","_domain","_getAxisDomain","_setRange","formatLabel","getDate","optMin","optMax","ticksHint","isCategorized","ordinal","_range","optFormat","axisGroup","sign","lineCenter","cos","anchor","text-anchor","toFixed","band","rangeRoundBands","rangePoints","_extractYTickValues","adjustedDomain","time","getOptimalTickFormat","axisDomain","spanDays","daysThreshold","_getAxisRange","rangeRound","size","frame","categoryLabels","xLabel","yLabel","lineHeightAdjustment","VisInstanceContainer","context","_extent","series","maxs","mins","_stackedExtent","dataSets","maxLength","stackY","_xExtent","partialRight","_yExtent","setOptions","_updateDomain","xExtent","yExtent","stacked","renderSeries","stack","classFn","startArea","area","renderTooltipTrackers","trackerSize","y0","layout","y1","areaBase","smooth","interpolate","barRender","bar","grouped","numSeries","groupPadding","bars","cssClass","col","base","chartOffset","column","dataKey","columnWidth","filteredData","cols","delay","validAlignmentClasses","classes","legend","vAlign","hAlign","direction","Legend","count","legendHeight","mid","positioner","selection","legendWidth","parentNode","entries","rawData","seriesClassName","extras","renderPaths","startLine","line","animFn","animationsMap","animationDirection","shouldAnimate","startLineFn","partial","renderMarkers","markers","dots","marker","class","r","opacity","cx","cy","s","differentX","left-to-right","path","totalLength","getTotalLength","ease","bottom-to-top","noop","normalizePadding","isNumber","pie","piePadding","clampBounds","maxWidth","maxHeight","calcPadding","resolveValueUnits","value","ref","resolvePaddingUnits","group","arcTween","_current","t","arc","outerRadius","radius","innerRadius","startArc","startAngle","endAngle","pieData","attrTween","shouldCenterX","shouldCenterY","pixelPadding","referenceSize","proposedRadius","centerX","centerY","translatePie","offsetX","posX","posY","pieGroup","ScatterPlot","scatter","halfRangeBand","valueFormatter","stackTooltip","classed","onMouseOver","isNull","mapFn","seriesName","filtered","html","display","onMouseOut","on","findOriginalDataPoint","point","clearHideTimer","clearTimeout","hideTimer","changeOpacity","animate","tooltipElement","positionTooltip","alignedRight","pointOrCentroid","event","target","tagName","mouse","node","distance","parseFloat","offsetWidth","offsetHeight","pointX","pointY","clampPosition","pos","show","hideTime","getTooltipText","allPoints","match","params","list","rest","response","fn","first","formatters","dataPoints","showTime","normalizeDataSet","dataSet","isLinear","normalizer","raw","regression","numericDomain","lineY","define","amd"],"mappings":"CAAA,SAAWA,GAEP,GAAIC,GAAOC,IASX,IAPuB,gBAAXC,SAAuBA,QAAoC,gBAAnBA,QAAOC,SACjC,kBAAZC,WACNJ,EAAKK,GAAKD,QAAQ,MAClBJ,EAAKM,EAAIF,QAAQ,YAIrBC,GAAI,KAAM,IAAIE,OAAM,mEACxB,KAAID,IAAMA,EAAEE,MAAO,KAAM,IAAID,OAAM,2EAIvC,WAEI,GAAIE,IAGAC,SAAU,SAAUC,EAAKC,EAASC,EAAKC,GAEnC,MADAA,GAAOC,MAAMC,UAAUC,MAAMC,KAAKC,UAAW,GACrCR,EAA+B,kBAARA,GAAqBA,EAAIS,MAAMP,EAAKC,GAAQH,EAA7DC,GAGlBS,kBAAmB,SAAUC,GACzB,MAAOA,IAAQ,KAInBC,GACAC,KAAM,SAAUC,GACRC,SAAWA,QAAQC,KACnBD,QAAQC,IAAIF,KAIpBG,GACAC,aAAc,SAAUC,GACpB,OAAQA,EAAG,GAAIA,EAAGA,EAAGC,OAAO,KAGhCC,eAAgB,SAAUC,EAAQC,GAC9B,MAAOC,MAAKC,KAAKH,EAASC,GAAYA,GAG1CG,MAAO,SAAUC,EAAKC,EAAGC,GACrB,MAAOF,GAAME,EAAIA,EAAUD,EAAND,EAAUC,EAAID,GAGvCG,UAAW,SAAUH,EAAKI,GACtB,MAAaA,GAANJ,EAAYI,EAAMJ,GAG7BK,WAAY,SAAUL,EAAKM,GACvB,MAAON,GAAMM,EAAOA,EAAON,GAG/BO,SAAU,SAAUC,GAChB,MAAOA,GAAMX,KAAKY,GAAK,KAG3BC,SAAU,SAAUC,GAChB,MAAa,KAANA,EAAYd,KAAKY,IAG5BG,iBAAkB,SAAUC,GASxB,IAAK,GARDC,MACAC,EAAIF,EAAQpB,OACZuB,EAAQ,EACRC,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTC,EAAS,EAEJC,EAAI,EAAON,EAAJM,EAAOA,IACnBL,GAASH,EAAQQ,GAAGC,EACpBL,GAASJ,EAAQQ,GAAGE,EACpBL,GAAWL,EAAQQ,GAAGC,EAAET,EAAQQ,GAAGE,EACnCJ,GAAWN,EAAQQ,GAAGC,EAAET,EAAQQ,GAAGC,EACnCF,GAAWP,EAAQQ,GAAGE,EAAEV,EAAQQ,GAAGE,CAOvC,OAJAT,GAAGU,OAAST,EAAIG,EAASF,EAAQC,IAAUF,EAAEI,EAASH,EAAQA,GAC9DF,EAAGW,WAAaR,EAAQH,EAAGU,MAAQR,GAAOD,EAC1CD,EAAGY,GAAK7B,KAAK8B,KAAKZ,EAAEG,EAASF,EAAMC,GAAOpB,KAAK+B,MAAMb,EAAEI,EAAOH,EAAMA,IAAQD,EAAEK,EAAOH,EAAMA,IAAQ,GAE5FH,GAGXe,UAAW,SAAU7B,GAEjB,MAAOH,MAAKC,KAAKE,EAAY,GAANA,KAa3B8B,GAEAC,WAAY,SAAUC,EAAMC,GACxB,GAAIC,GAAOC,SAASC,qBAAqB,QAAQ,GAC7CC,EAAUF,SAASG,cAAc,QACjCC,EAAQJ,SAASG,cAAc,OACnCD,GAAQG,UAAY,gBACpBD,EAAME,MAAMC,SAAW,WACvBH,EAAME,MAAME,MAAQ,OACpBJ,EAAME,MAAMG,OAAS,OACrBL,EAAME,MAAMI,WAAa,SACzBN,EAAME,MAAMK,WAAa,OACzBP,EAAME,MAAMM,WAAa,SAEzBR,EAAMS,UAAYhB,EAClBO,EAAMC,UAAYP,EAAIgB,QAAQ,MAAO,KACrCZ,EAAQa,YAAYX,GACpBL,EAAKgB,YAAYb,EACjB,IAAIc,IAAQR,MAAOJ,EAAMa,YAAaR,OAAQL,EAAMc,aAGpD,OAFAhB,GAAQiB,YAAYf,GACpBL,EAAKoB,YAAYjB,GACVc,IAIXI,GACAC,SAAU,SAASC,EAAIC,GACnB,GAAIC,GAAOF,EAAGG,UAAYF,EAAGE,SAC7B,OAAOD,GAAO,QAIlBE,GAGA3F,MAAO,SAAU4F,EAAQC,GAGrB,MAFsB,gBAAb,KAAuBD,GAAUA,IACpB,gBAAb,KAAuBC,GAAUA,IACtCD,GAAWA,EAAOrE,OAClBsE,GAAWA,EAAOtE,UAEZuE,OAAOF,EAAQC,GAAQE,KAAK,SAAUC,EAAEC,GAAK,MAAOD,GAAEC,IAF3BL,EADAC,GAQzCK,gBAAiB,SAAUC,EAAMC,GAE7B,QAASC,GAAOL,EAAGC,GAAK,MAAOD,GAAE5C,EAAI6C,EAAE7C,EACvC,QAASkD,GAAOC,EAAKzF,GACjB,GAAI0F,IACA1F,KAAMA,EACNqF,KAAMrG,EAAE2G,IAAIF,EAAK,SAAUC,EAAGrD,GAC1B,GAAIuD,GAAY,MAALF,GAAaA,EAAEG,eAAe,KACrC7E,EAAM,SAAU8E,GAAK,MAAY,OAALA,EAAYA,EAAI,KAChD,OAAOF,GAAO5G,EAAE+G,OAAOL,GAAKpD,EAAGoD,EAAEpD,EAAGC,EAAGvB,EAAI0E,EAAEnD,MAAUD,EAAG0D,EAAgBV,EAAWjD,GAAK,GAAKA,EAAGE,EAAGvB,EAAI0E,MAQjH,OAJKM,IACDN,EAAEL,KAAKJ,KAAKM,GAGTG,EAhBX,GAAIM,MAAmBV,IAActG,EAAEiH,QAAQX,IAmB3CY,EAAoBlH,EAAEiH,QAAQZ,IAASrG,EAAEmH,IAAId,EAAM,SAAUe,GAAK,MAAOA,GAAEP,eAAe,MAAQO,EAAEP,eAAe,OACnHQ,EAAsBrH,EAAEiH,QAAQZ,IAASrG,EAAEsH,SAASjB,EAAK,KAAOA,EAAK,GAAGQ,eAAe,SACnFR,EAAK,GAAGQ,eAAe,SAAW7G,EAAEmH,IAAId,EAAK,GAAGA,KAAM,SAAUe,GAAK,MAAOA,GAAEP,eAAe,MAAQO,EAAEP,eAAe,MAG9H,OAAIQ,GACOhB,EAIPa,GACKF,GAAeX,EAAKJ,KAAKM,KACpBvF,KAAM,WAAYqF,KAAMA,KAIlCrG,EAAEiH,QAAQZ,GACLrG,EAAEsH,SAASjB,EAAK,KAAOA,EAAK,GAAGQ,eAAe,SAAY7G,EAAEiH,QAAQZ,EAAK,IAEnErG,EAAE2G,IAAIN,EAAM,SAAUK,EAAGrD,GAAK,MAAOmD,GAAOE,EAAEL,KAAOK,EAAEL,KAAOK,EAAGA,EAAE1F,KAAO0F,EAAE1F,KAAO,WAAaqC,EAAE,OAGjGmD,EAAOH,EAAM,aAKtBA,GAMXkB,KAAM,SAAUC,GAIZ,IAAK,GAHDC,MAAYC,KACZC,EAAMH,EAAM/F,OAEPmG,EAAE,EAAKD,EAAFC,EAAOA,IAAK,CACtB,GAAIC,GAAKL,EAAMI,GAAIE,EAAMD,EAAK,EAEzBJ,GAAMZ,eAAeiB,KACtBL,EAAMK,IAAO,EACbJ,EAAOK,KAAKF,IAIpB,MAAOH,IAGXM,cAAe,SAAUC,EAAKC,GAC1B,GAAIP,GAAMO,EAAOzG,OACb0G,IAEJ,IAAIF,GAAON,EAAK,MAAOO,GAAOvH,OAM9B,KAFA,GAAIyH,GAAcvG,KAAKC,KAAK,EAAQ,GAChCuG,EAAM,EACGV,EAANU,GACHF,EAAOJ,KAAKG,EAAOG,IACnBA,GAAOD,CAGX,OAAOD,IAGXG,sBAAuB,SAAUjC,GAC7B,MAAOrG,GAAEiH,QAAQZ,IAAUrG,EAAEsH,SAASjB,EAAK,KAAOA,EAAK,GAAGQ,eAAe,SAAY7G,EAAEiH,QAAQZ,EAAK,MAKxGkC,GAEAC,mBAAoB,SAAUN,EAAQO,EAAKR,GACvC,GAAIS,GAAU1I,EAAEiI,IAAIC,GAChBS,EAAU3I,EAAEyI,IAAIP,EAIpB,OAAW,OAAPO,GAAsB,MAAPR,GACPU,EAASD,GAGV,MAAPD,GACQ5G,KAAK4G,IAAIE,EAASV,GAAMA,GAGzB,MAAPA,GACQQ,EAAK5G,KAAKoG,IAAIQ,EAAKC,KAGvBD,EAAKR,KAIjBW,GACAC,UAAW,SAAUC,GACjB,MAAO/I,IAAGgJ,OAAOD,GAAU,GAAG,IAGlCE,SAAU,SAAUnB,EAAIpD,GACpB,IAAIoD,EAAI,MAAOpI,EACf,IAAIwJ,GAAqB,gBAAPpB,GAAkBlI,KAAKkJ,UAAUhB,GAAMA,EAErDqB,EAASD,EAAKE,aAAeF,EAAKG,cAAcC,YAAYC,iBAAiBL,EAAM,MAAQA,EAAKxE,KAEpG,OAAOA,GAAQyE,EAAOzE,GAASyE,GAGnCK,YAAa,SAAUC,GACnB,GAAIC,GAAYD,EAAQL,aAAaO,wBACjCC,EAAOH,EAAQE,uBAEnB,QAAQC,EAAKC,KAAOH,EAAUG,KAAOD,EAAKhF,MAAM,EAAGgF,EAAKE,IAAMJ,EAAUI,IAAMF,EAAK/E,OAAO,KAI9FkF,GACAC,QAAS,SAAU5I,GACZC,SAAWA,QAAQC,KAClBD,QAAQC,IAAI,YAAcF,IAKtCnB,GAAEgK,GAAKhK,EAAE+G,UAAW/G,EAAEgK,GAAI1I,EAAeuE,EAAc/B,EAAeyB,EAClEgD,EAAauB,EAAkBlB,EAAYzI,EAAgBc,MAInE,WAsFI,QAASgJ,GAASC,GAGd,MAFAvK,MAAKwK,KAAKD,GAEHvK,KAvFX,GA8DIyK,GA9DA1K,EAAOC,KAEP0K,GACAC,OACIC,YACIC,QAAQ,EAERC,SAAU,KAGdC,aAAc,IAEdC,cAAe,EAAI,cAEnBhG,MAAOlF,EAEPmF,OAAQnF,EAERmL,QACIf,IAAK,EACLgB,MAAO,EACPC,OAAQ,EACRlB,KAAM,GAGVmB,SACIlB,IAAK,KACLgB,MAAO,KACPC,OAAQ,KACRlB,KAAM,MAEVoB,iBACIF,OAAQ,EACRlB,KAAM,GAGVqB,cAAc,EAEdC,UAAWzL,EAEX0L,WAAY1L,EAEZ2L,QAAS3L,EAET4L,SAAU5L,GAGd6L,SAGAC,SAGAC,WAyDJvB,GAAQwB,OAAS,SAAUC,EAAUC,GAIjC,QAASC,GAAWvF,GAChB,IAAIA,IAASA,EAAK5E,OAAQ,QAEvB4E,GAAK,GAAGA,MACPrG,EAAE6L,KAAKxF,EAAMuF,EAGjB,IAAIE,GAAa9L,EAAEsH,SAASjB,EAAK,KAAOrG,EAAE+L,OAAO1F,EAAK,GAAG/C,GACrD0I,EAAW,SAAU9F,EAAGC,GAAK,MAAOD,GAAE5C,EAAI6C,EAAE7C,EAKhD,OAJGwI,IACCzF,EAAKJ,KAAK+F,GAGP3F,EAfX,GAAwB,kBAAbsF,GAAyB,KAAM,IAAI1L,OAAM,+BAAiCyL,EAAW,iBAkBhGzB,GAAQvJ,UAAUgL,GAAY,SAAUrF,EAAM6D,GAC1C,GAEI+B,GAFA3F,EAAa3G,KAAKuK,QAAUvK,KAAKuK,QAAQoB,MAAQ3L,KAAKuK,QAAQoB,MAAMhF,WAAa7G,EAAYA,EAC7FyM,EAAOlM,EAAE+G,UAAWpH,KAAKuK,QAAQwB,GAAWxB,EAQhD,OALA7D,GAAOA,GAAQ+D,MACfwB,EAAWvF,GACX4F,EAAM,GAAIhC,GAAQkC,uBAAuBnM,EAAEgK,GAAG5D,gBAAgBC,EAAMC,GAAa4F,EAAKR,EAAUC,EAAUhM,MAC1GA,KAAKyM,gBAAgBrE,KAAKkE,GAC1B7B,EAAW/D,EACJ1G,OA0BfsK,EAAQoC,OAAS,SAAUX,EAAUY,GACjC,GAAIC,GAAO,WAEP,GAAIC,GAAoD,kBAA7BF,GAA0C,GAAIA,GAA6BA,CAUtG,OARAtM,GAAE+G,OAAOpH,KAAMK,EAAEyM,KAAKD,EAAe,SAElCA,EAAcrC,MAAMqC,EAAcrC,KAAKvJ,KAAKjB,KAAMA,KAAKuK,SAI1DvK,KAAK+M,SAAS3E,KAAK2D,GAEZ/L,KAKX,OAFAsK,GAAQvJ,UAAUgL,GAAYa,EAEvB5M,MAGXsK,EAAQvJ,UAAYV,EAAE+G,OAAOkD,EAAQvJ,WACjC0L,gBAAiB3M,EAEjBkN,cAAelN,EAEfiN,SAAUjN,EAGV0K,KAAM,SAAUD,GAUZ,MANAvK,MAAKuK,QAAUA,MAEfvK,KAAKgN,iBACLhN,KAAKyM,mBACLzM,KAAK+M,YAEE/M,MAGXiN,eAAgB,WACZ,GAAIjI,GAAQ3E,EAAEgK,GAAGhB,SAASrJ,KAAKuK,QAAQrC,GAAI,QAC3C,OAAOlI,MAAKuK,QAAQrC,GAAMgF,SAASlI,EAAO,KAAOhF,KAAKuK,QAAQI,MAAMI,aAAgB/K,KAAKuK,QAAQI,MAAMI,cAG3GoC,gBAAiB,WACb,GAAIlI,GAAS5E,EAAEgK,GAAGhB,SAASrJ,KAAKuK,QAAQrC,GAAI,UACxCkF,EAAkBpN,KAAKuK,QAAQrC,GAAKgF,SAASjI,EAAQ,IAAMnF,EAC3DuN,EAAYrN,KAAKuK,QAAQI,MAAM3F,MAC/BsI,EAAQtN,KAAKuK,QAAQI,MAAM4C,QAAUvN,KAAKuK,QAAQI,MAAMK,aAE5D,OAASoC,IAAmBA,EAAkB,EAAKA,EAAkBlL,KAAKsL,MAAMH,EAAYC,IAGhGG,YAAa,WACT,GAAIlD,GAAUvK,KAAKuK,OAEnBvK,MAAK0N,gBAEL1N,KAAK2N,qBAELpD,EAAQI,MAAM3F,MAAQuF,EAAQI,MAAM3F,OAAShF,KAAKiN,iBAClD1C,EAAQI,MAAM1F,OAASsF,EAAQI,MAAM1F,QAAUjF,KAAKmN,kBAEpDnN,KAAKuK,QAAUlK,EAAEE,MAAMgK,GACnBI,OACIY,UAAWhB,EAAQI,MAAM3F,MAAQuF,EAAQI,MAAMM,OAAOhB,KAAOM,EAAQI,MAAMM,OAAOC,MAAQX,EAAQI,MAAMU,gBAAgBpB,KAAOM,EAAQI,MAAMS,QAAQF,MACrJM,WAAYjB,EAAQI,MAAM1F,OAASsF,EAAQI,MAAMM,OAAOf,IAAMK,EAAQI,MAAMM,OAAOE,OAASZ,EAAQI,MAAMS,QAAQlB,IAAMK,EAAQI,MAAMU,gBAAgBF,OACtJO,SAAUnB,EAAQI,MAAMM,OAAOhB,KAAOM,EAAQI,MAAMU,gBAAgBpB,KACpEwB,QAASlB,EAAQI,MAAMM,OAAOf,IAAMK,EAAQI,MAAMS,QAAQlB,QAKtEwD,cAAe,WAEX,MAAO1N,OAGX2N,mBAAoB,WAEhB,MAAO3N,OAGX4N,eAAgB,WACZ,GAAIC,GAAcxN,EAAEE,SAAUmK,GAC1BoD,EAAoB,SAAUvB,GAAOlM,EAAEE,MAAMsN,EAAatB,IAC1DwB,EAAgB,SAAUzB,GAAOjM,EAAEE,MAAMsN,EAAavB,EAAIN,SAAStB,UAEvErK,GAAE6L,KAAKlM,KAAKgN,cAAec,GAC3BzN,EAAE6L,KAAKlM,KAAKyM,gBAAiBsB,GAG7B/N,KAAKuK,QAAUlK,EAAEE,SAAUsN,EAAa7N,KAAKuK,UAGjDyD,WAAY,WAGR,MAFAhO,MAAKiO,WAEEjO,MAeXkO,OAAQ,WASJ,MARAlO,MAAK4N,iBAEL5N,KAAKyN,cAELzN,KAAKgO,aAELhO,KAAKmO,uBAEEnO,MAGXoO,OAAQ,WAEJ,MADApO,MAAKyN,cACEzN,MAGXiO,SAAU,WAEN,GAAII,GAAWrO,KAAKuK,QAAQI,KAiB5B,OAfA3K,MAAKsO,UAAYlO,GAAGgJ,OAAOpJ,KAAKuK,QAAQrC,IAExClI,KAAKsO,UAAUC,KAAK,QAAS,2DAEzBvO,KAAKwO,MACLxO,KAAKwO,IAAMxO,KAAKsO,UACXG,OAAO,OACPF,KAAK,UAAW,OAASF,EAASrJ,MAAQ,IAAMqJ,EAASpJ,QACzDsJ,KAAK,sBAAuB,YAC5BA,KAAK,QAAS,iBACdA,KAAK,SAAUF,EAASpJ,QACxBwJ,OAAO,KACHF,KAAK,YAAa,aAAeF,EAASpD,OAAOhB,KAAO,IAAMoE,EAASpD,OAAOf,IAAM,MAG1FlK,MAGX0O,yBAA0B,SAAUpC,EAAKqC,GACrC,MAAO3O,MAAKwO,IAAIC,OAAO,KAClBF,KAAK,SAAUI,GACfJ,KAAK,WAAYjC,EAAIsC,MACrBL,KAAK,YAAa,aAAevO,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAO,KAAOjK,KAAKuK,QAAQI,MAAMS,QAAQlB,KAAO,GAAK,MAGlIiE,qBAAsB,WAWlB,MATA9N,GAAE6L,KAAKlM,KAAKyM,gBAAiB,SAAUoC,EAAeC,GAClD,GAAIH,GAAKG,EAAQ,EACbC,EAAQF,EAAcE,OAAS/O,KAAK0O,yBAAyBG,EAAeF,GAC5EpC,EAAMlM,EAAEE,SAAUP,KAAKuK,QAASsE,EAActE,QAClDsE,GAAcE,MAAQA,EACtBF,EAAcG,OAAShP,KACvB6O,EAAcX,OAAOa,EAAOxC,EAAKvM,OAClCA,MAEIA,MAaXiP,kBAAmB,SAAUC,GACzBA,EAAqB7O,EAAEiH,QAAQ4H,GAAsBA,GAAsBA,EAC3E,IAAIC,GAAQnP,KACRoP,IAQJ,IANA/O,EAAE6L,KAAKgD,EAAoB,SAAUG,GACG,KAAhCF,EAAMpC,SAASuC,QAAQD,IACvBD,EAAQhH,KAAKiH,KAIjBD,EAAQtN,OACR,KAAM,IAAIxB,OAAM,2HAA6H8O,EAAQG,KAAK,MAAQ,2FAuB1KC,QAAS,SAAU9I,GAGf,MAFArG,GAAEoP,OAAOzP,KAAKyM,gBAAiB,UAAW/F,GAEnC1G,MAoBXoJ,OAAQ,SAAU0F,GACd,MAAO9O,MAAKyM,gBAAgBqC,IAIhCpI,KAAM,eAOV3G,EAAKuK,QAAUA,KAInB,WAOI,QAASoF,GAASC,EAAOpF,GACrB,GAAIqF,GAAYrF,EAAQI,MAAMW,aAAef,EAAQI,MAAMY,UAAYhB,EAAQI,MAAMa,WACjFqE,EAAQtF,EAAQI,MAAMW,cAAgB,EAAGsE,IAAcA,EAAW,EACtE,OAAOD,GAAME,MAAMA,GARvB,GAAIC,GAAQ,SAAUpJ,EAAM6D,GACxBvK,KAAK0G,KAAOA,EACZ1G,KAAKuK,QAAUA,EASnBuF,GAAM/O,WACFgP,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQqB,MACvBrD,EAASvI,KAAKgQ,OAAOzH,SACrB0H,EAAa1F,EAAQ0F,WACrBC,EAAWlQ,KAAKkQ,SAAS3H,EAAQgC,EAAQzB,IAAKyB,EAAQjC,KACtD6H,EAAS5F,EAAQ6F,OAAOC,WAAajQ,GAAG+P,OAAO5F,EAAQ6F,OAAOD,OAElE,OAAO/P,IAAGoO,IAAIuB,OACTJ,MAAM3P,KAAKgQ,QACXM,WAAWH,GACXI,SAAShG,EAAQiG,cAAejG,EAAQkG,eACxCC,YAAYnG,EAAQmG,aACpBC,MAAMT,GACND,WAAWA,IAGpBN,MAAO,SAAUpH,GAOb,MANIvI,MAAKgQ,SACLhQ,KAAKgQ,OAAS5P,GAAGuP,MAAMiB,SACvB5Q,KAAK6Q,UAAUtI,GACfmH,EAAS1P,KAAKgQ,OAAQhQ,KAAKuK,UAGxBvK,KAAKgQ,QAGhBa,UAAW,SAAUtI,GAGjB,MAFAvI,MAAKgQ,OAAOzH,OAAOA,GACnBvI,KAAK8Q,gBACE9Q,KAAKgQ,QAGhB5B,OAAQ,SAAU7F,EAAQrF,GACtBlD,KAAK0G,KAAOxD,EACZlD,KAAK6Q,UAAUtI,IAInB2H,SAAU,WACN,MAAmC,OAA5BlQ,KAAKuK,QAAQqB,MAAM+E,MAAgB3Q,KAAKuK,QAAQqB,MAAM+E,MAAQ7Q,GAGzEgR,cAAe,WACP9Q,KAAKuK,QAAQqB,MAAMmF,QACnB/Q,KAAKgQ,OAAOgB,SAIxB3Q,EAAE+G,OAAO/G,EAAEgK,IAAMyF,MAAOA,OAI5B,WAEI,GAAIpF,IACAC,OACIsG,UAAW,OACX7F,SACIlB,IAAK,EACLgB,MAAO,EAEPC,OAAQrL,EAERmK,KAAMnK,IAId6L,OAEIiD,KAAM,KACNjI,WAAY7G,EACZ0Q,cAAe,EACfC,cAAe,EACfC,YAAa,EACbQ,SAAUpR,EACV6Q,MAAO7Q,EACPmQ,WAAYnQ,EACZqR,MAAOrR,EACPsR,aAAc,EAEdC,kBAAmB,GAEnBC,kBAAmB,GACnB1P,cAAc,EACd2P,OAAQ,SACRnB,QACID,OAAQrQ,EACRuQ,UAAWvQ,GAEf0R,cAAc,GAGlB5F,OAGI9C,IAAKhJ,EACLwI,IAAKxI,EACL2R,WAAW,EACXjB,cAAe,EACfC,cAAe,EACfC,YAAa,EACbT,WAAYnQ,EACZ6Q,MAAO7Q,EACPqR,MAAOrR,EACPsR,aAAc,EACdL,QAAQ,EACRQ,OAAQ,OACRnB,QAEIsB,cAAe,SACfvB,OAAQ,IACRE,UAAWvQ,KAkBnB6R,EAAY,WACZ,OACIzO,WAEAsH,KAAM,SAAUD,GAGZ,GAAIqH,IACAjH,OACIW,cAAc,EACdD,iBACIF,OAAQrL,EACRmK,KAAMnK,IAKlBE,MAAKuK,QAAUA,MAEflK,EAAEE,MAAMP,KAAKuK,QAASqH,EAEtB,IAAIC,KAOJ,OANK7R,MAAKuK,QAAQoB,OAAU3L,KAAKuK,QAAQoB,MAAM/J,eAC3CiQ,GAAiBlH,OAAUS,SAAWF,MAAO,OAGjDlL,KAAKgN,cAAc5E,KAAK/H,EAAEE,SAAUmK,EAAUmH,IAEvC7R,MAGX8R,WACAC,WAEAC,kBAAmB,WACf,GAAIC,GAASjS,KAAK+R,SAAW/R,KAAK+R,QAAQ,GAAK,EAAI,EAAIjS,CACvD,OAAOO,GAAEgK,GAAGxB,mBAAmB7I,KAAK+R,QAAS/R,KAAKuK,QAAQqB,MAAM9C,KAAOmJ,EAAQjS,KAAKuK,QAAQqB,MAAMtD,MAItGoF,cAAe,WACX,GAAIwE,GAAWlS,KAAKuK,QAAQoB,MACxBwG,EAAWnS,KAAKuK,QAAQqB,MACxBwG,EAAc,SAAU7H,GAAW,MAAOrI,MAAKoG,IAAIiC,EAAQkG,eAAiB,EAAGlG,EAAQiG,eAAiB,GAE5G,IAAyC,MAArCxQ,KAAKuK,QAAQI,MAAMS,QAAQD,OAC3B,GAAuB,IAAnB+G,EAASvB,MAAa,CACtB,GAAI0B,GAAUrS,KAAK8R,QACfQ,EAAYD,EAAQ9C,KAAK,QACzBgD,EAAelS,EAAEgK,GAAGjG,WAAWkO,EAAW,WAC1CE,EAAiBnS,EAAEgK,GAAGjG,WAAW,iEAAkE,WACnGqO,EAAKD,EAAevN,OACpByN,EAAMR,EAAS9B,QAAU8B,EAAS9B,OAAOuC,SAAWT,EAAS9B,OAAOuC,SAAW,IAAM,EACrFC,EAA2B,IAARF,EAAYF,EAAevN,OAAS/C,KAAKC,KAAKD,KAAK2Q,IAAIN,EAAavN,MAAQ9C,KAAK4Q,IAAIzS,EAAEgK,GAAGzH,SAAS8P,KAASD,EAAK,EACxIzS,MAAKuK,QAAQI,MAAMU,gBAAgBF,OAASnL,KAAKuK,QAAQI,MAAMS,QAAQD,QACnEiH,EAAYpS,KAAKuK,QAAQoB,QAAU3L,KAAKuK,QAAQoB,MAAM+E,aAAe,GACrEkC,MAEJ5S,MAAKuK,QAAQI,MAAMU,gBAAgBF,OAASiH,EAAYpS,KAAKuK,QAAQoB,QAAU3L,KAAKuK,QAAQoB,MAAM+E,aAAe,OAGrH1Q,MAAKuK,QAAQI,MAAMU,gBAAgBF,OAASnL,KAAKuK,QAAQI,MAAMS,QAAQD,QAAU,CAIrF,IAAuC,MAAnCnL,KAAKuK,QAAQI,MAAMS,QAAQnB,KAAc,CACzC,GAAI8I,GAAgB/S,KAAKgS,oBAErBgB,EAAW5S,GAAGuP,MAAMiB,SAASrI,OAAOwK,GACpCE,EAAUD,EAASrC,MAAMwB,EAASxB,OAElCR,EAASgC,EAAS/B,OAAOC,WAAajQ,GAAG+P,OAAOgC,EAAS/B,OAAOD,QAAU,QAC1E+C,EAAY7S,EAAE2G,IAAIiM,EAAS9C,GAAQZ,KAAK,QACxC4D,EAAe9S,EAAEgK,GAAGjG,WAAW8O,EAAW,UAC9ClT,MAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOjK,KAAKuK,QAAQI,MAAMS,QAAQnB,MACjEmI,EAAYpS,KAAKuK,QAAQqB,QAAU5L,KAAKuK,QAAQqB,MAAM8E,aAAe,GACrEyC,EAAanO,UAEjBhF,MAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOjK,KAAKuK,QAAQI,MAAMS,QAAQnB,MAI7E0D,mBAAoB,WAChB,GAAIyF,IACApT,KAAKuK,QAAQoB,MAAMwF,OAASnR,KAAKuK,QAAQqB,MAAMuF,SAC5CnR,KAAKuK,QAAQoB,MAAMwF,QAClBiC,EAAc/S,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQoB,MAAMwF,MAAO,iBACxDnR,KAAKuK,QAAQI,MAAMU,gBAAgBF,QAAUiI,EAAYnO,OAASjF,KAAKuK,QAAQoB,MAAMyF,cAGtFpR,KAAKuK,QAAQqB,MAAMuF,QAClBiC,EAAc/S,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQqB,MAAMuF,MAAO,iBACxDnR,KAAKuK,QAAQI,MAAMU,gBAAgBpB,MAAQmJ,EAAYnO,OAASjF,KAAKuK,QAAQqB,MAAMwF,gBAK/FiC,cAAe,WACX,IAAKrT,KAAK8R,QAAS,KAAM,IAAIxR,OAAM,2DAE/BN,MAAKsT,QAKLtT,KAAKuT,gBAAgBnF,OAAOpO,KAAK8R,QAAS9R,KAAKkD,SAC/ClD,KAAKwT,UAAYxT,KAAKuT,gBAAgBC,cALtCxT,KAAKuT,gBAAkBlT,EAAEgK,GAAGoJ,cAAczT,KAAKkD,QAASlD,KAAKuK,SAC7DvK,KAAKsT,OAAStT,KAAKuT,gBAAgB5D,MAAM3P,KAAK8R,SAC9C9R,KAAKwT,UAAYxT,KAAKuT,gBAAgBC,cAO9CE,cAAe,WACX,IAAK1T,KAAK+R,QAAS,KAAM,IAAIzR,OAAM,2DAEnC,IAAIqT,GAAe3T,KAAKgS,mBAEpBhS,MAAK4T,OAIL5T,KAAK6T,gBAAgBzF,OAAOuF,EAAc3T,KAAKkD,UAH/ClD,KAAK6T,gBAAkBxT,EAAEgK,GAAGyJ,cAAc9T,KAAKkD,QAASlD,KAAKuK,QAASvK,KAAK+T,KAAM/T,KAAKgU,MACtFhU,KAAK4T,OAAS5T,KAAK6T,gBAAgBlE,MAAMgE,KAiBjDL,OAAQxT,EAaR8T,OAAQ9T,EAWRmU,WAAY,SAAU1L,GAClBvI,KAAK6T,gBAAgBhD,UAAUtI,IAYnC2L,YAAa,WACTlU,KAAKwO,IAAIpF,OAAO,WAAWnI,KAAKjB,KAAK4L,SACrC5L,KAAKmU,mBAGTC,mBAAoB,WAChB,GAAI7H,GAAMvM,KAAKuK,QAAQI,MAAMC,UAC7B,OAAO2B,IAAOA,EAAI1B,OACE,MAAhB0B,EAAIzB,SAAmByB,EAAIzB,SAAW,IACtC,GAGRuJ,cAAe,WAIX,MAHArU,MAAKqT,gBACLrT,KAAK0T,gBAEE1T,MAGXsU,OAAQxU,EACR6L,MAAO,WAKH,MAJK3L,MAAKsU,SACNtU,KAAKsU,OAAStU,KAAKuT,gBAAgBxD,OAAOwB,OAAOvR,KAAKuK,QAAQoB,MAAM4F,SAGjEvR,KAAKsU,QAGhBC,OAAQzU,EACR8L,MAAO,WAIH,MAHI5L,MAAKuU,SACLvU,KAAKuU,OAASvU,KAAK6T,gBAAgB9D,OAAOwB,OAAOvR,KAAKuK,QAAQqB,MAAM2F,SAEjEvR,KAAKuU,QAGhBC,YAAa,WACT,GAAI7I,GAAQ3L,KAAK2L,QACb/H,EAAI5D,KAAKuK,QAAQI,MAAMa,WAAaxL,KAAKuK,QAAQI,MAAMS,QAAQlB,GAgBnE,OAdAlK,MAAKyU,YAAczU,KAAKwO,IAAIkG,UAAU,WACjChO,MAAM,IAEX1G,KAAKyU,YAAYE,QACZlG,OAAO,KACPF,KAAK,YAAa,aAAevO,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAO,IAAMrG,EAAI,KACrF2K,KAAK,QAAS,UAEnBvO,KAAKyU,YACAG,aAAa9J,SAAS9K,KAAKoU,sBAC3BnT,KAAK0K,GAEV3L,KAAKuT,gBAAgBsB,gBAAgB7U,KAAKyU,aAEnCzU,MAGX8U,YAAa,WACT,GAAIvK,GAAUvK,KAAKuK,QAAQqB,MACvBmJ,GAAoB5J,OAAQ,OAAQ6J,OAAQ,QAAS9K,IAAK,KAC1DvG,EAAI3D,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KACvCrG,EAAI5D,KAAKuK,QAAQI,MAAMS,QAAQlB,GAgBnC,OAdAlK,MAAKiV,YAAcjV,KAAKwO,IAAIkG,UAAU,WACjChO,MAAM,IAEX1G,KAAKiV,YACAN,QAAQlG,OAAO,KACfF,KAAK,YAAa,aAAe5K,EAAI,IAAMC,EAAI,KAC3C2K,KAAK,QAAS,UAEvBvO,KAAKiV,YACAL,aAAa9J,SAAS9K,KAAKoU,sBAC3BnT,KAAKjB,KAAK4L,SACV8I,UAAU,cACNnG,KAAK,KAAMwG,EAAgBxK,EAAQ6F,OAAOsB,gBAE5C1R,MAGXkV,iBAAkB,WAC+B,IAAlBlV,KAAKmV,UAChC,IACIC,GAAQzR,EAAGC,EADXyR,EAAe,GAAG,MAgCtB,OA7BIrV,MAAKuK,QAAQoB,MAAMwF,QACnBiE,EAAS/U,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQoB,MAAMwF,MAAO,iBACnDvN,EAAI5D,KAAKuK,QAAQI,MAAMU,gBAAgBF,OACvCxH,EAAI,EACJuE,GAAKlI,KAAKyU,YAAYC,UAAU,iBAAiBhO,MAAM,IACvDwB,GAAGyM,QAAQlG,OAAO,QACbF,KAAK,QAAS,gBACdA,KAAK,IAAK5K,GACV4K,KAAK,IAAK3K,GACV2K,KAAK,MAAOvO,KAAKuK,QAAQI,MAAMY,UAAY6J,EAAOpQ,OAAS,GAC3DuJ,KAAK,KAAM,IACXlK,KAAKrE,KAAKuK,QAAQoB,MAAMwF,QAG7BnR,KAAKuK,QAAQqB,MAAMuF,QACnBiE,EAAS/U,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQqB,MAAMuF,MAAO,iBACnDvN,GAAK5D,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOmL,EAAOnQ,OAASoQ,EAC/D1R,EAAI,EACJuE,GAAKlI,KAAKiV,YAAYP,UAAU,iBAAiBhO,MAAM,IACvDwB,GAAGyM,QAAQlG,OAAO,QACbF,KAAK,QAAS,gBACdA,KAAK,YAAa,eAClBA,KAAK,IAAK5K,GACV4K,KAAK,IAAK3K,GACV2K,KAAK,OAAQvO,KAAKuK,QAAQI,MAAMa,WAAa4J,EAAOpQ,OAAS,GAC7DuJ,KAAK,KAAM,GACXlK,KAAKrE,KAAKuK,QAAQqB,MAAMuF,QAG1BnR,MAGXmU,gBAAiB,WAKb,QAASmB,GAAUvF,EAAMwF,GACrB,GAAItF,GAAaF,EAAKE,YAEtB,KAAIA,EAAY,CACZ,GAAIC,GAAWH,EAAKY,QAAQ,EAC5B,OAAOZ,GAAKJ,QAAQgB,MAAMT,GAAUlP,MAAM,GAK9C,MAFAuU,IAAStF,EAAWuF,MAEbvF,EAAWjP,MAAM,GAG5B,QAASyU,GAAU1F,GACf,MAAOA,GAAKE,eAAiBF,EAAKJ,QAAQgB,MAAQZ,EAAKJ,QAAQgB,QAAQ3P,MAAM,GAAK+O,EAAKJ,QAAQpH,UAlBnG,GAqBIoI,GAAO+E,EArBPC,EAAS3V,KAAKuK,QAAQI,MAAMsG,UAC5B2E,EAAwB,eAAXD,GAAsC,SAAXA,EACxCE,EAAsB,aAAXF,GAAoC,SAAXA,EAoBpChS,EAAI3D,KAAKsT,OACT1P,EAAI5D,KAAK4T,MAEb,IAAGgC,EAAY,CACXjF,EAAQ2E,EAAUtV,KAAK4L,QAAS5L,KAAKuK,QAAQqB,MAAM6F,UACnD,IAAIqE,GAAI9V,KAAKuK,QAAQI,MAAMY,SAI3BmK,GAAK1V,KAAKiV,YACLP,UAAU,eACVhO,MAAMiK,IAEX+E,EAAGf,QAAQlG,OAAO,SACbF,KAAK,QAAS,aAEnB,IAAIwH,GAAQL,EAAGhB,UAAU,cACpBhO,KAAK,SAAUK,GAAK,MAAOA,IAEhCgP,GAAMnB,aAAa9J,SAAS9K,KAAKoU,sBAC5B7F,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,MAAOuH,KAEVvH,KAAK,KAAM3K,GACX2K,KAAK,KAAM3K,GAEhBmS,EAAMpB,QAAQlG,OAAO,QACZF,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,MAAOuH,KAEVvH,KAAK,KAAM3K,GACX2K,KAAK,KAAM3K,GAEpBmS,EAAMC,OAAOC,SAGjB,GAAGJ,EAAU,CAET7V,KAAKyU,YAAYrL,OAAO,gBAAgB6M,SACxCP,EAAK1V,KAAKyU,YAAYhG,OAAO,SAASF,KAAK,QAAS,cACpDoC,EAAQ8E,EAAUzV,KAAK2L,QACvB,IAAIuK,GAASlW,KAAKwT,UAAY,EAC1BjR,EAAIvC,KAAKuK,QAAQI,MAAMa,UAE3BkK,GAAGhB,UAAU,cACRhO,KAAKiK,GACLgE,QAAQlG,OAAO,QACXF,KAAK,QAAS,aACdA,KAAK,KAAM,SAAUxH,GAAK,MAAOpD,GAAEoD,GAAKmP,IACxC3H,KAAK,KAAM,SAAUxH,GAAK,MAAOpD,GAAEoD,GAAKmP,IACxC3H,KAAK,MAAOhM,GACZgM,KAAK,KAAM,GAGxB,MAAOvO,OAGXmW,iBAAkB,WACd,GAAI5L,GAAUvK,KAAKuK,QAAQI,KAC3B3K,MAAKoW,WAAapW,KAAKoW,YAAcpW,KAAK0O,yBAAyB,aAAc,EACjF,IAAI2H,GAAIrW,KAAKoW,WAAW1B,UAAU,yBAAyBhO,MAAM,MAWjE,OATA2P,GAAE1B,QAAQlG,OAAO,QACZF,KAAK,QAAS,wBACdA,KAAK,IAAK,GACVA,KAAK,IAAK,GACVA,KAAK,QAAShE,EAAQgB,WACtBgD,KAAK,SAAUhE,EAAQiB,YAE5B6K,EAAEL,OAAOC,SAEFjW,MAGXkO,OAAQ,WAgBJ,MAdAlO,MAAK4N,iBACL5N,KAAKsW,eACLtW,KAAKyN,cACLzN,KAAKqU,gBACLrU,KAAKgO,aAELhO,KACKmW,mBACA3B,cACAM,cACAX,kBACAe,mBACA/G,uBAEEnO,MAGXuW,MAAO,SAAUxP,EAAG+H,GAChB,MAAGzO,GAAEsH,SAASZ,IAAM1G,EAAEiH,QAAQP,EAAEL,MACrBrG,EAAE2G,IAAID,EAAEL,KAAMrG,EAAEmW,KAAKxW,KAAKuW,MAAOvW,QAGxC4D,EAAGvD,EAAEsH,SAASZ,GAAKA,EAAEnD,EAAImD,EACzBpD,EAAGtD,EAAEsH,SAASZ,GAAKA,EAAEpD,EAAI3D,KAAKuK,QAAQoB,MAAMhF,WAAa3G,KAAKuK,QAAQoB,MAAMhF,WAAWmI,GAASA,IAIxGwH,aAAc,WACV,GAAIG,GAAUzW,KAAK0W,YACnB1W,MAAK+R,QAAU0E,EAAQ3U,OAAS2U,GAAW,EAAG,IAC9CzW,KAAK8R,QAAU9R,KAAK2W,aACpB3W,KAAK+T,KAAO/T,KAAK+R,QAAQ,GACzB/R,KAAKgU,KAAOhU,KAAK+R,QAAQ/R,KAAK+R,QAAQjQ,OAAS,EAC/C,IAAI8U,GAAUvW,EAAEwW,OAAO7W,KAAKyM,gBAAiB,SAAUtF,GAAK,MAAO9G,GAAEgK,GAAG1B,sBAAsBxB,EAAET,OAChG1G,MAAKkD,QAAU7C,EAAEyW,QACbzW,EAAE2G,IAAI4P,EAAS,SAAUzP,GACrB,MAAO9G,GAAEyW,QAAQzW,EAAE2G,IAAIG,EAAET,KAAMrG,EAAEmW,KAAKxW,KAAKuW,MAAOvW,SACnDA,OAGPA,KAAKuU,OAAS,KACdvU,KAAKsU,OAAS,MAGlBoC,WAAY,SAAU3G,GAClB,GAAIgH,GAAQhH,GAAiB,MAATA,EAAe,UAAY,UAC3C6G,EAAUvW,EAAEwW,OAAO7W,KAAKyM,gBAAiB,SAAUtF,GAAK,MAAO9G,GAAEgK,GAAG1B,sBAAsBxB,EAAET,QAC5Fc,EAAMnH,EAAEyW,QAAQzW,EAAE2W,MAAMJ,EAASG,GACrC,OAAOvP,GAAI1F,OAAS1B,GAAG6W,OAAOzP,OAGlCmP,WAAY,WACR,GAAIC,GAAUvW,EAAEwW,OAAO7W,KAAKyM,gBAAiB,SAAUtF,GAAK,MAAO9G,GAAEgK,GAAG1B,sBAAsBxB,EAAET,QAC5Fc,EAAMnH,EAAEgK,GAAGzC,KAAKvH,EAAEyW,QAAQzW,EAAE2W,MAAMJ,EAAS,YAE/C,OAAOpP,KAMnB8C,SAAQoC,OAAO,YAAaiF,MAIhCrH,QAAQ4M,QAAU,SAClB,WAEI,GAAIC,IACA1D,cAAe,SAAU/M,EAAM6D,GAO3B,GAAI6M,GAAoC,SAAvB7M,EAAQoB,MAAMiD,OAAoBvO,EAAEiH,QAAQZ,IAASA,EAAK5E,OAAS,GAAK4E,EAAK,GAAGA,KAC7FA,EAAK,GAAGA,KAAK,GAAG/C,GAAKtD,EAAE+L,OAAO1F,EAAK,GAAGA,KAAK,GAAG/C,GAC9CtD,EAAEiH,QAAQZ,IAASA,EAAK5E,OAAS,GAAK4E,EAAK,GAAG/C,GAAKtD,EAAE+L,OAAO1F,EAAK,GAAG/C,GAGxE,OAAIyT,IAAqC,YAAvB7M,EAAQoB,MAAMiD,KACrB,GAAIvO,GAAEgK,GAAGgN,UAAU3Q,EAAM6D,GAG/BA,EAAQoB,MAAMhF,YAAqC,WAAvB4D,EAAQoB,MAAMiD,KAIxC,GAAIvO,GAAEgK,GAAGiN,aAAa5Q,EAAM6D,GAHxB,GAAIlK,GAAEgK,GAAGkN,YAAY7Q,EAAM6D,IAM1CuJ,cAAe,SAAUpN,EAAM6D,EAASwJ,EAAMC,GAC1C,GAAIhN,IACAtF,IAAOrB,EAAEgK,GAAGmN,SACZjC,MAASlV,EAAEgK,GAAGoN,WACd7G,OAAUvQ,EAAEgK,GAAGyF,MAMnB,IAHIvF,EAAQqB,MAAMgD,OAAMrE,EAAQqB,MAAMgD,KAAO,UACnB,WAAvBrE,EAAQqB,MAAMgD,MAAqBrE,EAAQqB,MAAM6F,YAAWlH,EAAQqB,MAAMgD,KAAO,UAEhF5H,EAAIuD,EAAQqB,MAAMgD,MAAO,KAAM,IAAItO,OAAM,uBAAyBiK,EAAQqB,MAAMgD,KAAO,IAE3F,OAAO,IAAI5H,GAAIuD,EAAQqB,MAAMgD,MAAMlI,EAAM6D,EAASwJ,EAAMC,IAKhE3T,GAAEgK,GAAKhK,EAAE+G,UAAW/G,EAAEgK,GAAI8M,MAI9B,WAEI,QAASI,GAAY7Q,EAAM6D,GACvBvK,KAAKuK,QAAUA,EACfvK,KAAK0G,KAAOA,EAEZ1G,KAAKwK,OAGT+M,EAAYxW,WACRyJ,KAAM,iBACKxK,MAAKgQ,QAIhBL,MAAO,SAAUpH,GAWb,MAVAvI,MAAK0X,QAAUnP,EAASvI,KAAK2X,eAAepP,GAAUvI,KAAK2X,eAAe3X,KAAK0G,MAC3E1G,KAAKgQ,OAMLhQ,KAAKgQ,OAAOzH,OAAOvI,KAAK0X,UALxB1X,KAAKgQ,OAAS5P,GAAGuP,MAAMiB,SAASrI,OAAOvI,KAAK0X,SACf,MAA1B1X,KAAKuK,QAAQoB,MAAM7C,KAAyC,MAA1B9I,KAAKuK,QAAQoB,MAAMrD,KACpDtI,KAAKgQ,OAAOgB,OAChBhR,KAAK4X,aAKF5X,KAAKgQ,QAGhBD,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQoB,MACvBkM,EAActN,EAAQ6F,OAAOC,WAAajQ,GAAG+P,OAAO5F,EAAQ6F,OAAOD,QAAU,KAC7EJ,EAAO3P,GAAGoO,IAAIuB,OACbJ,MAAM3P,KAAKgQ,QACXO,SAAShG,EAAQiG,cAAejG,EAAQkG,eACxCC,YAAYnG,EAAQmG,aACpBJ,WAAW,SAAUvJ,GAClB,MAAO1G,GAAE+L,OAAOrF,GAAKA,EAAE+Q,UAAYD,EAAY9Q,IAYvD,OATIwD,GAAQ3I,aAERmO,EAAKE,WAAW5P,EAAEgK,GAAGzI,aAAa5B,KAAK0X,UAChCnN,EAAQ0F,WACfF,EAAKE,WAAW1F,EAAQ0F,YACA,MAAjB1F,EAAQoG,OACfZ,EAAKY,MAAMpG,EAAQoG,OAGhBZ,GAGX3B,OAAQ,SAAU7F,EAAQrF,GACtBlD,KAAK0G,KAAOxD,EACZlD,KAAK2P,MAAMpH,IAGfiL,UAAW,WACP,MAAO,IAGXqB,gBAAiB,WACb,MAAO7U,OAGX4X,UAAW,WACP,GAAIhI,GAAc5P,KAAKuK,QAAQI,MAAMW,aAAetL,KAAKuK,QAAQI,MAAMa,WAAaxL,KAAKuK,QAAQI,MAAMY,UACnGsE,EAAU7P,KAAKuK,QAAQI,MAAMW,cAAgBsE,EAAW,IAAO,EAAGA,EACtE,OAAO5P,MAAKgQ,OAAOH,MAAMA,IAG7B8H,eAAgB,SAAUpP,GAEtB,GAAIwP,GAAS/X,KAAKuK,QAAQoB,MAAM7C,IAC5BkP,EAAShY,KAAKuK,QAAQoB,MAAMrD,IAC5BQ,EAAgB,MAAViP,EAAiB/X,KAAKuK,QAAQoB,MAAM7C,IAAM1I,GAAG0I,IAAIP,GACvDD,EAAgB,MAAV0P,EAAiBhY,KAAKuK,QAAQoB,MAAMrD,IAAMlI,GAAGkI,IAAIC,EAE3D,OAAa,OAAVwP,GAA4B,MAAVC,GAAkBD,EAASC,EACrC5X,GAAG6W,OAAO1O,IAGbO,EAAKR,KAIrBjI,EAAEgK,GAAKhK,EAAE+G,UAAW/G,EAAEgK,IAAMkN,YAAaA,OAI7C,WAOI,QAAS7H,GAASC,EAAOpF,GACrB,GAAIqF,GAAYrF,EAAQI,MAAMW,aAAef,EAAQI,MAAMY,UAAYhB,EAAQI,MAAMa,WACjFqE,EAAQtF,EAAQI,MAAMW,cAAgB,EAAGsE,IAAcA,EAAW,EACtE,OAAOD,GAAME,MAAMA,GARvB,GAAI2H,GAAW,SAAU9Q,EAAM6D,GAC3BvK,KAAK0G,KAAOA,EACZ1G,KAAKuK,QAAUA,EASnBiN,GAASzW,UAAYV,EAAE+G,UAAW/G,EAAEgK,GAAGyF,MAAM/O,WACzCgP,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQqB,MACvBrD,EAASvI,KAAKgQ,OAAOzH,SACrB0P,EAAY/V,KAAKC,KAAKD,KAAKR,IAAI6G,EAAO,IAAMrG,KAAKR,IAAI,KACrDyO,EAAS5F,EAAQ6F,OAAOC,WAAajQ,GAAG+P,OAAO5F,EAAQ6F,OAAOD,QAAU,QAExEJ,EAAO3P,GAAGoO,IAAIuB,OACbJ,MAAM3P,KAAKgQ,QACXO,SAAShG,EAAQiG,cAAejG,EAAQkG,eACxCC,YAAYnG,EAAQmG,YAQzB,OAPGnG,GAAQ6F,OAAOC,UACdN,EAAKO,WAAW/F,EAAQ6F,OAAOC,WAE/BN,EAAKY,MAAMpG,EAAQoG,OAASsH,EAAW9H,GAIpCJ,GAGXJ,MAAO,SAAUpH,GAUb,MATIvI,MAAKgQ,SACFzH,EAAO,IAAM,KAAKA,EAAO,GAAK,IAEjCvI,KAAKgQ,OAAS5P,GAAGuP,MAAMjO,MACvB1B,KAAK6Q,UAAUtI,GAAQnG,OAAM,GAE7BsN,EAAS1P,KAAKgQ,OAAQhQ,KAAKuK,UAGxBvK,KAAKgQ,QAGhB5B,OAAQ,SAAU7F,EAAQrF,GACtBlD,KAAK0G,KAAOxD,EACTqF,EAAO,IAAM,KAAKA,EAAO,GAAK,IACjCvI,KAAK6Q,UAAUtI,GAAQnG,OAAM,MAIrC/B,EAAE+G,OAAO/G,EAAEgK,IAAMmN,SAAUA,OAI/B,WAeI,QAASF,GAAa5Q,EAAM6D,GACxBvK,KAAKuK,QAAUA,EACfvK,KAAK0G,KAAOA,EAEZ1G,KAAKwK,OAGT8M,EAAavW,WACTyJ,KAAM,WACFxK,KAAKkY,eAAgB,QACdlY,MAAKgQ,QAGhBL,MAAO,SAAUpH,GAQb,MAPIvI,MAAKgQ,SACLhQ,KAAKgQ,OAAS,GAAI5P,IAAGuP,MAAMwI,QAC3BnY,KAAKoY,UAGTpY,KAAK6Q,UAAUtI,GAERvI,KAAKgQ,QAIhBD,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQoB,MACvB0M,EAAa9N,EAAQ6F,OAAOD,OAAS/P,GAAG+P,OAAO5F,EAAQ6F,OAAOD,QAAU,EAExEG,EAAa/F,EAAQ6F,OAAOC,YAAerQ,KAAKkY,cAA4B,EAAZG,IAAkB,SAAUtR,GAAK,MAAO1G,GAAE+L,OAAOrF,GAAKA,EAAE+Q,UAAY/Q,GACpIgJ,EAAO3P,GAAGoO,IAAIuB,OACbJ,MAAM3P,KAAKgQ,QACXQ,cAAcjG,EAAQiG,eACtBC,cAAclG,EAAQkG,eACtBC,YAAYnG,EAAQmG,aACpBJ,WAAWA,EAkBhB,OAhBI/F,GAAQ3I,aAERmO,EAAKE,WAAW5P,EAAEgK,GAAGzI,aAAa5B,KAAK0X,UAChCnN,EAAQ2G,SACfnB,EAAKE,WAAW5P,EAAEgK,GAAGhC,cAAckC,EAAQ2G,SAAUlR,KAAK0X,UACnDnN,EAAQ0F,WACfF,EAAKE,WAAW1F,EAAQ0F,YACA,MAAjB1F,EAAQoG,OACfZ,EAAKY,MAAMpG,EAAQoG,OACG,IAAlBpG,EAAQoG,OACRZ,EAAKE,gBAGTF,EAAKE,WAAW1F,EAAQ5D,YAGrBoJ,GAIX8E,gBAAiB,SAAUyD,GACvB,GAAI/N,GAAUvK,KAAKuK,QAAQoB,KAC3B,IAAKpB,EAAQ6F,QAAqC,MAA3B7F,EAAQ6F,OAAOuC,SAAtC,CAEA,GAAI9P,GAAM0H,EAAQ6F,OAAOuC,SACrB3P,EAAM3C,EAAEgK,GAAGzH,SAASC,GACpB0V,EAAO1V,EAAM,EAAI,EAAU,EAANA,EAAU,GAAK,EACpC2V,EAAa,IACbC,EAAMvW,KAAKuW,IAAIzV,GACf8P,EAAM5Q,KAAK4Q,IAAI9P,EACJuH,GAAQ6F,OAAOuC,SAAW,CACzC,IAAI+F,GAASnO,EAAQ6F,OAAOuC,SAAW,EAAI,MAAQpI,EAAQ6F,OAAOuC,SAAW,EAAI,QAAU,QAC9E2F,GAAU5D,UAAU,cAC5B5P,OAAO6T,cAAeD,IACtBnK,KAAK,YAAa,WACf,GAAI5K,GAAIvD,GAAGgJ,OAAOpJ,MAAMuO,KAAK,MAAQ,EACjC3K,EAAIxD,GAAGgJ,OAAOpJ,MAAMuO,KAAK,MAAQ,CACrC,OAAO,UAAYhE,EAAQ6F,OAAOuC,SAAW,IAAMhP,EAAI,IAAMC,EAAI,MAEpE2K,KAAK,KAAM,WACR,OAAQkK,EAAMD,GAAYI,QAAQ,GAAK,OAE1CrK,KAAK,KAAM,WACR,QAASuE,EAAM0F,EAAa,IAAOD,GAAMK,QAAQ,GAAK,SAIlExK,OAAQ,SAAU7F,EAAQ7B,GACtB1G,KAAK0G,KAAOA,EACZ1G,KAAK6Q,UAAUtI,IAGnBsI,UAAW,SAAUtI,GACjBvI,KAAK0X,QAAUnP,EACfvI,KAAKgQ,OAAOzH,OAAOA,IAGvBiL,UAAW,WACP,GAAIqF,GAAO7Y,KAAKgQ,OAAOwD,WAGvB,OAFKqF,IAAMxY,EAAEgK,GAAG9I,KAAK,6GAA+GvB,KAAKuK,QAAQI,MAAMY,UAAY,UAAavL,KAAK0X,QAAc,OAAI,+FAEhM1X,KAAKgQ,OAAOwD,aAGvB4E,OAAQ,WACJ,GAAIvI,GAAQ7P,KAAKuK,QAAQI,MAAMW,cAAgBtL,KAAKuK,QAAQI,MAAMa,WAAY,IAAM,EAAGxL,KAAKuK,QAAQI,MAAMY,UAC1G,OAAOvL,MAAKkY,cACRlY,KAAKgQ,OAAO8I,gBAAgBjJ,EAAO7P,KAAKuK,QAAQoB,MAAM0F,kBAAmBrR,KAAKuK,QAAQoB,MAAM2F,mBAC5FtR,KAAKgQ,OAAO+I,YAAYlJ,KAIpCxP,EAAEgK,GAAKhK,EAAE+G,UAAW/G,EAAEgK,IAAMiN,aAAcA,OAI9C,WASI,QAAS0B,GAAoBzQ,EAAQO,EAAKR,EAAKyL,EAAMC,GACjD,GAAIiF,GAAiB5Y,EAAEgK,GAAG9J,MAAMgI,EAAQyL,EAIxC,OAAW,OAAPlL,GAAsB,MAAPR,EACR2Q,EAEA,MAAPnQ,EACOR,EAAMyL,EAAO1T,EAAEgK,GAAG9J,OAAO+H,GAAM2Q,IAAmB3Q,GAGlD,MAAPA,EACIQ,GAAOkL,GAAclL,IACzBmQ,EAAe,GAAKnQ,EAEbmQ,GAGJ5Y,EAAEgK,GAAG9J,OAAOuI,EAAKR,GAAM0L,GA1BlC,GAAIyD,GAAa,SAAU/Q,EAAM6D,EAASwJ,EAAMC,GAC5ChU,KAAK0G,KAAOA,EACZ1G,KAAKuK,QAAUA,EACfvK,KAAKgU,KAAOA,EACZhU,KAAK+T,KAAOA,EAyBhB0D,GAAW1W,UAAYV,EAAE+G,UAAW/G,EAAEgK,GAAGyF,MAAM/O,WAC3CgP,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQqB,MACvBrD,EAASvI,KAAKgQ,OAAOzH,SACrB0H,EAAa+I,EAAoBzQ,EAAQgC,EAAQzB,IAAKyB,EAAQjC,IAAKtI,KAAK+T,KAAM/T,KAAKgU,MACnF9D,EAAWlQ,KAAKkQ,WAChBH,EAAO1P,EAAEgK,GAAGyF,MAAM/O,UAAUgP,KAAK9O,KAAKjB,KAC1C,OAAO+P,GAAKY,MAAMT,GACbD,WAAWA,IAGpBC,SAAU,WACN,MAAO,IAGXW,UAAW,SAAUtI,GACjB,GAAI0O,GAAS7W,GAAG6W,OAAO1O,EACvBvI,MAAK+T,KAAOkD,EAAO,GACnBjX,KAAKgU,KAAOiD,EAAO,GACnBjX,KAAKgQ,OAAOzH,OAAOA,GAEnBvI,KAAK8Q,iBAGTA,cAAe,WACX,GAAIvI,GAASvI,KAAKgQ,OAAOzH,SACrByI,GAAQhR,KAAKuK,QAAQqB,MAAM9C,KAAOP,EAAO,GAAIvI,KAAKuK,QAAQqB,MAAMtD,KAAOjI,EAAEgK,GAAGnG,UAAUqE,EAAO,IACjGvI,MAAKgQ,OAAOzH,OAAOyI,MAI3B3Q,EAAE+G,OAAO/G,EAAEgK,IAAMoN,WAAYA,OAIjC,WAWI,QAAS5R,GAASC,EAAIC,GAClB,IAAKD,IAAOC,EAAI,MAAO,EACvB,IAAIC,GAAOF,EAAGG,UAAYF,EAAGE,SAC7B,OAAOD,GAAO,MAIlB,QAASqR,GAAU3Q,EAAM6D,GACrBvK,KAAKuK,QAAUA,EACfvK,KAAK0G,KAAOA,EAEZ1G,KAAKwK,OAGT6M,EAAUtW,WACNyJ,KAAM,iBACKxK,MAAKgQ,QAGhBL,MAAO,SAAUpH,GASb,MAPIvI,MAAKgQ,SACLhQ,KAAKgQ,OAAS,GAAI5P,IAAG8Y,KAAKvJ,MAC1B3P,KAAK6Q,UAAUtI,GACfvI,KAAK6P,SAIF7P,KAAKgQ,QAKhBD,KAAM,WACF,GAAIxF,GAAUvK,KAAKuK,QAAQoB,MACvB2E,EAAatQ,KAAKmZ,uBAElBpJ,EAAO3P,GAAGoO,IAAIuB,OACbJ,MAAM3P,KAAKgQ,QACXM,WAAWA,GACXC,SAAShG,EAAQiG,cAAejG,EAAQkG,eACxCC,YAAYnG,EAAQmG,aACpBT,WAAWjQ,KAAK0X,QAYrB,OAVmC,OAA/B1X,KAAKuK,QAAQoB,MAAMuF,UAAoBlR,KAAKuK,QAAQoB,MAAMuF,SAAWlR,KAAK0X,QAAQ5V,OAGlFiO,EAAKE,WAAW5P,EAAEgK,GAAGhC,cAAckC,EAAQ2G,SAAUlR,KAAK0X,UAEnD1X,KAAKuK,QAAQoB,MAAM/J,cAE1BmO,EAAKE,WAAW5P,EAAEgK,GAAGzI,aAAa5B,KAAK0X,UAGpC3H,GAGX3B,OAAQ,SAAU7F,EAAQ7B,GACtB1G,KAAK0G,KAAOA,EACZ1G,KAAK6Q,UAAUtI,IAGnBsI,UAAW,SAAUtI,GACjBvI,KAAK0X,QAAUnP,CACf,IAAI6Q,GAAapZ,KAAK2X,eAAe3X,KAAK0X,QAC1C1X,MAAKgQ,OAAOzH,OAAO6Q,IAGvBvE,gBAAiB,SAAUyD,GACvB,GAAKtY,KAAKuK,QAAQoB,MAAM/J,aAAxB,CACA,GAAIwO,GAASkI,EAAU5D,UAAU,cAAc,EAC/CtU,IAAGgJ,OAAOgH,EAAO,IAAItL,OAAO6T,cAAe,UAC3CvY,GAAGgJ,OAAOgH,EAAOA,EAAOtO,OAAS,IAAIgD,OAAO6T,cAAe,UAG/DnF,UAAW,WACP,MAAO,IAGX2F,qBAAsB,WAClB,GAAInZ,KAAKuK,QAAQoB,MAAMyE,OAAOC,UAAW,MAAOrQ,MAAKuK,QAAQoB,MAAMyE,OAAOC,SAC1E,IAAIrQ,KAAKuK,QAAQoB,MAAMyE,OAAOD,OAAQ,MAAO/P,IAAG8Y,KAAK/I,OAAOnQ,KAAKuK,QAAQoB,MAAMyE,OAAOD,OAEtF,IAAIkJ,GAAWnX,KAAK2Q,IAAIhN,EAAS7F,KAAK0X,QAAQ1X,KAAK0X,QAAQ5V,OAAO,GAAI9B,KAAK0X,QAAQ,KAC/E4B,EAAgBtZ,KAAKuK,QAAQoB,MAAMuF,UAAY,CACnD,OAAeoI,GAAXD,EAAiCjZ,GAAG8Y,KAAK/I,OAAO,SACrC,IAAXkJ,EAAuBjZ,GAAG8Y,KAAK/I,OAAO,SAEnC/P,GAAG8Y,KAAK/I,OAAO,OAG1BN,MAAO,WACH,GAAIA,GAAQ7P,KAAKuZ,cAAcvZ,KAAK0X,QACpC,OAAO1X,MAAKgQ,OAAOwJ,WAAW3J,EAAO,KAIzC8H,eAAgB,SAAUpP,GACtB,MAAGvI,MAAKuK,QAAQoB,MAAM6F,aACXjJ,EAGJnI,GAAG6W,OAAO1O,IAGrBgR,cAAe,SAAUhR,GACrB,GAAIkR,GAAOzZ,KAAKuK,QAAQI,MAAMW,aAAetL,KAAKuK,QAAQI,MAAMa,WAAaxL,KAAKuK,QAAQI,MAAMY,SAEhG,OAAGvL,MAAKuK,QAAQoB,MAAM6F,aACXnR,EAAEwP,MAAM,EAAG4J,EAAMA,GAAQlR,EAAOzG,OAAS,IAAIuE,QAAQoT,KAGxD,EAAGA,KAInBpZ,EAAEgK,GAAKhK,EAAE+G,UAAW/G,EAAEgK,IAAMgN,UAAWA,OAI3C,WAEI,GAAI3M,IACAC,OACIW,cAAc,GAGlBK,OACI4F,OAAQ,QAGZ3F,OACI2F,OAAQ,WAIZmI,GAEAlP,KAAM,WACFnK,EAAEE,MAAMP,KAAKuK,QAASG,IAG1BgD,cAAe,WACX,GAAIiM,GAAiB3Z,KAAKuK,QAAQoB,MAAMhF,YAActG,EAAE2W,MAAMhX,KAAKkD,QAAS,KACxEmB,EAAOsV,EAAepK,KAAK,QAC3BqK,EAASvZ,EAAEgK,GAAGjG,WAAWC,EAAM,WAC/BwV,EAASxZ,EAAEgK,GAAGjG,WAAW,MAAO,WAChCgO,EAAc,SAAU7H,GAAW,MAAOrI,MAAKoG,IAAIiC,EAAQkG,cAAelG,EAAQiG,eAEtFxQ,MAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOjK,KAAKuK,QAAQI,MAAMS,QAAQnB,MAAQmI,EAAYpS,KAAKuK,QAAQoB,OAAS3L,KAAKuK,QAAQoB,MAAM+E,YAAckJ,EAAO5U,MACvJhF,KAAKuK,QAAQI,MAAMU,gBAAgBF,OAASnL,KAAKuK,QAAQI,MAAMS,QAAQD,QAAUiH,EAAYpS,KAAKuK,QAAQqB,OAAS5L,KAAKuK,QAAQqB,MAAM8E,YAAcmJ,EAAO5U,QAG/J0I,mBAAoB,WAChB,GAAIyF,IACApT,KAAKuK,QAAQoB,MAAMwF,OAASnR,KAAKuK,QAAQqB,MAAMuF,SAC5CnR,KAAKuK,QAAQoB,MAAMwF,QAClBiC,EAAc/S,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQoB,MAAMwF,MAAO,iBACxDnR,KAAKuK,QAAQI,MAAMU,gBAAgBpB,MAAQmJ,EAAYnO,OAASjF,KAAKuK,QAAQoB,MAAMyF,cAGpFpR,KAAKuK,QAAQqB,MAAMuF,QAClBiC,EAAc/S,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQqB,MAAMuF,MAAO,iBACxDnR,KAAKuK,QAAQI,MAAMU,gBAAgBF,QAAUiI,EAAYnO,OAASjF,KAAKuK,QAAQqB,MAAMwF,gBAKjG0D,YAAa,WACT,GAAIlJ,GAAQ5L,KAAK4L,QACbjI,EAAI3D,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KACvCrG,EAAI5D,KAAKuK,QAAQI,MAAMS,QAAQlB,IAAMlK,KAAKuK,QAAQI,MAAMa,UAgB5D,OAdAxL,MAAKiV,YAAcjV,KAAKwO,IAAIkG,UAAU,WACjChO,MAAM,IAEX1G,KAAKiV,YAAYN,QAAQlG,OAAO,KAC3BF,KAAK,QAAS,UACdA,KAAK,YAAa,aAAe5K,EAAG,IAAMC,EAAI,KAEnD5D,KAAKiV,YAAYe,OAAOC,SAExBjW,KAAKiV,YACIL,aAAa9J,SAAS9K,KAAKoU,sBAC3B7F,KAAK,YAAa,aAAe5K,EAAG,IAAMC,EAAI,KAC9C3C,KAAK2K,GAEP5L,MAGXwU,YAAa,WACT,GAAI7Q,GAAI3D,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KACvCrG,EAAI5D,KAAKuK,QAAQI,MAAMS,QAAQlB,IAC/ByB,EAAQ3L,KAAK2L,OAkBjB,OAhBA3L,MAAKyU,YAAczU,KAAKwO,IAAIkG,UAAU,WACjChO,MAAM,IAEX1G,KAAKyU,YAAYE,QAAQlG,OAAO,KAC3BF,KAAK,QAAS,UACdA,KAAK,YAAa,aAAe5K,EAAI,IAAMC,EAAI,KAEpD5D,KAAKyU,YAAYuB,OAAOC,SAEzBjW,KAAKyU,YACCG,aAAa9J,SAAS9K,KAAKoU,sBAC3B7F,KAAK,YAAa,aAAe5K,EAAI,IAAMC,EAAI,KAC/C3C,KAAK0K,GAEV3L,KAAKuT,gBAAgBsB,gBAAgB7U,KAAKyU,aAEnCzU,MAGXkV,iBAAkB,WACd,GAEIhN,GACAkN,EAAQsD,EAAQ/F,EAAUpC,EAAU5M,EAAGC,EAHvCkW,EAAyC,IAAlB9Z,KAAKmV,WAC5BE,EAAe,GAAG,MAmDtB,OA/CIrV,MAAKuK,QAAQoB,MAAMwF,QACnBiE,EAAS/U,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQoB,MAAMwF,MAAO,iBACnDxN,EAAI3D,KAAKuK,QAAQI,MAAMW,cAAgB8J,EAAOnQ,OAASjF,KAAKuK,QAAQI,MAAMY,UAC1E3H,EAAI5D,KAAKuK,QAAQI,MAAMW,cAAgBtL,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOjK,KAAKuK,QAAQI,MAAMU,gBAAgBF,OAAS2O,EAE7HnH,EAAW3S,KAAKuK,QAAQI,MAAMW,aAAe,MAAQ,IACrDpD,EAAKlI,KAAKyU,YAAYC,UAAU,iBAAiBhO,MAAM,OAEvDwB,EAAGyM,QAAQlG,OAAO,QACbF,KAAK,QAAS,gBAEnBrG,EAAGqG,KAAK,IAAK,GACRA,KAAK,IAAK3K,GACV2K,KAAK,aAAc,UAAWoE,EAAU,KAAKpD,KAAK,KAClDhB,KAAK,KAAM6G,EAAOnQ,OAASoQ,GAC3B9G,KAAK,OAAQvO,KAAKuK,QAAQI,MAAMa,WAAa4J,EAAOpQ,OAAS,GAC7DX,KAAKrE,KAAKuK,QAAQoB,MAAMwF,OAE7BjJ,EAAG8N,OAAOC,UAGVjW,KAAKuK,QAAQqB,MAAMuF,QACnBiE,EAAS/U,EAAEgK,GAAGjG,WAAWpE,KAAKuK,QAAQqB,MAAMuF,MAAO,iBACnDZ,EAAWrO,KAAKoG,IAAItI,KAAKuK,QAAQqB,MAAM4E,cAAexQ,KAAKuK,QAAQqB,MAAM6E,eACzEiI,EAAS1Y,KAAKuK,QAAQI,MAAMW,aAAe,MAAQ,SACnD3H,EAAI3D,KAAKuK,QAAQI,MAAMW,aAAetL,KAAKuK,QAAQI,MAAMY,UAAY,EACrE3H,EAAI5D,KAAKuK,QAAQI,MAAMW,aACnBtL,KAAKuK,QAAQI,MAAMU,gBAAgBF,QAClCnL,KAAKuK,QAAQI,MAAMU,gBAAgBpB,KAAOjK,KAAKmV,WAAa2E,EAEjEnH,EAAW3S,KAAKuK,QAAQI,MAAMW,aAAe,IAAM,MAEnDpD,EAAKlI,KAAKiV,YAAYP,UAAU,iBAAiBhO,MAAM,OAEvDwB,EAAGyM,QAAQlG,OAAO,QACbF,KAAK,QAAS,gBAEnBrG,EAAGqG,KAAK,IAAK3K,GACR2K,KAAK,IAAK5K,GACV4K,KAAK,OAAQvO,KAAKuK,QAAQI,MAAMY,UAAY6J,EAAOpQ,OAAS,GAC5DuJ,KAAK,KAAM,IACXA,KAAK,aAAc,UAAWoE,EAAU,KAAKpD,KAAK,KAClDlL,KAAKrE,KAAKuK,QAAQqB,MAAMuF,OAE7BjJ,EAAG8N,OAAOC,UAGPjW,MAsBfsK,SAAQoC,OAAO,aAAcgN,MAIjC,WAmCI,QAASK,GAAqBrT,EAAM6D,EAASqE,EAAM5C,EAAUgO,GACzDha,KAAK4O,KAAOA,EACZ5O,KAAKgM,SAAWA,EAChBhM,KAAKY,IAAMoZ,EAEXha,KAAKwK,KAAK9D,EAAM6D,GAtCpB,GAAI0P,GAAU,SAAUC,EAAQnD,GAC5B,GAAIoD,MAAWC,IASf,OARA/Z,GAAE6L,KAAKgO,EAAQ,SAAUnT,GACrB,GAAIA,EAAEL,KAAK5E,OAAX,CACA,GAAI0G,GAASnI,EAAE2W,MAAMjQ,EAAEL,KAAMqQ,EAC7BoD,GAAK/R,KAAKhI,GAAGkI,IAAIE,IACjB4R,EAAKhS,KAAKhI,GAAG0I,IAAIN,OAIjB4R,EAAKtY,QAAWqY,EAAKrY,QAEjBzB,EAAEyI,IAAIsR,GAAO/Z,EAAEiI,IAAI6R,QAI3BE,EAAiB,SAAU3T,GAK3B,IAAK,GAJD4T,GAAWja,EAAE2W,MAAMtQ,EAAM,QACzB6T,EAAYla,EAAEiI,IAAIjI,EAAE2G,IAAIsT,EAAU,SAAUvT,GAAK,MAAOA,GAAEjF,UAC1D0Y,KAEKvS,EAAE,EAAKsS,EAAFtS,EAAaA,IACvB5H,EAAE6L,KAAKoO,EAAU,SAAUxT,GACvB0T,EAAOvS,GAAKnB,EAAImB,IAAMuS,EAAOvS,IAAM,GAAKnB,EAAImB,GAAGrE,EAAK4W,EAAOvS,IAAM,GAIzE,QAAQ5H,EAAEyI,IAAI0R,GAASna,EAAEiI,IAAIkS,KAG7BC,EAAWpa,EAAEqa,aAAaT,EAAS,KACnCU,EAAWta,EAAEqa,aAAaT,EAAS,IAUvCF,GAAqBhZ,WAEjByJ,KAAM,SAAU9D,EAAM6D,GAElBvK,KAAK4a,WAAWrQ,GAChBvK,KAAKwP,QAAQ9I,IAGjBwH,OAAQ,SAAUa,EAAOxE,GAGrB,MAFAvK,MAAKgM,SAAS/K,KAAKjB,KAAKY,IAAKZ,KAAK0G,KAAMqI,EAAOxE,GAExCvK,KAAKY,KAGhB4O,QAAS,SAAU9I,GAIf,MAHA1G,MAAK0G,KAAOrG,EAAEgK,GAAG5D,gBAAgBC,GACjC1G,KAAK6a,gBAEE7a,KAAKY,KAGhBga,WAAY,SAAUrQ,GAClB,GAAIgC,KAKJ,OAJAA,GAAIvM,KAAK4O,MAAQrE,MACjBvK,KAAKuK,WACLvK,KAAKuK,QAAUlK,EAAEE,SAAUP,KAAKgM,SAAStB,aAAgB6B,GAElDvM,KAAKY,KAGhBia,cAAe,WACX,IAAI7a,KAAKuK,QAAQvK,KAAK4O,MAAO,KAAM,IAAItO,OAAM,0DAEzCD,GAAEgK,GAAG1B,sBAAsB3I,KAAK0G,QAChC1G,KAAK8R,QAAUzR,EAAEyW,QAAQzW,EAAE2G,IAAIhH,KAAK0G,KAAM,SAAUI,GAAO,MAAOzG,GAAE2W,MAAMlQ,EAAIJ,KAAM,QACpF1G,KAAK8a,QAAUL,EAASza,KAAK0G,KAAM,KACnC1G,KAAK+a,QAAU/a,KAAKuK,QAAQvK,KAAK4O,MAAMoM,QAAUX,EAAera,KAAK0G,MAAQiU,EAAS3a,KAAK0G,SAMvG4D,QAAQkC,uBAAyBuN,KAIrC,WAaI,QAAS/N,GAAStF,EAAMqI,EAAOxE,GA4B3B,QAAS0Q,KACL,GAAIf,GAASnL,EAAM2F,UAAU,YACpBhO,KAAKwU,EAAMxU,GAEpBwT,GAAOvF,QACFlG,OAAO,SACPF,KAAK,QAAS4M,GACd1M,OAAO,QAAQ8H,MAAM,SAAUxP,GAAK,MAAOA,GAAEL,OACzC6H,KAAK,QAAS,QACdA,KAAK,IAAK6M,GAEnBlB,EAAOlE,OAAOC,SAEV1L,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,OACrDqP,EAAO9Q,OAAO,SACTmN,MAAM,SAAUxP,GAAK,MAAOA,GAAEL,OAC9BkO,aAAa9J,SAASP,EAAQI,MAAMC,WAAWE,UAAYA,GAC3DyD,KAAK,IAAK8M,GAEfnB,EAAO9Q,OAAO,SACTmN,MAAM,SAAUxP,GAAK,MAAOA,GAAEL,OAC9B6H,KAAK,IAAK8M,GAGf9Q,EAAQsB,QAAQhB,QAChByQ,EAAsBra,KAAKjB,KAAMka,GAIzC,QAASoB,GAAsBpB,GAC3B,GAAIqB,GAAc,EAElBrB,GAAOzL,OAAO,KAAKF,KAAK,QAAS,oBAC5BmG,UAAU,mBACNhO,KAAK,SAAUK,GAAK,MAAOA,GAAEL,OACjCiO,QAAQlG,OAAO,UACXF,KAAK,QAAS,mBACdA,KAAK,UAAW,GAChBA,KAAK,IAAKgN,GACVhN,KAAK,KAAM,SAASxH,GAAK,MAAOpD,GAAEoD,EAAEpD,KACpC4K,KAAK,KAAM,SAASxH,GAAK,MAAOnD,IAAG2G,EAAQ8Q,KAAKL,QAAUjU,EAAEyU,GAAK,GAAKzU,EAAEnD,KAnErF5D,KAAKiP,kBAAkB,YACvB,IAAInE,GAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FnH,EAAItD,EAAEmW,KAAK,SAAUnU,GAAO,MAAOrC,MAAKsT,OAAOjR,GAAOrC,KAAKwT,UAAY,EAAI,IAAQxT,MACnF4D,EAAIvD,EAAEmW,KAAK,SAAUnU,GAAO,MAAOrC,MAAK4T,OAAOvR,GAAO,IAAQrC,MAC9DuC,EAAIgI,EAAQI,MAAMa,WAClB2P,EAAU,SAAUpU,EAAGrD,GAAK,MAAO,aAAeA,EAAE,GAAK,IAAMqD,EAAE1F,MACjE6Z,EAAQ9a,GAAGqb,OAAOP,QAAQ1S,OAAO,SAAUzB,GAAK,MAAOA,GAAEL,OAEzD0U,EAAYhb,GAAGoO,IAAI6M,OAClB1X,EAAE,SAASoD,GAAK,MAAOpD,GAAEoD,EAAEpD,KAC3B6X,GAAG,WAAe,MAAOjZ,KACzBmZ,GAAG,WAAc,MAAOnZ;GAEzBoZ,EAAoC,MAAzBpR,EAAQ8Q,KAAKM,SAAmBpR,EAAQ8Q,KAAKM,SAAWpR,EAAQqB,MAAM9C,IACjFuS,EAAOjb,GAAGoO,IAAI6M,OACb1X,EAAE,SAASoD,GAAK,MAAOpD,GAAEoD,EAAEpD,KAC3B6X,GAAG,SAAUzU,GAAK,MAAOwD,GAAQ8Q,KAAKL,QAAUpX,EAAEmD,EAAEyU,IAAMG,GAAY,GAAK/X,EAAE,KAC7E8X,GAAG,SAAS3U,GAAK,MAAOnD,IAAG2G,EAAQ8Q,KAAKL,QAAUjU,EAAEyU,GAAK,GAAKzU,EAAEnD,IAElE2G,GAAQ8Q,KAAKO,SACZP,EAAKQ,YAAY,YACjBT,EAAUS,YAAY,aAG1BZ,IApCJ,GAAIvQ,IACAiB,OACIiD,KAAM,UAEVyM,MACIL,SAAS,EACTW,SAAU7b,GA6ElBkM,GAAStB,SAAWA,EAsBpBJ,QAAQwB,OAAO,OAAQE,MAI3B,WASI,QAAS8P,GAAUpV,EAAMqI,EAAOxE,GAuC5B,QAASyQ,GAAQe,EAAKpH,GAKlB,MAJAoH,GACKxN,KAAK,IAAK,SAAUxH,GAAK,MAAOpD,GAAEoD,EAAEpD,KACpC4K,KAAK,SAAUiF,GAEhBmB,EACOoH,EACFxN,KAAK,IAAK,WAAe,MAAO3K,GAAE,KAClC2K,KAAK,QAAS,WAAe,MAAO,KAGlCwN,EACFxN,KAAK,IAAK,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAIA,EAAEmD,EAAEyU,IAAM,GAAK5X,EAAEmD,EAAEnD,EAAImD,EAAEyU,MACpEjN,KAAK,QAAS,SAAUxH,GAAK,MAAOA,GAAEnD,GAAI,EAAIA,EAAEmD,EAAEnD,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAEmD,EAAEnD,KAItF,QAASoY,GAAQD,EAAKpH,GAClB,GAAIsH,GAAYvV,EAAK5E,OACjBmD,EAAS,WAAc,MAAOuO,GAAYyI,EAAY1R,EAAQwR,IAAIG,aAAe,IACjFhG,EAAS,SAAUnP,EAAGrD,GAAK,MAAO8P,GAAYyI,EAAYvY,EAAI,GAMlE,OAJAqY,GAAIxN,KAAK,IAAK,SAAUxH,EAAGrD,EAAGuE,GAAK,MAAOtE,GAAEoD,EAAEpD,GAAKuS,EAAOnP,EAAGkB,KACxDsG,KAAK,IAAK3K,EAAE,IACZ2K,KAAK,SAAUtJ,GAEhB0P,EACOoH,EACFxN,KAAK,QAAS,WAAe,MAAO,KAElCwN,EACFxN,KAAK,QAAS,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAIA,EAAEmD,EAAEnD,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAEmD,EAAEnD,KAC1E2K,KAAK,IAAK,SAAUxH,GAAK,MAAOA,GAAEnD,EAAI,EAAIA,EAAEmD,EAAEnD,GAAKA,EAAE,KAtElE5D,KAAKiP,mBAAmB,YAAa,cACrC,IAAInE,GAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FqE,EAAQnP,KACR2D,EAAI,SAAUoD,GAAK,MAAOoI,GAAMmE,OAAOvM,GAAK,IAC5CnD,EAAI,SAAUmD,GAAK,MAAOoI,GAAMyE,OAAO7M,GAAK,IAC5CyM,EAAYxT,KAAKwT,UACjB0H,EAAQ9a,GAAGqb,OAAOP,QAAQ1S,OAAO,SAAUzB,GAAK,MAAOA,GAAEL,OACzD0H,EAAS7D,EAAQwR,IAAIf,QAAUA,EAAUgB,EACzCrH,EAAQtU,EAAEqa,aAAatM,GAAQ,GAC/B+M,EAAU,SAAUpU,EAAGrD,GAAK,MAAO,aAAeA,EAAE,GAAK,IAAMqD,EAAE1F,MAEjE6Y,EAASnL,EAAM2F,UAAU,YACxBhO,KAAKwU,EAAMxU,GAEhBwT,GAAOvF,QAAQlG,OAAO,SACjBF,KAAK,QAAS4M,GAEnBjB,EAAOlE,OAAOC,QAEd,IAAIkG,GAAOjC,EAAOxF,UAAU,QACvBhO,KAAK,SAAUK,GAAK,MAAOA,GAAEL,OAE9B0V,EAAW,OAAS7R,EAAQsB,QAAQhB,OAAS,mBAAqB,GACtEsR,GAAKxH,QAAQlG,OAAO,QACfF,KAAK,QAAS6N,GACdnb,KAAK0T,GAEPpK,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,QACpDsR,EAAKvH,aAAa9J,SAASA,GAAU7J,KAAKmN,GAC1C+N,EAAKnG,OACApB,aAAa9J,SAASA,GACtByD,KAAK,QAAS3K,EAAE,IAChBqS,WAELkG,EAAKlb,KAAKmN,GACV+N,EAAKnG,OAAOC,UA3CpB,GAAIvL,IACAqR,KACIf,SAAS,EACTkB,aAAc,GAgFtBJ,GAAUpR,SAAWA,EAsBrBJ,QAAQwB,OAAO,MAAOgQ,MAI1B,WAWI,QAAS5N,GAAOxH,EAAMqI,EAAOxE,GA8DzB,QAASyQ,GAAQqB,EAAK1H,GAClB,GAAI2H,GAAO1Y,EAAE,EAEbyY,GAAI9N,KAAK,IAAK,SAAUxH,GAAK,MAAOpD,GAAEoD,EAAEpD,GAAK4Y,IACxChO,KAAK,QAAS,WAAc,MAAOiF,KAEpCmB,EACA0H,EAAI9N,KAAK,IAAK,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAI0Y,EAAOA,IACjD/N,KAAK,SAAU,WAAe,MAAO,KAE1C8N,EAAI9N,KAAK,IAAK,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAIA,EAAEmD,EAAEnD,GAAKA,EAAEmD,EAAEyU,IAAMc,EAAO1Y,EAAEmD,EAAEyU,MACxEjN,KAAK,SAAU,SAAUxH,GAAK,MAAOA,GAAEnD,GAAI,EAAI0Y,EAAO1Y,EAAEmD,EAAEnD,GAAKA,EAAEmD,EAAEnD,GAAK0Y,IAIrF,QAASN,GAAQK,EAAK1H,GAClB,GAAI3P,GAAQwO,EAAY9M,EAAK5E,OAASyK,EAAI2P,aAAe,GACrDhG,EAAS,SAAUnP,EAAGrD,GAAK,MAAO8P,GAAY9M,EAAK5E,OAAS4B,EAAI,IAChE4Y,EAAO1Y,EAAE,EAEbyY,GAAI9N,KAAK,IAAK,SAAUxH,EAAGrD,EAAGuE,GAAK,MAAOtE,GAAEoD,EAAEpD,GAAKuS,EAAOnP,EAAGkB,GAAKsU,IAC7DhO,KAAK,QAASvJ,GAEf2P,EACA0H,EAAI9N,KAAK,IAAK+N,GACT/N,KAAK,SAAU,GAEpB8N,EAAI9N,KAAK,IAAK,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAIA,EAAEmD,EAAEnD,GAAK0Y,IACnD/N,KAAK,SAAU,SAAUxH,GAAK,MAAOA,GAAEnD,GAAK,EAAI0Y,EAAO1Y,EAAEmD,EAAEnD,GAAKA,EAAEmD,EAAEnD,GAAK0Y,IAzFtFtc,KAAKiP,kBAAkB,YACvB,IAAInE,GAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FyB,EAAMhC,EAAQiS,MACVjS,GAAQI,MAAMY,SACtB,IAAIhJ,GAAIgI,EAAQI,MAAMa,WAClB2D,EAAQnP,KACR2D,EAAI,SAAUwD,GAAK,MAAOjF,MAAKsL,MAAM2B,EAAMmE,OAAOnM,IAAM,IACxDvD,EAAI,SAAUuD,GAAK,MAAOjF,MAAKsL,MAAM2B,EAAMyE,OAAOzM,IAAM,IACxDsV,EAAU,SAAU1V,GAAK,MAAOA,GAAEL,MAClC6V,EAAclc,EAAEgK,GAAG5J,SAAS8L,EAAI2J,OAAQ,EAAGlW,MAC3CwT,EAAYnT,EAAEgK,GAAG5J,SAAS8L,EAAImQ,YAAa1c,KAAKwT,UAAWxT,MAC3D2U,EAAQtU,EAAEqa,aAAcnQ,EAAQiS,OAAOxB,QAAUA,EAAUgB,GAAU,GACrE5N,EAAS7D,EAAQiS,OAAOxB,QAAUA,EAAUgB,EAC5CW,EAAetc,EAAE2G,IAAIN,EAAM,SAAUwT,GACrC,OACI7Y,KAAM6Y,EAAO7Y,KACbqF,KAAMrG,EAAEwW,OAAOqD,EAAOxT,KAAM,SAAUK,EAAGrD,GACrC,MAAa,KAANA,GAAU,EAAOC,EAAEoD,EAAEpD,KAAOA,EAAEuW,EAAOxT,KAAKhD,EAAE,GAAGC,QAK9DuX,EAAQ9a,GAAGqb,OAAOP,QAAQ1S,OAAO,SAAUzB,GAC3C,MAAOA,GAAEL,OAGTwT,EAASnL,EAAM2F,UAAU,YACpBhO,KAAKwU,EAAMyB,GAEpBzC,GAAOvF,QACFlG,OAAO,KACPF,KAAK,QAAS,SAAUxH,EAAGrD,GAAK,MAAO,aAAeA,EAAE,GAAK,IAAMqD,EAAE1F,OAE1E6Y,EAAOlE,OACFC,QAEL,IAAI2G,GAAO1C,EAAOxF,UAAU,WACnBhO,KAAK+V,EAGFjJ,GAAY9M,EAAK5E,OAASyK,EAAI2P,aAAe,EACzD,IAAIE,GAAW,UAAY7R,EAAQsB,QAAQhB,OAAS,mBAAqB,GAEzE+R,GAAKjI,QACAlG,OAAO,QACPF,KAAK,QAAS6N,GACdnb,KAAK0T,GAENpK,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,QACrD+R,EAAK5G,OACApB,aAAa9J,SAASA,GACtByD,KAAK,IAAKhM,GACVgM,KAAK,SAAU,WAAc,MAAO,KACpC0H,SACL2G,EAAKhI,aAAa9J,SAASA,GACtB7J,KAAKmN,KAEVwO,EAAK5G,OAAOC,SACZ2G,EAAK3b,KAAKmN,IApElB,GAAI1D,IACA8R,QACIxB,SAAS,EACTkB,aAAc,EACdQ,YAAa,WAAa,MAAO1c,MAAKwT,WACtC0C,OAAQ,WAAa,MAAO,KAmGpChI,GAAOxD,SAAWA,EAoBlBJ,QAAQwB,OAAO,SAAUoC,MAI7B,WAEI5D,QAAQwB,OAAO,cAAe,SAAUpF,EAAMqI,GAC1CA,EAAMN,OAAO,QACRF,KAAK,QAAS,QACdA,KAAK,UAAW,GAChBA,KAAK,YAAa,gCAClBA,KAAK,IAAK,22DACVqG,aACIiI,MAAM,KACN/R,SAAS,KACTyD,KAAK,UAAW,QAKjC,WAaI,QAASuO,GAAsBvS,GAC3B,GAAIwS,KAiBJ,OAhBkE,KAA7D,MAAO,SAAU,UAAUzN,QAAQ/E,EAAQyS,OAAOC,QACnDF,EAAQ3U,KAAKmC,EAAQyS,OAAOC,QAE5BF,EAAQ3U,KAAK,OAGiD,KAA7D,OAAQ,SAAU,SAASkH,QAAQ/E,EAAQyS,OAAOE,QACnDH,EAAQ3U,KAAKmC,EAAQyS,OAAOE,QAE5BH,EAAQ3U,KAAK,SAGgB,aAA7BmC,EAAQyS,OAAOG,WACfJ,EAAQ3U,KAAK,YAGV2U,EAGX,QAASK,GAAO1W,EAAMqI,EAAOxE,GACzB,GAAIyS,GAAShd,KAAKsO,UAAUoG,UAAU,mBAAmBhO,MAAM,OAC3D+L,EAAKpS,EAAEgK,GAAGjG,WAAW,SAAU,wCAC/BiZ,EAAQ3W,EAAK5E,OACbwb,GAAgB7K,EAAGxN,OAAS,GAAKoY,EAAQ,GACzCE,GAAOhT,EAAQI,MAAMa,WAAa8R,GAAgB,EAClDE,EAAa,SAAUC,GAGvB,GAA8B,WAA1BlT,EAAQyS,OAAOE,QAAwBO,EAAU3b,OAArD,CAKA,GAAI4b,GAAcD,EAAU,GAAGE,WAAWlY,YACtCwE,GAAQM,EAAQI,MAAMY,UAAYmS,GAAe,EAAInT,EAAQI,MAAMU,gBAAgBpB,IAEvF7J,IAAGgJ,OAAOqU,EAAU,GAAGE,YAClB7Y,MAAM,OAAQmF,EAAO,QAG1BqE,EAAY0O,EAAOrI,QAClBlG,OAAO,OACPF,KAAK,QAAS,WACX,OAAQ,kBAAkBlI,OAAOyW,EAAsBvS,IAAUgF,KAAK,OAEzEhB,KAAK,QAAS,WACX,GAAIhF,KAUJ,IAR8B,QAA1BgB,EAAQyS,OAAOC,OACf1T,EAAOnB,KAAK,UACqB,WAA1BmC,EAAQyS,OAAOC,OACtB1T,EAAOnB,KAAK,QAAUmV,EAAM,MAE5BhU,EAAOnB,KAAK,YAAcmC,EAAQI,MAAMU,gBAAgBF,OAAS,GAAK,MAG5C,SAA1BZ,EAAQyS,OAAOE,OACf3T,EAAOnB,KAAK,SAAWmC,EAAQI,MAAMe,SAAW,UAC7C,IAA8B,WAA1BnB,EAAQyS,OAAOE,OAAqB,CAC3C,GAAI9H,GAAS/U,EAAEgK,GAAGjG,WAAWpE,KAAM,kBAEnCuJ,GAAOnB,KAAK,WAAamC,EAAQI,MAAMY,UAAY6J,EAAOpQ,OAAS,EAAIuF,EAAQI,MAAMU,gBAAgBpB,MAAQ,UAE7GV,GAAOnB,KAAK,cAGhB,OAAOmB,GAAOgG,KAAK,OAGvBqO,EAAUtP,EAAUoG,UAAU,yBAC7BhO,KAAKA,EAAM,SAAUK,GAAK,MAAOA,GAAE1F,MAE5Buc,GAAQjJ,QACflG,OAAO,OACPF,KAAK,QAAS,WACX,MAAO,yBAGfqP,EAAQnP,OAAO,QACVF,KAAK,QAAS,SAAUxH,EAAGrD,GAAK,MAAO,gCAAkCA,EAAE,GAAK,IAAMrD,EAAEgK,GAAGjJ,kBAAkB2F,EAAE1F,QAEpHuc,EAAQnP,OAAO,QACVF,KAAK,QAAS,eACdlK,KAAKkG,EAAQyS,OAAO3M,WACpBpP,KAAKuc,GAEVI,EAAQ5H,OACHC,SApGT,GAAIvL,IACAsS,QACIC,OAAQ,SACRC,OAAQ,QACRC,UAAW,WACX9M,UAAW,SAAUtJ,GACjB,MAAOA,GAAE1F,OAiGrB+b,GAAO1S,SAAWA,EAoBlBJ,QAAQwB,OAAO,SAAUsR,MAI7B,WAyDI,QAASlP,GAAO2P,EAAS9O,EAAOxE,GA4B5B,QAASuT,GAAgBC,GAAU,MAAO,UAAUhX,EAAGrD,GAAK,OAAQqa,GAAQ,IAAM,OAAQra,EAAE,GAAK,IAAMrD,EAAEgK,GAAGjJ,kBAAkB2F,EAAE1F,OAEhI,QAAS2c,KACL,GAAIC,GAAY7d,GAAGoO,IAAI0P,OAClBva,EAAE,SAAUoD,GAAK,MAAOpD,GAAEoD,KAC1BnD,EAAE,WAAc,MAAOA,IAAGD,EAAG,EAAGC,EAAG2G,EAAQqB,MAAM9C,KAAO,MAEzDoV,EAAO9d,GAAGoO,IAAI0P,OACbva,EAAE,SAAUoD,GAAK,MAAOpD,GAAEoD,KAC1BnD,EAAE,SAAUmD,GAAK,MAAOnD,GAAEmD,IAE5BwD,GAAQ2T,KAAKtC,QAAQsC,EAAKrC,YAAY,WAEzC,IAAIsC,GAASC,EAAcC,GACvBnE,EAASnL,EAAM2F,UAAU,YACpBhO,KAAKA,EAAM,SAAUK,GAAK,MAAOA,GAAE1F,OAGxC6G,EAAKgS,EAAOvF,QAAQlG,OAAO,SAC1BF,KAAK,QAAQuP,EAAgB,WAC7BrP,OAAO,QACHF,KAAK,QAAS,OAEvB,IAAI+P,EAAe,CACf,GAAIC,GAAqC,kBAAvBF,EAAyCH,EAAOD,CACvD/V,GAAGqG,KAAK,IAAK,SAASxH,GAAK,MAAOwX,GAAYxX,EAAEL,QACtDzF,KAAKZ,EAAEme,QAAQL,EAAOxJ,MAAOuJ,QAElChW,GAAGqG,KAAK,IAAK,SAAUxH,GAAK,MAAOmX,GAAKnX,EAAEL,OAI9CwB,GAAKgS,EACA3L,KAAK,QAASuP,EAAgB,WAC9B1U,OAAO,SAERkV,EACApW,EAAGjH,KAAKZ,EAAEme,QAAQL,EAAO/P,OAAQ8P,IAEjChW,EAAGqG,KAAK,IAAK,SAAUxH,GAAK,MAAOmX,GAAKnX,EAAEL,QAI1C4X,EACApE,EAAOlE,OACFC,SAELiE,EAAOlE,OAAOC,SAItB,QAASwI,KACL,GAAIC,GAAU3P,EAAM2F,UAAU,uBACzBhO,KAAKA,EAAM,SAAUK,GAAK,MAAOA,GAAE1F,MAExCqd,GAAQ/J,QAAQlG,OAAO,KAClBF,KAAK,QAASuP,EAAgB,+BAEnCY,EAAQ1I,OAAOC,QAEf,IAAI0I,GAAOD,EAAQhK,UAAU,QACxBhO,KAAK,SAAUK,GAAK,MAAOA,GAAEL,MAAS,SAAUK,GAAK,MAAOA,GAAEpD,GAEnEgb,GAAKhK,QAAQlG,OAAO,UACfF,KAAK,QAAS,OACdA,KAAK,IAAKhE,EAAQ2T,KAAKU,OAAOnF,MAC9BlL,KAAK,UAAW,GAIrBoQ,EAAK3I,OAAOC,SAERqI,EACAK,EAAK/J,aAAaiI,MAAM/R,GACnByD,KAAK,KAAM5K,GACX4K,KAAK,KAAM3K,GACX2K,KAAK,UAAW,GAErBoQ,EAAKpQ,KAAK,KAAM5K,GACX4K,KAAK,KAAM3K,GACX2K,KAAK,UAAW,GAI7B,QAAS+M,KACL,GAAIC,GAAc,GACdmD,EAAU3P,EAAM2F,UAAU,qBACzBhO,KAAKA,EAAM,SAAUK,GAAK,MAAOA,GAAE1F,MAExCqd,GAAQ/J,QAAQlG,OAAO,KAClBF,KAAK,QAAS,SAAUxH,EAAGrD,GAAK,MAAO,uBAAyBA,EAAE,KAEvEgb,EAAQ1I,OAAOC,QAEf,IAAI0I,GAAOD,EAAQhK,UAAU,oBACxBhO,KAAK,SAAUK,GAAK,MAAOA,GAAEL,MAAS,SAAUK,GAAK,MAAOA,GAAEpD,GAEnEgb,GAAKhK,QAAQlG,OAAO,UACfF,MACGsQ,QAAS,kBACTC,EAAKvD,EACLwD,QAAW,IAGnBJ,EAAKpQ,MACDyQ,GAAMrb,EACNsb,GAAMrb,IAGV+a,EAAK3I,OAAOC,SAxIhBjW,KAAKiP,kBAAkB,YAEvB,IAAItL,GAAItD,EAAEmW,KAAK,SAAUzP,GAAK,MAAO/G,MAAKsT,OAAOvM,EAAEpD,GAAK3D,KAAKwT,UAAY,EAAI,IAAQxT,MACjF4D,EAAIvD,EAAEmW,KAAK,SAAUzP,GAAK,MAAO/G,MAAK4T,OAAO7M,EAAEnD,GAAK,IAAQ5D,KACxDuK,GAAQI,MAAMa,UACtB,IAAI8S,GAAgB/T,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,MACzEwT,GAAqB9T,EAAQ2T,KAAKG,oBAAsB,gBACxDvT,EAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,GAE3F,IAAIpE,GAAOrG,EAAE2G,IAAI6W,EAAS,SAAUqB,GAChC,MAAO7e,GAAE+G,OAAO8X,GACZxY,KAAMrG,EAAEwW,OAAOqI,EAAExY,KAAM,SAAUK,EAAGrD,GAChC,GAAU,IAANA,GAAkB,MAAPqD,EAAEnD,EAAW,OAAO,CACnC,IAAIub,GAAaxb,EAAEub,EAAExY,KAAKhD,EAAE,MAAQC,EAAEoD,EACtC,OAAc,OAAPA,EAAEnD,GAAaub,OA6HlC,OAxHAnB,KAEIzT,EAAQ2T,KAAKU,OAAO/T,QACpB4T,IAEAlU,EAAQsB,SAAWtB,EAAQsB,QAAQhB,QACnCyQ,IAkHGtb,KAnMX,GAYI8K,GACAuT,EAbA3T,GACAwT,MACItC,QAAQ,EACRyC,mBAAoB,gBAEpBO,QACI/T,QAAQ,EACR4O,KAAM,KAOd2E,GACAgB,iBACIzK,MAAO,WACH,GAAI0K,GAAOrf,IACXqf,GAAKnT,KAAK,WACN,GAAIoT,GAActf,KAAKuf,gBACvBnf,IAAGgJ,OAAOpJ,MACLuO,KAAK,mBAAoB+Q,EAAc,IAAMA,GAC7C/Q,KAAK,oBAAqB+Q,GAC1B1K,aAAa9J,SAASA,GAAU0U,KAAK,UACjCjR,KAAK,oBAAqB,MAI3CH,OAAQ,SAAU8P,GACdle,KAAKuO,KAAK,IAAK,SAAUxH,GAAK,MAAOmX,GAAKnX,EAAEL,QAC5C1G,KAAKkM,KAAK,WACN,GAAIoT,GAActf,KAAKuf,gBACvBnf,IAAGgJ,OAAOpJ,MACLuO,KAAK,mBAAoB+Q,EAAc,IAAMA,GAC7C/Q,KAAK,oBAAqB+Q,GAC1B1K,aAAa9J,SAASA,GAAU0U,KAAK,UACjCjR,KAAK,oBAAqB,OAK/CkR,iBACI9K,MAAO,SAAUuJ,GACble,KAAK4U,aAAa9J,SAASA,GACtByD,KAAK,IAAK,SAAUxH,GAAK,MAAOmX,GAAKnX,EAAEL,SAGhD0H,OAAQ,SAAU8P,GACdle,KAAK4U,aAAa9J,SAASA,GACtByD,KAAK,IAAK,SAAUxH,GAAK,MAAOmX,GAAKnX,EAAEL,UAqJxDwH,GAAOxD,SAAWA,EAqBlBJ,QAAQwB,OAAO,OAAQoC,MAI3B5D,QAAQwB,OAAO,UAAWzL,EAAEqf,MAE5B,WAyBI,QAASC,GAAiBpV,GACtB,MAAIlK,GAAEuf,SAASrV,EAAQsV,IAAIC,aAEnB5V,IAAKK,EAAQsV,IAAIC,WACjB7V,KAAMM,EAAQsV,IAAIC,WAClB5U,MAAOX,EAAQsV,IAAIC,WACnB3U,OAAQZ,EAAQsV,IAAIC,YAIrBvV,EAAQsV,IAAIC,WAGvB,QAASC,GAAY3K,EAAQ4K,EAAUC,GACnC,OACI/V,IAAK7J,EAAEgK,GAAGjI,MAAMgT,EAAOlL,IAAK,EAAG+V,GAC/B9U,OAAQ9K,EAAEgK,GAAGjI,MAAMgT,EAAOjK,OAAQ,EAAG8U,GACrChW,KAAM5J,EAAEgK,GAAGjI,MAAMgT,EAAOnL,KAAM,EAAG+V,GACjC9U,MAAO7K,EAAEgK,GAAGjI,MAAMgT,EAAOlK,MAAO,EAAG8U,IAI3C,QAASE,GAAY3V,GACjBa,QAAUuU,EAAiBpV,EAC3B,IAAIuL,GAAIvL,EAAQI,MAAMY,UAClBhJ,EAAIgI,EAAQI,MAAMa,UAEtB,OAAOuU,GAAY3U,QAAS0K,EAAGvT,GAGnC,QAAS4d,GAAkBC,EAAOC,GAG9B,MAAOD,GAAQ,GAAa,EAARA,EAAYC,EAAMD,EAAQA,EAGlD,QAASE,GAAoBlV,EAAS0K,EAAGvT,GAGrC,OACI2H,IAAKiW,EAAkB/U,EAAQlB,IAAK3H,IAAM,EAC1C4I,OAAQgV,EAAkB/U,EAAQD,OAAQ5I,IAAM,EAChD0H,KAAMkW,EAAkB/U,EAAQnB,KAAM6L,IAAM,EAC5C5K,MAAOiV,EAAkB/U,EAAQF,MAAO4K,IAAM,GAItD,QAAS9J,GAAStF,EAAMqI,EAAOxE,GAqD3B,QAAS0Q,GAAasF,GAiClB,QAASC,GAASja,GACd,GAAI7C,GAAItD,GAAGyb,YAAY7b,KAAKygB,SAAUla,EAEtC,OADAvG,MAAKygB,SAAW/c,EAAE,GACX,SAASgd,GACZ,MAAOC,GAAIjd,EAAEgd,KApCrB,GAAIC,GAAMvgB,GAAGoO,IAAImS,MACZC,YAAYC,GAAQC,YAAYA,GAEjCC,EAAW3gB,GAAGoO,IAAImS,MACjBC,YAAYC,GAAQC,YAAYA,GAChCE,WAAW,GAAGC,SAAS,GAExBpB,EAAMU,EAAM7L,UAAU,QACrBhO,KAAK,SAAUK,GAAK,MAAOma,GAAQna,EAAEL,OAAU,SAAUK,GAAK,MAAOA,GAAEL,KAAK/C,GAEjFkc,GAAIlL,QACClG,OAAO,QACPF,KAAK,QAAS4M,GACd5M,KAAK,IAAK,SAAUxH,GAAK,MAAOga,GAASha,KACzCmF,KAAK,SAAUnF,GAAK/G,KAAKygB,UAAaO,WAAYja,EAAEia,WAAYC,SAAUla,EAAEia,cAE7E1C,GACAuB,EAAI7J,OACCC,SAEL4J,EAAIjL,aAAa9J,SAASA,GACrB0U,KAAK,YACL2B,UAAU,IAAKX,KAEpBX,EAAI7J,OAAOC,SACX4J,EAAItR,KAAK,IAAKoS,IA7EtB,GAAI7V,GAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FwT,EAAgB/T,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,OACrEiL,EAAIvL,EAAQI,MAAMY,UAAWhJ,EAAIgI,EAAQI,MAAMa,WAC/CJ,EAAU8U,EAAYjf,KAAKjB,KAAMuK,GACjC0R,EAAYvV,EAAK5E,OACjBsf,EAAgB/gB,EAAEmH,KAAK+C,EAAQsV,IAAIC,WAAW7V,KAAMM,EAAQsV,IAAIC,WAAW5U,OAAQ,SAAUnE,GAAK,MAAY,OAALA,IACzGsa,EAAgBhhB,EAAEmH,KAAK+C,EAAQsV,IAAIC,WAAW5V,IAAKK,EAAQsV,IAAIC,WAAW3U,QAAS,SAAUpE,GAAK,MAAY,OAALA,IACzGua,EAAehB,EAAoBlV,EAAS0K,EAAGvT,GAE/Cgf,EAAgBrf,KAAK4G,IAAIgN,EAAGvT,GAG5Bif,EAAiBtf,KAAK4G,KAAKgN,EAAIwL,EAAarX,KAAOqX,EAAapW,OAAS+Q,EAAY1Z,EAAI+e,EAAapX,IAAMoX,EAAanW,QAAW,EACpI0V,EAASV,EAAkB9f,EAAEgK,GAAG5J,SAAS8J,EAAQsV,IAAIe,YAAaY,EAAgBxhB,KAAMwhB,EAAgBD,GAAgBA,GAExHT,EAAcX,EAAkB9f,EAAEgK,GAAG5J,SAAS8J,EAAQsV,IAAIiB,YAAa,EAAG9gB,KAAM6gB,GAASA,GACzFK,EAAU9gB,GAAGqb,OAAOoE,MAAMO,MAAM,SAAUrZ,GAAK,MAAOA,GAAEnD,IAAM0C,KAAK,MACnEmb,GAAW3L,EAAc,EAAT+K,GAAc5E,EAAY,IAAK,EAC/CyF,EAAUnf,EAAI,EAEd4Y,EAAU,SAAUpU,EAAGrD,GACvB,MAAO,cAAgB6G,EAAQsB,QAAQhB,OAAS,mBAAqB,IAAM,OAASnH,EAAE,GAAK,IAAMqD,EAAEL,KAAK/C,GAExGge,EAAe,SAAU5a,EAAErD,GAC3B,GAAIke,GAAmB,EAATf,EACVgB,EAAOT,EAAgBK,EAAUZ,EAASS,EAAarX,KACvD6X,EAAOT,EAAgBK,EAAUb,EAASS,EAAapX,GAE3D,OAAO,cAAgB2X,EAAQD,EAAUle,GAAM,IAAM,EAAS,KAG9Dqe,EAAWhT,EAAM2F,UAAU,eAC1BhO,KAAKA,EAEVqb,GAASpN,QAAQlG,OAAO,SACnBF,KAAK,QAAS,aACdA,KAAK,YAAaoT,GAClB1gB,KAAKga,GAEV8G,EAAS/L,OAAOC,SAEZqI,EACAyD,EACK9gB,KAAKga,GACLrG,aAAa9J,SAASA,EAAS,GAC/ByD,KAAK,YAAaoT,GAEvBI,EAAS9gB,KAAKga,GACT1M,KAAK,YAAaoT,GAxH/B,GAAIjX,IACAmV,KACIC,YACI7V,KAAM,KACNC,IAAK,KACLgB,MAAO,KACPC,OAAQ,MAQZ2V,YAAa,KAKbF,YAAa,MAmJrB5U,GAAStB,SAAWA,EAkBpBJ,QAAQwB,OAAO,MAAOE,MAI1B,WAWI,QAASgW,GAAYtb,EAAMqI,EAAOxE,GAC9BvK,KAAKiP,kBAAkB,YACvB,IAAInE,GAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FwT,EAAgB/T,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,OACrE0B,EAAMhC,EAAQ0X,QACdC,EAAgBliB,KAAKwT,UAAY,EACjC1I,EAAW,IACXnH,EAAItD,EAAEmW,KAAK,SAAUzP,GAAK,MAAO/G,MAAKsT,OAAOvM,EAAEpD,GAAKue,GAAkBliB,MACtE4D,EAAIvD,EAAEmW,KAAK,SAAUzP,GAAK,MAAO/G,MAAK4T,OAAO7M,EAAEnD,IAAO5D,MACtDuC,EAAIgI,EAAQI,MAAMa,WAClB2P,EAAU,SAAUpU,EAAGrD,GAAK,MAAOqD,GAAE1F,KAAO,cAAgBqC,EAAE,IAE9DwW,EAASnL,EAAM2F,UAAU,WACxBhO,KAAKA,EAEVwT,GAAO3L,KAAK,QAAS4M,GAErBjB,EAAOvF,QAAQlG,OAAO,SACjBF,KAAK,QAAS4M,GAEnBjB,EAAOlE,OAAOC,QAEd,IAAI0I,GAAOzE,EAAOxF,UAAU,QACvBhO,KAAK,SAAUK,GAAK,MAAOA,GAAEL,MAAS,SAAUK,GAC7C,MAAOwD,GAAQ0X,QAAQxF,QAAU1V,EAAEwD,EAAQ0X,QAAQxF,SAAW1V,EAAEpD,GAGxEgb,GAAKhK,QAAQlG,OAAO,UACXF,KAAK,QAAS,uBACdA,KAAK,IAAKhC,EAAIsU,QACdtS,KAAK,KAAM5K,GACX4K,KAAK,KAAMhM,GAEhB+b,EACAK,EAAK/J,aAAa9J,SAASA,GACtByD,KAAK,IAAKhC,EAAIsU,QACdtS,KAAK,KAAM5K,GACX4K,KAAK,KAAM3K,GAEhB+a,EAAKpQ,KAAK,IAAKhC,EAAIsU,QACdtS,KAAK,KAAM5K,GACX4K,KAAK,KAAM3K,GAIpB+a,EAAK3I,OAAOC,SAtDhB,GAAIvL,IACAiB,OACIiD,KAAM,UAEVqT,SACIpB,OAAQ,GAoDhBmB,GAAYtX,SAAWA,EAoBvBJ,QAAQwB,OAAO,UAAWkW,MAK9B,WAsBI1X,QAAQwB,OAAO,eAAgB,SAAUpF,EAAMqI,EAAOxE,GAElD,GAAI4X,GAAiBniB,KAAK4L,QAAQ0E,aAC9BzE,EAAUzL,GAAGgJ,OAAOmB,EAAQ6X,aAAala,GAE7C2D,GAAQwW,QAAQ,iBAAiB,EAGjC,IAAIC,GAAc,SAAUvb,GACxB,GAAIwb,GAAS,SAAU9a,GACnB,QAASA,GAAY,MAAPA,EAAE7D,IAEhB4e,EAAQ,SAAU/a,EAAG/D,GACrB,GAAIoL,GAAQzO,EAAEuf,SAAS7Y,EAAEpD,GAAKoD,EAAEpD,EAAI4G,EAAQoB,MAAMhF,WAAW2I,QAAQvI,EAAEpD,EACvE,OAAQ4e,GAAO9a,EAAEf,KAAKoI,IAElB,MADE2T,WAAYhb,EAAEpG,KAAM+e,MAAO3Y,EAAEf,KAAKoI,GAAOlL,EAAGwY,SAAU,MAAQ1Y,EAAE,KAGtEgf,EAAWriB,EAAEwW,OAAOxW,EAAE2G,IAAIN,EAAM8b,GAAQ,SAAU7e,GAAK,MAAOA,KAC9DU,EAAOhE,EAAE2G,IAAI0b,EAAU,SAAUhC,GAAK,MAAO,gBAAkBA,EAAEtE,SAAW,MAAQsE,EAAE+B,WAAa,KAAON,EAAezB,EAAEN,OAAS,YAAc7Q,KAAK,MAC3J1D,GAAQ8W,KAAKte,GAAMS,OAAO8d,QAAS,WAGnCC,EAAa,WAEbhX,EAAQ8W,KAAK,IAGjB3iB,MAAKwO,IAAIkG,UAAU,oBACdoO,GAAG,oBAAqBR,EAAY9L,KAAKxW,OACzC8iB,GAAG,mBAAqBD,EAAWrM,KAAKxW,YAIrD,WAYI,QAASkO,GAAOxH,EAAMqI,EAAOxE,GA8IzB,QAASwY,GAAsBhc,GAC3B,GAAIvB,KAcJ,OAbAnF,GAAE6L,KAAKxF,EAAM,SAAUwT,GACnB,GAAI7Y,GAAO6Y,EAAO7Y,IAClBhB,GAAE6L,KAAKgO,EAAOxT,KAAM,SAAUsc,GACtBA,EAAMrf,IAAMoD,EAAEpD,GAAKoD,EAAEnD,IAAMof,EAAMpf,GACjC4B,EAAI4C,MACAzE,EAAGqf,EAAMrf,EACTC,EAAGof,EAAMpf,EACTsW,OAAQ7Y,QAMjBmE,EA3JX,GAAIyd,GAAiB,WACjBC,aAAaljB,KAAK6L,QAAQsX,YAG1BC,EAAgB,SAAUrE,EAASlC,GAChC7c,KAAKuK,QAAQsB,QAAQwX,QACpBrjB,KAAKsjB,eACA1O,aAAa9J,SAAS+R,GAClB/X,MAAM,UAAWia,GAE1B/e,KAAKsjB,eAAexe,MAAM,UAAWia,IASzCwE,EAAkB,SAAUxc,GAC5B,GAcIyc,GAdAC,EAAkB,WAClB,MAAmC,SAA5BrjB,GAAGsjB,MAAMC,OAAOC,QAAqBvjB,EAAEgK,GAAGT,YAAYxJ,GAAGsjB,MAAMC,QAAUvjB,GAAGyjB,MAAM7jB,KAAKsO,UAAUwV,SAExGxQ,EAAStT,KAAKsT,OACdM,EAAS5T,KAAK4T,OACdlI,EAAW1L,KAAKuK,QAAQI,MAAMe,SAC9BH,EAAYvL,KAAKuK,QAAQI,MAAMY,UAC/BE,EAAUzL,KAAKuK,QAAQI,MAAMc,QAC7BD,EAAaxL,KAAKuK,QAAQI,MAAMa,WAChCuY,EAAW/jB,KAAKuK,QAAQsB,QAAQkY,SAChC/e,EAAQgf,WAAWhkB,KAAKsjB,eAAeQ,OAAOG,aAC9Chf,EAAS+e,WAAWhkB,KAAKsjB,eAAeQ,OAAOI,cAC/CC,EAAS7Q,EAASA,EAAOvM,EAAEpD,GAAK8f,EAAgBxiB,KAAKjB,MAAM,GAC3DokB,EAASxQ,EAASA,EAAO7M,EAAEnD,GAAK6f,EAAgBxiB,KAAKjB,MAAM,GAG3DqkB,EAAgB,SAAUC,GA6B1B,MA3BIA,GAAI3gB,EAAI+H,IACR4Y,EAAI3gB,EAAI+H,EAAWqY,GAInBO,EAAI3gB,EAAIqB,EAAQ0G,EAAWH,IAC3B+Y,EAAI3gB,GAAM2gB,EAAI3gB,EAAIqB,GAAU0G,EAAWH,GAEvC+Y,EAAI1gB,EAAI6H,EAAU2Y,GAAUnf,EAAS8e,GACrCP,GAAe,GAIfc,EAAI1gB,EAAI6H,IACR6Y,EAAI1gB,EAAI6H,EAAUsY,EAGdP,GAAgBY,GAAUE,EAAI1gB,GAAKwgB,GAAUE,EAAI1gB,EAAIqB,IACrDqf,EAAI1gB,EAAIwgB,EAAS3Y,EAAUsY,IAK/BO,EAAI1gB,EAAIqB,EAASwG,EAAUD,IAC3B8Y,EAAI1gB,EAAI1B,KAAKoG,IAAImD,EAASA,EAAUD,GAAcvG,EAAS8e,KAGxDO,GAGP9G,GACA3H,SAAY,WACR,GAAIyO,IACA3gB,EAAG+H,EAAWyY,GAAUJ,EAAW/e,GACnCpB,EAAG6H,EAAU2Y,GAAUL,EAAW9e,GAGtC,OAAOof,GAAcC,IAGzB1O,WAAc,WACV,GAAI0O,IACA3gB,EAAG+H,EAAW0Y,GAAUL,EAAW/e,GACnCpB,EAAG6H,EAAU0Y,GAAUJ,EAAW9e,GAGtC,OAAOof,GAAcC,IAI7B,OAAO/Z,GAAQI,MAAMW,aAAekS,EAAW5H,aAAe4H,EAAW3H,YAIzEyM,EAAc,SAAUvb,GACxBwd,EAAKtjB,KAAKjB,KAAM+G,IAGhB8b,EAAa,WACbO,EAAcniB,KAAKjB,KAAM,EAAGA,KAAKuK,QAAQsB,QAAQ2Y,WAGjDC,EAAiB,SAAU1d,EAAG2d,GAC9B,QAASC,KACL,GAAIC,GAAS9jB,MAAMC,UAAUC,MAAMC,KAAKC,WACpC2jB,EAAOD,EAAO,GACdE,EAAOF,EAAO5jB,MAAM,GAEpB+jB,EAAW1kB,EAAE2G,IAAI6d,EAAM,SAASG,GAAM,MAAOA,GAAG7jB,MAAMnB,KAAM8kB,KAAUze,QAAQhG,EAAEqf,MAEpF,OAAOrf,GAAE4kB,MAAM5kB,EAAE+I,OAAO2b,IAG5B,GAAIxa,GAAUvK,KAAKuK,QAAQsB,QACvBqZ,GACA,SAAUne,GAAK,MAAOwD,GAAQ8F,UAAYhQ,EAAEme,QAAQjU,EAAQ8F,UAAWtJ,EAAG2d,GAAa,MACvF,SAAU3d,GAAK,MAAOA,GAAEG,eAAe,KAAO7G,EAAEme,QAAQ,SAAUzX,GAAK,MAAOA,GAAEmT,OAAS,OAASnT,EAAEpD,EAAI,OAASoD,EAAEnD,GAAMmD,GAAK,MAC9H,SAAUA,GAAK,MAAOA,GAAEL,MAAQK,EAAEL,KAAKQ,eAAe,KAAO7G,EAAEme,QAAQ,SAAUzX,GAAK,MAAOA,GAAEmT,OAAS,OAAUnT,EAAEpD,EAAI,OAASoD,EAAEnD,GAAMmD,EAAEL,MAAQ,MACnJ,SAAUK,GAAK,MAAOA,GAAEG,eAAe,SAAW7G,EAAEme,QAAQ,SAAUzX,GAAK,MAAOA,GAAEqZ,OAAUrZ,GAAK,MACnG,WAAc,MAAO,YAAc,MAAO,OAI9C,OAAO4d,GAAMO,EAAYne,MAGzBwd,EAAO,SAAUxd,GACjBkc,EAAehiB,KAAKjB,MAEpBmlB,WAAapC,EAAsBhc,GAEnC/G,KAAKsjB,eAAela,OAAO,SAASuZ,KAAK8B,EAAexjB,KAAKjB,KAAMmlB,WAAW,IAAMpe,EAAGoe,YAEvF,IAAIb,GAAMf,EAAgBtiB,KAAKjB,KAAM+G,EAErC/G,MAAKsjB,eACAxe,MAAM,MAAOwf,EAAI1gB,EAAI,MACrBkB,MAAM,OAAQwf,EAAI3gB,EAAI,MAE3Byf,EAAcniB,KAAKjB,KAAMA,KAAKuK,QAAQsB,QAAQkT,QAAS/e,KAAKuK,QAAQsB,QAAQuZ,UAqBhFplB,MAAKsjB,eAAiBtjB,KAAKsO,UACtBxJ,MAAM,WAAY,YAClB4P,UAAU,eAAehO,MAAM,IAEpC1G,KAAKsjB,eACA3O,QAAQlG,OAAO,OACfF,KAAK,QAAS,cACdzJ,MAAM,UAAW,GACjB2J,OAAO,OACHF,KAAK,QAAS,QAEvBvO,KAAKwO,IAAIkG,UAAU,oBACdoO,GAAG,oBAAqBR,EAAY9L,KAAKxW,OACzC8iB,GAAG,mBAAqBD,EAAWrM,KAAKxW,OAxLjD,GAAI0K,IACAmB,SACIhB,QAAQ,EACRwY,SAAS,EACTtE,QAAS,IACTqG,SAAU,IACVZ,SAAU,IACVT,SAAU,GAoLlB7V,GAAOxD,SAAWA,EAyBlBJ,QAAQwB,OAAO,UAAWoC,MAO9B,WAEI,QAASmX,GAAiBC,GACtB,GAAI9d,GAAMnH,EAAEyW,QAAQzW,EAAE2W,MAAMsO,EAAS,SACjCC,EAAW/d,EAAI1F,QAAUzB,EAAEuf,SAASpY,EAAI,GAAG7D,GAC3C6hB,EAAa,SAAUze,EAAGrD,GAAK,OAASC,EAAGD,EAAGE,EAAGmD,EAAEnD,GAEvD,OAAO2hB,GAAW/d,EAAMnH,EAAE2G,IAAIQ,EAAKge,GAGvC,QAAS5Y,GAAK6Y,EAAK1W,EAAOxE,GACtBvK,KAAKiP,kBAAkB,YACvB,IAAIvI,GAAO2e,EAAiBI,GACxB3a,EAAgD,MAArCP,EAAQI,MAAMC,WAAWE,SAAmBP,EAAQI,MAAMC,WAAWE,SAAW,IAC3FwT,EAAgB/T,EAAQI,MAAMC,YAAcL,EAAQI,MAAMC,WAAWC,OACrElH,EAAItD,EAAEmW,KAAK,SAASzP,GAAK,MAAO/G,MAAKsT,OAAOvM,GAAK/G,KAAKwT,UAAY,GAAMxT,MACxE4D,EAAIvD,EAAEmW,KAAK,SAASzP,GAAK,MAAO/G,MAAK4T,OAAO7M,IAAO/G,MACnD0lB,EAAarlB,EAAEgK,GAAGpH,iBAAiByD,GACnC6B,EAASnI,GAAG6W,OAAOjX,KAAKsT,OAAO/K,UAC/Bod,EAAgBvlB,GAAG6W,OAAOvQ,EAAM,SAASe,GAAK,MAAOA,GAAE9D,IACvDiiB,EAAQ,SAAUjiB,GAAK,MAAO+hB,GAAW5hB,UAAY4hB,EAAW7hB,MAAQF,GAExEua,EAAOnP,EAAM2F,UAAU,eACtBhO,MAAM,GAEXwX,GAAKvJ,QAAQlG,OAAO,QACfF,KAAK,QAAS,cACdA,KAAK,KAAM5K,EAAE4E,EAAO,KACpBgG,KAAK,KAAM3K,EAAEgiB,EAAMD,EAAc,MACjCpX,KAAK,KAAM5K,EAAE4E,EAAO,KACpBgG,KAAK,KAAM3K,EAAEgiB,EAAMD,EAAc,MAEtCzH,EAAKlI,OAAOC,SAERqI,IACAJ,EAAOA,EAAKtJ,aAAa9J,SAASA,IAGtCoT,EAAK3P,KAAK,KAAM5K,EAAE4E,EAAO,KACpBgG,KAAK,KAAM3K,EAAEgiB,EAAMD,EAAc,MACjCpX,KAAK,KAAM5K,EAAE4E,EAAO,KACpBgG,KAAK,KAAM3K,EAAEgiB,EAAMD,EAAc,MAG1C/Y,EAAKlC,YAoBLJ,QAAQwB,OAAO,YAAac,MAKT,gBAAX3M,SAAuBA,QAAoC,gBAAnBA,QAAOC,QACvDD,OAAOC,QAAUoK,SAEjBvK,EAAKuK,QAAUA,QACQ,kBAAXub,SAAyBA,OAAOC,KACxCD,OAAQ,aAAe,WAAc,MAAOvb"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 32c5193b..0daf336e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "Contour",
"description": "Forio's Visualization Library",
- "version": "0.9.88",
+ "version": "0.9.89",
"dependencies": {
"lodash": "~2.4.1",
"d3": "~3.3.0"
diff --git a/src/scripts/core/version.js b/src/scripts/core/version.js
index 26ab95a8..0fb4d89a 100644
--- a/src/scripts/core/version.js
+++ b/src/scripts/core/version.js
@@ -1 +1 @@
-Contour.version = '0.9.88';
\ No newline at end of file
+Contour.version = '0.9.89';
\ No newline at end of file