From 693168b9cbfe56c079e59c97de3564a058980328 Mon Sep 17 00:00:00 2001 From: Jacob Rideout Date: Tue, 15 Oct 2013 14:22:14 -0400 Subject: [PATCH] Use a single gobal ID for each chart --- dc.js | 10 +++++++--- dc.min.js | 4 ++-- dc.min.js.map | 2 +- src/base-chart.js | 8 ++++++-- src/core.js | 2 +- test/base-chart-test.js | 4 ++-- test/coordinate-grid-chart-test.js | 2 +- web/js/dc.js | 10 +++++++--- 8 files changed, 27 insertions(+), 15 deletions(-) diff --git a/dc.js b/dc.js index c7f9817ef..358b630ce 100644 --- a/dc.js +++ b/dc.js @@ -255,7 +255,7 @@ dc.renderlet = function(_){ }; dc.instanceOfChart = function (o) { - return o instanceof Object && o.__dc_flag__; + return o instanceof Object && o.__dc_flag__ && true; }; dc.errors = {}; @@ -691,7 +691,7 @@ Every function on base chart are also inherited available on all concrete chart **/ dc.baseChart = function (_chart) { - _chart.__dc_flag__ = true; + _chart.__dc_flag__ = dc.utils.uniqueId(); var _dimension; var _group; @@ -957,7 +957,7 @@ dc.baseChart = function (_chart) { var a = _chart.anchor(); if (a && a.id) return a.id; if (a && a.replace) return a.replace('#',''); - return ""+dc.utils.uniqueId(); + return "" + _chart.chartID(); }; /** @@ -1475,6 +1475,10 @@ dc.baseChart = function (_chart) { return _chart; }; + _chart.chartID = function () { + return _chart.__dc_flag__; + }; + return _chart; }; diff --git a/dc.min.js b/dc.min.js index aab367179..e2768062c 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,3 +1,3 @@ -dc=function(){"use strict";var a={version:"1.7.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};a.chartRegistry=function(){function b(b){return b||(b=a.constants.DEFAULT_CHART_GROUP),c[b]||(c[b]=[]),b}var c={};return{has:function(a){for(var b in c)if(c[b].indexOf(a)>=0)return!0;return!1},register:function(a,d){d=b(d),c[d].push(a)},clear:function(a){a?delete c[a]:c={}},list:function(a){return a=b(a),c[a]}}}(),a.registerChart=function(b,c){a.chartRegistry.register(b,c)},a.hasChart=function(b){return a.chartRegistry.has(b)},a.deregisterAllCharts=function(b){a.chartRegistry.clear(b)},a.filterAll=function(b){for(var c=a.chartRegistry.list(b),d=0;d=b||void 0===b)return a;var d=a.transition().duration(b);return c instanceof Function&&c(d),d},a.units={},a.units.integers=function(a,b){return Math.abs(b-a)},a.units.ordinal=function(a,b,c){return c},a.units.fp={},a.units.fp.precision=function(b){var c=function(b,d){var e=Math.abs((d-b)/c.resolution);return a.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return c.resolution=b,c},a.round={},a.round.floor=function(a){return Math.floor(a)},a.round.ceil=function(a){return Math.ceil(a)},a.round.round=function(a){return Math.round(a)},a.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},a.renderlet=function(b){return arguments.length?(a._renderlet=b,a):a._renderlet},a.instanceOfChart=function(a){return a instanceof Object&&a.__dc_flag__},a.errors={},a.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},a.errors.InvalidStateException=function(){a.errors.Exception.apply(this,arguments)},a.dateFormat=d3.time.format("%m/%d/%Y"),a.printers={},a.printers.filters=function(b){for(var c="",d=0;d0&&(c+=", "),c+=a.printers.filter(b[d]);return c},a.printers.filter=function(b){var c="";return b&&(b instanceof Array?b.length>=2?c="["+a.utils.printSingleValue(b[0])+" -> "+a.utils.printSingleValue(b[1])+"]":b.length>=1&&(c=a.utils.printSingleValue(b[0])):c=a.utils.printSingleValue(b)),c},a.pluck=function(a,b){return function(c){return b?b.call(this,c[a]):c[a]}},a.utils={},a.utils.printSingleValue=function(b){var c=""+b;return b instanceof Date?c=a.dateFormat(b):"string"==typeof b?c=b:a.utils.isFloat(b)?c=a.utils.printSingleValue.fformat(b):a.utils.isInteger(b)&&(c=Math.round(b)),c},a.utils.printSingleValue.fformat=d3.format(".2f"),a.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},a.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},a.utils.GroupStack=function(){function a(a){d[a]||(d[a]=[])}var b,c,d=[[]],e=[];this.setDataPoint=function(b,c,e){a(b),d[b][c]=e},this.getDataPoint=function(b,c){a(b);var e=d[b][c];return void 0===e&&(e=0),e},this.addGroup=function(a,c){return c||(c=b),e.push([a,c]),e.length-1},this.addNamedGroup=function(a,b,c){var d=this.addGroup(a,c);return e[d].name=b,b},this.getGroupByIndex=function(a){return e[a][0]},this.getAccessorByIndex=function(a){return e[a][1]},this.size=function(){return e.length},this.clear=function(){d=[],e=[]},this.setDefaultAccessor=function(a){b=a},this.getDataLayers=function(){return d},this.clearDataLayers=function(){d=[[]]},this.showGroups=function(a,b){b&&(c=!1),this.toggleGroups(a,!1)},this.hideGroups=function(a,b){b&&(c=!0),this.toggleGroups(a,!0)},this.toggleGroups=function(a,b){for(var c=0;c0&&e[b-1].hidden)){for(var f={index:b,points:[]},g=d[b],h=0;h-a.constants.NEGLIGIBLE_NUMBER};var b=0;return a.utils.uniqueId=function(){return++b},a.utils.groupMax=function(b,c){var d=d3.max(b.all(),c);return a.utils.isNegligible(d)&&(d=0),d},a.utils.groupMin=function(b,c){var d=d3.min(b.all(),c);return a.utils.isNegligible(d)&&(d=0),d},a.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},a.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},a.utils.createLegendable=function(a,b,c,d){var e={name:a._getGroupName(b,c),data:b};return d&&(e.color=d),e},a.utils.safeNumber=function(b){return a.utils.isNumber(+b)?+b:0},a.events={current:null},a.events.trigger=function(b,c){return c?(a.events.current=b,setTimeout(function(){b==a.events.current&&b()},c),void 0):(b(),void 0)},a.cumulative={},a.cumulative.Base=function(){this._keyIndex=[],this._map={},this.sanitizeKey=function(a){return a+=""},this.clear=function(){this._keyIndex=[],this._map={}},this.size=function(){return this._keyIndex.length},this.getValueByKey=function(a){a=this.sanitizeKey(a);var b=this._map[a];return b},this.setValueByKey=function(a,b){return a=this.sanitizeKey(a),this._map[a]=b,b},this.indexOfKey=function(a){return a=this.sanitizeKey(a),this._keyIndex.indexOf(a)},this.addToIndex=function(a){a=this.sanitizeKey(a),this._keyIndex.push(a)},this.getKeyByIndex=function(a){return this._keyIndex[a]}},a.cumulative.Sum=function(){a.cumulative.Base.apply(this,arguments),this.add=function(a,b){b||(b=0),void 0===this.getValueByKey(a)?(this.addToIndex(a),this.setValueByKey(a,b)):this.setValueByKey(a,this.getValueByKey(a)+b)},this.minus=function(a,b){this.setValueByKey(a,this.getValueByKey(a)-b)},this.cumulativeSum=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.getValueByKey(e)}return c}},a.cumulative.Sum.prototype=new a.cumulative.Base,a.cumulative.CountUnique=function(){function b(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c}a.cumulative.Base.apply(this,arguments),this.add=function(a,b){void 0===this.getValueByKey(a)&&(this.setValueByKey(a,{}),this.addToIndex(a)),void 0!==b&&(void 0===this.getValueByKey(a)[b]&&(this.getValueByKey(a)[b]=0),this.getValueByKey(a)[b]+=1)},this.minus=function(a,b){this.getValueByKey(a)[b]-=1,this.getValueByKey(a)[b]<=0&&delete this.getValueByKey(a)[b]},this.count=function(a){return b(this.getValueByKey(a))},this.cumulativeCount=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.count(e)}return c}},a.cumulative.CountUnique.prototype=new a.cumulative.Base,a.baseChart=function(b){function c(a,b,c){var d=a.anchor(),e="__names__";c&&c!=a.valueAccessor()||(c="default"),b[e]||(b[e]={}),b[e][d]||(b[e][d]={a:[],n:[]});var f=b[e][d].a.indexOf(c);return-1==f&&(f=b[e][d].a.length,b[e][d].a[f]=c,b[e][d].n[f]={name:""}),b[e][d].n[f]}function d(){return o=b.root().append("svg").attr("width",b.width()).attr("height",b.height())}function e(c){if(!b[c]||!b[c]())throw new a.errors.InvalidStateException("Mandatory attribute chart."+c+" is missing on chart[#"+b.anchorName()+"]")}function f(a){I.splice(I.indexOf(a),1),i(),b._invokeFilteredListener(a)}function g(a){I.push(a),i(),b._invokeFilteredListener(a)}function h(){I=[],i(),b._invokeFilteredListener(null)}function i(){if(b.dimension()&&b.dimension().filter){var a=J(b.dimension(),I);I=a?a:I}}function j(){for(var a=0;a=0}),b},K=function(a){return a.all()};return b.width=function(a){return arguments.length?(r=d3.functor(a||q),b):r(n.node())},b.height=function(a){return arguments.length?(t=d3.functor(a||s),b):t(n.node())},b.dimension=function(a){return arguments.length?(k=a,b.expireCache(),b):k},b.data=function(a){return arguments.length?(K=d3.functor(a),b.expireCache(),b):K(l)},b.group=function(a,c){return arguments.length?(l=a,b.expireCache(),"string"==typeof c&&b._setGroupName(l,c),b):l},b._getGroupName=function(a,d){return c(b,a,d).name},b._setGroupName=function(a,d,e){c(b,a,e).name=d},b.ordering=function(a){return arguments.length?(w=a,b.expireCache(),b):w},b.computeOrderedGroups=function(a){var c=a.slice(0);if(c.length<2)return c;var d=crossfilter.quicksort.by(b.ordering());return d(c,0,c.length)},b.filterAll=function(){return b.filter(null)},b.dataSet=function(){return void 0!==k&&void 0!==l},b.select=function(a){return n.select(a)},b.selectAll=function(a){return n?n.selectAll(a):null},b.anchor=function(c,d){return arguments.length?(a.instanceOfChart(c)?(m=c.anchor(),n=c.root()):(m=c,n=d3.select(m),n.classed(a.constants.CHART_CLASS,!0),a.registerChart(b,d)),F=d,b):m},b.anchorName=function(){var c=b.anchor();return c&&c.id?c.id:c&&c.replace?c.replace("#",""):""+a.utils.uniqueId()},b.root=function(a){return arguments.length?(n=a,b):n},b.svg=function(a){return arguments.length?(o=a,b):o},b.resetSvg=function(){return b.select("svg").remove(),d()},b.filterPrinter=function(a){return arguments.length?(C=a,b):C},b.turnOnControls=function(){return n&&(b.selectAll(".reset").style("display",null),b.selectAll(".filter").text(C(b.filters())).style("display",null)),b},b.turnOffControls=function(){return n&&(b.selectAll(".reset").style("display","none"),b.selectAll(".filter").style("display","none").text(b.filter())),b},b.transitionDuration=function(a){return arguments.length?(B=a,b):B},b._mandatoryAttributes=function(a){return arguments.length?(E=a,b):E},b.render=function(){H.preRender(b),E&&E.forEach(e);var a=b.doRender();return p&&p.render(),b.activateRenderlets("postRender"),a},b.activateRenderlets=function(a){b.transitionDuration()>0&&o?o.transition().duration(b.transitionDuration()).each("end",function(){j(),a&&H[a](b)}):(j(),a&&H[a](b))},b.redraw=function(){H.preRedraw(b);var a=b.doRedraw();return b.activateRenderlets("postRedraw"),a},b._invokeFilteredListener=function(a){void 0!==a&&H.filtered(b,a)},b._invokeZoomedListener=function(){H.zoomed(b)},b.hasFilter=function(a){return arguments.length?I.indexOf(a)>=0:I.length>0},b.filter=function(a){return arguments.length?(null===a?h():b.hasFilter(a)?f(a):g(a),null!==n&&b.hasFilter()?b.turnOnControls():b.turnOffControls(),b):I.length>0?I[0]:null},b.filters=function(){return I},b.highlightSelected=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!0),d3.select(b).classed(a.constants.DESELECTED_CLASS,!1)},b.fadeDeselected=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!1),d3.select(b).classed(a.constants.DESELECTED_CLASS,!0)},b.resetHighlight=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!1),d3.select(b).classed(a.constants.DESELECTED_CLASS,!1)},b.onClick=function(c){var d=b.keyAccessor()(c);a.events.trigger(function(){b.filter(d),a.redrawAll(b.chartGroup())})},b.filterHandler=function(a){return arguments.length?(J=a,b):J},b.doRender=function(){return b},b.doRedraw=function(){return b},b.legendables=function(){return[]},b.legendHighlight=function(){},b.legendReset=function(){},b.keyAccessor=function(a){return arguments.length?(u=a,b):u},b.valueAccessor=function(a){return arguments.length?(v=a,b):v},b.label=function(a){return arguments.length?(x=a,y=!0,b):x},b.renderLabel=function(a){return arguments.length?(y=a,b):y},b.title=function(a){return arguments.length?(z=a,A=!0,b):z},b.renderTitle=function(a){return arguments.length?(A=a,b):A},b.renderlet=function(a){return D.push(a),b},b.chartGroup=function(a){return arguments.length?(F=a,b):F},b.expireCache=function(){return b},b.legend=function(a){return arguments.length?(p=a,p.parent(b),b):p},b.on=function(a,c){return H[a]=c,b},b},a.marginable=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},a.coordinateGridChart=function(b){function c(a){if(b.elasticX()&&!b.isOrdinal())v.domain([b.xAxisMin(),b.xAxisMax()]);else if(b.isOrdinal()&&0===v.domain().length){var c=b.computeOrderedGroups(b.data());v.domain(c.map(b.keyAccessor()))}b.isOrdinal()?b.prepareOrdinalXAxis():v.range([0,b.xAxisLength()]),E=E.scale(b.x()).orient("bottom"),d(a)}function d(c){var d=c.selectAll("g."+o);if(Q){d.empty()&&(d=c.insert("g",":first-child").attr("class",m+" "+o).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=E.tickValues()?E.tickValues():v.ticks(E.ticks()[0]),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return v(a)}).attr("y1",b.xAxisY()-b.margins().top).attr("x2",function(a){return v(a)}).attr("y2",0).attr("opacity",0);a.transition(g,b.transitionDuration()).attr("opacity",1),a.transition(f,b.transitionDuration()).attr("x1",function(a){return v(a)}).attr("y1",b.xAxisY()-b.margins().top).attr("x2",function(a){return v(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function e(a){(void 0===y||b.elasticY())&&(y=d3.scale.linear(),y.domain([b.yAxisMin(),b.yAxisMax()]).rangeRound([b.yAxisHeight(),0])),y.range([b.yAxisHeight(),0]),J=J.scale(y).orient("left"),f(a)}function f(c){var d=c.selectAll("g."+n);if(P){var e=J.tickValues()?J.tickValues():y.ticks(J.ticks()[0]);d.empty()&&(d=c.insert("g",":first-child").attr("class",m+" "+n).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",1).attr("y1",function(a){return y(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return y(a)}).attr("opacity",0);a.transition(g,b.transitionDuration()).attr("opacity",1),a.transition(f,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return y(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return y(a)}),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b.xAxisY()-b.margins().top}function h(){return b.anchorName()+"-clip"}function i(){var c=a.utils.appendOrSelect(s,"defs"),d=a.utils.appendOrSelect(c,"clipPath").attr("id",h()),e=2*V;a.utils.appendOrSelect(d,"rect").attr("width",b.xAxisLength()+e).attr("height",b.yAxisHeight()+e)}function j(){U&&b.root().call(d3.behavior.zoom().x(b.x()).scaleExtent(S).on("zoom",function(){b.focus(b.x().domain()),b._invokeZoomedListener(),k()}))}function k(){if(C){var c=b.x().domain();if(T){var d=C.xOriginalDomain(),e=[c[0]d[1]?c[1]:d[1]];C.focus(e)}else C.focus(c);C.filter(null),C.filter(c),a.events.trigger(function(){a.redrawAll(b.chartGroup())})}}function l(a){return a instanceof Array&&a.length>1}var m="grid-line",n="horizontal",o="vertical",p="y-axis-label",q="x-axis-label",r=12;b=a.colorChart(a.marginable(a.baseChart(b))),b.colors(d3.scale.category10()),b._mandatoryAttributes().push("x");var s,t,u,v,w,x,y,z,A,B,C,D,E=d3.svg.axis(),F=a.units.integers,G=0,H=!1,I=0,J=d3.svg.axis(),K=0,L=!1,M=0,N=d3.svg.brush(),O=!0,P=!1,Q=!1,R=!1,S=[-10,100],T=!0,U=!1,V=0;return b.title(function(a){return b.keyAccessor()(a.data)+": "+b.valueAccessor()(a.data)}),b.rescale=function(){B=void 0,b.xUnitCount()},b.rangeChart=function(a){return arguments.length?(C=a,C.focusChart(b),b):C},b.zoomScale=function(a){return arguments.length?(S=a,b):S},b.zoomOutRestrict=function(a){return arguments.length?(T=a,b):T},b._generateG=function(a){return s=void 0===a?b.svg():a,t=s.append("g"),u=t.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),t},b.g=function(a){return arguments.length?(t=a,b):t},b.mouseZoomable=function(a){return arguments.length?(U=a,b):U},b.chartBodyG=function(a){return arguments.length?(u=a,b):u},b.x=function(a){return arguments.length?(v=a,w=v.domain(),b):v},b.xOriginalDomain=function(){return w},b.xUnits=function(a){return arguments.length?(F=a,b):F},b.xAxis=function(a){return arguments.length?(E=a,b):E},b.elasticX=function(a){return arguments.length?(H=a,b):H},b.xAxisPadding=function(a){return arguments.length?(G=a,b):G},b.xUnitCount=function(){if(void 0===B){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());B=a instanceof Array?a.length:a}return B},b.isOrdinal=function(){return b.xUnits()===a.units.ordinal},b.prepareOrdinalXAxis=function(a){a||(a=b.xUnitCount());for(var c=[],d=b.xAxisLength()/(a+1),e=d/2,f=0;a>f;f++)c[f]=e,e+=d;v.range(c)},b.renderXAxis=function(c){var d=c.selectAll("g.x");d.empty()&&(d=c.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b.xAxisY()+")"));var e=c.selectAll("text."+q);e.empty()&&b.xAxisLabel()&&(e=c.append("text").attr("transform","translate("+b.xAxisLength()/2+","+(b.height()-I)+")").attr("class",q).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!=b.xAxisLabel()&&axisYLab.text(b.xAxisLabel()),a.transition(d,b.transitionDuration()).call(E)},b.xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(x=a,b.margins().bottom-=I,I=void 0===c?r:c,b.margins().bottom+=I,b):x},b.renderYAxis=function(c){var d=c.selectAll("g.y");d.empty()&&(d=c.append("g").attr("class","axis y").attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=c.selectAll("text."+p);e.empty()&&b.yAxisLabel()&&(e=c.append("text").attr("transform","translate("+M+","+b.yAxisHeight()/2+"),rotate(-90)").attr("class",p).attr("text-anchor","middle").text(b.yAxisLabel())),b.yAxisLabel()&&e.text()!=b.yAxisLabel()&&e.text(b.yAxisLabel()),a.transition(d,b.transitionDuration()).call(J)},b.yAxisX=function(){return b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().left-=M,M=void 0===c?r:c,b.margins().left+=M,b):z},b.y=function(a){return arguments.length?(y=a,b):y},b.yAxis=function(a){return arguments.length?(J=a,b):J},b.elasticY=function(a){return arguments.length?(L=a,b):L},b.renderHorizontalGridLines=function(a){return arguments.length?(P=a,b):P},b.renderVerticalGridLines=function(a){return arguments.length?(Q=a,b):Q},b.xAxisMin=function(){var c=d3.min(b.data(),function(a){return b.keyAccessor()(a)});return a.utils.subtract(c,G)},b.xAxisMax=function(){var c=d3.max(b.data(),function(a){return b.keyAccessor()(a)});return a.utils.add(c,G)},b.yAxisMin=function(){var c=d3.min(b.data(),function(a){return b.valueAccessor()(a)});return c=a.utils.subtract(c,K)},b.yAxisMax=function(){var c=d3.max(b.data(),function(a){return b.valueAccessor()(a)});return c=a.utils.add(c,K)},b.yAxisPadding=function(a){return arguments.length?(K=a,b):K},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(A=a,b):A},a.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(N=a,b):N},b.renderBrush=function(a){if(b.isOrdinal()&&(O=!1),O){N.on("brush",b._brushing);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(N.x(b.x()));c.selectAll("rect").attr("height",g()),c.selectAll(".resize").append("path").attr("d",b.resizeHandlePath),b.hasFilter()&&b.redrawBrush(a)}},b.extendBrush=function(){var a=N.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],t.select(".brush").call(N.extent(a))),a},b.brushIsEmpty=function(a){return N.empty()||!a||a[1]<=a[0]},b.brushHasNoLength=function(a){return a[0]instanceof Date&&a[1]instanceof Date?a[0].getTime()==a[1].getTime():a[0]==a[1]},b._brushing=function(){var c=b.extendBrush();b.redrawBrush(t),b.brushHasNoLength(c)||(b.brushIsEmpty(c)?a.events.trigger(function(){b.filter(null),a.redrawAll(b.chartGroup())}):a.events.trigger(function(){b.filter(null),b.filter([c[0],c[1]]),a.redrawAll(b.chartGroup())},a.constants.EVENT_DELAY))},b.redrawBrush=function(a){if(O){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),c.selectAll("rect").attr("height",g())}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"Z"+"M"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(V=a,b):V},b.doRender=function(){return b.resetSvg(),b._generateG(),i(),c(b.g()),e(b.g()),b.plotData(),b.renderXAxis(b.g()),b.renderYAxis(b.g()),b.renderBrush(b.g()),j(),b},b.doRedraw=function(){return c(b.g()),e(b.g()),b.plotData(),b.elasticY()&&b.renderYAxis(b.g()),(b.elasticX()||R)&&b.renderXAxis(b.g()),b.redrawBrush(b.g()),b},b.subRender=function(){return b.plotData(),b},b.brushOn=function(a){return arguments.length?(O=a,b):O},b.focus=function(a){R=!0,l(a)?b.x().domain(a):b.x().domain(b.xOriginalDomain()),b.rescale(),b.redraw(),l(a)||(R=!1)},b.refocused=function(){return R},b.focusChart=function(c){return arguments.length?(D=c,b.on("filtered",function(b){a.events.trigger(function(){D.focus(b.filter()),D.filter(b.filter()),a.redrawAll(b.chartGroup())})}),b):D},b},a.colorChart=function(a){var b=d3.scale.category20c(),c=function(b){return a.keyAccessor()(b)},d=function(c){return b(c,a)};return a.colors=function(c){return arguments.length?(b=c instanceof Array?d3.scale.quantize().range(c):c,a):b},a.ordinalColors=function(b){return a.colors(d3.scale.ordinal().range(b))},a.linearColors=function(b){return a.colors(d3.scale.linear().range(b).interpolate(d3.interpolateHcl))},a.colorAccessor=function(b){return arguments.length?(c=b,a):c},a.colorDomain=function(c){return arguments.length?(b.domain(c),a):b.domain()},a.calculateColorDomain=function(){var c=[d3.min(a.data(),a.colorAccessor()),d3.max(a.data(),a.colorAccessor())];b.domain(c)},a.getColor=function(a,b){return d(c(a,b))},a.colorCalculator=function(b){return arguments.length?(d=b,a):d},a},a.stackableChart=function(b){function c(){var a=[];if(b.x()){var c,d=b.x().domain();if(b.isOrdinal()){var e=d3.set(d);c=function(a){return e.has(a.x)}}else c=function(a){return a.x>=d[0]&&a.x<=d[d.length-1]};b.stackLayers().forEach(function(b){b.points.forEach(function(b){c(b)&&a.push(b)})})}else b.stackLayers().forEach(function(b){a=a.concat(b.points)});return a}function d(a,c){a.all().forEach(function(a,d){var e=b.getKeyAccessorByIndex(c)(a),f=b.getValueAccessorByIndex(c)(a);i.setDataPoint(c,d,{data:a,x:e,y:f,layer:c})})}var e,f,g,h,i=new a.utils.GroupStack,j=d3.layout.stack().offset("zero").order("default").values(function(a){return a.points});return b.stack=function(a,c,d){return arguments.length||i.clear(),i.setDefaultAccessor(b.valueAccessor()),"string"==typeof c?(b._setGroupName(a,c,d),i.addNamedGroup(a,c,d)):(d=c,i.addGroup(a,d)),b.expireCache(),b},b.hideStack=function(a){i.hideGroups(a,b._getGroupName(b.group())==a)},b.showStack=function(a){i.showGroups(a,b._getGroupName(b.group())==a)},b.expireCache=function(){return e=null,f=null,g=null,h=null,b},b.allGroups=function(){if(null===e){e=[],e.push(b.group());for(var a=0;af?f:c},null);return a.utils.subtract(c,b.xAxisPadding())},b.xAxisMax=function(){var c=b.allGroups().reduce(function(c,d,e){var f=a.utils.groupMax(d,b.getKeyAccessorByIndex(e));return null===c||f>c?f:c},null);return a.utils.add(c,b.xAxisPadding())},b.calculateDataPointMatrixForAll=function(){i.clearDataLayers(),b.allGroups().forEach(d)},b.getChartStack=function(){return i},a.override(b,"valueAccessor",function(a){return arguments.length?(b.expireCache(),b._valueAccessor(a)):b._valueAccessor()}),a.override(b,"keyAccessor",function(a){return arguments.length?(b.expireCache(),b._keyAccessor(a)):b._keyAccessor()}),b.stackLayout=function(a){return arguments.length?(j=a,b):j},b.stackLayers=function(a){return arguments.length?(h=a,void 0):(null===h&&(b.calculateDataPointMatrixForAll(),h=b.stackLayout()(i.toLayers())),h)},b._layerColorAccessor=function(a){return void 0===a.layer?a.index:a.layer},b.colorAccessor(b._layerColorAccessor),b.legendables=function(){return b.allGroups().map(function(c,d){return a.utils.createLegendable(b,c,b.getValueAccessorByIndex(d),b.colorCalculator()(d))})},b},a.abstractBubbleChart=function(b){var c=.3,d=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=a.colorChart(b),b.renderLabel(!0),b.renderTitle(!1),b.data(function(a){return a.top(1/0)});var e=d3.scale.linear().domain([0,100]),f=function(a){return a.r};b.r=function(a){return arguments.length?(e=a,b):e},b.radiusValueAccessor=function(a){return arguments.length?(f=a,b):f},b.rMin=function(){var a=d3.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return a},b.rMax=function(){var a=d3.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return a},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var g=function(a){return b.label()(a)},h=function(a){return b.bubbleR(a)>d?1:0};b.doRenderLabel=function(c){if(b.renderLabel()){var d=c.select("text");d.empty()&&(d=c.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(g),a.transition(d,b.transitionDuration()).attr("opacity",h)}},b.doUpdateLabels=function(c){if(b.renderLabel()){var d=c.selectAll("text").text(g);a.transition(d,b.transitionDuration()).attr("opacity",h)}};var i=function(a){return b.title()(a)};return b.doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(i)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(i)},b.minRadiusWithLabel=function(a){return arguments.length?(d=a,b):d},b.maxBubbleRelativeSize=function(a){return arguments.length?(c=a,b):c},b.fadeDeselectedArea=function(){b.hasFilter()?b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}):b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(c){var d=c.key;a.events.trigger(function(){b.filter(d),a.redrawAll(b.chartGroup())})},b},a.pieChart=function(b,c){function d(){z=z?z:d3.min([F.width(),F.height()])/2;var a=p(),b=r(),c=b(F.data());if(A){var d=A.selectAll("g."+C).data(c);e(d,a,c),j(c,a),n(d),o()}}function e(a,b,c){var d=f(a);g(d,b),h(d),i(c,b)}function f(a){var b=a.enter().append("g").attr("class",function(a,b){return C+" _"+b});return b}function g(a,b){var c=a.append("path").attr("fill",w).on("click",x).attr("d",function(a,c){return y(a,c,b)});c.transition().duration(F.transitionDuration()).attrTween("d",u)}function h(a){F.renderTitle()&&a.append("title").text(function(a){return F.title()(a)})}function i(b,c){if(F.renderLabel()){var d=A.selectAll("text."+C).data(b);d.exit().remove();var e=d.enter().append("text").attr("class",function(a,b){return C+" _"+b}).on("click",x);a.transition(e,F.transitionDuration()).attr("transform",function(a){a.innerRadius=F.innerRadius(),a.outerRadius=F.radius();var b=c.centroid(a);return isNaN(b[0])||isNaN(b[1])?"translate(0,0)":"translate("+b+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return t(b)||s(a)?"":F.label()(a.data)})}}function j(a,b){k(a,b),l(a,b),m(a)}function k(b,c){var d=A.selectAll("g."+C).data(b).select("path").attr("d",function(a,b){return y(a,b,c)});a.transition(d,F.transitionDuration(),function(a){a.attrTween("d",u)}).attr("fill",w)}function l(b,c){if(F.renderLabel()){var d=A.selectAll("text."+C).data(b);a.transition(d,F.transitionDuration()).attr("transform",function(a){a.innerRadius=D,a.outerRadius=z;var b=c.centroid(a);return isNaN(b[0])||isNaN(b[1])?"translate(0,0)":"translate("+b+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return t(b)||s(a)?"":F.label()(a.data)})}}function m(a){F.renderTitle()&&A.selectAll("g."+C).data(a).select("title").text(function(a){return F.title()(a.data)})}function n(a){a.exit().remove()}function o(){F.hasFilter()?F.selectAll("g."+C).each(function(a){q(a)?F.highlightSelected(this):F.fadeDeselected(this)}):F.selectAll("g."+C).each(function(){F.resetHighlight(this)})}function p(){return d3.svg.arc().outerRadius(z).innerRadius(D)}function q(a){return F.hasFilter(F.cappedKeyAccessor(a.data))}function r(){return d3.layout.pie().sort(null).value(F.cappedValueAccessor)}function s(a){var b=a.endAngle-a.startAngle;return isNaN(b)||E>b}function t(a){return 0===F.cappedValueAccessor(a)}function u(a){a.innerRadius=D;var b=this._current;v(b)&&(b={startAngle:0,endAngle:0});var c=d3.interpolate(b,a);return this._current=c(0),function(a){return y(c(a),0,p())}}function v(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function w(a,b){return F.getColor(a.data,b)}function x(a,b){F.onClick(a.data,b)}function y(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}var z,A,B=.5,C="pie-slice",D=0,E=B,F=a.capped(a.colorChart(a.baseChart({})));return F.colorAccessor(F.cappedKeyAccessor),F.title(function(a){return F.cappedKeyAccessor(a)+": "+F.cappedValueAccessor(a)}),F.slicesCap=F.cap,F.label(F.cappedKeyAccessor),F.renderLabel(!0),F.transitionDuration(350),F.doRender=function(){return F.resetSvg(),A=F.svg().append("g").attr("transform","translate("+F.cx()+","+F.cy()+")"),d(),F},F.innerRadius=function(a){return arguments.length?(D=a,F):D},F.radius=function(a){return arguments.length?(z=a,F):z},F.cx=function(){return F.width()/2},F.cy=function(){return F.height()/2},F.doRedraw=function(){return d(),F},F.minAngleForLabel=function(a){return arguments.length?(E=a,F):E},F.anchor(b,c)},a.barChart=function(b,c){function d(b){return a.utils.safeNumber(Math.abs(m.y()(b.y+b.y0)-m.y()(b.y0)))}function e(b,c){var e=b.selectAll("rect.bar").data(c.points,a.pluck("data",m.keyAccessor())); -e.enter().append("rect").attr("class","bar").attr("fill",m.getColor),m.renderTitle()&&e.append("title").text(m.title()),m.isOrdinal()&&e.on("click",h),a.transition(e,m.transitionDuration()).attr("x",function(b){var c=m.x()(b.x);return(o||m.isOrdinal())&&(c-=j/2),a.utils.safeNumber(c)}).attr("y",function(b){var c=m.y()(b.y+b.y0);return b.y<0&&(c-=d(b)),a.utils.safeNumber(c)}).attr("width",j).attr("height",function(a){return d(a)}).select("title").text(m.title()),a.transition(e.exit(),m.transitionDuration()).attr("height",0).remove()}function f(){if(void 0===j){var a=m.isOrdinal()?g()+1:g(),b=Math.floor((m.xAxisLength()-(a-1)*n)/a);(1/0==b||isNaN(b)||k>b)&&(b=k),j=b}}function g(){return void 0===i&&(i=m.xUnitCount()),i}function h(a){m.onClick(a.data)}var i,j,k=1,l=2,m=a.stackableChart(a.coordinateGridChart({})),n=l,o=!1;return a.override(m,"rescale",function(){m._rescale(),i=void 0,j=void 0,g()}),m.plotData=function(){var a=m.chartBodyG().selectAll("g.stack").data(m.stackLayers());f(),a.enter().append("g").attr("class",function(a,b){return"stack _"+b}),a.each(function(a){var b=d3.select(this);e(b,a)}),m.stackLayers(null)},m.fadeDeselectedArea=function(){var b=m.chartBodyG().selectAll("rect.bar"),c=m.brush().extent();if(m.isOrdinal())m.hasFilter()?(b.classed(a.constants.SELECTED_CLASS,function(a){return m.hasFilter(m.keyAccessor()(a.data))}),b.classed(a.constants.DESELECTED_CLASS,function(a){return!m.hasFilter(m.keyAccessor()(a.data))})):(b.classed(a.constants.SELECTED_CLASS,!1),b.classed(a.constants.DESELECTED_CLASS,!1));else if(m.brushIsEmpty(c))b.classed(a.constants.DESELECTED_CLASS,!1);else{var d=c[0],e=c[1];b.classed(a.constants.DESELECTED_CLASS,function(a){var b=m.keyAccessor()(a.data);return d>b||b>=e})}},m.centerBar=function(a){return arguments.length?(o=a,m):o},m.gap=function(a){return arguments.length?(n=a,m):n},m.extendBrush=function(){var a=m.brush().extent();return m.round()&&!o&&(a[0]=a.map(m.round())[0],a[1]=a.map(m.round())[1],m.chartBodyG().select(".brush").call(m.brush().extent(a))),a},m.legendHighlight=function(a){m.select(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!0),m.select(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!0)},m.legendReset=function(a){m.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!1),m.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!1)},a.override(m,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in m.xUnits()){var b=m.xUnits().resolution;a+=b}return a}),m.anchor(b,c)},a.lineChart=function(b,c){function d(b,c){var d=d3.svg.line().x(function(a){return s.x()(a.x)}).y(function(a){return s.y()(a.y+a.y0)}).interpolate(v).tension(w);m&&d.defined(m),b.append("path").attr("class","line").attr("stroke",s.getColor).attr("fill",s.getColor),a.transition(c.select("path.line"),s.transitionDuration()).attr("d",function(a){return f(d(a.points))})}function e(b,c){if(t){var d=d3.svg.area().x(function(a){return s.x()(a.x)}).y(function(a){return s.y()(a.y+a.y0)}).y0(function(a){return s.y()(a.y0)}).interpolate(v).tension(w);m&&d.defined(m),b.append("path").attr("class","area").attr("fill",s.getColor).attr("d",function(a){return f(d(a.points))}),a.transition(c.select("path.area"),s.transitionDuration()).attr("d",function(a){return f(d(a.points))})}}function f(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function g(b,c){if(!s.brushOn()){var d=o+"-list",e=b.select("g."+d);e.empty()&&(e=b.append("g").attr("class",d)),c.each(function(b,c){var d=d3.select(this),f=d.datum().points;m&&(f=f.filter(m));var g=e.select("g."+o+"._"+c);g.empty()&&(g=e.append("g").attr("class",o+" _"+c)),h(g);var n=g.selectAll("circle."+p).data(f);n.enter().append("circle").attr("class",p).attr("r",u).attr("fill",function(){return s.colorCalculator()(c)}).style("fill-opacity",1e-6).style("stroke-opacity",1e-6).on("mousemove",function(){var a=d3.select(this);i(a),j(a,g)}).on("mouseout",function(){var a=d3.select(this);k(a),l(g)}).append("title").text(s.title()),n.attr("cx",function(b){return a.utils.safeNumber(s.x()(b.x))}).attr("cy",function(b){return a.utils.safeNumber(s.y()(b.y+b.y0))}).select("title").text(s.title()),n.exit().remove()})}}function h(a){var b=a.select("path."+q).empty()?a.append("path").attr("class",q):a.select("path."+q);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+r).empty()?a.append("path").attr("class",r):a.select("path."+r);c.style("display","none").attr("stroke-dasharray","5,5")}function i(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a}function j(a,b){var c=a.attr("cx"),d=a.attr("cy");b.select("path."+q).style("display","").attr("d","M0 "+d+"L"+c+" "+d),b.select("path."+r).style("display","").attr("d","M"+c+" "+s.yAxisHeight()+"L"+c+" "+d)}function k(a){a.style("fill-opacity",1e-6).style("stroke-opacity",1e-6)}function l(a){a.select("path."+q).style("display","none"),a.select("path."+r).style("display","none")}var m,n=5,o="dc-tooltip",p="dot",q="yRef",r="xRef",s=a.stackableChart(a.coordinateGridChart({})),t=!1,u=n,v="linear",w=.7;return s.transitionDuration(500),s.plotData=function(){var a=s.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(s.stackLayers()),f=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});d(f,c),e(f,c),g(a,c),s.stackLayers(null)},s.interpolate=function(a){return arguments.length?(v=a,s):v},s.tension=function(a){return arguments.length?(w=a,s):w},s.defined=function(a){return arguments.length?(m=a,s):m},s.renderArea=function(a){return arguments.length?(t=a,s):t},s.dotRadius=function(a){return arguments.length?(u=a,s):u},s.legendHighlight=function(a){s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!0),s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!0)},s.legendReset=function(a){s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!1),s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!1)},s.anchor(b,c)},a.dataCount=function(b,c){var d=d3.format(",d"),e=a.baseChart({});return e.doRender=function(){return e.selectAll(".total-count").text(d(e.dimension().size())),e.selectAll(".filter-count").text(d(e.group().value())),e},e.doRedraw=function(){return e.doRender()},e.anchor(b,c)},a.dataTable=function(b,c){function d(){var a=l.root().selectAll("tbody").data(e(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",n.length).html(function(a){return l.keyAccessor()(a)}),a.exit().remove(),b}function e(){g||(g=crossfilter.quicksort.by(o));var a=l.dimension().top(m);return d3.nest().key(l.group()).sortKeys(p).sortValues(p).entries(g(a,0,a.length))}function f(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return n.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(a)}),b.exit().remove(),b}var g,h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l=a.baseChart({}),m=25,n=[],o=function(a){return a},p=d3.ascending;return l.doRender=function(){return l.selectAll("tbody").remove(),f(d()),l},l.doRedraw=function(){return l.doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.columns=function(a){return arguments.length?(n=a,l):n},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,c)},a.bubbleChart=function(b,c){function d(b){var c=b.enter().append("g");c.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),a.transition(b,i.transitionDuration()).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doRenderLabel(c),i.doRenderTitles(c)}function e(b){a.transition(b,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(b),i.doUpdateTitles(b)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=a.abstractBubbleChart(a.coordinateGridChart({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),i.keyAccessor());d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(b,c)},a.compositeChart=function(b,c){function d(a,b){a._generateG(j.g()),a.g().attr("class",i+" _"+b)}function e(){for(var a=[],b=0;b0&&(a[0]=0),r=d3.scale.linear().domain(a).range([0,y.effectiveWidth()])}z.scale(r)}function e(){var b=q.select("g.axis");d(),b.empty()&&(b=q.append("g").attr("class","axis").attr("transform","translate(0, "+y.effectiveHeight()+")")),a.transition(b,y.transitionDuration()).call(z)}function f(){q.selectAll("g.tick").select("line.grid-line").remove(),q.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-y.effectiveHeight()})}function g(){t=y.data(),e(),f();var a=q.selectAll("g."+x).data(t);h(a),i(a),j(a)}function h(a){var b=a.enter().append("g").attr("class",function(a,b){return x+" _"+b});b.append("rect").attr("width",0),l(b),m(a)}function i(a){a.exit().remove()}function j(b){var c=t.length,d=(y.effectiveHeight()-(c+1)*w)/c,e=b.attr("transform",function(a,b){return"translate(0,"+((b+1)*w+b*d)+")"}).select("rect").attr("height",d).attr("fill",y.getColor).on("click",n).classed("deselected",function(a){return y.hasFilter()?!p(a):!1}).classed("selected",function(a){return y.hasFilter()?p(a):!1});a.transition(e,y.transitionDuration()).attr("width",function(a){var b=r(0)==-1/0?r(1):r(0);return Math.abs(b-r(y.valueAccessor()(a)))}).attr("transform",o),k(b),m(b)}function k(a){y.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(y.title()))}function l(a){y.renderLabel()&&a.append("text").on("click",n)}function m(b){if(y.renderLabel()){var c=b.select("text").attr("x",u).attr("y",v).on("click",n).attr("class",function(a,b){return x+" _"+b}).text(function(a){return y.label()(a)});a.transition(c,y.transitionDuration()).attr("transform",o)}}function n(a){y.onClick(a)}function o(a){var b=r(y.cappedValueAccessor(a)),c=r(0),d=b>c?c:b;return"translate("+d+",0)"}function p(a){return y.hasFilter(y.cappedKeyAccessor(a))}var q,r,s,t,u=10,v=15,w=5,x="row",y=a.capped(a.marginable(a.colorChart(a.baseChart({})))),z=d3.svg.axis().orient("bottom");return y.rowsCap=y.cap,y.doRender=function(){return y.resetSvg(),q=y.svg().append("g").attr("transform","translate("+y.margins().left+","+y.margins().top+")"),g(),y},y.title(function(a){return y.cappedKeyAccessor(a)+": "+y.cappedValueAccessor(a)}),y.label(y.cappedKeyAccessor),y.x=function(a){return arguments.length?(r=a,y):r},y.doRedraw=function(){return g(),y},y.xAxis=function(){return z},y.gap=function(a){return arguments.length?(w=a,y):w},y.elasticX=function(a){return arguments.length?(s=a,y):s},y.labelOffsetX=function(a){return arguments.length?(u=a,y):u},y.labelOffsetY=function(a){return arguments.length?(v=a,y):v},y.anchor(b,c)},a.legend=function(){function a(){return i+h}var b,c,d=2,e={},f=0,g=0,h=12,i=5;return e.parent=function(a){return arguments.length?(b=a,e):b},e.render=function(){c=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+f+","+g+")");var e=c.selectAll("g.dc-legend-item").data(b.legendables()).enter().append("g").attr("class","dc-legend-item").attr("transform",function(b,c){return"translate(0,"+c*a()+")"}).on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)});e.append("rect").attr("width",h).attr("height",h).attr("fill",function(a){return a.color}),e.append("text").text(function(a){return a.name}).attr("x",h+d).attr("y",function(){return h/2+(this.clientHeight?this.clientHeight:13)/2-2})},e.x=function(a){return arguments.length?(f=a,e):f},e.y=function(a){return arguments.length?(g=a,e):g},e.gap=function(a){return arguments.length?(i=a,e):i},e.itemHeight=function(a){return arguments.length?(h=a,e):h},e},a.capped=function(b){var c=1/0,d="Others",e=function(a){var c=d3.sum(a,b.valueAccessor()),e=b.group().all(),f=d3.sum(e,b.valueAccessor()),g=a.map(b.keyAccessor()),h=e.map(b.keyAccessor()),i=d3.set(g),j=h.filter(function(a){return!i.has(a)});f>c&&a.push({others:j,key:d,value:f-c})};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(1/0==c)return b.computeOrderedGroups(a.all());var d=a.top(c);return d=b.computeOrderedGroups(d),e&&e(d),d}),b.cap=function(a){return arguments.length?(c=a,b):c},b.othersLabel=function(a){return arguments.length?(d=a,b):d},b.othersGrouper=function(a){return arguments.length?(e=a,b):e},a.override(b,"onClick",function(a){a.others&&a.others.forEach(function(a){b.filter(a)}),b._onClick(a)}),b},a.scatterPlot=function(b,c){var d=a.coordinateGridChart({});return d.plotData=function(){d.chartBodyG().selectAll("path.dc-symbol").data(d.data()).enter().append("path").attr("class","dc-symbol").attr("transform",function(a){return"translate("+d.x()(d.keyAccessor()(a))+","+d.y()(d.valueAccessor()(a))+")"}).attr("d",d3.svg.symbol())},d.anchor(b,c)},a.numberDisplay=function(b,c){var d="number-display",e=d3.format(".2s"),f=a.baseChart({});return f._mandatoryAttributes(["group"]),f.value=function(){return f.data()},f.data(function(a){var b=a.value&&a.value()||a.top(1)[0];return f.valueAccessor()(b)}),f.transitionDuration(250),f.doRender=function(){var a=f.value(),b=f.selectAll("."+d);return b.empty()&&(b=b.data([0]).enter().append("span").attr("class",d)),b.transition().duration(f.transitionDuration()).ease("quad-out-in").tween("text",function(){var b=d3.interpolateNumber(this.lastValue||0,a);return this.lastValue=a,function(a){this.textContent=f.formatNumber()(b(a))}}),f},f.doRedraw=function(){return f.doRender()},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f.anchor(b,c)},a.heatMap=function(b,c){function d(a,b,c){return!b||c[b-1]!=a}var e,f,g,h=a.colorChart(a.marginable(a.baseChart({})));return h._mandatoryAttributes(["group"]),h.title(h.colorAccessor()),h.boxOnClick=function(){},h.xAxisOnClick=function(){},h.yAxisOnClick=function(){},h.rows=function(a){if(arguments.length)return g=a,h;if(g)return g;var b=h.data().map(h.valueAccessor());return b.sort(d3.ascending),d3.scale.ordinal().domain(b.filter(d))},h.cols=function(a){if(arguments.length)return f=a,h;if(f)return f;var b=h.data().map(h.keyAccessor());return b.sort(d3.ascending),d3.scale.ordinal().domain(b.filter(d))},h.doRender=function(){return h.resetSvg(),e=h.svg().append("g").attr("class","heatmap").attr("transform","translate("+h.margins().left+","+h.margins().top+")"),h.doRedraw()},h.doRedraw=function(){var b=h.rows(),c=h.cols(),d=b.domain().length,f=c.domain().length,g=Math.floor(h.effectiveWidth()/f),i=Math.floor(h.effectiveHeight()/d);c.rangeRoundBands([0,h.effectiveWidth()]),b.rangeRoundBands([h.effectiveHeight(),0]);var j=e.selectAll("g.box-group").data(h.data(),function(a,b){return h.keyAccessor()(a,b)+"\x00"+h.valueAccessor()(a,b)}),k=j.enter().append("g").attr("class","box-group");k.append("rect").attr("fill","white").on("click",h.boxOnClick),k.append("title").text(function(a){return h.title()(a)}),a.transition(j.select("rect"),h.transitionDuration()).attr("class","heat-box").attr("x",function(a,b){return c(h.keyAccessor()(a,b))}).attr("y",function(a,c){return b(h.valueAccessor()(a,c))}).attr("rx",.15*g).attr("ry",.15*i).attr("fill",h.getColor).attr("width",g).attr("height",i),j.exit().remove();var l=e.selectAll("g.cols");l.empty()&&(l=e.append("g").attr("class","cols axis")),l.selectAll("text").data(c.domain()).enter().append("text").attr("x",function(a){return c(a)+g/2}).style("text-anchor","middle").attr("y",h.effectiveHeight()).attr("dy",12).on("click",h.xAxisOnClick).text(function(a){return a});var m=e.selectAll("g.rows");m.empty()&&(m=e.append("g").attr("class","rows axis")),m.selectAll("text").data(b.domain()).enter().append("text").attr("y",function(a){return b(a)+i/2}).attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",h.yAxisOnClick).text(function(a){return a})},h.anchor(b,c)},function(){function a(a){return[0,a.length-1]}function b(a){return[d3.quantile(a,.25),d3.quantile(a,.5),d3.quantile(a,.75)]}d3.box=function(){function c(a){a.each(function(a,b){a=a.map(h).sort(d3.ascending);var c=d3.select(this),l=a.length,m=a[0],n=a[l-1],o=a.quartiles=j(a),p=i&&i.call(this,a,b),q=p&&p.map(function(b){return a[b]}),r=p?d3.range(0,p[0]).concat(d3.range(p[1]+1,l)):d3.range(l),s=d3.scale.linear().domain(g&&g.call(this,a,b)||[m,n]).range([e,0]),t=this.__chart__||d3.scale.linear().domain([0,1/0]).range(s.range());this.__chart__=s;var u=c.selectAll("line.center").data(q?[q]:[]);u.enter().insert("line","rect").attr("class","center").attr("x1",d/2).attr("y1",function(a){return t(a[0])}).attr("x2",d/2).attr("y2",function(a){return t(a[1])}).style("opacity",1e-6).transition().duration(f).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.transition().duration(f).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.exit().transition().duration(f).style("opacity",1e-6).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}).remove();var v=c.selectAll("rect.box").data([o]);v.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return t(a[2])}).attr("width",d).attr("height",function(a){return t(a[0])-t(a[2])}).transition().duration(f).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])}),v.transition().duration(f).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])});var w=c.selectAll("line.median").data([o[1]]);w.enter().append("line").attr("class","median").attr("x1",0).attr("y1",t).attr("x2",d).attr("y2",t).transition().duration(f).attr("y1",s).attr("y2",s),w.transition().duration(f).attr("y1",s).attr("y2",s);var x=c.selectAll("line.whisker").data(q||[]);x.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",t).attr("x2",d).attr("y2",t).style("opacity",1e-6).transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1),x.transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1),x.exit().transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1e-6).remove();var y=c.selectAll("circle.outlier").data(r,Number);y.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",d/2).attr("cy",function(b){return t(a[b])}).style("opacity",1e-6).transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.exit().transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1e-6).remove();var z=k||s.tickFormat(8),A=c.selectAll("text.box").data(o);A.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?d:0}).attr("y",t).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(z).transition().duration(f).attr("y",s),A.transition().duration(f).text(z).attr("y",s);var B=c.selectAll("text.whisker").data(q||[]);B.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",d).attr("y",t).text(z).style("opacity",1e-6).transition().duration(f).attr("y",s).style("opacity",1),B.transition().duration(f).text(z).attr("y",s).style("opacity",1),B.exit().transition().duration(f).attr("y",s).style("opacity",1e-6).remove()}),d3.timer.flush()}var d=1,e=1,f=0,g=null,h=Number,i=a,j=b,k=null;return c.width=function(a){return arguments.length?(d=a,c):d},c.height=function(a){return arguments.length?(e=a,c):e},c.tickFormat=function(a){return arguments.length?(k=a,c):k},c.duration=function(a){return arguments.length?(f=a,c):f},c.domain=function(a){return arguments.length?(g=null==a?a:d3.functor(a),c):g},c.value=function(a){return arguments.length?(h=a,c):h},c.whiskers=function(a){return arguments.length?(i=a,c):i},c.quartiles=function(a){return arguments.length?(j=a,c):j},c}}(),a.boxPlot=function(b,c){function d(){return g.group().all().map(function(a){return a.map=function(){return g.valueAccessor()(a)},a})}function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}var f,g=a.coordinateGridChart({}),h=1.5,i=e,j=i(h),k=d3.box();return g.yAxisPadding(12),g.plotData=function(){f=.2*g.effectiveWidth()/(g.xUnitCount()+1),k.whiskers(j).width(f).height(g.effectiveHeight()).domain(g.y().domain());var a=Array.prototype.slice.call(g.x().domain(),0);g.chartBodyG().selectAll("g.box").data(d()).enter().append("g").attr("class","box").attr("transform",function(a,b){return"translate("+(g.x()(b)-f/2)+",0)"}).call(k),g.x().domain(a)},g.yAxisMin=function(){var b=d3.min(g.group().all(),function(a){return d3.min(g.valueAccessor()(a))});return b=a.utils.subtract(b,g.yAxisPadding())},g.yAxisMax=function(){var b=d3.max(g.group().all(),function(a){return d3.max(g.valueAccessor()(a))});return b=a.utils.add(b,g.yAxisPadding())},g.anchor(b,c)},a}(); +dc=function(){"use strict";var a={version:"1.7.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};a.chartRegistry=function(){function b(b){return b||(b=a.constants.DEFAULT_CHART_GROUP),c[b]||(c[b]=[]),b}var c={};return{has:function(a){for(var b in c)if(c[b].indexOf(a)>=0)return!0;return!1},register:function(a,d){d=b(d),c[d].push(a)},clear:function(a){a?delete c[a]:c={}},list:function(a){return a=b(a),c[a]}}}(),a.registerChart=function(b,c){a.chartRegistry.register(b,c)},a.hasChart=function(b){return a.chartRegistry.has(b)},a.deregisterAllCharts=function(b){a.chartRegistry.clear(b)},a.filterAll=function(b){for(var c=a.chartRegistry.list(b),d=0;d=b||void 0===b)return a;var d=a.transition().duration(b);return c instanceof Function&&c(d),d},a.units={},a.units.integers=function(a,b){return Math.abs(b-a)},a.units.ordinal=function(a,b,c){return c},a.units.fp={},a.units.fp.precision=function(b){var c=function(b,d){var e=Math.abs((d-b)/c.resolution);return a.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return c.resolution=b,c},a.round={},a.round.floor=function(a){return Math.floor(a)},a.round.ceil=function(a){return Math.ceil(a)},a.round.round=function(a){return Math.round(a)},a.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},a.renderlet=function(b){return arguments.length?(a._renderlet=b,a):a._renderlet},a.instanceOfChart=function(a){return a instanceof Object&&a.__dc_flag__&&!0},a.errors={},a.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},a.errors.InvalidStateException=function(){a.errors.Exception.apply(this,arguments)},a.dateFormat=d3.time.format("%m/%d/%Y"),a.printers={},a.printers.filters=function(b){for(var c="",d=0;d0&&(c+=", "),c+=a.printers.filter(b[d]);return c},a.printers.filter=function(b){var c="";return b&&(b instanceof Array?b.length>=2?c="["+a.utils.printSingleValue(b[0])+" -> "+a.utils.printSingleValue(b[1])+"]":b.length>=1&&(c=a.utils.printSingleValue(b[0])):c=a.utils.printSingleValue(b)),c},a.pluck=function(a,b){return function(c){return b?b.call(this,c[a]):c[a]}},a.utils={},a.utils.printSingleValue=function(b){var c=""+b;return b instanceof Date?c=a.dateFormat(b):"string"==typeof b?c=b:a.utils.isFloat(b)?c=a.utils.printSingleValue.fformat(b):a.utils.isInteger(b)&&(c=Math.round(b)),c},a.utils.printSingleValue.fformat=d3.format(".2f"),a.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},a.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},a.utils.GroupStack=function(){function a(a){d[a]||(d[a]=[])}var b,c,d=[[]],e=[];this.setDataPoint=function(b,c,e){a(b),d[b][c]=e},this.getDataPoint=function(b,c){a(b);var e=d[b][c];return void 0===e&&(e=0),e},this.addGroup=function(a,c){return c||(c=b),e.push([a,c]),e.length-1},this.addNamedGroup=function(a,b,c){var d=this.addGroup(a,c);return e[d].name=b,b},this.getGroupByIndex=function(a){return e[a][0]},this.getAccessorByIndex=function(a){return e[a][1]},this.size=function(){return e.length},this.clear=function(){d=[],e=[]},this.setDefaultAccessor=function(a){b=a},this.getDataLayers=function(){return d},this.clearDataLayers=function(){d=[[]]},this.showGroups=function(a,b){b&&(c=!1),this.toggleGroups(a,!1)},this.hideGroups=function(a,b){b&&(c=!0),this.toggleGroups(a,!0)},this.toggleGroups=function(a,b){for(var c=0;c0&&e[b-1].hidden)){for(var f={index:b,points:[]},g=d[b],h=0;h-a.constants.NEGLIGIBLE_NUMBER};var b=0;return a.utils.uniqueId=function(){return++b},a.utils.groupMax=function(b,c){var d=d3.max(b.all(),c);return a.utils.isNegligible(d)&&(d=0),d},a.utils.groupMin=function(b,c){var d=d3.min(b.all(),c);return a.utils.isNegligible(d)&&(d=0),d},a.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},a.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},a.utils.createLegendable=function(a,b,c,d){var e={name:a._getGroupName(b,c),data:b};return d&&(e.color=d),e},a.utils.safeNumber=function(b){return a.utils.isNumber(+b)?+b:0},a.events={current:null},a.events.trigger=function(b,c){return c?(a.events.current=b,setTimeout(function(){b==a.events.current&&b()},c),void 0):(b(),void 0)},a.cumulative={},a.cumulative.Base=function(){this._keyIndex=[],this._map={},this.sanitizeKey=function(a){return a+=""},this.clear=function(){this._keyIndex=[],this._map={}},this.size=function(){return this._keyIndex.length},this.getValueByKey=function(a){a=this.sanitizeKey(a);var b=this._map[a];return b},this.setValueByKey=function(a,b){return a=this.sanitizeKey(a),this._map[a]=b,b},this.indexOfKey=function(a){return a=this.sanitizeKey(a),this._keyIndex.indexOf(a)},this.addToIndex=function(a){a=this.sanitizeKey(a),this._keyIndex.push(a)},this.getKeyByIndex=function(a){return this._keyIndex[a]}},a.cumulative.Sum=function(){a.cumulative.Base.apply(this,arguments),this.add=function(a,b){b||(b=0),void 0===this.getValueByKey(a)?(this.addToIndex(a),this.setValueByKey(a,b)):this.setValueByKey(a,this.getValueByKey(a)+b)},this.minus=function(a,b){this.setValueByKey(a,this.getValueByKey(a)-b)},this.cumulativeSum=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.getValueByKey(e)}return c}},a.cumulative.Sum.prototype=new a.cumulative.Base,a.cumulative.CountUnique=function(){function b(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c}a.cumulative.Base.apply(this,arguments),this.add=function(a,b){void 0===this.getValueByKey(a)&&(this.setValueByKey(a,{}),this.addToIndex(a)),void 0!==b&&(void 0===this.getValueByKey(a)[b]&&(this.getValueByKey(a)[b]=0),this.getValueByKey(a)[b]+=1)},this.minus=function(a,b){this.getValueByKey(a)[b]-=1,this.getValueByKey(a)[b]<=0&&delete this.getValueByKey(a)[b]},this.count=function(a){return b(this.getValueByKey(a))},this.cumulativeCount=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.count(e)}return c}},a.cumulative.CountUnique.prototype=new a.cumulative.Base,a.baseChart=function(b){function c(a,b,c){var d=a.anchor(),e="__names__";c&&c!=a.valueAccessor()||(c="default"),b[e]||(b[e]={}),b[e][d]||(b[e][d]={a:[],n:[]});var f=b[e][d].a.indexOf(c);return-1==f&&(f=b[e][d].a.length,b[e][d].a[f]=c,b[e][d].n[f]={name:""}),b[e][d].n[f]}function d(){return o=b.root().append("svg").attr("width",b.width()).attr("height",b.height())}function e(c){if(!b[c]||!b[c]())throw new a.errors.InvalidStateException("Mandatory attribute chart."+c+" is missing on chart[#"+b.anchorName()+"]")}function f(a){I.splice(I.indexOf(a),1),i(),b._invokeFilteredListener(a)}function g(a){I.push(a),i(),b._invokeFilteredListener(a)}function h(){I=[],i(),b._invokeFilteredListener(null)}function i(){if(b.dimension()&&b.dimension().filter){var a=J(b.dimension(),I);I=a?a:I}}function j(){for(var a=0;a=0}),b},K=function(a){return a.all()};return b.width=function(a){return arguments.length?(r=d3.functor(a||q),b):r(n.node())},b.height=function(a){return arguments.length?(t=d3.functor(a||s),b):t(n.node())},b.dimension=function(a){return arguments.length?(k=a,b.expireCache(),b):k},b.data=function(a){return arguments.length?(K=d3.functor(a),b.expireCache(),b):K(l)},b.group=function(a,c){return arguments.length?(l=a,b.expireCache(),"string"==typeof c&&b._setGroupName(l,c),b):l},b._getGroupName=function(a,d){return c(b,a,d).name},b._setGroupName=function(a,d,e){c(b,a,e).name=d},b.ordering=function(a){return arguments.length?(w=a,b.expireCache(),b):w},b.computeOrderedGroups=function(a){var c=a.slice(0);if(c.length<2)return c;var d=crossfilter.quicksort.by(b.ordering());return d(c,0,c.length)},b.filterAll=function(){return b.filter(null)},b.dataSet=function(){return void 0!==k&&void 0!==l},b.select=function(a){return n.select(a)},b.selectAll=function(a){return n?n.selectAll(a):null},b.anchor=function(c,d){return arguments.length?(a.instanceOfChart(c)?(m=c.anchor(),n=c.root()):(m=c,n=d3.select(m),n.classed(a.constants.CHART_CLASS,!0),a.registerChart(b,d)),F=d,b):m},b.anchorName=function(){var a=b.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):""+b.chartID()},b.root=function(a){return arguments.length?(n=a,b):n},b.svg=function(a){return arguments.length?(o=a,b):o},b.resetSvg=function(){return b.select("svg").remove(),d()},b.filterPrinter=function(a){return arguments.length?(C=a,b):C},b.turnOnControls=function(){return n&&(b.selectAll(".reset").style("display",null),b.selectAll(".filter").text(C(b.filters())).style("display",null)),b},b.turnOffControls=function(){return n&&(b.selectAll(".reset").style("display","none"),b.selectAll(".filter").style("display","none").text(b.filter())),b},b.transitionDuration=function(a){return arguments.length?(B=a,b):B},b._mandatoryAttributes=function(a){return arguments.length?(E=a,b):E},b.render=function(){H.preRender(b),E&&E.forEach(e);var a=b.doRender();return p&&p.render(),b.activateRenderlets("postRender"),a},b.activateRenderlets=function(a){b.transitionDuration()>0&&o?o.transition().duration(b.transitionDuration()).each("end",function(){j(),a&&H[a](b)}):(j(),a&&H[a](b))},b.redraw=function(){H.preRedraw(b);var a=b.doRedraw();return b.activateRenderlets("postRedraw"),a},b._invokeFilteredListener=function(a){void 0!==a&&H.filtered(b,a)},b._invokeZoomedListener=function(){H.zoomed(b)},b.hasFilter=function(a){return arguments.length?I.indexOf(a)>=0:I.length>0},b.filter=function(a){return arguments.length?(null===a?h():b.hasFilter(a)?f(a):g(a),null!==n&&b.hasFilter()?b.turnOnControls():b.turnOffControls(),b):I.length>0?I[0]:null},b.filters=function(){return I},b.highlightSelected=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!0),d3.select(b).classed(a.constants.DESELECTED_CLASS,!1)},b.fadeDeselected=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!1),d3.select(b).classed(a.constants.DESELECTED_CLASS,!0)},b.resetHighlight=function(b){d3.select(b).classed(a.constants.SELECTED_CLASS,!1),d3.select(b).classed(a.constants.DESELECTED_CLASS,!1)},b.onClick=function(c){var d=b.keyAccessor()(c);a.events.trigger(function(){b.filter(d),a.redrawAll(b.chartGroup())})},b.filterHandler=function(a){return arguments.length?(J=a,b):J},b.doRender=function(){return b},b.doRedraw=function(){return b},b.legendables=function(){return[]},b.legendHighlight=function(){},b.legendReset=function(){},b.keyAccessor=function(a){return arguments.length?(u=a,b):u},b.valueAccessor=function(a){return arguments.length?(v=a,b):v},b.label=function(a){return arguments.length?(x=a,y=!0,b):x},b.renderLabel=function(a){return arguments.length?(y=a,b):y},b.title=function(a){return arguments.length?(z=a,A=!0,b):z},b.renderTitle=function(a){return arguments.length?(A=a,b):A},b.renderlet=function(a){return D.push(a),b},b.chartGroup=function(a){return arguments.length?(F=a,b):F},b.expireCache=function(){return b},b.legend=function(a){return arguments.length?(p=a,p.parent(b),b):p},b.on=function(a,c){return H[a]=c,b},b.chartID=function(){return b.__dc_flag__},b},a.marginable=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},a.coordinateGridChart=function(b){function c(a){if(b.elasticX()&&!b.isOrdinal())v.domain([b.xAxisMin(),b.xAxisMax()]);else if(b.isOrdinal()&&0===v.domain().length){var c=b.computeOrderedGroups(b.data());v.domain(c.map(b.keyAccessor()))}b.isOrdinal()?b.prepareOrdinalXAxis():v.range([0,b.xAxisLength()]),E=E.scale(b.x()).orient("bottom"),d(a)}function d(c){var d=c.selectAll("g."+o);if(Q){d.empty()&&(d=c.insert("g",":first-child").attr("class",m+" "+o).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=E.tickValues()?E.tickValues():v.ticks(E.ticks()[0]),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return v(a)}).attr("y1",b.xAxisY()-b.margins().top).attr("x2",function(a){return v(a)}).attr("y2",0).attr("opacity",0);a.transition(g,b.transitionDuration()).attr("opacity",1),a.transition(f,b.transitionDuration()).attr("x1",function(a){return v(a)}).attr("y1",b.xAxisY()-b.margins().top).attr("x2",function(a){return v(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function e(a){(void 0===y||b.elasticY())&&(y=d3.scale.linear(),y.domain([b.yAxisMin(),b.yAxisMax()]).rangeRound([b.yAxisHeight(),0])),y.range([b.yAxisHeight(),0]),J=J.scale(y).orient("left"),f(a)}function f(c){var d=c.selectAll("g."+n);if(P){var e=J.tickValues()?J.tickValues():y.ticks(J.ticks()[0]);d.empty()&&(d=c.insert("g",":first-child").attr("class",m+" "+n).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",1).attr("y1",function(a){return y(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return y(a)}).attr("opacity",0);a.transition(g,b.transitionDuration()).attr("opacity",1),a.transition(f,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return y(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return y(a)}),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b.xAxisY()-b.margins().top}function h(){return b.anchorName()+"-clip"}function i(){var c=a.utils.appendOrSelect(s,"defs"),d=a.utils.appendOrSelect(c,"clipPath").attr("id",h()),e=2*V;a.utils.appendOrSelect(d,"rect").attr("width",b.xAxisLength()+e).attr("height",b.yAxisHeight()+e)}function j(){U&&b.root().call(d3.behavior.zoom().x(b.x()).scaleExtent(S).on("zoom",function(){b.focus(b.x().domain()),b._invokeZoomedListener(),k()}))}function k(){if(C){var c=b.x().domain();if(T){var d=C.xOriginalDomain(),e=[c[0]d[1]?c[1]:d[1]];C.focus(e)}else C.focus(c);C.filter(null),C.filter(c),a.events.trigger(function(){a.redrawAll(b.chartGroup())})}}function l(a){return a instanceof Array&&a.length>1}var m="grid-line",n="horizontal",o="vertical",p="y-axis-label",q="x-axis-label",r=12;b=a.colorChart(a.marginable(a.baseChart(b))),b.colors(d3.scale.category10()),b._mandatoryAttributes().push("x");var s,t,u,v,w,x,y,z,A,B,C,D,E=d3.svg.axis(),F=a.units.integers,G=0,H=!1,I=0,J=d3.svg.axis(),K=0,L=!1,M=0,N=d3.svg.brush(),O=!0,P=!1,Q=!1,R=!1,S=[-10,100],T=!0,U=!1,V=0;return b.title(function(a){return b.keyAccessor()(a.data)+": "+b.valueAccessor()(a.data)}),b.rescale=function(){B=void 0,b.xUnitCount()},b.rangeChart=function(a){return arguments.length?(C=a,C.focusChart(b),b):C},b.zoomScale=function(a){return arguments.length?(S=a,b):S},b.zoomOutRestrict=function(a){return arguments.length?(T=a,b):T},b._generateG=function(a){return s=void 0===a?b.svg():a,t=s.append("g"),u=t.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),t},b.g=function(a){return arguments.length?(t=a,b):t},b.mouseZoomable=function(a){return arguments.length?(U=a,b):U},b.chartBodyG=function(a){return arguments.length?(u=a,b):u},b.x=function(a){return arguments.length?(v=a,w=v.domain(),b):v},b.xOriginalDomain=function(){return w},b.xUnits=function(a){return arguments.length?(F=a,b):F},b.xAxis=function(a){return arguments.length?(E=a,b):E},b.elasticX=function(a){return arguments.length?(H=a,b):H},b.xAxisPadding=function(a){return arguments.length?(G=a,b):G},b.xUnitCount=function(){if(void 0===B){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());B=a instanceof Array?a.length:a}return B},b.isOrdinal=function(){return b.xUnits()===a.units.ordinal},b.prepareOrdinalXAxis=function(a){a||(a=b.xUnitCount());for(var c=[],d=b.xAxisLength()/(a+1),e=d/2,f=0;a>f;f++)c[f]=e,e+=d;v.range(c)},b.renderXAxis=function(c){var d=c.selectAll("g.x");d.empty()&&(d=c.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b.xAxisY()+")"));var e=c.selectAll("text."+q);e.empty()&&b.xAxisLabel()&&(e=c.append("text").attr("transform","translate("+b.xAxisLength()/2+","+(b.height()-I)+")").attr("class",q).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!=b.xAxisLabel()&&axisYLab.text(b.xAxisLabel()),a.transition(d,b.transitionDuration()).call(E)},b.xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(x=a,b.margins().bottom-=I,I=void 0===c?r:c,b.margins().bottom+=I,b):x},b.renderYAxis=function(c){var d=c.selectAll("g.y");d.empty()&&(d=c.append("g").attr("class","axis y").attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=c.selectAll("text."+p);e.empty()&&b.yAxisLabel()&&(e=c.append("text").attr("transform","translate("+M+","+b.yAxisHeight()/2+"),rotate(-90)").attr("class",p).attr("text-anchor","middle").text(b.yAxisLabel())),b.yAxisLabel()&&e.text()!=b.yAxisLabel()&&e.text(b.yAxisLabel()),a.transition(d,b.transitionDuration()).call(J)},b.yAxisX=function(){return b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().left-=M,M=void 0===c?r:c,b.margins().left+=M,b):z},b.y=function(a){return arguments.length?(y=a,b):y},b.yAxis=function(a){return arguments.length?(J=a,b):J},b.elasticY=function(a){return arguments.length?(L=a,b):L},b.renderHorizontalGridLines=function(a){return arguments.length?(P=a,b):P},b.renderVerticalGridLines=function(a){return arguments.length?(Q=a,b):Q},b.xAxisMin=function(){var c=d3.min(b.data(),function(a){return b.keyAccessor()(a)});return a.utils.subtract(c,G)},b.xAxisMax=function(){var c=d3.max(b.data(),function(a){return b.keyAccessor()(a)});return a.utils.add(c,G)},b.yAxisMin=function(){var c=d3.min(b.data(),function(a){return b.valueAccessor()(a)});return c=a.utils.subtract(c,K)},b.yAxisMax=function(){var c=d3.max(b.data(),function(a){return b.valueAccessor()(a)});return c=a.utils.add(c,K)},b.yAxisPadding=function(a){return arguments.length?(K=a,b):K},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(A=a,b):A},a.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(N=a,b):N},b.renderBrush=function(a){if(b.isOrdinal()&&(O=!1),O){N.on("brush",b._brushing);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(N.x(b.x()));c.selectAll("rect").attr("height",g()),c.selectAll(".resize").append("path").attr("d",b.resizeHandlePath),b.hasFilter()&&b.redrawBrush(a)}},b.extendBrush=function(){var a=N.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],t.select(".brush").call(N.extent(a))),a},b.brushIsEmpty=function(a){return N.empty()||!a||a[1]<=a[0]},b.brushHasNoLength=function(a){return a[0]instanceof Date&&a[1]instanceof Date?a[0].getTime()==a[1].getTime():a[0]==a[1]},b._brushing=function(){var c=b.extendBrush();b.redrawBrush(t),b.brushHasNoLength(c)||(b.brushIsEmpty(c)?a.events.trigger(function(){b.filter(null),a.redrawAll(b.chartGroup())}):a.events.trigger(function(){b.filter(null),b.filter([c[0],c[1]]),a.redrawAll(b.chartGroup())},a.constants.EVENT_DELAY))},b.redrawBrush=function(a){if(O){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),c.selectAll("rect").attr("height",g())}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"Z"+"M"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(V=a,b):V},b.doRender=function(){return b.resetSvg(),b._generateG(),i(),c(b.g()),e(b.g()),b.plotData(),b.renderXAxis(b.g()),b.renderYAxis(b.g()),b.renderBrush(b.g()),j(),b},b.doRedraw=function(){return c(b.g()),e(b.g()),b.plotData(),b.elasticY()&&b.renderYAxis(b.g()),(b.elasticX()||R)&&b.renderXAxis(b.g()),b.redrawBrush(b.g()),b},b.subRender=function(){return b.plotData(),b},b.brushOn=function(a){return arguments.length?(O=a,b):O},b.focus=function(a){R=!0,l(a)?b.x().domain(a):b.x().domain(b.xOriginalDomain()),b.rescale(),b.redraw(),l(a)||(R=!1)},b.refocused=function(){return R},b.focusChart=function(c){return arguments.length?(D=c,b.on("filtered",function(b){a.events.trigger(function(){D.focus(b.filter()),D.filter(b.filter()),a.redrawAll(b.chartGroup())})}),b):D},b},a.colorChart=function(a){var b=d3.scale.category20c(),c=function(b){return a.keyAccessor()(b)},d=function(c){return b(c,a)};return a.colors=function(c){return arguments.length?(b=c instanceof Array?d3.scale.quantize().range(c):c,a):b},a.ordinalColors=function(b){return a.colors(d3.scale.ordinal().range(b))},a.linearColors=function(b){return a.colors(d3.scale.linear().range(b).interpolate(d3.interpolateHcl))},a.colorAccessor=function(b){return arguments.length?(c=b,a):c},a.colorDomain=function(c){return arguments.length?(b.domain(c),a):b.domain()},a.calculateColorDomain=function(){var c=[d3.min(a.data(),a.colorAccessor()),d3.max(a.data(),a.colorAccessor())];b.domain(c)},a.getColor=function(a,b){return d(c(a,b))},a.colorCalculator=function(b){return arguments.length?(d=b,a):d},a},a.stackableChart=function(b){function c(){var a=[];if(b.x()){var c,d=b.x().domain();if(b.isOrdinal()){var e=d3.set(d);c=function(a){return e.has(a.x)}}else c=function(a){return a.x>=d[0]&&a.x<=d[d.length-1]};b.stackLayers().forEach(function(b){b.points.forEach(function(b){c(b)&&a.push(b)})})}else b.stackLayers().forEach(function(b){a=a.concat(b.points)});return a}function d(a,c){a.all().forEach(function(a,d){var e=b.getKeyAccessorByIndex(c)(a),f=b.getValueAccessorByIndex(c)(a);i.setDataPoint(c,d,{data:a,x:e,y:f,layer:c})})}var e,f,g,h,i=new a.utils.GroupStack,j=d3.layout.stack().offset("zero").order("default").values(function(a){return a.points});return b.stack=function(a,c,d){return arguments.length||i.clear(),i.setDefaultAccessor(b.valueAccessor()),"string"==typeof c?(b._setGroupName(a,c,d),i.addNamedGroup(a,c,d)):(d=c,i.addGroup(a,d)),b.expireCache(),b},b.hideStack=function(a){i.hideGroups(a,b._getGroupName(b.group())==a)},b.showStack=function(a){i.showGroups(a,b._getGroupName(b.group())==a)},b.expireCache=function(){return e=null,f=null,g=null,h=null,b},b.allGroups=function(){if(null===e){e=[],e.push(b.group());for(var a=0;af?f:c},null);return a.utils.subtract(c,b.xAxisPadding())},b.xAxisMax=function(){var c=b.allGroups().reduce(function(c,d,e){var f=a.utils.groupMax(d,b.getKeyAccessorByIndex(e));return null===c||f>c?f:c},null);return a.utils.add(c,b.xAxisPadding())},b.calculateDataPointMatrixForAll=function(){i.clearDataLayers(),b.allGroups().forEach(d)},b.getChartStack=function(){return i},a.override(b,"valueAccessor",function(a){return arguments.length?(b.expireCache(),b._valueAccessor(a)):b._valueAccessor()}),a.override(b,"keyAccessor",function(a){return arguments.length?(b.expireCache(),b._keyAccessor(a)):b._keyAccessor()}),b.stackLayout=function(a){return arguments.length?(j=a,b):j},b.stackLayers=function(a){return arguments.length?(h=a,void 0):(null===h&&(b.calculateDataPointMatrixForAll(),h=b.stackLayout()(i.toLayers())),h)},b._layerColorAccessor=function(a){return void 0===a.layer?a.index:a.layer},b.colorAccessor(b._layerColorAccessor),b.legendables=function(){return b.allGroups().map(function(c,d){return a.utils.createLegendable(b,c,b.getValueAccessorByIndex(d),b.colorCalculator()(d))})},b},a.abstractBubbleChart=function(b){var c=.3,d=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=a.colorChart(b),b.renderLabel(!0),b.renderTitle(!1),b.data(function(a){return a.top(1/0)});var e=d3.scale.linear().domain([0,100]),f=function(a){return a.r};b.r=function(a){return arguments.length?(e=a,b):e},b.radiusValueAccessor=function(a){return arguments.length?(f=a,b):f},b.rMin=function(){var a=d3.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return a},b.rMax=function(){var a=d3.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return a},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var g=function(a){return b.label()(a)},h=function(a){return b.bubbleR(a)>d?1:0};b.doRenderLabel=function(c){if(b.renderLabel()){var d=c.select("text");d.empty()&&(d=c.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(g),a.transition(d,b.transitionDuration()).attr("opacity",h)}},b.doUpdateLabels=function(c){if(b.renderLabel()){var d=c.selectAll("text").text(g);a.transition(d,b.transitionDuration()).attr("opacity",h)}};var i=function(a){return b.title()(a)};return b.doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(i)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(i)},b.minRadiusWithLabel=function(a){return arguments.length?(d=a,b):d},b.maxBubbleRelativeSize=function(a){return arguments.length?(c=a,b):c},b.fadeDeselectedArea=function(){b.hasFilter()?b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}):b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(c){var d=c.key;a.events.trigger(function(){b.filter(d),a.redrawAll(b.chartGroup())})},b},a.pieChart=function(b,c){function d(){z=z?z:d3.min([F.width(),F.height()])/2;var a=p(),b=r(),c=b(F.data());if(A){var d=A.selectAll("g."+C).data(c);e(d,a,c),j(c,a),n(d),o()}}function e(a,b,c){var d=f(a);g(d,b),h(d),i(c,b)}function f(a){var b=a.enter().append("g").attr("class",function(a,b){return C+" _"+b});return b}function g(a,b){var c=a.append("path").attr("fill",w).on("click",x).attr("d",function(a,c){return y(a,c,b)});c.transition().duration(F.transitionDuration()).attrTween("d",u)}function h(a){F.renderTitle()&&a.append("title").text(function(a){return F.title()(a)})}function i(b,c){if(F.renderLabel()){var d=A.selectAll("text."+C).data(b);d.exit().remove();var e=d.enter().append("text").attr("class",function(a,b){return C+" _"+b}).on("click",x);a.transition(e,F.transitionDuration()).attr("transform",function(a){a.innerRadius=F.innerRadius(),a.outerRadius=F.radius();var b=c.centroid(a);return isNaN(b[0])||isNaN(b[1])?"translate(0,0)":"translate("+b+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return t(b)||s(a)?"":F.label()(a.data)})}}function j(a,b){k(a,b),l(a,b),m(a)}function k(b,c){var d=A.selectAll("g."+C).data(b).select("path").attr("d",function(a,b){return y(a,b,c)});a.transition(d,F.transitionDuration(),function(a){a.attrTween("d",u)}).attr("fill",w)}function l(b,c){if(F.renderLabel()){var d=A.selectAll("text."+C).data(b);a.transition(d,F.transitionDuration()).attr("transform",function(a){a.innerRadius=D,a.outerRadius=z;var b=c.centroid(a);return isNaN(b[0])||isNaN(b[1])?"translate(0,0)":"translate("+b+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return t(b)||s(a)?"":F.label()(a.data)})}}function m(a){F.renderTitle()&&A.selectAll("g."+C).data(a).select("title").text(function(a){return F.title()(a.data)})}function n(a){a.exit().remove()}function o(){F.hasFilter()?F.selectAll("g."+C).each(function(a){q(a)?F.highlightSelected(this):F.fadeDeselected(this)}):F.selectAll("g."+C).each(function(){F.resetHighlight(this)})}function p(){return d3.svg.arc().outerRadius(z).innerRadius(D)}function q(a){return F.hasFilter(F.cappedKeyAccessor(a.data))}function r(){return d3.layout.pie().sort(null).value(F.cappedValueAccessor)}function s(a){var b=a.endAngle-a.startAngle;return isNaN(b)||E>b}function t(a){return 0===F.cappedValueAccessor(a)}function u(a){a.innerRadius=D;var b=this._current;v(b)&&(b={startAngle:0,endAngle:0});var c=d3.interpolate(b,a);return this._current=c(0),function(a){return y(c(a),0,p())}}function v(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function w(a,b){return F.getColor(a.data,b)}function x(a,b){F.onClick(a.data,b)}function y(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}var z,A,B=.5,C="pie-slice",D=0,E=B,F=a.capped(a.colorChart(a.baseChart({})));return F.colorAccessor(F.cappedKeyAccessor),F.title(function(a){return F.cappedKeyAccessor(a)+": "+F.cappedValueAccessor(a)}),F.slicesCap=F.cap,F.label(F.cappedKeyAccessor),F.renderLabel(!0),F.transitionDuration(350),F.doRender=function(){return F.resetSvg(),A=F.svg().append("g").attr("transform","translate("+F.cx()+","+F.cy()+")"),d(),F},F.innerRadius=function(a){return arguments.length?(D=a,F):D},F.radius=function(a){return arguments.length?(z=a,F):z},F.cx=function(){return F.width()/2},F.cy=function(){return F.height()/2},F.doRedraw=function(){return d(),F},F.minAngleForLabel=function(a){return arguments.length?(E=a,F):E},F.anchor(b,c)},a.barChart=function(b,c){function d(b){return a.utils.safeNumber(Math.abs(m.y()(b.y+b.y0)-m.y()(b.y0))) +}function e(b,c){var e=b.selectAll("rect.bar").data(c.points,a.pluck("data",m.keyAccessor()));e.enter().append("rect").attr("class","bar").attr("fill",m.getColor),m.renderTitle()&&e.append("title").text(m.title()),m.isOrdinal()&&e.on("click",h),a.transition(e,m.transitionDuration()).attr("x",function(b){var c=m.x()(b.x);return(o||m.isOrdinal())&&(c-=j/2),a.utils.safeNumber(c)}).attr("y",function(b){var c=m.y()(b.y+b.y0);return b.y<0&&(c-=d(b)),a.utils.safeNumber(c)}).attr("width",j).attr("height",function(a){return d(a)}).select("title").text(m.title()),a.transition(e.exit(),m.transitionDuration()).attr("height",0).remove()}function f(){if(void 0===j){var a=m.isOrdinal()?g()+1:g(),b=Math.floor((m.xAxisLength()-(a-1)*n)/a);(1/0==b||isNaN(b)||k>b)&&(b=k),j=b}}function g(){return void 0===i&&(i=m.xUnitCount()),i}function h(a){m.onClick(a.data)}var i,j,k=1,l=2,m=a.stackableChart(a.coordinateGridChart({})),n=l,o=!1;return a.override(m,"rescale",function(){m._rescale(),i=void 0,j=void 0,g()}),m.plotData=function(){var a=m.chartBodyG().selectAll("g.stack").data(m.stackLayers());f(),a.enter().append("g").attr("class",function(a,b){return"stack _"+b}),a.each(function(a){var b=d3.select(this);e(b,a)}),m.stackLayers(null)},m.fadeDeselectedArea=function(){var b=m.chartBodyG().selectAll("rect.bar"),c=m.brush().extent();if(m.isOrdinal())m.hasFilter()?(b.classed(a.constants.SELECTED_CLASS,function(a){return m.hasFilter(m.keyAccessor()(a.data))}),b.classed(a.constants.DESELECTED_CLASS,function(a){return!m.hasFilter(m.keyAccessor()(a.data))})):(b.classed(a.constants.SELECTED_CLASS,!1),b.classed(a.constants.DESELECTED_CLASS,!1));else if(m.brushIsEmpty(c))b.classed(a.constants.DESELECTED_CLASS,!1);else{var d=c[0],e=c[1];b.classed(a.constants.DESELECTED_CLASS,function(a){var b=m.keyAccessor()(a.data);return d>b||b>=e})}},m.centerBar=function(a){return arguments.length?(o=a,m):o},m.gap=function(a){return arguments.length?(n=a,m):n},m.extendBrush=function(){var a=m.brush().extent();return m.round()&&!o&&(a[0]=a.map(m.round())[0],a[1]=a.map(m.round())[1],m.chartBodyG().select(".brush").call(m.brush().extent(a))),a},m.legendHighlight=function(a){m.select(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!0),m.select(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!0)},m.legendReset=function(a){m.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!1),m.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!1)},a.override(m,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in m.xUnits()){var b=m.xUnits().resolution;a+=b}return a}),m.anchor(b,c)},a.lineChart=function(b,c){function d(b,c){var d=d3.svg.line().x(function(a){return s.x()(a.x)}).y(function(a){return s.y()(a.y+a.y0)}).interpolate(v).tension(w);m&&d.defined(m),b.append("path").attr("class","line").attr("stroke",s.getColor).attr("fill",s.getColor),a.transition(c.select("path.line"),s.transitionDuration()).attr("d",function(a){return f(d(a.points))})}function e(b,c){if(t){var d=d3.svg.area().x(function(a){return s.x()(a.x)}).y(function(a){return s.y()(a.y+a.y0)}).y0(function(a){return s.y()(a.y0)}).interpolate(v).tension(w);m&&d.defined(m),b.append("path").attr("class","area").attr("fill",s.getColor).attr("d",function(a){return f(d(a.points))}),a.transition(c.select("path.area"),s.transitionDuration()).attr("d",function(a){return f(d(a.points))})}}function f(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function g(b,c){if(!s.brushOn()){var d=o+"-list",e=b.select("g."+d);e.empty()&&(e=b.append("g").attr("class",d)),c.each(function(b,c){var d=d3.select(this),f=d.datum().points;m&&(f=f.filter(m));var g=e.select("g."+o+"._"+c);g.empty()&&(g=e.append("g").attr("class",o+" _"+c)),h(g);var n=g.selectAll("circle."+p).data(f);n.enter().append("circle").attr("class",p).attr("r",u).attr("fill",function(){return s.colorCalculator()(c)}).style("fill-opacity",1e-6).style("stroke-opacity",1e-6).on("mousemove",function(){var a=d3.select(this);i(a),j(a,g)}).on("mouseout",function(){var a=d3.select(this);k(a),l(g)}).append("title").text(s.title()),n.attr("cx",function(b){return a.utils.safeNumber(s.x()(b.x))}).attr("cy",function(b){return a.utils.safeNumber(s.y()(b.y+b.y0))}).select("title").text(s.title()),n.exit().remove()})}}function h(a){var b=a.select("path."+q).empty()?a.append("path").attr("class",q):a.select("path."+q);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+r).empty()?a.append("path").attr("class",r):a.select("path."+r);c.style("display","none").attr("stroke-dasharray","5,5")}function i(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a}function j(a,b){var c=a.attr("cx"),d=a.attr("cy");b.select("path."+q).style("display","").attr("d","M0 "+d+"L"+c+" "+d),b.select("path."+r).style("display","").attr("d","M"+c+" "+s.yAxisHeight()+"L"+c+" "+d)}function k(a){a.style("fill-opacity",1e-6).style("stroke-opacity",1e-6)}function l(a){a.select("path."+q).style("display","none"),a.select("path."+r).style("display","none")}var m,n=5,o="dc-tooltip",p="dot",q="yRef",r="xRef",s=a.stackableChart(a.coordinateGridChart({})),t=!1,u=n,v="linear",w=.7;return s.transitionDuration(500),s.plotData=function(){var a=s.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(s.stackLayers()),f=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});d(f,c),e(f,c),g(a,c),s.stackLayers(null)},s.interpolate=function(a){return arguments.length?(v=a,s):v},s.tension=function(a){return arguments.length?(w=a,s):w},s.defined=function(a){return arguments.length?(m=a,s):m},s.renderArea=function(a){return arguments.length?(t=a,s):t},s.dotRadius=function(a){return arguments.length?(u=a,s):u},s.legendHighlight=function(a){s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!0),s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!0)},s.legendReset=function(a){s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")==a.color}).classed("highlight",!1),s.selectAll(".chart-body").selectAll("path").filter(function(){return d3.select(this).attr("fill")!=a.color}).classed("fadeout",!1)},s.anchor(b,c)},a.dataCount=function(b,c){var d=d3.format(",d"),e=a.baseChart({});return e.doRender=function(){return e.selectAll(".total-count").text(d(e.dimension().size())),e.selectAll(".filter-count").text(d(e.group().value())),e},e.doRedraw=function(){return e.doRender()},e.anchor(b,c)},a.dataTable=function(b,c){function d(){var a=l.root().selectAll("tbody").data(e(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",n.length).html(function(a){return l.keyAccessor()(a)}),a.exit().remove(),b}function e(){g||(g=crossfilter.quicksort.by(o));var a=l.dimension().top(m);return d3.nest().key(l.group()).sortKeys(p).sortValues(p).entries(g(a,0,a.length))}function f(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return n.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(a)}),b.exit().remove(),b}var g,h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l=a.baseChart({}),m=25,n=[],o=function(a){return a},p=d3.ascending;return l.doRender=function(){return l.selectAll("tbody").remove(),f(d()),l},l.doRedraw=function(){return l.doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.columns=function(a){return arguments.length?(n=a,l):n},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,c)},a.bubbleChart=function(b,c){function d(b){var c=b.enter().append("g");c.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),a.transition(b,i.transitionDuration()).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doRenderLabel(c),i.doRenderTitles(c)}function e(b){a.transition(b,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(b),i.doUpdateTitles(b)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=a.abstractBubbleChart(a.coordinateGridChart({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),i.keyAccessor());d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(b,c)},a.compositeChart=function(b,c){function d(a,b){a._generateG(j.g()),a.g().attr("class",i+" _"+b)}function e(){for(var a=[],b=0;b0&&(a[0]=0),r=d3.scale.linear().domain(a).range([0,y.effectiveWidth()])}z.scale(r)}function e(){var b=q.select("g.axis");d(),b.empty()&&(b=q.append("g").attr("class","axis").attr("transform","translate(0, "+y.effectiveHeight()+")")),a.transition(b,y.transitionDuration()).call(z)}function f(){q.selectAll("g.tick").select("line.grid-line").remove(),q.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-y.effectiveHeight()})}function g(){t=y.data(),e(),f();var a=q.selectAll("g."+x).data(t);h(a),i(a),j(a)}function h(a){var b=a.enter().append("g").attr("class",function(a,b){return x+" _"+b});b.append("rect").attr("width",0),l(b),m(a)}function i(a){a.exit().remove()}function j(b){var c=t.length,d=(y.effectiveHeight()-(c+1)*w)/c,e=b.attr("transform",function(a,b){return"translate(0,"+((b+1)*w+b*d)+")"}).select("rect").attr("height",d).attr("fill",y.getColor).on("click",n).classed("deselected",function(a){return y.hasFilter()?!p(a):!1}).classed("selected",function(a){return y.hasFilter()?p(a):!1});a.transition(e,y.transitionDuration()).attr("width",function(a){var b=r(0)==-1/0?r(1):r(0);return Math.abs(b-r(y.valueAccessor()(a)))}).attr("transform",o),k(b),m(b)}function k(a){y.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(y.title()))}function l(a){y.renderLabel()&&a.append("text").on("click",n)}function m(b){if(y.renderLabel()){var c=b.select("text").attr("x",u).attr("y",v).on("click",n).attr("class",function(a,b){return x+" _"+b}).text(function(a){return y.label()(a)});a.transition(c,y.transitionDuration()).attr("transform",o)}}function n(a){y.onClick(a)}function o(a){var b=r(y.cappedValueAccessor(a)),c=r(0),d=b>c?c:b;return"translate("+d+",0)"}function p(a){return y.hasFilter(y.cappedKeyAccessor(a))}var q,r,s,t,u=10,v=15,w=5,x="row",y=a.capped(a.marginable(a.colorChart(a.baseChart({})))),z=d3.svg.axis().orient("bottom");return y.rowsCap=y.cap,y.doRender=function(){return y.resetSvg(),q=y.svg().append("g").attr("transform","translate("+y.margins().left+","+y.margins().top+")"),g(),y},y.title(function(a){return y.cappedKeyAccessor(a)+": "+y.cappedValueAccessor(a)}),y.label(y.cappedKeyAccessor),y.x=function(a){return arguments.length?(r=a,y):r},y.doRedraw=function(){return g(),y},y.xAxis=function(){return z},y.gap=function(a){return arguments.length?(w=a,y):w},y.elasticX=function(a){return arguments.length?(s=a,y):s},y.labelOffsetX=function(a){return arguments.length?(u=a,y):u},y.labelOffsetY=function(a){return arguments.length?(v=a,y):v},y.anchor(b,c)},a.legend=function(){function a(){return i+h}var b,c,d=2,e={},f=0,g=0,h=12,i=5;return e.parent=function(a){return arguments.length?(b=a,e):b},e.render=function(){c=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+f+","+g+")");var e=c.selectAll("g.dc-legend-item").data(b.legendables()).enter().append("g").attr("class","dc-legend-item").attr("transform",function(b,c){return"translate(0,"+c*a()+")"}).on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)});e.append("rect").attr("width",h).attr("height",h).attr("fill",function(a){return a.color}),e.append("text").text(function(a){return a.name}).attr("x",h+d).attr("y",function(){return h/2+(this.clientHeight?this.clientHeight:13)/2-2})},e.x=function(a){return arguments.length?(f=a,e):f},e.y=function(a){return arguments.length?(g=a,e):g},e.gap=function(a){return arguments.length?(i=a,e):i},e.itemHeight=function(a){return arguments.length?(h=a,e):h},e},a.capped=function(b){var c=1/0,d="Others",e=function(a){var c=d3.sum(a,b.valueAccessor()),e=b.group().all(),f=d3.sum(e,b.valueAccessor()),g=a.map(b.keyAccessor()),h=e.map(b.keyAccessor()),i=d3.set(g),j=h.filter(function(a){return!i.has(a)});f>c&&a.push({others:j,key:d,value:f-c})};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(1/0==c)return b.computeOrderedGroups(a.all());var d=a.top(c);return d=b.computeOrderedGroups(d),e&&e(d),d}),b.cap=function(a){return arguments.length?(c=a,b):c},b.othersLabel=function(a){return arguments.length?(d=a,b):d},b.othersGrouper=function(a){return arguments.length?(e=a,b):e},a.override(b,"onClick",function(a){a.others&&a.others.forEach(function(a){b.filter(a)}),b._onClick(a)}),b},a.scatterPlot=function(b,c){var d=a.coordinateGridChart({});return d.plotData=function(){d.chartBodyG().selectAll("path.dc-symbol").data(d.data()).enter().append("path").attr("class","dc-symbol").attr("transform",function(a){return"translate("+d.x()(d.keyAccessor()(a))+","+d.y()(d.valueAccessor()(a))+")"}).attr("d",d3.svg.symbol())},d.anchor(b,c)},a.numberDisplay=function(b,c){var d="number-display",e=d3.format(".2s"),f=a.baseChart({});return f._mandatoryAttributes(["group"]),f.value=function(){return f.data()},f.data(function(a){var b=a.value&&a.value()||a.top(1)[0];return f.valueAccessor()(b)}),f.transitionDuration(250),f.doRender=function(){var a=f.value(),b=f.selectAll("."+d);return b.empty()&&(b=b.data([0]).enter().append("span").attr("class",d)),b.transition().duration(f.transitionDuration()).ease("quad-out-in").tween("text",function(){var b=d3.interpolateNumber(this.lastValue||0,a);return this.lastValue=a,function(a){this.textContent=f.formatNumber()(b(a))}}),f},f.doRedraw=function(){return f.doRender()},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f.anchor(b,c)},a.heatMap=function(b,c){function d(a,b,c){return!b||c[b-1]!=a}var e,f,g,h=a.colorChart(a.marginable(a.baseChart({})));return h._mandatoryAttributes(["group"]),h.title(h.colorAccessor()),h.boxOnClick=function(){},h.xAxisOnClick=function(){},h.yAxisOnClick=function(){},h.rows=function(a){if(arguments.length)return g=a,h;if(g)return g;var b=h.data().map(h.valueAccessor());return b.sort(d3.ascending),d3.scale.ordinal().domain(b.filter(d))},h.cols=function(a){if(arguments.length)return f=a,h;if(f)return f;var b=h.data().map(h.keyAccessor());return b.sort(d3.ascending),d3.scale.ordinal().domain(b.filter(d))},h.doRender=function(){return h.resetSvg(),e=h.svg().append("g").attr("class","heatmap").attr("transform","translate("+h.margins().left+","+h.margins().top+")"),h.doRedraw()},h.doRedraw=function(){var b=h.rows(),c=h.cols(),d=b.domain().length,f=c.domain().length,g=Math.floor(h.effectiveWidth()/f),i=Math.floor(h.effectiveHeight()/d);c.rangeRoundBands([0,h.effectiveWidth()]),b.rangeRoundBands([h.effectiveHeight(),0]);var j=e.selectAll("g.box-group").data(h.data(),function(a,b){return h.keyAccessor()(a,b)+"\x00"+h.valueAccessor()(a,b)}),k=j.enter().append("g").attr("class","box-group");k.append("rect").attr("fill","white").on("click",h.boxOnClick),k.append("title").text(function(a){return h.title()(a)}),a.transition(j.select("rect"),h.transitionDuration()).attr("class","heat-box").attr("x",function(a,b){return c(h.keyAccessor()(a,b))}).attr("y",function(a,c){return b(h.valueAccessor()(a,c))}).attr("rx",.15*g).attr("ry",.15*i).attr("fill",h.getColor).attr("width",g).attr("height",i),j.exit().remove();var l=e.selectAll("g.cols");l.empty()&&(l=e.append("g").attr("class","cols axis")),l.selectAll("text").data(c.domain()).enter().append("text").attr("x",function(a){return c(a)+g/2}).style("text-anchor","middle").attr("y",h.effectiveHeight()).attr("dy",12).on("click",h.xAxisOnClick).text(function(a){return a});var m=e.selectAll("g.rows");m.empty()&&(m=e.append("g").attr("class","rows axis")),m.selectAll("text").data(b.domain()).enter().append("text").attr("y",function(a){return b(a)+i/2}).attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",h.yAxisOnClick).text(function(a){return a})},h.anchor(b,c)},function(){function a(a){return[0,a.length-1]}function b(a){return[d3.quantile(a,.25),d3.quantile(a,.5),d3.quantile(a,.75)]}d3.box=function(){function c(a){a.each(function(a,b){a=a.map(h).sort(d3.ascending);var c=d3.select(this),l=a.length,m=a[0],n=a[l-1],o=a.quartiles=j(a),p=i&&i.call(this,a,b),q=p&&p.map(function(b){return a[b]}),r=p?d3.range(0,p[0]).concat(d3.range(p[1]+1,l)):d3.range(l),s=d3.scale.linear().domain(g&&g.call(this,a,b)||[m,n]).range([e,0]),t=this.__chart__||d3.scale.linear().domain([0,1/0]).range(s.range());this.__chart__=s;var u=c.selectAll("line.center").data(q?[q]:[]);u.enter().insert("line","rect").attr("class","center").attr("x1",d/2).attr("y1",function(a){return t(a[0])}).attr("x2",d/2).attr("y2",function(a){return t(a[1])}).style("opacity",1e-6).transition().duration(f).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.transition().duration(f).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.exit().transition().duration(f).style("opacity",1e-6).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}).remove();var v=c.selectAll("rect.box").data([o]);v.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return t(a[2])}).attr("width",d).attr("height",function(a){return t(a[0])-t(a[2])}).transition().duration(f).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])}),v.transition().duration(f).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])});var w=c.selectAll("line.median").data([o[1]]);w.enter().append("line").attr("class","median").attr("x1",0).attr("y1",t).attr("x2",d).attr("y2",t).transition().duration(f).attr("y1",s).attr("y2",s),w.transition().duration(f).attr("y1",s).attr("y2",s);var x=c.selectAll("line.whisker").data(q||[]);x.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",t).attr("x2",d).attr("y2",t).style("opacity",1e-6).transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1),x.transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1),x.exit().transition().duration(f).attr("y1",s).attr("y2",s).style("opacity",1e-6).remove();var y=c.selectAll("circle.outlier").data(r,Number);y.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",d/2).attr("cy",function(b){return t(a[b])}).style("opacity",1e-6).transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.exit().transition().duration(f).attr("cy",function(b){return s(a[b])}).style("opacity",1e-6).remove();var z=k||s.tickFormat(8),A=c.selectAll("text.box").data(o);A.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?d:0}).attr("y",t).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(z).transition().duration(f).attr("y",s),A.transition().duration(f).text(z).attr("y",s);var B=c.selectAll("text.whisker").data(q||[]);B.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",d).attr("y",t).text(z).style("opacity",1e-6).transition().duration(f).attr("y",s).style("opacity",1),B.transition().duration(f).text(z).attr("y",s).style("opacity",1),B.exit().transition().duration(f).attr("y",s).style("opacity",1e-6).remove()}),d3.timer.flush()}var d=1,e=1,f=0,g=null,h=Number,i=a,j=b,k=null;return c.width=function(a){return arguments.length?(d=a,c):d},c.height=function(a){return arguments.length?(e=a,c):e},c.tickFormat=function(a){return arguments.length?(k=a,c):k},c.duration=function(a){return arguments.length?(f=a,c):f},c.domain=function(a){return arguments.length?(g=null==a?a:d3.functor(a),c):g},c.value=function(a){return arguments.length?(h=a,c):h},c.whiskers=function(a){return arguments.length?(i=a,c):i},c.quartiles=function(a){return arguments.length?(j=a,c):j},c}}(),a.boxPlot=function(b,c){function d(){return g.group().all().map(function(a){return a.map=function(){return g.valueAccessor()(a)},a})}function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}var f,g=a.coordinateGridChart({}),h=1.5,i=e,j=i(h),k=d3.box();return g.yAxisPadding(12),g.plotData=function(){f=.2*g.effectiveWidth()/(g.xUnitCount()+1),k.whiskers(j).width(f).height(g.effectiveHeight()).domain(g.y().domain());var a=Array.prototype.slice.call(g.x().domain(),0);g.chartBodyG().selectAll("g.box").data(d()).enter().append("g").attr("class","box").attr("transform",function(a,b){return"translate("+(g.x()(b)-f/2)+",0)"}).call(k),g.x().domain(a)},g.yAxisMin=function(){var b=d3.min(g.group().all(),function(a){return d3.min(g.valueAccessor()(a))});return b=a.utils.subtract(b,g.yAxisPadding())},g.yAxisMax=function(){var b=d3.max(g.group().all(),function(a){return d3.max(g.valueAccessor()(a))});return b=a.utils.add(b,g.yAxisPadding())},g.anchor(b,c)},a}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index 80e2073f4..b3518c573 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","clear","list","registerChart","hasChart","deregisterAllCharts","filterAll","charts","i","length","renderAll","render","redrawAll","redraw","transition","selections","duration","callback","undefined","s","Function","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","d3","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","GroupStack","initializeDataLayer","_dataLayers","_defaultAccessor","_hideChartGroup","_groups","setDataPoint","layerIndex","pointIndex","data","getDataPoint","x","y","dataPoint","addGroup","accessor","addNamedGroup","name","groupIndex","getGroupByIndex","index","getAccessorByIndex","size","setDefaultAccessor","retriever","getDataLayers","clearDataLayers","showGroups","showChartGroup","toggleGroups","hideGroups","hideChartGroup","value","hidden","toLayers","layers","layer","points","dataPoints","j","isNumber","max","_idCounter","uniqueId","groupMax","all","groupMin","min","nameToId","toLowerCase","appendOrSelect","parent","element","select","empty","append","createLegendable","color","legendable","_getGroupName","safeNumber","events","current","trigger","closure","delay","setTimeout","cumulative","Base","_keyIndex","_map","sanitizeKey","key","getValueByKey","setValueByKey","indexOfKey","addToIndex","getKeyByIndex","Sum","minus","cumulativeSum","keyIndex","cumulativeValue","k","prototype","CountUnique","hashSize","hash","hasOwnProperty","count","cumulativeCount","baseChart","_chart","groupName","g","c","anchor","valueAccessor","a","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","anchorName","removeFilter","_filters","splice","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_legend","_default_width","getBoundingClientRect","_width","_default_height","_height","_keyAccessor","_valueAccessor","_ordering","_label","_renderLabel","_title","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","_data","w","functor","node","h","expireCache","_setGroupName","ordering","computeOrderedGroups","ga","slice","sort","crossfilter","quicksort","by","dataSet","selectAll","chartGroup","classed","id","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","forEach","result","doRender","activateRenderlets","event","each","doRedraw","_invokeZoomedListener","hasFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","keyAccessor","filterHandler","legendables","legendHighlight","legendReset","label","renderLabel","title","renderTitle","legend","on","listener","marginable","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","coordinateGridChart","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","orderedData","map","prepareOrdinalXAxis","range","xAxisLength","_xAxis","scale","orient","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","yAxisX","ticks","tickValues","lines","linesGEnter","enter","xAxisY","exit","prepareYAxis","_y","elasticY","linear","yAxisMin","yAxisMax","rangeRound","yAxisHeight","_yAxis","renderHorizontalGridLines","HORIZONTAL_CLASS","_renderHorizontalGridLine","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","enableMouseZoom","_mouseZoomable","behavior","zoom","scaleExtent","_zoomScale","focus","updateRangeSelChart","_rangeChart","refDom","_zoomOutRestrict","origDom","xOriginalDomain","newDom","hasRangeSelected","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABLEL_PADDING","colorChart","colors","category10","_g","_chartBodyG","_xOriginalDomain","_xAxisLabel","_yAxisLabel","_round","_unitCount","_focusChart","axis","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_brushOn","_refocused","rescale","xUnitCount","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xUnits","xAxis","xAxisPadding","increment","currentPosition","renderXAxis","axisXG","axisXLab","xAxisLabel","axisYLab","pad","renderYAxis","axisYG","yAxisLabel","yAxis","yAxisPadding","_filter","extent","renderBrush","_brushing","gBrush","resizeHandlePath","redrawBrush","extendBrush","brushIsEmpty","brushHasNoLength","fadeDeselectedArea","clipPadding","p","plotData","subRender","brushOn","refocused","_colors","category20c","_colorAccessor","_colorCalculator","quantize","ordinalColors","linearColors","interpolate","interpolateHcl","colorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","stackableChart","flattenStack","test","xDomain","domainSet","set","stackLayers","concat","calculateDataPointMatrix","dataIndex","getKeyAccessorByIndex","getValueAccessorByIndex","_groupStack","_allGroups","_allValueAccessors","_allKeyAccessors","_stackLayers","_stackLayout","layout","stack","offset","order","values","hideStack","stackName","showStack","allGroups","allValueAccessors","y0","allKeyAccessors","reduce","calculateDataPointMatrixForAll","getChartStack","stackLayout","_layerColorAccessor","abstractBubbleChart","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","Infinity","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","drawChart","_radius","arc","buildArcs","pie","pieLayout","pieData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","labelsEnter","innerRadius","outerRadius","radius","centroid","sliceHasNoData","sliceTooSmall","updateSlicePaths","updateLabels","updateTitles","slicePaths","_innerRadius","isSelectedSlice","cappedKeyAccessor","cappedValueAccessor","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","DEFAULT_MIN_ANGLE_FOR_LABEL","capped","slicesCap","cap","cx","cy","minAngleForLabel","barChart","barHeight","renderBars","bars","_centerBar","_barWidth","calculateBarWidth","numberOfBars","getNumberOfBars","_gap","MIN_BAR_WIDTH","_numberOfBars","DEFAULT_GAP_BETWEEN_BARS","_rescale","start","end","xValue","centerBar","gap","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","safeD","drawArea","_renderArea","area","drawDots","chartBody","tooltipListClass","TOOLTIP_G_CLASS","tooltips","datum","createRefLines","dots","DOT_CIRCLE_CLASS","_dotRadius","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","DEFAULT_DOT_RADIUS","layersList","renderArea","dotRadius","dataCount","_formatNumber","dataTable","renderGroups","groups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","_sort","_sortBy","entries","_size","nest","sortKeys","_order","sortValues","renderRows","rows","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","generateChildG","child","SUB_CHART_CLASS","getAllYAxisMinFromChildCharts","allMins","_children","getAllYAxisMaxFromChildCharts","allMaxes","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_shareColors","__generateG","compose","children","shareColors","items","childLegendables","seriesChart","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","keep","sub","subChart","_compose","_plotData","seriesAccessor","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","bubbleNodeClass","updateBubbles","debug","flag","debugG","debugText","position","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rect","isSelectedRow","translateX","lab","_labelOffsetX","_labelOffsetY","x0","rowsCap","labelOffsetX","labelOffsetY","legendItemHeight","_itemHeight","LABEL_GAP","itemEnter","clientHeight","itemHeight","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","others","othersLabel","othersGrouper","_onClick","scatterPlot","symbol","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","heatMap","uniq","_chartBody","_cols","_rows","boxOnClick","xAxisOnClick","yAxisOnClick","rowValues","cols","colValues","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","gCols","gRows","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","groupData","kv","default_whiskers_iqr","q1","q3","iqr","_boxWidth","_whisker_iqr_factor","_whiskers_iqr","_whiskers","_box","saveDomain"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","clear","list","registerChart","hasChart","deregisterAllCharts","filterAll","charts","i","length","renderAll","render","redrawAll","redraw","transition","selections","duration","callback","undefined","s","Function","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","d3","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","GroupStack","initializeDataLayer","_dataLayers","_defaultAccessor","_hideChartGroup","_groups","setDataPoint","layerIndex","pointIndex","data","getDataPoint","x","y","dataPoint","addGroup","accessor","addNamedGroup","name","groupIndex","getGroupByIndex","index","getAccessorByIndex","size","setDefaultAccessor","retriever","getDataLayers","clearDataLayers","showGroups","showChartGroup","toggleGroups","hideGroups","hideChartGroup","value","hidden","toLayers","layers","layer","points","dataPoints","j","isNumber","max","_idCounter","uniqueId","groupMax","all","groupMin","min","nameToId","toLowerCase","appendOrSelect","parent","element","select","empty","append","createLegendable","color","legendable","_getGroupName","safeNumber","events","current","trigger","closure","delay","setTimeout","cumulative","Base","_keyIndex","_map","sanitizeKey","key","getValueByKey","setValueByKey","indexOfKey","addToIndex","getKeyByIndex","Sum","minus","cumulativeSum","keyIndex","cumulativeValue","k","prototype","CountUnique","hashSize","hash","hasOwnProperty","count","cumulativeCount","baseChart","_chart","groupName","g","c","anchor","valueAccessor","a","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","anchorName","removeFilter","_filters","splice","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_legend","_default_width","getBoundingClientRect","_width","_default_height","_height","_keyAccessor","_valueAccessor","_ordering","_label","_renderLabel","_title","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","_data","w","functor","node","h","expireCache","_setGroupName","ordering","computeOrderedGroups","ga","slice","sort","crossfilter","quicksort","by","dataSet","selectAll","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","forEach","result","doRender","activateRenderlets","event","each","doRedraw","_invokeZoomedListener","hasFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","keyAccessor","filterHandler","legendables","legendHighlight","legendReset","label","renderLabel","title","renderTitle","legend","on","listener","marginable","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","coordinateGridChart","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","orderedData","map","prepareOrdinalXAxis","range","xAxisLength","_xAxis","scale","orient","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","yAxisX","ticks","tickValues","lines","linesGEnter","enter","xAxisY","exit","prepareYAxis","_y","elasticY","linear","yAxisMin","yAxisMax","rangeRound","yAxisHeight","_yAxis","renderHorizontalGridLines","HORIZONTAL_CLASS","_renderHorizontalGridLine","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","enableMouseZoom","_mouseZoomable","behavior","zoom","scaleExtent","_zoomScale","focus","updateRangeSelChart","_rangeChart","refDom","_zoomOutRestrict","origDom","xOriginalDomain","newDom","hasRangeSelected","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABLEL_PADDING","colorChart","colors","category10","_g","_chartBodyG","_xOriginalDomain","_xAxisLabel","_yAxisLabel","_round","_unitCount","_focusChart","axis","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_brushOn","_refocused","rescale","xUnitCount","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xUnits","xAxis","xAxisPadding","increment","currentPosition","renderXAxis","axisXG","axisXLab","xAxisLabel","axisYLab","pad","renderYAxis","axisYG","yAxisLabel","yAxis","yAxisPadding","_filter","extent","renderBrush","_brushing","gBrush","resizeHandlePath","redrawBrush","extendBrush","brushIsEmpty","brushHasNoLength","fadeDeselectedArea","clipPadding","p","plotData","subRender","brushOn","refocused","_colors","category20c","_colorAccessor","_colorCalculator","quantize","ordinalColors","linearColors","interpolate","interpolateHcl","colorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","stackableChart","flattenStack","test","xDomain","domainSet","set","stackLayers","concat","calculateDataPointMatrix","dataIndex","getKeyAccessorByIndex","getValueAccessorByIndex","_groupStack","_allGroups","_allValueAccessors","_allKeyAccessors","_stackLayers","_stackLayout","layout","stack","offset","order","values","hideStack","stackName","showStack","allGroups","allValueAccessors","y0","allKeyAccessors","reduce","calculateDataPointMatrixForAll","getChartStack","stackLayout","_layerColorAccessor","abstractBubbleChart","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","Infinity","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","drawChart","_radius","arc","buildArcs","pie","pieLayout","pieData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","labelsEnter","innerRadius","outerRadius","radius","centroid","sliceHasNoData","sliceTooSmall","updateSlicePaths","updateLabels","updateTitles","slicePaths","_innerRadius","isSelectedSlice","cappedKeyAccessor","cappedValueAccessor","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","DEFAULT_MIN_ANGLE_FOR_LABEL","capped","slicesCap","cap","cx","cy","minAngleForLabel","barChart","barHeight","renderBars","bars","_centerBar","_barWidth","calculateBarWidth","numberOfBars","getNumberOfBars","_gap","MIN_BAR_WIDTH","_numberOfBars","DEFAULT_GAP_BETWEEN_BARS","_rescale","start","end","xValue","centerBar","gap","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","safeD","drawArea","_renderArea","area","drawDots","chartBody","tooltipListClass","TOOLTIP_G_CLASS","tooltips","datum","createRefLines","dots","DOT_CIRCLE_CLASS","_dotRadius","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","DEFAULT_DOT_RADIUS","layersList","renderArea","dotRadius","dataCount","_formatNumber","dataTable","renderGroups","groups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","_sort","_sortBy","entries","_size","nest","sortKeys","_order","sortValues","renderRows","rows","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","generateChildG","child","SUB_CHART_CLASS","getAllYAxisMinFromChildCharts","allMins","_children","getAllYAxisMaxFromChildCharts","allMaxes","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_shareColors","__generateG","compose","children","shareColors","items","childLegendables","seriesChart","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","keep","sub","subChart","_compose","_plotData","seriesAccessor","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","bubbleNodeClass","updateBubbles","debug","flag","debugG","debugText","position","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rect","isSelectedRow","translateX","lab","_labelOffsetX","_labelOffsetY","x0","rowsCap","labelOffsetX","labelOffsetY","legendItemHeight","_itemHeight","LABEL_GAP","itemEnter","clientHeight","itemHeight","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","others","othersLabel","othersGrouper","_onClick","scatterPlot","symbol","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","heatMap","uniq","_chartBody","_cols","_rows","boxOnClick","xAxisOnClick","yAxisOnClick","rowValues","cols","colValues","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","gCols","gRows","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","groupData","kv","default_whiskers_iqr","q1","q3","iqr","_boxWidth","_whisker_iqr_factor","_whiskers_iqr","_whiskers","_box","saveDomain"],"mappings":"AAkBAA,GAAK,WACL,YAuCA,IAAIA,IACAC,QAAS,YACTC,WACIC,YAAa,WACbC,kBAAmB,QACnBC,YAAa,QACbC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,YACjBC,iBAAkB,kBAClBC,oBAAqB,0BACrBC,YAAa,GACbC,kBAAmB,OAEvBC,WAAY,KAGhBb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAO1B,MANKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAEpBO,EAAUD,KACXC,EAAUD,OAEPA,EATX,GAAIC,KAYJ,QACIC,IAAK,SAASC,GACV,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAEf,QAAO,GAGXG,SAAU,SAASH,EAAOH,GACtBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,MAAO,SAASR,GACRA,QACOC,GAAUD,GAEjBC,MAIRQ,KAAM,SAAST,GAEX,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAK7BhB,EAAG0B,cAAgB,SAASP,EAAOH,GAC/BhB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAG2B,SAAW,SAASR,GACnB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAG4B,oBAAsB,SAASZ,GAC9BhB,EAAGc,cAAcU,MAAMR,IAY3BhB,EAAG6B,UAAY,SAASb,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGF,aASlB7B,EAAGiC,UAAY,SAASjB,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGG,QAGO,QAAlBlC,EAAGa,YACFb,EAAGa,WAAWG,IAStBhB,EAAGmC,UAAY,SAASnB,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGK,QAGO,QAAlBpC,EAAGa,YACFb,EAAGa,WAAWG,IAGtBhB,EAAGqC,WAAa,SAASC,EAAYC,EAAUC,GAC3C,GAAgB,GAAZD,GAA8BE,SAAbF,EACjB,MAAOD,EAEX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJIC,aAAoBG,WACpBH,EAASE,GAGNA,GAGX1C,EAAG4C,SASH5C,EAAG4C,MAAMC,SAAW,SAASH,EAAGtB,GAC5B,MAAO0B,MAAKC,IAAI3B,EAAIsB,IAQxB1C,EAAG4C,MAAMI,QAAU,SAASN,EAAGtB,EAAG6B,GAC9B,MAAOA,IASXjD,EAAG4C,MAAMM,MACTlD,EAAG4C,MAAMM,GAAGC,UAAY,SAASA,GAC7B,GAAIC,GAAK,SAASV,EAAGtB,GACjB,GAAIiC,GAAIP,KAAKC,KAAK3B,EAAEsB,GAAGU,EAAGE,WAC1B,OAAGtD,GAAGuD,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC7BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAGzB,OADAD,GAAGE,WAAaH,EACTC,GAGXpD,EAAG2D,SACH3D,EAAG2D,MAAMF,MAAQ,SAASG,GACtB,MAAOd,MAAKW,MAAMG,IAEtB5D,EAAG2D,MAAMD,KAAO,SAASE,GACrB,MAAOd,MAAKY,KAAKE,IAErB5D,EAAG2D,MAAMA,MAAQ,SAASC,GACtB,MAAOd,MAAKa,MAAMC,IAGtB5D,EAAG6D,SAAW,SAASC,EAAKC,EAAcC,GACtC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBhE,EAAGkE,UAAY,SAASC,GACpB,MAAIC,WAAUpC,QACdhC,EAAGa,WAAasD,EACTnE,GAFsBA,EAAGa,YAKpCb,EAAGqE,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,cAAe,GAGnDxE,EAAGyE,UAEHzE,EAAGyE,OAAOC,UAAY,SAASC,GAC3B,GAAIC,GAAOD,GAAO,2BAElBE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIf5E,EAAGyE,OAAOO,sBAAwB,WAC9BhF,EAAGyE,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpCpE,EAAGkF,WAAaC,GAAGC,KAAKC,OAAO,YAE/BrF,EAAGsF,YAEHtF,EAAGsF,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD7C,GAAI,GAECX,EAAI,EAAGA,EAAIwD,EAAQvD,SAAUD,EAC9BA,EAAI,IAAGW,GAAK,MAChBA,GAAK1C,EAAGsF,SAASE,OAAOD,EAAQxD,GAGpC,OAAOW,IAGX1C,EAAGsF,SAASE,OAAS,SAAUA,GAC3B,GAAI9C,GAAI,EAaR,OAXI8C,KACIA,YAAkBC,OACdD,EAAOxD,QAAU,EACjBU,EAAI,IAAM1C,EAAGuD,MAAMmC,iBAAiBF,EAAO,IAAM,OAASxF,EAAGuD,MAAMmC,iBAAiBF,EAAO,IAAM,IAC5FA,EAAOxD,QAAU,IACtBU,EAAI1C,EAAGuD,MAAMmC,iBAAiBF,EAAO,KAEzC9C,EAAI1C,EAAGuD,MAAMmC,iBAAiBF,IAI/B9C,GAGX1C,EAAG2F,MAAQ,SAAS/B,EAAEgC,GAClB,MAAO,UAASvC,GACZ,MAAOuC,GAAIA,EAAEC,KAAKhB,KAAKxB,EAAEO,IAAMP,EAAEO,KAIzC5D,EAAGuD,SAEHvD,EAAGuD,MAAMmC,iBAAmB,SAAUF,GAClC,GAAI9C,GAAI,GAAK8C,CAWb,OATIA,aAAkBM,MAClBpD,EAAI1C,EAAGkF,WAAWM,GACK,gBAAZ,GACX9C,EAAI8C,EACCxF,EAAGuD,MAAMwC,QAAQP,GACtB9C,EAAI1C,EAAGuD,MAAMmC,iBAAiBM,QAAQR,GACjCxF,EAAGuD,MAAM0C,UAAUT,KACxB9C,EAAII,KAAKa,MAAM6B,IAEZ9C,GAEX1C,EAAGuD,MAAMmC,iBAAiBM,QAAUb,GAAGE,OAAO,OAE9CrF,EAAGuD,MAAM2C,IAAM,SAAUC,EAAGC,GAIxB,GAHiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAEnBF,YAAaL,MAAM,CACF,gBAANM,KAAgBA,GAAKA,EAChC,IAAI/C,GAAI,GAAIyC,KAGZ,OAFAzC,GAAEiD,QAAQH,EAAEI,WACZlD,EAAEmD,QAAQL,EAAEM,UAAYL,GACjB/C,EACJ,GAAiB,gBAAN+C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBpG,EAAGuD,MAAMoD,SAAW,SAAUR,EAAGC,GAI7B,GAHiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAEnBF,YAAaL,MAAM,CACF,gBAANM,KAAgBA,GAAKA,EAChC,IAAI/C,GAAI,GAAIyC,KAGZ,OAFAzC,GAAEiD,QAAQH,EAAEI,WACZlD,EAAEmD,QAAQL,EAAEM,UAAYL,GACjB/C,EACJ,GAAiB,gBAAN+C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBpG,EAAGuD,MAAMqD,WAAa,WAMlB,QAASC,GAAoB9E,GACpB+E,EAAY/E,KACb+E,EAAY/E,OAPpB,GAEIgF,GACAC,EAHAF,OACAG,IASJpC,MAAKqC,aAAe,SAAUC,EAAYC,EAAYC,GAClDR,EAAoBM,GACpBL,EAAYK,GAAYC,GAAcC,GAG1CxC,KAAKyC,aAAe,SAAUC,EAAGC,GAC7BX,EAAoBU,EACpB,IAAIE,GAAYX,EAAYS,GAAGC,EAG/B,OAFkB/E,UAAdgF,IACAA,EAAY,GACTA,GAGX5C,KAAK6C,SAAW,SAAU1G,EAAO2G,GAI7B,MAHKA,KACDA,EAAWZ,GACfE,EAAQ1F,MAAMP,EAAO2G,IACdV,EAAQjF,OAAS,GAG5B6C,KAAK+C,cAAgB,SAAU5G,EAAO6G,EAAMF,GACxC,GAAIG,GAAajD,KAAK6C,SAAS1G,EAAO2G,EAEtC,OADAV,GAAQa,GAAYD,KAAOA,EACpBA,GAGXhD,KAAKkD,gBAAkB,SAAUC,GAC7B,MAAOf,GAAQe,GAAO,IAG1BnD,KAAKoD,mBAAqB,SAAUD,GAChC,MAAOf,GAAQe,GAAO,IAG1BnD,KAAKqD,KAAO,WACR,MAAOjB,GAAQjF,QAGnB6C,KAAKrD,MAAQ,WACTsF,KACAG,MAGJpC,KAAKsD,mBAAqB,SAAUC,GAChCrB,EAAmBqB,GAGvBvD,KAAKwD,cAAgB,WACjB,MAAOvB,IAGXjC,KAAKyD,gBAAkB,WACnBxB,QAGJjC,KAAK0D,WAAa,SAASV,EAAMW,GACzBA,IAAgBxB,GAAkB,GACtCnC,KAAK4D,aAAaZ,GAAM,IAG5BhD,KAAK6D,WAAa,SAASb,EAAMc,GACzBA,IAAgB3B,GAAkB,GACtCnC,KAAK4D,aAAaZ,GAAM,IAG5BhD,KAAK4D,aAAe,SAASZ,EAAMe,GAC/B,IAAK,GAAI7G,GAAI,EAAGA,EAAIkF,EAAQjF,SAAUD,EAC9BkF,EAAQlF,GAAG8F,OAASA,IACpBZ,EAAQlF,GAAG8G,OAASD,IAIhC/D,KAAKiE,SAAW,WAGZ,IAAK,GAFDC,MAEKhH,EAAI,EAAGA,EAAI+E,EAAY9E,SAAUD,EACtC,KAAU,IAANA,GAAWiF,GAEXjF,EAAI,GAAKkF,EAAQlF,EAAE,GAAG8G,QAA1B,CAMA,IAAK,GAHDG,IAAShB,MAAOjG,EAAGkH,WACnBC,EAAapC,EAAY/E,GAEpBoH,EAAI,EAAGA,EAAID,EAAWlH,SAAUmH,EACrCH,EAAMC,OAAO1H,KAAK2H,EAAWC,GAEjCJ,GAAOxH,KAAKyH,GAGhB,MAAOD,KAIf/I,EAAGuD,MAAM6F,SAAW,SAASxF,GACzB,MAAOA,MAAKA,GAGhB5D,EAAGuD,MAAMwC,QAAU,SAAUnC,GACzB,MAAOA,MAAKA,GAAKA,KAAO,EAAFA,IAG1B5D,EAAGuD,MAAM0C,UAAY,SAAUrC,GAC3B,MAAOA,MAAKA,GAAKA,KAAO,EAAFA,IAG1B5D,EAAGuD,MAAMC,aAAe,SAAU6F,GAC9B,MAAe5G,UAAR4G,GAAsBA,EAAMrJ,EAAGE,UAAUU,mBAAqByI,GAAOrJ,EAAGE,UAAUU,kBAG7F,IAAI0I,GAAa,CAghLjB,OA/gLAtJ,GAAGuD,MAAMgG,SAAW,WAClB,QAASD,GAGXtJ,EAAGuD,MAAMiG,SAAW,SAAUxI,EAAO2G,GACjC,GAAI0B,GAAMlE,GAAGkE,IAAIrI,EAAMyI,MAAO9B,EAE9B,OADI3H,GAAGuD,MAAMC,aAAa6F,KAAMA,EAAM,GAC/BA,GAGXrJ,EAAGuD,MAAMmG,SAAW,SAAU1I,EAAO2G,GACjC,GAAIgC,GAAMxE,GAAGwE,IAAI3I,EAAMyI,MAAO9B,EAE9B,OADI3H,GAAGuD,MAAMC,aAAamG,KAAMA,EAAM,GAC/BA,GAGX3J,EAAGuD,MAAMqG,SAAW,SAAU/B,GAC1B,MAAOA,GAAKgC,cAAcxD,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtErG,EAAGuD,MAAMuG,eAAiB,SAAUC,EAAQlC,GACxC,GAAImC,GAAUD,EAAOE,OAAOpC,EAE5B,OADImC,GAAQE,UAASF,EAAUD,EAAOI,OAAOtC,IACtCmC,GAGXhK,EAAGuD,MAAM6G,iBAAmB,SAAUjJ,EAAOH,EAAO2G,EAAU0C,GAC1D,GAAIC,IAAczC,KAAM1G,EAAMoJ,cAAcvJ,EAAO2G,GAAWN,KAAMrG,EAEpE,OADIqJ,KAAOC,EAAWD,MAAQA,GACvBC,GAGXtK,EAAGuD,MAAMiH,WAAa,SAAS5G,GAAG,MAAO5D,GAAGuD,MAAM6F,UAAUxF,IAAIA,EAAE,GAElE5D,EAAGyK,QACCC,QAAS,MAoBb1K,EAAGyK,OAAOE,QAAU,SAASC,EAASC,GAClC,MAAKA,IAKL7K,EAAGyK,OAAOC,QAAUE,EAEpBE,WAAW,WACHF,GAAW5K,EAAGyK,OAAOC,SACrBE,KACLC,GALH7K,SAJI4K,IACA,SAWR5K,EAAG+K,cAEH/K,EAAG+K,WAAWC,KAAO,WACjBnG,KAAKoG,aACLpG,KAAKqG,QAELrG,KAAKsG,YAAc,SAASC,GAExB,MADAA,IAAY,IAIhBvG,KAAKrD,MAAQ,WACTqD,KAAKoG,aACLpG,KAAKqG,SAGTrG,KAAKqD,KAAO,WACR,MAAOrD,MAAKoG,UAAUjJ,QAG1B6C,KAAKwG,cAAgB,SAASD,GAC1BA,EAAMvG,KAAKsG,YAAYC,EACvB,IAAIxC,GAAQ/D,KAAKqG,KAAKE,EACtB,OAAOxC,IAGX/D,KAAKyG,cAAgB,SAASF,EAAKxC,GAG/B,MAFAwC,GAAMvG,KAAKsG,YAAYC,GACvBvG,KAAKqG,KAAKE,GAAOxC,EACVA,GAGX/D,KAAK0G,WAAa,SAASH,GAEvB,MADAA,GAAMvG,KAAKsG,YAAYC,GAChBvG,KAAKoG,UAAU5J,QAAQ+J,IAGlCvG,KAAK2G,WAAa,SAASJ,GACvBA,EAAMvG,KAAKsG,YAAYC,GACvBvG,KAAKoG,UAAU1J,KAAK6J,IAGxBvG,KAAK4G,cAAgB,SAASzD,GAC1B,MAAOnD,MAAKoG,UAAUjD,KAI9BhI,EAAG+K,WAAWW,IAAM,WAChB1L,EAAG+K,WAAWC,KAAK/F,MAAMJ,KAAMT,WAE/BS,KAAKqB,IAAM,SAASkF,EAAKxC,GAChBA,IACDA,EAAQ,GAEoBnG,SAA5BoC,KAAKwG,cAAcD,IACnBvG,KAAK2G,WAAWJ,GAChBvG,KAAKyG,cAAcF,EAAKxC,IAExB/D,KAAKyG,cAAcF,EAAKvG,KAAKwG,cAAcD,GAAOxC,IAI1D/D,KAAK8G,MAAQ,SAASP,EAAKxC,GACvB/D,KAAKyG,cAAcF,EAAKvG,KAAKwG,cAAcD,GAAOxC,IAGtD/D,KAAK+G,cAAgB,SAASR,GAC1B,GAAIS,GAAWhH,KAAK0G,WAAWH,EAC/B,IAAe,EAAXS,EAAc,MAAO,EAEzB,KAAK,GADDC,GAAkB,EACb/J,EAAI,EAAQ8J,GAAL9J,IAAiBA,EAAG,CAChC,GAAIgK,GAAIlH,KAAK4G,cAAc1J,EAC3B+J,IAAmBjH,KAAKwG,cAAcU,GAE1C,MAAOD,KAGf9L,EAAG+K,WAAWW,IAAIM,UAAY,GAAIhM,GAAG+K,WAAWC,KAEhDhL,EAAG+K,WAAWkB,YAAc,WAGxB,QAASC,GAASC,GACd,GAAcf,GAAVlD,EAAO,CACX,KAAKkD,IAAOe,GACJA,EAAKC,eAAehB,IAAMlD,GAElC,OAAOA,GAPXlI,EAAG+K,WAAWC,KAAK/F,MAAMJ,KAAMT,WAU/BS,KAAKqB,IAAM,SAASkF,EAAKhK,GACWqB,SAA5BoC,KAAKwG,cAAcD,KACnBvG,KAAKyG,cAAcF,MACnBvG,KAAK2G,WAAWJ,IAGV3I,SAANrB,IACmCqB,SAA/BoC,KAAKwG,cAAcD,GAAKhK,KACxByD,KAAKwG,cAAcD,GAAKhK,GAAK,GAEjCyD,KAAKwG,cAAcD,GAAKhK,IAAM,IAItCyD,KAAK8G,MAAQ,SAASP,EAAKhK,GACvByD,KAAKwG,cAAcD,GAAKhK,IAAM,EAC1ByD,KAAKwG,cAAcD,GAAKhK,IAAM,SACvByD,MAAKwG,cAAcD,GAAKhK,IAGvCyD,KAAKwH,MAAQ,SAASjB,GAClB,MAAOc,GAASrH,KAAKwG,cAAcD,KAGvCvG,KAAKyH,gBAAkB,SAASlB,GAC5B,GAAIS,GAAWhH,KAAK0G,WAAWH,EAC/B,IAAe,EAAXS,EAAc,MAAO,EAEzB,KAAK,GADDS,GAAkB,EACbvK,EAAI,EAAQ8J,GAAL9J,IAAiBA,EAAG,CAChC,GAAIgK,GAAIlH,KAAK4G,cAAc1J,EAC3BuK,IAAmBzH,KAAKwH,MAAMN,GAElC,MAAOO,KAGftM,EAAG+K,WAAWkB,YAAYD,UAAY,GAAIhM,GAAG+K,WAAWC,KAQxDhL,EAAGuM,UAAY,SAAUC,GA6JrB,QAASC,GAAUtL,EAAOuL,EAAG/E,GACzB,GAAIgF,GAAIxL,EAAMyL,SACVb,EAAI,WACHpE,IAAYA,GAAYxG,EAAM0L,kBAC/BlF,EAAW,WACV+E,EAAEX,KAAIW,EAAEX,OACRW,EAAEX,GAAGY,KAAID,EAAEX,GAAGY,IAAMG,KAAKlJ,MAC9B,IAAI7B,GAAI2K,EAAEX,GAAGY,GAAGG,EAAEzL,QAAQsG,EAM1B,OALS,IAAL5F,IACAA,EAAI2K,EAAEX,GAAGY,GAAGG,EAAE9K,OACd0K,EAAEX,GAAGY,GAAGG,EAAE/K,GAAK4F,EACf+E,EAAEX,GAAGY,GAAG/I,EAAE7B,IAAM8F,KAAK,KAElB6E,EAAEX,GAAGY,GAAG/I,EAAE7B,GAuIrB,QAASgL,KAIL,MAHAC,GAAOR,EAAOS,OAAO9C,OAAO,OACvB+C,KAAK,QAASV,EAAOW,SACrBD,KAAK,SAAUV,EAAOY,UA0D/B,QAASC,GAA4BP,GACjC,IAAKN,EAAOM,KAAON,EAAOM,KACtB,KAAM,IAAI9M,GAAGyE,OAAOO,sBAAsB,6BAA+B8H,EAC/B,yBAA2BN,EAAOc,aAAe,KA4EnG,QAASC,GAAapJ,GAClBqJ,EAASC,OAAOD,EAASnM,QAAQ8C,GAAI,GACrCuJ,IACAlB,EAAOmB,wBAAwBxJ,GAGnC,QAASyJ,GAAUzJ,GACfqJ,EAASjM,KAAK4C,GACduJ,IACAlB,EAAOmB,wBAAwBxJ,GAGnC,QAAS0J,KACLL,KACAE,IACAlB,EAAOmB,wBAAwB,MAGnC,QAASD,KACL,GAAIlB,EAAOsB,aAAetB,EAAOsB,YAAYtI,OAAQ,CACjD,GAAIuI,GAAKC,EAAexB,EAAOsB,YAAaN,EAC5CA,GAAWO,EAAKA,EAAKP,GAyP7B,QAASS,KACL,IAAK,GAAIlM,GAAI,EAAGA,EAAImM,EAAYlM,SAAUD,EACtCmM,EAAYnM,GAAGyK,GA5sBvBA,EAAOhI,YAAcxE,EAAGuD,MAAMgG,UAE9B,IAAI4E,GACAC,EAEAC,EACAC,EACAtB,EA4CAuB,EA1CAC,EAAiB,SAAUxE,GAC3B,MAAOA,IAAWA,EAAQyE,uBAAyBzE,EAAQyE,wBAAwBtB,OAAS,KAE5FuB,EAASF,EAETG,EAAkB,SAAU3E,GAC5B,MAAOA,IAAWA,EAAQyE,uBAAyBzE,EAAQyE,wBAAwBrB,QAAU,KAE7FwB,EAAUD,EAEVE,EAAe7O,EAAG2F,MAAM,OACxBmJ,EAAiB9O,EAAG2F,MAAM,SAC1BoJ,EAAY/O,EAAG2F,MAAM,OACrBqJ,EAAShP,EAAG2F,MAAM,OAElBsJ,GAAe,EAEfC,EAAS,SAAU7L,GACnB,MAAOA,GAAE+H,IAAM,KAAO/H,EAAEuF,OAExBuG,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBrP,EAAGsF,SAASC,QAE7B2I,KACAoB,GAAwB,YAAa,SAErCC,EAAcvP,EAAGE,UAAUQ,oBAE3B8O,EAAgB,aAEhBC,GACAC,UAAWF,EACXG,WAAYH,EACZI,UAAWJ,EACXK,WAAYL,EACZM,SAAUN,EACVO,OAAQP,GAKRhC,KACAQ,EAAiB,SAAUF,EAAWvI,GAYtC,MAXAuI,GAAUtI,OAAO,MAEM,IAAnBD,EAAQvD,OACR8L,EAAUtI,OAAO,MACO,IAAnBD,EAAQvD,OACb8L,EAAUtI,OAAOD,EAAQ,IAEzBuI,EAAUkC,eAAe,SAAU3M,GAC/B,MAAOkC,GAAQlE,QAAQgC,IAAM,IAG9BkC,GAGP0K,EAAQ,SAAUjP,GAClB,MAAOA,GAAMyI,MA8sBjB,OAtsBA+C,GAAOW,MAAQ,SAAU+C,GACrB,MAAK9L,WAAUpC,QACf0M,EAASvJ,GAAGgL,QAAQD,GAAK1B,GAClBhC,GAFuBkC,EAAOJ,EAAM8B,SAyB/C5D,EAAOY,OAAS,SAAUiD,GACtB,MAAKjM,WAAUpC,QACf4M,EAAUzJ,GAAGgL,QAAQE,GAAK1B,GACnBnC,GAFuBoC,EAAQN,EAAM8B,SAchD5D,EAAOsB,UAAY,SAAUzK,GACzB,MAAKe,WAAUpC,QACfmM,EAAa9K,EACbmJ,EAAO8D,cACA9D,GAHuB2B,GAMlC3B,EAAOnF,KAAO,SAAShE,GACnB,MAAKe,WAAUpC,QACfiO,EAAQ9K,GAAGgL,QAAQ9M,GACnBmJ,EAAO8D,cACA9D,GAHuByD,EAAM7B,IAiBxC5B,EAAOxL,MAAQ,SAAU0L,EAAG7E,GACxB,MAAKzD,WAAUpC,QACfoM,EAAS1B,EACTF,EAAO8D,cACa,gBAATzI,IAAmB2E,EAAO+D,cAAcnC,EAAQvG,GACpD2E,GAJuB4B,GA4BlC5B,EAAOjC,cAAgB,SAAUmC,EAAG/E,GAChC,MAAO8E,GAAUD,EAAQE,EAAG/E,GAAUE,MAG1C2E,EAAO+D,cAAgB,SAAU7D,EAAG7E,EAAMF,GACtC8E,EAAUD,EAAQE,EAAG/E,GAAUE,KAAOA,GAG1C2E,EAAOgE,SAAW,SAASlM,GACvB,MAAKF,WAAUpC,QACf+M,EAAYzK,EACZkI,EAAO8D,cACA9D,GAHuBuC,GAMlCvC,EAAOiE,qBAAuB,SAASC,GACnC,GAAIrJ,GAAOqJ,EAAGC,MAAM,EACpB,IAAGtJ,EAAKrF,OAAS,EACb,MAAOqF,EACX,IAAIuJ,GAAOC,YAAYC,UAAUC,GAAGvE,EAAOgE,WAC3C,OAAOI,GAAKvJ,EAAK,EAAEA,EAAKrF,SAQ5BwK,EAAO3K,UAAY,WACf,MAAO2K,GAAOhH,OAAO,OAGzBgH,EAAOwE,QAAU,WACb,MAAsBvO,UAAf0L,GAAuC1L,SAAX2L,GAavC5B,EAAOvC,OAAS,SAAUvH,GACtB,MAAO4L,GAAMrE,OAAOvH,IAaxB8J,EAAOyE,UAAY,SAAUvO,GACzB,MAAO4L,GAAQA,EAAM2C,UAAUvO,GAAK,MAQxC8J,EAAOI,OAAS,SAAUE,EAAGoE,GACzB,MAAK9M,WAAUpC,QACXhC,EAAGqE,gBAAgByI,IACnBuB,EAAUvB,EAAEF,SACZ0B,EAAQxB,EAAEG,SAEVoB,EAAUvB,EACVwB,EAAQnJ,GAAG8E,OAAOoE,GAClBC,EAAM6C,QAAQnR,EAAGE,UAAUC,aAAa,GACxCH,EAAG0B,cAAc8K,EAAQ0E,IAE7B3B,EAAc2B,EACP1E,GAXuB6B,GAmBlC7B,EAAOc,WAAa,WAChB,GAAIR,GAAIN,EAAOI,QACf,OAAIE,IAAKA,EAAEsE,GAAWtE,EAAEsE,GACpBtE,GAAKA,EAAEzG,QAAgByG,EAAEzG,QAAQ,IAAI,IAClC,GAAKmG,EAAO6E,WAUvB7E,EAAOS,KAAO,SAAU7G,GACpB,MAAKhC,WAAUpC,QACfsM,EAAQlI,EACDoG,GAFuB8B,GAYlC9B,EAAO8E,IAAM,SAAUnN,GACnB,MAAKC,WAAUpC,QACfgL,EAAO7I,EACAqI,GAFuBQ,GASlCR,EAAO+E,SAAW,WAEd,MADA/E,GAAOvC,OAAO,OAAOuH,SACdzE,KAiBXP,EAAOiF,cAAgB,SAAUtN,GAC7B,MAAKC,WAAUpC,QACfqN,EAAiBlL,EACVqI,GAFuB6C,GAalC7C,EAAOkF,eAAiB,WAKpB,MAJIpD,KACA9B,EAAOyE,UAAU,UAAUU,MAAM,UAAW,MAC5CnF,EAAOyE,UAAU,WAAWW,KAAKvC,EAAe7C,EAAOjH,YAAYoM,MAAM,UAAW,OAEjFnF,GAGXA,EAAOqF,gBAAkB,WAKrB,MAJIvD,KACA9B,EAAOyE,UAAU,UAAUU,MAAM,UAAW,QAC5CnF,EAAOyE,UAAU,WAAWU,MAAM,UAAW,QAAQC,KAAKpF,EAAOhH,WAE9DgH,GAQXA,EAAOsF,mBAAqB,SAAUzO,GAClC,MAAKe,WAAUpC,QACfoN,EAAsB/L,EACfmJ,GAFuB4C,GAKlC5C,EAAO8C,qBAAuB,SAAUnL,GACpC,MAAKC,WAAUpC,QACfsN,EAAuBnL,EAChBqI,GAFuB8C,GAkBlC9C,EAAOtK,OAAS,WACZuN,EAAWC,UAAUlD,GAEjB8C,GACAA,EAAqByC,QAAQ1E,EAEjC,IAAI2E,GAASxF,EAAOyF,UAMpB,OAJI1D,IAASA,EAAQrM,SAErBsK,EAAO0F,mBAAmB,cAEnBF,GAGXxF,EAAO0F,mBAAqB,SAAUC,GAC9B3F,EAAOsF,qBAAuB,GAAK9E,EACnCA,EAAK3K,aAAaE,SAASiK,EAAOsF,sBAC7BM,KAAK,MAAO,WACTnE,IACIkE,GAAO1C,EAAW0C,GAAO3F,MAGrCyB,IACIkE,GAAO1C,EAAW0C,GAAO3F,KAarCA,EAAOpK,OAAS,WACZqN,EAAWG,UAAUpD,EAErB,IAAIwF,GAASxF,EAAO6F,UAIpB,OAFA7F,GAAO0F,mBAAmB,cAEnBF,GAGXxF,EAAOmB,wBAA0B,SAAU/H,GAC7BnD,SAANmD,GAAiB6J,EAAWK,SAAStD,EAAQ5G,IAGrD4G,EAAO8F,sBAAwB,WAC3B7C,EAAWM,OAAOvD,IAStBA,EAAO+F,UAAY,SAAU/M,GACzB,MAAKpB,WAAUpC,OACRwL,EAASnM,QAAQmE,IAAW,EADLgI,EAASxL,OAAS,GAwCpDwK,EAAOhH,OAAS,SAAUrB,GACtB,MAAKC,WAAUpC,QAEL,OAANmC,EACA0J,IAEIrB,EAAO+F,UAAUpO,GACjBoJ,EAAapJ,GAEbyJ,EAAUzJ,GAGJ,OAAVmK,GAAkB9B,EAAO+F,YACzB/F,EAAOkF,iBAEPlF,EAAOqF,kBAGJrF,GAjBuBgB,EAASxL,OAAS,EAAIwL,EAAS,GAAK,MA0BtEhB,EAAOjH,QAAU,WACb,MAAOiI,IAGXhB,EAAOgG,kBAAoB,SAAUpR,GACjC+D,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUK,gBAAgB,GAClD4E,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUI,kBAAkB,IAGxDkM,EAAOiG,eAAiB,SAAUrR,GAC9B+D,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUK,gBAAgB,GAClD4E,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUI,kBAAkB,IAGxDkM,EAAOkG,eAAiB,SAAUtR,GAC9B+D,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUK,gBAAgB,GAClD4E,GAAG8E,OAAO7I,GAAG+P,QAAQnR,EAAGE,UAAUI,kBAAkB,IAGxDkM,EAAOmG,QAAU,SAAUtP,GACvB,GAAImC,GAASgH,EAAOoG,cAAcvP,EAClCrD,GAAGyK,OAAOE,QAAQ,WACd6B,EAAOhH,OAAOA,GACdxF,EAAGmC,UAAUqK,EAAO0E,iBAyB5B1E,EAAOqG,cAAgB,SAAU1O,GAC7B,MAAKC,WAAUpC,QACfgM,EAAiB7J,EACVqI,GAFuBwB,GAMlCxB,EAAOyF,SAAW,WAEd,MAAOzF,IAGXA,EAAO6F,SAAW,WAEd,MAAO7F,IAGXA,EAAOsG,YAAc,WAEjB,UAGJtG,EAAOuG,gBAAkB,aAIzBvG,EAAOwG,YAAc,aAiBrBxG,EAAOoG,YAAc,SAAUzO,GAC3B,MAAKC,WAAUpC,QACf6M,EAAe1K,EACRqI,GAFuBqC,GAkBlCrC,EAAOK,cAAgB,SAAU1I,GAC7B,MAAKC,WAAUpC,QACf8M,EAAiB3K,EACVqI,GAFuBsC,GAkBlCtC,EAAOyG,MAAQ,SAAU9O,GACrB,MAAKC,WAAUpC,QACfgN,EAAS7K,EACT8K,GAAe,EACRzC,GAHuBwC,GAWlCxC,EAAO0G,YAAc,SAAU/O,GAC3B,MAAKC,WAAUpC,QACfiN,EAAe9K,EACRqI,GAFuByC,GAyBlCzC,EAAO2G,MAAQ,SAAUhP,GACrB,MAAKC,WAAUpC,QACfkN,EAAS/K,EACTgL,GAAe,EACR3C,GAHuB0C,GAWlC1C,EAAO4G,YAAc,SAAUjP,GAC3B,MAAKC,WAAUpC,QACfmN,EAAehL,EACRqI,GAFuB2C,GAsBlC3C,EAAOtI,UAAY,SAAUC,GAEzB,MADA+J,GAAY3M,KAAK4C,GACVqI,GASXA,EAAO0E,WAAa,SAAU/M,GAC1B,MAAKC,WAAUpC,QACfuN,EAAcpL,EACPqI,GAFuB+C,GAalC/C,EAAO8D,YAAc,WAEjB,MAAO9D,IAaXA,EAAO6G,OAAS,SAAUlN,GACtB,MAAK/B,WAAUpC,QACfuM,EAAUpI,EACVoI,EAAQxE,OAAOyC,GACRA,GAHuB+B,GA6BlC/B,EAAO8G,GAAK,SAAUnB,EAAOoB,GAEzB,MADA9D,GAAW0C,GAASoB,EACb/G,GAGXA,EAAO6E,QAAU,WACb,MAAO7E,GAAOhI,aAGXgI,GASXxM,EAAGwT,WAAa,SAAUhH,GACtB,GAAIiH,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA6BrD,OAdArH,GAAOsH,QAAU,SAAUC,GACvB,MAAK3P,WAAUpC,QACfyR,EAAUM,EACHvH,GAFuBiH,GAKlCjH,EAAOwH,eAAiB,WACpB,MAAOxH,GAAOW,QAAUX,EAAOsH,UAAUD,KAAOrH,EAAOsH,UAAUH,OAGrEnH,EAAOyH,gBAAkB,WACrB,MAAOzH,GAAOY,SAAWZ,EAAOsH,UAAUJ,IAAMlH,EAAOsH,UAAUF,QAG9DpH,GASXxM,EAAGkU,oBAAsB,SAAU1H,GA4R/B,QAAS2H,GAAazH,GAClB,GAAIF,EAAO4H,aAAe5H,EAAO6H,YAC7BC,EAAGrR,QAAQuJ,EAAO+H,WAAY/H,EAAOgI,iBAEpC,IAAIhI,EAAO6H,aAAoC,IAArBC,EAAGrR,SAASjB,OAAY,CACnD,GAAIyS,GAAcjI,EAAOiE,qBAAqBjE,EAAOnF,OACrDiN,GAAGrR,OAAOwR,EAAYC,IAAIlI,EAAOoG,gBAGjCpG,EAAO6H,YACP7H,EAAOmI,sBAEPL,EAAGM,OAAO,EAAGpI,EAAOqI,gBAGxBC,EAASA,EAAOC,MAAMvI,EAAOjF,KAAKyN,OAAO,UAEzCC,EAAwBvI,GAyB5B,QAASuI,GAAwBvI,GAC7B,GAAIwI,GAAYxI,EAAEuE,UAAU,KAAOkE,EAEnC,IAAIC,EAAyB,CACrBF,EAAUhL,UACVgL,EAAYxI,EAAE2I,OAAO,IAAK,gBACrBnI,KAAK,QAASoI,EAAkB,IAAMH,GACtCjI,KAAK,YAAa,aAAeV,EAAO+I,SAAW,IAAM/I,EAAOsH,UAAUJ,IAAM,KAEzF,IAAI8B,GAAQV,EAAOW,aAAeX,EAAOW,aAAenB,EAAGkB,MAAMV,EAAOU,QAAQ,IAE5EE,EAAQR,EAAUjE,UAAU,QAC3B5J,KAAKmO,GAGNG,EAAcD,EAAME,QACnBzL,OAAO,QACP+C,KAAK,KAAM,SAAU7J,GAClB,MAAOiR,GAAGjR,KAEb6J,KAAK,KAAMV,EAAOqJ,SAAWrJ,EAAOsH,UAAUJ,KAC9CxG,KAAK,KAAM,SAAU7J,GAClB,MAAOiR,GAAGjR,KAEb6J,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBlN,GAAGqC,WAAWsT,EAAanJ,EAAOsF,sBAC7B5E,KAAK,UAAW,GAGrBlN,EAAGqC,WAAWqT,EAAOlJ,EAAOsF,sBACvB5E,KAAK,KAAM,SAAU7J,GAClB,MAAOiR,GAAGjR,KAEb6J,KAAK,KAAMV,EAAOqJ,SAAWrJ,EAAOsH,UAAUJ,KAC9CxG,KAAK,KAAM,SAAU7J,GAClB,MAAOiR,GAAGjR,KAEb6J,KAAK,KAAM,GAGhBwI,EAAMI,OAAOtE,aAGb0D,GAAUjE,UAAU,QAAQO,SAqBpC,QAASuE,GAAarJ,IACPjK,SAAPuT,GAAoBxJ,EAAOyJ,cAC3BD,EAAK7Q,GAAG4P,MAAMmB,SACdF,EAAG/S,QAAQuJ,EAAO2J,WAAY3J,EAAO4J,aAAaC,YAAY7J,EAAO8J,cAAe,KAGxFN,EAAGpB,OAAOpI,EAAO8J,cAAe,IAChCC,EAASA,EAAOxB,MAAMiB,GAAIhB,OAAO,QAEjCwB,EAA0B9J,GAyB9B,QAAS8J,GAA0B9J,GAC/B,GAAIwI,GAAYxI,EAAEuE,UAAU,KAAOwF,EAEnC,IAAIC,EAA2B,CAC3B,GAAIlB,GAAQe,EAAOd,aAAec,EAAOd,aAAeO,EAAGR,MAAMe,EAAOf,QAAQ,GAE5EN,GAAUhL,UACVgL,EAAYxI,EAAE2I,OAAO,IAAK,gBACrBnI,KAAK,QAASoI,EAAkB,IAAMmB,GACtCvJ,KAAK,YAAa,aAAeV,EAAO+I,SAAW,IAAM/I,EAAOsH,UAAUJ,IAAM,KAEzF,IAAIgC,GAAQR,EAAUjE,UAAU,QAC3B5J,KAAKmO,GAGNG,EAAcD,EAAME,QACnBzL,OAAO,QACP+C,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU7J,GAClB,MAAO2S,GAAG3S,KAEb6J,KAAK,KAAMV,EAAOqI,eAClB3H,KAAK,KAAM,SAAU7J,GAClB,MAAO2S,GAAG3S,KAEb6J,KAAK,UAAW,EACrBlN,GAAGqC,WAAWsT,EAAanJ,EAAOsF,sBAC7B5E,KAAK,UAAW,GAGrBlN,EAAGqC,WAAWqT,EAAOlJ,EAAOsF,sBACvB5E,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU7J,GAClB,MAAO2S,GAAG3S,KAEb6J,KAAK,KAAMV,EAAOqI,eAClB3H,KAAK,KAAM,SAAU7J,GAClB,MAAO2S,GAAG3S,KAIlBqS,EAAMI,OAAOtE,aAGb0D,GAAUjE,UAAU,QAAQO,SA0KpC,QAASmF,KACL,MAAOnK,GAAOqJ,SAAWrJ,EAAOsH,UAAUJ,IAuG9C,QAASkD,KACL,MAAOpK,GAAOc,aAAe,QAgBjC,QAASuJ,KACL,GAAIC,GAAO9W,EAAGuD,MAAMuG,eAAeiN,EAAS,QAExCC,EAAgBhX,EAAGuD,MAAMuG,eAAegN,EAAM,YAAY5J,KAAK,KAAM0J,KAErEK,EAAyB,EAAfC,CAEdlX,GAAGuD,MAAMuG,eAAekN,EAAe,QAClC9J,KAAK,QAASV,EAAOqI,cAAgBoC,GACrC/J,KAAK,SAAUV,EAAO8J,cAAgBW,GAwB/C,QAASE,KACDC,GACA5K,EAAOS,OAAOpH,KAAKV,GAAGkS,SAASC,OAC1B/P,EAAEiF,EAAOjF,KACTgQ,YAAYC,GACZlE,GAAG,OAAQ,WACR9G,EAAOiL,MAAMjL,EAAOjF,IAAItE,UACxBuJ,EAAO8F,wBACPoF,OAKhB,QAASA,KACL,GAAIC,EAAa,CACb,GAAIC,GAASpL,EAAOjF,IAAItE,QACxB,IAAI4U,EAAkB,CAClB,GAAIC,GAAUH,EAAYI,kBACtBC,GACAJ,EAAO,GAAKE,EAAQ,GAAKF,EAAO,GAAKE,EAAQ,GAC7CF,EAAO,GAAKE,EAAQ,GAAKF,EAAO,GAAKE,EAAQ,GAEjDH,GAAYF,MAAMO,OAElBL,GAAYF,MAAMG,EAEtBD,GAAYnS,OAAO,MACnBmS,EAAYnS,OAAOoS,GAEnB5X,EAAGyK,OAAOE,QAAQ,WACd3K,EAAGmC,UAAUqK,EAAO0E,iBA0ChC,QAAS+G,GAAiBrD,GACtB,MAAOA,aAAiBnP,QAASmP,EAAM5S,OAAS,EAj2BpD,GAAIsT,GAAkB,YAClBmB,EAAmB,aACnBtB,EAAiB,WACjB+C,EAAqB,eACrBC,EAAqB,eACrBC,EAA8B,EAElC5L,GAASxM,EAAGqY,WAAWrY,EAAGwT,WAAWxT,EAAGuM,UAAUC,KAElDA,EAAO8L,OAAOnT,GAAG4P,MAAMwD,cACvB/L,EAAO8C,uBAAuB/N,KAAK,IAEnC,IAAIwV,GACAyB,EACAC,EAEAnE,EACAoE,EAKAC,EAGA3C,EAIA4C,EAKAC,EAMAC,EAKAnB,EACAoB,EA5BAjE,EAAS3P,GAAGmM,IAAI0H,OAChBC,EAAUjZ,EAAG4C,MAAMC,SACnBqW,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAGrB7C,EAASpR,GAAGmM,IAAI0H,OAChBK,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAASrU,GAAGmM,IAAImI,QAChBC,GAAW,EAGXhD,GAA4B,EAC5BtB,GAA0B,EAE1BuE,GAAa,EAGbnC,GAAc,IAAK,KACnBK,GAAmB,EAKnBT,GAAiB,EACjBF,EAAe,CAm2BnB,OAj2BA1K,GAAO2G,MAAM,SAAU9P,GACnB,MAAOmJ,GAAOoG,cAAcvP,EAAEgE,MAAQ,KAAOmF,EAAOK,gBAAgBxJ,EAAEgE,QAG1EmF,EAAOoN,QAAU,WACbd,EAAarW,OACb+J,EAAOqN,cAWXrN,EAAOsN,WAAa,SAAU3V,GAC1B,MAAKC,WAAUpC,QACf2V,EAAcxT,EACdwT,EAAYoC,WAAWvN,GAChBA,GAHuBmL,GAWlCnL,EAAOwN,UAAY,SAAU7V,GACzB,MAAKC,WAAUpC,QACfwV,EAAarT,EACNqI,GAFuBgL,GASlChL,EAAOyN,gBAAkB,SAAU9V,GAC/B,MAAKC,WAAUpC,QACf6V,EAAmB1T,EACZqI,GAFuBqL,GAKlCrL,EAAO0N,WAAa,SAAUnQ,GAY1B,MAVIgN,GADWtU,SAAXsH,EACUyC,EAAO8E,MAEPvH,EAEdyO,EAAKzB,EAAQ5M,OAAO,KAEpBsO,EAAcD,EAAGrO,OAAO,KAAK+C,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeV,EAAOsH,UAAUD,KAAO,KAAOrH,EAAOsH,UAAUJ,IAAM,KACvFxG,KAAK,YAAa,QAAU0J,IAAkB,KAE5C4B,GASXhM,EAAOE,EAAI,SAAUvI,GACjB,MAAKC,WAAUpC,QACfwW,EAAKrU,EACEqI,GAFuBgM,GAYlChM,EAAO2N,cAAgB,SAAUC,GAC7B,MAAKhW,WAAUpC,QACfoV,EAAiBgD,EACV5N,GAFuB4K,GASlC5K,EAAO6N,WAAa,SAAUlW,GAC1B,MAAKC,WAAUpC,QACfyW,EAActU,EACPqI,GAFuBiM,GAiBlCjM,EAAOjF,EAAI,SAAUpD,GACjB,MAAKC,WAAUpC,QACfsS,EAAKnQ,EACLuU,EAAmBpE,EAAGrR,SACfuJ,GAHuB8H,GAMlC9H,EAAOuL,gBAAkB,WACrB,MAAOW,IAgCXlM,EAAO8N,OAAS,SAAUnW,GACtB,MAAKC,WAAUpC,QACfiX,EAAU9U,EACHqI,GAFuByM,GAoBlCzM,EAAO+N,MAAQ,SAAUpW,GACrB,MAAKC,WAAUpC,QACf8S,EAAS3Q,EACFqI,GAFuBsI,GAWlCtI,EAAO4H,SAAW,SAAUjQ,GACxB,MAAKC,WAAUpC,QACfmX,EAAehV,EACRqI,GAFuB2M,GAelC3M,EAAOgO,aAAe,SAAUrW,GAC5B,MAAKC,WAAUpC,QACfkX,EAAgB/U,EACTqI,GAFuB0M,GAKlC1M,EAAOqN,WAAa,WAChB,GAAmBpX,SAAfqW,EAA0B,CAC1B,GAAIlW,GAAQ4J,EAAO8N,SAAS9N,EAAOjF,IAAItE,SAAS,GAAIuJ,EAAOjF,IAAItE,SAAS,GAAIuJ,EAAOjF,IAAItE,SAGnF6V,GADAlW,YAAiB6C,OACJ7C,EAAMZ,OAENY,EAGrB,MAAOkW,IAGXtM,EAAO6H,UAAY,WACf,MAAO7H,GAAO8N,WAAata,EAAG4C,MAAMI,SAGxCwJ,EAAOmI,oBAAsB,SAAUtI,GAC9BA,IACDA,EAAQG,EAAOqN,aAInB,KAAK,GAHDjF,MACA6F,EAAYjO,EAAOqI,eAAiBxI,EAAQ,GAC5CqO,EAAkBD,EAAU,EACvB1Y,EAAI,EAAOsK,EAAJtK,EAAWA,IACvB6S,EAAM7S,GAAK2Y,EACXA,GAAmBD,CAEvBnG,GAAGM,MAAMA,IAuBbpI,EAAOmO,YAAc,SAAUjO,GAC3B,GAAIkO,GAASlO,EAAEuE,UAAU,MAErB2J,GAAO1Q,UACP0Q,EAASlO,EAAEvC,OAAO,KACb+C,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeV,EAAOsH,UAAUD,KAAO,IAAMrH,EAAOqJ,SAAW,KAE1F,IAAIgF,GAAWnO,EAAEuE,UAAU,QAAQkH,EAC/B0C,GAAS3Q,SAAWsC,EAAOsO,eAC3BD,EAAWnO,EAAEvC,OAAO,QACf+C,KAAK,YAAa,aAAeV,EAAOqI,cAAgB,EAAI,KAAOrI,EAAOY,SAAWgM,GAAsB,KAC3GlM,KAAK,QAASiL,GACdjL,KAAK,cAAe,UACpB0E,KAAKpF,EAAOsO,eACjBtO,EAAOsO,cAAgBD,EAASjJ,QAAUpF,EAAOsO,cACjDC,SAASnJ,KAAKpF,EAAOsO,cAEzB9a,EAAGqC,WAAWuY,EAAQpO,EAAOsF,sBACxBjM,KAAKiP,IAmDdtI,EAAOqJ,OAAS,WACZ,MAAQrJ,GAAOY,SAAWZ,EAAOsH,UAAUF,QAG/CpH,EAAOqI,YAAc,WACjB,MAAOrI,GAAOwH,kBAGlBxH,EAAOsO,WAAa,SAAU3W,EAAE6W,GAC5B,MAAK5W,WAAUpC,QACf2W,EAAcxU,EACdqI,EAAOsH,UAAUF,QAAUwF,EAC3BA,EAA4B3W,SAANuY,EAAmB5C,EAA8B4C,EACvExO,EAAOsH,UAAUF,QAAUwF,EACpB5M,GALuBmM,GAoBlCnM,EAAOyO,YAAc,SAAUvO,GAC3B,GAAIwO,GAASxO,EAAEuE,UAAU,MACrBiK,GAAOhR,UACPgR,EAASxO,EAAEvC,OAAO,KACb+C,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeV,EAAO+I,SAAW,IAAM/I,EAAOsH,UAAUJ,IAAM,KAEzF,IAAIqH,GAAWrO,EAAEuE,UAAU,QAAQiH,EAC/B6C,GAAS7Q,SAAWsC,EAAO2O,eAC3BJ,EAAWrO,EAAEvC,OAAO,QACf+C,KAAK,YAAa,aAAeqM,EAAqB,IAAM/M,EAAO8J,cAAc,EAAI,iBACrFpJ,KAAK,QAASgL,GACdhL,KAAK,cAAe,UACpB0E,KAAKpF,EAAO2O,eACjB3O,EAAO2O,cAAgBJ,EAASnJ,QAAUpF,EAAO2O,cACjDJ,EAASnJ,KAAKpF,EAAO2O,cAEzBnb,EAAGqC,WAAW6Y,EAAQ1O,EAAOsF,sBACxBjM,KAAK0Q,IAoDd/J,EAAO+I,OAAS,WACZ,MAAO/I,GAAOsH,UAAUD,MAG5BrH,EAAO2O,WAAa,SAAUhX,EAAE6W,GAC5B,MAAK5W,WAAUpC,QACf4W,EAAczU,EACdqI,EAAOsH,UAAUD,MAAQ0F,EACzBA,EAA4B9W,SAANuY,EAAmB5C,EAA8B4C,EACvExO,EAAOsH,UAAUD,MAAQ0F,EAClB/M,GALuBoM,GAalCpM,EAAOhF,EAAI,SAAUrD,GACjB,MAAKC,WAAUpC,QACfgU,EAAK7R,EACEqI,GAFuBwJ,GAoBlCxJ,EAAO4O,MAAQ,SAAU5T,GACrB,MAAKpD,WAAUpC,QACfuU,EAAS/O,EACFgF,GAFuB+J,GAWlC/J,EAAOyJ,SAAW,SAAU9R,GACxB,MAAKC,WAAUpC,QACfsX,EAAenV,EACRqI,GAFuB8M,GAUlC9M,EAAOgK,0BAA4B,SAAUrS,GACzC,MAAKC,WAAUpC,QACf0U,EAA4BvS,EACrBqI,GAFuBkK,GAUlClK,EAAOyI,wBAA0B,SAAU9Q,GACvC,MAAKC,WAAUpC,QACfoT,EAA0BjR,EACnBqI,GAFuB4I,GAKlC5I,EAAO+H,SAAW,WACd,GAAI5K,GAAMxE,GAAGwE,IAAI6C,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAOoG,cAAcxR,IAEhC,OAAOpB,GAAGuD,MAAMoD,SAASgD,EAAKuP,IAGlC1M,EAAOgI,SAAW,WACd,GAAInL,GAAMlE,GAAGkE,IAAImD,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAOoG,cAAcxR,IAEhC,OAAOpB,GAAGuD,MAAM2C,IAAImD,EAAK6P,IAG7B1M,EAAO2J,SAAW,WACd,GAAIxM,GAAMxE,GAAGwE,IAAI6C,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAOK,gBAAgBzL,IAGlC,OADAuI,GAAM3J,EAAGuD,MAAMoD,SAASgD,EAAK0P,IAIjC7M,EAAO4J,SAAW,WACd,GAAI/M,GAAMlE,GAAGkE,IAAImD,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAOK,gBAAgBzL,IAGlC,OADAiI,GAAMrJ,EAAGuD,MAAM2C,IAAImD,EAAKgQ,IAc5B7M,EAAO6O,aAAe,SAAUlX,GAC5B,MAAKC,WAAUpC,QACfqX,EAAgBlV,EACTqI,GAFuB6M,GAKlC7M,EAAO8J,YAAc,WACjB,MAAO9J,GAAOyH,mBAclBzH,EAAO7I,MAAQ,SAAUQ,GACrB,MAAKC,WAAUpC,QACf6W,EAAS1U,EACFqI,GAFuBqM,GAKlC7Y,EAAG6D,SAAS2I,EAAQ,SAAU,SAAUrI,GACpC,MAAKC,WAAUpC,QAEfwK,EAAO8O,QAAQnX,GAEXA,EACAqI,EAAOiN,QAAQ8B,OAAOpX,GAEtBqI,EAAOiN,QAAQjY,QAGZgL,GAVuBA,EAAO8O,YAazC9O,EAAOiN,MAAQ,SAAUtV,GACrB,MAAKC,WAAUpC,QACfwX,EAASrV,EACFqI,GAFuBgN,GASlChN,EAAOgP,YAAc,SAAU9O,GAI3B,GAHIF,EAAO6H,cACPqF,GAAW,GAEXA,EAAU,CACVF,EAAOlG,GAAG,QAAS9G,EAAOiP,UAE1B,IAAIC,GAAShP,EAAEvC,OAAO,KACjB+C,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeV,EAAOsH,UAAUD,KAAO,IAAMrH,EAAOsH,UAAUJ,IAAM,KACtF7N,KAAK2T,EAAOjS,EAAEiF,EAAOjF,KAC1BmU,GAAOzK,UAAU,QAAQ/D,KAAK,SAAUyJ,KACxC+E,EAAOzK,UAAU,WAAW9G,OAAO,QAAQ+C,KAAK,IAAKV,EAAOmP,kBAExDnP,EAAO+F,aACP/F,EAAOoP,YAAYlP,KAK/BF,EAAOqP,YAAc,WACjB,GAAIN,GAAS/B,EAAO+B,QAQpB,OAPI/O,GAAO7I,UACP4X,EAAO,GAAKA,EAAO7G,IAAIlI,EAAO7I,SAAS,GACvC4X,EAAO,GAAKA,EAAO7G,IAAIlI,EAAO7I,SAAS,GAEvC6U,EAAGvO,OAAO,UACLpE,KAAK2T,EAAO+B,OAAOA,KAErBA,GAGX/O,EAAOsP,aAAe,SAAUP,GAC5B,MAAO/B,GAAOtP,UAAYqR,GAAUA,EAAO,IAAMA,EAAO,IAG5D/O,EAAOuP,iBAAmB,SAASR,GAC/B,MAAIA,GAAO,YAAczV,OAAQyV,EAAO,YAAczV,MAC3CyV,EAAO,GAAGhV,WAAagV,EAAO,GAAGhV,UAEjCgV,EAAO,IAAMA,EAAO,IAInC/O,EAAOiP,UAAY,WACf,GAAIF,GAAS/O,EAAOqP,aAEpBrP,GAAOoP,YAAYpD,GAEfhM,EAAOuP,iBAAiBR,KAIxB/O,EAAOsP,aAAaP,GACpBvb,EAAGyK,OAAOE,QAAQ,WACd6B,EAAOhH,OAAO,MACdxF,EAAGmC,UAAUqK,EAAO0E,gBAGxBlR,EAAGyK,OAAOE,QAAQ,WACd6B,EAAOhH,OAAO,MACdgH,EAAOhH,QAAQ+V,EAAO,GAAIA,EAAO,KACjCvb,EAAGmC,UAAUqK,EAAO0E,eACrBlR,EAAGE,UAAUS,eAIxB6L,EAAOoP,YAAc,SAAUlP,GAC3B,GAAIgN,EAAU,CACNlN,EAAOhH,UAAYgH,EAAOiN,QAAQvP,SAClCsC,EAAOiN,QAAQ8B,OAAO/O,EAAOhH,SAEjC,IAAIkW,GAAShP,EAAEzC,OAAO,UACtByR,GAAO7V,KAAK2G,EAAOiN,QAAQlS,EAAEiF,EAAOjF,MACpCmU,EAAOzK,UAAU,QAAQ/D,KAAK,SAAUyJ,KAG5CnK,EAAOwP,sBAGXxP,EAAOwP,mBAAqB,aAK5BxP,EAAOmP,iBAAmB,SAAUtY,GAChC,GAAIjC,KAAW,KAALiC,GAAWkE,EAAInG,EAAI,EAAI,GAAIoG,EAAImP,IAAgB,CAEzD,OAAO,IAAO,GAAMpP,EAAK,IAAMC,EACzB,YAAcpG,EAAI,IAAO,IAAMmG,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAcpG,EAAI,IAAO,GAAMmG,EAAK,IAAO,EAAIC,EAC/C,IACA,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAezBgF,EAAOyP,YAAc,SAAUC,GAC3B,MAAK9X,WAAUpC,QACfkV,EAAegF,EACR1P,GAFuB0K,GAiBlC1K,EAAOyF,SAAW,WAkBd,MAjBAzF,GAAO+E,WAEP/E,EAAO0N,aAEPrD,IACA1C,EAAa3H,EAAOE,KACpBqJ,EAAavJ,EAAOE,KAEpBF,EAAO2P,WAEP3P,EAAOmO,YAAYnO,EAAOE,KAC1BF,EAAOyO,YAAYzO,EAAOE,KAE1BF,EAAOgP,YAAYhP,EAAOE,KAE1ByK,IAEO3K,GAsCXA,EAAO6F,SAAW,WAcd,MAbA8B,GAAa3H,EAAOE,KACpBqJ,EAAavJ,EAAOE,KAEpBF,EAAO2P,WAEH3P,EAAOyJ,YACPzJ,EAAOyO,YAAYzO,EAAOE,MAE1BF,EAAO4H,YAAcuF,IACrBnN,EAAOmO,YAAYnO,EAAOE,KAE9BF,EAAOoP,YAAYpP,EAAOE,KAEnBF,GAGXA,EAAO4P,UAAY,WAGf,MAFA5P,GAAO2P,WAEA3P,GAWXA,EAAO6P,QAAU,SAAUlY,GACvB,MAAKC,WAAUpC,QACf0X,EAAWvV,EACJqI,GAFuBkN,GAuBlClN,EAAOiL,MAAQ,SAAU7C,GACrB+E,GAAa,EAET1B,EAAiBrD,GACjBpI,EAAOjF,IAAItE,OAAO2R,GAElBpI,EAAOjF,IAAItE,OAAOuJ,EAAOuL,mBAG7BvL,EAAOoN,UAEPpN,EAAOpK,SAEF6V,EAAiBrD,KAClB+E,GAAa,IAGrBnN,EAAO8P,UAAY,WACf,MAAO3C,IAGXnN,EAAOuN,WAAa,SAAUpN,GAC1B,MAAKvI,WAAUpC,QACf+W,EAAcpM,EACdH,EAAO8G,GAAG,WAAY,SAAUnS,GAC5BnB,EAAGyK,OAAOE,QAAQ,WACdoO,EAAYtB,MAAMtW,EAAMqE,UACxBuT,EAAYvT,OAAOrE,EAAMqE,UACzBxF,EAAGmC,UAAUhB,EAAM+P,kBAGpB1E,GATuBuM,GAY3BvM,GAUXxM,EAAGqY,WAAa,SAAS7L,GACrB,GAAI+P,GAAUpX,GAAG4P,MAAMyH,cAEnBC,EAAiB,SAASpZ,GAAK,MAAOmJ,GAAOoG,cAAcvP,IAE3DqZ,EAAmB,SAAS9T,GAC5B,MAAO2T,GAAQ3T,EAAM4D,GAyGzB,OApFAA,GAAO8L,OAAS,SAASnU,GACrB,MAAKC,WAAUpC,QACSua,EAApBpY,YAAasB,OAAiBN,GAAG4P,MAAM4H,WAAW/H,MAAMzQ,GAC7CA,EACRqI,GAHuB+P,GAWlC/P,EAAOoQ,cAAgB,SAASxW,GAC5B,MAAOoG,GAAO8L,OAAOnT,GAAG4P,MAAM/R,UAAU4R,MAAMxO,KAQlDoG,EAAOqQ,aAAe,SAASzW,GAC3B,MAAOoG,GAAO8L,OAAOnT,GAAG4P,MAAMmB,SACRtB,MAAMxO,GACN0W,YAAY3X,GAAG4X,kBAezCvQ,EAAOwQ,cAAgB,SAAS7Y,GAC5B,MAAIC,WAAUpC,QACdya,EAAiBtY,EACVqI,GAFsBiQ,GAYjCjQ,EAAOyQ,YAAc,SAAS9Y,GAC1B,MAAIC,WAAUpC,QACdua,EAAQtZ,OAAOkB,GACRqI,GAFsB+P,EAAQtZ,UAUzCuJ,EAAO0Q,qBAAuB,WAC1B,GAAIC,IAAahY,GAAGwE,IAAI6C,EAAOnF,OAAQmF,EAAOwQ,iBAC7B7X,GAAGkE,IAAImD,EAAOnF,OAAQmF,EAAOwQ,iBAC9CT,GAAQtZ,OAAOka,IAQnB3Q,EAAO4Q,SAAW,SAAS/Z,EAAGtB,GAC1B,MAAO2a,GAAiBD,EAAepZ,EAAGtB,KAG9CyK,EAAO6Q,gBAAkB,SAASlZ,GAC9B,MAAIC,WAAUpC,QACd0a,EAAmBvY,EACZqI,GAFsBkQ,GAK1BlQ,GASXxM,EAAGsd,eAAiB,SAAU9Q,GAiI1B,QAAS+Q,KACL,GAAI9T,KAEJ,IAAI+C,EAAOjF,IAAK,CACZ,GACIiW,GADAC,EAAUjR,EAAOjF,IAAItE,QAEzB,IAAGuJ,EAAO6H,YAAa,CACnB,GAAIqJ,GAAYvY,GAAGwY,IAAIF,EACvBD,GAAO,SAAStB,GACZ,MAAOwB,GAAUxc,IAAIgb,EAAE3U,QAI3BiW,GAAO,SAAStB,GACZ,MAAOA,GAAE3U,GAAKkW,EAAQ,IAAMvB,EAAE3U,GAAKkW,EAAQA,EAAQzb,OAAO,GAGlEwK,GAAOoR,cAAc7L,QAAQ,SAAU3Q,GACnCA,EAAE6H,OAAO8I,QAAQ,SAAUmK,GACnBsB,EAAKtB,IACLzS,EAAIlI,KAAK2a,WAIrB1P,GAAOoR,cAAc7L,QAAQ,SAAU3Q,GACnCqI,EAAMA,EAAIoU,OAAOzc,EAAE6H,SAI3B,OAAOQ,GAsCX,QAASqU,GAAyB9c,EAAO8G,GACrC9G,EAAMyI,MAAMsI,QAAQ,SAAS1O,EAAG0a,GAC5B,GAAI3S,GAAMoB,EAAOwR,sBAAsBlW,GAAYzE,GAC/CuF,EAAQ4D,EAAOyR,wBAAwBnW,GAAYzE,EACvD6a,GAAYhX,aAAaY,EAAYiW,GAAY1W,KAAMhE,EAAGkE,EAAG6D,EAAK5D,EAAGoB,EAAOI,MAAOlB,MAvM3F,GAOIqW,GACAC,EACAC,EACAC,EAVAJ,EAAc,GAAIle,GAAGuD,MAAMqD,WAC3B2X,EAAepZ,GAAGqZ,OAAOC,QACxBC,OAAO,QACPC,MAAM,WACNC,OAAO,SAAUvb,GACd,MAAOA,GAAE4F,QAsPjB,OAjOAuD,GAAOiS,MAAQ,SAAUzd,EAAO6G,EAAMF,GAiBlC,MAhBIvD,WAAUpC,QACVkc,EAAY1c,QAEhB0c,EAAY/V,mBAAmBqE,EAAOK,iBAElB,gBAAThF,IACP2E,EAAO+D,cAAcvP,EAAO6G,EAAMF,GAClCuW,EAAYtW,cAAc5G,EAAO6G,EAAMF,KAGvCA,EAAWE,EACXqW,EAAYxW,SAAS1G,EAAO2G,IAGhC6E,EAAO8D,cAEA9D,GASXA,EAAOqS,UAAY,SAAUC,GACzBZ,EAAYxV,WAAWoW,EAAWtS,EAAOjC,cAAciC,EAAOxL,UAAY8d,IAS9EtS,EAAOuS,UAAY,SAAUD,GACzBZ,EAAY3V,WAAWuW,EAAWtS,EAAOjC,cAAciC,EAAOxL,UAAY8d,IAG9EtS,EAAO8D,YAAc,WAKjB,MAJA6N,GAAa,KACbC,EAAqB,KACrBC,EAAmB,KACnBC,EAAe,KACR9R,GAGXA,EAAOwS,UAAY,WACf,GAAmB,OAAfb,EAAqB,CACrBA,KAEAA,EAAW5c,KAAKiL,EAAOxL,QAEvB,KAAK,GAAIe,GAAI,EAAGA,EAAImc,EAAYhW,SAAUnG,EACtCoc,EAAW5c,KAAK2c,EAAYnW,gBAAgBhG,IAGpD,MAAOoc,IAGX3R,EAAOyS,kBAAoB,WACvB,GAA2B,OAAvBb,EAA6B,CAC7BA,KAEAA,EAAmB7c,KAAKiL,EAAOK,gBAE/B,KAAK,GAAI9K,GAAI,EAAGA,EAAImc,EAAYhW,SAAUnG,EACtCqc,EAAmB7c,KAAK2c,EAAYjW,mBAAmBlG,IAG/D,MAAOqc,IAGX5R,EAAOyR,wBAA0B,SAAUnW,GACvC,MAAO0E,GAAOyS,oBAAoBnX,IAGtC0E,EAAO2J,SAAW,WACd,GAAIxM,GAAKF,EAAM8T,GAQf,OANA5T,GAAMxE,GAAGwE,IAAIF,EAAK,SAAUyS,GACxB,MAASA,GAAE1U,EAAI0U,EAAEgD,GAAKhD,EAAEgD,GAAOhD,EAAE1U,EAAI0U,EAAEgD,GAAMhD,EAAEgD,KAGnDvV,EAAM3J,EAAGuD,MAAMoD,SAASgD,EAAK6C,EAAO6O,iBAKxC7O,EAAO4J,SAAW,WACd,GAAI/M,GAAKI,EAAM8T,GAQf,OANAlU,GAAMlE,GAAGkE,IAAII,EAAK,SAAUyS,GACxB,MAAOA,GAAE1U,EAAI0U,EAAEgD,KAGnB7V,EAAMrJ,EAAGuD,MAAM2C,IAAImD,EAAKmD,EAAO6O,iBAqCnC7O,EAAO2S,gBAAkB,WACrB,GAAyB,OAArBd,EAA2B,CAC3BA,KAEAA,EAAiB9c,KAAKiL,EAAOoG,cAE7B,KAAK,GAAI7Q,GAAI,EAAGA,EAAImc,EAAYhW,SAAUnG,EACtCsc,EAAiB9c,KAAKiL,EAAOoG,eAGrC,MAAOyL,IAGX7R,EAAOwR,sBAAwB,SAAUlW,GACrC,MAAO0E,GAAO2S,kBAAkBrX,IAGpC0E,EAAO+H,SAAW,WACd,GAAI5K,GAAM6C,EAAOwS,YAAYI,OAAO,SAASzV,EAAI3I,EAAM8G,GACnD,GAAIiM,GAAI/T,EAAGuD,MAAMmG,SAAS1I,EAAOwL,EAAOwR,sBAAsBlW,GAC9D,OAAgB,QAAR6B,GAAgBA,EAAMoK,EAAKA,EAAIpK,GACzC,KAEF,OAAO3J,GAAGuD,MAAMoD,SAASgD,EAAK6C,EAAOgO,iBAGzChO,EAAOgI,SAAW,WACd,GAAInL,GAAMmD,EAAOwS,YAAYI,OAAO,SAAS/V,EAAIrI,EAAM8G,GACnD,GAAIiM,GAAI/T,EAAGuD,MAAMiG,SAASxI,EAAOwL,EAAOwR,sBAAsBlW,GAC9D,OAAgB,QAARuB,GAAsB0K,EAAN1K,EAAW0K,EAAI1K,GACzC,KAEF,OAAOrJ,GAAGuD,MAAM2C,IAAImD,EAAKmD,EAAOgO,iBAWpChO,EAAO6S,+BAAiC,WACpCnB,EAAY5V,kBACZkE,EAAOwS,YAAYjN,QAAQ+L,IAG/BtR,EAAO8S,cAAgB,WACnB,MAAOpB,IAGXle,EAAG6D,SAAS2I,EAAQ,gBAAiB,SAAUrI,GAC3C,MAAKC,WAAUpC,QACfwK,EAAO8D,cACA9D,EAAOsC,eAAe3K,IAFCqI,EAAOsC,mBAKzC9O,EAAG6D,SAAS2I,EAAQ,cAAe,SAAUrI,GACzC,MAAKC,WAAUpC,QACfwK,EAAO8D,cACA9D,EAAOqC,aAAa1K,IAFGqI,EAAOqC,iBAKzCrC,EAAO+S,YAAc,SAAUd,GAC3B,MAAKra,WAAUpC,QACfuc,EAAeE,EACRjS,GAFuB+R,GAKlC/R,EAAOoR,YAAc,SAAUzZ,GAC3B,MAAKC,WAAUpC,QAOXsc,EAAena,EAAfma,SANqB,OAAjBA,IACA9R,EAAO6S,iCACPf,EAAe9R,EAAO+S,cAAcrB,EAAYpV,aAE7CwV,IAMf9R,EAAOgT,oBAAsB,SAASnc,GAAG,MAAmBZ,UAAZY,EAAE2F,MAAsB3F,EAAE2E,MAAQ3E,EAAE2F,OACpFwD,EAAOwQ,cAAcxQ,EAAOgT,qBAE5BhT,EAAOsG,YAAc,WACjB,MAAOtG,GAAOwS,YAAYtK,IAAI,SAAUhI,EAAG3K,GACvC,MAAO/B,GAAGuD,MAAM6G,iBAAiBoC,EAAQE,EAAGF,EAAOyR,wBAAwBlc,GAAIyK,EAAO6Q,kBAAkBtb,OAIzGyK,GAQXxM,EAAGyf,oBAAsB,SAAUjT,GAC/B,GAAIkT,GAAyB,GACzBC,EAAsB,EAE1BnT,GAAOoT,kBAAoB,OAC3BpT,EAAOqT,aAAe,SACtBrT,EAAOsT,WAAa,GAEpBtT,EAASxM,EAAGqY,WAAW7L,GAEvBA,EAAO0G,aAAY,GACnB1G,EAAO4G,aAAY,GAEnB5G,EAAOnF,KAAK,SAASrG,GACjB,MAAOA,GAAM0S,IAAIqM,MAGrB,IAAIC,GAAK7a,GAAG4P,MAAMmB,SAASjT,QAAQ,EAAG,MAElCgd,EAAkB,SAAU5c,GAC5B,MAAOA,GAAE+C,EAQboG,GAAOpG,EAAI,SAAUjC,GACjB,MAAKC,WAAUpC,QACfge,EAAK7b,EACEqI,GAFuBwT,GAYlCxT,EAAO0T,oBAAsB,SAAU/b,GACnC,MAAKC,WAAUpC,QACfie,EAAkB9b,EACXqI,GAFuByT,GAKlCzT,EAAO2T,KAAO,WACV,GAAIxW,GAAMxE,GAAGwE,IAAI6C,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAO0T,sBAAsB9e,IAExC,OAAOuI,IAGX6C,EAAO4T,KAAO,WACV,GAAI/W,GAAMlE,GAAGkE,IAAImD,EAAOnF,OAAQ,SAAUjG,GACtC,MAAOoL,GAAO0T,sBAAsB9e,IAExC,OAAOiI,IAGXmD,EAAO6T,QAAU,SAAUhd,GACvB,GAAIuF,GAAQ4D,EAAO0T,sBAAsB7c,GACrC+C,EAAIoG,EAAOpG,IAAIwC,EAGnB,QAFI0X,MAAMla,IAAe,GAATwC,KACZxC,EAAI,GACDA,EAGX,IAAIma,GAAgB,SAAUld,GAC1B,MAAOmJ,GAAOyG,QAAQ5P,IAGtBmd,EAAe,SAAUnd,GACzB,MAAQmJ,GAAO6T,QAAQhd,GAAKsc,EAAuB,EAAI,EAG3DnT,GAAOiU,cAAgB,SAAUC,GAC7B,GAAIlU,EAAO0G,cAAe,CACtB,GAAID,GAAQyN,EAAazW,OAAO,OAE5BgJ,GAAM/I,UACN+I,EAAQyN,EAAavW,OAAO,QACvB+C,KAAK,cAAe,UACpBA,KAAK,KAAM,QACXoG,GAAG,QAAS9G,EAAOmG,UAG5BM,EACK/F,KAAK,UAAW,GAChB0E,KAAK2O,GACVvgB,EAAGqC,WAAW4Q,EAAOzG,EAAOsF,sBACvB5E,KAAK,UAAWsT,KAI7BhU,EAAOmU,eAAiB,SAAUD,GAC9B,GAAIlU,EAAO0G,cAAe,CACtB,GAAI0N,GAASF,EAAazP,UAAU,QAC/BW,KAAK2O,EACVvgB,GAAGqC,WAAWue,EAAQpU,EAAOsF,sBACxB5E,KAAK,UAAWsT,IAI7B,IAAIK,GAAgB,SAAUxd,GAC1B,MAAOmJ,GAAO2G,QAAQ9P,GAsE1B,OAnEAmJ,GAAOsU,eAAiB,SAAUpU,GAC9B,GAAIF,EAAO4G,cAAe,CACtB,GAAID,GAAQzG,EAAEzC,OAAO,QAEjBkJ,GAAMjJ,SACNwC,EAAEvC,OAAO,SAASyH,KAAKiP,KAInCrU,EAAOuU,eAAiB,SAAUrU,GAC1BF,EAAO4G,eACP1G,EAAEuE,UAAU,SAASW,KAAKiP,IAUlCrU,EAAOwU,mBAAqB,SAAU7c,GAClC,MAAKC,WAAUpC,QACf2d,EAAsBxb,EACfqI,GAFuBmT,GAWlCnT,EAAOyU,sBAAwB,SAAU9c,GACrC,MAAKC,WAAUpC,QACf0d,EAAyBvb,EAClBqI,GAFuBkT,GAKlClT,EAAOwP,mBAAqB,WACpBxP,EAAO+F,YACP/F,EAAOyE,UAAU,KAAOzE,EAAOoT,mBAAmBxN,KAAK,SAAU/O,GACzDmJ,EAAO0U,eAAe7d,GACtBmJ,EAAOgG,kBAAkB3N,MAEzB2H,EAAOiG,eAAe5N,QAI9B2H,EAAOyE,UAAU,KAAOzE,EAAOoT,mBAAmBxN,KAAK,WACnD5F,EAAOkG,eAAe7N,SAKlC2H,EAAO0U,eAAiB,SAAU7d,GAC9B,MAAOmJ,GAAO+F,UAAUlP,EAAE+H,MAG9BoB,EAAOmG,QAAU,SAAUtP,GACvB,GAAImC,GAASnC,EAAE+H,GACfpL,GAAGyK,OAAOE,QAAQ,WACd6B,EAAOhH,OAAOA,GACdxF,EAAGmC,UAAUqK,EAAO0E,iBAIrB1E,GAmCXxM,EAAGmhB,SAAW,SAAUpX,EAAQmH,GA8C5B,QAASkQ,KAELC,EAAUA,EAAUA,EAAUlc,GAAGwE,KAAK6C,EAAOW,QAASX,EAAOY,WAAY,CAEzE,IAAIkU,GAAMC,IAENC,EAAMC,IACNC,EAAUF,EAAIhV,EAAOnF,OAEzB,IAAImR,EAAI,CACJ,GAAImJ,GAASnJ,EAAGvH,UAAU,KAAO2Q,GAC5Bva,KAAKqa,EAEVG,GAAeF,EAAQL,EAAKI,GAE5BI,EAAeJ,EAASJ,GAExBS,EAAeJ,GAEfK,KAIR,QAASH,GAAeF,EAAQL,EAAKI,GACjC,GAAIO,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaX,GAE7Bc,EAAaH,GAEbI,EAAaX,EAASJ,GAG1B,QAASY,GAAiBP,GACtB,GAAIM,GAAcN,EACb/L,QACAzL,OAAO,KACP+C,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO6f,GAAiB,KAAO7f,GAEvC,OAAOkgB,GAGX,QAASE,GAAgBF,EAAaX,GAClC,GAAIgB,GAAYL,EAAY9X,OAAO,QAC9B+C,KAAK,OAAQqV,GACbjP,GAAG,QAASX,GACZzF,KAAK,IAAK,SAAU7J,EAAGtB,GACpB,MAAOygB,GAAQnf,EAAGtB,EAAGuf,IAE7BgB,GAAUjgB,aACLE,SAASiK,EAAOsF,sBAChB2Q,UAAU,IAAKC,GAGxB,QAASN,GAAaH,GACdzV,EAAO4G,eACP6O,EAAY9X,OAAO,SAASyH,KAAK,SAAUvO,GACvC,MAAOmJ,GAAO2G,QAAQ9P,KAKlC,QAASgf,GAAaX,EAASJ,GAC3B,GAAI9U,EAAO0G,cAAe,CACtB,GAAI0N,GAASpI,EAAGvH,UAAU,QAAU2Q,GAC/Bva,KAAKqa,EAEVd,GAAO9K,OAAOtE,QAEd,IAAImR,GAAc/B,EACbhL,QACAzL,OAAO,QACP+C,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO6f,GAAiB,KAAO7f,IAElCuR,GAAG,QAASX,EACjB3S,GAAGqC,WAAWsgB,EAAanW,EAAOsF,sBAC7B5E,KAAK,YAAa,SAAU7J,GACzBA,EAAEuf,YAAcpW,EAAOoW,cACvBvf,EAAEwf,YAAcrW,EAAOsW,QACvB,IAAIC,GAAWzB,EAAIyB,SAAS1f,EAC5B,OAAIid,OAAMyC,EAAS,KAAOzC,MAAMyC,EAAS,IAC9B,iBAEA,aAAeA,EAAW,MAGxC7V,KAAK,cAAe,UACpB0E,KAAK,SAAUvO,GACZ,GAAIgE,GAAOhE,EAAEgE,IACb,OAAI2b,GAAe3b,IAAS4b,EAAc5f,GAC/B,GACJmJ,EAAOyG,QAAQ5P,EAAEgE,SAKxC,QAASya,GAAeJ,EAASJ,GAC7B4B,EAAiBxB,EAASJ,GAC1B6B,EAAazB,EAASJ,GACtB8B,EAAa1B,GAGjB,QAASwB,GAAiBxB,EAASJ,GAC/B,GAAI+B,GAAa7K,EAAGvH,UAAU,KAAO2Q,GAChCva,KAAKqa,GACLzX,OAAO,QACPiD,KAAK,IAAK,SAAU7J,EAAGtB,GACpB,MAAOygB,GAAQnf,EAAGtB,EAAGuf,IAE7BthB,GAAGqC,WAAWghB,EAAY7W,EAAOsF,qBAC7B,SAAUpP,GACNA,EAAE+f,UAAU,IAAKC,KAClBxV,KAAK,OAAQqV,GAGxB,QAASY,GAAazB,EAASJ,GAC3B,GAAI9U,EAAO0G,cAAe,CACtB,GAAI0N,GAASpI,EAAGvH,UAAU,QAAU2Q,GAC/Bva,KAAKqa,EACV1hB,GAAGqC,WAAWue,EAAQpU,EAAOsF,sBACxB5E,KAAK,YAAa,SAAU7J,GACzBA,EAAEuf,YAAcU,EAChBjgB,EAAEwf,YAAcxB,CAChB,IAAI0B,GAAWzB,EAAIyB,SAAS1f,EAC5B,OAAIid,OAAMyC,EAAS,KAAOzC,MAAMyC,EAAS,IAC9B,iBAEA,aAAeA,EAAW,MAGxC7V,KAAK,cAAe,UACpB0E,KAAK,SAAUvO,GACZ,GAAIgE,GAAOhE,EAAEgE,IACb,OAAI2b,GAAe3b,IAAS4b,EAAc5f,GAC/B,GACJmJ,EAAOyG,QAAQ5P,EAAEgE,SAKxC,QAAS+b,GAAa1B,GACdlV,EAAO4G,eACPoF,EAAGvH,UAAU,KAAO2Q,GACfva,KAAKqa,GACLzX,OAAO,SACP2H,KAAK,SAAUvO,GACZ,MAAOmJ,GAAO2G,QAAQ9P,EAAEgE,QAKxC,QAAS0a,GAAeJ,GACpBA,EAAO7L,OAAOtE,SAGlB,QAASwQ,KACDxV,EAAO+F,YACP/F,EAAOyE,UAAU,KAAO2Q,GAAgBxP,KAAK,SAAU/O,GAC/CkgB,EAAgBlgB,GAChBmJ,EAAOgG,kBAAkB3N,MAEzB2H,EAAOiG,eAAe5N,QAI9B2H,EAAOyE,UAAU,KAAO2Q,GAAgBxP,KAAK,WACzC5F,EAAOkG,eAAe7N,QA8ClC,QAAS0c,KACL,MAAOpc,IAAGmM,IAAIgQ,MAAMuB,YAAYxB,GAASuB,YAAYU,GAGzD,QAASC,GAAgBlgB,GACrB,MAAOmJ,GAAO+F,UAAU/F,EAAOgX,kBAAkBngB,EAAEgE,OAmBvD,QAASoa,KACL,MAAOtc,IAAGqZ,OAAOgD,MAAM5Q,KAAK,MAAMhI,MAAM4D,EAAOiX,qBAGnD,QAASR,GAAc5f,GACnB,GAAIqgB,GAASrgB,EAAEsgB,SAAWtgB,EAAEugB,UAC5B,OAAOtD,OAAMoD,IAAkBG,EAARH,EAG3B,QAASV,GAAe3f,GACpB,MAAyC,KAAlCmJ,EAAOiX,oBAAoBpgB,GAGtC,QAASqf,GAASoB,GACdA,EAAElB,YAAcU,CAChB,IAAI5Y,GAAU7F,KAAKkf,QACfC,GAAYtZ,KACZA,GAAWkZ,WAAY,EAAGD,SAAU,GACxC,IAAI5hB,GAAIoD,GAAG2X,YAAYpS,EAASoZ,EAEhC,OADAjf,MAAKkf,SAAWhiB,EAAE,GACX,SAAUkiB,GACb,MAAOzB,GAAQzgB,EAAEkiB,GAAI,EAAG1C,MAIhC,QAASyC,GAAYtZ,GACjB,OAAQA,GAAW4V,MAAM5V,EAAQkZ,aAAetD,MAAM5V,EAAQiZ,UAGlE,QAASpB,GAAKlf,EAAGtB,GACb,MAAOyK,GAAO4Q,SAAS/Z,EAAEgE,KAAMtF,GAGnC,QAAS4Q,GAAQtP,EAAGtB,GAChByK,EAAOmG,QAAQtP,EAAEgE,KAAMtF,GAG3B,QAASygB,GAAQnf,EAAGtB,EAAGuf,GACnB,GAAI4C,GAAO5C,EAAIje,EAAGtB,EAGlB,OAFImiB,GAAK7iB,QAAQ,QAAU,IACvB6iB,EAAO,QACJA,EApUX,GAII7C,GAGA7I,EAPA2L,EAA8B,GAE9BvC,EAAiB,YAGjB0B,EAAe,EAIfO,EAAoBM,EAEpB3X,EAASxM,EAAGokB,OAAOpkB,EAAGqY,WAAWrY,EAAGuM,eA4TxC,OA1TAC,GAAOwQ,cAAcxQ,EAAOgX,mBAE5BhX,EAAO2G,MAAM,SAAU9P,GACnB,MAAOmJ,GAAOgX,kBAAkBngB,GAAK,KAAOmJ,EAAOiX,oBAAoBpgB,KAU3EmJ,EAAO6X,UAAY7X,EAAO8X,IAE1B9X,EAAOyG,MAAMzG,EAAOgX,mBACpBhX,EAAO0G,aAAY,GAEnB1G,EAAOsF,mBAAmB,KAE1BtF,EAAOyF,SAAW,WASd,MARAzF,GAAO+E,WAEPiH,EAAKhM,EAAO8E,MACPnH,OAAO,KACP+C,KAAK,YAAa,aAAeV,EAAO+X,KAAO,IAAM/X,EAAOgY,KAAO,KAExEpD,IAEO5U,GAsLXA,EAAOoW,YAAc,SAAUxc,GAC3B,MAAKhC,WAAUpC,QACfshB,EAAeld,EACRoG,GAFuB8W,GAUlC9W,EAAOsW,OAAS,SAAU1c,GACtB,MAAKhC,WAAUpC,QACfqf,EAAUjb,EACHoG,GAFuB6U,GAUlC7U,EAAO+X,GAAK,WACR,MAAO/X,GAAOW,QAAU,GAQ5BX,EAAOgY,GAAK,WACR,MAAOhY,GAAOY,SAAW,GAW7BZ,EAAO6F,SAAW,WAEd,MADA+O,KACO5U,GAQXA,EAAOiY,iBAAmB,SAAUtgB,GAChC,MAAKC,WAAUpC,QACf6hB,EAAoB1f,EACbqI,GAFuBqX,GAiD3BrX,EAAOI,OAAO7C,EAAQmH,IAmCjClR,EAAG0kB,SAAW,SAAU3a,EAAQmH,GAyC5B,QAASyT,GAAUthB,GACf,MAAOrD,GAAGuD,MAAMiH,WAAW1H,KAAKC,IAAIyJ,EAAOhF,IAAInE,EAAEmE,EAAInE,EAAE6b,IAAM1S,EAAOhF,IAAInE,EAAE6b;CAG9E,QAAS0F,GAAW5b,EAAO3F,GACvB,GAAIwhB,GAAO7b,EAAMiI,UAAU,YACtB5J,KAAKhE,EAAE4F,OAAQjJ,EAAG2F,MAAM,OAAQ6G,EAAOoG,eAE5CiS,GAAKjP,QACAzL,OAAO,QACP+C,KAAK,QAAS,OACdA,KAAK,OAAQV,EAAO4Q,UAErB5Q,EAAO4G,eACPyR,EAAK1a,OAAO,SAASyH,KAAKpF,EAAO2G,SAGjC3G,EAAO6H,aACPwQ,EAAKvR,GAAG,QAASX,GAErB3S,EAAGqC,WAAWwiB,EAAMrY,EAAOsF,sBACtB5E,KAAK,IAAK,SAAU7J,GACjB,GAAIkE,GAAIiF,EAAOjF,IAAIlE,EAAEkE,EAErB,QADIud,GAActY,EAAO6H,eAAa9M,GAAKwd,EAAY,GAC/C/kB,EAAGuD,MAAMiH,WAAWjD,KAE/B2F,KAAK,IAAK,SAAU7J,GACjB,GAAImE,GAAIgF,EAAOhF,IAAInE,EAAEmE,EAAInE,EAAE6b,GAK3B,OAHI7b,GAAEmE,EAAI,IACNA,GAAKmd,EAAUthB,IAEZrD,EAAGuD,MAAMiH,WAAWhD,KAE9B0F,KAAK,QAAS6X,GACd7X,KAAK,SAAU,SAAU7J,GACtB,MAAOshB,GAAUthB,KAEpB4G,OAAO,SAAS2H,KAAKpF,EAAO2G,SAEjCnT,EAAGqC,WAAWwiB,EAAK/O,OAAQtJ,EAAOsF,sBAC7B5E,KAAK,SAAU,GACfsE,SAGT,QAASwT,KACL,GAAkBviB,SAAdsiB,EAAyB,CACzB,GAAIE,GAAezY,EAAO6H,YAAc6Q,IAAoB,EAAIA,IAE5DhV,EAAIpN,KAAKW,OAAO+I,EAAOqI,eAAiBoQ,EAAe,GAAKE,GAAQF,IAE/DlF,KAAL7P,GAAiBoQ,MAAMpQ,IAAUkV,EAAJlV,KAC7BA,EAAIkV,GAERL,EAAY7U,GAIpB,QAASgV,KAKL,MAJsBziB,UAAlB4iB,IACAA,EAAgB7Y,EAAOqN,cAGpBwL,EA6CX,QAAS1S,GAAQtP,GACbmJ,EAAOmG,QAAQtP,EAAEgE,MArJrB,GAQIge,GACAN,EATAK,EAAgB,EAChBE,EAA2B,EAE3B9Y,EAASxM,EAAGsd,eAAetd,EAAGkU,yBAE9BiR,EAAOG,EACPR,GAAa,CAqMjB,OAhMA9kB,GAAG6D,SAAS2I,EAAQ,UAAW,WAC3BA,EAAO+Y,WACPF,EAAgB5iB,OAChBsiB,EAAYtiB,OACZyiB,MAGJ1Y,EAAO2P,SAAW,WACd,GAAIpT,GAASyD,EAAO6N,aAAapJ,UAAU,WACtC5J,KAAKmF,EAAOoR,cAEjBoH,KAEAjc,EACK6M,QACAzL,OAAO,KACP+C,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO,UAAiBA,IAGhCgH,EAAOqJ,KAAK,SAAU/O,GAClB,GAAI2F,GAAQ7D,GAAG8E,OAAOpF,KAEtB+f,GAAW5b,EAAO3F,KAGtBmJ,EAAOoR,YAAY,OAqEvBpR,EAAOwP,mBAAqB,WACxB,GAAI6I,GAAOrY,EAAO6N,aAAapJ,UAAU,YACrCsK,EAAS/O,EAAOiN,QAAQ8B,QAE5B,IAAI/O,EAAO6H,YACH7H,EAAO+F,aACPsS,EAAK1T,QAAQnR,EAAGE,UAAUK,eAAgB,SAAU8C,GAChD,MAAOmJ,GAAO+F,UAAU/F,EAAOoG,cAAcvP,EAAEgE,SAEnDwd,EAAK1T,QAAQnR,EAAGE,UAAUI,iBAAkB,SAAU+C,GAClD,OAAQmJ,EAAO+F,UAAU/F,EAAOoG,cAAcvP,EAAEgE,WAGpDwd,EAAK1T,QAAQnR,EAAGE,UAAUK,gBAAgB,GAC1CskB,EAAK1T,QAAQnR,EAAGE,UAAUI,kBAAkB,QAGhD,IAAKkM,EAAOsP,aAAaP,GASrBsJ,EAAK1T,QAAQnR,EAAGE,UAAUI,kBAAkB,OATd,CAC9B,GAAIklB,GAAQjK,EAAO,GACfkK,EAAMlK,EAAO,EAEjBsJ,GAAK1T,QAAQnR,EAAGE,UAAUI,iBAAkB,SAAU+C,GAClD,GAAIqiB,GAASlZ,EAAOoG,cAAcvP,EAAEgE,KACpC,OAAgBme,GAATE,GAAkBA,GAAUD,MAanDjZ,EAAOmZ,UAAY,SAAUxhB,GACzB,MAAKC,WAAUpC,QACf8iB,EAAa3gB,EACNqI,GAFuBsY,GAelCtY,EAAOoZ,IAAM,SAAUzhB,GACnB,MAAKC,WAAUpC,QACfmjB,EAAOhhB,EACAqI,GAFuB2Y,GAKlC3Y,EAAOqP,YAAc,WACjB,GAAIN,GAAS/O,EAAOiN,QAAQ8B,QAQ5B,OAPI/O,GAAO7I,UAAYmhB,IACnBvJ,EAAO,GAAKA,EAAO7G,IAAIlI,EAAO7I,SAAS,GACvC4X,EAAO,GAAKA,EAAO7G,IAAIlI,EAAO7I,SAAS,GAEvC6I,EAAO6N,aAAapQ,OAAO,UACtBpE,KAAK2G,EAAOiN,QAAQ8B,OAAOA,KAE7BA,GAGX/O,EAAOuG,gBAAkB,SAAU1P,GAC/BmJ,EAAOvC,OAAO,eAAegH,UAAU,YAAYzL,OAAO,WACtD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,aAAa,GACxB3E,EAAOvC,OAAO,eAAegH,UAAU,YAAYzL,OAAO,WACtD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,WAAW,IAG1B3E,EAAOwG,YAAc,SAAU3P,GAC3BmJ,EAAOyE,UAAU,eAAeA,UAAU,YAAYzL,OAAO,WACzD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,aAAa,GACxB3E,EAAOyE,UAAU,eAAeA,UAAU,YAAYzL,OAAO,WACzD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,WAAW,IAG1BnR,EAAG6D,SAAS2I,EAAQ,WAAY,WAC5B,GAAInD,GAAMxE,KAAKghB,WACf,IAAG,cAAgBrZ,GAAO8N,SAAU,CAChC,GAAIwL,GAAMtZ,EAAO8N,SAAShX,UAC1B+F,IAAOyc,EAEX,MAAOzc,KAGJmD,EAAOI,OAAO7C,EAAQmH,IAmCjClR,EAAG+lB,UAAY,SAAUhc,EAAQmH,GAsE7B,QAAS8U,GAASC,EAAald,GAC3B,GAAImd,GAAO/gB,GAAGmM,IAAI4U,OACb3e,EAAE,SAAUlE,GACT,MAAOmJ,GAAOjF,IAAIlE,EAAEkE,KAEvBC,EAAE,SAAUnE,GACT,MAAOmJ,GAAOhF,IAAInE,EAAEmE,EAAInE,EAAE6b,MAE7BpC,YAAYqJ,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,GAGjBL,EAAY9b,OAAO,QACd+C,KAAK,QAAS,QACdA,KAAK,SAAUV,EAAO4Q,UACtBlQ,KAAK,OAAQV,EAAO4Q,UAEzBpd,EAAGqC,WAAW0G,EAAOkB,OAAO,aAAcuC,EAAOsF,sBAC5C5E,KAAK,IAAK,SAAU7J,GACjB,MAAOmjB,GAAMN,EAAK7iB,EAAE4F,WAIhC,QAASwd,GAASR,EAAald,GAC3B,GAAI2d,EAAa,CACb,GAAIC,GAAOxhB,GAAGmM,IAAIqV,OACbpf,EAAE,SAAUlE,GACT,MAAOmJ,GAAOjF,IAAIlE,EAAEkE,KAEvBC,EAAE,SAAUnE,GACT,MAAOmJ,GAAOhF,IAAInE,EAAEmE,EAAInE,EAAE6b,MAE7BA,GAAG,SAAU7b,GACV,MAAOmJ,GAAOhF,IAAInE,EAAE6b,MAEvBpC,YAAYqJ,GACZC,QAAQC,EACTC,IACAK,EAAKJ,QAAQD,GAGjBL,EAAY9b,OAAO,QACd+C,KAAK,QAAS,QACdA,KAAK,OAAQV,EAAO4Q,UACpBlQ,KAAK,IAAK,SAAU7J,GACjB,MAAOmjB,GAAMG,EAAKtjB,EAAE4F,WAG5BjJ,EAAGqC,WAAW0G,EAAOkB,OAAO,aAAcuC,EAAOsF,sBAC5C5E,KAAK,IAAK,SAAU7J,GACjB,MAAOmjB,GAAMG,EAAKtjB,EAAE4F,YAKpC,QAASud,GAAMnjB,GACX,OAASA,GAAKA,EAAEhC,QAAQ,QAAU,EAAK,OAASgC,EAGpD,QAASujB,GAASC,EAAW9d,GACzB,IAAKyD,EAAO6P,UAAW,CAEnB,GAAIyK,GAAmBC,EAAkB,QACrCC,EAAWH,EAAU5c,OAAO,KAAO6c,EAEnCE,GAAS9c,UAAS8c,EAAWH,EAAU1c,OAAO,KAAK+C,KAAK,QAAS4Z,IAErE/d,EAAOqJ,KAAK,SAAU/O,EAAG8D,GACrB,GAAI6B,GAAQ7D,GAAG8E,OAAOpF,MAClBoE,EAASD,EAAMie,QAAQhe,MACvBqd,KAAUrd,EAASA,EAAOzD,OAAO8gB,GAErC,IAAI5Z,GAAIsa,EAAS/c,OAAO,KAAO8c,EAAkB,KAAO5f,EACpDuF,GAAExC,UAASwC,EAAIsa,EAAS7c,OAAO,KAAK+C,KAAK,QAAS6Z,EAAkB,KAAO5f,IAE/E+f,EAAexa,EAEf,IAAIya,GAAOza,EAAEuE,UAAU,UAAYmW,GAAkB/f,KAAK4B,EAE1Dke,GAAKvR,QACAzL,OAAO,UACP+C,KAAK,QAASka,GACdla,KAAK,IAAKma,GACVna,KAAK,OAAQ,WAAY,MAAOV,GAAO6Q,kBAAkBlW,KACzDwK,MAAM,eAAgB,MACtBA,MAAM,iBAAkB,MACxB2B,GAAG,YAAa,WACb,GAAIgU,GAAMniB,GAAG8E,OAAOpF,KACpB0iB,GAAQD,GACRE,EAAaF,EAAK5a,KAErB4G,GAAG,WAAY,WACZ,GAAIgU,GAAMniB,GAAG8E,OAAOpF,KACpB4iB,GAAQH,GACRI,EAAahb,KAEhBvC,OAAO,SAASyH,KAAKpF,EAAO2G,SAEjCgU,EAAKja,KAAK,KAAM,SAAU7J,GAClB,MAAOrD,GAAGuD,MAAMiH,WAAWgC,EAAOjF,IAAIlE,EAAEkE,MAE3C2F,KAAK,KAAM,SAAU7J,GAClB,MAAOrD,GAAGuD,MAAMiH,WAAWgC,EAAOhF,IAAInE,EAAEmE,EAAInE,EAAE6b,OAEjDjV,OAAO,SAAS2H,KAAKpF,EAAO2G,SAEjCgU,EAAKrR,OAAOtE,YAKxB,QAAS0V,GAAexa,GACpB,GAAIib,GAAWjb,EAAEzC,OAAO,QAAU2d,GAAuB1d,QAAUwC,EAAEvC,OAAO,QAAQ+C,KAAK,QAAS0a,GAAyBlb,EAAEzC,OAAO,QAAU2d,EAC9ID,GAAShW,MAAM,UAAW,QAAQzE,KAAK,mBAAoB,MAE3D,IAAI2a,GAAWnb,EAAEzC,OAAO,QAAU6d,GAAuB5d,QAAUwC,EAAEvC,OAAO,QAAQ+C,KAAK,QAAS4a,GAAyBpb,EAAEzC,OAAO,QAAU6d,EAC9ID,GAASlW,MAAM,UAAW,QAAQzE,KAAK,mBAAoB,OAG/D,QAASqa,GAAQD,GAGb,MAFAA,GAAI3V,MAAM,eAAgB,IAC1B2V,EAAI3V,MAAM,iBAAkB,IACrB2V,EAGX,QAASE,GAAaF,EAAK5a,GACvB,GAAInF,GAAI+f,EAAIpa,KAAK,MACb1F,EAAI8f,EAAIpa,KAAK,KACjBR,GAAEzC,OAAO,QAAU2d,GAAuBjW,MAAM,UAAW,IAAIzE,KAAK,IAAK,MAAQ1F,EAAI,IAAM,EAAM,IAAM,GACvGkF,EAAEzC,OAAO,QAAU6d,GAAuBnW,MAAM,UAAW,IAAIzE,KAAK,IAAK,IAAM3F,EAAI,IAAMiF,EAAO8J,cAAgB,IAAM/O,EAAI,IAAMC,GAGpI,QAASigB,GAAQH,GACbA,EAAI3V,MAAM,eAAgB,MAAMA,MAAM,iBAAkB,MAG5D,QAAS+V,GAAahb,GAClBA,EAAEzC,OAAO,QAAU2d,GAAuBjW,MAAM,UAAW,QAC3DjF,EAAEzC,OAAO,QAAU6d,GAAuBnW,MAAM,UAAW,QAjN/D,GAWI2U,GAXAyB,EAAqB,EACrBhB,EAAkB,aAClBK,EAAmB,MACnBQ,EAAwB,OACxBE,EAAwB,OAExBtb,EAASxM,EAAGsd,eAAetd,EAAGkU,yBAC9BwS,GAAc,EACdW,EAAaU,EACb5B,EAAe,SACfE,EAAW,EAuOf,OApOA7Z,GAAOsF,mBAAmB,KAE1BtF,EAAO2P,SAAW,WACd,GAAI0K,GAAYra,EAAO6N,aACnB2N,EAAanB,EAAU5V,UAAU,eAEjC+W,GAAW9d,UAAS8d,EAAanB,EAAU1c,OAAO,KAAK+C,KAAK,QAAS,cAEzE,IAAInE,GAASif,EAAW/W,UAAU,WAAW5J,KAAKmF,EAAOoR,eAErDqI,EAAcld,EACb6M,QACAzL,OAAO,KACP+C,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO,UAAiBA,GAGhCikB,GAASC,EAAald,GAEtB0d,EAASR,EAAald,GAEtB6d,EAASC,EAAW9d,GAEpByD,EAAOoR,YAAY,OAGvBpR,EAAOsQ,YAAc,SAAS3Y,GAC1B,MAAKC,WAAUpC,QACfmkB,EAAehiB,EACRqI,GAFuB2Z,GAKlC3Z,EAAO4Z,QAAU,SAASjiB,GACtB,MAAKC,WAAUpC,QACfqkB,EAAWliB,EACJqI,GAFuB6Z,GAKlC7Z,EAAO+Z,QAAU,SAASpiB,GACtB,MAAKC,WAAUpC,QACfskB,EAAWniB,EACJqI,GAFuB8Z,GAWlC9Z,EAAOyb,WAAa,SAAU9jB,GAC1B,MAAKC,WAAUpC,QACf0kB,EAAcviB,EACPqI,GAFuBka,GAyJlCla,EAAO0b,UAAY,SAAU/jB,GACzB,MAAKC,WAAUpC,QACfqlB,EAAaljB,EACNqI,GAFuB6a,GAKlC7a,EAAOuG,gBAAkB,SAAU1P,GAC/BmJ,EAAOyE,UAAU,eAAeA,UAAU,QAAQzL,OAAO,WACrD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,aAAa,GACxB3E,EAAOyE,UAAU,eAAeA,UAAU,QAAQzL,OAAO,WACrD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,WAAW,IAG1B3E,EAAOwG,YAAc,SAAU3P,GAC3BmJ,EAAOyE,UAAU,eAAeA,UAAU,QAAQzL,OAAO,WACrD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,aAAa,GACxB3E,EAAOyE,UAAU,eAAeA,UAAU,QAAQzL,OAAO,WACrD,MAAOL,IAAG8E,OAAOpF,MAAMqI,KAAK,SAAW7J,EAAEgH,QAC1C8G,QAAQ,WAAW,IAGnB3E,EAAOI,OAAO7C,EAAQmH,IA6CjClR,EAAGmoB,UAAY,SAASpe,EAAQmH,GAC5B,GAAIkX,GAAgBjjB,GAAGE,OAAO,MAC1BmH,EAASxM,EAAGuM,aAahB,OAXAC,GAAOyF,SAAW,WAId,MAHAzF,GAAOyE,UAAU,gBAAgBW,KAAKwW,EAAc5b,EAAOsB,YAAY5F,SACvEsE,EAAOyE,UAAU,iBAAiBW,KAAKwW,EAAc5b,EAAOxL,QAAQ4H,UAE7D4D,GAGXA,EAAO6F,SAAW,WACd,MAAO7F,GAAOyF,YAGXzF,EAAOI,OAAO7C,EAAQmH,IAwBjClR,EAAGqoB,UAAY,SAASte,EAAQmH,GAwB5B,QAASoX,KACL,GAAIC,GAAS/b,EAAOS,OAAOgE,UAAU,SAChC5J,KAAKmhB,IAAe,SAASnlB,GAC1B,MAAOmJ,GAAOoG,cAAcvP,KAGhColB,EAAWF,EACV3S,QACAzL,OAAO,QAcZ,OAZAse,GACKte,OAAO,MACP+C,KAAK,QAASwb,GACVve,OAAO,MACP+C,KAAK,QAASyb,GACdzb,KAAK,UAAW0b,EAAS5mB,QACzB6mB,KAAK,SAASxlB,GACX,MAAOmJ,GAAOoG,cAAcvP,KAGxCklB,EAAOzS,OAAOtE,SAEPiX,EAGX,QAASD,KACAM,IACDA,EAAQjY,YAAYC,UAAUC,GAAGgY,GAErC,IAAIC,GAAUxc,EAAOsB,YAAY4F,IAAIuV,EAErC,OAAO9jB,IAAG+jB,OACL9d,IAAIoB,EAAOxL,SACXmoB,SAASC,GACTC,WAAWD,GACXJ,QAAQF,EAAME,EAAS,EAAGA,EAAQhnB,SAG3C,QAASsnB,GAAWf,GAChB,GAAIgB,GAAOhB,EAAO5J,QACb1N,UAAU,MAAQuY,GAClBniB,KAAK,SAAShE,GACX,MAAOA,GAAEub,SAGb6K,EAAWF,EAAK3T,QACfzL,OAAO,MACP+C,KAAK,QAASsc,EAUnB,OARAZ,GAAS7W,QAAQ,SAASnM,EAAE7D,GACxB0nB,EAAStf,OAAO,MACX+C,KAAK,QAASwc,EAAmB,KAAO3nB,GACxC8mB,KAAKjjB,KAGd2jB,EAAKzT,OAAOtE,SAEL+X,EAhFX,GAaIT,GAbAH,EAAkB,iBAClBa,EAAgB,eAChBE,EAAmB,kBACnBhB,EAAkB,iBAElBlc,EAASxM,EAAGuM,cAEZ0c,EAAQ,GACRL,KACAG,EAAU,SAAS1lB,GACnB,MAAOA,IAEP+lB,EAASjkB,GAAGwkB,SAwJhB,OArJAnd,GAAOyF,SAAW,WAKd,MAJAzF,GAAOyE,UAAU,SAASO,SAE1B8X,EAAWhB,KAEJ9b,GA+DXA,EAAO6F,SAAW,WACd,MAAO7F,GAAOyF,YAQlBzF,EAAOtE,KAAO,SAASxF,GACnB,MAAK0B,WAAUpC,QACfinB,EAAQvmB,EACD8J,GAFuByc,GAgClCzc,EAAOod,QAAU,SAASzlB,GACtB,MAAKC,WAAUpC,QACf4mB,EAAWzkB,EACJqI,GAFuBoc,GAiBlCpc,EAAOqd,OAAS,SAAS1lB,GACrB,MAAKC,WAAUpC,QACf+mB,EAAU5kB,EACHqI,GAFuBuc,GAclCvc,EAAOmS,MAAQ,SAASxa,GACpB,MAAKC,WAAUpC,QACfonB,EAASjlB,EACFqI,GAFuB4c,GAK3B5c,EAAOI,OAAO7C,EAAQmH,IAoCjClR,EAAG8pB,YAAc,SAAS/f,EAAQmH,GAyC9B,QAAS6Y,GAAYC,GACjB,GAAItJ,GAAesJ,EAAQpU,QAAQzL,OAAO,IAE1CuW,GACKxT,KAAK,QAASV,EAAOoT,mBACrB1S,KAAK,YAAa+c,GAClB9f,OAAO,UAAU+C,KAAK,QAAS,SAAS7J,EAAGtB,GACxC,MAAOyK,GAAOqT,aAAe,KAAO9d,IAEvCuR,GAAG,QAAS9G,EAAOmG,SACnBzF,KAAK,OAAQV,EAAO4Q,UACpBlQ,KAAK,IAAK,GACflN,EAAGqC,WAAW2nB,EAASxd,EAAOsF,sBACzB5E,KAAK,IAAK,SAAS7J,GAChB,MAAOmJ,GAAO6T,QAAQhd,KAEzB6J,KAAK,UAAW,SAAS7J,GACtB,MAAQmJ,GAAO6T,QAAQhd,GAAK,EAAK,EAAI,IAG7CmJ,EAAOiU,cAAcC,GAErBlU,EAAOsU,eAAeJ,GAG1B,QAASwJ,GAAYF,GACjBhqB,EAAGqC,WAAW2nB,EAASxd,EAAOsF,sBACzB5E,KAAK,YAAa+c,GAClBhZ,UAAU,UAAYzE,EAAOqT,cAC7B3S,KAAK,OAAQV,EAAO4Q,UACpBlQ,KAAK,IAAK,SAAS7J,GAChB,MAAOmJ,GAAO6T,QAAQhd,KAEzB6J,KAAK,UAAW,SAAS7J,GACtB,MAAQmJ,GAAO6T,QAAQhd,GAAK,EAAK,EAAI,IAG7CmJ,EAAOmU,eAAeqJ,GACtBxd,EAAOuU,eAAeiJ,GAG1B,QAASG,GAAYH,GACjBA,EAAQlU,OAAOtE,SAGnB,QAAS4Y,GAAQ/mB,GACb,GAAIkE,GAAIiF,EAAOjF,IAAIiF,EAAOoG,cAAcvP,GAGxC,OAFIid,OAAM/Y,KACNA,EAAI,GACDA,EAGX,QAAS8iB,GAAQhnB,GACb,GAAImE,GAAIgF,EAAOhF,IAAIgF,EAAOK,gBAAgBxJ,GAG1C,OAFIid,OAAM9Y,KACNA,EAAI,GACDA,EAhGX,GAAIgF,GAASxM,EAAGyf,oBAAoBzf,EAAGkU,yBAEnCoW,GAAiB,CAErB9d,GAAOsF,mBAAmB,IAE1B,IAAImY,GAAgB,SAAS5mB,GACzB,MAAO,aAAgB+mB,EAAQ/mB,GAAM,IAAOgnB,EAAQhnB,GAAM,IAqG9D,OA5FAmJ,GAAO+d,cAAgB,SAASpmB,GAC5B,MAAKC,WAAUpC,QACfsoB,EAAiBnmB,EACVqI,GAFuB8d,GAKlC9d,EAAO2P,SAAW,WACVmO,GACA9d,EAAOpG,IAAInD,QAAQuJ,EAAO2T,OAAQ3T,EAAO4T,SAE7C5T,EAAOpG,IAAIwO,OAAOpI,EAAOsT,WAAYtT,EAAOqI,cAAgBrI,EAAOyU,yBAEnE,IAAI+I,GAAUxd,EAAO6N,aAAapJ,UAAU,KAAOzE,EAAOoT,mBACrDvY,KAAKmF,EAAOnF,OAAOmF,EAAOoG,cAE/BmX,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZxd,EAAOwP,sBA8DXxP,EAAOgP,YAAc,aAIrBhP,EAAOoP,YAAc,WAEjBpP,EAAOwP,sBAGJxP,EAAOI,OAAO7C,EAAQmH,IAiCjClR,EAAGwqB,eAAiB,SAAUzgB,EAAQmH,GA+BlC,QAASuZ,GAAeC,EAAO3oB,GAC3B2oB,EAAMxQ,WAAW1N,EAAOE,KACxBge,EAAMhe,IAAIQ,KAAK,QAASyd,EAAkB,KAAO5oB,GA0FrD,QAAS6oB,KAEL,IAAK,GADDC,MACK9oB,EAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EACpC8oB,EAAQtpB,KAAKupB,EAAU/oB,GAAGoU,WAE9B,OAAO0U,GAOX,QAASE,KAEL,IAAK,GADDC,MACKjpB,EAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EACpCipB,EAASzpB,KAAKupB,EAAU/oB,GAAGqU,WAE/B,OAAO4U,GAOX,QAASC,KAEL,IAAK,GADDJ,MACK9oB,EAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EACpC8oB,EAAQtpB,KAAKupB,EAAU/oB,GAAGwS,WAE9B,OAAOsW,GAOX,QAASK,KAEL,IAAK,GADDF,MACKjpB,EAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EACpCipB,EAASzpB,KAAKupB,EAAU/oB,GAAGyS,WAE/B,OAAOwW,GAnKX,GAAIL,GAAkB,MAElBne,EAASxM,EAAGkU,wBACZ4W,KAEAK,GAAe,CAkMnB,OAhMA3e,GAAO8C,yBACP9C,EAAOsF,mBAAmB,KAE1B9R,EAAG6D,SAAS2I,EAAQ,aAAc,WAG9B,IAAK,GAFDE,GAAI7H,KAAKumB,cAEJrpB,EAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EAAG,CACvC,GAAI2oB,GAAQI,EAAU/oB,EAEtB0oB,GAAeC,EAAO3oB,GAEjB2oB,EAAM5c,aAAa4c,EAAM5c,UAAUtB,EAAOsB,aAC1C4c,EAAM1pB,SAAS0pB,EAAM1pB,MAAMwL,EAAOxL,SACvC0pB,EAAMxZ,WAAW1E,EAAO0E,cACxBwZ,EAAMpZ,IAAI9E,EAAO8E,OACjBoZ,EAAMpQ,OAAO9N,EAAO8N,UACpBoQ,EAAM5Y,mBAAmBtF,EAAOsF,sBAChC4Y,EAAMrO,QAAQ7P,EAAO6P,WAGzB,MAAO3P,KAQXF,EAAO2P,SAAW,WACd,IAAK,GAAIpa,GAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EAAG,CACvC,GAAI2oB,GAAQI,EAAU/oB,EAEjB2oB,GAAMhe,KACP+d,EAAeC,EAAO3oB,GAGtBopB,GACAT,EAAMpS,OAAO9L,EAAO8L,UAExBoS,EAAMnjB,EAAEiF,EAAOjF,KACfmjB,EAAMljB,EAAEgF,EAAOhF,KACfkjB,EAAMnQ,MAAM/N,EAAO+N,SACnBmQ,EAAMtP,MAAM5O,EAAO4O,SAEnBsP,EAAMvO,WAENuO,EAAMxY,uBAId1F,EAAOwP,mBAAqB,WACxB,IAAK,GAAIja,GAAI,EAAGA,EAAI+oB,EAAU9oB,SAAUD,EAAG,CACvC,GAAI2oB,GAAQI,EAAU/oB,EACtB2oB,GAAMjR,MAAMjN,EAAOiN,SACnBiR,EAAM1O,uBA8BdxP,EAAO6e,QAAU,SAAUvpB,GAWvB,MAVAgpB,GAAYhpB,EACZgpB,EAAU/Y,QAAQ,SAAS2Y,EAAO3oB,GAC9B2oB,EAAMtd,OAAOZ,EAAOY,UACpBsd,EAAMvd,MAAMX,EAAOW,SACnBud,EAAM5W,QAAQtH,EAAOsH,WAEjBqX,GAAgBT,EAAM1N,kBAAoB0N,EAAMlL,qBAChDkL,EAAMrN,gBAAgB,WAAY,MAAOqN,GAAMpS,SAASvW,OAGzDyK,GAGXA,EAAO8e,SAAW,WACd,MAAOR,IAUXte,EAAO+e,YAAc,SAAUpnB,GAC3B,MAAKC,WAAUpC,QACfmpB,EAAehnB,EACRqI,GAFuB2e,GAalC3e,EAAO2J,SAAW,WACd,MAAOhR,IAAGwE,IAAIihB,MAWlBpe,EAAO4J,SAAW,WACd,MAAOpW,GAAGuD,MAAM2C,IAAIf,GAAGkE,IAAI0hB,KAAkCve,EAAO6O,iBAWxE7O,EAAO+H,SAAW,WACd,MAAOvU,GAAGuD,MAAMoD,SAASxB,GAAGwE,IAAIshB,KAAkCze,EAAOgO,iBAW7EhO,EAAOgI,SAAW,WACd,MAAOxU,GAAGuD,MAAM2C,IAAIf,GAAGkE,IAAI6hB,KAAkC1e,EAAOgO,iBAGxEhO,EAAOsG,YAAc,WACjB,GAAI0Y,KAWJ,OAVAV,GAAU/Y,QAAQ,SAAS2Y,EAAO3oB,GAC1BopB,GACAT,EAAMpS,OAAO9L,EAAO8L,SAExB,IAAImT,GAAmBf,EAAM5X,aACzB2Y,GAAiBzpB,OACjBwpB,EAAMjqB,KAAK0D,MAAMumB,EAAMC,GAEvBD,EAAMjqB,KAAKvB,EAAGuD,MAAM6G,iBAAiBsgB,EAAOA,EAAM1pB,QAAS0pB,EAAM7d,gBAAiB6d,EAAMrN,kBAAkBtb,OAE3GypB,GAGXhf,EAAOuG,gBAAkB,SAAU1P,GAC/B,IAAK,GAAI8F,GAAI,EAAGA,EAAI2hB,EAAU9oB,SAAUmH,EAAG,CACvC,GAAIuhB,GAAQI,EAAU3hB,EACtBuhB,GAAM3X,gBAAgB1P,KAI9BmJ,EAAOwG,YAAc,SAAU3P,GAC3B,IAAK,GAAI8F,GAAI,EAAGA,EAAI2hB,EAAU9oB,SAAUmH,EAAG,CACvC,GAAIuhB,GAAQI,EAAU3hB,EACtBuhB,GAAM1X,YAAY3P,KAInBmJ,EAAOI,OAAO7C,EAAQmH,IAMjClR,EAAG0rB,YAAc,SAAU3hB,EAAQmH,GA+B/B,QAASya,GAAWhf,GAChB,MAAOif,GAAQjf,GAAG4E,WAGtB,QAASsa,KACLtnB,OAAOunB,KAAKF,GAASlX,IAAIiX,GACzBC,KApCJ,GAIIG,GAJAvf,EAASxM,EAAGwqB,eAAezgB,EAAQmH,GAEnC0a,KACAI,EAAiBhsB,EAAG+lB,SAsDxB,OAnDAvZ,GAAO8C,uBAAuB/N,KAAK,iBAAiB,SACpDiL,EAAO+e,aAAY,GAEnBvrB,EAAG6D,SAAS2I,EAAQ,WAAY,WAC5BxM,EAAG4B,oBAAoB4K,EAAOc,aAC9B,IAAI2e,MACAX,EAAWnmB,GAAG+jB,OAAO9d,IAAI2gB,GAAiB/C,QAAQxc,EAAOnF,QACxDqN,IAAI,SAASwX,GACV,GAAIC,GAAWP,EAAQM,EAAI9gB,MAAQ4gB,EAAexf,EAAOA,EAAOc,aAGhE,OAFAse,GAAQM,EAAI9gB,KAAO+gB,EACnBF,EAAK1qB,KAAK2qB,EAAI9gB,KACP+gB,EACFnrB,OAAOyI,IAAItE,GAAGgL,QAAQ+b,EAAItN,SAAUsN,EAAI9gB,KACxCwH,YAAYpG,EAAOoG,eACnB/F,cAAcL,EAAOK,iBACrBwQ,gBAAgB,WAAY,MAAO8O,GAAS7T,SAAS4T,EAAI9gB,QAEtE7G,QAAOunB,KAAKF,GACPpmB,OAAO,SAASmH,GAAI,MAA2B,KAApBsf,EAAK5qB,QAAQsL,KACxC+H,IAAI,SAAS/H,GAAI,MAAOif,GAAQjf,GAAG4E,aACxC/E,EAAO4f,SAASd,GAChB9e,EAAO6f,cAYX7f,EAAOrL,MAAQ,SAASgD,GACpB,MAAKC,WAAUpC,QACfgqB,EAAiB7nB,EACjB0nB,IACOrf,GAHuBwf,GAMlCxf,EAAO8f,eAAiB,SAASnoB,GAC7B,MAAKC,WAAUpC,QACf+pB,EAAkB5nB,EAClB0nB,IACOrf,GAHuBuf,GAOlCvf,EAAO4f,SAAW5f,EAAO6e,cAClB7e,GAAO6e,QAEP7e,GA+BXxM,EAAGusB,mBAAqB,SAAUxiB,EAAQmH,GAoCtC,QAASiL,GAAShV,GACd,GAAIE,GAAOmlB,GAEX,IAAIC,EAAYtlB,GAAa,CACzB,GAAIulB,GAAUC,EAAcxlB,EAE5BylB,GAAYF,EAASvlB,EAAYE,GAEjC+L,EAAYsZ,EAASvlB,EAAYE,IAIzC,QAASmlB,KAGL,IAAK,GAFDnlB,MACAwlB,EAAWrgB,EAAOnF,OACbtF,EAAI,EAAGA,EAAI8qB,EAAS7qB,SAAUD,EACnCsF,EAAKmF,EAAOoG,cAAcia,EAAS9qB,KAAOyK,EAAOK,gBAAgBggB,EAAS9qB,GAE9E,OAAOsF,GAGX,QAASolB,GAAYtlB,GACjB,MAAO2lB,GAAQ3lB,GAAYyL,YAG/B,QAAS+Z,GAAcxlB,GACnB,GAAIulB,GAAUlgB,EAAO8E,MAChBL,UAAU8b,EAAc5lB,IACxBgK,QAAQ,WAAY,SAAU9N,GAC3B,MAAO2pB,GAAW7lB,EAAY9D,KAEjC8N,QAAQ,aAAc,SAAU9N,GAC7B,MAAO4pB,GAAa9lB,EAAY9D,KAEnC6J,KAAK,QAAS,SAAU7J,GACrB,GAAI6pB,GAAiBJ,EAAQ3lB,GAAYU,KACrCslB,EAAcntB,EAAGuD,MAAMqG,SAASkjB,EAAQ3lB,GAAYyL,YAAYvP,IAChE+pB,EAAcF,EAAiB,IAAMC,CAGzC,OAFIH,GAAW7lB,EAAY9D,KAAI+pB,GAAe,aAC1CH,EAAa9lB,EAAY9D,KAAI+pB,GAAe,eACzCA,GAEf,OAAOV,GAGX,QAASK,GAAc5lB,GACnB,MAAO,UAAYA,EAAa,MAAQ2lB,EAAQ3lB,GAAYU,KAGhE,QAASmlB,GAAW7lB,EAAY9D,GAC5B,MAAOmJ,GAAO+F,aAAe/F,EAAO+F,UAAU8a,EAAOlmB,EAAY9D,IAGrE,QAAS4pB,GAAa9lB,EAAY9D,GAC9B,MAAOmJ,GAAO+F,cAAgB/F,EAAO+F,UAAU8a,EAAOlmB,EAAY9D,IAGtE,QAASgqB,GAAOlmB,EAAY9D,GACxB,MAAOypB,GAAQ3lB,GAAYyL,YAAYvP,GAG3C,QAASypB,GAAQ9kB,GACb,MAAOslB,GAAUtlB,GAGrB,QAAS4kB,GAAYF,EAASvlB,EAAYE,GACtC,GAAIkmB,GAAQb,EACPziB,OAAO,QACPiD,KAAK,OAAQ,WACV,GAAIsgB,GAAcroB,GAAG8E,OAAOpF,MAAMqI,KAAK,OACvC,OAAIsgB,GACOA,EACJ,SAEVla,GAAG,QAAS,SAAUjQ,GACnB,MAAOmJ,GAAOmG,QAAQtP,EAAG8D,IAGjCnH,GAAGqC,WAAWkrB,EAAO/gB,EAAOsF,sBAAsB5E,KAAK,OAAQ,SAAU7J,EAAGtB,GACxE,MAAOyK,GAAO4Q,SAAS/V,EAAKylB,EAAQ3lB,GAAYyL,YAAYvP,IAAKtB,KAYzE,QAASqR,GAAYsZ,EAASvlB,EAAYE,GAClCmF,EAAO4G,eACPsZ,EAAQzb,UAAU,SAASW,KAAK,SAAUvO,GACtC,GAAI+H,GAAMiiB,EAAOlmB,EAAY9D,GACzBuF,EAAQvB,EAAK+D,EACjB,OAAOoB,GAAO2G,SAAS/H,IAAKA,EAAKxC,MAAOA,MAnIpD,GAAI4D,GAASxM,EAAGqY,WAAWrY,EAAGuM,cAE9BC,GAAOwQ,cAAc,SAAU3Z,GAC3B,MAAOA,IAAK,GAGhB,IACIoqB,GADAC,EAAWvoB,GAAGwoB,IAAIzJ,OAGlBoJ,IAyNJ,OAvNA9gB,GAAOyF,SAAW,WACdzF,EAAO+E,UACP,KAAK,GAAIpK,GAAa,EAAGA,EAAammB,EAAUtrB,SAAUmF,EAAY,CAClE,GAAIymB,GAASphB,EAAO8E,MAAMnH,OAAO,KAC5B+C,KAAK,QAAS,QAAU/F,GAEzBulB,EAAUkB,EAAO3c,UAAU,KAAO6b,EAAQ3lB,GAAYU,MACrDR,KAAKylB,EAAQ3lB,GAAYE,MACzBuO,QACAzL,OAAO,KACP+C,KAAK,QAAS4f,EAAQ3lB,GAAYU,KAEvC6kB,GACKviB,OAAO,QACP+C,KAAK,OAAQ,SACbA,KAAK,IAAKwgB,GAEfhB,EAAQviB,OAAO,SAEfgS,EAAShV,GAEbsmB,GAAkB,GAsFtBjhB,EAAOmG,QAAU,SAAUtP,EAAG8D,GAC1B,GAAI0mB,GAAiBf,EAAQ3lB,GAAYyL,YAAYvP,EACrDrD,GAAGyK,OAAOE,QAAQ,WACd6B,EAAOhH,OAAOqoB,GACd7tB,EAAGmC,UAAUqK,EAAO0E,iBAc5B1E,EAAO6F,SAAW,WACd,IAAK,GAAIlL,GAAa,EAAGA,EAAammB,EAAUtrB,SAAUmF,EACtDgV,EAAShV,GACNsmB,GACCjhB,EAAO8E,MAAML,UAAU,KAAO6b,EAAQ3lB,GAAYU,KAAO,SAASqF,KAAK,IAAKwgB,EAGpFD,IAAkB,GAuBtBjhB,EAAOshB,eAAiB,SAAUC,EAAMlmB,EAAM+K,GAC1C,IAAK,GAAI7Q,GAAI,EAAGA,EAAIurB,EAAUtrB,SAAUD,EACpC,GAAIurB,EAAUvrB,GAAG8F,MAAQA,EAGrB,MAFAylB,GAAUvrB,GAAGsF,KAAO0mB,EACpBT,EAAUvrB,GAAG6Q,YAAcA,EACpBpG,CAIf,OADA8gB,GAAU/rB,MAAMsG,KAAMA,EAAMR,KAAM0mB,EAAMnb,YAAaA,IAC9CpG,GASXA,EAAOwhB,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXjhB,GAaXA,EAAOyhB,SAAW,WACd,MAAOX,IAUX9gB,EAAO0hB,cAAgB,SAAUrmB,GAG7B,IAAK,GAFDomB,MAEKlsB,EAAI,EAAGA,EAAIurB,EAAUtrB,SAAUD,EAAG,CACvC,GAAIiH,GAAQskB,EAAUvrB,EAClBiH,GAAMnB,MAAQA,GACdomB,EAAS1sB,KAAKyH,GAMtB,MAFAskB,GAAYW,EAELzhB,GAGJA,EAAOI,OAAO7C,EAAQmH,IA4CjClR,EAAGmuB,cAAgB,SAASlhB,EAAMiE,GAuC9B,QAASkd,KAIL,MAHA5V,GAAKhM,EAAOvC,OAAO,KAAOokB,GACtB7V,EAAGtO,UACHsO,EAAKhM,EAAO8E,MAAMnH,OAAO,KAAK+C,KAAK,QAASmhB,IACzC7V,EAGX,QAAS8V,KACL,GAAIjnB,GAAOknB,GAEXC,GAAQzc,QAAQ,SAAS0c,GACrB,GAAIC,GAAQC,EAASF,EAAOpnB,GAExBunB,EAASF,EAAMzkB,OAAO,UAAY4V,EAElC+O,GAAO1kB,UACP0kB,EAASF,EAAMvkB,OAAO,UACjB+C,KAAK,QAAS2S,GACd3S,KAAK,IAAK,GACVA,KAAK,OAAQV,EAAO4Q,UACpB9J,GAAG,QAAS9G,EAAOmG,UAE5B3S,EAAGqC,WAAWusB,EAAQpiB,EAAOsF,sBACxB5E,KAAK,IAAK,SAAS7J,GAChB,MAAOmJ,GAAO6T,QAAQhd,KAG9BmJ,EAAOiU,cAAciO,GAErBliB,EAAOsU,eAAe4N,KAI9B,QAASH,KACL,GAAIlnB,KAIJ,OAHAmF,GAAOnF,OAAO0K,QAAQ,SAASkV,GAC3B5f,EAAKmF,EAAOoG,cAAcqU,IAAUA,IAEjC5f,EAGX,QAASsnB,GAASF,EAAOpnB,GACrB,GAAIwnB,GAAkBjP,EAAoB,IAAM5f,EAAGuD,MAAMqG,SAAS6kB,EAAM5mB,MAEpE6mB,EAAQlW,EAAGvO,OAAO,KAAOjK,EAAGuD,MAAMqG,SAAS6kB,EAAM5mB,MAUrD,OARI6mB,GAAMxkB,UACNwkB,EAAQlW,EAAGrO,OAAO,KACb+C,KAAK,QAAS2hB,GACd3hB,KAAK,YAAa,aAAeuhB,EAAMlnB,EAAI,IAAMknB,EAAMjnB,EAAI,MAGpEknB,EAAMzH,MAAM5f,EAAKonB,EAAM5mB,OAEhB6mB,EAWX,QAASI,KACL,GAAIznB,GAAOknB,GAEXC,GAAQzc,QAAQ,SAAS0c,GACrB,GAAIC,GAAQC,EAASF,EAAOpnB,GAExBunB,EAASF,EAAMzkB,OAAO,UAAY4V,EAEtC7f,GAAGqC,WAAWusB,EAAQpiB,EAAOsF,sBACxB5E,KAAK,IAAK,SAAS7J,GAChB,MAAOmJ,GAAO6T,QAAQhd,KAEzB6J,KAAK,OAAQV,EAAO4Q,UAEzB5Q,EAAOmU,eAAe+N,GAEtBliB,EAAOuU,eAAe2N,KAvH9B,GAKIlW,GALA6V,EAAuB,iBACvBzO,EAAoB,OACpBC,EAAe,SAEfrT,EAASxM,EAAGyf,oBAAoBzf,EAAGuM,eAEnCiiB,IAoJJ,OAlJAhiB,GAAOsF,mBAAmB,KAE1BtF,EAAO0T,oBAAoB,SAAS7c,GAChC,MAAOA,GAAEuF,QAUb4D,EAAOiiB,MAAQ,SAAS5mB,EAAMN,EAAGC,GAE7B,MADAgnB,GAAQjtB,MAAMsG,KAAMA,EAAMN,EAAGA,EAAGC,EAAGA,IAC5BgF,GAGXA,EAAOyF,SAAW,WASd,MARAuG,GAAK4V,IAEL5hB,EAAOpG,IAAIwO,OAAOpI,EAAOsT,WAAYtT,EAAOW,QAAUX,EAAOyU,0BAE7DqN,IAEA9hB,EAAOwP,qBAEAxP,GA4DXA,EAAO6F,SAAW,WAKd,MAJAyc,KAEAtiB,EAAOwP,qBAEAxP,GAuBXA,EAAOuiB,MAAQ,SAASC,GACpB,GAAGA,EAAK,CACJ,GAAIC,GAASziB,EAAOvC,OAAO,KAAOjK,EAAGE,UAAUE,kBAE5C6uB,GAAO/kB,UACN+kB,EAASziB,EAAO8E,MACXnH,OAAO,KACP+C,KAAK,QAASlN,EAAGE,UAAUE,mBAEpC,IAAI8uB,GAAYD,EAAO9kB,OAAO,QACzB+C,KAAK,IAAK,IACVA,KAAK,IAAK,GAEf+hB,GACK9kB,OAAO,QACP+C,KAAK,QAASV,EAAOW,SACrBD,KAAK,SAAUV,EAAOY,UACtBkG,GAAG,YAAa,WACb,GAAI6b,GAAWhqB,GAAGiqB,MAAMH,EAAO7e,QAC3BzL,EAAMwqB,EAAS,GAAK,KAAOA,EAAS,EACxCD,GAAUtd,KAAKjN,SAGvB6H,GAAOyE,UAAU,UAAUO,QAG/B,OAAOhF,IAGXA,EAAOI,OAAOK,EAAMiE,GAEb1E,GAyBXxM,EAAGqvB,SAAW,SAAUtlB,EAAQmH,GAwB5B,QAASoe,KACL,IAAKhb,GAAMib,EAAW,CAClB,GAAIhU,GAASpW,GAAGoW,OAAOiU,EAAUhjB,EAAOiX,oBACpClI,GAAO,GAAK,IAAGA,EAAO,GAAK,GAC/BjH,EAAKnP,GAAG4P,MAAMmB,SAASjT,OAAOsY,GACzB3G,OAAO,EAAGpI,EAAOwH,mBAE1Bc,EAAOC,MAAMT,GAGjB,QAASmb,KACL,GAAIC,GAAQlX,EAAGvO,OAAO,SAEtBqlB,KAEII,EAAMxlB,UACNwlB,EAAQlX,EAAGrO,OAAO,KAAK+C,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBV,EAAOyH,kBAAoB,MAExEjU,EAAGqC,WAAWqtB,EAAOljB,EAAOsF,sBACvBjM,KAAKiP,GA2Bd,QAAS6a,KACLnX,EAAGvH,UAAU,UACRhH,OAAO,kBACPuH,SAELgH,EAAGvH,UAAU,UACR9G,OAAO,QACP+C,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQV,EAAOyH,oBAI3B,QAASmN,KACLoO,EAAWhjB,EAAOnF,OAElBooB,IACAE,GAEA,IAAIpG,GAAO/Q,EAAGvH,UAAU,KAAO2e,GAC1BvoB,KAAKmoB,EAEV3N,GAAe0H,GACfxH,EAAewH,GACfzH,EAAeyH,GAGnB,QAAS1H,GAAe0H,GACpB,GAAIE,GAAWF,EAAK3T,QACfzL,OAAO,KACP+C,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO6tB,GAAe,KAAO7tB,GAGrC0nB,GAAStf,OAAO,QAAQ+C,KAAK,QAAS,GAEtCmV,EAAaoH,GACbtG,EAAaoG,GAGjB,QAASxH,GAAewH,GACpBA,EAAKzT,OAAOtE,SAGhB,QAASsQ,GAAeyH,GACpB,GAAI3lB,GAAI4rB,EAASxtB,OAEboL,GAAUZ,EAAOyH,mBAAqBrQ,EAAI,GAAKuhB,GAAQvhB,EAEvDisB,EAAOtG,EAAKrc,KAAK,YAAY,SAAU7J,EAAGtB,GACtC,MAAO,iBAAmBA,EAAI,GAAKojB,EAAOpjB,EAAIqL,GAAU,MACzDnD,OAAO,QACTiD,KAAK,SAAUE,GACfF,KAAK,OAAQV,EAAO4Q,UACpB9J,GAAG,QAASX,GACZxB,QAAQ,aAAc,SAAU9N,GAC7B,MAAQmJ,GAAO+F,aAAgBud,EAAczsB,IAAK,IAErD8N,QAAQ,WAAY,SAAU9N,GAC3B,MAAQmJ,GAAO+F,YAAeud,EAAczsB,IAAK,GAGzDrD,GAAGqC,WAAWwtB,EAAMrjB,EAAOsF,sBACtB5E,KAAK,QAAS,SAAU7J,GACrB,GAAImiB,GAAQlR,EAAG,KAAOyL,IAAWzL,EAAG,GAAKA,EAAG,EAC5C,OAAOxR,MAAKC,IAAIyiB,EAAQlR,EAAG9H,EAAOK,gBAAgBxJ,OAErD6J,KAAK,YAAa6iB,GAEvB3N,EAAamH,GACbpG,EAAaoG,GAGjB,QAASnH,GAAamH,GACd/c,EAAO4G,gBACPmW,EAAKtY,UAAU,SAASO,SACxB+X,EAAKpf,OAAO,SAASyH,KAAKpF,EAAO2G,UAIzC,QAASkP,GAAaoH,GACdjd,EAAO0G,eACPuW,EAAStf,OAAO,QACXmJ,GAAG,QAASX,GAIzB,QAASwQ,GAAaoG,GAClB,GAAI/c,EAAO0G,cAAe,CACtB,GAAI8c,GAAMzG,EAAKtf,OAAO,QACjBiD,KAAK,IAAK+iB,GACV/iB,KAAK,IAAKgjB,GACV5c,GAAG,QAASX,GACZzF,KAAK,QAAS,SAAU7J,EAAGtB,GACxB,MAAO6tB,GAAe,KAAO7tB,IAEhC6P,KAAK,SAAUvO,GACZ,MAAOmJ,GAAOyG,QAAQ5P,IAE9BrD,GAAGqC,WAAW2tB,EAAKxjB,EAAOsF,sBACrB5E,KAAK,YAAa6iB,IAI/B,QAASpd,GAAQtP,GACbmJ,EAAOmG,QAAQtP,GAGnB,QAAS0sB,GAAW1sB,GAChB,GAAIkE,GAAI+M,EAAG9H,EAAOiX,oBAAoBpgB,IAClC8sB,EAAK7b,EAAG,GACR5R,EAAI6E,EAAI4oB,EAAKA,EAAK5oB,CACtB,OAAO,aAAa7E,EAAE,MAyD1B,QAASotB,GAAezsB,GACpB,MAAOmJ,GAAO+F,UAAU/F,EAAOgX,kBAAkBngB,IAlPrD,GAAImV,GAYAlE,EAEAib,EAIAC,EAhBAS,EAAgB,GAEhBC,EAAgB,GAEhB/K,EAAO,EAEPyK,EAAe,MAEfpjB,EAASxM,EAAGokB,OAAOpkB,EAAGwT,WAAWxT,EAAGqY,WAAWrY,EAAGuM,iBAMlDuI,EAAS3P,GAAGmM,IAAI0H,OAAOhE,OAAO,SAqOlC,OAjOAxI,GAAO4jB,QAAU5jB,EAAO8X,IAyBxB9X,EAAOyF,SAAW,WASd,MARAzF,GAAO+E,WAEPiH,EAAKhM,EAAO8E,MACPnH,OAAO,KACP+C,KAAK,YAAa,aAAeV,EAAOsH,UAAUD,KAAO,IAAMrH,EAAOsH,UAAUJ,IAAM,KAE3F0N,IAEO5U,GAGXA,EAAO2G,MAAM,SAAU9P,GACnB,MAAOmJ,GAAOgX,kBAAkBngB,GAAK,KAAOmJ,EAAOiX,oBAAoBpgB,KAG3EmJ,EAAOyG,MAAMzG,EAAOgX,mBAEpBhX,EAAOjF,EAAI,SAASA,GAChB,MAAInD,WAAUpC,QACdsS,EAAK/M,EACEiF,GAFsB8H,GA2HjC9H,EAAO6F,SAAW,WAEd,MADA+O,KACO5U,GAGXA,EAAO+N,MAAQ,WACX,MAAOzF,IAQXtI,EAAOoZ,IAAM,SAAUlZ,GACnB,MAAKtI,WAAUpC,QACfmjB,EAAOzY,EACAF,GAFuB2Y,GAWlC3Y,EAAO4H,SAAW,SAAUjQ,GACxB,MAAKC,WAAUpC,QACfutB,EAAYprB,EACLqI,GAFuB+iB,GAUlC/iB,EAAO6jB,aAAe,SAAU/rB,GAC5B,MAAKF,WAAUpC,QACfiuB,EAAgB3rB,EACTkI,GAFuByjB,GAUlCzjB,EAAO8jB,aAAe,SAAUhsB,GAC5B,MAAKF,WAAUpC,QACfkuB,EAAgB5rB,EACTkI,GAFuB0jB,GAS3B1jB,EAAOI,OAAO7C,EAAQmH,IAgBjClR,EAAGqT,OAAS,WAkDR,QAASkd,KACL,MAAOpL,GAAOqL,EAlDlB,GAGIzZ,GAMAyB,EATAiY,EAAY,EAEZliB,KAEA+F,EAAK,EACL0B,EAAK,EACLwa,EAAc,GACdrL,EAAO,CAsFX,OAlFA5W,GAAQxE,OAAS,SAAUmS,GACvB,MAAK9X,WAAUpC,QACf+U,EAAUmF,EACH3N,GAFuBwI,GAKlCxI,EAAQrM,OAAS,WACbsW,EAAKzB,EAAQzF,MAAMnH,OAAO,KACrB+C,KAAK,QAAS,aACdA,KAAK,YAAa,aAAeoH,EAAK,IAAM0B,EAAK,IAEtD,IAAI0a,GAAYlY,EAAGvH,UAAU,oBACxB5J,KAAK0P,EAAQjE,eACb8C,QACAzL,OAAO,KACP+C,KAAK,QAAS,kBACdA,KAAK,YAAa,SAAU7J,EAAGtB,GAC5B,MAAO,eAAiBA,EAAIwuB,IAAqB,MAEpDjd,GAAG,YAAa,SAASjQ,GACtB0T,EAAQhE,gBAAgB1P,KAE3BiQ,GAAG,WAAY,SAAUjQ,GACtB0T,EAAQ/D,YAAY3P,IAG5BqtB,GACKvmB,OAAO,QACH+C,KAAK,QAASsjB,GACdtjB,KAAK,SAAUsjB,GACftjB,KAAK,OAAQ,SAAS7J,GAAG,MAAOA,GAAEgH,QAE3CqmB,EAAUvmB,OAAO,QACRyH,KAAK,SAASvO,GAAG,MAAOA,GAAEwE,OAC1BqF,KAAK,IAAKsjB,EAAcC,GACxBvjB,KAAK,IAAK,WAAW,MAAOsjB,GAAc,GAAK3rB,KAAK8rB,aAAa9rB,KAAK8rB,aAAa,IAAM,EAAI,KAW1GpiB,EAAQhH,EAAI,SAAUA,GAClB,MAAKnD,WAAUpC,QACfsS,EAAK/M,EACEgH,GAFuB+F,GASlC/F,EAAQ/G,EAAI,SAAUA,GAClB,MAAKpD,WAAUpC,QACfgU,EAAKxO,EACE+G,GAFuByH,GASlCzH,EAAQqX,IAAM,SAAUA,GACpB,MAAKxhB,WAAUpC,QACfmjB,EAAOS,EACArX,GAFuB4W,GASlC5W,EAAQqiB,WAAa,SAAUvgB,GAC3B,MAAKjM,WAAUpC,QACfwuB,EAAcngB,EACP9B,GAFuBiiB,GAK3BjiB,GAaXvO,EAAGokB,OAAS,SAAU5X,GAElB,GAAIqkB,GAAO9Q,IAEP+Q,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAa9rB,GAAG+rB,IAAIF,EAASxkB,EAAOK,iBACpCskB,EAAU3kB,EAAOxL,QAAQyI,MACzB2nB,EAAajsB,GAAG+rB,IAAIC,EAAS3kB,EAAOK,iBACpCwkB,EAAUL,EAAQtc,IAAIlI,EAAOoG,eAC7B0e,EAAUH,EAAQzc,IAAIlI,EAAOoG,eAC7B2e,EAASpsB,GAAGwY,IAAI0T,GAChBG,EAASF,EAAQ9rB,OAAO,SAASnC,GAAG,OAAQkuB,EAAOrwB,IAAImC,IACvD+tB,GAAaH,GACbD,EAAQzvB,MAAMiwB,OAAUA,EAAQpmB,IAAO0lB,EAAcloB,MAASwoB,EAAaH,IA8EnF,OA3EAzkB,GAAOgX,kBAAoB,SAASngB,EAAEtB,GAClC,MAAIsB,GAAEmuB,OACKnuB,EAAE+H,IACNoB,EAAOoG,cAAcvP,EAAEtB,IAGlCyK,EAAOiX,oBAAsB,SAASpgB,EAAEtB,GACpC,MAAIsB,GAAEmuB,OACKnuB,EAAEuF,MACN4D,EAAOK,gBAAgBxJ,EAAEtB,IAGpCyK,EAAOnF,KAAK,SAASrG,GACjB,GAAY+e,KAAR8Q,EACA,MAAOrkB,GAAOiE,qBAAqBzP,EAAMyI,MAEzC,IAAIunB,GAAUhwB,EAAM0S,IAAImd,EAGxB,OAFAG,GAAUxkB,EAAOiE,qBAAqBugB,GAClCD,GAAgBA,EAAeC,GAC5BA,IAQfxkB,EAAO8X,IAAM,SAAUngB,GACnB,MAAKC,WAAUpC,QACf6uB,EAAO1sB,EACAqI,GAFuBqkB,GASlCrkB,EAAOilB,YAAc,SAAUttB,GAC3B,MAAKC,WAAUpC,QACf8uB,EAAe3sB,EACRqI,GAFuBskB,GAuBlCtkB,EAAOklB,cAAgB,SAAUvtB,GAC7B,MAAKC,WAAUpC,QACf+uB,EAAiB5sB,EACVqI,GAFuBukB,GAKlC/wB,EAAG6D,SAAS2I,EAAQ,UAAW,SAAUnJ,GACjCA,EAAEmuB,QACFnuB,EAAEmuB,OAAOzf,QAAQ,SAASnM,GACtB4G,EAAOhH,OAAOI,KAEtB4G,EAAOmlB,SAAStuB,KAGbmJ,GAGXxM,EAAG4xB,YAAc,SAAU7nB,EAAQmH,GAC/B,GAAI1E,GAASxM,EAAGkU,uBAchB,OAZA1H,GAAO2P,SAAW,WACd3P,EAAO6N,aAAapJ,UAAU,kBACrB5J,KAAKmF,EAAOnF,QAChBuO,QACAzL,OAAO,QACP+C,KAAK,QAAS,aACdA,KAAK,YAAa,SAAS7J,GACxB,MAAO,aAAamJ,EAAOjF,IAAIiF,EAAOoG,cAAcvP,IAAI,IAAImJ,EAAOhF,IAAIgF,EAAOK,gBAAgBxJ,IAAI,MAErG6J,KAAK,IAAK/H,GAAGmM,IAAIugB,WAGnBrlB,EAAOI,OAAO7C,EAAQmH,IAgCjClR,EAAG8xB,cAAgB,SAAU/nB,EAAQmH,GACjC,GAAI6gB,GAAa,iBACb3J,EAAgBjjB,GAAGE,OAAO,OAC1BmH,EAASxM,EAAGuM,aA2DhB,OAxDAC,GAAO8C,sBAAsB,UAM7B9C,EAAO5D,MAAQ,WACX,MAAO4D,GAAOnF,QAGlBmF,EAAOnF,KAAK,SAAUrG,GAClB,GAAIgxB,GAAShxB,EAAM4H,OAAS5H,EAAM4H,SAAW5H,EAAM0S,IAAI,GAAG,EAC1D,OAAOlH,GAAOK,gBAAgBmlB,KAGlCxlB,EAAOsF,mBAAmB,KAE1BtF,EAAOyF,SAAW,WACd,GAAIggB,GAAWzlB,EAAO5D,QAClBspB,EAAW1lB,EAAOyE,UAAU,IAAI8gB,EAmBpC,OAjBGG,GAAKhoB,UACJgoB,EAAOA,EAAK7qB,MAAM,IACbuO,QACAzL,OAAO,QACP+C,KAAK,QAAS6kB,IAEvBG,EAAK7vB,aACAE,SAASiK,EAAOsF,sBAChBqgB,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASltB,GAAGmtB,kBAAkBztB,KAAK0tB,WAAa,EAAGN,EAEvD,OADAptB,MAAK0tB,UAAYN,EACV,SAAUhO,GACbpf,KAAK2tB,YAAchmB,EAAOimB,eAAeJ,EAAOpO,OAIrDzX,GAGXA,EAAO6F,SAAW,WACd,MAAO7F,GAAOyF,YAQlBzF,EAAOimB,aAAe,SAAUtuB,GAC5B,MAAKC,WAAUpC,QACfomB,EAAgBjkB,EACTqI,GAFuB4b,GAK3B5b,EAAOI,OAAO7C,EAAQmH,IAIjClR,EAAG0yB,QAAU,SAAU3oB,EAAQmH,GAkB3B,QAASyhB,GAAKtvB,EAAEtB,EAAE+K,GACd,OAAQ/K,GAAK+K,EAAE/K,EAAE,IAAMsB,EAjB3B,GAAIuvB,GAEAC,EACAC,EAEAtmB,EAASxM,EAAGqY,WAAWrY,EAAGwT,WAAWxT,EAAGuM,eA4G5C,OA3GAC,GAAO8C,sBAAsB,UAC7B9C,EAAO2G,MAAM3G,EAAOwQ,iBAEpBxQ,EAAOumB,WAAa,aACpBvmB,EAAOwmB,aAAe,aACtBxmB,EAAOymB,aAAe,aAStBzmB,EAAO+c,KAAO,SAAUplB,GACpB,GAAIC,UAAUpC,OAEV,MADA8wB,GAAQ3uB,EACDqI,CAEX,IAAIsmB,EAAO,MAAOA,EAClB,IAAII,GAAY1mB,EAAOnF,OAAOqN,IAAIlI,EAAOK,gBAEzC,OADAqmB,GAAUtiB,KAAKzL,GAAGwkB,WACXxkB,GAAG4P,MAAM/R,UAAUC,OAAOiwB,EAAU1tB,OAAOmtB,KAGtDnmB,EAAO2mB,KAAO,SAAUhvB,GACpB,GAAIC,UAAUpC,OAEV,MADA6wB,GAAQ1uB,EACDqI,CAEX,IAAIqmB,EAAO,MAAOA,EAClB,IAAIO,GAAY5mB,EAAOnF,OAAOqN,IAAIlI,EAAOoG,cAEzC,OADAwgB,GAAUxiB,KAAKzL,GAAGwkB,WACXxkB,GAAG4P,MAAM/R,UAAUC,OAAOmwB,EAAU5tB,OAAOmtB,KAGtDnmB,EAAOyF,SAAW,WAQd,MAPAzF,GAAO+E,WAEPqhB,EAAapmB,EAAO8E,MACjBnH,OAAO,KACP+C,KAAK,QAAS,WACdA,KAAK,YAAa,aAAeV,EAAOsH,UAAUD,KAAO,IAAMrH,EAAOsH,UAAUJ,IAAM,KAElFlH,EAAO6F,YAGlB7F,EAAO6F,SAAW,WACd,GAAIkX,GAAO/c,EAAO+c,OACd4J,EAAO3mB,EAAO2mB,OACdE,EAAW9J,EAAKtmB,SAASjB,OACzBsxB,EAAWH,EAAKlwB,SAASjB,OACzBuxB,EAAWzwB,KAAKW,MAAM+I,EAAOwH,iBAAmBsf,GAChDE,EAAY1wB,KAAKW,MAAM+I,EAAOyH,kBAAoBof,EAEtDF,GAAKM,iBAAiB,EAAGjnB,EAAOwH,mBAChCuV,EAAKkK,iBAAiBjnB,EAAOyH,kBAAmB,GAGhD,IAAIyf,GAAQd,EAAW3hB,UAAU,eAAe5J,KAAKmF,EAAOnF,OAAQ,SAAShE,EAAEtB,GAC3E,MAAOyK,GAAOoG,cAAcvP,EAAEtB,GAAK,OAAOyK,EAAOK,gBAAgBxJ,EAAEtB,KAEnE4xB,EAASD,EAAM9d,QAAQzL,OAAO,KAC7B+C,KAAK,QAAS,YACnBymB,GAAOxpB,OAAO,QACT+C,KAAK,OAAQ,SACboG,GAAG,QAAS9G,EAAOumB,YACxBY,EAAOxpB,OAAO,SACTyH,KAAK,SAAUvO,GAAK,MAAOmJ,GAAO2G,QAAQ9P,KAE/CrD,EAAGqC,WAAWqxB,EAAMzpB,OAAO,QAASuC,EAAOsF,sBACtC5E,KAAK,QAAQ,YACbA,KAAK,IAAK,SAAS7J,EAAEtB,GAAK,MAAOoxB,GAAK3mB,EAAOoG,cAAcvP,EAAEtB,MAC7DmL,KAAK,IAAK,SAAS7J,EAAEtB,GAAK,MAAOwnB,GAAK/c,EAAOK,gBAAgBxJ,EAAEtB,MAC/DmL,KAAK,KAAM,IAAOqmB,GAClBrmB,KAAK,KAAM,IAAOsmB,GAClBtmB,KAAK,OAAQV,EAAO4Q,UACpBlQ,KAAK,QAASqmB,GACdrmB,KAAK,SAAUsmB,GAEpBE,EAAM5d,OAAOtE,QAEb,IAAIoiB,GAAQhB,EAAW3hB,UAAU,SAC7B2iB,GAAM1pB,UACN0pB,EAAQhB,EAAWzoB,OAAO,KAAK+C,KAAK,QAAS,cACjD0mB,EAAM3iB,UAAU,QAAQ5J,KAAK8rB,EAAKlwB,UAC7B2S,QAAQzL,OAAO,QACb+C,KAAK,IAAK,SAAS7J,GAAK,MAAO8vB,GAAK9vB,GAAKkwB,EAAS,IAClD5hB,MAAM,cAAe,UACrBzE,KAAK,IAAKV,EAAOyH,mBACjB/G,KAAK,KAAM,IACXoG,GAAG,QAAS9G,EAAOwmB,cACnBphB,KAAK,SAASvO,GAAK,MAAOA,IACjC,IAAIwwB,GAAQjB,EAAW3hB,UAAU,SAC7B4iB,GAAM3pB,UACN2pB,EAAQjB,EAAWzoB,OAAO,KAAK+C,KAAK,QAAS,cACjD2mB,EAAM5iB,UAAU,QAAQ5J,KAAKkiB,EAAKtmB,UAC7B2S,QAAQzL,OAAO,QACb+C,KAAK,IAAK,SAAS7J,GAAK,MAAOkmB,GAAKlmB,GAAKmwB,EAAU,IACnDtmB,KAAK,KAAM,GACXyE,MAAM,cAAe,OACrBzE,KAAK,IAAK,GACVA,KAAK,KAAM,IACXoG,GAAG,QAAS9G,EAAOymB,cACnBrhB,KAAK,SAASvO,GAAK,MAAOA,MAG9BmJ,EAAOI,OAAO7C,EAAQmH,IAIjC,WAgSA,QAAS4iB,GAAYzwB,GACnB,OAAQ,EAAGA,EAAErB,OAAS,GAGxB,QAAS+xB,GAAa1wB,GACpB,OACE8B,GAAG6uB,SAAS3wB,EAAG,KACf8B,GAAG6uB,SAAS3wB,EAAG,IACf8B,GAAG6uB,SAAS3wB,EAAG,MArSnB8B,GAAG8uB,IAAM,WAWP,QAASA,GAAIvnB,GACXA,EAAE0F,KAAK,SAAS/O,EAAGtB,GACjBsB,EAAIA,EAAEqR,IAAI9L,GAAOgI,KAAKzL,GAAGwkB,UACzB,IAAIjd,GAAIvH,GAAG8E,OAAOpF,MACdjB,EAAIP,EAAErB,OACN2H,EAAMtG,EAAE,GACRgG,EAAMhG,EAAEO,EAAI,GAGZswB,EAAe7wB,EAAE8wB,UAAYA,EAAU9wB,GAGvC+wB,EAAiBC,GAAYA,EAASxuB,KAAKhB,KAAMxB,EAAGtB,GACpDuyB,EAAcF,GAAkBA,EAAe1f,IAAI,SAAS3S,GAAK,MAAOsB,GAAEtB,KAI1EwyB,EAAiBH,EACfjvB,GAAGyP,MAAM,EAAGwf,EAAe,IAAIvW,OAAO1Y,GAAGyP,MAAMwf,EAAe,GAAK,EAAGxwB,IACtEuB,GAAGyP,MAAMhR,GAGX4wB,EAAKrvB,GAAG4P,MAAMmB,SACbjT,OAAOA,GAAUA,EAAO4C,KAAKhB,KAAMxB,EAAGtB,KAAO4H,EAAKN,IAClDuL,OAAOxH,EAAQ,IAGhB+iB,EAAKtrB,KAAK4vB,WAAatvB,GAAG4P,MAAMmB,SAC/BjT,QAAQ,EAAG8c,MACXnL,MAAM4f,EAAG5f,QAGd/P,MAAK4vB,UAAYD,CAQjB,IAAIE,GAAShoB,EAAEuE,UAAU,eACpB5J,KAAKitB,GAAeA,MAEzBI,GAAO9e,QAAQP,OAAO,OAAQ,QACzBnI,KAAK,QAAS,UACdA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAS7J,GAAK,MAAO8sB,GAAG9sB,EAAE,MACrC6J,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAS7J,GAAK,MAAO8sB,GAAG9sB,EAAE,MACrCsO,MAAM,UAAW,MACnBtP,aACEE,SAASA,GACToP,MAAM,UAAW,GACjBzE,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACrC6J,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MAE1CqxB,EAAOryB,aACFE,SAASA,GACToP,MAAM,UAAW,GACjBzE,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACrC6J,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MAE1CqxB,EAAO5e,OAAOzT,aACTE,SAASA,GACToP,MAAM,UAAW,MACjBzE,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACrC6J,KAAK,KAAM,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACrCmO,QAGL,IAAIyiB,GAAMvnB,EAAEuE,UAAU,YACjB5J,MAAM6sB,GAEXD,GAAIre,QAAQzL,OAAO,QACd+C,KAAK,QAAS,OACdA,KAAK,IAAK,GACVA,KAAK,IAAK,SAAS7J,GAAK,MAAO8sB,GAAG9sB,EAAE,MACpC6J,KAAK,QAASC,GACdD,KAAK,SAAU,SAAS7J,GAAK,MAAO8sB,GAAG9sB,EAAE,IAAM8sB,EAAG9sB,EAAE,MACtDhB,aACEE,SAASA,GACT2K,KAAK,IAAK,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACpC6J,KAAK,SAAU,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,IAAMmxB,EAAGnxB,EAAE,MAEzD4wB,EAAI5xB,aACCE,SAASA,GACT2K,KAAK,IAAK,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,MACpC6J,KAAK,SAAU,SAAS7J,GAAK,MAAOmxB,GAAGnxB,EAAE,IAAMmxB,EAAGnxB,EAAE,KAGzD,IAAIsxB,GAAajoB,EAAEuE,UAAU,eACxB5J,MAAM6sB,EAAa,IAExBS,GAAW/e,QAAQzL,OAAO,QACrB+C,KAAK,QAAS,UACdA,KAAK,KAAM,GACXA,KAAK,KAAMijB,GACXjjB,KAAK,KAAMC,GACXD,KAAK,KAAMijB,GACb9tB,aACEE,SAASA,GACT2K,KAAK,KAAMsnB,GACXtnB,KAAK,KAAMsnB,GAEhBG,EAAWtyB,aACNE,SAASA,GACT2K,KAAK,KAAMsnB,GACXtnB,KAAK,KAAMsnB,EAGhB,IAAII,GAAUloB,EAAEuE,UAAU,gBACrB5J,KAAKitB,MAEVM,GAAQhf,QAAQP,OAAO,OAAQ,gBAC1BnI,KAAK,QAAS,WACdA,KAAK,KAAM,GACXA,KAAK,KAAMijB,GACXjjB,KAAK,KAAMC,GACXD,KAAK,KAAMijB,GACXxe,MAAM,UAAW,MACnBtP,aACEE,SAASA,GACT2K,KAAK,KAAMsnB,GACXtnB,KAAK,KAAMsnB,GACX7iB,MAAM,UAAW,GAEtBijB,EAAQvyB,aACHE,SAASA,GACT2K,KAAK,KAAMsnB,GACXtnB,KAAK,KAAMsnB,GACX7iB,MAAM,UAAW,GAEtBijB,EAAQ9e,OAAOzT,aACVE,SAASA,GACT2K,KAAK,KAAMsnB,GACXtnB,KAAK,KAAMsnB,GACX7iB,MAAM,UAAW,MACjBH,QAGL,IAAIqjB,GAAUnoB,EAAEuE,UAAU,kBACrB5J,KAAKktB,EAAgBO,OAE1BD,GAAQjf,QAAQP,OAAO,SAAU,QAC5BnI,KAAK,QAAS,WACdA,KAAK,IAAK,GACVA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAASnL,GAAK,MAAOouB,GAAG9sB,EAAEtB,MACrC4P,MAAM,UAAW,MACnBtP,aACEE,SAASA,GACT2K,KAAK,KAAM,SAASnL,GAAK,MAAOyyB,GAAGnxB,EAAEtB,MACrC4P,MAAM,UAAW,GAEtBkjB,EAAQxyB,aACHE,SAASA,GACT2K,KAAK,KAAM,SAASnL,GAAK,MAAOyyB,GAAGnxB,EAAEtB,MACrC4P,MAAM,UAAW,GAEtBkjB,EAAQ/e,OAAOzT,aACVE,SAASA,GACT2K,KAAK,KAAM,SAASnL,GAAK,MAAOyyB,GAAGnxB,EAAEtB,MACrC4P,MAAM,UAAW,MACjBH,QAGL,IAAInM,GAAS0vB,GAAcP,EAAGO,WAAW,GAGrCC,EAAUtoB,EAAEuE,UAAU,YACrB5J,KAAK6sB,EAEVc,GAAQpf,QAAQzL,OAAO,QAClB+C,KAAK,QAAS,OACdA,KAAK,KAAM,QACXA,KAAK,KAAM,SAAS7J,EAAGtB,GAAK,MAAW,GAAJA,EAAQ,EAAI,KAC/CmL,KAAK,IAAK,SAAS7J,EAAGtB,GAAK,MAAW,GAAJA,EAAQoL,EAAQ,IAClDD,KAAK,IAAKijB,GACVjjB,KAAK,cAAe,SAAS7J,EAAGtB,GAAK,MAAW,GAAJA,EAAQ,QAAU,QAC9D6P,KAAKvM,GACPhD,aACEE,SAASA,GACT2K,KAAK,IAAKsnB,GAEfQ,EAAQ3yB,aACHE,SAASA,GACTqP,KAAKvM,GACL6H,KAAK,IAAKsnB,EAKf,IAAIS,GAAcvoB,EAAEuE,UAAU,gBACzB5J,KAAKitB,MAEVW,GAAYrf,QAAQzL,OAAO,QACtB+C,KAAK,QAAS,WACdA,KAAK,KAAM,QACXA,KAAK,KAAM,GACXA,KAAK,IAAKC,GACVD,KAAK,IAAKijB,GACVve,KAAKvM,GACLsM,MAAM,UAAW,MACnBtP,aACEE,SAASA,GACT2K,KAAK,IAAKsnB,GACV7iB,MAAM,UAAW,GAEtBsjB,EAAY5yB,aACPE,SAASA,GACTqP,KAAKvM,GACL6H,KAAK,IAAKsnB,GACV7iB,MAAM,UAAW,GAEtBsjB,EAAYnf,OAAOzT,aACdE,SAASA,GACT2K,KAAK,IAAKsnB,GACV7iB,MAAM,UAAW,MACjBH,WAEPrM,GAAG+vB,MAAMC,QAtOX,GAAIhoB,GAAQ,EACRC,EAAS,EACT7K,EAAW,EACXU,EAAS,KACT2F,EAAQksB,OACRT,EAAWP,EACXK,EAAYJ,EACZgB,EAAa,IAkRjB,OAhDAd,GAAI9mB,MAAQ,SAAS5F,GACnB,MAAKnD,WAAUpC,QACfmL,EAAQ5F,EACD0sB,GAFuB9mB,GAKhC8mB,EAAI7mB,OAAS,SAAS7F,GACpB,MAAKnD,WAAUpC,QACfoL,EAAS7F,EACF0sB,GAFuB7mB,GAKhC6mB,EAAIc,WAAa,SAASxtB,GACxB,MAAKnD,WAAUpC,QACf+yB,EAAaxtB,EACN0sB,GAFuBc,GAKhCd,EAAI1xB,SAAW,SAASgF,GACtB,MAAKnD,WAAUpC,QACfO,EAAWgF,EACJ0sB,GAFuB1xB,GAKhC0xB,EAAIhxB,OAAS,SAASsE,GACpB,MAAKnD,WAAUpC,QACfiB,EAAc,MAALsE,EAAYA,EAAIpC,GAAGgL,QAAQ5I,GAC7B0sB,GAFuBhxB,GAKhCgxB,EAAIrrB,MAAQ,SAASrB,GACnB,MAAKnD,WAAUpC,QACf4G,EAAQrB,EACD0sB,GAFuBrrB,GAKhCqrB,EAAII,SAAW,SAAS9sB,GACtB,MAAKnD,WAAUpC,QACfqyB,EAAW9sB,EACJ0sB,GAFuBI,GAKhCJ,EAAIE,UAAY,SAAS5sB,GACvB,MAAKnD,WAAUpC,QACfmyB,EAAY5sB,EACL0sB,GAFuBE,GAKzBF,MAiBTj0B,EAAGo1B,QAAU,SAAUrrB,EAAQmH,GAa3B,QAASmkB,KACL,MAAO7oB,GAAOxL,QAAQyI,MAAMiL,IAAI,SAAU4gB,GAEtC,MADAA,GAAG5gB,IAAM,WAAc,MAAOlI,GAAOK,gBAAgByoB,IAC9CA,IAyCf,QAASC,GAAqBxpB,GAC1B,MAAO,UAAU1I,GAMb,IALA,GAAImyB,GAAKnyB,EAAE8wB,UAAU,GACjBsB,EAAKpyB,EAAE8wB,UAAU,GACjBuB,GAAOD,EAAKD,GAAMzpB,EAClBhK,EAAI,GACJoH,EAAI9F,EAAErB,OACHqB,IAAItB,GAAKyzB,EAAKE,IACrB,KAAOryB,IAAI8F,GAAKssB,EAAKC,IACrB,OAAQ3zB,EAAGoH,IAjEnB,GAOIwsB,GAPAnpB,EAASxM,EAAGkU,wBAEZ0hB,EAAsB,IACtBC,EAAgBN,EAChBO,EAAYD,EAAcD,GAE1BG,EAAO5wB,GAAG8uB,KA+Dd,OA3DAznB,GAAO6O,aAAa,IASpB7O,EAAO2P,SAAW,WAEdwZ,EAAY,GAAMnpB,EAAOwH,kBAAoBxH,EAAOqN,aAAe,GAEnEkc,EAAK1B,SAASyB,GACT3oB,MAAMwoB,GACNvoB,OAAOZ,EAAOyH,mBACdhR,OAAOuJ,EAAOhF,IAAIvE,SAGvB,IAAI+yB,GAAavwB,MAAMuG,UAAU2E,MAAM9K,KAAK2G,EAAOjF,IAAItE,SAAU,EACjEuJ,GAAO6N,aAAapJ,UAAU,SACzB5J,KAAKguB,KACPzf,QAAQzL,OAAO,KACb+C,KAAK,QAAS,OACdA,KAAK,YAAa,SAAU7J,EAAGtB,GAAK,MAAO,cAAgByK,EAAOjF,IAAIxF,GAAK4zB,EAAY,GAAK,QAC5F9vB,KAAKkwB,GACVvpB,EAAOjF,IAAItE,OAAO+yB,IAGtBxpB,EAAO2J,SAAW,WACd,GAAIxM,GAAMxE,GAAGwE,IAAI6C,EAAOxL,QAAQyI,MAAO,SAAUrI,GAC7C,MAAO+D,IAAGwE,IAAI6C,EAAOK,gBAAgBzL,KAGzC,OADAuI,GAAM3J,EAAGuD,MAAMoD,SAASgD,EAAK6C,EAAO6O,iBAIxC7O,EAAO4J,SAAW,WACd,GAAI/M,GAAMlE,GAAGkE,IAAImD,EAAOxL,QAAQyI,MAAO,SAAUrI,GAC7C,MAAO+D,IAAGkE,IAAImD,EAAOK,gBAAgBzL,KAGzC,OADAiI,GAAMrJ,EAAGuD,MAAM2C,IAAImD,EAAKmD,EAAO6O,iBAkB5B7O,EAAOI,OAAO7C,EAAQmH,IAG1BlR"} \ No newline at end of file diff --git a/src/base-chart.js b/src/base-chart.js index aaaeb6c42..74604905b 100644 --- a/src/base-chart.js +++ b/src/base-chart.js @@ -5,7 +5,7 @@ Every function on base chart are also inherited available on all concrete chart **/ dc.baseChart = function (_chart) { - _chart.__dc_flag__ = true; + _chart.__dc_flag__ = dc.utils.uniqueId(); var _dimension; var _group; @@ -271,7 +271,7 @@ dc.baseChart = function (_chart) { var a = _chart.anchor(); if (a && a.id) return a.id; if (a && a.replace) return a.replace('#',''); - return ""+dc.utils.uniqueId(); + return "" + _chart.chartID(); }; /** @@ -789,5 +789,9 @@ dc.baseChart = function (_chart) { return _chart; }; + _chart.chartID = function () { + return _chart.__dc_flag__; + }; + return _chart; }; diff --git a/src/core.js b/src/core.js index b51cc7df3..6221cb22e 100644 --- a/src/core.js +++ b/src/core.js @@ -234,5 +234,5 @@ dc.renderlet = function(_){ }; dc.instanceOfChart = function (o) { - return o instanceof Object && o.__dc_flag__; + return o instanceof Object && o.__dc_flag__ && true; }; diff --git a/test/base-chart-test.js b/test/base-chart-test.js index 3cff49d82..bfd45d20e 100644 --- a/test/base-chart-test.js +++ b/test/base-chart-test.js @@ -125,7 +125,7 @@ suite.addBatch({ assert.fail("Exception should have been triggered"); } catch (e) { assert.isTrue(e instanceof dc.errors.InvalidStateException); - assert.match(e.toString(), /Mandatory attribute chart.dimension is missing on chart\[#\d\]/); + assert.match(e.toString(), /Mandatory attribute chart.dimension is missing on chart\[#\d+\]/); } } }, @@ -149,7 +149,7 @@ suite.addBatch({ assert.fail("Exception should have been triggered"); } catch (e) { assert.isTrue(e instanceof dc.errors.InvalidStateException); - assert.match(e.toString(), /Mandatory attribute chart.group is missing on chart\[#\d\]/); + assert.match(e.toString(), /Mandatory attribute chart.group is missing on chart\[#\d+\]/); } } }, diff --git a/test/coordinate-grid-chart-test.js b/test/coordinate-grid-chart-test.js index 00b2d1fb2..e8421d13b 100644 --- a/test/coordinate-grid-chart-test.js +++ b/test/coordinate-grid-chart-test.js @@ -19,7 +19,7 @@ suite.addBatch({ assert.fail("Exception should have been triggered"); }catch(e){ assert.isTrue(e instanceof dc.errors.InvalidStateException); - assert.match(e.toString(), /Mandatory attribute chart.x is missing on chart\[#\d\]/); + assert.match(e.toString(), /Mandatory attribute chart.x is missing on chart\[#\d+\]/); } } }, diff --git a/web/js/dc.js b/web/js/dc.js index c7f9817ef..358b630ce 100644 --- a/web/js/dc.js +++ b/web/js/dc.js @@ -255,7 +255,7 @@ dc.renderlet = function(_){ }; dc.instanceOfChart = function (o) { - return o instanceof Object && o.__dc_flag__; + return o instanceof Object && o.__dc_flag__ && true; }; dc.errors = {}; @@ -691,7 +691,7 @@ Every function on base chart are also inherited available on all concrete chart **/ dc.baseChart = function (_chart) { - _chart.__dc_flag__ = true; + _chart.__dc_flag__ = dc.utils.uniqueId(); var _dimension; var _group; @@ -957,7 +957,7 @@ dc.baseChart = function (_chart) { var a = _chart.anchor(); if (a && a.id) return a.id; if (a && a.replace) return a.replace('#',''); - return ""+dc.utils.uniqueId(); + return "" + _chart.chartID(); }; /** @@ -1475,6 +1475,10 @@ dc.baseChart = function (_chart) { return _chart; }; + _chart.chartID = function () { + return _chart.__dc_flag__; + }; + return _chart; };