m-h?m:m-h);else if(y)e[a]=Math.max(g,b+h+l>c?b:b+h);else return!1},n=function(a,c,l,f,b){var g;bc-p?g=!1:e[a]=bc-f/2?c-f-2:b-l/2;return g},k=function(a){var c=l;l=x;x=c;d=a},F=function(){!1!==u.apply(0,l)?!1!==n.apply(0,x)||d||(k(!0),F()):d?e.x=e.y=0:(k(!0),F())};(a.inverted||1=v+y&&R.pos+N<=v+y+h-A&&(P=R.pos+N);K=D(K,n.left-l,n.right+l);\"number\"===typeof P?(C=C.height+1,N=r?r.call(a,m,C,p):f(K,P,E,m),e.push({align:r?0:void 0,anchorX:K,anchorY:P,boxWidth:m,point:p,rank:w(N.rank,E?1:0),size:C,target:N.y,tt:b,\nx:N.x})):b.isActive=!1}return e},[]);!r&&b.some(function(a){return a.xf[0]?Math.max(Math.abs(f[0]),p.width-f[0]):Math.max(Math.abs(f[0]),p.width);a.height=0>f[1]?Math.max(Math.abs(f[1]),\np.height-Math.abs(f[1])):Math.max(Math.abs(f[1]),p.height);this.tracker?this.tracker.attr(a):(this.tracker=g.renderer.rect(a).addClass(\"highcharts-tracker\").add(g),b.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};h.prototype.styledModeFormat=function(b){return b.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex}\"')};h.prototype.tooltipFooterHeaderFormatter=function(b,g){var f=g?\"footer\":\n\"header\",a=b.series,p=a.tooltipOptions,e=p.xDateFormat,h=a.xAxis,m=h&&\"datetime\"===h.options.type&&O(b.key),y=p[f+\"Format\"];g={isFooter:g,labelConfig:b};G(this,\"headerFormatter\",g,function(f){m&&!e&&(e=this.getXDateFormat(b,p,h));m&&e&&(b.point&&b.point.tooltipDateKeys||[\"key\"]).forEach(function(a){y=y.replace(\"{point.\"+a+\"}\",\"{point.\"+a+\":\"+e+\"}\")});a.chart.styledMode&&(y=this.styledModeFormat(y));f.text=d(y,{point:b,series:a},this.chart)});return g.text};h.prototype.update=function(b){this.destroy();\nF(!0,this.chart.options.tooltip.userOptions,b);this.init(this.chart,F(!0,this.options,b))};h.prototype.updatePosition=function(b){var g=this.chart,f=g.pointer,a=this.getLabel(),p=b.plotX+g.plotLeft,e=b.plotY+g.plotTop;f=f.getChartPosition();b=(this.options.positioner||this.getPosition).call(this,a.width,a.height,b);if(this.outside){var h=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(a.width+h,a.height+h,!1);if(g=g.containerScaling)J(this.container,{transform:\"scale(\"+g.scaleX+\n\", \"+g.scaleY+\")\"}),p*=g.scaleX,e*=g.scaleY;p+=f.left-b.x;e+=f.top-b.y}this.move(Math.round(b.x),Math.round(b.y||0),p,e)};return h}();k.Tooltip=q;return k.Tooltip});Q(k,\"Core/Pointer.js\",[k[\"Core/Color/Color.js\"],k[\"Core/Globals.js\"],k[\"Core/Tooltip.js\"],k[\"Core/Utilities.js\"]],function(k,t,I,D){var B=k.parse,M=t.charts,n=t.noop,z=D.addEvent,G=D.attr,d=D.css,O=D.defined,u=D.extend,F=D.find,w=D.fireEvent,r=D.isNumber,m=D.isObject,L=D.objectEach,q=D.offset,h=D.pick,b=D.splat;\"\";k=function(){function g(f,\na){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=f;this.hasDragged=!1;this.options=a;this.unbindContainerMouseLeave=function(){};this.unbindContainerMouseEnter=function(){};this.init(f,a)}g.prototype.applyInactiveState=function(f){var a=[],b;(f||[]).forEach(function(e){b=e.series;a.push(b);b.linkedParent&&a.push(b.linkedParent);b.linkedSeries&&(a=a.concat(b.linkedSeries));b.navigatorSeries&&a.push(b.navigatorSeries)});this.chart.series.forEach(function(e){-1===a.indexOf(e)?\ne.setState(\"inactive\",!0):e.options.inactiveOtherPoints&&e.setAllPointsToState(\"inactive\")})};g.prototype.destroy=function(){var f=this;\"undefined\"!==typeof f.unDocMouseMove&&f.unDocMouseMove();this.unbindContainerMouseLeave();t.chartCount||(t.unbindDocumentMouseUp&&(t.unbindDocumentMouseUp=t.unbindDocumentMouseUp()),t.unbindDocumentTouchEnd&&(t.unbindDocumentTouchEnd=t.unbindDocumentTouchEnd()));clearInterval(f.tooltipTimeout);L(f,function(a,b){f[b]=void 0})};g.prototype.drag=function(f){var a=this.chart,\nb=a.options.chart,e=f.chartX,g=f.chartY,h=this.zoomHor,d=this.zoomVert,q=a.plotLeft,r=a.plotTop,K=a.plotWidth,A=a.plotHeight,C=this.selectionMarker,v=this.mouseDownX||0,c=this.mouseDownY||0,l=m(b.panning)?b.panning&&b.panning.enabled:b.panning,x=b.panKey&&f[b.panKey+\"Key\"];if(!C||!C.touch)if(eq+K&&(e=q+K),gr+A&&(g=r+A),this.hasDragged=Math.sqrt(Math.pow(v-e,2)+Math.pow(c-g,2)),10e.options.findNearestPointBy.indexOf(\"y\");e=e.searchPoint(b,f);if((f=m(e,!0))&&!(f=!m(g,!0))){f=g.distX-e.distX;var p=g.dist-e.dist,h=(e.series.group&&e.series.group.zIndex)-(g.series.group&&g.series.group.zIndex);f=0<(0!==f&&a?f:0!==p?p:0!==h?h:g.series.index>e.series.index?-1:1)}f&&(g=e)});return g};g.prototype.getChartCoordinatesFromPoint=function(f,a){var b=f.series,e=b.xAxis;b=b.yAxis;var g=h(f.clientX,\nf.plotX),d=f.shapeArgs;if(e&&b)return a?{chartX:e.len+e.pos-g,chartY:b.len+b.pos-f.plotY}:{chartX:g+e.pos,chartY:f.plotY+b.pos};if(d&&d.x&&d.y)return{chartX:d.x,chartY:d.y}};g.prototype.getChartPosition=function(){return this.chartPosition||(this.chartPosition=q(this.chart.container))};g.prototype.getCoordinates=function(f){var a={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(b){a[b.isXAxis?\"xAxis\":\"yAxis\"].push({axis:b,value:b.toValue(f[b.horiz?\"chartX\":\"chartY\"])})});return a};g.prototype.getHoverData=\nfunction(f,a,b,e,g,d){var p,E=[];e=!(!e||!f);var q=a&&!a.stickyTracking,H={chartX:d?d.chartX:void 0,chartY:d?d.chartY:void 0,shared:g};w(this,\"beforeGetHoverData\",H);q=q?[a]:b.filter(function(a){return H.filter?H.filter(a):a.visible&&!(!g&&a.directTouch)&&h(a.options.enableMouseTracking,!0)&&a.stickyTracking});a=(p=e||!d?f:this.findNearestKDPoint(q,g,d))&&p.series;p&&(g&&!a.noSharedTooltip?(q=b.filter(function(a){return H.filter?H.filter(a):a.visible&&!(!g&&a.directTouch)&&h(a.options.enableMouseTracking,\n!0)&&!a.noSharedTooltip}),q.forEach(function(a){var e=F(a.points,function(a){return a.x===p.x&&!a.isNull});m(e)&&(a.chart.isBoosting&&(e=a.getPoint(e)),E.push(e))})):E.push(p));H={hoverPoint:p};w(this,\"afterGetHoverData\",H);return{hoverPoint:H.hoverPoint,hoverSeries:a,hoverPoints:E}};g.prototype.getPointFromEvent=function(f){f=f.target;for(var a;f&&!a;)a=f.point,f=f.parentNode;return a};g.prototype.onTrackerMouseOut=function(f){f=f.relatedTarget||f.toElement;var a=this.chart.hoverSeries;this.isDirectTouch=\n!1;if(!(!a||!f||a.stickyTracking||this.inClass(f,\"highcharts-tooltip\")||this.inClass(f,\"highcharts-series-\"+a.index)&&this.inClass(f,\"highcharts-tracker\")))a.onMouseOut()};g.prototype.inClass=function(f,a){for(var b;f;){if(b=G(f,\"class\")){if(-1!==b.indexOf(a))return!0;if(-1!==b.indexOf(\"highcharts-container\"))return!1}f=f.parentNode}};g.prototype.init=function(b,a){this.options=a;this.chart=b;this.runChartClick=a.chart.events&&!!a.chart.events.click;this.pinchDown=[];this.lastValidTouch={};I&&(b.tooltip=\nnew I(b,a.tooltip),this.followTouchMove=h(a.tooltip.followTouchMove,!0));this.setDOMEvents()};g.prototype.normalize=function(b,a){var f=b.touches,e=f?f.length?f.item(0):h(f.changedTouches,b.changedTouches)[0]:b;a||(a=this.getChartPosition());f=e.pageX-a.left;a=e.pageY-a.top;if(e=this.chart.containerScaling)f/=e.scaleX,a/=e.scaleY;return u(b,{chartX:Math.round(f),chartY:Math.round(a)})};g.prototype.onContainerClick=function(b){var a=this.chart,f=a.hoverPoint;b=this.normalize(b);var e=a.plotLeft,g=\na.plotTop;a.cancelClick||(f&&this.inClass(b.target,\"highcharts-tracker\")?(w(f.series,\"click\",u(b,{point:f})),a.hoverPoint&&f.firePointEvent(\"click\",b)):(u(b,this.getCoordinates(b)),a.isInsidePlot(b.chartX-e,b.chartY-g)&&w(a,\"click\",b)))};g.prototype.onContainerMouseDown=function(b){var a=1===((b.buttons||b.button)&1);b=this.normalize(b);if(t.isFirefox&&0!==b.button)this.onContainerMouseMove(b);if(\"undefined\"===typeof b.button||a)this.zoomOption(b),a&&b.preventDefault&&b.preventDefault(),this.dragStart(b)};\ng.prototype.onContainerMouseLeave=function(b){var a=M[h(t.hoverChartIndex,-1)],f=this.chart.tooltip;b=this.normalize(b);a&&(b.relatedTarget||b.toElement)&&(a.pointer.reset(),a.pointer.chartPosition=void 0);f&&!f.isHidden&&this.reset()};g.prototype.onContainerMouseEnter=function(b){delete this.chartPosition};g.prototype.onContainerMouseMove=function(b){var a=this.chart;b=this.normalize(b);this.setHoverChartIndex();b.preventDefault||(b.returnValue=!1);\"mousedown\"===a.mouseIsDown&&this.drag(b);a.openMenu||\n!this.inClass(b.target,\"highcharts-tracker\")&&!a.isInsidePlot(b.chartX-a.plotLeft,b.chartY-a.plotTop)||this.runPointActions(b)};g.prototype.onDocumentTouchEnd=function(b){M[t.hoverChartIndex]&&M[t.hoverChartIndex].pointer.drop(b)};g.prototype.onContainerTouchMove=function(b){this.touch(b)};g.prototype.onContainerTouchStart=function(b){this.zoomOption(b);this.touch(b,!0)};g.prototype.onDocumentMouseMove=function(b){var a=this.chart,f=this.chartPosition;b=this.normalize(b,f);var e=a.tooltip;!f||e&&\ne.isStickyOnContact()||a.isInsidePlot(b.chartX-a.plotLeft,b.chartY-a.plotTop)||this.inClass(b.target,\"highcharts-tracker\")||this.reset()};g.prototype.onDocumentMouseUp=function(b){var a=M[h(t.hoverChartIndex,-1)];a&&a.pointer.drop(b)};g.prototype.pinch=function(b){var a=this,f=a.chart,e=a.pinchDown,g=b.touches||[],d=g.length,m=a.lastValidTouch,q=a.hasZoom,r=a.selectionMarker,K={},A=1===d&&(a.inClass(b.target,\"highcharts-tracker\")&&f.runTrackerClick||a.runChartClick),C={};1r.max&&(a=r.max-l,F=!0);F?(u-=.8*(u-d[y][0]),\"number\"===typeof k&&(k-=.8*(k-d[y][1])),\np()):d[y]=[u,k];H||(h[y]=x-c,h[v]=l);h=H?1/q:q;g[v]=l;g[y]=a;e[H?b?\"scaleY\":\"scaleX\":\"scale\"+A]=q;e[\"translate\"+A]=h*c+(u-h*w)};g.prototype.reset=function(f,a){var p=this.chart,e=p.hoverSeries,g=p.hoverPoint,h=p.hoverPoints,d=p.tooltip,m=d&&d.shared?h:g;f&&m&&b(m).forEach(function(a){a.series.isCartesian&&\"undefined\"===typeof a.plotX&&(f=!1)});if(f)d&&m&&b(m).length&&(d.refresh(m),d.shared&&h?h.forEach(function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,\na),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):g&&(g.setState(g.state,!0),p.axes.forEach(function(a){a.crosshair&&g.series[a.coll]===a&&a.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();h&&h.forEach(function(a){a.setState()});if(e)e.onMouseOut();d&&d.hide(a);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());p.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=p.hoverPoints=p.hoverPoint=null}};g.prototype.runPointActions=function(b,a){var f=this.chart,\ne=f.tooltip&&f.tooltip.options.enabled?f.tooltip:void 0,g=e?e.shared:!1,d=a||f.hoverPoint,m=d&&d.series||f.hoverSeries;m=this.getHoverData(d,m,f.series,(!b||\"touchmove\"!==b.type)&&(!!a||m&&m.directTouch&&this.isDirectTouch),g,b);d=m.hoverPoint;var q=m.hoverPoints;a=(m=m.hoverSeries)&&m.tooltipOptions.followPointer;g=g&&m&&!m.noSharedTooltip;if(d&&(d!==f.hoverPoint||e&&e.isHidden)){(f.hoverPoints||[]).forEach(function(a){-1===q.indexOf(a)&&a.setState()});if(f.hoverSeries!==m)m.onMouseOver();this.applyInactiveState(q);\n(q||[]).forEach(function(a){a.setState(\"hover\")});f.hoverPoint&&f.hoverPoint.firePointEvent(\"mouseOut\");if(!d.series)return;f.hoverPoints=q;f.hoverPoint=d;d.firePointEvent(\"mouseOver\");e&&e.refresh(g?q:d,b)}else a&&e&&!e.isHidden&&(d=e.getAnchor([{}],b),e.updatePosition({plotX:d[0],plotY:d[1]}));this.unDocMouseMove||(this.unDocMouseMove=z(f.container.ownerDocument,\"mousemove\",function(a){var e=M[t.hoverChartIndex];if(e)e.pointer.onDocumentMouseMove(a)}));f.axes.forEach(function(a){var e=h((a.crosshair||\n{}).snap,!0),g;e&&((g=f.hoverPoint)&&g.series[a.coll]===a||(g=F(q,function(e){return e.series[a.coll]===a})));g||!e?a.drawCrosshair(b,g):a.hideCrosshair()})};g.prototype.scaleGroups=function(b,a){var f=this.chart,e;f.series.forEach(function(g){e=b||g.getPlotBox();g.xAxis&&g.xAxis.zoomEnabled&&g.group&&(g.group.attr(e),g.markerGroup&&(g.markerGroup.attr(e),g.markerGroup.clip(a?f.clipRect:null)),g.dataLabelsGroup&&g.dataLabelsGroup.attr(e))});f.clipRect.attr(a||f.clipBox)};g.prototype.setDOMEvents=\nfunction(){var b=this.chart.container,a=b.ownerDocument;b.onmousedown=this.onContainerMouseDown.bind(this);b.onmousemove=this.onContainerMouseMove.bind(this);b.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseEnter=z(b,\"mouseenter\",this.onContainerMouseEnter.bind(this));this.unbindContainerMouseLeave=z(b,\"mouseleave\",this.onContainerMouseLeave.bind(this));t.unbindDocumentMouseUp||(t.unbindDocumentMouseUp=z(a,\"mouseup\",this.onDocumentMouseUp.bind(this)));t.hasTouch&&(z(b,\"touchstart\",\nthis.onContainerTouchStart.bind(this)),z(b,\"touchmove\",this.onContainerTouchMove.bind(this)),t.unbindDocumentTouchEnd||(t.unbindDocumentTouchEnd=z(a,\"touchend\",this.onDocumentTouchEnd.bind(this))))};g.prototype.setHoverChartIndex=function(){var b=this.chart,a=t.charts[h(t.hoverChartIndex,-1)];if(a&&a!==b)a.pointer.onContainerMouseLeave({relatedTarget:!0});a&&a.mouseIsDown||(t.hoverChartIndex=b.index)};g.prototype.touch=function(b,a){var f=this.chart,e;this.setHoverChartIndex();if(1===b.touches.length)if(b=\nthis.normalize(b),(e=f.isInsidePlot(b.chartX-f.plotLeft,b.chartY-f.plotTop))&&!f.openMenu){a&&this.runPointActions(b);if(\"touchmove\"===b.type){a=this.pinchDown;var g=a[0]?4<=Math.sqrt(Math.pow(a[0].chartX-b.chartX,2)+Math.pow(a[0].chartY-b.chartY,2)):!1}h(g,!0)&&this.pinch(b)}else a&&this.reset();else 2===b.touches.length&&this.pinch(b)};g.prototype.zoomOption=function(b){var a=this.chart,f=a.options.chart,e=f.zoomType||\"\";a=a.inverted;/touch/.test(b.type)&&(e=h(f.pinchType,e));this.zoomX=b=/x/.test(e);\nthis.zoomY=e=/y/.test(e);this.zoomHor=b&&!a||e&&a;this.zoomVert=e&&!a||b&&a;this.hasZoom=b||e};return g}();return t.Pointer=k});Q(k,\"Core/MSPointer.js\",[k[\"Core/Globals.js\"],k[\"Core/Pointer.js\"],k[\"Core/Utilities.js\"]],function(k,t,I){function B(){var d=[];d.item=function(d){return this[d]};u(w,function(m){d.push({pageX:m.pageX,pageY:m.pageY,target:m.target})});return d}function J(d,r,q,h){\"touch\"!==d.pointerType&&d.pointerType!==d.MSPOINTER_TYPE_TOUCH||!n[k.hoverChartIndex]||(h(d),h=n[k.hoverChartIndex].pointer,\nh[r]({type:q,target:d.currentTarget,preventDefault:G,touches:B()}))}var M=this&&this.__extends||function(){var d=function(m,q){d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,b){h.__proto__=b}||function(h,b){for(var g in b)b.hasOwnProperty(g)&&(h[g]=b[g])};return d(m,q)};return function(m,q){function h(){this.constructor=m}d(m,q);m.prototype=null===q?Object.create(q):(h.prototype=q.prototype,new h)}}(),n=k.charts,z=k.doc,G=k.noop,d=I.addEvent,O=I.css,u=I.objectEach,F=I.removeEvent,\nw={},r=!!k.win.PointerEvent;return function(m){function u(){return null!==m&&m.apply(this,arguments)||this}M(u,m);u.prototype.batchMSEvents=function(d){d(this.chart.container,r?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);d(this.chart.container,r?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);d(z,r?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};u.prototype.destroy=function(){this.batchMSEvents(F);m.prototype.destroy.call(this)};u.prototype.init=function(d,h){m.prototype.init.call(this,\nd,h);this.hasZoom&&O(d.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};u.prototype.onContainerPointerDown=function(d){J(d,\"onContainerTouchStart\",\"touchstart\",function(h){w[h.pointerId]={pageX:h.pageX,pageY:h.pageY,target:h.currentTarget}})};u.prototype.onContainerPointerMove=function(d){J(d,\"onContainerTouchMove\",\"touchmove\",function(h){w[h.pointerId]={pageX:h.pageX,pageY:h.pageY};w[h.pointerId].target||(w[h.pointerId].target=h.currentTarget)})};u.prototype.onDocumentPointerUp=function(d){J(d,\n\"onDocumentTouchEnd\",\"touchend\",function(h){delete w[h.pointerId]})};u.prototype.setDOMEvents=function(){m.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(d)};return u}(t)});Q(k,\"Core/Legend.js\",[k[\"Core/Animation/AnimationUtilities.js\"],k[\"Core/Globals.js\"],k[\"Core/Utilities.js\"]],function(k,t,I){var B=k.animObject,J=k.setAnimation,M=I.addEvent,n=I.css,z=I.defined,G=I.discardElement,d=I.find,O=I.fireEvent,u=I.format,F=I.isNumber,w=I.merge,r=I.pick,m=I.relativeLength,\nL=I.stableSort,q=I.syncTimeout;k=I.wrap;I=t.isFirefox;var h=t.marginNames,b=t.win,g=function(){function b(a,b){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=void 0;\nthis.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,b)}b.prototype.init=function(a,b){this.chart=a;this.setOptions(b);b.enabled&&(this.render(),M(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=M(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};b.prototype.setOptions=function(a){var b=r(a.padding,\n8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=w(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=r(a.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===a.layout&&!this.chart.inverted;this.baseline=void 0};b.prototype.update=function(a,b){var e=this.chart;this.setOptions(w(!0,this.options,a));this.destroy();e.isDirtyLegend=e.isDirtyBox=\n!0;r(b,!0)&&e.redraw();O(this,\"afterUpdate\")};b.prototype.colorizeItem=function(a,b){a.legendGroup[b?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var e=this.options,f=a.legendItem,g=a.legendLine,p=a.legendSymbol,h=this.itemHiddenStyle.color;e=b?e.itemStyle.color:h;var d=b?a.color||h:h,m=a.options&&a.options.marker,A={fill:d};f&&f.css({fill:e,color:e});g&&g.attr({stroke:d});p&&(m&&p.isMarker&&(A=a.pointAttribs(),b||(A.stroke=A.fill=h)),p.attr(A))}O(this,\"afterColorizeItem\",\n{item:a,visible:b})};b.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};b.prototype.positionItem=function(a){var b=this,e=this.options,f=e.symbolPadding,g=!e.rtl,h=a._legendItemPos;e=h[0];h=h[1];var d=a.checkbox,m=a.legendGroup;m&&m.element&&(f={translateX:g?e:this.legendWidth-e-2*f-4,translateY:h},g=function(){O(b,\"afterPositionItem\",{item:a})},z(m.translateY)?m.animate(f,void 0,g):(m.attr(f),g()));d&&(d.x=e,d.y=h)};\nb.prototype.destroyItem=function(a){var b=a.checkbox;[\"legendItem\",\"legendLine\",\"legendSymbol\",\"legendGroup\"].forEach(function(e){a[e]&&(a[e]=a[e].destroy())});b&&G(a.checkbox)};b.prototype.destroy=function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(b){[\"legendItem\",\"legendGroup\"].forEach(a,b)});\"clipRect up down pager nav box title group\".split(\" \").forEach(a,this);this.display=null};b.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,\nb=this.clipHeight||this.legendHeight,e=this.titleHeight;if(a){var f=a.translateY;this.allItems.forEach(function(g){var p=g.checkbox;if(p){var h=f+e+p.y+(this.scrollOffset||0)+3;n(p,{left:a.translateX+g.checkboxOffset+p.x-20+\"px\",top:h+\"px\",display:this.proximate||h>f-6&&hq?this.maxItemWidth:a.itemWidth;f&&this.itemX-e+b>q&&(this.itemX=e,this.lastLineHeight&&(this.itemY+=d+this.lastLineHeight+h),this.lastLineHeight=0);this.lastItemY=d+this.itemY+h;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=b:(this.itemY+=d+g+h,this.lastLineHeight=g);this.offsetWidth=this.widthOption||Math.max((f?\nthis.itemX-e-(a.checkbox?0:m):b)+e,this.offsetWidth)};b.prototype.getAllItems=function(){var a=[];this.chart.series.forEach(function(b){var e=b&&b.options;b&&r(e.showInLegend,z(e.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||(\"point\"===e.legendType?b.data:b)))});O(this,\"afterGetAllItems\",{allItems:a});return a};b.prototype.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)};b.prototype.adjustMargins=\nfunction(a,b){var e=this.chart,f=this.options,g=this.getAlignment();g&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(p,d){p.test(g)&&!z(a[d])&&(e[h[d]]=Math.max(e[h[d]],e.legend[(d+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][d]*f[d%2?\"x\":\"y\"]+r(f.margin,12)+b[d]+(e.titleOffset[d]||0)))})};b.prototype.proximatePositions=function(){var a=this.chart,b=[],e=\"left\"===this.options.align;this.allItems.forEach(function(f){var g;var p=e;if(f.yAxis){f.xAxis.options.reversed&&\n(p=!p);f.points&&(g=d(p?f.points:f.points.slice(0).reverse(),function(a){return F(a.plotY)}));p=this.itemMarginTop+f.legendItem.getBBox().height+this.itemMarginBottom;var h=f.yAxis.top-a.plotTop;f.visible?(g=g?g.plotY:f.yAxis.height,g+=h-.3*p):g=h+f.yAxis.height;b.push({target:g,size:p,item:f})}},this);t.distribute(b,a.plotHeight);b.forEach(function(e){e.item._legendItemPos[1]=a.plotTop-a.spacing[0]+e.pos})};b.prototype.render=function(){var a=this.chart,b=a.renderer,e=this.group,f=this.box,g=this.options,\nh=this.padding;this.itemX=h;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=m(g.width,a.spacingBox.width-h);var d=a.spacingBox.width-2*h-g.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(d/=2);this.maxLegendWidth=this.widthOption||d;e||(this.group=e=b.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(e),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();var q=this.getAllItems();L(q,function(a,e){return(a.options&&\na.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)});g.reversed&&q.reverse();this.allItems=q;this.display=d=!!q.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;q.forEach(this.renderItem,this);q.forEach(this.layoutItem,this);q=(this.widthOption||this.offsetWidth)+h;var r=this.lastItemY+this.lastLineHeight+this.titleHeight;r=this.handleOverflow(r);r+=h;f||(this.box=f=b.rect().addClass(\"highcharts-legend-box\").attr({r:g.borderRadius}).add(e),f.isNew=!0);\na.styledMode||f.attr({stroke:g.borderColor,\"stroke-width\":g.borderWidth||0,fill:g.backgroundColor||\"none\"}).shadow(g.shadow);0h&&!1!==C.enabled?(this.clipHeight=q=Math.max(h-20-this.titleHeight-d,0),this.currentPage=r(this.currentPage,1),this.fullHeight=a,w.forEach(function(a,c){var e=a._legendItemPos[1],b=Math.round(a.legendItem.getBBox().height),l=x.length;if(!l||e-x[l-1]>q&&(u||e)!==x[l-1])x.push(u||e),l++;a.pageIx=l-1;u&&(w[c-1].pageIx=l-1);c===w.length-1&&e+b-x[l-1]>q&&e!==u&&(x.push(e),a.pageIx=l);e!==u&&(u=e)}),A||(A=b.clipRect=f.clipRect(0,d,9999,\n0),b.contentGroup.clip(A)),n(q),l||(this.nav=l=f.g().attr({zIndex:1}).add(this.group),this.up=f.symbol(\"triangle\",0,0,c,c).add(l),k(\"upTracker\").on(\"click\",function(){b.scroll(-1,v)}),this.pager=f.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),e.styledMode||this.pager.css(C.style),this.pager.add(l),this.down=f.symbol(\"triangle-down\",0,0,c,c).add(l),k(\"downTracker\").on(\"click\",function(){b.scroll(1,v)})),b.scroll(0),a=h):l&&(n(),this.nav=l.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=\n0);return a};b.prototype.scroll=function(a,b){var e=this,f=this.chart,g=this.pages,p=g.length,h=this.currentPage+a;a=this.clipHeight;var d=this.options.navigation,m=this.pager,A=this.padding;h>p&&(h=p);0=f.value;)f=b[++g];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=f&&f.color&&!this.options.color?f.color:this.nonZonedColor;return f};q.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};q.prototype.init=function(h,b,g){this.series=h;this.applyOptions(b,g);this.id=J(this.id)?\nthis.id:L();this.resolveColor();h.chart.pointCount++;z(this,\"afterInit\");return this};q.prototype.optionsToObject=function(h){var b={},g=this.series,f=g.options.keys,a=f||g.pointArrayMap||[\"y\"],p=a.length,e=0,d=0;if(u(h)||null===h)b[a[0]]=h;else if(O(h))for(!f&&h.length>p&&(g=typeof h[0],\"string\"===g?b.name=h[0]:\"number\"===g&&(b.x=h[0]),e++);d=N(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return N(b,a.length-1)},bindAxes:function(){var a=\nthis,e=a.options,b=a.chart,f;g(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(c){b[c].forEach(function(b){f=b.options;if(e[c]===f.index||\"undefined\"!==typeof e[c]&&e[c]===f.id||\"undefined\"===typeof e[c]&&0===f.index)a.insert(b.series),a[c]=b,b.isDirty=!0});a[c]||a.optionalAxis===c||q(18,!0,b)})});g(this,\"afterBindAxes\")},updateParallelArrays:function(a,b){var c=a.series,l=arguments,f=e(b)?function(e){var l=\"y\"===e&&c.toYData?c.toYData(a):a[e];c[e+\"Data\"][b]=l}:function(a){Array.prototype[b].apply(c[a+\n\"Data\"],Array.prototype.slice.call(l,2))};c.parallelArrays.forEach(f)},hasData:function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0=this.cropStart?A-this.cropStart:A);!d&&g[A]&&g[A].touched&&(A=void 0);return A},drawLegendSymbol:D.drawLineMarker,updateData:function(a,b){var c=this.options,f=c.dataSorting,l=this.points,g=[],d,h,p,A=this.requireSorting,v=a.length===l.length,q=!0;this.xIncrement=null;a.forEach(function(a,b){var h=m(a)&&this.pointClass.prototype.optionsToObject.call({series:this},a)||{};var x=h.x;if(h.id||e(x)){if(x=this.findPointIndex(h,p),-1===x||\"undefined\"===\ntypeof x?g.push(a):l[x]&&a!==c.data[x]?(l[x].update(a,!1,null,!1),l[x].touched=!0,A&&(p=x+1)):l[x]&&(l[x].touched=!0),!v||b!==x||f&&f.enabled||this.hasDerivedData)d=!0}else g.push(a)},this);if(d)for(a=l.length;a--;)(h=l[a])&&!h.touched&&h.remove&&h.remove(!1,b);else!v||f&&f.enabled?q=!1:(a.forEach(function(a,c){l[c].update&&a!==l[c].y&&l[c].update(a,!1,null,!1)}),g.length=0);l.forEach(function(a){a&&(a.touched=!1)});if(!q)return!1;g.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);null===\nthis.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=u(this.xData),this.autoIncrement());return!0},setData:function(c,b,f,g){var l=this,h=l.points,d=h&&h.length||0,p,m=l.options,x=l.chart,A=m.dataSorting,v=null,C=l.xAxis;v=m.turboThreshold;var y=this.xData,r=this.yData,k=(p=l.pointArrayMap)&&p.length,n=m.keys,H=0,K=1,w;c=c||[];p=c.length;b=N(b,!0);A&&A.enabled&&(c=this.sortData(c));!1!==g&&p&&d&&!l.cropped&&!l.hasGroupedData&&l.visible&&!l.isSeriesBoosting&&(w=this.updateData(c,f));if(!w){l.xIncrement=\nnull;l.colorCounter=0;this.parallelArrays.forEach(function(a){l[a+\"Data\"].length=0});if(v&&p>v)if(v=l.getFirstValidPoint(c),e(v))for(f=0;fa?1:0}).forEach(function(a,c){a.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(c){var e=c.options,f=e.data;e.dataSorting&&e.dataSorting.enabled||!f||(f.forEach(function(e,l){f[l]=b(c,e);a[l]&&(f[l].x=a[l].x,f[l].index=l)}),c.setData(f,!1))});return a},getProcessedData:function(a){var c=this.xData,e=this.yData,b=c.length;var f=0;var g=this.xAxis,h=this.options;var d=h.cropThreshold;var p=a||this.getExtremesFromAll||h.getExtremesFromAll,\nm=this.isCartesian;a=g&&g.val2lin;h=!(!g||!g.logarithmic);var A=this.requireSorting;if(g){g=g.getExtremes();var v=g.min;var C=g.max}if(m&&this.sorted&&!p&&(!d||b>d||this.forceCrop))if(c[b-1]C)c=[],e=[];else if(this.yData&&(c[0]C)){f=this.cropData(this.xData,this.yData,v,C);c=f.xData;e=f.yData;f=f.start;var y=!0}for(d=c.length||1;--d;)if(b=h?a(c[d])-a(c[d-1]):c[d]-c[d-1],0b&&A&&(q(15,!1,this.chart),A=!1);return{xData:c,yData:e,cropped:y,\ncropStart:f,closestPointRange:r}},processData:function(a){var c=this.xAxis;if(this.isCartesian&&!this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!a)return!1;a=this.getProcessedData();this.cropped=a.cropped;this.cropStart=a.cropStart;this.processedXData=a.xData;this.processedYData=a.yData;this.closestPointRange=this.basePointRange=a.closestPointRange},cropData:function(a,e,b,f,g){var c=a.length,l=0,h=c,d;g=N(g,this.cropShoulder);for(d=0;d=b){l=Math.max(0,d-g);break}for(b=d;b\nf){h=b+g;break}return{xData:a.slice(l,h),yData:e.slice(l,h),start:l,end:h}},generatePoints:function(){var a=this.options,e=a.data,b=this.data,f,d=this.processedXData,p=this.processedYData,m=this.pointClass,A=d.length,v=this.cropStart||0,q=this.hasGroupedData;a=a.keys;var C=[],y;b||q||(b=[],b.length=e.length,b=this.data=b);a&&q&&(this.options.keys=!1);for(y=0;y=m&&(d[y-v]||C)<=A;if(r&&C)if(r=E.length)for(;r--;)e(E[r])&&(h[p++]=E[r]);else h[p++]=E}c={dataMin:F(h),dataMax:u(h)};g(this,\"afterGetExtremes\",{dataExtremes:c});\nreturn c},applyExtremes:function(){var a=this.getExtremes();this.dataMin=a.dataMin;this.dataMax=a.dataMax;return a},getFirstValidPoint:function(a){for(var c=null,e=a.length,b=0;null===c&&b=F&&(F=null),P.total=P.stackTotal=B.total,P.percentage=B.total&&P.y/B.total*100,P.stackY=z,this.irregularWidths||B.setOffset(this.pointXOffset||0,this.barW||0));P.yBottom=m(F)?w(p.translate(F,0,1,0,1),-1E5,1E5):null;q&&(z=this.modifyValue(z,P));P.plotY=\"number\"===typeof z&&Infinity!==z?w(p.translate(z,0,1,0,1),-1E5,1E5):void 0;P.isInside=this.isPointInside(P);P.clientX=E?r(f.translate(t,0,0,0,1,C)):H;P.negative=P[K]<(c[K+\n\"Threshold\"]||k||0);P.category=d&&\"undefined\"!==typeof d[P.x]?d[P.x]:P.x;if(!P.isNull&&!1!==P.visible){\"undefined\"!==typeof O&&(u=Math.min(u,Math.abs(H-O)));var O=H}P.zone=this.zones.length&&P.getZone();!P.graphic&&this.group&&h&&(P.isNew=!0)}this.closestPointRangePx=u;g(this,\"afterTranslate\")},getValidPoints:function(a,e,b){var c=this.chart;return(a||this.points||[]).filter(function(a){return e&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!1!==a.visible&&(b||!a.isNull)})},getClipBox:function(a,\ne){var c=this.options,b=this.chart,f=b.inverted,l=this.xAxis,g=l&&this.yAxis,d=b.options.chart.scrollablePlotArea||{};a&&!1===c.clip&&g?a=f?{y:-b.chartWidth+g.len+g.pos,height:b.chartWidth,width:b.chartHeight,x:-b.chartHeight+l.len+l.pos}:{y:-g.pos,height:b.chartHeight,width:b.chartWidth,x:-l.pos}:(a=this.clipBox||b.clipBox,e&&(a.width=b.plotSizeX,a.x=(b.scrollablePixelsX||0)*(d.scrollPositionX||0)));return e?{width:a.width,x:a.x}:a},setClip:function(a){var c=this.chart,b=this.options,e=c.renderer,\nf=c.inverted,g=this.clipBox,d=this.getClipBox(a),h=this.sharedClipKey||[\"_sharedClip\",a&&a.duration,a&&a.easing,d.height,b.xAxis,b.yAxis].join(),p=c[h],m=c[h+\"m\"];a&&(d.width=0,f&&(d.x=c.plotHeight+(!1!==b.clip?0:c.plotTop)));p?c.hasLoaded||p.attr(d):(a&&(c[h+\"m\"]=m=e.clipRect(f?c.plotSizeX+99:-99,f?-c.plotLeft:-c.plotTop,99,f?c.chartWidth:c.chartHeight)),c[h]=p=e.clipRect(d),p.count={length:0});a&&!p.count[this.index]&&(p.count[this.index]=!0,p.count.length+=1);if(!1!==b.clip||a)this.group.clip(a||\ng?p:c.clipRect),this.markerGroup.clip(m),this.sharedClipKey=h;a||(p.count[this.index]&&(delete p.count[this.index],--p.count.length),0===p.count.length&&h&&c[h]&&(g||(c[h]=c[h].destroy()),c[h+\"m\"]&&(c[h+\"m\"]=c[h+\"m\"].destroy())))},animate:function(a){var c=this.chart,b=G(this.options.animation);if(!c.hasRendered)if(a)this.setClip(b);else{var e=this.sharedClipKey;a=c[e];var f=this.getClipBox(b,!0);a&&a.animate(f,b);c[e+\"m\"]&&c[e+\"m\"].animate({width:f.width+99,x:f.x-(c.inverted?0:99)},b)}},afterAnimate:function(){this.setClip();\ng(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,e,f,g=this.options.marker,d=this[this.specialGroup]||this.markerGroup,h=this.xAxis,p=N(g.enabled,!h||h.isRadial?!0:null,this.closestPointRangePx>=g.enabledThreshold*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(e=0;el&&b.shadow));h&&(h.startX=e.xMap,h.isArea=e.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(c,b){b=[\"zone-graph-\"+b,\"highcharts-graph highcharts-zone-graph-\"+\nb+\" \"+(c.className||\"\")];this.chart.styledMode||b.push(c.color||this.color,c.dashStyle||this.options.dashStyle);a.push(b)},this);return a},applyZones:function(){var a=this,b=this.chart,e=b.renderer,f=this.zones,g,h,d=this.clips||[],p,m=this.graph,A=this.area,v=Math.max(b.chartWidth,b.chartHeight),q=this[(this.zoneAxis||\"y\")+\"Axis\"],y=b.inverted,C,E,r,k=!1,n,H;if(f.length&&(m||A)&&q&&\"undefined\"!==typeof q.min){var K=q.reversed;var u=q.horiz;m&&!this.showLine&&m.hide();A&&A.hide();var P=q.getExtremes();\nf.forEach(function(c,f){g=K?u?b.plotWidth:0:u?0:q.toPixels(P.min)||0;g=w(N(h,g),0,v);h=w(Math.round(q.toPixels(N(c.value,P.max),!0)||0),0,v);k&&(g=h=q.toPixels(P.max));C=Math.abs(g-h);E=Math.min(g,h);r=Math.max(g,h);q.isXAxis?(p={x:y?r:E,y:0,width:C,height:v},u||(p.x=b.plotHeight-p.x)):(p={x:0,y:y?r:E,width:v,height:C},u&&(p.y=b.plotWidth-p.y));y&&e.isVML&&(p=q.isXAxis?{x:0,y:K?E:r,height:p.width,width:b.chartWidth}:{x:p.y-b.plotLeft-b.spacingBox.x,y:0,width:p.height,height:b.chartHeight});d[f]?d[f].animate(p):\nd[f]=e.clipRect(p);n=a[\"zone-area-\"+f];H=a[\"zone-graph-\"+f];m&&H&&H.clip(d[f]);A&&n&&n.clip(d[f]);k=c.value>P.max;a.resetZones&&0===h&&(h=void 0)});this.clips=d}else a.visible&&(m&&m.show(!0),A&&A.show(!0))},invertGroups:function(a){function c(){[\"group\",\"markerGroup\"].forEach(function(c){b[c]&&(e.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(b.isRadialSeries?!1:a))})}var b=this,e=b.chart;b.xAxis&&(b.eventsToUnbind.push(B(e,\n\"resize\",c)),c(),b.invertGroups=c)},plotGroup:function(a,b,e,f,g){var c=this[a],l=!c;e={visibility:e,zIndex:f||.1};\"undefined\"===typeof this.opacity||this.chart.styledMode||\"inactive\"===this.state||(e.opacity=this.opacity);l&&(this[a]=c=this.chart.renderer.g().add(g));c.addClass(\"highcharts-\"+b+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(m(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(c.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\n\"\"),!0);c.attr(e)[l?\"attr\":\"animate\"](this.getPlotBox());return c},getPlotBox:function(){var a=this.chart,b=this.xAxis,e=this.yAxis;a.inverted&&(b=e,e=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:e?e.top:a.plotTop,scaleX:1,scaleY:1}},removeEvents:function(a){a?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind.length=0):P(this)},render:function(){var a=this,b=a.chart,e=a.options,f=G(e.animation),h=!a.finishedAnimating&&b.renderer.isSVG&&\nf.duration,d=a.visible?\"inherit\":\"hidden\",p=e.zIndex,m=a.hasRendered,v=b.seriesGroup,q=b.inverted;g(this,\"render\");var y=a.plotGroup(\"group\",\"series\",d,p,v);a.markerGroup=a.plotGroup(\"markerGroup\",\"markers\",d,p,v);h&&a.animate&&a.animate(!0);y.inverted=a.isCartesian||a.invertable?q:!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(q);\n!1===e.clip||a.sharedClipKey||m||y.clip(b.clipRect);h&&a.animate&&a.animate();m||(h&&f.defer&&(h+=f.defer),a.animationTimeout=A(function(){a.afterAnimate()},h||0));a.isDirty=!1;a.hasRendered=!0;g(a,\"afterRender\")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,e=this.group,f=this.xAxis,g=this.yAxis;e&&(a.inverted&&e.attr({width:a.plotWidth,height:a.plotHeight}),e.animate({translateX:N(f&&f.left,a.plotLeft),translateY:N(g&&g.top,a.plotTop)}));this.translate();this.render();b&&\ndelete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(a,b){var c=this.xAxis,e=this.yAxis,f=this.chart.inverted;return this.searchKDTree({clientX:f?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:f?e.len-a.chartX+e.pos:a.chartY-e.pos},b,a)},buildKDTree:function(a){function c(a,e,f){var g;if(g=a&&a.length){var l=b.kdAxisArray[e%f];a.sort(function(a,c){return a[l]-c[l]});g=Math.floor(g/2);return{point:a[g],left:c(a.slice(0,g),e+1,f),right:c(a.slice(g+1),e+1,f)}}}this.buildingKdTree=!0;var b=\nthis,e=-1A?\"left\":\"right\";q=0>A?\"right\":\"left\";b[y]&&(y=c(a,b[y],e+1,d),v=y[h]y;)k--;this.updateParallelArrays(A,\"splice\",k,0,0);this.updateParallelArrays(A,k);p&&A.name&&(p[y]=A.name);m.splice(k,0,a);v&&(this.data.splice(k,0,null),this.processData());\"point\"===l.legendType&&this.generatePoints();e&&(d[0]&&d[0].remove?d[0].remove(!1):(d.shift(),this.updateParallelArrays(A,\"shift\"),m.shift()));!1!==g&&f(this,\"addPoint\",{point:A});this.isDirtyData=this.isDirty=!0;b&&h.redraw(c)},removePoint:function(a,b,e){var c=this,f=c.data,\ng=f[a],d=c.points,h=c.chart,p=function(){d&&d.length===f.length&&d.splice(a,1);f.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(g||{series:c},\"splice\",a,1);g&&g.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&h.redraw()};u(e,h);b=N(b,!0);g?g.firePointEvent(\"remove\",null,p):p()},remove:function(a,b,e,c){function g(){d.destroy(c);d.remove=null;h.isDirtyLegend=h.isDirtyBox=!0;h.linkSeries();N(a,!0)&&h.redraw(b)}var d=this,h=d.chart;!1!==e?f(d,\"remove\",null,g):g()},update:function(a,e){a=J.cleanRecursively(a,\nthis.userOptions);f(this,\"update\",{options:a});var d=this,c=d.chart,l=d.userOptions,h=d.initialType||d.type,p=c.options.plotOptions,m=a.type||l.type||c.options.chart.type,q=!(this.hasDerivedData||m&&m!==this.type||\"undefined\"!==typeof a.pointStart||\"undefined\"!==typeof a.pointInterval||d.hasOptionChanged(\"dataGrouping\")||d.hasOptionChanged(\"pointStart\")||d.hasOptionChanged(\"pointInterval\")||d.hasOptionChanged(\"pointIntervalUnit\")||d.hasOptionChanged(\"keys\")),A=F[h].prototype,y,k=[\"eventOptions\",\"navigatorSeries\",\n\"baseSeries\"],E=d.finishedAnimating&&{animation:!1},C={};q&&(k.push(\"data\",\"isDirtyData\",\"points\",\"processedXData\",\"processedYData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"_hasPointLabels\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==a.visible&&k.push(\"area\",\"graph\"),d.parallelArrays.forEach(function(a){k.push(a+\"Data\")}),a.data&&(a.dataSorting&&g(d.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=H(l,E,{index:\"undefined\"===typeof l.index?d.index:l.index,pointStart:N(p&&p.series&&\np.series.pointStart,l.pointStart,d.xData[0])},!q&&{data:d.options.data},a);q&&a.data&&(a.data=d.options.data);k=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(k);k.forEach(function(a){k[a]=d[a];delete d[a]});d.remove(!1,null,!1,!0);for(y in A)d[y]=void 0;F[m||h]?g(d,F[m||h].prototype):b(17,!0,c,{missingModuleFor:m||h});k.forEach(function(a){d[a]=k[a]});d.init(c,a);if(q&&this.points){var n=d.options;!1===n.visible?(C.graphic=1,C.dataLabel=1):d._hasPointLabels||(a=n.marker,l=n.dataLabels,\na&&(!1===a.enabled||\"symbol\"in a)&&(C.graphic=1),l&&!1===l.enabled&&(C.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),Object.keys(C).length&&a.destroyElements(C),!1===n.showInLegend&&a.legendItem&&c.legend.destroyItem(a))},this)}d.initialType=h;c.linkSeries();f(this,\"afterUpdate\");N(e,!0)&&c.redraw(q?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0},hasOptionChanged:function(a){var b=this.options[a],e=this.chart.options.plotOptions,\nc=this.userOptions[a];return c?b!==c:b!==N(e&&e[this.type]&&e[this.type][a],e&&e.series&&e.series[a],b)}});g(t.prototype,{update:function(a,b){var e=this.chart,c=a&&a.events||{};a=H(this.userOptions,a);e.options[this.coll].indexOf&&(e.options[this.coll][e.options[this.coll].indexOf(this.userOptions)]=a);y(e.options[this.coll].events,function(a,b){\"undefined\"===typeof c[b]&&(c[b]=void 0)});this.destroy(!0);this.init(e,g(a,{events:c}));e.isDirtyBox=!0;N(b,!0)&&e.redraw()},remove:function(b){for(var e=\nthis.chart,f=this.coll,c=this.series,g=c.length;g--;)c[g]&&c[g].remove(!1);h(e.axes,this);h(e[f],this);a(e.options[f])?e.options[f].splice(this.options.index,1):delete e.options[f];e[f].forEach(function(a,c){a.options.index=a.userOptions.index=c});this.destroy();e.isDirtyBox=!0;N(b,!0)&&e.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})});Q(k,\"Series/AreaSeries.js\",[k[\"Core/Series/Series.js\"],k[\"Core/Color/Color.js\"],k[\"Core/Globals.js\"],\nk[\"Mixins/LegendSymbol.js\"],k[\"Core/Utilities.js\"]],function(k,t,I,D,J){var B=t.parse,n=J.objectEach,z=J.pick,G=I.Series;k.seriesType(\"area\",\"line\",{threshold:0},{singleStacks:!1,getStackPoints:function(d){var k=[],u=[],t=this.xAxis,w=this.yAxis,r=w.stacking.stacks[this.stackKey],m={},L=this.index,q=w.series,h=q.length,b=z(w.options.reversedStacks,!0)?1:-1,g;d=d||this.points;if(this.options.stacking){for(g=0;gk&&F>z?(F=Math.max(k,z),w=2*z-F):FI&&w>z?(w=Math.max(I,z),F=2*z-w):w=Math.abs(h)&&.5q.closestPointRange*q.xAxis.transA;g=q.borderWidth=m(b.borderWidth,g?0:1);var f=q.xAxis,a=q.yAxis,p=b.threshold,e=q.translatedThreshold=a.getThreshold(p),k=m(b.minPointLength,5),n=q.getColumnMetrics(),y=n.width,r=q.barW=Math.max(y,1+2*g),u=q.pointXOffset=n.offset,K=q.dataMin,A=q.dataMax;h.inverted&&(e-=.5);b.pointPadding&&(r=Math.ceil(r));M.prototype.translate.apply(q);q.points.forEach(function(g){var v=\nm(g.yBottom,e),c=999+Math.abs(v),l=y,E=g.plotX||0;c=d(g.plotY,-c,a.len+c);var C=E+u,H=r,N=Math.min(c,v),P=Math.max(c,v)-N;if(k&&Math.abs(P)k?v-k:e-(t?k:0)}B(g.options.pointWidth)&&(l=H=Math.ceil(g.options.pointWidth),C-=Math.round((l-y)/2));b.centerInCategory&&(C=q.adjustForMissingColumns(C,l,g,n));g.barX=C;g.pointWidth=l;g.tooltipPos=h.inverted?[a.len+a.pos-h.plotLeft-\nc,f.len+f.pos-h.plotTop-(E||0)-u-H/2,P]:[C+H/2,c+a.pos-h.plotTop,P];g.shapeType=q.pointClass.prototype.shapeType||\"rect\";g.shapeArgs=q.crispCol.apply(q,g.isNull?[C,e,H,0]:[C,N,H,P])})},getSymbol:k,drawLegendSymbol:J.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(d,h){var b=this.options,g=this.pointAttrToOptions||{};var f=g.stroke||\"borderColor\";var a=g[\"stroke-width\"]||\"borderWidth\",p=d&&d.color||this.color,e=d&&d[f]||\nb[f]||this.color||p,k=d&&d[a]||b[a]||this[a]||0;g=d&&d.options.dashStyle||b.dashStyle;var q=m(d&&d.opacity,b.opacity,1);if(d&&this.zones.length){var y=d.getZone();p=d.options.color||y&&(y.color||d.nonZonedColor)||this.color;y&&(e=y.borderColor||e,g=y.dashStyle||g,k=y.borderWidth||k)}h&&d&&(d=r(b.states[h],d.options.states&&d.options.states[h]||{}),h=d.brightness,p=d.color||\"undefined\"!==typeof h&&G(p).brighten(d.brightness).get()||p,e=d[f]||e,k=d[a]||k,g=d.dashStyle||g,q=m(d.opacity,q));f={fill:p,\nstroke:e,\"stroke-width\":k,opacity:q};g&&(f.dashstyle=g);return f},drawPoints:function(){var d=this,h=this.chart,b=d.options,g=h.renderer,f=b.animationLimit||250,a;d.points.forEach(function(p){var e=p.graphic,m=!!e,k=e&&h.pointCount\\u25cf