diff --git a/api/ecobee_runtime_thermostat.php b/api/ecobee_runtime_thermostat.php index fec7c73..0ac99f9 100644 --- a/api/ecobee_runtime_thermostat.php +++ b/api/ecobee_runtime_thermostat.php @@ -362,7 +362,9 @@ class ecobee_runtime_thermostat extends cora\crud { // subtract all higher tier heat/cool modes from the lower ones to avoid // double-counting. $select[] = 'count(*) `count`'; - $select[] = 'cast(avg(`outdoor_temperature`) as decimal(4,1)) `outdoor_temperature`'; + $select[] = 'cast(avg(`outdoor_temperature`) as decimal(4,1)) `average_outdoor_temperature`'; + $select[] = 'cast(min(`outdoor_temperature`) as decimal(4,1)) `min_outdoor_temperature`'; + $select[] = 'cast(max(`outdoor_temperature`) as decimal(4,1)) `max_outdoor_temperature`'; $select[] = 'cast(avg(`zone_average_temperature`) as decimal(4,1)) `zone_average_temperature`'; $select[] = 'cast(avg(`zone_heat_temperature`) as decimal(4,1)) `zone_heat_temperature`'; $select[] = 'cast(avg(`zone_cool_temperature`) as decimal(4,1)) `zone_cool_temperature`'; diff --git a/js/beestat/style.js b/js/beestat/style.js index eb982fb..f814516 100644 --- a/js/beestat/style.js +++ b/js/beestat/style.js @@ -177,6 +177,14 @@ beestat.series = { 'name': 'Outdoor Temp', 'color': beestat.style.color.gray.light }, + 'average_outdoor_temperature': { + 'name': 'Average Outdoor Temp', + 'color': beestat.style.color.gray.light + }, + 'min_max_outdoor_temperature': { + 'name': 'Min/Max Outdoor Temp', + 'color': '#000' + }, 'setpoint_heat': { 'name': 'Setpoint', 'color': beestat.style.color.orange.light diff --git a/js/component/card/aggregate_runtime.js b/js/component/card/aggregate_runtime.js index b038d97..59ee90e 100644 --- a/js/component/card/aggregate_runtime.js +++ b/js/component/card/aggregate_runtime.js @@ -272,15 +272,33 @@ beestat.component.card.aggregate_runtime.prototype.decorate_contents_ = function switch (series_code) { case 'x': + case 'min_max_outdoor_temperature': continue; break; - case 'outdoor_temperature': + case 'average_outdoor_temperature': value = beestat.temperature({ 'temperature': value, 'convert': false, 'units': true, 'round': 0 }); + + value += ' ('; + value += beestat.temperature({ + 'temperature': series.min_max_outdoor_temperature.data[this.x].min, + 'convert': false, + 'units': true, + 'round': 0 + }); + value += ' 🢒 '; + value += beestat.temperature({ + 'temperature': series.min_max_outdoor_temperature.data[this.x].max, + 'convert': false, + 'units': true, + 'round': 0 + }); + value += ')'; + break; default: value = beestat.time(value, 'hours'); @@ -320,9 +338,9 @@ beestat.component.card.aggregate_runtime.prototype.decorate_contents_ = function }); this.chart_.options.series.push({ - 'name': beestat.series.outdoor_temperature.name, - 'data': series.outdoor_temperature.chart_data, - 'color': beestat.series.outdoor_temperature.color, + 'name': beestat.series.average_outdoor_temperature.name, + 'data': series.average_outdoor_temperature.chart_data, + 'color': beestat.series.average_outdoor_temperature.color, 'type': 'spline', 'yAxis': 1, 'dashStyle': 'ShortDash', @@ -330,6 +348,17 @@ beestat.component.card.aggregate_runtime.prototype.decorate_contents_ = function 'zones': beestat.component.chart.get_outdoor_temperature_zones() }); + this.chart_.options.series.push({ + 'name': beestat.series.min_max_outdoor_temperature.name, + 'data': series.min_max_outdoor_temperature.chart_data, + 'color': beestat.series.min_max_outdoor_temperature.color, + 'type': 'areasplinerange', + 'yAxis': 1, + 'fillOpacity': 0.2, + 'lineWidth': 0, + 'visible': false + }); + this.chart_.render(parent); /* @@ -369,7 +398,12 @@ beestat.component.card.aggregate_runtime.prototype.get_series_ = function() { 'chart_data': [], 'data': {} }, - 'outdoor_temperature': { + 'average_outdoor_temperature': { + 'enabled': true, + 'chart_data': [], + 'data': {} + }, + 'min_max_outdoor_temperature': { 'enabled': true, 'chart_data': [], 'data': {} @@ -477,7 +511,6 @@ beestat.component.card.aggregate_runtime.prototype.get_series_ = function() { beestat.setting('aggregate_runtime_gap_fill') === true && i < (beestat.cache.aggregate_runtime.length - 1) ) { - var a = value; value = value * adjustment_factor / aggregate.count; @@ -498,15 +531,33 @@ beestat.component.card.aggregate_runtime.prototype.get_series_ = function() { series[series_code].data[x] = value; }); - // Outdoor temperature. - var outdoor_temperature_value = beestat.temperature({ - 'temperature': aggregate.outdoor_temperature + // Average outdoor temperature. + var average_outdoor_temperature_value = beestat.temperature({ + 'temperature': aggregate.average_outdoor_temperature }); - series.outdoor_temperature.data[x] = outdoor_temperature_value; - series.outdoor_temperature.chart_data.push([ + series.average_outdoor_temperature.data[x] = average_outdoor_temperature_value; + series.average_outdoor_temperature.chart_data.push([ x, - outdoor_temperature_value + average_outdoor_temperature_value + ]); + + // Min/max outdoor temperature. + var min_outdoor_temperature_value = beestat.temperature({ + 'temperature': aggregate.min_outdoor_temperature + }); + var max_outdoor_temperature_value = beestat.temperature({ + 'temperature': aggregate.max_outdoor_temperature + }); + + series.min_max_outdoor_temperature.data[x] = { + 'min': min_outdoor_temperature_value, + 'max': max_outdoor_temperature_value + }; + series.min_max_outdoor_temperature.chart_data.push([ + x, + min_outdoor_temperature_value, + max_outdoor_temperature_value ]); }); diff --git a/js/component/chart.js b/js/component/chart.js index f050c71..f57a652 100644 --- a/js/component/chart.js +++ b/js/component/chart.js @@ -101,6 +101,9 @@ beestat.component.chart = function() { 'states': { 'hover': { 'enabled': false + }, + 'inactive': { + 'opacity': 1 } } }, diff --git a/js/lib/highcharts/highcharts.js b/js/lib/highcharts/highcharts.js index c711dc5..6a40b2e 100644 --- a/js/lib/highcharts/highcharts.js +++ b/js/lib/highcharts/highcharts.js @@ -1,428 +1,482 @@ /* - Highcharts JS vv7.0.3 custom build (2019-02-27) + Highcharts JS vv7.1.2 custom build (2019-07-17) (c) 2009-2016 Torstein Honsi License: www.highcharts.com/license */ -(function(Q,L){"object"===typeof module&&module.exports?(L["default"]=L,module.exports=Q.document?L(Q):L):"function"===typeof define&&define.amd?define(function(){return L(Q)}):Q.Highcharts=L(Q)})("undefined"!==typeof window?window:this,function(Q){var L=function(){var a="undefined"===typeof Q?"undefined"!==typeof window?window:{}:Q,E=a.document,I=a.navigator&&a.navigator.userAgent||"",C=E&&E.createElementNS&&!!E.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,e=/(edge|msie|trident)/i.test(I)&& -!a.opera,g=-1!==I.indexOf("Firefox"),n=-1!==I.indexOf("Chrome"),t=g&&4>parseInt(I.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts",version:"v7.0.3 custom build",deg2rad:2*Math.PI/360,doc:E,hasBidiBug:t,hasTouch:E&&void 0!==E.documentElement.ontouchstart,isMS:e,isWebKit:-1!==I.indexOf("AppleWebKit"),isFirefox:g,isChrome:n,isSafari:!n&&-1!==I.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(I),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0, -seriesTypes:{},symbolSizes:{},svg:C,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var E=a.charts,I=a.doc,C=a.win;a.error=function(e,g,n){var t=a.isNumber(e)?"Highcharts error #"+e+": www.highcharts.com/errors/"+e:e;n&&a.fireEvent(n,"displayError",{code:e});if(g)throw Error(t);C.console&&console.log(t)};a.Fx=function(a,g,n){this.options=g;this.elem=a;this.prop=n};a.Fx.prototype={dSetter:function(){var a=this.paths[0], -g=this.paths[1],n=[],t=this.now,u=a.length;if(1===t)n=this.toD;else if(u===g.length&&1>t)for(;u--;){var w=parseFloat(a[u]);n[u]=isNaN(w)?g[u]:t*parseFloat(g[u]-w)+w}else n=g;this.elem.attr("d",n,null,!0)},update:function(){var a=this.elem,g=this.prop,n=this.now,t=this.options.step;if(this[g+"Setter"])this[g+"Setter"]();else a.attr?a.element&&a.attr(g,n,null,!0):a.style[g]=n+this.unit;t&&t.call(a,n,this)},run:function(e,g,n){var t=this,u=t.options,w=function(a){return w.stopped?!1:t.step(a)},d=C.requestAnimationFrame|| -function(a){setTimeout(a,13)},b=function(){for(var c=0;c=w+this.startTime){this.now=this.end;this.pos=1;this.update();var b=d[this.prop]=!0;a.objectEach(d,function(a){!0!==a&&(b=!1)});b&&u&&u.call(t);e=!1}else this.pos=n.easing((g-this.startTime)/w),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0;return e},initPath:function(e,g,n){function t(a){for(r=a.length;r--;){var c="M"===a[r]||"L"===a[r];var h=/[a-zA-Z]/.test(a[r+3]);c&&h&&a.splice(r+1,0,a[r+1],a[r+ -2],a[r+1],a[r+2])}}function u(a,c){for(;a.lengtha&&-Infinity=n&&(g=[1/n])));for(t=0;t=e||!u&&d<=(g[t]+(g[t+1]||g[t]))/2);t++);return w=a.correctFloat(w* -n,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,g){var e=a.length,t,u;for(u=0;un&&(n=a[e]);return n};a.destroyObjectProperties=function(e,g){a.objectEach(e,function(a,t){a&&a!==g&&a.destroy&&a.destroy();delete e[t]})};a.discardElement= -function(e){var g=a.garbageBin;g||(g=a.createElement("div"));e&&g.appendChild(e);g.innerHTML=""};a.correctFloat=function(a,g){return parseFloat(a.toPrecision(g||14))};a.setAnimation=function(e,g){g.renderer.globalAnimation=a.pick(e,g.options.chart.animation,!0)};a.animObject=function(e){return a.isObject(e)?a.merge(e):{duration:e?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(e,g,n,t){e=+e||0;g=+g;var u= -a.defaultOptions.lang,w=(e.toString().split(".")[1]||"").split("e")[0].length,d=e.toString().split("e");if(-1===g)g=Math.min(w,20);else if(!a.isNumber(g))g=2;else if(g&&d[1]&&0>d[1]){var b=g+ +d[1];0<=b?(d[0]=(+d[0]).toExponential(b).split("e")[0],g=b):(d[0]=d[0].split(".")[0]||0,e=20>g?(d[0]*Math.pow(10,d[1])).toFixed(g):0,d[1]=0)}var c=(Math.abs(d[1]?d[0]:e)+Math.pow(10,-Math.max(g,w)-1)).toFixed(g);w=String(a.pInt(c));b=3e?"-":"")+(b?w.substr(0,b)+t:"");e+=w.substr(b).replace(/(\d{3})(?=\d)/g,"$1"+t);g&&(e+=n+c.slice(-g));d[1]&&0!==+e&&(e+="e"+d[1]);return e};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(e,g,n){if("width"===g)return Math.max(0,Math.min(e.offsetWidth,e.scrollWidth,e.getBoundingClientRect&&"none"===a.getStyle(e,"transform",!1)?Math.floor(e.getBoundingClientRect().width):Infinity)-a.getStyle(e,"padding-left")-a.getStyle(e,"padding-right"));if("height"===g)return Math.max(0, -Math.min(e.offsetHeight,e.scrollHeight)-a.getStyle(e,"padding-top")-a.getStyle(e,"padding-bottom"));C.getComputedStyle||a.error(27,!0);if(e=C.getComputedStyle(e,void 0))e=e.getPropertyValue(g),a.pick(n,"opacity"!==g)&&(e=a.pInt(e));return e};a.inArray=function(a,g,n){return g.indexOf(a,n)};a.find=Array.prototype.find?function(a,g){return a.find(g)}:function(a,g){var e,t=a.length;for(e=0;e>16,(e&65280)>>8,e&255,1]:4===t&&(g=[(e&3840)>>4|(e&3840)>>8,(e&240)>>4|e&240,(e&15)<<4|e&15,1])}if(!g)for(n=this.parsers.length;n--&&!g;){var u= -this.parsers[n];(t=u.regex.exec(e))&&(g=u.parse(t))}}this.rgba=g||[]},get:function(a){var e=this.input,n=this.rgba;if(this.stops){var t=I(e);t.stops=[].concat(t.stops);this.stops.forEach(function(e,g){t.stops[g]=[t.stops[g][0],e.get(a)]})}else t=n&&E(n[0])?"rgb"===a||!a&&1===n[3]?"rgb("+n[0]+","+n[1]+","+n[2]+")":"a"===a?n[3]:"rgba("+n.join(",")+")":e;return t},brighten:function(a){var e,n=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(a)});else if(E(a)&&0!==a)for(e=0;3>e;e++)n[e]+= -C(255*a),0>n[e]&&(n[e]=0),255c?"AM":"PM",P:12>c?"am":"pm",S:H(b.getSeconds()),L:H(Math.floor(g%1E3),3)},a.dateFormats);a.objectEach(b,function(a,c){for(;-1!==e.indexOf("%"+c);)e=e.replace("%"+c,"function"===typeof a?a.call(d,g):a)});return n?e.substr(0,1).toUpperCase()+e.substr(1):e},resolveDTLFormat:function(e){return a.isObject(e,!0)?e:(e=a.splat(e), -{main:e[0],from:e[1],to:e[2]})},getTimeTicks:function(a,n,w,d){var b=this,c=[],m={};var x=new b.Date(n);var r=a.unitRange,p=a.count||1,q;d=e(d,1);if(E(n)){b.set("Milliseconds",x,r>=g.second?0:p*Math.floor(b.get("Milliseconds",x)/p));r>=g.second&&b.set("Seconds",x,r>=g.minute?0:p*Math.floor(b.get("Seconds",x)/p));r>=g.minute&&b.set("Minutes",x,r>=g.hour?0:p*Math.floor(b.get("Minutes",x)/p));r>=g.hour&&b.set("Hours",x,r>=g.day?0:p*Math.floor(b.get("Hours",x)/p));r>=g.day&&b.set("Date",x,r>=g.month? -1:Math.max(1,p*Math.floor(b.get("Date",x)/p)));if(r>=g.month){b.set("Month",x,r>=g.year?0:p*Math.floor(b.get("Month",x)/p));var D=b.get("FullYear",x)}r>=g.year&&b.set("FullYear",x,D-D%p);r===g.week&&(D=b.get("Day",x),b.set("Date",x,b.get("Date",x)-D+d+(D4*g.month||b.getTimezoneOffset(n)!==b.getTimezoneOffset(w));n=x.getTime();for(x=1;nc.length&&c.forEach(function(a){0===a%18E5&&"000000000"===b.dateFormat("%H%M%S%L",a)&&(m[a]="day")})}c.info=I(a,{higherRanks:m,totalRange:r*p});return c}}})(L);(function(a){var E=a.color,I=a.merge;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle", -"diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions, -chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center", -alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}}, -loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'{point.key}
', -pointFormat:'\u25cf {series.name}: {point.y}
',backgroundColor:E("#f7f7f7").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.setOptions=function(C){a.defaultOptions= -I(!0,a.defaultOptions,C);a.time.update(I(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(I(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(C,e,g){return a.time.dateFormat(C,e,g)}})(L);(function(a){var E=a.addEvent,I=a.css,C=a.discardElement,e=a.defined,g=a.fireEvent,n=a.isFirefox,t=a.marginNames,u=a.merge,w=a.pick,d=a.setAnimation,b= -a.stableSort,c=a.win,m=a.wrap;a.Legend=function(a,c){this.init(a,c)};a.Legend.prototype={init:function(a,c){this.chart=a;this.setOptions(c);c.enabled&&(this.render(),E(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=E(this.chart,"render",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())},setOptions:function(a){var c=w(a.padding,8);this.options=a;this.chart.styledMode||(this.itemStyle= -a.itemStyle,this.itemHiddenStyle=u(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.padding=c;this.initialItemY=c-5;this.symbolWidth=w(a.symbolWidth,16);this.pages=[];this.proximate="proximate"===a.layout&&!this.chart.inverted},update:function(a,c){var b=this.chart;this.setOptions(u(!0,this.options,a));this.destroy();b.isDirtyLegend=b.isDirtyBox=!0;w(c,!0)&&b.redraw();g(this,"afterUpdate")},colorizeItem:function(a,c){a.legendGroup[c?"removeClass":"addClass"]("highcharts-legend-item-hidden"); -if(!this.chart.styledMode){var b=this.options,x=a.legendItem,r=a.legendLine,m=a.legendSymbol,d=this.itemHiddenStyle.color;b=c?b.itemStyle.color:d;var e=c?a.color||d:d,k=a.options&&a.options.marker,h={fill:e};x&&x.css({fill:b,color:b});r&&r.attr({stroke:e});m&&(k&&m.isMarker&&(h=a.pointAttribs(),c||(h.stroke=h.fill=d)),m.attr(h))}g(this,"afterColorizeItem",{item:a,visible:c})},positionItems:function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()},positionItem:function(a){var c= -this.options,b=c.symbolPadding;c=!c.rtl;var x=a._legendItemPos,d=x[0];x=x[1];var m=a.checkbox;if((a=a.legendGroup)&&a.element)a[e(a.translateY)?"animate":"attr"]({translateX:c?d:this.legendWidth-d-2*b-4,translateY:x});m&&(m.x=d,m.y=x)},destroyItem:function(a){var c=a.checkbox;["legendItem","legendLine","legendSymbol","legendGroup"].forEach(function(c){a[c]&&(a[c]=a[c].destroy())});c&&C(a.checkbox)},destroy:function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(c){["legendItem", -"legendGroup"].forEach(a,c)});"clipRect up down pager nav box title group".split(" ").forEach(a,this);this.display=null},positionCheckboxes:function(){var a=this.group&&this.group.alignAttr,c=this.clipHeight||this.legendHeight,b=this.titleHeight;if(a){var q=a.translateY;this.allItems.forEach(function(p){var x=p.checkbox;if(x){var r=q+b+x.y+(this.scrollOffset||0)+3;I(x,{left:a.translateX+p.checkboxOffset+x.x-20+"px",top:r+"px",display:this.proximate||r>q-6&&rk?this.maxItemWidth:a.itemWidth;q&&this.itemX-b+c>k&&(this.itemX=b,this.itemY+=m+this.lastLineHeight+d,this.lastLineHeight=0);this.lastItemY=m+this.itemY+d;this.lastLineHeight=Math.max(x,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];q?this.itemX+=c:(this.itemY+= -m+x+d,this.lastLineHeight=x);this.offsetWidth=this.widthOption||Math.max((q?this.itemX-b-(a.checkbox?0:e):c)+b,this.offsetWidth)},getAllItems:function(){var a=[];this.chart.series.forEach(function(c){var b=c&&c.options;c&&w(b.showInLegend,e(b.linkedTo)?!1:void 0,!0)&&(a=a.concat(c.legendItems||("point"===b.legendType?c.data:c)))});g(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+ -a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,c){var b=this.chart,q=this.options,d=this.getAlignment(),m=void 0!==b.options.title.margin?b.titleOffset+b.options.title.margin:0;d&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(p,x){p.test(d)&&!e(a[x])&&(b[t[x]]=Math.max(b[t[x]],b.legend[(x+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][x]*q[x%2?"x":"y"]+w(q.margin,12)+c[x]+(0===x&&(0===b.titleOffset?0:m))))})},proximatePositions:function(){var c= -this.chart,b=[],p="left"===this.options.align;this.allItems.forEach(function(q){var d=p;if(q.xAxis&&q.points){q.xAxis.options.reversed&&(d=!d);d=a.find(d?q.points:q.points.slice(0).reverse(),function(c){return a.isNumber(c.plotY)});var m=q.legendGroup.getBBox().height;b.push({target:q.visible?(d?d.plotY:q.xAxis.height)-.3*m:c.plotHeight,size:m,item:q})}},this);a.distribute(b,c.plotHeight);b.forEach(function(a){a.item._legendItemPos[1]=c.plotTop-c.spacing[0]+a.pos})},render:function(){var c=this.chart, -d=c.renderer,p=this.group,m,e=this.box,y=this.options,n=this.padding;this.itemX=n;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=a.relativeLength(y.width,c.spacingBox.width-n);var z=c.spacingBox.width-2*n-y.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(z/=2);this.maxLegendWidth=this.widthOption||z;p||(this.group=p=d.g("legend").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(p),this.scrollGroup=d.g().add(this.contentGroup));this.renderTitle(); -z=this.getAllItems();b(z,function(a,c){return(a.options&&a.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});y.reversed&&z.reverse();this.allItems=z;this.display=m=!!z.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;z.forEach(this.renderItem,this);z.forEach(this.layoutItem,this);z=(this.widthOption||this.offsetWidth)+n;var k=this.lastItemY+this.lastLineHeight+this.titleHeight;k=this.handleOverflow(k);k+=n;e||(this.box=e=d.rect().addClass("highcharts-legend-box").attr({r:y.borderRadius}).add(p), -e.isNew=!0);c.styledMode||e.attr({stroke:y.borderColor,"stroke-width":y.borderWidth||0,fill:y.backgroundColor||"none"}).shadow(y.shadow);0e&&!1!==v.enabled?(this.clipHeight=k=Math.max(e-20-this.titleHeight-x,0),this.currentPage=w(this.currentPage,1),this.fullHeight=a,A.forEach(function(a,f){var h=a._legendItemPos[1],G=Math.round(a.legendItem.getBBox().height),c=l.length;if(!c||h-l[c-1]>k&&(J||h)!== -l[c-1])l.push(J||h),c++;a.pageIx=c-1;J&&(A[f-1].pageIx=c-1);f===A.length-1&&h+G-l[c-1]>k&&h!==J&&(l.push(h),a.pageIx=c);h!==J&&(J=h)}),h||(h=c.clipRect=d.clipRect(0,x,9999,0),c.contentGroup.clip(h)),N(k),f||(this.nav=f=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,M,M).on("click",function(){c.scroll(-1,F)}).add(f),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation"),b.styledMode||this.pager.css(v.style),this.pager.add(f),this.down=d.symbol("triangle-down", -0,0,M,M).on("click",function(){c.scroll(1,F)}).add(f)),c.scroll(0),a=e):f&&(N(),this.nav=f.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,c){var b=this.pages,m=b.length,e=this.currentPage+a,x=this.clipHeight,r=this.options.navigation,g=this.pager,k=this.padding;e>m&&(e=m);0q&&(d=typeof c[0],"string"===d?b.name=c[0]:"number"===d&&(b.x=c[0]),g++);y=e.value;)e=b[++d];this.nonZonedColor||(this.nonZonedColor=this.color);this.color= -e&&e.color&&!this.options.color?e.color:this.nonZonedColor;return e},destroy:function(){var a=this.series.chart,d=a.hoverPoints,e;a.pointCount--;d&&(this.setState(),C(d,this),d.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)b(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(e in this)this[e]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"], -b,d=6;d--;)b=a[d],this[b]&&(this[b]=this[b].destroy());this.dataLabels&&(this.dataLabels.forEach(function(a){a.element&&a.destroy()}),delete this.dataLabels);this.connectors&&(this.connectors.forEach(function(a){a.element&&a.destroy()}),delete this.connectors)},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var c= -this.series,b=c.tooltipOptions,d=u(b.valueDecimals,""),e=b.valuePrefix||"",q=b.valueSuffix||"";c.chart.styledMode&&(a=c.chart.tooltip.styledModeFormat(a));(c.pointArrayMap||["y"]).forEach(function(c){c="{point."+c;if(e||q)a=a.replace(RegExp(c+"}","g"),e+c+"}"+q);a=a.replace(RegExp(c+"}","g"),c+":,."+d+"f}")});return g(a,{point:this,series:this.series},c.chart.time)},firePointEvent:function(a,b,d){var c=this,m=this.series.options;(m.point.events[a]||c.options&&c.options.events&&c.options.events[a])&& -this.importEvents();"click"===a&&m.allowPointSelect&&(d=function(a){c.select&&c.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});e(this,a,b,d)},visible:!0}})(L);(function(a){var E=a.addEvent,I=a.animate,C=a.attr,e=a.charts,g=a.color,n=a.css,t=a.createElement,u=a.defined,w=a.deg2rad,d=a.destroyObjectProperties,b=a.doc,c=a.extend,m=a.erase,x=a.hasTouch,r=a.isArray,p=a.isFirefox,q=a.isMS,D=a.isObject,y=a.isString,H=a.isWebKit,z=a.merge,k=a.noop,h=a.objectEach,v=a.pick,F=a.pInt,M=a.removeEvent,f=a.splat, -l=a.stop,J=a.svg,A=a.SVG_NS,N=a.symbolSizes,B=a.win;var K=a.SVGElement=function(){return this};c(K.prototype,{opacity:1,SVG_NS:A,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),init:function(f,c){this.element="span"===c?t(c):b.createElementNS(this.SVG_NS,c);this.renderer=f;a.fireEvent(this,"afterInit")},animate:function(f,c,l){var G=a.animObject(v(c,this.renderer.globalAnimation,!0));v(b.hidden, -b.msHidden,b.webkitHidden,!1)&&(G.duration=0);0!==G.duration?(l&&(G.complete=l),I(this,f,G)):(this.attr(f,null,l),a.objectEach(f,function(a,f){G.step&&G.step.call(this,a,{prop:f,pos:1})},this));return this},complexColor:function(f,c,l){var G=this.renderer,b,v,B,d,F,A,J,e,P,m,k,p=[],q;a.fireEvent(this.renderer,"complexColor",{args:arguments},function(){f.radialGradient?v="radialGradient":f.linearGradient&&(v="linearGradient");v&&(B=f[v],F=G.gradients,J=f.stops,m=l.radialReference,r(B)&&(f[v]=B={x1:B[0], -y1:B[1],x2:B[2],y2:B[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===v&&m&&!u(B.gradientUnits)&&(d=B,B=z(B,G.getRadialAttr(m,d),{gradientUnits:"userSpaceOnUse"})),h(B,function(a,f){"id"!==f&&p.push(f,a)}),h(J,function(a){p.push(a)}),p=p.join(","),F[p]?k=F[p].attr("id"):(B.id=k=a.uniqueKey(),F[p]=A=G.createElement(v).attr(B).add(G.defs),A.radAttr=d,A.stops=[],J.forEach(function(f){0===f[1].indexOf("rgba")?(b=a.color(f[1]),e=b.get("rgb"),P=b.get("a")):(e=f[1],P=1);f=G.createElement("stop").attr({offset:f[0], -"stop-color":e,"stop-opacity":P}).add(A);A.stops.push(f)})),q="url("+G.url+"#"+k+")",l.setAttribute(c,q),l.gradient=p,f.toString=function(){return q})})},applyTextOutline:function(f){var G=this.element,c,l;-1!==f.indexOf("contrast")&&(f=f.replace(/contrast/g,this.renderer.getContrast(G.style.fill)));f=f.split(" ");var h=f[f.length-1];if((c=f[0])&&"none"!==c&&a.svg){this.fakeTS=!0;f=[].slice.call(G.getElementsByTagName("tspan"));this.ySetter=this.xSetter;c=c.replace(/(^[\d\.]+)(.*?)$/g,function(a, -f,G){return 2*f+G});for(l=f.length;l--;){var b=f[l];"highcharts-text-outline"===b.getAttribute("class")&&m(f,G.removeChild(b))}var v=G.firstChild;f.forEach(function(a,f){0===f&&(a.setAttribute("x",G.getAttribute("x")),f=G.getAttribute("y"),a.setAttribute("y",f||0),null===f&&G.setAttribute("y",0));var l=a.cloneNode(1);C(l,{"class":"highcharts-text-outline",fill:h,stroke:h,"stroke-width":c,"stroke-linejoin":"round"});G.insertBefore(l,v)})}},symbolCustomAttribs:"x y width height r start end innerR anchorX anchorY rounded".split(" "), -attr:function(f,c,b,v){var G=this.element,B,d=this,F,A,J=this.symbolCustomAttribs;if("string"===typeof f&&void 0!==c){var e=f;f={};f[e]=c}"string"===typeof f?d=(this[f+"Getter"]||this._defaultGetter).call(this,f,G):(h(f,function(c,h){F=!1;v||l(this,h);this.symbolName&&-1!==a.inArray(h,J)&&(B||(this.symbolAttr(f),B=!0),F=!0);!this.rotation||"x"!==h&&"y"!==h||(this.doTransform=!0);F||(A=this[h+"Setter"]||this._defaultSetter,A.call(this,c,h,G),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(h)&& -this.updateShadows(h,c,A))},this),this.afterSetters());b&&b.call(this);return d},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,f,c){for(var G=this.shadows,l=G.length;l--;)c.call(G[l],"height"===a?Math.max(f-(G[l].cutHeight||0),0):"d"===a?this.d:f,a,G[l])},addClass:function(a,f){var G=this.attr("class")||"";-1===G.indexOf(a)&&(f||(a=(G+(G?" ":"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!== -(this.attr("class")||"").split(" ").indexOf(a)},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var f=this;"x y r start end width height innerR anchorX anchorY".split(" ").forEach(function(G){f[G]=v(a[G],f[G])});f.attr({d:f.renderer.symbols[f.symbolName](f.x,f.y,f.width,f.height,f)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,f){f=f||a.strokeWidth||0;var G=Math.round(f)% -2/2;a.x=Math.floor(a.x||this.x||0)+G;a.y=Math.floor(a.y||this.y||0)+G;a.width=Math.floor((a.width||this.width||0)-2*G);a.height=Math.floor((a.height||this.height||0)-2*G);u(a.strokeWidth)&&(a.strokeWidth=f);return a},css:function(a){var f=this.styles,G={},l=this.element,b="",v=!f,B=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);f&&h(a,function(a,l){a!==f[l]&&(G[l]=a,v=!0)});if(v){f&&(a=c(f,G));if(a)if(null===a.width||"auto"===a.width)delete this.textWidth;else if("text"===l.nodeName.toLowerCase()&& -a.width)var d=this.textWidth=F(a.width);this.styles=a;d&&!J&&this.renderer.forExport&&delete a.width;if(l.namespaceURI===this.SVG_NS){var A=function(a,f){return"-"+f.toLowerCase()};h(a,function(a,f){-1===B.indexOf(f)&&(b+=f.replace(/([A-Z])/g,A)+":"+a+";")});b&&C(l,"style",b)}else n(l,a);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline))}return this},getStyle:function(a){return B.getComputedStyle(this.element||this,"").getPropertyValue(a)}, -strokeWidth:function(){if(!this.renderer.styledMode)return this["stroke-width"]||0;var a=this.getStyle("stroke-width");if(a.indexOf("px")===a.length-2)a=F(a);else{var f=b.createElementNS(A,"rect");C(f,{width:a,"stroke-width":0});this.element.parentNode.appendChild(f);a=f.getBBox().width;f.parentNode.removeChild(f)}return a},on:function(a,f){var G=this,l=G.element;x&&"click"===a?(l.ontouchstart=function(a){G.touchEventFired=Date.now();a.preventDefault();f.call(l,a)},l.onclick=function(a){(-1===B.navigator.userAgent.indexOf("Android")|| -1100l.width)l={width:0,height:0}}else l=this.htmlGetBBox();G.isSVG&&(G=l.width,p=l.height,J&&(l.height=p={"11px,17":14,"13px,20":16}[b&&b.fontSize+","+Math.round(p)]||p),e&& -(l.width=Math.abs(p*Math.sin(m))+Math.abs(G*Math.cos(m)),l.height=Math.abs(p*Math.cos(m))+Math.abs(G*Math.sin(m))));if(k&&0]*>/g,"").replace(/</g,"<").replace(/>/g,">")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,f,l){"string"===typeof a?l.setAttribute(f,a):a&&this.complexColor(a,f,l)},visibilitySetter:function(a,f,l){"inherit"===a?l.removeAttribute(f):this[f]!==a&&l.setAttribute(f,a); -this[f]=a},zIndexSetter:function(a,f){var l=this.renderer,c=this.parentGroup,h=(c||l).element||l.box,b=this.element;l=h===l.box;var v=this.added;var G;u(a)?(b.setAttribute("data-z-index",a),a=+a,this[f]===a&&(v=!1)):u(this[f])&&b.removeAttribute("data-z-index");this[f]=a;if(v){(a=this.zIndex)&&c&&(c.handleZ=!0);c=h.childNodes;for(G=c.length-1;0<=G&&!A;G--){v=c[G];var B=v.getAttribute("data-z-index");var d=!u(B);if(v!==b)if(0>a&&d&&!l&&!G){h.insertBefore(b,c[G]);var A=!0}else if(F(B)<=a||d&&(!u(a)|| -0<=a))h.insertBefore(b,c[G+1]||null),A=!0}A||(h.insertBefore(b,c[l?3:0]||null),A=!0)}return A},_defaultSetter:function(a,f,l){l.setAttribute(f,a)}});K.prototype.yGetter=K.prototype.xGetter;K.prototype.translateXSetter=K.prototype.translateYSetter=K.prototype.rotationSetter=K.prototype.verticalAlignSetter=K.prototype.rotationOriginXSetter=K.prototype.rotationOriginYSetter=K.prototype.scaleXSetter=K.prototype.scaleYSetter=K.prototype.matrixSetter=function(a,f){this[f]=a;this.doTransform=!0};K.prototype["stroke-widthSetter"]= -K.prototype.strokeSetter=function(a,f,l){this[f]=a;this.stroke&&this["stroke-width"]?(K.prototype.fillSetter.call(this,this.stroke,"stroke",l),l.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===f&&0===a&&this.hasStroke&&(l.removeAttribute("stroke"),this.hasStroke=!1)};var O=a.SVGRenderer=function(){this.init.apply(this,arguments)};c(O.prototype,{Element:K,SVG_NS:A,init:function(a,f,l,c,h,v,d){var G=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}); -d||G.css(this.getStyle(c));c=G.element;a.appendChild(c);C(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&C(c,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=c;this.boxWrapper=G;this.alignedObjects=[];this.url=(p||H)&&b.getElementsByTagName("base").length?B.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(b.createTextNode("Created with Highcharts v7.0.3 custom build"));this.defs=this.createElement("defs").add(); -this.allowHTML=v;this.forExport=h;this.styledMode=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(f,l,!1);var F;p&&a.getBoundingClientRect&&(f=function(){n(a,{left:0,top:0});F=a.getBoundingClientRect();n(a,{left:Math.ceil(F.left)-F.left+"px",top:Math.ceil(F.top)-F.top+"px"})},f(),this.unSubPixelFix=E(B,"resize",f))},definition:function(a){function l(a,v){var G;f(a).forEach(function(a){var f=c.createElement(a.tagName),B={};h(a,function(a,f){"tagName"!==f&&"children"!== -f&&"textContent"!==f&&(B[f]=a)});f.attr(B);f.add(v||c.defs);a.textContent&&f.element.appendChild(b.createTextNode(a.textContent));l(a.children||[],f);G=f});return G}var c=this;return l(a)},getStyle:function(a){return this.style=c({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null; -this.boxWrapper=this.boxWrapper.destroy();d(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var f=new this.Element;f.init(this,a);return f},draw:k,getRadialAttr:function(a,f){return{cx:a[0]-a[2]/2+f.cx*a[2],cy:a[1]-a[2]/2+f.cy*a[2],r:f.r*a[2]}},truncate:function(a,f,l,c,h,v,B){var d=this,F=a.rotation,G,A=c?1:0,J=(l||c).length,e=J,m=[],k=function(a){f.firstChild&&f.removeChild(f.firstChild); -a&&f.appendChild(b.createTextNode(a))},p=function(b,v){var G=v||b;if(void 0===m[G])if(f.getSubStringLength)try{m[G]=h+f.getSubStringLength(0,c?G+1:G)}catch(Y){}else d.getSpanWidth&&(k(B(l||c,b)),m[G]=h+d.getSpanWidth(a,f));return m[G]},q;a.rotation=0;var K=p(f.textContent.length);if(q=h+K>v){for(;A<=J;)e=Math.ceil((A+J)/2),c&&(G=B(c,e)),K=p(e,G&&G.length-1),A===J?A=J+1:K>v?J=e-1:A=e;0===J?k(""):l&&J===l.length-1||k(G||B(l||c,e))}c&&c.splice(0,e);a.actualWidth=K;a.rotation=F;return q},escapes:{"&":"&", -"<":"<",">":">","'":"'",'"':"""},buildText:function(a){var f=a.element,l=this,c=l.forExport,B=v(a.textStr,"").toString(),d=-1!==B.indexOf("<"),G=f.childNodes,e,m=C(f,"x"),k=a.styles,p=a.textWidth,q=k&&k.lineHeight,K=k&&k.textOutline,g=k&&"ellipsis"===k.textOverflow,x=k&&"nowrap"===k.whiteSpace,N=k&&k.fontSize,M,y=G.length;k=p&&!a.added&&this.box;var r=function(a){var c;l.styledMode||(c=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:N||l.style.fontSize||12);return q?F(q):l.fontMetrics(c, -a.getAttribute("style")?a:f).h},O=function(a,f){h(l.escapes,function(l,c){f&&-1!==f.indexOf(l)||(a=a.toString().replace(new RegExp(l,"g"),c))});return a},z=function(a,f){var l=a.indexOf("<");a=a.substring(l,a.indexOf(">")-l);l=a.indexOf(f+"=");if(-1!==l){l=l+f.length+1;var c=a.charAt(l);if('"'===c||"'"===c)return a=a.substring(l+1),a.substring(0,a.indexOf(c))}};var D=[B,g,x,q,K,N,p].join();if(D!==a.textCache){for(a.textCache=D;y--;)f.removeChild(G[y]);d||K||g||p||-1!==B.indexOf(" ")?(k&&k.appendChild(f), -d?(B=l.styledMode?B.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''):B.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''),B=B.replace(//g,"").split(//g)):B=[B],B=B.filter(function(a){return""!==a}),B.forEach(function(h,v){var B=0,d=0;h=h.replace(/^\s+|\s+$/g,"").replace(//g, -"|||");var F=h.split("|||");F.forEach(function(h){if(""!==h||1===F.length){var G={},k=b.createElementNS(l.SVG_NS,"tspan"),q,K;(q=z(h,"class"))&&C(k,"class",q);if(q=z(h,"style"))q=q.replace(/(;| |^)color([ :])/,"$1fill$2"),C(k,"style",q);(K=z(h,"href"))&&!c&&(C(k,"onclick",'location.href="'+K+'"'),C(k,"class","highcharts-anchor"),l.styledMode||n(k,{cursor:"pointer"}));h=O(h.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==h){k.appendChild(b.createTextNode(h));B?G.dx=0:v&&null!==m&&(G.x=m); -C(k,G);f.appendChild(k);!B&&M&&(!J&&c&&n(k,{display:"block"}),C(k,"dy",r(k)));if(p){var y=h.replace(/([^\^])-/g,"$1- ").split(" ");G=!x&&(1Math.abs(h.end-h.start-2*Math.PI));var A=Math.cos(b),J=Math.sin(b),e=Math.cos(F);F=Math.sin(F);h=.001>h.end-b-Math.PI?0:1;B=["M",a+B*A,f+d*J,"A",B,d,0,h,1,a+B*e,f+d*F];u(l)&&B.push(c?"M":"L",a+l*e,f+l*F,"A",l,l,0,h,0,a+ -l*A,f+l*J);B.push(c?"":"Z");return B},callout:function(a,f,l,c,h){var b=Math.min(h&&h.r||0,l,c),B=b+6,v=h&&h.anchorX;h=h&&h.anchorY;var d=["M",a+b,f,"L",a+l-b,f,"C",a+l,f,a+l,f,a+l,f+b,"L",a+l,f+c-b,"C",a+l,f+c,a+l,f+c,a+l-b,f+c,"L",a+b,f+c,"C",a,f+c,a,f+c,a,f+c-b,"L",a,f+b,"C",a,f,a,f,a+b,f];v&&v>l?h>f+B&&hv?h>f+B&&hc&&v>a+B&&vh&&v>a+B&&va?a+3:Math.round(1.2*a);return{h:l,b:Math.round(.8* -l),f:a}},rotCorr:function(a,f,l){var c=a;f&&l&&(c=Math.max(c*Math.cos(f*w),4));return{x:-a/3*Math.sin(f*w),y:c}},label:function(f,l,h,b,v,B,d,F,A){var J=this,e=J.styledMode,k=J.g("button"!==A&&"label"),p=k.text=J.text("",0,0,d).attr({zIndex:1}),m,q,G=0,g=3,x=0,N,y,r,O,n,D={},w,H,t=/^url\((.*?)\)$/.test(b),P=e||t,U=function(){return e?m.strokeWidth()%2/2:(w?parseInt(w,10):0)%2/2};A&&k.addClass("highcharts-"+A);var C=function(){var a=p.element.style,f={};q=(void 0===N||void 0===y||n)&&u(p.textStr)&& -p.getBBox();k.width=(N||q.width||0)+2*g+x;k.height=(y||q.height||0)+2*g;H=g+Math.min(J.fontMetrics(a&&a.fontSize,p).b,q?q.height:Infinity);P&&(m||(k.box=m=J.symbols[b]||t?J.symbol(b):J.rect(),m.addClass(("button"===A?"":"highcharts-label-box")+(A?" highcharts-"+A+"-box":"")),m.add(k),a=U(),f.x=a,f.y=(F?-H:0)+a),f.width=Math.round(k.width),f.height=Math.round(k.height),m.attr(c(f,D)),D={})};var S=function(){var a=x+g;var f=F?0:H;u(N)&&q&&("center"===n||"right"===n)&&(a+={center:.5,right:1}[n]*(N-q.width)); -if(a!==p.x||f!==p.y)p.attr("x",a),p.hasBoxWidthChanged&&(q=p.getBBox(!0),C()),void 0!==f&&p.attr("y",f);p.x=a;p.y=f};var R=function(a,f){m?m.attr(a,f):D[a]=f};k.onAdd=function(){p.add(k);k.attr({text:f||0===f?f:"",x:l,y:h});m&&u(v)&&k.attr({anchorX:v,anchorY:B})};k.widthSetter=function(f){N=a.isNumber(f)?f:null};k.heightSetter=function(a){y=a};k["text-alignSetter"]=function(a){n=a};k.paddingSetter=function(a){u(a)&&a!==g&&(g=k.padding=a,S())};k.paddingLeftSetter=function(a){u(a)&&a!==x&&(x=a,S())}; -k.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==G&&(G=a,q&&k.attr({x:r}))};k.textSetter=function(a){void 0!==a&&p.textSetter(a);C();S()};k["stroke-widthSetter"]=function(a,f){a&&(P=!0);w=this["stroke-width"]=a;R(f,a)};e?k.rSetter=function(a,f){R(f,a)}:k.strokeSetter=k.fillSetter=k.rSetter=function(a,f){"r"!==f&&("fill"===f&&a&&(P=!0),k[f]=a);R(f,a)};k.anchorXSetter=function(a,f){v=k.anchorX=a;R(f,Math.round(a)-U()-r)};k.anchorYSetter=function(a,f){B=k.anchorY=a;R(f,a-O)};k.xSetter=function(a){k.x= -a;G&&(a-=G*((N||q.width)+2*g),k["forceAnimate:x"]=!0);r=Math.round(a);k.attr("translateX",r)};k.ySetter=function(a){O=k.y=Math.round(a);k.attr("translateY",O)};var E=k.css;d={css:function(a){if(a){var f={};a=z(a);k.textProps.forEach(function(l){void 0!==a[l]&&(f[l]=a[l],delete a[l])});p.css(f);"width"in f&&C();"fontSize"in f&&(C(),S())}return E.call(k,a)},getBBox:function(){return{width:q.width+2*g,height:q.height+2*g,x:q.x-g,y:q.y-g}},destroy:function(){M(k.element,"mouseenter");M(k.element,"mouseleave"); -p&&(p=p.destroy());m&&(m=m.destroy());K.prototype.destroy.call(k);k=J=C=S=R=null}};e||(d.shadow=function(a){a&&(C(),m&&m.shadow(a));return k});return c(k,d)}});a.Renderer=O})(L);(function(a){var E=a.addEvent,I=a.animObject,C=a.arrayMax,e=a.arrayMin,g=a.correctFloat,n=a.defaultOptions,t=a.defaultPlotOptions,u=a.defined,w=a.erase,d=a.extend,b=a.fireEvent,c=a.isArray,m=a.isNumber,x=a.isString,r=a.merge,p=a.objectEach,q=a.pick,D=a.removeEvent,y=a.splat,H=a.SVGElement,z=a.syncTimeout,k=a.win;a.Series= -a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast", -textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",cropShoulder:1, -init:function(a,c){b(this,"init",{options:c});var h=this,v=a.series,f;h.chart=a;h.options=c=h.setOptions(c);h.linkedSeries=[];h.bindAxes();d(h,{name:c.name,state:"",visible:!1!==c.visible,selected:!0===c.selected});var l=c.events;p(l,function(a,f){h.hcEvents&&h.hcEvents[f]&&-1!==h.hcEvents[f].indexOf(a)||E(h,f,a)});if(l&&l.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=!0;h.getColor();h.getSymbol();h.parallelArrays.forEach(function(a){h[a+"Data"]=[]});h.setData(c.data, -!1);h.isCartesian&&(a.hasCartesianSeries=!0);v.length&&(f=v[v.length-1]);h._i=q(f&&f._i,-1)+1;a.orderSeries(this.insert(v));b(this,"afterInit")},insert:function(a){var c=this.options.index,h;if(m(c)){for(h=a.length;h--;)if(c>=q(a[h].options.index,a[h]._i)){a.splice(h+1,0,this);break}-1===h&&a.unshift(this);h+=1}else a.push(this);return q(h,a.length-1)},bindAxes:function(){var c=this,v=c.options,d=c.chart,k;b(this,"bindAxes",null,function(){(c.axisTypes||[]).forEach(function(f){d[f].forEach(function(a){k= -a.options;if(v[f]===k.index||void 0!==v[f]&&v[f]===k.id||void 0===v[f]&&0===k.index)c.insert(a.series),c[f]=a,a.isDirty=!0});c[f]||c.optionalAxis===f||a.error(18,!0,d)})})},updateParallelArrays:function(a,c){var h=a.series,b=arguments,f=m(c)?function(f){var l="y"===f&&h.toYData?h.toYData(a):a[f];h[f+"Data"][c]=l}:function(a){Array.prototype[c].apply(h[a+"Data"],Array.prototype.slice.call(b,2))};h.parallelArrays.forEach(f)},autoIncrement:function(){var a=this.options,c=this.xIncrement,b,d=a.pointIntervalUnit, -f=this.chart.time;c=q(c,a.pointStart,0);this.pointInterval=b=q(this.pointInterval,a.pointInterval,1);d&&(a=new f.Date(c),"day"===d?f.set("Date",a,f.get("Date",a)+b):"month"===d?f.set("Month",a,f.get("Month",a)+b):"year"===d&&f.set("FullYear",a,f.get("FullYear",a)+b),b=a.getTime()-c);this.xIncrement=c+b;return c},setOptions:function(a){var c=this.chart,h=c.options,d=h.plotOptions,f=(c.userOptions||{}).plotOptions||{},l=d[this.type],k=r(a);a=c.styledMode;b(this,"setOptions",{userOptions:k});this.userOptions= -k;c=r(l,d.series,k);this.tooltipOptions=r(n.tooltip,n.plotOptions.series&&n.plotOptions.series.tooltip,n.plotOptions[this.type].tooltip,h.tooltip.userOptions,d.series&&d.series.tooltip,d[this.type].tooltip,k.tooltip);this.stickyTracking=q(k.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:c.stickyTracking);null===l.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;h=this.zones=(c.zones||[]).slice();!c.negativeColor&& -!c.negativeFillColor||c.zones||(d={value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative"},a||(d.color=c.negativeColor,d.fillColor=c.negativeFillColor),h.push(d));h.length&&u(h[h.length-1].value)&&h.push(a?{}:{color:this.color,fillColor:this.fillColor});b(this,"afterSetOptions",{options:c});return c},getName:function(){return q(this.options.name,"Series "+(this.index+1))},getCyclic:function(a,c,b){var h=this.chart,f=this.userOptions,l=a+"Index",d=a+"Counter",v=b?b.length: -q(h.options.chart[a+"Count"],h[a+"Count"]);if(!c){var k=q(f[l],f["_"+l]);u(k)||(h.series.length||(h[d]=0),f["_"+l]=k=h[d]%v,h[d]+=1);b&&(c=b[k])}void 0!==k&&(this[l]=k);this[a]=c},getColor:function(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||t[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker, -updateData:function(c){var h=this.options,b=this.points,d=[],f,l,k=this.requireSorting;this.xIncrement=null;c.forEach(function(c){var B=a.defined(c)&&this.pointClass.prototype.optionsToObject.call({series:this},c)||{};var v=B.x;if((B=B.id)||m(v)){if(B)var A=(A=this.chart.get(B))&&A.index;void 0===A&&m(v)&&(A=this.xData.indexOf(v,l));-1!==A&&void 0!==A&&this.cropped&&(A=A>=this.cropStart?A-this.cropStart:A);-1===A||void 0===A||b[A]&&b[A].touched?d.push(c):c!==h.data[A]?(b[A].update(c,!1,null,!1),b[A].touched= -!0,k&&(l=A+1)):b[A]&&(b[A].touched=!0);f=!0}},this);if(f)for(c=b.length;c--;){var A=b[c];A.touched||A.remove(!1);A.touched=!1}else if(c.length===b.length)c.forEach(function(a,f){b[f].update&&a!==h.data[f]&&b[f].update(a,!1,null,!1)});else return!1;d.forEach(function(a){this.addPoint(a,!1)},this);return!0},setData:function(h,b,d,k){var f=this,l=f.points,v=l&&l.length||0,A,e=f.options,B=f.chart,p=null,F=f.xAxis,g=e.turboThreshold,y=this.xData,r=this.yData,n=(A=f.pointArrayMap)&&A.length,M=e.keys,z= -0,D=1,w;h=h||[];A=h.length;b=q(b,!0);!1!==k&&A&&v&&!f.cropped&&!f.hasGroupedData&&f.visible&&!f.isSeriesBoosting&&(w=this.updateData(h));if(!w){f.xIncrement=null;f.colorCounter=0;this.parallelArrays.forEach(function(a){f[a+"Data"].length=0});if(g&&A>g){for(d=0;null===p&&dA||this.forceCrop))if(h[d-1]g)h=[],b=[];else if(this.yData&&(h[0]g)){f=this.cropData(this.xData,this.yData,q,g);h=f.xData;b=f.yData; -f=f.start;var x=!0}for(A=h.length||1;--A;)if(d=p?k(h[A])-k(h[A-1]):h[A]-h[A-1],0d&&m&&(a.error(15,!1,this.chart),m=!1);this.cropped=x;this.cropStart=f;this.processedXData=h;this.processedYData=b;this.closestPointRange=y},cropData:function(a,c,b,d,f){var l=a.length,h=0,v=l,k;f=q(f,this.cropShoulder);for(k=0;k=b){h=Math.max(0,k-f);break}for(b=k;bd){v=b+f;break}return{xData:a.slice(h,v),yData:c.slice(h,v),start:h,end:v}},generatePoints:function(){var a= -this.options,c=a.data,k=this.data,e,f=this.processedXData,l=this.processedYData,p=this.pointClass,A=f.length,m=this.cropStart||0,B=this.hasGroupedData;a=a.keys;var q=[],g;k||B||(k=[],k.length=c.length,k=this.data=k);a&&B&&(this.options.keys=!1);for(g=0;g=p&&(d[B-q]||g)<=A;if(G&&g)if(G=x.length)for(;G--;)"number"===typeof x[G]&&(k[f++]=x[G]);else k[f++]=x}this.dataMin=e(k);this.dataMax=C(k);b(this,"afterGetExtremes")},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,c=a.stacking,d=this.xAxis,k=d.categories,f=this.yAxis,l=this.points,e=l.length,A=!!this.modifyValue, -p,B=this.pointPlacementToXValue(),x=m(B),y=a.threshold,G=a.startFromThreshold?y:0,r,n=this.zoneAxis||"y",z=Number.MAX_VALUE;for(p=0;p=H&&(D.isNull=!0);D.plotX=r=g(Math.min(Math.max(-1E5,d.translate(w,0,0,0,1,B,"flags"===this.type)),1E5));if(c&&this.visible&&!D.isNull&&C&&C[w]){var E=this.getStackIndicator(E,w,this.index);var I=C[w];H=I.points[E.key];t=H[0]; -H=H[1];t===G&&E.key===C[w].base&&(t=q(m(y)&&y,f.min));f.positiveValuesOnly&&0>=t&&(t=null);D.total=D.stackTotal=I.total;D.percentage=I.total&&D.y/I.total*100;D.stackY=H;I.setOffset(this.pointXOffset||0,this.barW||0)}D.yBottom=u(t)?Math.min(Math.max(-1E5,f.translate(t,0,1,0,1)),1E5):null;A&&(H=this.modifyValue(H,D));D.plotY=t="number"===typeof H&&Infinity!==H?Math.min(Math.max(-1E5,f.translate(H,0,1,0,1)),1E5):void 0;D.isInside=void 0!==t&&0<=t&&t<=f.len&&0<=r&&r<=d.len;D.clientX=x?g(d.translate(w, -0,0,0,1,B)):r;D.negative=D[n]<(a[n+"Threshold"]||y||0);D.category=k&&void 0!==k[D.x]?k[D.x]:D.x;if(!D.isNull){void 0!==V&&(z=Math.min(z,Math.abs(r-V)));var V=r}D.zone=this.zones.length&&D.getZone()}this.closestPointRangePx=z;b(this,"afterTranslate")},getValidPoints:function(a,c,b){var h=this.chart;return(a||this.points||[]).filter(function(a){return c&&!h.isInsidePlot(a.plotX,a.plotY,h.inverted)?!1:b||!a.isNull})},setClip:function(a){var c=this.chart,b=this.options,h=c.renderer,f=c.inverted,l=this.clipBox, -d=l||c.clipBox,k=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,d.height,b.xAxis,b.yAxis].join(),e=c[k],B=c[k+"m"];e||(a&&(d.width=0,f&&(d.x=c.plotSizeX),c[k+"m"]=B=h.clipRect(f?c.plotSizeX+99:-99,f?-c.plotLeft:-c.plotTop,99,f?c.chartWidth:c.chartHeight)),c[k]=e=h.clipRect(d),e.count={length:0});a&&!e.count[this.index]&&(e.count[this.index]=!0,e.count.length+=1);!1!==b.clip&&(this.group.clip(a||l?e:c.clipRect),this.markerGroup.clip(B),this.sharedClipKey=k);a||(e.count[this.index]&&(delete e.count[this.index], ---e.count.length),0===e.count.length&&k&&c[k]&&(l||(c[k]=c[k].destroy()),c[k+"m"]&&(c[k+"m"]=c[k+"m"].destroy())))},animate:function(a){var c=this.chart,b=I(this.options.animation);if(a)this.setClip(b);else{var h=this.sharedClipKey;(a=c[h])&&a.animate({width:c.plotSizeX,x:0},b);c[h+"m"]&&c[h+"m"].animate({width:c.plotSizeX+99,x:0},b);this.animate=null}},afterAnimate:function(){this.setClip();b(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,c=this.chart,b=this.options.marker, -d=this[this.specialGroup]||this.markerGroup;var f=this.xAxis;var l=q(b.enabled,!f||f.isRadial?!0:null,this.closestPointRangePx>=b.enabledThreshold*b.radius);if(!1!==b.enabled||this._hasPointMarkers)for(f=0;fh&&c.shadow)));k&&(k.startX=b.xMap,k.isArea=b.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(c,b){var h=["zone-graph-"+ -b,"highcharts-graph highcharts-zone-graph-"+b+" "+(c.className||"")];this.chart.styledMode||h.push(c.color||this.color,c.dashStyle||this.options.dashStyle);a.push(h)},this);return a},applyZones:function(){var a=this,c=this.chart,b=c.renderer,d=this.zones,f,l,k=this.clips||[],e,p=this.graph,B=this.area,m=Math.max(c.chartWidth,c.chartHeight),g=this[(this.zoneAxis||"y")+"Axis"],x=c.inverted,y,r,n,D=!1;if(d.length&&(p||B)&&g&&void 0!==g.min){var z=g.reversed;var w=g.horiz;p&&!this.showLine&&p.hide(); -B&&B.hide();var H=g.getExtremes();d.forEach(function(h,d){f=z?w?c.plotWidth:0:w?0:g.toPixels(H.min)||0;f=Math.min(Math.max(q(l,f),0),m);l=Math.min(Math.max(Math.round(g.toPixels(q(h.value,H.max),!0)||0),0),m);D&&(f=l=g.toPixels(H.max));y=Math.abs(f-l);r=Math.min(f,l);n=Math.max(f,l);g.isXAxis?(e={x:x?n:r,y:0,width:y,height:m},w||(e.x=c.plotHeight-e.x)):(e={x:0,y:x?n:r,width:m,height:y},w&&(e.y=c.plotWidth-e.y));x&&b.isVML&&(e=g.isXAxis?{x:0,y:z?r:n,height:e.width,width:c.chartWidth}:{x:e.y-c.plotLeft- -c.spacingBox.x,y:0,width:e.height,height:c.chartHeight});k[d]?k[d].animate(e):(k[d]=b.clipRect(e),p&&a["zone-graph-"+d].clip(k[d]),B&&a["zone-area-"+d].clip(k[d]));D=h.value>H.max;a.resetZones&&0===l&&(l=void 0)});this.clips=k}},invertGroups:function(a){function c(){["group","markerGroup"].forEach(function(f){b[f]&&(h.renderer.isVML&&b[f].attr({width:b.yAxis.len,height:b.xAxis.len}),b[f].width=b.yAxis.len,b[f].height=b.xAxis.len,b[f].invert(a))})}var b=this,h=b.chart;if(b.xAxis){var f=E(h,"resize", -c);E(b,"destroy",f);c(a);b.invertGroups=c}},plotGroup:function(a,c,b,d,f){var l=this[a],h=!l;h&&(this[a]=l=this.chart.renderer.g().attr({zIndex:d||.1}).add(f));l.addClass("highcharts-"+c+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(u(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(l.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);l.attr({visibility:b})[h?"attr":"animate"](this.getPlotBox());return l},getPlotBox:function(){var a= -this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,c=a.chart,d=a.options,k=!!a.animate&&c.renderer.isSVG&&I(d.animation).duration,f=a.visible?"inherit":"hidden",l=d.zIndex,e=a.hasRendered,p=c.seriesGroup,m=c.inverted;b(this,"render");var B=a.plotGroup("group","series",f,l,p);a.markerGroup=a.plotGroup("markerGroup","markers",f,l,p);k&&a.animate(!0);B.inverted=a.isCartesian? -m:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(m);!1===d.clip||a.sharedClipKey||e||B.clip(c.clipRect);k&&a.animate();e||(a.animationTimeout=z(function(){a.afterAnimate()},k));a.isDirty=!1;a.hasRendered=!0;b(a,"afterRender")},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,b=this.group,d=this.xAxis,f=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth, -height:a.plotHeight}),b.animate({translateX:q(d&&d.left,a.plotLeft),translateY:q(f&&f.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,c){var b=this.xAxis,d=this.yAxis,f=this.chart.inverted;return this.searchKDTree({clientX:f?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:f?d.len-a.chartX+d.pos:a.chartY-d.pos},c,a)},buildKDTree:function(a){function c(a,l,d){var f;if(f=a&&a.length){var h=b.kdAxisArray[l%d];a.sort(function(a,f){return a[h]- -f[h]});f=Math.floor(f/2);return{point:a[f],left:c(a.slice(0,f),l+1,d),right:c(a.slice(f+1),l+1,d)}}}this.buildingKdTree=!0;var b=this,d=-1p?"left":"right";m=0>p?"right":"left";c[q]&&(q=d(a,c[q],b+1,e),A=q[k]q&&c-n*yg&&(h=Math.round((e-c)/Math.cos(q*u)));else if(e=c+(1-n)*y,c-n*yg&&(z=g-a.x+z*n,k=-1),z=Math.min(H,z),zz||d.autoRotation&&(p.styles||{}).width)h=z;h&&(this.shortenLabel?this.shortenLabel():(v.width=Math.floor(h),(b.style||{}).textOverflow||(v.textOverflow="ellipsis"),p.css(v)))},getPosition:function(g,d,b,c){var m=this.axis,x=m.chart,r=c&&x.oldChartHeight||x.chartHeight;g={x:g?a.correctFloat(m.translate(d+b,null,null,c)+m.transB):m.left+m.offset+(m.opposite?(c&&x.oldChartWidth||x.chartWidth)- -m.right-m.left:0),y:g?r-m.bottom+m.offset-(m.opposite?m.height:0):a.correctFloat(r-m.translate(d+b,null,null,c)-m.transB)};e(this,"afterGetPosition",{pos:g});return g},getLabelPosition:function(a,d,b,c,m,g,r,p){var q=this.axis,x=q.transA,y=q.reversed,n=q.staggerLines,z=q.tickRotCorr||{x:0,y:0},k=m.y,h=c||q.reserveSpaceDefault?0:-q.labelOffset*("center"===q.labelAlign?.5:1),v={};I(k)||(k=0===q.side?b.rotation?-8:-b.getBBox().height:2===q.side?z.y+8:Math.cos(b.rotation*u)*(z.y-b.getBBox(!1,0).height/ -2));a=a+m.x+h+z.x-(g&&c?g*x*(y?-1:1):0);d=d+k-(g&&!c?g*x*(y?1:-1):0);n&&(b=r/(p||1)%n,q.opposite&&(b=n-b-1),d+=q.labelOffset/n*b);v.x=a;v.y=Math.round(d);e(this,"afterGetLabelPosition",{pos:v,tickmarkOffset:g,index:r});return v},getMarkPath:function(a,d,b,c,e,g){return g.crispLine(["M",a,d,"L",a+(e?0:-b),d+(e?b:0)],c)},renderGridLine:function(a,d,b){var c=this.axis,e=c.options,g=this.gridLine,r={},p=this.pos,q=this.type,n=t(this.tickmarkOffset,c.tickmarkOffset),y=c.chart.renderer,H=q?q+"Grid":"grid", -z=e[H+"LineWidth"],k=e[H+"LineColor"];e=e[H+"LineDashStyle"];g||(c.chart.styledMode||(r.stroke=k,r["stroke-width"]=z,e&&(r.dashstyle=e)),q||(r.zIndex=1),a&&(d=0),this.gridLine=g=y.path().attr(r).addClass("highcharts-"+(q?q+"-":"")+"grid-line").add(c.gridGroup));if(g&&(b=c.getPlotLinePath(p+n,g.strokeWidth()*b,a,"pass")))g[a||this.isNew?"attr":"animate"]({d:b,opacity:d})},renderMark:function(a,d,b){var c=this.axis,e=c.options,g=c.chart.renderer,r=this.type,p=r?r+"Tick":"tick",q=c.tickSize(p),n=this.mark, -y=!n,H=a.x;a=a.y;var z=t(e[p+"Width"],!r&&c.isXAxis?1:0);e=e[p+"Color"];q&&(c.opposite&&(q[0]=-q[0]),y&&(this.mark=n=g.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(c.axisGroup),c.chart.styledMode||n.attr({stroke:e,"stroke-width":z})),n[y?"attr":"animate"]({d:this.getMarkPath(H,a,q[0],n.strokeWidth()*b,c.horiz,g),opacity:d}))},renderLabel:function(a,d,b,c){var e=this.axis,x=e.horiz,r=e.options,p=this.label,q=r.labels,n=q.step;e=t(this.tickmarkOffset,e.tickmarkOffset);var y=!0,H=a.x;a=a.y; -p&&g(H)&&(p.xy=a=this.getLabelPosition(H,a,p,x,q,e,c,n),this.isFirst&&!this.isLast&&!t(r.showFirstLabel,1)||this.isLast&&!this.isFirst&&!t(r.showLastLabel,1)?y=!1:!x||q.step||q.rotation||d||0===b||this.handleOverflow(a),n&&c%n&&(y=!1),y&&g(a.y)?(a.opacity=b,p[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(p.attr("y",-9999),this.isNewLabel=!0))},render:function(e,d,b){var c=this.axis,m=c.horiz,g=this.pos,n=t(this.tickmarkOffset,c.tickmarkOffset);g=this.getPosition(m,g,n,d);n=g.x;var p=g.y; -c=m&&n===c.pos+c.len||!m&&p===c.pos?-1:1;b=t(b,1);this.isActive=!0;this.renderGridLine(d,b,c);this.renderMark(g,b,c);this.renderLabel(g,d,b,e);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){C(this,this.axis)}}})(L);T=function(a){var E=a.addEvent,I=a.animObject,C=a.arrayMax,e=a.arrayMin,g=a.color,n=a.correctFloat,t=a.defaultOptions,u=a.defined,w=a.deg2rad,d=a.destroyObjectProperties,b=a.extend,c=a.fireEvent,m=a.format,x=a.getMagnitude,r=a.isArray,p=a.isNumber,q=a.isString,D=a.merge, -y=a.normalizeTickInterval,H=a.objectEach,z=a.pick,k=a.removeEvent,h=a.splat,v=a.syncTimeout,F=a.Tick,M=function(){this.init.apply(this,arguments)};a.extend(M.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",cursor:"default", -fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72, + +/** + * Reminder: The custom build tool on the Highcharts website is broken. It does + * not properly resolve dependencies with the AreaSplineRange and Exporting + * modules. I ended up using the custom build tool, then rearranging the modules + * to match the order of the pre-built source code. + */ + +(function(P,L){"object"===typeof module&&module.exports?(L["default"]=L,module.exports=P.document?L(P):L):"function"===typeof define&&define.amd?define(function(){return L(P)}):(P.Highcharts&&P.Highcharts.error(16,!0),P.Highcharts=L(P))})("undefined"!==typeof window?window:this,function(P){function L(a,B,F,C){a.hasOwnProperty(B)||(a[B]=C.apply(null,F))}var I={};L(I,"v7.1.2/js/parts/Globals.js",[],function(){var a="undefined"===typeof P?"undefined"!==typeof window?window:{}:P,B=a.document,F=a.navigator&& +a.navigator.userAgent||"",C=B&&B.createElementNS&&!!B.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,k=/(edge|msie|trident)/i.test(F)&&!a.opera,g=-1!==F.indexOf("Firefox"),p=-1!==F.indexOf("Chrome"),v=g&&4>parseInt(F.split("Firefox/")[1],10);return{product:"Highcharts",version:"v7.1.2 custom build",deg2rad:2*Math.PI/360,doc:B,hasBidiBug:v,hasTouch:B&&"undefined"!==typeof B.documentElement.ontouchstart,isMS:k,isWebKit:-1!==F.indexOf("AppleWebKit"),isFirefox:g,isChrome:p,isSafari:!p&& +-1!==F.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(F),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:C,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});L(I,"v7.1.2/js/parts/Utilities.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){a.timers=[];var B=a.charts,F=a.doc,C=a.win;a.error=function(k,g,p){var v=a.isNumber(k)?"Highcharts error #"+k+": www.highcharts.com/errors/"+ +k:k,t=function(){if(g)throw Error(v);C.console&&console.log(v)};p?a.fireEvent(p,"displayError",{code:k,message:v},t):t()};a.Fx=function(a,g,p){this.options=g;this.elem=a;this.prop=p};a.Fx.prototype={dSetter:function(){var a=this.paths[0],g=this.paths[1],p=[],v=this.now,t=a.length;if(1===v)p=this.toD;else if(t===g.length&&1>v)for(;t--;){var r=parseFloat(a[t]);p[t]=isNaN(r)?g[t]:v*parseFloat(g[t]-r)+r}else p=g;this.elem.attr("d",p,null,!0)},update:function(){var a=this.elem,g=this.prop,p=this.now,v= +this.options.step;if(this[g+"Setter"])this[g+"Setter"]();else a.attr?a.element&&a.attr(g,p,null,!0):a.style[g]=p+this.unit;v&&v.call(a,p,this)},run:function(k,g,p){var v=this,t=v.options,r=function(a){return r.stopped?!1:v.step(a)},f=C.requestAnimationFrame||function(a){setTimeout(a,13)},c=function(){for(var e=0;e=r+this.startTime){this.now=this.end;this.pos=1;this.update();var c=f[this.prop]=!0;a.objectEach(f,function(a){!0!==a&&(c=!1)});c&&t&&t.call(v);k=!1}else this.pos= +p.easing((g-this.startTime)/r),this.now=this.start+(this.end-this.start)*this.pos,this.update(),k=!0;return k},initPath:function(k,g,p){function v(a){for(n=a.length;n--;){var b="M"===a[n]||"L"===a[n];var d=/[a-zA-Z]/.test(a[n+3]);b&&d&&a.splice(n+1,0,a[n+1],a[n+2],a[n+1],a[n+2])}}function t(a,b){for(;a.lengtha&&-Infinity=p&&(g=[1/p])));for(v=0;v=k||!t&&f<=(g[v]+(g[v+1]||g[v]))/2);v++);return r=a.correctFloat(r*p,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,g){var k=a.length,v,t;for(t=0;tk&&(k=a[g]);return k};a.destroyObjectProperties=function(k,g){a.objectEach(k,function(a,v){a&&a!==g&&a.destroy&&a.destroy();delete k[v]})};a.discardElement=function(k){var g=a.garbageBin;g||(g=a.createElement("div"));k&&g.appendChild(k);g.innerHTML=""};a.correctFloat=function(a,g){return parseFloat(a.toPrecision(g||14))};a.setAnimation= +function(k,g){g.renderer.globalAnimation=a.pick(k,g.options.chart.animation,!0)};a.animObject=function(k){return a.isObject(k)?a.merge(k):{duration:k?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(k,g,p,v){k=+k||0;g=+g;var t=a.defaultOptions.lang,r=(k.toString().split(".")[1]||"").split("e")[0].length,f=k.toString().split("e");if(-1===g)g=Math.min(r,20);else if(!a.isNumber(g))g=2;else if(g&&f[1]&&0>f[1]){var c= +g+ +f[1];0<=c?(f[0]=(+f[0]).toExponential(c).split("e")[0],g=c):(f[0]=f[0].split(".")[0]||0,k=20>g?(f[0]*Math.pow(10,f[1])).toFixed(g):0,f[1]=0)}var e=(Math.abs(f[1]?f[0]:k)+Math.pow(10,-Math.max(g,r)-1)).toFixed(g);r=String(a.pInt(e));c=3k?"-":"")+(c?r.substr(0,c)+v:"");k+=r.substr(c).replace(/(\d{3})(?=\d)/g,"$1"+v);g&&(k+=p+e.slice(-g));f[1]&&0!==+k&&(k+="e"+f[1]);return k};Math.easeInOutSine=function(a){return-.5* +(Math.cos(Math.PI*a)-1)};a.getStyle=function(k,g,p){if("width"===g)return Math.max(0,Math.min(k.offsetWidth,k.scrollWidth,k.getBoundingClientRect&&"none"===a.getStyle(k,"transform",!1)?Math.floor(k.getBoundingClientRect().width):Infinity)-a.getStyle(k,"padding-left")-a.getStyle(k,"padding-right"));if("height"===g)return Math.max(0,Math.min(k.offsetHeight,k.scrollHeight)-a.getStyle(k,"padding-top")-a.getStyle(k,"padding-bottom"));C.getComputedStyle||a.error(27,!0);if(k=C.getComputedStyle(k,void 0))k= +k.getPropertyValue(g),a.pick(p,"opacity"!==g)&&(k=a.pInt(k));return k};a.inArray=function(a,g,p){return g.indexOf(a,p)};a.find=Array.prototype.find?function(a,g){return a.find(g)}:function(a,g){var k,v=a.length;for(k=0;k>16,(k&65280)>>8,k&255,1]:4===v&&(g=[(k&3840)>>4|(k&3840)>>8,(k&240)>>4|k&240,(k&15)<<4|k&15,1])}if(!g)for(p=this.parsers.length;p--&&!g;){var t= +this.parsers[p];(v=t.regex.exec(k))&&(g=t.parse(v))}}this.rgba=g||[]},get:function(a){var g=this.input,k=this.rgba;if(this.stops){var v=F(g);v.stops=[].concat(v.stops);this.stops.forEach(function(g,k){v.stops[k]=[v.stops[k][0],g.get(a)]})}else v=k&&B(k[0])?"rgb"===a||!a&&1===k[3]?"rgb("+k[0]+","+k[1]+","+k[2]+")":"a"===a?k[3]:"rgba("+k.join(",")+")":g;return v},brighten:function(a){var g,k=this.rgba;if(this.stops)this.stops.forEach(function(g){g.brighten(a)});else if(B(a)&&0!==a)for(g=0;3>g;g++)k[g]+= +C(255*a),0>k[g]&&(k[g]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(b=z.width,f=z.height,y&&(z.height=f={"11px,17":14,"13px,20":16}[x&&x.fontSize+","+Math.round(f)]||f),m&&(z.width=Math.abs(f*Math.sin(n))+Math.abs(b*Math.cos(n)),z.height=Math.abs(f* +Math.cos(n))+Math.abs(b*Math.sin(n))));if(u&&0]*>/g,"").replace(/</g,"<").replace(/>/g, +">")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,delete this.textPxLength,this.textStr=a,this.added&&this.renderer.buildText(this))},setTextPath:function(h,b){var d=this.element,z={textAnchor:"text-anchor"},e=!1,x,c=this.textPathWrapper;var q=!c;b=E(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},b);var l=b.attributes;if(h&&b&&b.enabled){this.options&&this.options.padding&&(l.dx=-this.options.padding);c||(this.textPathWrapper=c=this.renderer.createElement("textPath"), +e=!0);var K=c.element;(x=h.element.getAttribute("id"))||h.element.setAttribute("id",x=a.uniqueKey());if(q)for(q=d.getElementsByTagName("tspan");q.length;)q[0].setAttribute("y",0),K.appendChild(q[0]);e&&c.add({element:this.text?this.text.element:d});K.setAttributeNS("http://www.w3.org/1999/xlink","href",this.renderer.url+"#"+x);t(l.dy)&&(K.parentNode.setAttribute("dy",l.dy),delete l.dy);t(l.dx)&&(K.parentNode.setAttribute("dx",l.dx),delete l.dx);a.objectEach(l,function(a,h){K.setAttribute(z[h]||h, +a)});d.removeAttribute("transform");this.removeTextOutline.call(c,[].slice.call(d.getElementsByTagName("tspan")));this.text&&!this.renderer.styledMode&&this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=u}else c&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(d,h));return this},destroyTextPath:function(a,h){var b;h.element.setAttribute("id","");for(b=this.textPathWrapper.element.childNodes;b.length;)a.firstChild.appendChild(b[0]);a.firstChild.removeChild(this.textPathWrapper.element); +delete h.textPathWrapper},fillSetter:function(a,h,b){"string"===typeof a?b.setAttribute(h,a):a&&this.complexColor(a,h,b)},visibilitySetter:function(a,h,b){"inherit"===a?b.removeAttribute(h):this[h]!==a&&b.setAttribute(h,a);this[h]=a},zIndexSetter:function(a,h){var b=this.renderer,d=this.parentGroup,z=(d||b).element||b.box,e=this.element,x=!1;b=z===b.box;var c=this.added;var l;t(a)?(e.setAttribute("data-z-index",a),a=+a,this[h]===a&&(c=!1)):t(this[h])&&e.removeAttribute("data-z-index");this[h]=a;if(c){(a= +this.zIndex)&&d&&(d.handleZ=!0);d=z.childNodes;for(l=d.length-1;0<=l&&!x;l--){c=d[l];var K=c.getAttribute("data-z-index");var w=!t(K);if(c!==e)if(0>a&&w&&!b&&!l)z.insertBefore(e,d[l]),x=!0;else if(q(K)<=a||w&&(!t(a)||0<=a))z.insertBefore(e,d[l+1]||null),x=!0}x||(z.insertBefore(e,d[b?3:0]||null),x=!0)}return x},_defaultSetter:function(a,h,b){b.setAttribute(h,a)}});M.prototype.yGetter=M.prototype.xGetter;M.prototype.translateXSetter=M.prototype.translateYSetter=M.prototype.rotationSetter=M.prototype.verticalAlignSetter= +M.prototype.rotationOriginXSetter=M.prototype.rotationOriginYSetter=M.prototype.scaleXSetter=M.prototype.scaleYSetter=M.prototype.matrixSetter=function(a,h){this[h]=a;this.doTransform=!0};M.prototype["stroke-widthSetter"]=M.prototype.strokeSetter=function(a,h,b){this[h]=a;this.stroke&&this["stroke-width"]?(M.prototype.fillSetter.call(this,this.stroke,"stroke",b),b.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(b.removeAttribute("stroke"), +this.hasStroke=!1)};var Q=a.SVGRenderer=function(){this.init.apply(this,arguments)};e(Q.prototype,{Element:M,SVG_NS:J,init:function(a,h,b,d,e,x,q){var z=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});q||z.css(this.getStyle(d));d=z.element;a.appendChild(d);C(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&C(d,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=d;this.boxWrapper=z;this.alignedObjects=[];this.url=(l||A)&&c.getElementsByTagName("base").length?K.location.href.split("#")[0].replace(/<[^>]*>/g, +"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(c.createTextNode("Created with Highcharts v7.1.2 custom build"));this.defs=this.createElement("defs").add();this.allowHTML=x;this.forExport=e;this.styledMode=q;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(h,b,!1);var w;l&&a.getBoundingClientRect&&(h=function(){p(a,{left:0,top:0});w=a.getBoundingClientRect();p(a,{left:Math.ceil(w.left)-w.left+"px",top:Math.ceil(w.top)- +w.top+"px"})},h(),this.unSubPixelFix=B(K,"resize",h))},definition:function(a){function h(a,e){var z;H(a).forEach(function(a){var x=b.createElement(a.tagName),q={};d(a,function(a,h){"tagName"!==h&&"children"!==h&&"textContent"!==h&&(q[h]=a)});x.attr(q);x.add(e||b.defs);a.textContent&&x.element.appendChild(c.createTextNode(a.textContent));h(a.children||[],x);z=x});return z}var b=this;return h(a)},getStyle:function(a){return this.style=e({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif', +fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();f(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var h=new this.Element;h.init(this,a);return h},draw:u,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/ +2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},truncate:function(a,h,b,d,x,e,q){var z=this,l=a.rotation,K,w=d?1:0,y=(b||d).length,m=y,f=[],n=function(a){h.firstChild&&h.removeChild(h.firstChild);a&&h.appendChild(c.createTextNode(a))},u=function(e,c){var l=c||e;if(void 0===f[l])if(h.getSubStringLength)try{f[l]=x+h.getSubStringLength(0,d?l+1:l)}catch(Z){""}else z.getSpanWidth&&(n(q(b||d,e)),f[l]=x+z.getSpanWidth(a,h));return f[l]},J;a.rotation=0;var M=u(h.textContent.length);if(J=x+M>e){for(;w<= +y;)m=Math.ceil((w+y)/2),d&&(K=q(d,m)),M=u(m,K&&K.length-1),w===y?w=y+1:M>e?y=m-1:w=m;0===y?n(""):b&&y===b.length-1||n(K||q(b||d,m))}d&&d.splice(0,m);a.actualWidth=M;a.rotation=l;return J},escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},buildText:function(a){var h=a.element,b=this,e=b.forExport,z=w(a.textStr,"").toString(),l=-1!==z.indexOf("<"),K=h.childNodes,y,m=C(h,"x"),f=a.styles,n=a.textWidth,u=f&&f.lineHeight,M=f&&f.textOutline,D=f&&"ellipsis"===f.textOverflow,G=f&&"nowrap"=== +f.whiteSpace,O=f&&f.fontSize,H,g=K.length;f=n&&!a.added&&this.box;var A=function(a){var d;b.styledMode||(d=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:O||b.style.fontSize||12);return u?q(u):b.fontMetrics(d,a.getAttribute("style")?a:h).h},k=function(a,h){d(b.escapes,function(b,d){h&&-1!==h.indexOf(b)||(a=a.toString().replace(new RegExp(b,"g"),d))});return a},Q=function(a,h){var b=a.indexOf("<");a=a.substring(b,a.indexOf(">")-b);b=a.indexOf(h+"=");if(-1!==b){b=b+h.length+1;var d=a.charAt(b); +if('"'===d||"'"===d)return a=a.substring(b+1),a.substring(0,a.indexOf(d))}};var r=[z,D,G,u,M,O,n].join();if(r!==a.textCache){for(a.textCache=r;g--;)h.removeChild(K[g]);l||M||D||n||-1!==z.indexOf(" ")?(f&&f.appendChild(h),l?(z=b.styledMode?z.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''):z.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''),z=z.replace(//g, +"").split(//g)):z=[z],z=z.filter(function(a){return""!==a}),z.forEach(function(d,z){var q=0,l=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"|||");var K=d.split("|||");K.forEach(function(d){if(""!==d||1===K.length){var w={},f=c.createElementNS(b.SVG_NS,"tspan"),u,M;(u=Q(d,"class"))&&C(f,"class",u);if(u=Q(d,"style"))u=u.replace(/(;| |^)color([ :])/,"$1fill$2"),C(f,"style",u);(M=Q(d,"href"))&&!e&&(C(f,"onclick",'location.href="'+M+'"'),C(f,"class", +"highcharts-anchor"),b.styledMode||p(f,{cursor:"pointer"}));d=k(d.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==d){f.appendChild(c.createTextNode(d));q?w.dx=0:z&&null!==m&&(w.x=m);C(f,w);h.appendChild(f);!q&&H&&(!x&&e&&p(f,{display:"block"}),C(f,"dy",A(f)));if(n){var g=d.replace(/([^\^])-/g,"$1- ").split(" ");w=!G&&(1Math.abs(x.end-x.start-2*Math.PI));var z=Math.cos(e),K=Math.sin(e),f=Math.cos(l);l=Math.sin(l);e=.001>x.end-e-Math.PI?0:1;x=["M",a+c*z,h+q*K,"A",c,q,0,e,w(x.clockwise,1),a+c*f,h+q*l];t(b)&&x.push(d?"M":"L",a+b*f,h+b*l,"A",b,b,0,e,0,a+b*z,h+b*K);x.push(d?"":"Z");return x},callout:function(a,h,b,d,x){var e=Math.min(x&&x.r||0,b,d),c=e+6,q=x&&x.anchorX;x=x&& +x.anchorY;var l=["M",a+e,h,"L",a+b-e,h,"C",a+b,h,a+b,h,a+b,h+e,"L",a+b,h+d-e,"C",a+b,h+d,a+b,h+d,a+b-e,h+d,"L",a+e,h+d,"C",a,h+d,a,h+d,a,h+d-e,"L",a,h+e,"C",a,h,a,h,a+e,h];q&&q>b?x>h+c&&xq?x>h+c&&xd&&q>a+c&&qx&&q>a+c&&qa?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,h,b){var d=a;h&&b&&(d=Math.max(d*Math.cos(h*r),4));return{x:-a/3*Math.sin(h*r),y:d}},label:function(h, +b,d,x,c,q,l,K,w){var f=this,y=f.styledMode,n=f.g("button"!==w&&"label"),m=n.text=f.text("",0,0,l).attr({zIndex:1}),u,z,J=0,D=3,O=0,H,g,A,k,Q,r={},v,p,N=/^url\((.*?)\)$/.test(x),U=y||N,R=function(){return y?u.strokeWidth()%2/2:(v?parseInt(v,10):0)%2/2};w&&n.addClass("highcharts-"+w);var S=function(){var a=m.element.style,h={};z=(void 0===H||void 0===g||Q)&&t(m.textStr)&&m.getBBox();n.width=(H||z.width||0)+2*D+O;n.height=(g||z.height||0)+2*D;p=D+Math.min(f.fontMetrics(a&&a.fontSize,m).b,z?z.height: +Infinity);U&&(u||(n.box=u=f.symbols[x]||N?f.symbol(x):f.rect(),u.addClass(("button"===w?"":"highcharts-label-box")+(w?" highcharts-"+w+"-box":"")),u.add(n),a=R(),h.x=a,h.y=(K?-p:0)+a),h.width=Math.round(n.width),h.height=Math.round(n.height),u.attr(e(h,r)),r={})};var T=function(){var a=O+D;var h=K?0:p;t(H)&&z&&("center"===Q||"right"===Q)&&(a+={center:.5,right:1}[Q]*(H-z.width));if(a!==m.x||h!==m.y)m.attr("x",a),m.hasBoxWidthChanged&&(z=m.getBBox(!0),S()),void 0!==h&&m.attr("y",h);m.x=a;m.y=h};var C= +function(a,h){u?u.attr(a,h):r[a]=h};n.onAdd=function(){m.add(n);n.attr({text:h||0===h?h:"",x:b,y:d});u&&t(c)&&n.attr({anchorX:c,anchorY:q})};n.widthSetter=function(h){H=a.isNumber(h)?h:null};n.heightSetter=function(a){g=a};n["text-alignSetter"]=function(a){Q=a};n.paddingSetter=function(a){t(a)&&a!==D&&(D=n.padding=a,T())};n.paddingLeftSetter=function(a){t(a)&&a!==O&&(O=a,T())};n.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,z&&n.attr({x:A}))};n.textSetter=function(a){void 0!== +a&&m.attr({text:a});S();T()};n["stroke-widthSetter"]=function(a,h){a&&(U=!0);v=this["stroke-width"]=a;C(h,a)};y?n.rSetter=function(a,h){C(h,a)}:n.strokeSetter=n.fillSetter=n.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(U=!0),n[h]=a);C(h,a)};n.anchorXSetter=function(a,h){c=n.anchorX=a;C(h,Math.round(a)-R()-A)};n.anchorYSetter=function(a,h){q=n.anchorY=a;C(h,a-k)};n.xSetter=function(a){n.x=a;J&&(a-=J*((H||z.width)+2*D),n["forceAnimate:x"]=!0);A=Math.round(a);n.attr("translateX",A)};n.ySetter=function(a){k= +n.y=Math.round(a);n.attr("translateY",k)};var B=n.css;l={css:function(a){if(a){var h={};a=E(a);n.textProps.forEach(function(b){void 0!==a[b]&&(h[b]=a[b],delete a[b])});m.css(h);"width"in h&&S();"fontSize"in h&&(S(),T())}return B.call(n,a)},getBBox:function(){return{width:z.width+2*D,height:z.height+2*D,x:z.x-D,y:z.y-D}},destroy:function(){G(n.element,"mouseenter");G(n.element,"mouseleave");m&&(m=m.destroy());u&&(u=u.destroy());M.prototype.destroy.call(n);n=f=S=T=C=null}};y||(l.shadow=function(a){a&& +(S(),u&&u.shadow(a));return n});return e(n,l)}});a.Renderer=Q});L(I,"v7.1.2/js/parts/Html.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.attr,F=a.createElement,C=a.css,k=a.defined,g=a.extend,p=a.isFirefox,v=a.isMS,t=a.isWebKit,r=a.pick,f=a.pInt,c=a.SVGElement,e=a.SVGRenderer,m=a.win;g(c.prototype,{htmlCss:function(a){var b="SPAN"===this.element.tagName&&a&&"width"in a,e=r(b&&a.width,void 0);if(b){delete a.width;this.textWidth=e;var c=!0}a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap", +a.overflow="hidden");this.styles=g(this.styles,a);C(this.element,a);c&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,e=this.element,c=this.translateX||0,m=this.translateY||0,D=this.x||0,g=this.y||0,A=this.textAlign||"left",r={left:0,center:.5,right:1}[A],u=this.styles,d=u&&u.whiteSpace;C(e,{marginLeft:c,marginTop:m}); +!a.styledMode&&this.shadows&&this.shadows.forEach(function(a){C(a,{marginLeft:c+1,marginTop:m+1})});this.inverted&&[].forEach.call(e.childNodes,function(b){a.invertChild(b,e)});if("SPAN"===e.tagName){u=this.rotation;var w=this.textWidth&&f(this.textWidth),q=[u,A,e.innerHTML,this.textWidth,this.textAlign].join(),G;(G=w!==this.oldTextWidth)&&!(G=w>this.oldTextWidth)&&((G=this.textPxLength)||(C(e,{width:"",whiteSpace:d||"nowrap"}),G=e.offsetWidth),G=G>w);G&&(/[ \-]/.test(e.textContent||e.innerText)|| +"ellipsis"===e.style.textOverflow)?(C(e,{width:w+"px",display:"block",whiteSpace:d||"normal"}),this.oldTextWidth=w,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;q!==this.cTT&&(d=a.fontMetrics(e.style.fontSize,e).b,!k(u)||u===(this.oldRotation||0)&&A===this.oldAlign||this.setSpanRotation(u,r,d),this.getSpanCorrection(!k(u)&&this.textPxLength||e.offsetWidth,d,r,u,A));C(e,{left:D+(this.xCorr||0)+"px",top:g+(this.yCorr||0)+"px"});this.cTT=q;this.oldRotation=u;this.oldAlign=A}}else this.alignOnAdd= +!0},setSpanRotation:function(a,e,c){var b={},l=this.renderer.getTransformKey();b[l]=b.transform="rotate("+a+"deg)";b[l+(p?"Origin":"-origin")]=b.transformOrigin=100*e+"% "+c+"px";C(this.element,b)},getSpanCorrection:function(a,e,c){this.xCorr=-a*c;this.yCorr=-e}});g(e.prototype,{getTransformKey:function(){return v&&!/Edge/.test(m.navigator.userAgent)?"-ms-transform":t?"-webkit-transform":p?"MozTransform":m.opera?"-o-transform":""},html:function(b,e,l){var f=this.createElement("span"),n=f.element, +m=f.renderer,A=m.isSVG,k=function(a,b){["opacity","visibility"].forEach(function(d){a[d+"Setter"]=function(e,q,h){var x=a.div?a.div.style:b;c.prototype[d+"Setter"].call(this,e,q,h);x&&(x[q]=e)}});a.addedSetters=!0},u=a.charts[m.chartIndex];u=u&&u.styledMode;f.textSetter=function(a){a!==n.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=a;n.innerHTML=r(a,"");f.doTransform=!0};A&&k(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(a,b){"align"===b&&(b= +"textAlign");f[b]=a;f.doTransform=!0};f.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};f.attr({text:b,x:Math.round(e),y:Math.round(l)}).css({position:"absolute"});u||f.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});n.style.whiteSpace="nowrap";f.css=f.htmlCss;A&&(f.add=function(a){var b=m.box.parentNode,d=[];if(this.parentGroup=a){var e=a.div;if(!e){for(;a;)d.push(a),a=a.parentGroup;d.reverse().forEach(function(a){function h(h,b){a[b]= +h;"translateX"===b?c.left=h+"px":c.top=h+"px";a.doTransform=!0}var x=B(a.element,"class");x&&(x={className:x});e=a.div=a.div||F("div",x,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},e||b);var c=e.style;g(a,{classSetter:function(a){return function(h){this.element.setAttribute("class",h);a.className=h}}(e),on:function(){d[0].div&&f.on.apply({element:d[0].div},arguments);return a},translateXSetter:h, +translateYSetter:h});a.addedSetters||k(a)})}}else e=b;e.appendChild(n);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f}})});L(I,"v7.1.2/js/parts/Time.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.defined,F=a.extend,C=a.merge,k=a.pick,g=a.timeUnits,p=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(a){var g=k(a&&a.useUTC,!0),r=this;this.options=a=C(!0,this.options||{},a);this.Date=a.Date||p.Date||Date;this.timezoneOffset= +(this.useUTC=g)&&a.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(g&&!a.getTimezoneOffset&&!a.timezone))||this.timezoneOffset?(this.get=function(a,c){var e=c.getTime(),f=e-r.getTimezoneOffset(c);c.setTime(f);f=c["getUTC"+a]();c.setTime(e);return f},this.set=function(a,c,e){if("Milliseconds"===a||"Seconds"===a||"Minutes"===a&&0===c.getTimezoneOffset()%60)c["set"+a](e);else{var f=r.getTimezoneOffset(c);f=c.getTime()-f;c.setTime(f);c["setUTC"+a](e);a=r.getTimezoneOffset(c); +f=c.getTime()+a;c.setTime(f)}}):g?(this.get=function(a,c){return c["getUTC"+a]()},this.set=function(a,c,e){return c["setUTC"+a](e)}):(this.get=function(a,c){return c["get"+a]()},this.set=function(a,c,e){return c["set"+a](e)})},makeTime:function(g,p,r,f,c,e){if(this.useUTC){var m=this.Date.UTC.apply(0,arguments);var b=this.getTimezoneOffset(m);m+=b;var n=this.getTimezoneOffset(m);b!==n?m+=n-b:b-36E5!==this.getTimezoneOffset(m-36E5)||a.isSafari||(m-=36E5)}else m=(new this.Date(g,p,k(r,1),k(f,0),k(c, +0),k(e,0))).getTime();return m},timezoneOffsetFunction:function(){var g=this,k=this.options,r=p.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(k.timezone){if(r)return function(a){return 6E4*-r.tz(a,k.timezone).utcOffset()};a.error(25)}return this.useUTC&&k.getTimezoneOffset?function(a){return 6E4*k.getTimezoneOffset(a)}:function(){return 6E4*(g.timezoneOffset||0)}},dateFormat:function(g,k,r){if(!a.defined(k)||isNaN(k))return a.defaultOptions.lang.invalidDate|| +"";g=a.pick(g,"%Y-%m-%d %H:%M:%S");var f=this,c=new this.Date(k),e=this.get("Hours",c),m=this.get("Day",c),b=this.get("Date",c),n=this.get("Month",c),l=this.get("FullYear",c),y=a.defaultOptions.lang,D=y.weekdays,p=y.shortWeekdays,A=a.pad;c=a.extend({a:p?p[m]:D[m].substr(0,3),A:D[m],d:A(b),e:A(b,2," "),w:m,b:y.shortMonths[n],B:y.months[n],m:A(n+1),o:n+1,y:l.toString().substr(2,2),Y:l,H:A(e),k:e,I:A(e%12||12),l:e%12||12,M:A(f.get("Minutes",c)),p:12>e?"AM":"PM",P:12>e?"am":"pm",S:A(c.getSeconds()),L:A(Math.floor(k% +1E3),3)},a.dateFormats);a.objectEach(c,function(a,b){for(;-1!==g.indexOf("%"+b);)g=g.replace("%"+b,"function"===typeof a?a.call(f,k):a)});return r?g.substr(0,1).toUpperCase()+g.substr(1):g},resolveDTLFormat:function(g){return a.isObject(g,!0)?g:(g=a.splat(g),{main:g[0],from:g[1],to:g[2]})},getTimeTicks:function(a,p,r,f){var c=this,e=[],m={};var b=new c.Date(p);var n=a.unitRange,l=a.count||1,y;f=k(f,1);if(B(p)){c.set("Milliseconds",b,n>=g.second?0:l*Math.floor(c.get("Milliseconds",b)/l));n>=g.second&& +c.set("Seconds",b,n>=g.minute?0:l*Math.floor(c.get("Seconds",b)/l));n>=g.minute&&c.set("Minutes",b,n>=g.hour?0:l*Math.floor(c.get("Minutes",b)/l));n>=g.hour&&c.set("Hours",b,n>=g.day?0:l*Math.floor(c.get("Hours",b)/l));n>=g.day&&c.set("Date",b,n>=g.month?1:Math.max(1,l*Math.floor(c.get("Date",b)/l)));if(n>=g.month){c.set("Month",b,n>=g.year?0:l*Math.floor(c.get("Month",b)/l));var D=c.get("FullYear",b)}n>=g.year&&c.set("FullYear",b,D-D%l);n===g.week&&(D=c.get("Day",b),c.set("Date",b,c.get("Date",b)- +D+f+(D4*g.month||c.getTimezoneOffset(p)!==c.getTimezoneOffset(r));p=b.getTime();for(b=1;pe.length&&e.forEach(function(a){0===a%18E5&&"000000000"=== +c.dateFormat("%H%M%S%L",a)&&(m[a]="day")})}e.info=F(a,{higherRanks:m,totalRange:n*l});return e}}});L(I,"v7.1.2/js/parts/Options.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.color,F=a.merge;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "), +shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right", +x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"}, +itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0, +animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'{point.key}
',pointFormat:'\u25cf {series.name}: {point.y}
',backgroundColor:B("#f7f7f7").setOpacity(.85).get(), +borderWidth:1,shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.setOptions=function(C){a.defaultOptions=F(!0,a.defaultOptions,C);a.time.update(F(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions}; +a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(F(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(C,k,g){return a.time.dateFormat(C,k,g)};""});L(I,"v7.1.2/js/parts/Tick.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.correctFloat,F=a.defined,C=a.destroyObjectProperties,k=a.fireEvent,g=a.isNumber,p=a.merge,v=a.pick,t=a.deg2rad;a.Tick=function(a,f,c,e,m){this.axis=a;this.pos=f;this.type=c||"";this.isNewLabel=this.isNew=!0;this.parameters=m||{};this.tickmarkOffset= +this.parameters.tickmarkOffset;this.options=this.parameters.options;c||e||this.addLabel()};a.Tick.prototype={addLabel:function(){var g=this,f=g.axis,c=f.options,e=f.chart,m=f.categories,b=f.names,n=g.pos,l=v(g.options&&g.options.labels,c.labels),y=f.tickPositions,D=n===y[0],k=n===y[y.length-1];m=this.parameters.category||(m?v(m[n],b[n],n):n);var A=g.label;y=y.info;var E,u;if(f.isDatetimeAxis&&y){var d=e.time.resolveDTLFormat(c.dateTimeLabelFormats[!c.grid&&y.higherRanks[n]||y.unitName]);var w=d.main}g.isFirst= +D;g.isLast=k;g.formatCtx={axis:f,chart:e,isFirst:D,isLast:k,dateTimeLabelFormat:w,tickPositionInfo:y,value:f.isLog?B(f.lin2log(m)):m,pos:n};c=f.labelFormatter.call(g.formatCtx,this.formatCtx);if(u=d&&d.list)g.shortenLabel=function(){for(E=0;Ey&&e-g*kb&&(d=Math.round((m-e)/Math.cos(y*t)));else if(m=e+(1-g)*k,e-g*kb&&(r=b-a.x+r*g,u=-1),r=Math.min(A,r),rr||f.autoRotation&& +(l.styles||{}).width)d=r;d&&(this.shortenLabel?this.shortenLabel():(w.width=Math.floor(d),(c.style||{}).textOverflow||(w.textOverflow="ellipsis"),l.css(w)))},getPosition:function(g,f,c,e){var m=this.axis,b=m.chart,n=e&&b.oldChartHeight||b.chartHeight;g={x:g?a.correctFloat(m.translate(f+c,null,null,e)+m.transB):m.left+m.offset+(m.opposite?(e&&b.oldChartWidth||b.chartWidth)-m.right-m.left:0),y:g?n-m.bottom+m.offset-(m.opposite?m.height:0):a.correctFloat(n-m.translate(f+c,null,null,e)-m.transB)};g.y= +Math.max(Math.min(g.y,1E5),-1E5);k(this,"afterGetPosition",{pos:g});return g},getLabelPosition:function(a,f,c,e,m,b,n,l){var y=this.axis,g=y.transA,r=y.reversed,A=y.staggerLines,p=y.tickRotCorr||{x:0,y:0},u=m.y,d=e||y.reserveSpaceDefault?0:-y.labelOffset*("center"===y.labelAlign?.5:1),w={};F(u)||(u=0===y.side?c.rotation?-8:-c.getBBox().height:2===y.side?p.y+8:Math.cos(c.rotation*t)*(p.y-c.getBBox(!1,0).height/2));a=a+m.x+d+p.x-(b&&e?b*g*(r?-1:1):0);f=f+u-(b&&!e?b*g*(r?1:-1):0);A&&(c=n/(l||1)%A,y.opposite&& +(c=A-c-1),f+=y.labelOffset/A*c);w.x=a;w.y=Math.round(f);k(this,"afterGetLabelPosition",{pos:w,tickmarkOffset:b,index:n});return w},getMarkPath:function(a,f,c,e,m,b){return b.crispLine(["M",a,f,"L",a+(m?0:-c),f+(m?c:0)],e)},renderGridLine:function(a,f,c){var e=this.axis,m=e.options,b=this.gridLine,n={},l=this.pos,y=this.type,g=v(this.tickmarkOffset,e.tickmarkOffset),k=e.chart.renderer,A=y?y+"Grid":"grid",r=m[A+"LineWidth"],u=m[A+"LineColor"];m=m[A+"LineDashStyle"];b||(e.chart.styledMode||(n.stroke= +u,n["stroke-width"]=r,m&&(n.dashstyle=m)),y||(n.zIndex=1),a&&(f=0),this.gridLine=b=k.path().attr(n).addClass("highcharts-"+(y?y+"-":"")+"grid-line").add(e.gridGroup));if(b&&(c=e.getPlotLinePath({value:l+g,lineWidth:b.strokeWidth()*c,force:"pass",old:a})))b[a||this.isNew?"attr":"animate"]({d:c,opacity:f})},renderMark:function(a,f,c){var e=this.axis,m=e.options,b=e.chart.renderer,n=this.type,l=n?n+"Tick":"tick",y=e.tickSize(l),g=this.mark,k=!g,A=a.x;a=a.y;var r=v(m[l+"Width"],!n&&e.isXAxis?1:0);m=m[l+ +"Color"];y&&(e.opposite&&(y[0]=-y[0]),k&&(this.mark=g=b.path().addClass("highcharts-"+(n?n+"-":"")+"tick").add(e.axisGroup),e.chart.styledMode||g.attr({stroke:m,"stroke-width":r})),g[k?"attr":"animate"]({d:this.getMarkPath(A,a,y[0],g.strokeWidth()*c,e.horiz,b),opacity:f}))},renderLabel:function(a,f,c,e){var m=this.axis,b=m.horiz,n=m.options,l=this.label,y=n.labels,D=y.step;m=v(this.tickmarkOffset,m.tickmarkOffset);var k=!0,A=a.x;a=a.y;l&&g(A)&&(l.xy=a=this.getLabelPosition(A,a,l,b,y,m,e,D),this.isFirst&& +!this.isLast&&!v(n.showFirstLabel,1)||this.isLast&&!this.isFirst&&!v(n.showLastLabel,1)?k=!1:!b||y.step||y.rotation||f||0===c||this.handleOverflow(a),D&&e%D&&(k=!1),k&&g(a.y)?(a.opacity=c,l[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(l.attr("y",-9999),this.isNewLabel=!0))},render:function(g,f,c){var e=this.axis,m=e.horiz,b=this.pos,n=v(this.tickmarkOffset,e.tickmarkOffset);b=this.getPosition(m,b,n,f);n=b.x;var l=b.y;e=m&&n===e.pos+e.len||!m&&l===e.pos?-1:1;c=v(c,1);this.isActive=!0; +this.renderGridLine(f,c,e);this.renderMark(b,c,e);this.renderLabel(b,f,c,g);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){C(this,this.axis)}}});L(I,"v7.1.2/js/parts/Axis.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.addEvent,F=a.animObject,C=a.arrayMax,k=a.arrayMin,g=a.color,p=a.correctFloat,v=a.defaultOptions,t=a.defined,r=a.deg2rad,f=a.destroyObjectProperties,c=a.extend,e=a.fireEvent,m=a.format,b=a.getMagnitude,n=a.isArray,l=a.isNumber,y=a.isString,D=a.merge,N=a.normalizeTickInterval, +A=a.objectEach,E=a.pick,u=a.removeEvent,d=a.seriesTypes,w=a.splat,q=a.syncTimeout,G=a.Tick,H=function(){this.init.apply(this,arguments)};a.extend(H.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",cursor:"default", +fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72, showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}}, -defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}},init:function(a,b){var f=b.isX,l=this;l.chart=a;l.horiz=a.inverted&&!l.isZAxis?!f:f;l.isXAxis=f;l.coll=l.coll||(f?"xAxis":"yAxis");c(this,"init",{userOptions:b});l.opposite=b.opposite;l.side=b.side||(l.horiz?l.opposite?0:2:l.opposite?1:3);l.setOptions(b);var d=this.options,k=d.type;l.labelFormatter=d.labels.formatter||l.defaultLabelFormatter;l.userOptions=b;l.minPixelPadding=0;l.reversed=d.reversed;l.visible=!1!== -d.visible;l.zoomEnabled=!1!==d.zoomEnabled;l.hasNames="category"===k||!0===d.categories;l.categories=d.categories||l.hasNames;l.names||(l.names=[],l.names.keys={});l.plotLinesAndBandsGroups={};l.isLog="logarithmic"===k;l.isDatetimeAxis="datetime"===k;l.positiveValuesOnly=l.isLog&&!l.allowNegativeLog;l.isLinked=u(d.linkedTo);l.ticks={};l.labelEdge=[];l.minorTicks={};l.plotLinesAndBands=[];l.alternateBands={};l.len=0;l.minRange=l.userMinRange=d.minRange||d.maxZoom;l.range=d.range;l.offset=d.offset|| -0;l.stacks={};l.oldStacks={};l.stacksTouched=0;l.max=null;l.min=null;l.crosshair=z(d.crosshair,h(a.options.tooltip.crosshairs)[f?0:1],!1);k=l.options.events;-1===a.axes.indexOf(l)&&(f?a.axes.splice(a.xAxis.length,0,l):a.axes.push(l),a[l.coll].push(l));l.series=l.series||[];a.inverted&&!l.isZAxis&&f&&void 0===l.reversed&&(l.reversed=!0);H(k,function(a,f){E(l,f,a)});l.lin2log=d.linearToLogConverter||l.lin2log;l.isLog&&(l.val2lin=l.log2lin,l.lin2val=l.lin2log);c(this,"afterInit")},setOptions:function(a){this.options= -D(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],D(t[this.coll],a));c(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var f=this.axis,c=this.value,b=f.chart.time,d=f.categories,h=this.dateTimeLabelFormat,k=t.lang,e=k.numericSymbols;k=k.numericSymbolMagnitude||1E3;var p=e&&e.length,g=f.options.labels.format;f=f.isLog?Math.abs(c): -f.tickInterval;if(g)var q=m(g,this,b);else if(d)q=c;else if(h)q=b.dateFormat(h,c);else if(p&&1E3<=f)for(;p--&&void 0===q;)b=Math.pow(k,p+1),f>=b&&0===10*c%b&&null!==e[p]&&0!==c&&(q=a.numberFormat(c/b,-1)+e[p]);void 0===q&&(q=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return q},getSeriesExtremes:function(){var a=this,l=a.chart;c(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks(); -a.series.forEach(function(f){if(f.visible||!l.options.chart.ignoreHiddenSeries){var c=f.options,b=c.threshold;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=b&&(b=null);if(a.isXAxis){if(c=f.xData,c.length){f=e(c);var d=C(c);p(f)||f instanceof Date||(c=c.filter(p),f=e(c),d=C(c));c.length&&(a.dataMin=Math.min(z(a.dataMin,c[0],f),f),a.dataMax=Math.max(z(a.dataMax,c[0],d),d))}}else if(f.getExtremes(),d=f.dataMax,f=f.dataMin,u(f)&&u(d)&&(a.dataMin=Math.min(z(a.dataMin,f),f),a.dataMax=Math.max(z(a.dataMax, -d),d)),u(b)&&(a.threshold=b),!c.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});c(this,"afterGetSeriesExtremes")},translate:function(a,c,b,d,h,k){var f=this.linkedParent||this,l=1,e=0,B=d?f.oldTransA:f.transA;d=d?f.oldMin:f.min;var g=f.minPixelPadding;h=(f.isOrdinal||f.isBroken||f.isLog&&h)&&f.lin2val;B||(B=f.transA);b&&(l*=-1,e=f.len);f.reversed&&(l*=-1,e-=l*(f.sector||f.len));c?(a=(a*l+e-g)/B+d,h&&(a=f.lin2val(a))):(h&&(a=f.val2lin(a)),a=p(d)?l*(a-d)*B+e+l*g+(p(k)?B*k:0):void 0);return a}, -toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a-(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,l,b,d,h){var f=this,k=f.chart,e=f.left,g=f.top,q,m,v,A,J=b&&k.oldChartHeight||k.chartHeight,x=b&&k.oldChartWidth||k.chartWidth,y,n=f.transB,r=function(a,f,c){if("pass"!==d&&ac)d?a=Math.min(Math.max(f,a),c):y=!0;return a};var F={value:a,lineWidth:l,old:b,force:d,translatedValue:h};c(this,"getPlotLinePath", -F,function(c){h=z(h,f.translate(a,null,null,b));h=Math.min(Math.max(-1E5,h),1E5);q=v=Math.round(h+n);m=A=Math.round(J-h-n);p(h)?f.horiz?(m=g,A=J-f.bottom,q=v=r(q,e,e+f.width)):(q=e,v=x-f.right,m=A=r(m,g,g+f.height)):(y=!0,d=!1);c.path=y&&!d?null:k.renderer.crispLine(["M",q,m,"L",v,A],l||1)});return F.path},getLinearTickPositions:function(a,c,b){var f=n(Math.floor(c/a)*a);b=n(Math.ceil(b/a)*a);var l=[],d;n(f+a)===f&&(d=20);if(this.single)return[c];for(c=f;c<=b;){l.push(c);c=n(c+a,d);if(c===h)break; -var h=c}return l},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?z(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,c=a.options,b=a.tickPositions,d=a.minorTickInterval,h=[],k=a.pointRangePadding||0,e=a.min-k;k=a.max+k;var p=k-e;if(p&&p/d=this.minRange;var m=this.minRange;var v=(m-b+c)/2;v=[c-v,z(a.min,c-v)];q&&(v[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin);c=C(v);b=[c+m,z(a.max,c+m)];q&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax);b=e(b);b-c=H)C=H,v=0;else if(b.dataMax<=H){var E=H;q=0}b.min=z(M,C,b.dataMin);b.max=z(w,E,b.dataMax)}k&&(b.positiveValuesOnly&&!f&&0>=Math.min(b.min,z(b.dataMin,b.min))&&a.error(10,1,d),b.min=n(b.log2lin(b.min),15),b.max=n(b.log2lin(b.max),15));b.range&&u(b.max)&&(b.userMin=b.min=M=Math.max(b.dataMin,b.minFromRange()),b.userMax=w=b.max,b.range=null);c(b,"foundExtremes");b.beforePadding&& -b.beforePadding();b.adjustForMinRange();!(D||b.axisPointRange||b.usePercentage||m)&&u(b.min)&&u(b.max)&&(d=b.max-b.min)&&(!u(M)&&v&&(b.min-=d*v),!u(w)&&q&&(b.max+=d*q));p(h.softMin)&&!p(b.userMin)&&(b.min=Math.min(b.min,h.softMin));p(h.softMax)&&!p(b.userMax)&&(b.max=Math.max(b.max,h.softMax));p(h.floor)&&(b.min=Math.min(Math.max(b.min,h.floor),Number.MAX_VALUE));p(h.ceiling)&&(b.max=Math.max(Math.min(b.max,h.ceiling),z(b.userMax,-Number.MAX_VALUE)));t&&u(b.dataMin)&&(H=H||0,!u(M)&&b.min= -H?b.min=H:!u(w)&&b.max>H&&b.dataMax<=H&&(b.max=H));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:m&&!r&&F===b.linkedParent.options.tickPixelInterval?r=b.linkedParent.tickInterval:z(r,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,D?1:(b.max-b.min)*F/Math.max(b.len,F));g&&!f&&b.series.forEach(function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval= -b.postProcessTickInterval(b.tickInterval));b.pointRange&&!r&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));f=z(h.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!r&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()},setTickPositions:function(){var f=this.options, -b=f.tickPositions;var d=this.getMinorTickInterval();var h=f.tickPositioner,k=f.startOnTick,e=f.endOnTick;this.tickmarkOffset=this.categories&&"between"===f.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===d&&this.tickInterval?this.tickInterval/5:d;this.single=this.min===this.max&&u(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==f.allowDecimals);this.tickPositions=d=b&&b.slice();!d&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2* -this.len,200)?(d=[this.min,this.max],a.error(19,!1,this.chart)):d=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,f.units),this.min,this.max,f.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),d.length>this.len&&(d=[d[0],d.pop()],d[0]===d[1]&&(d.length=1)),this.tickPositions=d,h&&(h=h.apply(this,[this.min,this.max])))&& -(this.tickPositions=d=h);this.paddedTicks=d.slice(0);this.trimTicks(d,k,e);this.isLinked||(this.single&&2>d.length&&(this.min-=.5,this.max+=.5),b||h||this.adjustTickAmount());c(this,"afterSetTickPositions")},trimTicks:function(a,b,d){var f=a[0],h=a[a.length-1],l=this.minPointOffset||0;c(this,"trimTicks");if(!this.isLinked){if(b&&-Infinity!==f)this.min=f;else for(;this.min-l>a[0];)a.shift();if(d)this.max=h;else for(;this.max+lc&&(this.finalTickAmt=c,c=5);this.tickAmount=c},adjustTickAmount:function(){var a=this.options,c=this.tickInterval,b=this.tickPositions,d=this.tickAmount,h=this.finalTickAmt,k=b&&b.length,e=z(this.threshold,this.softThreshold?0:null),p;if(this.hasData()){if(kd&&(this.tickInterval*=2,this.setTickPositions());if(u(h)){for(c=a=b.length;c--;)(3===h&&1===c%2||2>=h&&0l&&(c=l)),u(d)&&(bl&&(b=l))),this.displayBtn=void 0!==c||void 0!==b,this.setExtremes(c,b,!1,void 0,{trigger:"zoom"});a.zoomed=!0});return h.zoomed}, -setAxisSize:function(){var f=this.chart,c=this.options,b=c.offsets||[0,0,0,0],d=this.horiz,h=this.width=Math.round(a.relativeLength(z(c.width,f.plotWidth-b[3]+b[1]),f.plotWidth)),k=this.height=Math.round(a.relativeLength(z(c.height,f.plotHeight-b[0]+b[2]),f.plotHeight)),e=this.top=Math.round(a.relativeLength(z(c.top,f.plotTop+b[0]),f.plotHeight,f.plotTop));c=this.left=Math.round(a.relativeLength(z(c.left,f.plotLeft+b[3]),f.plotWidth,f.plotLeft));this.bottom=f.chartHeight-k-e;this.right=f.chartWidth- -h-c;this.len=Math.max(d?h:k,0);this.pos=d?c:e},getExtremes:function(){var a=this.isLog;return{min:a?n(this.lin2log(this.min)):this.min,max:a?n(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var f=this.isLog,c=f?this.lin2log(this.min):this.min;f=f?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=c:Infinity===a?a=f:c>a?a=c:ff?a.align="right":195f&&(a.align="left")});return a.align},tickSize:function(a){var f=this.options,b=f[a+"Length"],d=z(f[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&b){"inside"===f[a+"Position"]&&(b=-b);var h=[b,d]}a={tickSize:h};c(this,"afterTickSize",a);return a.tickSize},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&& -this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,c=this.horiz,b=this.tickInterval,d=b,h=this.len/(((this.categories?1:0)+this.max-this.min)/b),k,e=a.rotation,p=this.labelMetrics(),m,g=Number.MAX_VALUE,q,v=this.max-this.min,y=function(a){var f=a/(h||1);f=1v&&Infinity!==a&&Infinity!==h&&(f=Math.ceil(v/b));return n(f*b)};c?(q=!a.staggerLines&&!a.step&&(u(e)?[e]:h=a){m=y(Math.abs(p.h/Math.sin(w*a)));var f=m+Math.abs(a/360);f(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/d||!c&&(b.style&&parseInt(b.style.width,10)||h&&h-f.spacing[3]||.33*f.chartWidth)},renderUnsquish:function(){var a= -this.chart,c=a.renderer,b=this.tickPositions,d=this.ticks,h=this.options.labels,k=h&&h.style||{},e=this.horiz,p=this.getSlotWidth(),m=Math.max(1,Math.round(p-2*(h.padding||5))),g={},v=this.labelMetrics(),y=h.style&&h.style.textOverflow,x=0;q(h.rotation)||(g.rotation=h.rotation||0);b.forEach(function(a){(a=d[a])&&a.label&&a.label.textPxLength>x&&(x=a.label.textPxLength)});this.maxLabelLength=x;if(this.autoRotation)x>m&&x>v.h?g.rotation=this.labelRotation:this.labelRotation=0;else if(p){var n=m;if(!y){var r= -"clip";for(m=b.length;!e&&m--;){var F=b[m];if(F=d[F].label)F.styles&&"ellipsis"===F.styles.textOverflow?F.css({textOverflow:"clip"}):F.textPxLength>p&&F.css({width:p+"px"}),F.getBBox().height>this.len/b.length-(v.h-v.f)&&(F.specificTextOverflow="ellipsis")}}}g.rotation&&(n=x>.5*a.chartHeight?.33*a.chartHeight:x,y||(r="ellipsis"));if(this.labelAlign=h.align||this.autoLabelAlign(this.labelRotation))g.align=this.labelAlign;b.forEach(function(a){var f=(a=d[a])&&a.label,c=k.width,b={};f&&(f.attr(g),a.shortenLabel? -a.shortenLabel():n&&!c&&"nowrap"!==k.whiteSpace&&(n=this.min&&a<=this.max)f[a]||(f[a]=new F(this,a)),d&&f[a].isNew&&f[a].render(b,!0,-1),f[a].render(b)},render:function(){var b=this,d=b.chart,h=b.options, -k=b.isLog,e=b.isLinked,m=b.tickPositions,g=b.axisTitle,q=b.ticks,y=b.minorTicks,x=b.alternateBands,n=h.stackLabels,r=h.alternateGridColor,z=b.tickmarkOffset,D=b.axisLine,t=b.showAxis,M=I(d.renderer.globalAnimation),u,w;b.labelEdge.length=0;b.overlap=!1;[q,y,x].forEach(function(a){H(a,function(a){a.isActive=!1})});if(b.hasData()||e)b.minorTickInterval&&!b.categories&&b.getMinorTickPositions().forEach(function(a){b.renderMinorTick(a)}),m.length&&(m.forEach(function(a,c){b.renderTick(a,c)}),z&&(0=== -b.min||b.single)&&(q[-1]||(q[-1]=new F(b,-1,null,!0)),q[-1].render(-1))),r&&m.forEach(function(c,f){w=void 0!==m[f+1]?m[f+1]+z:b.max-z;0===f%2&&cm-p?m:m-p);else if(l)g[a]=Math.max(d,f+p+c>b?f:f+p);else return!1},t=function(a,b,c,f){var d;fb-e?d=!1:g[a]=fb-c/2?b-c-2:f-c/2;return d},f=function(a){var b=k;k=h;h=b;q=a},l=function(){!1!==F.apply(0,k)?!1!==t.apply(0,h)||q||(f(!0),l()):q?g.x=g.y=0:(f(!0),l())};(d.inverted||1l&&(p=!1);f=(h.series&&h.series.yAxis&&h.series.yAxis.pos)+(h.plotY||0);f-=z;h.isHeader&&(f=y?-D:g.plotHeight+D);e.push({target:f,rank:h.isHeader?1:0,size:k.tt.getBBox().height+1,point:h,x:l,tt:m})}});this.cleanSplit();q.positioner&&e.forEach(function(a){var b=q.positioner.call(c,a.tt.getBBox().width,a.size,a.point);a.x=b.x;a.align=0;a.target=b.y;a.rank=n(b.rank,a.rank)});a.distribute(e,g.plotHeight+D);e.forEach(function(a){var b=a.point, -d=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:p||b.isHeader||q.positioner?a.x:b.plotX+g.plotLeft+c.distance,y:a.pos+z,anchorX:b.isHeader?b.plotX+g.plotLeft:b.plotX+d.xAxis.pos,anchorY:b.isHeader?g.plotTop+g.plotHeight/2:b.plotY+d.yAxis.pos})})},updatePosition:function(a){var b=this.chart,c=this.getLabel(),d=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a),e=a.plotX+b.plotLeft;a=a.plotY+b.plotTop;if(this.outside){var g=(this.options.borderWidth||0)+2* -this.distance;this.renderer.setSize(c.width+g,c.height+g,!1);e+=b.pointer.chartPosition.left-d.x;a+=b.pointer.chartPosition.top-d.y}this.move(Math.round(d.x),Math.round(d.y||0),e,a)},getDateFormat:function(a,b,c,e){var d=this.chart.time,g=d.dateFormat("%m-%d %H:%M:%S.%L",b),p={millisecond:15,second:12,minute:9,hour:6,day:3},q="millisecond";for(m in w){if(a===w.week&&+d.dateFormat("%w",b)===c&&"00:00:00.000"===g.substr(6)){var m="week";break}if(w[m]>a){m=q;break}if(p[m]&&g.substr(p[m])!=="01-01 00:00:00.000".substr(p[m]))break; -"week"!==m&&(q=m)}if(m)var y=d.resolveDTLFormat(e[m]).main;return y},getXDateFormat:function(a,b,c){b=b.dateTimeLabelFormats;var d=c&&c.closestPointRange;return(d?this.getDateFormat(d,a.x,c.options.startOfWeek,b):b.day)||b.year},tooltipFooterHeaderFormatter:function(d,b){var c=b?"footer":"header",g=d.series,n=g.tooltipOptions,r=n.xDateFormat,p=g.xAxis,q=p&&"datetime"===p.options.type&&e(d.key),D=n[c+"Format"];c={isFooter:b,labelConfig:d};a.fireEvent(this,"headerFormatter",c,function(a){q&&!r&&(r= -this.getXDateFormat(d,n,p));q&&r&&(d.point&&d.point.tooltipDateKeys||["key"]).forEach(function(a){D=D.replace("{point."+a+"}","{point."+a+":"+r+"}")});g.chart.styledMode&&(D=this.styledModeFormat(D));a.text=C(D,{point:d,series:g},this.chart.time)});return c.text},bodyFormatter:function(a){return a.map(function(a){var b=a.series.tooltipOptions;return(b[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,b[(a.point.formatPrefix||"point")+"Format"]||"")})},styledModeFormat:function(a){return a.replace('style="font-size: 10px"', -'class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')}}})(L);(function(a){var E=a.addEvent,I=a.attr,C=a.charts,e=a.color,g=a.css,n=a.defined,t=a.extend,u=a.find,w=a.fireEvent,d=a.isNumber,b=a.isObject,c=a.offset,m=a.pick,x=a.splat,r=a.Tooltip;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch= -{};r&&(a.tooltip=new r(a,b.tooltip),this.followTouchMove=m(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,d=c.zoomType||"";b=b.inverted;/touch/.test(a.type)&&(d=m(c.pinchType,d));this.zoomX=a=/x/.test(d);this.zoomY=d=/y/.test(d);this.zoomHor=a&&!b||d&&b;this.zoomVert=d&&!b||a&&b;this.hasZoom=a||d},normalize:function(a,b){var d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=c(this.chart.container)); -return t(a,{chartX:Math.round(d.pageX-b.left),chartY:Math.round(d.pageY-b.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,c,d){var e;a.forEach(function(a){var g=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(d,g);if((g=b(a,!0))&&!(g=!b(e,!0))){g=e.distX-a.distX;var k=e.dist-a.dist, -h=(a.series.group&&a.series.group.zIndex)-(e.series.group&&e.series.group.zIndex);g=0<(0!==g&&c?g:0!==k?k:0!==h?h:e.series.index>a.series.index?-1:1)}g&&(e=a)});return e},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=a.series,d=c.xAxis;c=c.yAxis;var e=m(a.clientX,a.plotX),g=a.shapeArgs;if(d&&c)return b?{chartX:d.len+d.pos-e,chartY:c.len+c.pos-a.plotY}:{chartX:e+d.pos,chartY:a.plotY+c.pos};if(g&&g.x&&g.y)return{chartX:g.x, -chartY:g.y}},getHoverData:function(a,c,d,e,g,n){var k,h=[];e=!(!e||!a);var p=c&&!c.stickyTracking?[c]:d.filter(function(a){return a.visible&&!(!g&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(k=e?a:this.findNearestKDPoint(p,g,n))&&k.series;k&&(g&&!c.noSharedTooltip?(p=d.filter(function(a){return a.visible&&!(!g&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),p.forEach(function(a){var c=u(a.points,function(a){return a.x===k.x&&!a.isNull});b(c)&& -(a.chart.isBoosting&&(c=a.getPoint(c)),h.push(c))})):h.push(k));return{hoverPoint:k,hoverSeries:c,hoverPoints:h}},runPointActions:function(b,c){var d=this.chart,e=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,g=e?e.shared:!1,p=c||d.hoverPoint,k=p&&p.series||d.hoverSeries;k=this.getHoverData(p,k,d.series,"touchmove"!==b.type&&(!!c||k&&k.directTouch&&this.isDirectTouch),g,b);p=k.hoverPoint;var h=k.hoverPoints;var q=(k=k.hoverSeries)&&k.tooltipOptions.followPointer;g=g&&k&&!k.noSharedTooltip; -if(p&&(p!==d.hoverPoint||e&&e.isHidden)){(d.hoverPoints||[]).forEach(function(a){-1===h.indexOf(a)&&a.setState()});(h||[]).forEach(function(a){a.setState("hover")});if(d.hoverSeries!==k)k.onMouseOver();d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");if(!p.series)return;p.firePointEvent("mouseOver");d.hoverPoints=h;d.hoverPoint=p;e&&e.refresh(g?h:p,b)}else q&&e&&!e.isHidden&&(p=e.getAnchor([{}],b),e.updatePosition({plotX:p[0],plotY:p[1]}));this.unDocMouseMove||(this.unDocMouseMove=E(d.container.ownerDocument, -"mousemove",function(b){var c=C[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));d.axes.forEach(function(c){var d=m(c.crosshair.snap,!0),f=d?a.find(h,function(a){return a.series[c.coll]===c}):void 0;f||!d?c.drawCrosshair(b,f):c.hideCrosshair()})},reset:function(a,b){var c=this.chart,d=c.hoverSeries,e=c.hoverPoint,g=c.hoverPoints,k=c.tooltip,h=k&&k.shared?g:e;a&&h&&x(h).forEach(function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)k&&h&&x(h).length&&(k.refresh(h),k.shared&&g? -g.forEach(function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):e&&(e.setState(e.state,!0),c.axes.forEach(function(a){a.crosshair&&a.drawCrosshair(null,e)})));else{if(e)e.onMouseOut();g&&g.forEach(function(a){a.setState()});if(d)d.onMouseOut();k&&k.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());c.axes.forEach(function(a){a.hideCrosshair()}); -this.hoverX=c.hoverPoints=c.hoverPoint=null}},scaleGroups:function(a,b){var c=this.chart,d;c.series.forEach(function(e){d=a||e.getPlotBox();e.xAxis&&e.xAxis.zoomEnabled&&e.group&&(e.group.attr(d),e.markerGroup&&(e.markerGroup.attr(d),e.markerGroup.clip(b?c.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(d))});c.clipRect.attr(b||c.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY}, -drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,g=a.chartY,p=this.zoomHor,k=this.zoomVert,h=b.plotLeft,m=b.plotTop,n=b.plotWidth,r=b.plotHeight,f=this.selectionMarker,l=this.mouseDownX,x=this.mouseDownY,A=c.panKey&&a[c.panKey+"Key"];if(!f||!f.touch)if(dh+n&&(d=h+n),gm+r&&(g=m+r),this.hasDragged=Math.sqrt(Math.pow(l-d,2)+Math.pow(x-g,2)),10(.*?$)/);c&&c[1]&&(c=''+c[1]+"",a=a.replace("",c+""))}a=a.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(\S+)("|")\)/g, -"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/.*?$/,"").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/ /g,"\u00a0").replace(/­/g,"\u00ad");this.ieSanitizeSVG&&(a=this.ieSanitizeSVG(a));return a},getChartHTML:function(){this.styledMode&&this.inlineStyles();return this.container.innerHTML}, -getSVG:function(c){var d,e=b(this.options,c);var k=u("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},C.body);var g=this.renderTo.style.width;var f=this.renderTo.style.height;g=e.exporting.sourceWidth||e.chart.width||/px$/.test(g)&&parseInt(g,10)||(e.isGantt?800:600);f=e.exporting.sourceHeight||e.chart.height||/px$/.test(f)&&parseInt(f,10)||400;x(e.chart,{animation:!1,renderTo:k,forExport:!0,renderer:"SVGRenderer",width:g,height:f});e.exporting.enabled= -!1;delete e.data;e.series=[];this.series.forEach(function(a){d=b(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});d.isInternal||e.series.push(d)});this.axes.forEach(function(b){b.userOptions.internalKey||(b.userOptions.internalKey=a.uniqueKey())});var l=new a.Chart(e,this.callback);c&&["xAxis","yAxis","series"].forEach(function(a){var b={};c[a]&&(b[a]=c[a],l.update(b))});this.axes.forEach(function(b){var c=a.find(l.axes,function(a){return a.options.internalKey=== -b.userOptions.internalKey}),f=b.getExtremes(),d=f.userMin;f=f.userMax;c&&(void 0!==d&&d!==c.min||void 0!==f&&f!==c.max)&&c.setExtremes(d,f,!0,!1)});g=l.getChartHTML();t(this,"getSVG",{chartCopy:l});g=this.sanitizeSVG(g,e);e=null;l.destroy();w(k);return g},getSVGForExport:function(a,c){var d=this.options.exporting;return this.getSVG(b({chart:{borderRadius:0}},d.chartOptions,c,{exporting:{sourceWidth:a&&a.sourceWidth||d.sourceWidth,sourceHeight:a&&a.sourceHeight||d.sourceHeight}}))},getFilename:function(){var a= -this.userOptions.title&&this.userOptions.title.text,b=this.options.exporting.filename;if(b)return b;"string"===typeof a&&(b=a.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,""));if(!b||5>b.length)b="chart";return b},exportChart:function(c,d){var h=this.getSVGForExport(c,d);c=b(this.options.exporting,c);a.post(c.url,{filename:c.filename||this.getFilename(),type:c.type,width:c.width|| -0,scale:c.scale,svg:h},c.formAttributes)},print:function(){function a(a){(b.fixedDiv?[b.fixedDiv,b.scrollingContainer]:[b.container]).forEach(function(b){a.appendChild(b)})}var b=this,c=[],d=C.body,e=d.childNodes,f=b.options.exporting.printMaxWidth,g;if(!b.isPrinting){b.isPrinting=!0;b.pointer.reset(null,0);t(b,"beforePrint");if(g=f&&b.chartWidth>f){var m=[b.options.chart.width,void 0,!1];b.setSize(f,void 0,!1)}e.forEach(function(a,b){1===a.nodeType&&(c[b]=a.style.display,a.style.display="none")}); -a(d);setTimeout(function(){p.focus();p.print();setTimeout(function(){a(b.renderTo);e.forEach(function(a,b){1===a.nodeType&&(a.style.display=c[b])});b.isPrinting=!1;g&&b.setSize.apply(b,m);t(b,"afterPrint")},1E3)},1)}},contextMenu:function(b,c,e,m,p,f,l){var h=this,k=h.options.navigation,q=h.chartWidth,v=h.chartHeight,n="cache-"+b,r=h[n],y=Math.max(p,f);if(!r){h.exportContextMenu=h[n]=r=u("div",{className:b},{position:"absolute",zIndex:1E3,padding:y+"px",pointerEvents:"auto"},h.fixedDiv||h.container); -var F=u("div",{className:"highcharts-menu"},null,r);h.styledMode||d(F,x({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},k.menuStyle));r.hideMenu=function(){d(r,{display:"none"});l&&l.setState(0);h.openMenu=!1;a.clearTimeout(r.hideTimer)};h.exportEvents.push(g(r,"mouseleave",function(){r.hideTimer=setTimeout(r.hideMenu,500)}),g(r,"mouseenter",function(){a.clearTimeout(r.hideTimer)}),g(C,"mouseup",function(a){h.pointer.inClass(a.target,b)||r.hideMenu()}), -g(r,"click",function(){h.openMenu&&r.hideMenu()}));c.forEach(function(b){"string"===typeof b&&(b=h.options.exporting.menuItemDefinitions[b]);if(a.isObject(b,!0)){if(b.separator)var c=u("hr",null,null,F);else c=u("div",{className:"highcharts-menu-item",onclick:function(a){a&&a.stopPropagation();r.hideMenu();b.onclick&&b.onclick.apply(h,arguments)},innerHTML:b.text||h.options.lang[b.textKey]},null,F),h.styledMode||(c.onmouseover=function(){d(this,k.menuItemHoverStyle)},c.onmouseout=function(){d(this, -k.menuItemStyle)},d(c,x({cursor:"pointer"},k.menuItemStyle)));h.exportDivElements.push(c)}});h.exportDivElements.push(F,r);h.exportMenuWidth=r.offsetWidth;h.exportMenuHeight=r.offsetHeight}c={display:"block"};e+h.exportMenuWidth>q?c.right=q-e-p-y+"px":c.left=e-y+"px";m+f+h.exportMenuHeight>v&&"top"!==l.alignOptions.verticalAlign?c.bottom=v-m-y+"px":c.top=m+f-y+"px";d(r,c);h.openMenu=!0},addButton:function(a){var d=this,e=d.renderer,k=b(d.options.navigation.buttonOptions,a),g=k.onclick,f=k.menuItems, -l=k.symbolSize||12;d.btnCount||(d.btnCount=0);d.exportDivElements||(d.exportDivElements=[],d.exportSVGElements=[]);if(!1!==k.enabled){var m=k.theme,p=m.states,q=p&&p.hover;p=p&&p.select;var n;d.styledMode||(m.fill=c(m.fill,"#ffffff"),m.stroke=c(m.stroke,"none"));delete m.states;g?n=function(a){a&&a.stopPropagation();g.call(d,a)}:f&&(n=function(a){a&&a.stopPropagation();d.contextMenu(r.menuClassName,f,r.translateX,r.translateY,r.width,r.height,r);r.setState(2)});k.text&&k.symbol?m.paddingLeft=c(m.paddingLeft, -25):k.text||x(m,{width:k.width,height:k.height,padding:0});d.styledMode||(m["stroke-linecap"]="round",m.fill=c(m.fill,"#ffffff"),m.stroke=c(m.stroke,"none"));var r=e.button(k.text,0,0,n,m,q,p).addClass(a.className).attr({title:c(d.options.lang[k._titleKey||k.titleKey],"")});r.menuClassName=a.menuClassName||"highcharts-menu-"+d.btnCount++;if(k.symbol){var y=e.symbol(k.symbol,k.symbolX-l/2,k.symbolY-l/2,l,l,{width:l,height:l}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(r);d.styledMode|| -y.attr({stroke:k.symbolStroke,fill:k.symbolFill,"stroke-width":k.symbolStrokeWidth||1})}r.add(d.exportingGroup).align(x(k,{width:r.width,x:c(k.x,d.buttonOffset)}),!0,"spacingBox");d.buttonOffset+=(r.width+k.buttonSpacing)*("right"===k.align?-1:1);d.exportSVGElements.push(r,y)}},destroyExport:function(b){var c=b?b.target:this;b=c.exportSVGElements;var d=c.exportDivElements,e=c.exportEvents,k;b&&(b.forEach(function(a,b){a&&(a.onclick=a.ontouchstart=null,k="cache-"+a.menuClassName,c[k]&&delete c[k], -c.exportSVGElements[b]=a.destroy())}),b.length=0);c.exportingGroup&&(c.exportingGroup.destroy(),delete c.exportingGroup);d&&(d.forEach(function(b,d){a.clearTimeout(b.hideTimer);n(b,"mouseleave");c.exportDivElements[d]=b.onmouseout=b.onmouseover=b.ontouchstart=b.onclick=null;w(b)}),d.length=0);e&&(e.forEach(function(a){a()}),e.length=0)}});D.prototype.inlineToAttributes="fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y".split(" ");D.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/, -/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/];D.prototype.unstyledElements=["clipPath","defs","desc"];e.prototype.inlineStyles=function(){function a(a){return a.replace(/([A-Z])/g,function(a,b){return"-"+b.toLowerCase()})}function c(d){function h(b,c){k=v=!1;if(f){for(y=f.length;y--&&!v;)v=f[y].test(c);k=!v}"transform"===c&&"none"===b&&(k=!0);for(y=q.length;y--&&!k;)k=q[y].test(c)||"function"===typeof b;k||t[c]===b&&"svg"!==d.nodeName||n[d.nodeName][c]=== -b||(-1!==g.indexOf(c)?d.setAttribute(a(c),b):e+=a(c)+":"+b+";")}var e="",k,v,y;if(1===d.nodeType&&-1===l.indexOf(d.nodeName)){var F=p.getComputedStyle(d,null);var t="svg"===d.nodeName?{}:p.getComputedStyle(d.parentNode,null);if(!n[d.nodeName]){r=x.getElementsByTagName("svg")[0];var u=x.createElementNS(d.namespaceURI,d.nodeName);r.appendChild(u);n[d.nodeName]=b(p.getComputedStyle(u,null));"text"===d.nodeName&&delete n.text.fill;r.removeChild(u)}if(z||H)for(var w in F)h(F[w],w);else m(F,h);e&&(F=d.getAttribute("style"), -d.setAttribute("style",(F?F+";":"")+e));"svg"===d.nodeName&&d.setAttribute("stroke-width","1px");"text"!==d.nodeName&&[].forEach.call(d.children||d.childNodes,c)}}var e=this.renderer,g=e.inlineToAttributes,q=e.inlineBlacklist,f=e.inlineWhitelist,l=e.unstyledElements,n={},r;e=C.createElement("iframe");d(e,{width:"1px",height:"1px",visibility:"hidden"});C.body.appendChild(e);var x=e.contentWindow.document;x.open();x.write('');x.close();c(this.container.querySelector("svg")); -r.parentNode.removeChild(r)};y.menu=function(a,b,c,d){return["M",a,b+2.5,"L",a+c,b+2.5,"M",a,b+d/2+.5,"L",a+c,b+d/2+.5,"M",a,b+d-1.5,"L",a+c,b+d-1.5]};y.menuball=function(a,b,c,d){a=[];d=d/3-2;return a=a.concat(this.circle(c-d,b,d,d),this.circle(c-d,b+d+4,d,d),this.circle(c-d,b+2*(d+4),d,d))};e.prototype.renderExporting=function(){var a=this,b=a.options.exporting,c=b.buttons,d=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();d&&!1!==b.enabled&&(a.exportEvents= -[],a.exportingGroup=a.exportingGroup||a.renderer.g("exporting-group").attr({zIndex:3}).add(),m(c,function(b){a.addButton(b)}),a.isDirtyExporting=!1);g(a,"destroy",a.destroyExport)};g(e,"init",function(){var a=this;a.exporting={update:function(d,e){a.isDirtyExporting=!0;b(!0,a.options.exporting,d);c(e,!0)&&a.redraw()}};E.addUpdate(function(d,e){a.isDirtyExporting=!0;b(!0,a.options.navigation,d);c(e,!0)&&a.redraw()},a)});e.prototype.callbacks.push(function(a){a.renderExporting();g(a,"redraw",a.renderExporting)})})(L, -W);(function(a){var E=a.win,I=E.navigator,C=E.document,e=E.URL||E.webkitURL||E,g=/Edge\/\d+/.test(I.userAgent);a.dataURLtoBlob=function(a){if((a=a.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/))&&3g.userAgent.indexOf("Chrome");try{if(!b&&0>g.userAgent.toLowerCase().indexOf("firefox"))return t.createObjectURL(new e.Blob([a],{type:"image/svg+xml;charset-utf-16"}))}catch(c){}return"data:image/svg+xml;charset=UTF-8,"+ -encodeURIComponent(a)};a.imageToDataUrl=function(a,b,c,g,x,r,p,q,t){var d=new e.Image,m=function(){setTimeout(function(){var e=n.createElement("canvas"),m=e.getContext&&e.getContext("2d");try{if(m){e.height=d.height*g;e.width=d.width*g;m.drawImage(d,0,0,e.width,e.height);try{var q=e.toDataURL(b);x(q,b,c,g)}catch(M){k(a,b,c,g)}}else p(a,b,c,g)}finally{t&&t(a,b,c,g)}},w)},z=function(){q(a,b,c,g);t&&t(a,b,c,g)};var k=function(){d=new e.Image;k=r;d.crossOrigin="Anonymous";d.onload=m;d.onerror=z;d.src= -a};d.onload=m;d.onerror=z;d.src=a};a.downloadSVGLocal=function(d,b,c,m){function x(a,b){var c=new e.jsPDF("l","pt",[a.width.baseVal.value+2*b,a.height.baseVal.value+2*b]);[].forEach.call(a.querySelectorAll('*[visibility="hidden"]'),function(a){a.parentNode.removeChild(a)});e.svg2pdf(a,c,{removeInvalid:!0});return c.output("datauristring")}function r(){u.innerHTML=d;var b=u.getElementsByTagName("text"),e;[].forEach.call(b,function(a){["font-family","font-size"].forEach(function(b){for(var c=a;c&&c!== -u;){if(c.style[b]){a.style[b]=c.style[b];break}c=c.parentNode}});a.style["font-family"]=a.style["font-family"]&&a.style["font-family"].split(" ").splice(-1);e=a.getElementsByTagName("title");[].forEach.call(e,function(b){a.removeChild(b)})});b=x(u.firstChild,0);try{a.downloadURL(b,w),m&&m()}catch(f){c(f)}}var p=!0,q=b.libURL||a.getOptions().exporting.libURL,u=n.createElement("div"),y=b.type||"image/png",w=(b.filename||"chart")+"."+("image/svg+xml"===y?"svg":y.split("/")[1]),z=b.scale||1;q="/"!==q.slice(-1)? -q+"/":q;if("image/svg+xml"===y)try{if(g.msSaveOrOpenBlob){var k=new MSBlobBuilder;k.append(d);var h=k.getBlob("image/svg+xml")}else h=a.svgToDataUrl(d);a.downloadURL(h,w);m&&m()}catch(F){c(F)}else if("application/pdf"===y)e.jsPDF&&e.svg2pdf?r():(p=!0,E(q+"jspdf.js",function(){E(q+"svg2pdf.js",function(){r()})}));else{h=a.svgToDataUrl(d);var v=function(){try{t.revokeObjectURL(h)}catch(F){}};a.imageToDataUrl(h,y,{},z,function(b){try{a.downloadURL(b,w),m&&m()}catch(M){c(M)}},function(){var b=n.createElement("canvas"), -h=b.getContext("2d"),f=d.match(/^]*width\s*=\s*"?(\d+)"?[^>]*>/)[1]*z,k=d.match(/^]*height\s*=\s*"?(\d+)"?[^>]*>/)[1]*z,r=function(){h.drawSvg(d,0,0,f,k);try{a.downloadURL(g.msSaveOrOpenBlob?b.msToBlob():b.toDataURL(y),w),m&&m()}catch(A){c(A)}finally{v()}};b.width=f;b.height=k;e.canvg?r():(p=!0,E(q+"rgbcolor.js",function(){E(q+"canvg.js",function(){r()})}))},c,c,function(){p&&v()})}};a.Chart.prototype.getSVGForLocalExport=function(d,b,c,e){var g=this,m=0,p,q,n,y=function(a,b,c){++m; -c.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",a);m===t.length&&e(g.sanitizeSVG(p.innerHTML,q))};g.unbindGetSVG=I(g,"getSVG",function(a){q=a.chartCopy.options;p=a.chartCopy.container.cloneNode(!0)});g.getSVGForExport(d,b);var t=p.getElementsByTagName("image");try{if(!t.length){e(g.sanitizeSVG(p.innerHTML,q));return}var z=0;for(n=t.length;z=Math.abs(c)&&.5a.closestPointRange*a.xAxis.transA;g=a.borderWidth=t(d.borderWidth,g?0:1);var n=a.yAxis,p=d.threshold,q=a.translatedThreshold=n.getThreshold(p),w=t(d.minPointLength, -5),y=a.getColumnMetrics(),H=y.width,z=a.barW=Math.max(H,1+2*g),k=a.pointXOffset=y.offset;c.inverted&&(q-=.5);d.pointPadding&&(z=Math.ceil(z));u.prototype.translate.apply(a);a.points.forEach(function(b){var d=t(b.yBottom,q),h=999+Math.abs(d),g=H;h=Math.min(Math.max(-h,b.plotY),n.len+h);var f=b.plotX+k,l=z,m=Math.min(h,d),r=Math.max(h,d)-m;if(w&&Math.abs(r)w?d-w:q-(y?w:0)}e(b.options.pointWidth)&& -(g=l=Math.ceil(b.options.pointWidth),f-=Math.round((g-H)/2));b.barX=f;b.pointWidth=g;b.tooltipPos=c.inverted?[n.len+n.pos-c.plotLeft-h,a.xAxis.len-f-l/2,r]:[f+l/2,h+n.pos-c.plotTop,r];b.shapeType=b.shapeType||"rect";b.shapeArgs=a.crispCol.apply(a,b.isNull?[f,q,l,0]:[f,m,l,r])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,c){var b=this.options,d=this.pointAttrToOptions|| -{};var e=d.stroke||"borderColor";var g=d["stroke-width"]||"borderWidth",q=a&&a.color||this.color,t=a&&a[e]||b[e]||this.color||q,y=a&&a[g]||b[g]||this[g]||0;d=b.dashStyle;a&&this.zones.length&&(q=a.getZone(),q=a.options.color||q&&q.color||this.color);if(c){b=n(b.states[c],a.options.states&&a.options.states[c]||{});var w=b.brightness;q=b.color||void 0!==w&&I(q).brighten(b.brightness).get()||q;t=b[e]||t;y=b[g]||y;d=b.dashStyle||d}e={fill:q,stroke:t,"stroke-width":y};d&&(e.dashstyle=d);return e},drawPoints:function(){var a= -this,c=this.chart,d=a.options,e=c.renderer,r=d.animationLimit||250,p;a.points.forEach(function(b){var m=b.graphic,q=m&&c.pointCountv;)r--;this.updateParallelArrays(q,"splice",r,0,0);this.updateParallelArrays(q,r);g&&q.name&&(g[v]=q.name);k.splice(r,0,a);m&&(this.data.splice(r,0,null),this.processData());"point"=== -e.legendType&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(q,"shift"),k.shift()));this.isDirtyData=this.isDirty=!0;b&&h.redraw(d)},removePoint:function(a,b,c){var d=this,e=d.data,f=e[a],h=d.points,g=d.chart,k=function(){h&&h.length===e.length&&h.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(f||{series:d},"splice",a,1);f&&f.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&g.redraw()};H(c,g);b=p(b,!0);f?f.firePointEvent("remove", -null,k):k()},remove:function(a,b,c,e){function h(){f.destroy(e);f.remove=null;g.isDirtyLegend=g.isDirtyBox=!0;g.linkSeries();p(a,!0)&&g.redraw(b)}var f=this,g=f.chart;!1!==c?d(f,"remove",null,h):h()},update:function(b,c){b=a.cleanRecursively(b,this.userOptions);var e=this,h=e.chart,g=e.userOptions,f=e.initialType||e.type,k=b.type||g.type||h.options.chart.type,m=y[f].prototype,n,q=["group","markerGroup","dataLabelsGroup"],r=["navigatorSeries","baseSeries"],t=e.finishedAnimating&&{animation:!1},z=["data", -"name","turboThreshold"],u=Object.keys(b),H=0this.oldTextWidth)&&((u=this.textPxLength)||(C(b,{width:"",whiteSpace:h||"nowrap"}),u=b.offsetWidth),u=u>v);u&&(/[ \-]/.test(b.textContent||b.innerText)||"ellipsis"===b.style.textOverflow)?(C(b,{width:v+"px",display:"block",whiteSpace:h||"normal"}),this.oldTextWidth=v, -this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;w!==this.cTT&&(h=a.fontMetrics(b.style.fontSize,b).b,!e(k)||k===(this.oldRotation||0)&&t===this.oldAlign||this.setSpanRotation(k,z,h),this.getSpanCorrection(!e(k)&&this.textPxLength||b.offsetWidth,h,z,k,t));C(b,{left:m+(this.xCorr||0)+"px",top:n+(this.yCorr||0)+"px"});this.cTT=w;this.oldRotation=k;this.oldAlign=t}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var d={},e=this.renderer.getTransformKey();d[e]=d.transform="rotate("+a+"deg)"; -d[e+(n?"Origin":"-origin")]=d.transformOrigin=100*b+"% "+c+"px";C(this.element,d)},getSpanCorrection:function(a,b,c){this.xCorr=-a*c;this.yCorr=-b}});g(c.prototype,{getTransformKey:function(){return t&&!/Edge/.test(m.navigator.userAgent)?"-ms-transform":u?"-webkit-transform":n?"MozTransform":m.opera?"-o-transform":""},html:function(c,d,e){var m=this.createElement("span"),p=m.element,n=m.renderer,r=n.isSVG,t=function(a,c){["opacity","visibility"].forEach(function(d){a[d+"Setter"]=function(a,f,e){b.prototype[d+ -"Setter"].call(this,a,f,e);c[f]=a}});a.addedSetters=!0},k=a.charts[n.chartIndex];k=k&&k.styledMode;m.textSetter=function(a){a!==p.innerHTML&&delete this.bBox;this.textStr=a;p.innerHTML=w(a,"");m.doTransform=!0};r&&t(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=m.rotationSetter=function(a,b){"align"===b&&(b="textAlign");m[b]=a;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:c,x:Math.round(d),y:Math.round(e)}).css({position:"absolute"}); -k||m.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});p.style.whiteSpace="nowrap";m.css=m.htmlCss;r&&(m.add=function(a){var b=n.box.parentNode,c=[];if(this.parentGroup=a){var d=a.div;if(!d){for(;a;)c.push(a),a=a.parentGroup;c.reverse().forEach(function(a){function f(b,c){a[c]=b;"translateX"===c?h.left=b+"px":h.top=b+"px";a.doTransform=!0}var e=E(a.element,"class");e&&(e={className:e});d=a.div=a.div||I("div",e,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY|| -0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},d||b);var h=d.style;g(a,{classSetter:function(a){return function(b){this.element.setAttribute("class",b);a.className=b}}(d),on:function(){c[0].div&&m.on.apply({element:c[0].div},arguments);return a},translateXSetter:f,translateYSetter:f});a.addedSetters||t(a,h)})}}else d=b;d.appendChild(p);m.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m});return m}})})(L);(function(a){var E=a.addEvent,I=a.Chart,C= -a.createElement,e=a.css,g=a.defaultOptions,n=a.defaultPlotOptions,t=a.extend,u=a.fireEvent,w=a.hasTouch,d=a.isObject,b=a.Legend,c=a.merge,m=a.pick,x=a.Point,r=a.Series,p=a.seriesTypes,q=a.svg;var D=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart,c=b.pointer,d=function(a){var b=c.getPointFromEvent(a);void 0!==b&&(c.isDirectTouch=!0,b.onMouseOver(a))};a.points.forEach(function(a){a.graphic&&(a.graphic.element.point=a);a.dataLabel&&(a.dataLabel.div?a.dataLabel.div.point=a:a.dataLabel.element.point= -a)});a._hasTracking||(a.trackerGroups.forEach(function(h){if(a[h]){a[h].addClass("highcharts-tracker").on("mouseover",d).on("mouseout",function(a){c.onTrackerMouseOut(a)});if(w)a[h].on("touchstart",d);!b.styledMode&&a.options.cursor&&a[h].css(e).css({cursor:a.options.cursor})}}),a._hasTracking=!0);u(this,"afterDrawTracker")},drawTrackerGraph:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,g=a.chart,m=g.pointer,p=g.renderer,f=g.options.tooltip.snap, -l=a.tracker,n,r=function(){if(g.hoverSeries!==a)a.onMouseOver()},t="rgba(192,192,192,"+(q?1E-4:.002)+")";if(e&&!c)for(n=e+1;n--;)"M"===d[n]&&d.splice(n+1,0,d[n+1]-f,d[n+2],"L"),(n&&"M"===d[n]||n===e)&&d.splice(n,0,"L",d[n-2]+f,d[n-1]);l?l.attr({d:d}):a.graph&&(a.tracker=p.path(d).attr({visibility:a.visible?"visible":"hidden",zIndex:2}).addClass(c?"highcharts-tracker-area":"highcharts-tracker-line").add(a.group),g.styledMode||a.tracker.attr({"stroke-linejoin":"round",stroke:t,fill:c?t:"none","stroke-width":a.graph.strokeWidth()+ -(c?0:2*f)}),[a.tracker,a.markerGroup].forEach(function(a){a.addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(a){m.onTrackerMouseOut(a)});b.cursor&&!g.styledMode&&a.css({cursor:b.cursor});if(w)a.on("touchstart",r)}));u(this,"afterDrawTracker")}};p.column&&(p.column.prototype.drawTracker=D.drawTrackerPoint);p.pie&&(p.pie.prototype.drawTracker=D.drawTrackerPoint);p.scatter&&(p.scatter.prototype.drawTracker=D.drawTrackerPoint);t(b.prototype,{setItemEvents:function(a,b,d){var e= -this,h=e.chart.renderer.boxWrapper,g="highcharts-legend-"+(a instanceof x?"point":"series")+"-active",m=e.chart.styledMode;(d?b:a.legendGroup).on("mouseover",function(){a.setState("hover");h.addClass(g);m||b.css(e.options.itemHoverStyle)}).on("mouseout",function(){e.styledMode||b.css(c(a.visible?e.itemStyle:e.itemHiddenStyle));h.removeClass(g);a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};h.removeClass(g);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick", -b,c):u(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=C("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);E(a.checkbox,"click",function(b){u(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}});t(I.prototype,{showResetZoom:function(){function a(){b.zoomOut()}var b=this,c=g.lang,d=b.options.chart.resetZoomButton,e=d.theme,m= -e.states,p="chart"===d.relativeTo?null:"plotBox";u(this,"beforeShowResetZoom",null,function(){b.resetZoomButton=b.renderer.button(c.resetZoom,null,null,a,e,m&&m.hover).attr({align:d.position.align,title:c.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(d.position,!1,p)})},zoomOut:function(){u(this,"selection",{resetSelection:!0},this.zoom)},zoom:function(a){var b,c=this.pointer,e=!1;!a||a.resetSelection?(this.axes.forEach(function(a){b=a.zoom()}),c.initiated=!1):a.xAxis.concat(a.yAxis).forEach(function(a){var d= -a.axis;c[d.isXAxis?"zoomX":"zoomY"]&&(b=d.zoom(a.min,a.max),d.displayBtn&&(e=!0))});var h=this.resetZoomButton;e&&!h?this.showResetZoom():!e&&d(h)&&(this.resetZoomButton=h.destroy());b&&this.redraw(m(this.options.chart.animation,a&&a.animation,100>this.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,h;u(this,"pan",{originalEvent:a},function(){d&&d.forEach(function(a){a.setState()});("xy"===b?[1,0]:[1]).forEach(function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,e=a[d?"chartX":"chartY"]; -d=d?"mouseDownX":"mouseDownY";var f=c[d],g=(b.pointRange||0)/2,k=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,m=b.getExtremes(),p=b.toValue(f-e,!0)+g*k;k=b.toValue(f+b.len-e,!0)-g*k;var n=kthis.max&&d>this.max;if(c&&b){if(p){var q=c.toString()===b.toString();n=0}for(p=0;pa&&b>n?(b=Math.max(a,n),c=2*n-b):be&&c>n?(c=Math.max(e,n),b=2*n-c):ch.max&&(e=h.max-y,I=!0);I?(E-=.8*(E-b[n][0]),v||(l-=.8*(l-b[n][1])),t()):b[n]=[E,l];k||(d[n]=C-D,d[q]=y);d=k?1/z:z;w[q]=y;w[n]=e;u[k?a?"scaleY":"scaleX":"scale"+r]=z;u["translate"+r]=d*D+(E-d*F)},pinch:function(a){var g=this,t=g.chart,u=g.pinchDown,w=a.touches,d=w.length,b=g.lastValidTouch,c=g.hasZoom,m=g.selectionMarker,x={},r=1===d&&(g.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick|| -g.runChartClick),p={};1=d&&0===10*b%d&&null!==l[f]&&0!==b&&(w=a.numberFormat(b/d,-1)+l[f]);void 0===w&&(w=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return w},getSeriesExtremes:function(){var a=this,b=a.chart,d;e(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&& +a.buildStacks();a.series.forEach(function(h){if(h.visible||!b.options.chart.ignoreHiddenSeries){var x=h.options,e=x.threshold;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=e&&(e=null);if(a.isXAxis){if(x=h.xData,x.length){d=h.getXExtremes(x);var c=d.min;var q=d.max;l(c)||c instanceof Date||(x=x.filter(l),d=h.getXExtremes(x),c=d.min,q=d.max);x.length&&(a.dataMin=Math.min(E(a.dataMin,c),c),a.dataMax=Math.max(E(a.dataMax,q),q))}}else if(h.getExtremes(),q=h.dataMax,c=h.dataMin,t(c)&&t(q)&&(a.dataMin= +Math.min(E(a.dataMin,c),c),a.dataMax=Math.max(E(a.dataMax,q),q)),t(e)&&(a.threshold=e),!x.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});e(this,"afterGetSeriesExtremes")},translate:function(a,b,d,e,c,q){var h=this.linkedParent||this,x=1,f=0,w=e?h.oldTransA:h.transA;e=e?h.oldMin:h.min;var n=h.minPixelPadding;c=(h.isOrdinal||h.isBroken||h.isLog&&c)&&h.lin2val;w||(w=h.transA);d&&(x*=-1,f=h.len);h.reversed&&(x*=-1,f-=x*(h.sector||h.len));b?(a=(a*x+f-n)/w+e,c&&(a=h.lin2val(a))):(c&&(a=h.val2lin(a)), +a=l(e)?x*(a-e)*w+f+x*n+(l(q)?w*q:0):void 0);return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a){var h=this,b=h.chart,d=h.left,c=h.top,q=a.old,f=a.value,w=a.translatedValue,n=a.lineWidth,m=a.force,u,y,g,D,G=q&&b.oldChartHeight||b.chartHeight,k=q&&b.oldChartWidth||b.chartWidth,H,A=h.transB,p=function(a,h,b){if("pass"!==m&&ab)m?a=Math.min(Math.max(h, +a),b):H=!0;return a};a={value:f,lineWidth:n,old:q,force:m,acrossPanes:a.acrossPanes,translatedValue:w};e(this,"getPlotLinePath",a,function(a){w=E(w,h.translate(f,null,null,q));w=Math.min(Math.max(-1E5,w),1E5);u=g=Math.round(w+A);y=D=Math.round(G-w-A);l(w)?h.horiz?(y=c,D=G-h.bottom,u=g=p(u,d,d+h.width)):(u=d,g=k-h.right,y=D=p(y,c,c+h.height)):(H=!0,m=!1);a.path=H&&!m?null:b.renderer.crispLine(["M",u,y,"L",g,D],n||1)});return a.path},getLinearTickPositions:function(a,b,d){var h=p(Math.floor(b/a)*a); +d=p(Math.ceil(d/a)*a);var x=[],e;p(h+a)===h&&(e=20);if(this.single)return[b];for(b=h;b<=d;){x.push(b);b=p(b+a,e);if(b===c)break;var c=b}return x},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?E(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,b=a.options,d=a.tickPositions,e=a.minorTickInterval,c=[],q=a.pointRangePadding||0,l=a.min-q;q=a.max+q;var f=q-l;if(f&&f/e=this.minRange;var n=this.minRange;var m=(n-d+b)/2;m=[b-m,E(a.min,b-m)];w&&(m[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin);b=C(m);d=[b+n,E(a.max,b+n)];w&&(d[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax);d=k(d);d-b=k)v=k,y=0;else if(d.dataMax<=k){var C=k;u=0}d.min=E(A,v,d.dataMin);d.max=E(r,C,d.dataMax)}f&&(d.positiveValuesOnly&&!h&&0>=Math.min(d.min,E(d.dataMin,d.min))&&a.error(10,1,c),d.min=p(d.log2lin(d.min), +15),d.max=p(d.log2lin(d.max),15));d.range&&t(d.max)&&(d.userMin=d.min=A=Math.max(d.dataMin,d.minFromRange()),d.userMax=r=d.max,d.range=null);e(d,"foundExtremes");d.beforePadding&&d.beforePadding();d.adjustForMinRange();!(G||d.axisPointRange||d.usePercentage||m)&&t(d.min)&&t(d.max)&&(c=d.max-d.min)&&(!t(A)&&y&&(d.min-=c*y),!t(r)&&u&&(d.max+=c*u));l(q.softMin)&&!l(d.userMin)&&q.softMind.max&&(d.max=r=q.softMax);l(q.floor)&&(d.min=Math.min(Math.max(d.min, +q.floor),Number.MAX_VALUE));l(q.ceiling)&&(d.max=Math.max(Math.min(d.max,q.ceiling),E(d.userMax,-Number.MAX_VALUE)));H&&t(d.dataMin)&&(k=k||0,!t(A)&&d.min=k?d.min=d.options.minRange?Math.min(k,d.max-d.minRange):k:!t(r)&&d.max>k&&d.dataMax<=k&&(d.max=d.options.minRange?Math.max(k,d.min+d.minRange):k));d.tickInterval=d.min===d.max||void 0===d.min||void 0===d.max?1:m&&!g&&D===d.linkedParent.options.tickPixelInterval?g=d.linkedParent.tickInterval:E(g,this.tickAmount?(d.max-d.min)/Math.max(this.tickAmount- +1,1):void 0,G?1:(d.max-d.min)*D/Math.max(d.len,D));n&&!h&&d.series.forEach(function(a){a.processData(d.min!==d.oldMin||d.max!==d.oldMax)});d.setAxisTranslation(!0);d.beforeSetTickPositions&&d.beforeSetTickPositions();d.postProcessTickInterval&&(d.tickInterval=d.postProcessTickInterval(d.tickInterval));d.pointRange&&!g&&(d.tickInterval=Math.max(d.pointRange,d.tickInterval));h=E(q.minTickInterval,d.isDatetimeAxis&&d.closestPointRange);!g&&d.tickIntervald.tickInterval&&1E3d.max)),!!this.tickAmount));this.tickAmount||(d.tickInterval=d.unsquish());this.setTickPositions()},setTickPositions:function(){var h=this.options,d=h.tickPositions;var b=this.getMinorTickInterval();var c=h.tickPositioner,q=h.startOnTick,l=h.endOnTick;this.tickmarkOffset=this.categories&&"between"===h.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===b&&this.tickInterval? +this.tickInterval/5:b;this.single=this.min===this.max&&t(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==h.allowDecimals);this.tickPositions=b=d&&d.slice();!b&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)?(b=[this.min,this.max],a.error(19,!1,this.chart)):b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,h.units),this.min,this.max,h.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog? +this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()],b[0]===b[1]&&(b.length=1)),this.tickPositions=b,c&&(c=c.apply(this,[this.min,this.max])))&&(this.tickPositions=b=c);this.paddedTicks=b.slice(0);this.trimTicks(b,q,l);this.isLinked||(this.single&&2>b.length&&!this.categories&&(this.min-=.5,this.max+=.5),d||c||this.adjustTickAmount());e(this,"afterSetTickPositions")},trimTicks:function(a, +d,b){var h=a[0],c=a[a.length-1],q=this.minPointOffset||0;e(this,"trimTicks");if(!this.isLinked){if(d&&-Infinity!==h)this.min=h;else for(;this.min-q>a[0];)a.shift();if(b)this.max=c;else for(;this.max+qd&&(this.finalTickAmt=d,d=5);this.tickAmount=d},adjustTickAmount:function(){var a=this.options,d=this.tickInterval,b=this.tickPositions,e=this.tickAmount,c= +this.finalTickAmt,q=b&&b.length,l=E(this.threshold,this.softThreshold?0:null),f;if(this.hasData()){if(qe&&(this.tickInterval*=2,this.setTickPositions());if(t(c)){for(d=a=b.length;d--;)(3===c&&1===d%2||2>=c&&0l&&(d=l)),t(h)&&(cl&&(c=l))),this.displayBtn=void 0!==d||void 0!==c,this.setExtremes(d,c,!1,void 0,{trigger:"zoom"});a.zoomed=!0});return c.zoomed},setAxisSize:function(){var d=this.chart,b=this.options,c=b.offsets||[0,0,0,0],e=this.horiz,q=this.width=Math.round(a.relativeLength(E(b.width,d.plotWidth-c[3]+c[1]),d.plotWidth)),l=this.height=Math.round(a.relativeLength(E(b.height, +d.plotHeight-c[0]+c[2]),d.plotHeight)),f=this.top=Math.round(a.relativeLength(E(b.top,d.plotTop+c[0]),d.plotHeight,d.plotTop));b=this.left=Math.round(a.relativeLength(E(b.left,d.plotLeft+c[3]),d.plotWidth,d.plotLeft));this.bottom=d.chartHeight-l-f;this.right=d.chartWidth-q-b;this.len=Math.max(e?q:l,0);this.pos=e?b:f},getExtremes:function(){var a=this.isLog;return{min:a?p(this.lin2log(this.min)):this.min,max:a?p(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin, +userMax:this.userMax}},getThreshold:function(a){var d=this.isLog,b=d?this.lin2log(this.min):this.min;d=d?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=b:Infinity===a?a=d:b>a?a=b:dd?a.align="right":195d&&(a.align="left")});return a.align},tickSize:function(a){var d=this.options,b=d[a+"Length"],h=E(d[a+"Width"], +"tick"===a&&this.isXAxis&&!this.categories?1:0);if(h&&b){"inside"===d[a+"Position"]&&(b=-b);var c=[b,h]}a={tickSize:c};e(this,"afterTickSize",a);return a.tickSize},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,d=this.horiz,b=this.tickInterval,c=b,e=this.len/(((this.categories?1:0)+this.max- +this.min)/b),q,l=a.rotation,f=this.labelMetrics(),w,n=Number.MAX_VALUE,m,u=this.max-this.min,y=function(a){var d=a/(e||1);d=1u&&Infinity!==a&&Infinity!==e&&(d=Math.ceil(u/b));return p(d*b)};d?(m=!a.staggerLines&&!a.step&&(t(l)?[l]:e=a){w=y(Math.abs(f.h/Math.sin(r*a)));var d=w+Math.abs(a/360);d(h.step||0)&&!h.rotation&&(this.staggerLines||1)*this.len/c||!b&&(h.style&&parseInt(h.style.width,10)||e&&e-d.spacing[3]||.33*d.chartWidth)},renderUnsquish:function(){var a=this.chart,d=a.renderer,b=this.tickPositions,c=this.ticks,e=this.options.labels,q=e&&e.style||{},l=this.horiz,f=this.getSlotWidth(),w=Math.max(1,Math.round(f- +2*(e.padding||5))),n={},m=this.labelMetrics(),u=e.style&&e.style.textOverflow,g=0;y(e.rotation)||(n.rotation=e.rotation||0);b.forEach(function(a){(a=c[a])&&a.label&&a.label.textPxLength>g&&(g=a.label.textPxLength)});this.maxLabelLength=g;if(this.autoRotation)g>w&&g>m.h?n.rotation=this.labelRotation:this.labelRotation=0;else if(f){var k=w;if(!u){var D="clip";for(w=b.length;!l&&w--;){var G=b[w];if(G=c[G].label)G.styles&&"ellipsis"===G.styles.textOverflow?G.css({textOverflow:"clip"}):G.textPxLength> +f&&G.css({width:f+"px"}),G.getBBox().height>this.len/b.length-(m.h-m.f)&&(G.specificTextOverflow="ellipsis")}}}n.rotation&&(k=g>.5*a.chartHeight?.33*a.chartHeight:g,u||(D="ellipsis"));if(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))n.align=this.labelAlign;b.forEach(function(a){var d=(a=c[a])&&a.label,b=q.width,h={};d&&(d.attr(n),a.shortenLabel?a.shortenLabel():k&&!b&&"nowrap"!==q.whiteSpace&&(k=this.min&&a<=this.max)h[a]||(h[a]=new G(this,a)),c&&h[a].isNew&&h[a].render(d,!0,-1),h[a].render(d)},render:function(){var d=this,b=d.chart,c=d.options,f=d.isLog,w=d.isLinked,n=d.tickPositions,m=d.axisTitle,u=d.ticks,y=d.minorTicks,g=d.alternateBands,k=c.stackLabels, +D=c.alternateGridColor,H=d.tickmarkOffset,p=d.axisLine,r=d.showAxis,E=F(b.renderer.globalAnimation),v,t;d.labelEdge.length=0;d.overlap=!1;[u,y,g].forEach(function(a){A(a,function(a){a.isActive=!1})});if(d.hasData()||w)d.minorTickInterval&&!d.categories&&d.getMinorTickPositions().forEach(function(a){d.renderMinorTick(a)}),n.length&&(n.forEach(function(a,b){d.renderTick(a,b)}),H&&(0===d.min||d.single)&&(u[-1]||(u[-1]=new G(d,-1,null,!0)),u[-1].render(-1))),D&&n.forEach(function(h,c){t=void 0!==n[c+ +1]?n[c+1]+H:d.max-H;0===c%2&&hu-l?u:u-l);else if(m)n[a]=Math.max(e,h+l+c>d?h:h+l);else return!1},G=function(a,d,c,h){var e;hd-b?e=!1:n[a]=hd-c/2?d-c-2:h-c/2;return e},H=function(a){var b=u;u=d;d=b;y=a},h=function(){!1!== +q.apply(0,u)?!1!==G.apply(0,d)||y||(H(!0),h()):y?n.x=n.y=0:(H(!0),h())};(f.inverted||1h&&(l=!1);y=(f.series&&f.series.yAxis&&f.series.yAxis.pos)+(f.plotY||0);y-=E;f.isHeader&&(y=r?-k:b.plotHeight+k);m.push({target:y,rank:f.isHeader?1:0,size:q.tt.getBBox().height+1,point:f,x:h,tt:u})}});this.cleanSplit();g.positioner&&m.forEach(function(a){var d=g.positioner.call(e,a.tt.getBBox().width,a.size,a.point);a.x=d.x;a.align=0;a.target=d.y;a.rank=p(d.rank,a.rank)});a.distribute(m,b.plotHeight+k);m.forEach(function(a){var d=a.point,c=d.series;a.tt.attr({visibility:void 0=== +a.pos?"hidden":"inherit",x:l||d.isHeader||g.positioner?a.x:d.plotX+b.plotLeft+e.distance,y:a.pos+E,anchorX:d.isHeader?d.plotX+b.plotLeft:d.plotX+c.xAxis.pos,anchorY:d.isHeader?b.plotTop+b.plotHeight/2:d.plotY+c.yAxis.pos})})},updatePosition:function(a){var c=this.chart,e=this.getLabel(),f=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a),b=a.plotX+c.plotLeft;a=a.plotY+c.plotTop;if(this.outside){var n=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(e.width+ +n,e.height+n,!1);b+=c.pointer.chartPosition.left-f.x;a+=c.pointer.chartPosition.top-f.y}this.move(Math.round(f.x),Math.round(f.y||0),b,a)},getDateFormat:function(a,c,e,m){var b=this.chart.time,f=b.dateFormat("%m-%d %H:%M:%S.%L",c),l={millisecond:15,second:12,minute:9,hour:6,day:3},g="millisecond";for(k in r){if(a===r.week&&+b.dateFormat("%w",c)===e&&"00:00:00.000"===f.substr(6)){var k="week";break}if(r[k]>a){k=g;break}if(l[k]&&f.substr(l[k])!=="01-01 00:00:00.000".substr(l[k]))break;"week"!==k&&(g= +k)}if(k)var p=b.resolveDTLFormat(m[k]).main;return p},getXDateFormat:function(a,c,e){c=c.dateTimeLabelFormats;var f=e&&e.closestPointRange;return(f?this.getDateFormat(f,a.x,e.options.startOfWeek,c):c.day)||c.year},tooltipFooterHeaderFormatter:function(f,c){var e=c?"footer":"header",m=f.series,b=m.tooltipOptions,n=b.xDateFormat,l=m.xAxis,g=l&&"datetime"===l.options.type&&k(f.key),D=b[e+"Format"];e={isFooter:c,labelConfig:f};a.fireEvent(this,"headerFormatter",e,function(a){g&&!n&&(n=this.getXDateFormat(f, +b,l));g&&n&&(f.point&&f.point.tooltipDateKeys||["key"]).forEach(function(a){D=D.replace("{point."+a+"}","{point."+a+":"+n+"}")});m.chart.styledMode&&(D=this.styledModeFormat(D));a.text=C(D,{point:f,series:m},this.chart.time)});return e.text},bodyFormatter:function(a){return a.map(function(a){var c=a.series.tooltipOptions;return(c[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,c[(a.point.formatPrefix||"point")+"Format"]||"")})},styledModeFormat:function(a){return a.replace('style="font-size: 10px"', +'class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')}}});L(I,"v7.1.2/js/parts/Pointer.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.addEvent,F=a.attr,C=a.charts,k=a.color,g=a.css,p=a.defined,v=a.extend,t=a.find,r=a.fireEvent,f=a.isNumber,c=a.isObject,e=a.offset,m=a.pick,b=a.splat,n=a.Tooltip;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick= +b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};n&&(a.tooltip=new n(a,b.tooltip),this.followTouchMove=m(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,e=c.zoomType||"";b=b.inverted;/touch/.test(a.type)&&(e=m(c.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!b||e&&b;this.zoomVert=e&&!b||a&&b;this.hasZoom=a||e},normalize:function(a,b){var c=a.touches?a.touches.length?a.touches.item(0): +a.changedTouches[0]:a;b||(this.chartPosition=b=e(this.chart.container));return v(a,{chartX:Math.round(c.pageX-b.left),chartY:Math.round(c.pageY-b.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,e){var l;a.forEach(function(a){var f=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(e, +f);if((f=c(a,!0))&&!(f=!c(l,!0))){f=l.distX-a.distX;var n=l.dist-a.dist,d=(a.series.group&&a.series.group.zIndex)-(l.series.group&&l.series.group.zIndex);f=0<(0!==f&&b?f:0!==n?n:0!==d?d:l.series.index>a.series.index?-1:1)}f&&(l=a)});return l},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=a.series,e=c.xAxis;c=c.yAxis;var l=m(a.clientX,a.plotX),f=a.shapeArgs;if(e&&c)return b?{chartX:e.len+e.pos-l,chartY:c.len+ +c.pos-a.plotY}:{chartX:l+e.pos,chartY:a.plotY+c.pos};if(f&&f.x&&f.y)return{chartX:f.x,chartY:f.y}},getHoverData:function(a,b,e,f,n,g){var l,d=[];f=!(!f||!a);var w=b&&!b.stickyTracking?[b]:e.filter(function(a){return a.visible&&!(!n&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&a.stickyTracking});b=(l=f?a:this.findNearestKDPoint(w,n,g))&&l.series;l&&(n&&!b.noSharedTooltip?(w=e.filter(function(a){return a.visible&&!(!n&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}), +w.forEach(function(a){var b=t(a.points,function(a){return a.x===l.x&&!a.isNull});c(b)&&(a.chart.isBoosting&&(b=a.getPoint(b)),d.push(b))})):d.push(l));return{hoverPoint:l,hoverSeries:b,hoverPoints:d}},runPointActions:function(b,c){var e=this.chart,l=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,f=l?l.shared:!1,n=c||e.hoverPoint,g=n&&n.series||e.hoverSeries;g=this.getHoverData(n,g,e.series,"touchmove"!==b.type&&(!!c||g&&g.directTouch&&this.isDirectTouch),f,b);var d=[];n=g.hoverPoint;var w= +g.hoverPoints;var q=(g=g.hoverSeries)&&g.tooltipOptions.followPointer;f=f&&g&&!g.noSharedTooltip;if(n&&(n!==e.hoverPoint||l&&l.isHidden)){(e.hoverPoints||[]).forEach(function(a){-1===w.indexOf(a)&&a.setState()});if(e.hoverSeries!==g)g.onMouseOver();d=this.getActiveSeries(w);e.series.forEach(function(a){(a.options.inactiveOtherPoints||-1===d.indexOf(a))&&a.setState("inactive",!0)});(w||[]).forEach(function(a){a.setState("hover")});e.hoverPoint&&e.hoverPoint.firePointEvent("mouseOut");if(!n.series)return; +n.firePointEvent("mouseOver");e.hoverPoints=w;e.hoverPoint=n;l&&l.refresh(f?w:n,b)}else q&&l&&!l.isHidden&&(n=l.getAnchor([{}],b),l.updatePosition({plotX:n[0],plotY:n[1]}));this.unDocMouseMove||(this.unDocMouseMove=B(e.container.ownerDocument,"mousemove",function(d){var b=C[a.hoverChartIndex];if(b)b.pointer.onDocumentMouseMove(d)}));e.axes.forEach(function(d){var c=m(d.crosshair.snap,!0),h=c?a.find(w,function(a){return a.series[d.coll]===d}):void 0;h||!c?d.drawCrosshair(b,h):d.hideCrosshair()})}, +getActiveSeries:function(a){var b=[],c;(a||[]).forEach(function(a){c=a.series;b.push(c);c.linkedParent&&b.push(c.linkedParent);c.linkedSeries&&(b=b.concat(c.linkedSeries));c.navigatorSeries&&b.push(c.navigatorSeries)});return b},reset:function(a,c){var e=this.chart,l=e.hoverSeries,f=e.hoverPoint,n=e.hoverPoints,g=e.tooltip,d=g&&g.shared?n:f;a&&d&&b(d).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(a=!1)});if(a)g&&d&&b(d).length&&(g.refresh(d),g.shared&&n?n.forEach(function(a){a.setState(a.state, +!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):f&&(f.setState(f.state,!0),e.axes.forEach(function(a){a.crosshair&&a.drawCrosshair(null,f)})));else{if(f)f.onMouseOut();n&&n.forEach(function(a){a.setState()});if(l)l.onMouseOut();g&&g.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());e.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=e.hoverPoints=e.hoverPoint=null}}, +scaleGroups:function(a,b){var c=this.chart,e;c.series.forEach(function(l){e=a||l.getPlotBox();l.xAxis&&l.xAxis.zoomEnabled&&l.group&&(l.group.attr(e),l.markerGroup&&(l.markerGroup.attr(e),l.markerGroup.clip(b?c.clipRect:null)),l.dataLabelsGroup&&l.dataLabelsGroup.attr(e))});c.clipRect.attr(b||c.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart, +e=a.chartX,l=a.chartY,f=this.zoomHor,n=this.zoomVert,d=b.plotLeft,g=b.plotTop,q=b.plotWidth,m=b.plotHeight,H=this.selectionMarker,h=this.mouseDownX,x=this.mouseDownY,p=c.panKey&&a[c.panKey+"Key"];if(!H||!H.touch)if(ed+q&&(e=d+q),lg+m&&(l=g+m),this.hasDragged=Math.sqrt(Math.pow(h-e,2)+Math.pow(x-l,2)),10d.max&&(k=d.max-N,x=!0);x?(G-= +.8*(G-c[b][0]),w||(h-=.8*(h-c[b][1])),v()):c[b]=[G,h];u||(f[b]=A-p,f[y]=N);f=u?1/E:E;r[y]=N;r[b]=k;t[u?a?"scaleY":"scaleX":"scale"+n]=E;t["translate"+n]=f*p+(G-f*q)},pinch:function(a){var g=this,v=g.chart,t=g.pinchDown,r=a.touches,f=r.length,c=g.lastValidTouch,e=g.hasZoom,m=g.selectionMarker,b={},n=1===f&&(g.inClass(a.target,"highcharts-tracker")&&v.runTrackerClick||g.runChartClick),l={};1f-6&&nu?this.maxItemWidth:a.itemWidth;e&&this.itemX-c+b>u&&(this.itemX=c,this.lastLineHeight&&(this.itemY+=m+this.lastLineHeight+g),this.lastLineHeight=0);this.lastItemY=m+this.itemY+g;this.lastLineHeight=Math.max(f,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=b:(this.itemY+=m+f+g,this.lastLineHeight=f);this.offsetWidth=this.widthOption||Math.max((e?this.itemX-c-(a.checkbox?0:k):b)+c,this.offsetWidth)}, +getAllItems:function(){var a=[];this.chart.series.forEach(function(b){var c=b&&b.options;b&&r(c.showInLegend,k(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))});g(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,c){var b=this.chart,e=this.options,f=this.getAlignment(), +g=void 0!==b.options.title.margin?b.titleOffset+b.options.title.margin:0;f&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(m,n){m.test(f)&&!k(a[n])&&(b[v[n]]=Math.max(b[v[n]],b.legend[(n+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][n]*e[n%2?"x":"y"]+r(e.margin,12)+c[n]+(0===n&&(0===b.titleOffset?0:g))))})},proximatePositions:function(){var b=this.chart,c=[],e="left"===this.options.align;this.allItems.forEach(function(f){var g=e;if(f.yAxis&&f.points){f.xAxis.options.reversed&& +(g=!g);var m=a.find(g?f.points:f.points.slice(0).reverse(),function(b){return a.isNumber(b.plotY)});g=f.legendGroup.getBBox().height;var n=f.yAxis.top-b.plotTop;f.visible?(m=m?m.plotY:f.yAxis.height,m+=n-.3*g):m=n+f.yAxis.height;c.push({target:m,size:g,item:f})}},this);a.distribute(c,b.plotHeight);c.forEach(function(a){a.item._legendItemPos[1]=b.plotTop-b.spacing[0]+a.pos})},render:function(){var b=this.chart,e=b.renderer,f=this.group,m,k=this.box,r=this.options,A=this.padding;this.itemX=A;this.itemY= +this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=a.relativeLength(r.width,b.spacingBox.width-A);var p=b.spacingBox.width-2*A-r.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(p/=2);this.maxLegendWidth=this.widthOption||p;f||(this.group=f=e.g("legend").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(f),this.scrollGroup=e.g().add(this.contentGroup));this.renderTitle();p=this.getAllItems();c(p,function(a,b){return(a.options&&a.options.legendIndex|| +0)-(b.options&&b.options.legendIndex||0)});r.reversed&&p.reverse();this.allItems=p;this.display=m=!!p.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;p.forEach(this.renderItem,this);p.forEach(this.layoutItem,this);p=(this.widthOption||this.offsetWidth)+A;var u=this.lastItemY+this.lastLineHeight+this.titleHeight;u=this.handleOverflow(u);u+=A;k||(this.box=k=e.rect().addClass("highcharts-legend-box").attr({r:r.borderRadius}).add(f),k.isNew=!0);b.styledMode||k.attr({stroke:r.borderColor, +"stroke-width":r.borderWidth||0,fill:r.backgroundColor||"none"}).shadow(r.shadow);0g&&!1!==w.enabled?(this.clipHeight=u=Math.max(g-20-this.titleHeight-m,0),this.currentPage=r(this.currentPage,1),this.fullHeight=a,p.forEach(function(a,b){var d=a._legendItemPos[1],c=Math.round(a.legendItem.getBBox().height), +e=h.length;if(!e||d-h[e-1]>u&&(x||d)!==h[e-1])h.push(x||d),e++;a.pageIx=e-1;x&&(p[b-1].pageIx=e-1);b===p.length-1&&d+c-h[e-1]>u&&d!==x&&(h.push(d),a.pageIx=e);d!==x&&(x=d)}),d||(d=b.clipRect=e.clipRect(0,m,9999,0),b.contentGroup.clip(d)),v(u),H||(this.nav=H=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,G,G).add(H),K("upTracker").on("click",function(){b.scroll(-1,q)}),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation"),c.styledMode||this.pager.css(w.style), +this.pager.add(H),this.down=e.symbol("triangle-down",0,0,G,G).add(H),K("downTracker").on("click",function(){b.scroll(1,q)})),b.scroll(0),a=g):H&&(v(),this.nav=H.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,c){var b=this.pages,e=b.length,g=this.currentPage+a,m=this.clipHeight,n=this.options.navigation,k=this.pager,u=this.padding;g>e&&(g=e);0k&&(b=typeof c[0],"string"===b?e.name=c[0]:"number"===b&&(e.x=c[0]),r++);t=f.value;)f=c[++b];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=f&&f.color&&!this.options.color?f.color:this.nonZonedColor;return f},destroy:function(){var a=this.series.chart,f=a.hoverPoints,b;a.pointCount--;f&&(this.setState(),C(f,this),f.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)c(this),this.destroyElements(); +this.legendItem&&a.legend.destroyItem(this);for(b in this)this[b]=null},destroyElements:function(a){var c=this,b=[],e;a=a||{graphic:1,dataLabel:1};a.graphic&&b.push("graphic","shadowGroup");a.dataLabel&&b.push("dataLabel","dataLabelUpper","connector");for(e=b.length;e--;){var f=b[e];c[f]&&(c[f]=c[f].destroy())}["dataLabel","connector"].forEach(function(b){var e=b+"s";a[b]&&c[e]&&(c[e].forEach(function(a){a.element&&a.destroy()}),delete c[e])})},getLabelConfig:function(){return{x:this.category,y:this.y, +color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var c=this.series,b=c.tooltipOptions,e=t(b.valueDecimals,""),f=b.valuePrefix||"",k=b.valueSuffix||"";c.chart.styledMode&&(a=c.chart.tooltip.styledModeFormat(a));(c.pointArrayMap||["y"]).forEach(function(b){b="{point."+b;if(f||k)a=a.replace(RegExp(b+"}","g"),f+b+"}"+k);a=a.replace(RegExp(b+"}","g"),b+":,."+ +e+"f}")});return g(a,{point:this,series:this.series},c.chart.time)},firePointEvent:function(a,c,b){var e=this,f=this.series.options;(f.point.events[a]||e.options&&e.options.events&&e.options.events[a])&&this.importEvents();"click"===a&&f.allowPointSelect&&(b=function(a){e.select&&e.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});k(this,a,c,b)},visible:!0}});L(I,"v7.1.2/js/parts/Series.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.addEvent,F=a.animObject,C=a.arrayMax,k=a.arrayMin,g=a.correctFloat, +p=a.defaultOptions,v=a.defaultPlotOptions,t=a.defined,r=a.erase,f=a.extend,c=a.fireEvent,e=a.isArray,m=a.isNumber,b=a.isString,n=a.merge,l=a.objectEach,y=a.pick,D=a.removeEvent,N=a.splat,A=a.SVGElement,E=a.syncTimeout,u=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1}, +select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}}, +inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",cropShoulder:1,init:function(b,e){c(this,"init",{options:e});var d=this,g=b.series,m;d.chart=b;d.options=e=d.setOptions(e);d.linkedSeries=[];d.bindAxes();f(d,{name:e.name,state:"",visible:!1!==e.visible,selected:!0===e.selected});var h= +e.events;l(h,function(b,c){!a.isFunction(b)||d.hcEvents&&d.hcEvents[c]&&d.hcEvents[c].some(function(a){return a.fn===b})||B(d,c,b)});if(h&&h.click||e.point&&e.point.events&&e.point.events.click||e.allowPointSelect)b.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(a){d[a+"Data"]||(d[a+"Data"]=[])});d.points||d.setData(e.data,!1);d.isCartesian&&(b.hasCartesianSeries=!0);g.length&&(m=g[g.length-1]);d._i=y(m&&m._i,-1)+1;b.orderSeries(this.insert(g));c(this,"afterInit")}, +insert:function(a){var b=this.options.index,d;if(m(b)){for(d=a.length;d--;)if(b>=y(a[d].options.index,a[d]._i)){a.splice(d+1,0,this);break}-1===d&&a.unshift(this);d+=1}else a.push(this);return y(d,a.length-1)},bindAxes:function(){var b=this,e=b.options,q=b.chart,f;c(this,"bindAxes",null,function(){(b.axisTypes||[]).forEach(function(d){q[d].forEach(function(a){f=a.options;if(e[d]===f.index||void 0!==e[d]&&e[d]===f.id||void 0===e[d]&&0===f.index)b.insert(a.series),b[d]=a,a.isDirty=!0});b[d]||b.optionalAxis=== +d||a.error(18,!0,q)})})},updateParallelArrays:function(a,b){var d=a.series,c=arguments,e=m(b)?function(c){var e="y"===c&&d.toYData?d.toYData(a):a[c];d[c+"Data"][b]=e}:function(a){Array.prototype[b].apply(d[a+"Data"],Array.prototype.slice.call(c,2))};d.parallelArrays.forEach(e)},hasData:function(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&0=this.cropStart?f-this.cropStart:f);!h&&e[f]&&e[f].touched&&(f=void 0);return f},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(b){var d=this.options,c=this.points,e=[],f,h,g,k=this.requireSorting,u=b.length===c.length, +n=!0;this.xIncrement=null;b.forEach(function(b,h){var q=a.defined(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};var w=q.x;if(q.id||m(w))if(w=this.findPointIndex(q,g),-1===w||void 0===w?e.push(b):c[w]&&b!==d.data[w]?(c[w].update(b,!1,null,!1),c[w].touched=!0,k&&(g=w+1)):c[w]&&(c[w].touched=!0),!u||h!==w||this.hasDerivedData)f=!0},this);if(f)for(b=c.length;b--;)(h=c[b])&&!h.touched&&h.remove(!1);else u?b.forEach(function(a,b){c[b].update&&a!==c[b].y&&c[b].update(a,!1,null, +!1)}):n=!1;c.forEach(function(a){a&&(a.touched=!1)});if(!n)return!1;e.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);return!0},setData:function(d,c,f,g){var q=this,h=q.points,w=h&&h.length||0,u,k=q.options,n=q.chart,l=null,G=q.xAxis,r=k.turboThreshold,p=this.xData,A=this.yData,v=(u=q.pointArrayMap)&&u.length,t=k.keys,D=0,E=1,C;d=d||[];u=d.length;c=y(c,!0);!1!==g&&u&&w&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.isSeriesBoosting&&(C=this.updateData(d));if(!C){q.xIncrement=null;q.colorCounter= +0;this.parallelArrays.forEach(function(a){q[a+"Data"].length=0});if(r&&u>r){for(f=0;null===l&&fm||this.forceCrop))if(d[e-1]p)d=[],c=[];else if(this.yData&&(d[0]p)){f=this.cropData(this.xData,this.yData,r,p);d=f.xData;c=f.yData;f=f.start;var A=!0}for(m=d.length||1;--m;)if(e=n?g(d[m])-g(d[m-1]):d[m]-d[m-1],0e&&l&&(a.error(15,!1,this.chart),l=!1);this.cropped=A;this.cropStart= +f;this.processedXData=d;this.processedYData=c;this.closestPointRange=y},cropData:function(a,b,c,e,f){var d=a.length,q=0,g=d,m;f=y(f,this.cropShoulder);for(m=0;m=c){q=Math.max(0,m-f);break}for(c=m;ce){g=c+f;break}return{xData:a.slice(q,g),yData:b.slice(q,g),start:q,end:g}},generatePoints:function(){var a=this.options,b=a.data,e=this.data,g,m=this.processedXData,h=this.processedYData,u=this.pointClass,k=m.length,l=this.cropStart||0,n=this.hasGroupedData;a=a.keys;var r= +[],p;e||n||(e=[],e.length=b.length,e=this.data=e);a&&n&&(this.options.keys=!1);for(p=0;p=u&&(d[r-l]||p)<=n;if(y&&p)if(y=A.length)for(;y--;)"number"===typeof A[y]&&(f[g++]=A[y]);else f[g++]=A}this.dataMin=k(f);this.dataMax=C(f);c(this,"afterGetExtremes")},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,f=this.xAxis,u=f.categories,k=this.yAxis,h=this.points,n=h.length,l=!!this.modifyValue,r,p=this.pointPlacementToXValue(),A=m(p),v=a.threshold,z=a.startFromThreshold?v:0,D,E=this.zoneAxis||"y",C=Number.MAX_VALUE; +for(r=0;r=F&&(B.isNull=!0);B.plotX=D=g(Math.min(Math.max(-1E5,f.translate(N,0,0,0,1,p,"flags"===this.type)),1E5));if(b&&this.visible&&!B.isNull&&L&&L[N]){var V=this.getStackIndicator(V,N,this.index);var P=L[N];var W=P.points[V.key]}e(W)&&(I=W[0],F=W[1],I===z&&V.key===L[N].base&&(I=y(m(v)&&v,k.min)),k.positiveValuesOnly&&0>=I&&(I=null),B.total=B.stackTotal= +P.total,B.percentage=P.total&&B.y/P.total*100,B.stackY=F,P.setOffset(this.pointXOffset||0,this.barW||0));B.yBottom=t(I)?Math.min(Math.max(-1E5,k.translate(I,0,1,0,1)),1E5):null;l&&(F=this.modifyValue(F,B));B.plotY=F="number"===typeof F&&Infinity!==F?Math.min(Math.max(-1E5,k.translate(F,0,1,0,1)),1E5):void 0;B.isInside=void 0!==F&&0<=F&&F<=k.len&&0<=D&&D<=f.len;B.clientX=A?g(f.translate(N,0,0,0,1,p)):D;B.negative=B[E]<(a[E+"Threshold"]||v||0);B.category=u&&void 0!==u[B.x]?u[B.x]:B.x;if(!B.isNull){void 0!== +X&&(C=Math.min(C,Math.abs(D-X)));var X=D}B.zone=this.zones.length&&B.getZone()}this.closestPointRangePx=C;c(this,"afterTranslate")},getValidPoints:function(a,b,c){var d=this.chart;return(a||this.points||[]).filter(function(a){return b&&!d.isInsidePlot(a.plotX,a.plotY,d.inverted)?!1:c||!a.isNull})},getClipBox:function(a,b){var d=this.options,c=this.chart,e=c.inverted,h=this.xAxis,f=h&&this.yAxis;a&&!1===d.clip&&f?d=e?{y:-c.chartWidth+f.len+f.pos,height:c.chartWidth,width:c.chartHeight,x:-c.chartHeight+ +h.len+h.pos}:{y:-f.pos,height:c.chartHeight,width:c.chartWidth,x:-h.pos}:(d=this.clipBox||c.clipBox,b&&(d.width=c.plotSizeX,d.x=0));return b?{width:d.width,x:d.x}:d},setClip:function(a){var b=this.chart,d=this.options,c=b.renderer,e=b.inverted,h=this.clipBox,f=this.getClipBox(a),g=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,f.height,d.xAxis,d.yAxis].join(),m=b[g],u=b[g+"m"];m||(a&&(f.width=0,e&&(f.x=b.plotSizeX+(!1!==d.clip?0:b.plotTop)),b[g+"m"]=u=c.clipRect(e?b.plotSizeX+99:-99, +e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[g]=m=c.clipRect(f),m.count={length:0});a&&!m.count[this.index]&&(m.count[this.index]=!0,m.count.length+=1);if(!1!==d.clip||a)this.group.clip(a||h?m:b.clipRect),this.markerGroup.clip(u),this.sharedClipKey=g;a||(m.count[this.index]&&(delete m.count[this.index],--m.count.length),0===m.count.length&&g&&b[g]&&(h||(b[g]=b[g].destroy()),b[g+"m"]&&(b[g+"m"]=b[g+"m"].destroy())))},animate:function(a){var b=this.chart,d=F(this.options.animation); +if(a)this.setClip(d);else{var c=this.sharedClipKey;a=b[c];var e=this.getClipBox(d,!0);a&&a.animate(e,d);b[c+"m"]&&b[c+"m"].animate({width:e.width+99,x:e.x-(b.inverted?0:99)},d);this.animate=null}},afterAnimate:function(){this.setClip();c(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,e=this.options.marker,f=this[this.specialGroup]||this.markerGroup;var h=this.xAxis;var g=y(e.enabled,!h||h.isRadial?!0:null,this.closestPointRangePx>=e.enabledThreshold* +e.radius);if(!1!==e.enabled||this._hasPointMarkers)for(h=0;hf&&b.shadow));g&&(g.startX=c.xMap,g.isArea=c.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(b,d){var c=["zone-graph-"+d,"highcharts-graph highcharts-zone-graph-"+d+" "+ +(b.className||"")];this.chart.styledMode||c.push(b.color||this.color,b.dashStyle||this.options.dashStyle);a.push(c)},this);return a},applyZones:function(){var a=this,b=this.chart,c=b.renderer,e=this.zones,f,h,g=this.clips||[],m,u=this.graph,k=this.area,l=Math.max(b.chartWidth,b.chartHeight),n=this[(this.zoneAxis||"y")+"Axis"],r=b.inverted,p,A,v,t=!1;if(e.length&&(u||k)&&n&&void 0!==n.min){var D=n.reversed;var E=n.horiz;u&&!this.showLine&&u.hide();k&&k.hide();var B=n.getExtremes();e.forEach(function(d, +e){f=D?E?b.plotWidth:0:E?0:n.toPixels(B.min)||0;f=Math.min(Math.max(y(h,f),0),l);h=Math.min(Math.max(Math.round(n.toPixels(y(d.value,B.max),!0)||0),0),l);t&&(f=h=n.toPixels(B.max));p=Math.abs(f-h);A=Math.min(f,h);v=Math.max(f,h);n.isXAxis?(m={x:r?v:A,y:0,width:p,height:l},E||(m.x=b.plotHeight-m.x)):(m={x:0,y:r?v:A,width:l,height:p},E&&(m.y=b.plotWidth-m.y));r&&c.isVML&&(m=n.isXAxis?{x:0,y:D?A:v,height:m.width,width:b.chartWidth}:{x:m.y-b.plotLeft-b.spacingBox.x,y:0,width:m.height,height:b.chartHeight}); +g[e]?g[e].animate(m):g[e]=c.clipRect(m);u&&a["zone-graph-"+e].clip(g[e]);k&&a["zone-area-"+e].clip(g[e]);t=d.value>B.max;a.resetZones&&0===h&&(h=void 0)});this.clips=g}else a.visible&&(u&&u.show(!0),k&&k.show(!0))},invertGroups:function(a){function b(){["group","markerGroup"].forEach(function(b){d[b]&&(c.renderer.isVML&&d[b].attr({width:d.yAxis.len,height:d.xAxis.len}),d[b].width=d.yAxis.len,d[b].height=d.xAxis.len,d[b].invert(a))})}var d=this,c=d.chart;if(d.xAxis){var e=B(c,"resize",b);B(d,"destroy", +e);b(a);d.invertGroups=b}},plotGroup:function(a,b,c,e,f){var d=this[a],g=!d;g&&(this[a]=d=this.chart.renderer.g().attr({zIndex:e||.1}).add(f));d.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(t(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(d.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);d.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return d},getPlotBox:function(){var a=this.chart, +b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,e=a.options,f=!!a.animate&&b.renderer.isSVG&&F(e.animation).duration,g=a.visible?"inherit":"hidden",h=e.zIndex,m=a.hasRendered,u=b.seriesGroup,k=b.inverted;c(this,"render");var n=a.plotGroup("group","series",g,h,u);a.markerGroup=a.plotGroup("markerGroup","markers",g,h,u);f&&a.animate(!0);n.inverted=a.isCartesian||a.invertable? +k:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(k);!1===e.clip||a.sharedClipKey||m||n.clip(b.clipRect);f&&a.animate();m||(a.animationTimeout=E(function(){a.afterAnimate()},f));a.isDirty=!1;a.hasRendered=!0;c(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,e=this.xAxis,f= +this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:y(e&&e.left,a.plotLeft),translateY:y(f&&f.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-a.chartY+d.pos:a.chartX-d.pos,plotY:e?c.len-a.chartX+c.pos:a.chartY-c.pos},b,a)},buildKDTree:function(a){function b(a,d,e){var f;if(f=a&&a.length){var h= +c.kdAxisArray[d%e];a.sort(function(a,b){return a[h]-b[h]});f=Math.floor(f/2);return{point:a[f],left:b(a.slice(0,f),d+1,e),right:b(a.slice(f+1),d+1,e)}}}this.buildingKdTree=!0;var c=this,d=-1u?"left":"right";n=0>u?"right":"left";b[l]&&(l=d(a,b[l],c+1,h),k=l[m]r;)p--;this.updateParallelArrays(w,"splice",p,0,0);this.updateParallelArrays(w,p);k&&w.name&&(k[r]=w.name);q.splice(p,0,a);n&&(this.data.splice(p,0,null),this.processData());"point"===d.legendType&&this.generatePoints();c&&(h[0]&&h[0].remove?h[0].remove(!1):(h.shift(),this.updateParallelArrays(w,"shift"),q.shift()));!1!==g&&f(this,"addPoint",{point:w});this.isDirtyData=this.isDirty=!0;b&&m.redraw(e)},removePoint:function(a,b,c){var d= +this,e=d.data,f=e[a],h=d.points,g=d.chart,m=function(){h&&h.length===e.length&&h.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(f||{series:d},"splice",a,1);f&&f.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&g.redraw()};A(c,g);b=l(b,!0);f?f.firePointEvent("remove",null,m):m()},remove:function(a,b,c,e){function d(){g.destroy(e);g.remove=null;h.isDirtyLegend=h.isDirtyBox=!0;h.linkSeries();l(a,!0)&&h.redraw(b)}var g=this,h=g.chart;!1!==c?f(g,"remove",null,d):d()},update:function(c, +d){c=a.cleanRecursively(c,this.userOptions);f(this,"update",{options:c});var e=this,g=e.chart,m=e.userOptions,k=e.initialType||e.type,h=c.type||m.type||g.options.chart.type,n=!(this.hasDerivedData||c.dataGrouping||h&&h!==this.type||void 0!==c.pointStart||c.pointInterval||c.pointIntervalUnit||c.keys),u=N[k].prototype,p,A=["group","markerGroup","dataLabelsGroup","transformGroup"],y=["navigatorSeries","baseSeries"],v=e.finishedAnimating&&{animation:!1},t={};n&&(y.push("data","isDirtyData","points","processedXData", +"processedYData","xIncrement","_hasPointMarkers","_hasPointLabels","mapMap","mapData","minY","maxY","minX","maxX"),!1!==c.visible&&y.push("area","graph"),e.parallelArrays.forEach(function(a){y.push(a+"Data")}),c.data&&this.setData(c.data,!1));c=b(m,v,{index:void 0===m.index?e.index:m.index,pointStart:l(m.pointStart,e.xData[0])},!n&&{data:e.options.data},c);y=A.concat(y);y.forEach(function(a){y[a]=e[a];delete e[a]});e.remove(!1,null,!1,!0);for(p in u)e[p]=void 0;N[h||k]?r(e,N[h||k].prototype):a.error(17, +!0,g);y.forEach(function(a){e[a]=y[a]});e.init(g,c);if(n&&this.points){var D=e.options;!1===D.visible?(t.graphic=1,t.dataLabel=1):(D.marker&&!1===D.marker.enabled&&!e._hasPointMarkers&&(t.graphic=1),D.dataLabels&&!1===D.dataLabels.enabled&&!e._hasPointLabels&&(t.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),Object.keys(t).length&&a.destroyElements(t),!1===D.showInLegend&&a.legendItem&&g.legend.destroyItem(a))},this)}c.zIndex!==m.zIndex&&A.forEach(function(a){e[a]&&e[a].attr({zIndex:c.zIndex})}); +e.initialType=k;g.linkSeries();f(this,"afterUpdate");l(d,!0)&&g.redraw(n?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});r(C.prototype,{update:function(a,c){var d=this.chart,e=a&&a.events||{};a=b(this.userOptions,a);d.options[this.coll].indexOf&&(d.options[this.coll][d.options[this.coll].indexOf(this.userOptions)]=a);n(d.options[this.coll].events,function(a,b){"undefined"===typeof e[b]&&(e[b]=void 0)});this.destroy(!0);this.init(d, +r(a,{events:e}));d.isDirtyBox=!0;l(c,!0)&&d.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,e=this.series,f=e.length;f--;)e[f]&&e[f].remove(!1);t(b.axes,this);t(b[c],this);m(b.options[c])?b.options[c].splice(this.options.index,1):delete b.options[c];b[c].forEach(function(a,b){a.options.index=a.userOptions.index=b});this.destroy();b.isDirtyBox=!0;l(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})});L(I,"v7.1.2/js/parts/AreaSeries.js", +[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.color,F=a.pick,C=a.Series,k=a.seriesType;k("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(g){var k=[],v=[],t=this.xAxis,r=this.yAxis,f=r.stacks[this.stackKey],c={},e=this.index,m=r.series,b=m.length,n=F(r.options.reversedStacks,!0)?1:-1,l;g=g||this.points;if(this.options.stacking){for(l=0;la&&c>p?(c=Math.max(a,p),e=2*p-c):ck&&e>p?(e=Math.max(k,p),c=2*p-e):e=Math.abs(e)&&.5a.closestPointRange*a.xAxis.transA;b=a.borderWidth=v(f.borderWidth,b?0:1);var g=a.yAxis,l=f.threshold,p=a.translatedThreshold=g.getThreshold(l),r=v(f.minPointLength,5),B=a.getColumnMetrics(),A=B.width,E=a.barW=Math.max(A,1+2*b),u=a.pointXOffset=B.offset,d=a.dataMin,w=a.dataMax;e.inverted&& +(p-=.5);f.pointPadding&&(E=Math.ceil(E));t.prototype.translate.apply(a);a.points.forEach(function(b){var c=v(b.yBottom,p),f=999+Math.abs(c),h=A;f=Math.min(Math.max(-f,b.plotY),g.len+f);var m=b.plotX+u,q=E,n=Math.min(f,c),y=Math.max(f,c)-n;if(r&&Math.abs(y)r?c-r:p-(t?r:0)}k(b.options.pointWidth)&&(h=q=Math.ceil(b.options.pointWidth),m-=Math.round((h-A)/2));b.barX=m;b.pointWidth= +h;b.tooltipPos=e.inverted?[g.len+g.pos-e.plotLeft-f,a.xAxis.len-m-q/2,y]:[m+q/2,f+g.pos-e.plotTop,y];b.shapeType=a.pointClass.prototype.shapeType||"rect";b.shapeArgs=a.crispCol.apply(a,b.isNull?[m,p,q,0]:[m,n,q,y])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,e){var c=this.options,b=this.pointAttrToOptions||{};var f=b.stroke||"borderColor";var g=b["stroke-width"]|| +"borderWidth",k=a&&a.color||this.color,r=a&&a[f]||c[f]||this.color||k,t=a&&a[g]||c[g]||this[g]||0;b=a&&a.dashStyle||c.dashStyle;var A=v(c.opacity,1);if(a&&this.zones.length){var E=a.getZone();k=a.options.color||E&&E.color||this.color;E&&(r=E.borderColor||r,b=E.dashStyle||b,t=E.borderWidth||t)}e&&(c=p(c.states[e],a.options.states&&a.options.states[e]||{}),E=c.brightness,k=c.color||void 0!==E&&F(k).brighten(c.brightness).get()||k,r=c[f]||r,t=c[g]||t,b=c.dashStyle||b,A=v(c.opacity,A));f={fill:k,stroke:r, +"stroke-width":t,opacity:A};b&&(f.dashstyle=b);return f},drawPoints:function(){var a=this,e=this.chart,f=a.options,b=e.renderer,k=f.animationLimit||250,l;a.points.forEach(function(c){var m=c.graphic,n=m&&e.pointCountc;++c){var e=r[c];a=2>c||2===c&&/%$/.test(e);r[c]=k(e,[t,p,f,r[2]][c])+(a?v:0)}r[3]>r[2]&&(r[3]=r[2]);return r},getStartAndEndRadians:function(a,k){var g=F(a)?a:0,p=F(k)&&k>g&&360>k-g?k:g+360;return{start:B*(g+-90),end:B*(p+-90)}}}});L(I,"v7.1.2/js/parts/PieSeries.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.addEvent,F=a.CenteredSeriesMixin,C=a.defined,k=F.getStartAndEndRadians,g=a.merge, +p=a.noop,v=a.pick,t=a.Point,r=a.Series,f=a.seriesType,c=a.setAnimation;f("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0,connectorShape:"fixedOffset",crookDistance:"70%"},ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0}, +borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var c=this,b=c.points,e=c.startAngleRad;a||(b.forEach(function(a){var b=a.graphic,f=a.shapeArgs;b&&(b.attr({r:a.startR||c.center[3]/2,start:e,end:e}),b.animate({r:f.r,start:f.start,end:f.end},c.options.animation))}),c.animate=null)}, +hasData:function(){return!!this.processedXData.length},updateTotals:function(){var a,c=0,b=this.points,f=b.length,g=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);d.slicedTranslation={translateX:Math.round(Math.cos(q)*f),translateY:Math.round(Math.sin(q)* +f)};var G=Math.cos(q)*c[2]/2;var H=Math.sin(q)*c[2]/2;d.tooltipPos=[c[0]+.7*G,c[1]+.7*H];d.half=q<-Math.PI/2||q>Math.PI/2?1:0;d.angle=q;w=Math.min(g,d.labelDistance/5);d.labelPosition={natural:{x:c[0]+G+Math.cos(q)*d.labelDistance,y:c[1]+H+Math.sin(q)*d.labelDistance},"final":{},alignment:0>d.labelDistance?"center":d.half?"right":"left",connectorPosition:{breakAt:{x:c[0]+G+Math.cos(q)*w,y:c[1]+H+Math.sin(q)*w},touchingSliceAt:{x:c[0]+G,y:c[1]+H}}}}},drawGraph:null,redrawPoints:function(){var a=this, +c=a.chart,b=c.renderer,f,k,r,p,t=a.options.shadow;!t||a.shadowGroup||c.styledMode||(a.shadowGroup=b.g("shadow").attr({zIndex:-1}).add(a.group));a.points.forEach(function(e){var m={};k=e.graphic;if(!e.isNull&&k){p=e.shapeArgs;f=e.getTranslate();if(!c.styledMode){var l=e.shadowGroup;t&&!l&&(l=e.shadowGroup=b.g("shadow").add(a.shadowGroup));l&&l.attr(f);r=a.pointAttribs(e,e.selected&&"select")}e.delayedRendering?(k.setRadialReference(a.center).attr(p).attr(f),c.styledMode||k.attr(r).attr({"stroke-linejoin":"round"}).shadow(t, +l),e.delayedRendering=!1):(k.setRadialReference(a.center),c.styledMode||g(!0,m,r),g(!0,m,p,f),k.animate(m));k.attr({visibility:e.visible?"inherit":"hidden"});k.addClass(e.getClassName())}else k&&(e.graphic=k.destroy())})},drawPoints:function(){var a=this.chart.renderer;this.points.forEach(function(c){c.graphic||(c.graphic=a[c.shapeType](c.shapeArgs).add(c.series.group),c.delayedRendering=!0)})},searchPoint:p,sortByAngle:function(a,c){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)* +c})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:F.getCenter,getSymbol:p},{init:function(){t.prototype.init.apply(this,arguments);var a=this;a.name=v(a.name,"Slice");var c=function(b){a.slice("select"===b.type)};B(a,"select",c);B(a,"unselect",c);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,c){var b=this,e=b.series,f=e.chart,g=e.options.ignoreHiddenPoint;c=v(c,g);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,e.options.data[e.data.indexOf(b)]= +b.options,["graphic","dataLabel","connector","shadowGroup"].forEach(function(c){if(b[c])b[c][a?"show":"hide"](!0)}),b.legendItem&&f.legend.colorizeItem(b,a),a||"hover"!==b.state||b.setState(""),g&&(e.isDirty=!0),c&&f.redraw())},slice:function(a,f,b){var e=this.series;c(b,e.chart);v(f,!0);this.sliced=this.options.sliced=C(a)?a:!this.sliced;e.options.data[e.data.indexOf(this)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced? +this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:this.shapeArgs.r-1,start:c.start,end:c.end})},connectorShapes:{fixedOffset:function(a,c,b){var e=c.breakAt;c=c.touchingSliceAt;return["M",a.x,a.y].concat(b.softConnector?["C",a.x+("left"===a.alignment?-5:5),a.y,2*e.x-c.x,2*e.y-c.y,e.x,e.y]:["L",e.x,e.y]).concat(["L",c.x,c.y])},straight:function(a,c){var b= +c.touchingSliceAt;return["M",a.x,a.y,"L",b.x,b.y]},crookedLine:function(c,f,b){f=f.touchingSliceAt;var e=this.series,g=e.center[0],k=e.chart.plotWidth,m=e.chart.plotLeft;e=c.alignment;var r=this.shapeArgs.r;b=a.relativeLength(b.crookDistance,1);b="left"===e?g+r+(k+m-g-r)*(1-b):m+(g-r)*b;g=["L",b,c.y];if("left"===e?b>c.x||bf.x)g=[];return["M",c.x,c.y].concat(g).concat(["L",f.x,f.y])}},getConnectorPath:function(){var a=this.labelPosition,c=this.series.options.dataLabels,b=c.connectorShape, +f=this.connectorShapes;f[b]&&(b=f[b]);return b.call(this,{x:a["final"].x,y:a["final"].y,alignment:a.alignment},a.connectorPosition,c)}})});L(I,"v7.1.2/js/parts/PlotLineOrBand.js",[I["v7.1.2/js/parts/Globals.js"],I["v7.1.2/js/parts/Axis.js"]],function(a,B){var F=a.arrayMax,C=a.arrayMin,k=a.defined,g=a.destroyObjectProperties,p=a.erase,v=a.merge,t=a.pick;a.PlotLineOrBand=function(a,f){this.axis=a;f&&(this.options=f,this.id=f.id)};a.PlotLineOrBand.prototype={render:function(){a.fireEvent(this,"render"); +var g=this,f=g.axis,c=f.horiz,e=g.options,m=e.label,b=g.label,n=e.to,l=e.from,p=e.value,D=k(l)&&k(n),B=k(p),A=g.svgElem,E=!A,u=[],d=e.color,w=t(e.zIndex,0),q=e.events;u={"class":"highcharts-plot-"+(D?"band ":"line ")+(e.className||"")};var G={},H=f.chart.renderer,h=D?"bands":"lines";f.isLog&&(l=f.log2lin(l),n=f.log2lin(n),p=f.log2lin(p));f.chart.styledMode||(B?(u.stroke=d,u["stroke-width"]=e.width,e.dashStyle&&(u.dashstyle=e.dashStyle)):D&&(d&&(u.fill=d),e.borderWidth&&(u.stroke=e.borderColor,u["stroke-width"]= +e.borderWidth)));G.zIndex=w;h+="-"+w;(d=f.plotLinesAndBandsGroups[h])||(f.plotLinesAndBandsGroups[h]=d=H.g("plot-"+h).attr(G).add());E&&(g.svgElem=A=H.path().attr(u).add(d));if(B)u=f.getPlotLinePath({value:p,lineWidth:A.strokeWidth(),acrossPanes:e.acrossPanes});else if(D)u=f.getPlotBandPath(l,n,e);else return;(E||!A.d)&&u&&u.length?(A.attr({d:u}),q&&a.objectEach(q,function(a,b){A.on(b,function(a){q[b].apply(g,[a])})})):A&&(u?(A.show(!0),A.animate({d:u})):A.d&&(A.hide(),b&&(g.label=b=b.destroy()))); +m&&k(m.text)&&u&&u.length&&0this.max&&f>this.max;if(e&&c){if(l){var p=e.toString()===c.toString();k=0}for(l=0;l=f&& +m<=l||q||!a.defined(m))u=!0;d[q?"zoomX":"zoomY"]&&u&&(g=c.zoom(b.min,b.max),c.displayBtn&&(k=!0))});var l=e.resetZoomButton;k&&!l?e.showResetZoom():!k&&f(l)&&(e.resetZoomButton=l.destroy());g&&e.redraw(b(e.options.chart.animation,c&&c.animation,100>e.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,e;t(this,"pan",{originalEvent:a},function(){d&&d.forEach(function(a){a.setState()});("xy"===b?[1,0]:[1]).forEach(function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"];d= +d?"mouseDownX":"mouseDownY";var g=c[d],k=(b.pointRange||0)/2,m=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,l=b.getExtremes(),q=b.toValue(g-f,!0)+k*m;m=b.toValue(g+b.len-f,!0)-k*m;var n=m\u25cf
{series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],toYData:function(a){return[a.low, +a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var f=this.chart,c=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=c.x-f.plotLeft;a.plotHigh=c.y-f.plotTop;a.plotLowX=a.plotX},translate:function(){var a=this,f=a.yAxis,c=!!a.modifyValue;p.area.prototype.translate.apply(a);a.points.forEach(function(e){var g=e.low,b=e.high,k=e.plotY;null===b||null===g?(e.isNull=!0,e.plotY=null):(e.plotLow=k,e.plotHigh=f.translate(c?a.modifyValue(b,e):b,0,1,0,1),c&&(e.yBottom= +e.plotHigh))});this.chart.polar&&this.points.forEach(function(c){a.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(a){var f=[],c=[],e,g=p.area.prototype.getGraphPath;var b=this.options;var k=this.chart.polar&&!1!==b.connectEnds,l=b.connectNulls,r=b.step;a=a||this.points;for(e=a.length;e--;){var t=a[e];t.isNull||k||l||a[e+1]&&!a[e+1].isNull||c.push({plotX:t.plotX,plotY:t.plotY,doCurve:!1});var v={polarPlotY:t.polarPlotY,rectPlotX:t.rectPlotX, +yBottom:t.yBottom,plotX:B(t.plotHighX,t.plotX),plotY:t.plotHigh,isNull:t.isNull};c.push(v);f.push(v);t.isNull||k||l||a[e-1]&&!a[e-1].isNull||c.push({plotX:t.plotX,plotY:t.plotY,doCurve:!1})}a=g.call(this,a);r&&(!0===r&&(r="left"),b.step={left:"right",center:"center",right:"left"}[r]);f=g.call(this,f);c=g.call(this,c);b.step=r;b=[].concat(a,f);this.chart.polar||"M"!==c[0]||(c[0]="L");this.graphPath=b;this.areaPath=a.concat(c);b.isArea=!0;b.xMap=a.xMap;this.areaPath.xMap=a.xMap;return b},drawDataLabels:function(){var a= +this.points,f=a.length,c,e=[],g=this.options.dataLabels,b,k=this.chart.inverted;if(C(g))if(1b.plotLow;b.y=b.high;b._plotY=b.plotY;b.plotY=b.plotHigh;e[c]=b.dataLabel;b.dataLabel=b.dataLabelUpper;b.below=t;k?l.align||(l.align=t?"right":"left"):l.verticalAlign||(l.verticalAlign= +t?"top":"bottom")}this.options.dataLabels=l;v.drawDataLabels&&v.drawDataLabels.apply(this,arguments);for(c=f;c--;)if(b=a[c])b.dataLabelUpper=b.dataLabel,b.dataLabel=e[c],delete b.dataLabels,b.y=b.low,b.plotY=b._plotY}if(p.enabled||this._hasPointLabels){for(c=f;c--;)if(b=a[c])t=p.inside?b.plotHighb.plotLow,b.below=!t,k?p.align||(p.align=t?"left":"right"):p.verticalAlign||(p.verticalAlign=t?"bottom":"top");this.options.dataLabels=p;v.drawDataLabels&&v.drawDataLabels.apply(this, +arguments)}if(l.enabled)for(c=f;c--;)if(b=a[c])b.dataLabels=[b.dataLabelUpper,b.dataLabel].filter(function(a){return!!a});this.options.dataLabels=g},alignDataLabel:function(){p.column.prototype.alignDataLabel.apply(this,arguments)},drawPoints:function(){var g=this.points.length,f;v.drawPoints.apply(this,arguments);for(f=0;f")+6,d=a.substr(c);a=a.substr(0,c);b&&b.exporting&&b.exporting.allowHTML&&d&&(d=''+d+"", +a=a.replace("",d+""));a=a.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(\S+)("|")\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0, +24).replace(/[\-]+$/g,""));if(!b||5>b.length)b="chart";return b},exportChart:function(b,d){var e=this.getSVGForExport(b,d);b=c(this.options.exporting,b);a.post(b.url,{filename:b.filename||this.getFilename(),type:b.type,width:b.width||0,scale:b.scale,svg:e},b.formAttributes)},print:function(){function a(a){(b.fixedDiv?[b.fixedDiv,b.scrollingContainer]:[b.container]).forEach(function(b){a.appendChild(b)})}var b=this,c=[],e=C.body,f=e.childNodes,g=b.options.exporting.printMaxWidth,h;if(!b.isPrinting){b.isPrinting= +!0;b.pointer.reset(null,0);v(b,"beforePrint");if(h=g&&b.chartWidth>g){var k=[b.options.chart.width,void 0,!1];b.setSize(g,void 0,!1)}[].forEach.call(f,function(a,b){1===a.nodeType&&(c[b]=a.style.display,a.style.display="none")});a(e);setTimeout(function(){l.focus();l.print();setTimeout(function(){a(b.renderTo);[].forEach.call(f,function(a,b){1===a.nodeType&&(a.style.display=c[b])});b.isPrinting=!1;h&&b.setSize.apply(b,k);v(b,"afterPrint")},1E3)},1)}},contextMenu:function(c,d,e,k,m,l,h){var n=this, +q=n.options.navigation,p=n.chartWidth,u=n.chartHeight,r="cache-"+c,w=n[r],y=Math.max(m,l);if(!w){n.exportContextMenu=n[r]=w=t("div",{className:c},{position:"absolute",zIndex:1E3,padding:y+"px",pointerEvents:"auto"},n.fixedDiv||n.container);var A=t("div",{className:"highcharts-menu"},null,w);n.styledMode||f(A,b({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},q.menuStyle));w.hideMenu=function(){f(w,{display:"none"});h&&h.setState(0);n.openMenu=!1; +f(n.renderTo,{overflow:"hidden"});a.clearTimeout(w.hideTimer);v(n,"exportMenuHidden")};n.exportEvents.push(g(w,"mouseleave",function(){w.hideTimer=setTimeout(w.hideMenu,500)}),g(w,"mouseenter",function(){a.clearTimeout(w.hideTimer)}),g(C,"mouseup",function(a){n.pointer.inClass(a.target,c)||w.hideMenu()}),g(w,"click",function(){n.openMenu&&w.hideMenu()}));d.forEach(function(c){"string"===typeof c&&(c=n.options.exporting.menuItemDefinitions[c]);if(a.isObject(c,!0)){if(c.separator)var d=t("hr",null, +null,A);else d=t("div",{className:"highcharts-menu-item",onclick:function(a){a&&a.stopPropagation();w.hideMenu();c.onclick&&c.onclick.apply(n,arguments)},innerHTML:c.text||n.options.lang[c.textKey]},null,A),n.styledMode||(d.onmouseover=function(){f(this,q.menuItemHoverStyle)},d.onmouseout=function(){f(this,q.menuItemStyle)},f(d,b({cursor:"pointer"},q.menuItemStyle)));n.exportDivElements.push(d)}});n.exportDivElements.push(A,w);n.exportMenuWidth=w.offsetWidth;n.exportMenuHeight=w.offsetHeight}d={display:"block"}; +e+n.exportMenuWidth>p?d.right=p-e-m-y+"px":d.left=e-y+"px";k+l+n.exportMenuHeight>u&&"top"!==h.alignOptions.verticalAlign?d.bottom=u-k-y+"px":d.top=k+l-y+"px";f(w,d);f(n.renderTo,{overflow:""});n.openMenu=!0},addButton:function(a){var d=this,f=d.renderer,g=c(d.options.navigation.buttonOptions,a),k=g.onclick,m=g.menuItems,h=g.symbolSize||12;d.btnCount||(d.btnCount=0);d.exportDivElements||(d.exportDivElements=[],d.exportSVGElements=[]);if(!1!==g.enabled){var l=g.theme,n=l.states,p=n&&n.hover;n=n&&n.select; +var u;d.styledMode||(l.fill=e(l.fill,"#ffffff"),l.stroke=e(l.stroke,"none"));delete l.states;k?u=function(a){a&&a.stopPropagation();k.call(d,a)}:m&&(u=function(a){a&&a.stopPropagation();d.contextMenu(r.menuClassName,m,r.translateX,r.translateY,r.width,r.height,r);r.setState(2)});g.text&&g.symbol?l.paddingLeft=e(l.paddingLeft,25):g.text||b(l,{width:g.width,height:g.height,padding:0});d.styledMode||(l["stroke-linecap"]="round",l.fill=e(l.fill,"#ffffff"),l.stroke=e(l.stroke,"none"));var r=f.button(g.text, +0,0,u,l,p,n).addClass(a.className).attr({title:e(d.options.lang[g._titleKey||g.titleKey],"")});r.menuClassName=a.menuClassName||"highcharts-menu-"+d.btnCount++;if(g.symbol){var t=f.symbol(g.symbol,g.symbolX-h/2,g.symbolY-h/2,h,h,{width:h,height:h}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(r);d.styledMode||t.attr({stroke:g.symbolStroke,fill:g.symbolFill,"stroke-width":g.symbolStrokeWidth||1})}r.add(d.exportingGroup).align(b(g,{width:r.width,x:e(g.x,d.buttonOffset)}),!0,"spacingBox"); +d.buttonOffset+=(r.width+g.buttonSpacing)*("right"===g.align?-1:1);d.exportSVGElements.push(r,t)}},destroyExport:function(b){var c=b?b.target:this;b=c.exportSVGElements;var e=c.exportDivElements,f=c.exportEvents,g;b&&(b.forEach(function(a,b){a&&(a.onclick=a.ontouchstart=null,g="cache-"+a.menuClassName,c[g]&&delete c[g],c.exportSVGElements[b]=a.destroy())}),b.length=0);c.exportingGroup&&(c.exportingGroup.destroy(),delete c.exportingGroup);e&&(e.forEach(function(b,d){a.clearTimeout(b.hideTimer);p(b, +"mouseleave");c.exportDivElements[d]=b.onmouseout=b.onmouseover=b.ontouchstart=b.onclick=null;r(b)}),e.length=0);f&&(f.forEach(function(a){a()}),f.length=0)}});D.prototype.inlineToAttributes="fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y".split(" ");D.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/];D.prototype.unstyledElements=["clipPath","defs","desc"];k.prototype.inlineStyles= +function(){function a(a){return a.replace(/([A-Z])/g,function(a,b){return"-"+b.toLowerCase()})}function b(d){function e(b,c){q=u=!1;if(n){for(v=n.length;v--&&!u;)u=n[v].test(c);q=!u}"transform"===c&&"none"===b&&(q=!0);for(v=k.length;v--&&!q;)q=k[v].test(c)||"function"===typeof b;q||x[c]===b&&"svg"!==d.nodeName||p[d.nodeName][c]===b||(-1!==g.indexOf(c)?d.setAttribute(a(c),b):f+=a(c)+":"+b+";")}var f="",q,u,v;if(1===d.nodeType&&-1===h.indexOf(d.nodeName)){var w=l.getComputedStyle(d,null);var x="svg"=== +d.nodeName?{}:l.getComputedStyle(d.parentNode,null);if(!p[d.nodeName]){r=t.getElementsByTagName("svg")[0];var y=t.createElementNS(d.namespaceURI,d.nodeName);r.appendChild(y);p[d.nodeName]=c(l.getComputedStyle(y,null));"text"===d.nodeName&&delete p.text.fill;r.removeChild(y)}if(E||A)for(var B in w)e(w[B],B);else m(w,e);f&&(w=d.getAttribute("style"),d.setAttribute("style",(w?w+";":"")+f));"svg"===d.nodeName&&d.setAttribute("stroke-width","1px");"text"!==d.nodeName&&[].forEach.call(d.children||d.childNodes, +b)}}var e=this.renderer,g=e.inlineToAttributes,k=e.inlineBlacklist,n=e.inlineWhitelist,h=e.unstyledElements,p={},r;e=C.createElement("iframe");f(e,{width:"1px",height:"1px",visibility:"hidden"});C.body.appendChild(e);var t=e.contentWindow.document;t.open();t.write('');t.close();b(this.container.querySelector("svg"));r.parentNode.removeChild(r)};I.menu=function(a,b,c,e){return["M",a,b+2.5,"L",a+c,b+2.5,"M",a,b+e/2+.5,"L",a+c,b+e/2+.5,"M",a,b+e-1.5,"L", +a+c,b+e-1.5]};I.menuball=function(a,b,c,e){a=[];e=e/3-2;return a=a.concat(this.circle(c-e,b,e,e),this.circle(c-e,b+e+4,e,e),this.circle(c-e,b+2*(e+4),e,e))};k.prototype.renderExporting=function(){var a=this,b=a.options.exporting,c=b.buttons,e=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();e&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g("exporting-group").attr({zIndex:3}).add(),m(c,function(b){a.addButton(b)}),a.isDirtyExporting= +!1);g(a,"destroy",a.destroyExport)};g(k,"init",function(){var a=this;a.exporting={update:function(b,f){a.isDirtyExporting=!0;c(!0,a.options.exporting,b);e(f,!0)&&a.redraw()}};B.addUpdate(function(b,f){a.isDirtyExporting=!0;c(!0,a.options.navigation,b);e(f,!0)&&a.redraw()},a)});k.prototype.callbacks.push(function(a){a.renderExporting();g(a,"redraw",a.renderExporting)})});L(I,"v7.1.2/js/mixins/download-url.js",[I["v7.1.2/js/parts/Globals.js"]],function(a){var B=a.win,F=B.navigator,C=B.document,k=B.URL|| +B.webkitURL||B,g=/Edge\/\d+/.test(F.userAgent);a.dataURLtoBlob=function(a){if((a=a.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/))&&3g.userAgent.indexOf("Chrome");try{if(!c&&0>g.userAgent.toLowerCase().indexOf("firefox"))return v.createObjectURL(new k.Blob([a],{type:"image/svg+xml;charset-utf-16"}))}catch(e){}return"data:image/svg+xml;charset=UTF-8,"+ +encodeURIComponent(a)};a.imageToDataUrl=function(a,c,e,g,b,n,l,t,v){var f=new k.Image,m=function(){setTimeout(function(){var d=p.createElement("canvas"),k=d.getContext&&d.getContext("2d");try{if(k){d.height=f.height*g;d.width=f.width*g;k.drawImage(f,0,0,d.width,d.height);try{var m=d.toDataURL(c);b(m,c,e,g)}catch(G){u(a,c,e,g)}}else l(a,c,e,g)}finally{v&&v(a,c,e,g)}},r)},y=function(){t(a,c,e,g);v&&v(a,c,e,g)};var u=function(){f=new k.Image;u=n;f.crossOrigin="Anonymous";f.onload=m;f.onerror=y;f.src= +a};f.onload=m;f.onerror=y;f.src=a};a.downloadSVGLocal=function(f,c,e,m){function b(a,b){var c=new k.jsPDF("l","pt",[a.width.baseVal.value+2*b,a.height.baseVal.value+2*b]);[].forEach.call(a.querySelectorAll('*[visibility="hidden"]'),function(a){a.parentNode.removeChild(a)});k.svg2pdf(a,c,{removeInvalid:!0});return c.output("datauristring")}function n(){t.innerHTML=f;var c=t.getElementsByTagName("text"),d;[].forEach.call(c,function(a){["font-family","font-size"].forEach(function(b){for(var c=a;c&&c!== +t;){if(c.style[b]){a.style[b]=c.style[b];break}c=c.parentNode}});a.style["font-family"]=a.style["font-family"]&&a.style["font-family"].split(" ").splice(-1);d=a.getElementsByTagName("title");[].forEach.call(d,function(b){a.removeChild(b)})});c=b(t.firstChild,0);try{a.downloadURL(c,A),m&&m()}catch(H){e(H)}}var l=!0,r=c.libURL||a.getOptions().exporting.libURL,t=p.createElement("div"),C=c.type||"image/png",A=(c.filename||"chart")+"."+("image/svg+xml"===C?"svg":C.split("/")[1]),E=c.scale||1;r="/"!==r.slice(-1)? +r+"/":r;if("image/svg+xml"===C)try{if(g.msSaveOrOpenBlob){var u=new MSBlobBuilder;u.append(f);var d=u.getBlob("image/svg+xml")}else d=a.svgToDataUrl(f);a.downloadURL(d,A);m&&m()}catch(q){e(q)}else if("application/pdf"===C)k.jsPDF&&k.svg2pdf?n():(l=!0,B(r+"jspdf.js",function(){B(r+"svg2pdf.js",function(){n()})}));else{d=a.svgToDataUrl(f);var w=function(){try{v.revokeObjectURL(d)}catch(q){}};a.imageToDataUrl(d,C,{},E,function(b){try{a.downloadURL(b,A),m&&m()}catch(G){e(G)}},function(){var b=p.createElement("canvas"), +c=b.getContext("2d"),d=f.match(/^]*width\s*=\s*"?(\d+)"?[^>]*>/)[1]*E,h=f.match(/^]*height\s*=\s*"?(\d+)"?[^>]*>/)[1]*E,n=function(){c.drawSvg(f,0,0,d,h);try{a.downloadURL(g.msSaveOrOpenBlob?b.msToBlob():b.toDataURL(C),A),m&&m()}catch(J){e(J)}finally{w()}};b.width=d;b.height=h;k.canvg?n():(l=!0,B(r+"rgbcolor.js",function(){B(r+"canvg.js",function(){n()})}))},e,e,function(){l&&w()})}};a.Chart.prototype.getSVGForLocalExport=function(f,c,e,g){var b=this,k=0,l,m,p,r,t=function(){k===u.length&& +g(b.sanitizeSVG(l.innerHTML,m))},v=function(a,b,c){++k;c.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",a);t()};b.unbindGetSVG=F(b,"getSVG",function(a){m=a.chartCopy.options;l=a.chartCopy.container.cloneNode(!0)});b.getSVGForExport(f,c);var u=l.getElementsByTagName("image");try{if(!u.length){g(b.sanitizeSVG(l.innerHTML,m));return}var d=0;for(p=u.length;d