/* Highstock JS v5.0.7 (2017-01-17) (c) 2009-2016 Torstein Honsi License: www.highcharts.com/license */ (function(K,a){"object"===typeof module&&module.exports?module.exports=K.document?a(K):a:K.Highcharts=a(K)})("undefined"!==typeof window?window:this,function(K){K=function(){var a=window,E=a.document,D=a.navigator&&a.navigator.userAgent||"",H=E&&E.createElementNS&&!!E.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,I=/(edge|msie|trident)/i.test(D)&&!window.opera,v=!H,n=/Firefox/.test(D),m=n&&4>parseInt(D.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", version:"5.0.7",deg2rad:2*Math.PI/360,doc:E,hasBidiBug:m,hasTouch:E&&void 0!==E.documentElement.ontouchstart,isMS:I,isWebKit:/AppleWebKit/.test(D),isFirefox:n,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(D),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:H,vml:v,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var E=[],D=a.charts,H=a.doc,I=a.win;a.error=function(v,n){v=a.isNumber(v)?"Highcharts error #"+ v+": www.highcharts.com/errors/"+v:v;if(n)throw Error(v);I.console&&console.log(v)};a.Fx=function(a,n,m){this.options=n;this.elem=a;this.prop=m};a.Fx.prototype={dSetter:function(){var a=this.paths[0],n=this.paths[1],m=[],z=this.now,t=a.length,q;if(1===z)m=this.toD;else if(t===n.length&&1>z)for(;t--;)q=parseFloat(a[t]),m[t]=isNaN(q)?a[t]:z*parseFloat(n[t]-q)+q;else m=n;this.elem.attr("d",m,null,!0)},update:function(){var a=this.elem,n=this.prop,m=this.now,z=this.options.step;if(this[n+"Setter"])this[n+ "Setter"]();else a.attr?a.element&&a.attr(n,m,null,!0):a.style[n]=m+this.unit;z&&z.call(a,m,this)},run:function(a,n,m){var v=this,t=function(a){return t.stopped?!1:v.step(a)},q;this.startTime=+new Date;this.start=a;this.end=n;this.unit=m;this.now=this.start;this.pos=0;t.elem=this.elem;t.prop=this.prop;t()&&1===E.push(t)&&(t.timerId=setInterval(function(){for(q=0;q=q+this.startTime){this.now=this.end;this.pos=1;this.update();a=e[this.prop]=!0;for(b in e)!0!==e[b]&&(a=!1);a&&t&&t.call(m);m=!1}else this.pos=v.easing((n-this.startTime)/q),this.now=this.start+(this.end-this.start)*this.pos,this.update(),m=!0;return m},initPath:function(v,n,m){function z(a){var d,f;for(F=a.length;F--;)d="M"===a[F]||"L"===a[F],f=/[a-zA-Z]/.test(a[F+3]),d&&f&&a.splice(F+1,0,a[F+1],a[F+2],a[F+1],a[F+ 2])}function t(a,d){for(;a.lengthe?"AM":"PM",P:12>e?"am":"pm",S:r(t.getSeconds()),L:r(Math.round(n% 1E3),3)},a.dateFormats);for(q in z)for(;-1!==v.indexOf("%"+q);)v=v.replace("%"+q,"function"===typeof z[q]?z[q](n):z[q]);return m?v.substr(0,1).toUpperCase()+v.substr(1):v};a.formatSingle=function(v,n){var m=/\.([0-9])/,z=a.defaultOptions.lang;/f$/.test(v)?(m=(m=v.match(m))?m[1]:-1,null!==n&&(n=a.numberFormat(n,m,z.decimalPoint,-1=m&&(n=[1/m]))); for(z=0;z=v||!t&&q<=(n[z]+(n[z+1]||n[z]))/2);z++);return e=a.correctFloat(e*m,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,n){var m=a.length,v,t;for(t=0;tm&&(m=a[n]);return m};a.destroyObjectProperties= function(a,n){for(var m in a)a[m]&&a[m]!==n&&a[m].destroy&&a[m].destroy(),delete a[m]};a.discardElement=function(v){var n=a.garbageBin;n||(n=a.createElement("div"));v&&n.appendChild(v);n.innerHTML=""};a.correctFloat=function(a,n){return parseFloat(a.toPrecision(n||14))};a.setAnimation=function(v,n){n.renderer.globalAnimation=a.pick(v,n.options.chart.animation,!0)};a.animObject=function(v){return a.isObject(v)?a.merge(v):{duration:v?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5, day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(v,n,m,z){v=+v||0;n=+n;var t=a.defaultOptions.lang,q=(v.toString().split(".")[1]||"").length,e,b;-1===n?n=Math.min(q,20):a.isNumber(n)||(n=2);b=(Math.abs(v)+Math.pow(10,-Math.max(n,q)-1)).toFixed(n);q=String(a.pInt(b));e=3v?"-":"")+(e?q.substr(0,e)+z:"");v+=q.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+z);n&&(v+=m+b.slice(-n));return v};Math.easeInOutSine= function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(v,n){return"width"===n?Math.min(v.offsetWidth,v.scrollWidth)-a.getStyle(v,"padding-left")-a.getStyle(v,"padding-right"):"height"===n?Math.min(v.offsetHeight,v.scrollHeight)-a.getStyle(v,"padding-top")-a.getStyle(v,"padding-bottom"):(v=I.getComputedStyle(v,void 0))&&a.pInt(v.getPropertyValue(n))};a.inArray=function(a,n){return n.indexOf?n.indexOf(a):[].indexOf.call(n,a)};a.grep=function(a,n){return[].filter.call(a,n)};a.find=function(a, n){return[].find.call(a,n)};a.map=function(a,n){for(var m=[],z=0,t=a.length;zm;m++)n[m]+=v(255*a),0>n[m]&&(n[m]=0),255C.width)C={width:0,height:0}}else C=this.htmlGetBBox();d.isSVG&&(a=C.width,d=C.height,G&&"11px"===G.fontSize&&17===Math.round(d)&&(C.height=d=14),h&&(C.width=Math.abs(d*Math.sin(c))+Math.abs(a*Math.cos(c)),C.height=Math.abs(d*Math.cos(c))+Math.abs(a*Math.sin(c))));if(r&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox, this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,h,d){"string"===typeof a?d.setAttribute(h,a):a&&this.colorGradient(a,h,d)},visibilitySetter:function(a,h,d){"inherit"===a?d.removeAttribute(h):d.setAttribute(h,a)},zIndexSetter:function(a,h){var C=this.renderer,d=this.parentGroup,c=(d||C).element||C.box,f,G=this.element,b;f=this.added;var y;q(a)&&(G.zIndex=a,a=+a,this[h]===a&&(f=!1),this[h]=a);if(f){(a=this.zIndex)&&d&&(d.handleZ=!0);h=c.childNodes;for(y=0;ya||!q(a)&&q(f)||0>a&&!q(f)&&c!==C.box)&&(c.insertBefore(G,d),b=!0);b||c.appendChild(G)}return b},_defaultSetter:function(a,h,d){d.setAttribute(h,a)}};E.prototype.yGetter=E.prototype.xGetter;E.prototype.translateXSetter=E.prototype.translateYSetter=E.prototype.rotationSetter=E.prototype.verticalAlignSetter=E.prototype.scaleXSetter=E.prototype.scaleYSetter=function(a,h){this[h]=a;this.doTransform=!0};E.prototype["stroke-widthSetter"]=E.prototype.strokeSetter=function(a, h,d){this[h]=a;this.stroke&&this["stroke-width"]?(E.prototype.fillSetter.call(this,this.stroke,"stroke",d),d.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(d.removeAttribute("stroke"),this.hasStroke=!1)};D=a.SVGRenderer=function(){this.init.apply(this,arguments)};D.prototype={Element:E,SVG_NS:P,init:function(a,h,d,G,b,y){var C;G=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(G));C=G.element; a.appendChild(C);-1===a.innerHTML.indexOf("xmlns")&&v(C,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=C;this.boxWrapper=G;this.alignedObjects=[];this.url=(f||c)&&p.getElementsByTagName("base").length?S.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(p.createTextNode("Created with Highstock 5.0.7"));this.defs=this.createElement("defs").add();this.allowHTML=y;this.forExport=b;this.gradients= {};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(h,d,!1);var A;f&&a.getBoundingClientRect&&(h=function(){z(a,{left:0,top:0});A=a.getBoundingClientRect();z(a,{left:Math.ceil(A.left)-A.left+"px",top:Math.ceil(A.top)-A.top+"px"})},h(),this.unSubPixelFix=H(S,"resize",h))},getStyle:function(a){return this.style=k({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();b(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:L,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]}},buildText:function(a){var h=a.element,d=this,c=d.forExport,f=A(a.textStr,"").toString(), C=-1!==f.indexOf("\x3c"),G=h.childNodes,b,y,B,r,x=v(h,"x"),l=a.styles,u=a.textWidth,k=l&&l.lineHeight,e=l&&l.textOutline,F=l&&"ellipsis"===l.textOverflow,L=l&&"nowrap"===l.whiteSpace,t=l&&l.fontSize,q,m=G.length,l=u&&!a.added&&this.box,n=function(a){var c;c=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:t||d.style.fontSize||12;return k?J(k):d.fontMetrics(c,a.getAttribute("style")?a:h).h};q=[f,F,L,k,e,t,u].join();if(q!==a.textCache){for(a.textCache=q;m--;)h.removeChild(G[m]);C||e||F||u||-1!== f.indexOf(" ")?(b=/<.*class="([^"]+)".*>/,y=/<.*style="([^"]+)".*>/,B=/<.*href="(http[^"]+)".*>/,l&&l.appendChild(h),f=C?f.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[f],f=g(f,function(a){return""!==a}),w(f,function(f,C){var G,A=0;f=f.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||"); G=f.split("|||");w(G,function(f){if(""!==f||1===G.length){var g={},l=p.createElementNS(d.SVG_NS,"tspan"),k,J;b.test(f)&&(k=f.match(b)[1],v(l,"class",k));y.test(f)&&(J=f.match(y)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),v(l,"style",J));B.test(f)&&!c&&(v(l,"onclick",'location.href\x3d"'+f.match(B)[1]+'"'),z(l,{cursor:"pointer"}));f=(f.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==f){l.appendChild(p.createTextNode(f));A?g.dx=0:C&&null!==x&&(g.x=x);v(l,g); h.appendChild(l);!A&&C&&(!Q&&c&&z(l,{display:"block"}),v(l,"dy",n(l)));if(u){g=f.replace(/([^\^])-/g,"$1- ").split(" ");k=1u,void 0===r&&(r=e),F&&r?(N/=2,""===m||!e&&.5>N?g=[]:(m=f.substring(0,m.length+(e?-1:1)*Math.ceil(N)),g=[m+(3u&&(u=w)),g.length&&l.appendChild(p.createTextNode(g.join(" ").replace(/- /g,"-")));a.rotation=q}A++}}})}),r&&a.attr("title",a.textStr),l&&l.removeChild(h),e&&a.applyTextOutline&&a.applyTextOutline(e)):h.appendChild(p.createTextNode(f.replace(/</g,"\x3c").replace(/>/g,"\x3e")))}},getContrast:function(a){a=m(a).rgba;return 510< a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,h,d,f,c,G,b,g,A){var C=this.label(a,h,d,A,null,null,null,null,"button"),l=0;C.attr(y({padding:8,r:2},c));var r,x,u,J;c=y({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},c);r=c.style;delete c.style;G=y(c,{fill:"#e6e6e6"},G);x=G.style;delete G.style;b=y(c,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},b);u=b.style;delete b.style;g=y(c,{style:{color:"#cccccc"}},g);J=g.style; delete g.style;H(C.element,B?"mouseover":"mouseenter",function(){3!==l&&C.setState(1)});H(C.element,B?"mouseout":"mouseleave",function(){3!==l&&C.setState(l)});C.setState=function(a){1!==a&&(C.state=l=a);C.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0]);C.attr([c,G,b,g][a||0]).css([r,x,u,J][a||0])};C.attr(c).css(k({cursor:"default"},r));return C.on("click",function(a){3!==l&&f.call(C,a)})},crispLine:function(a, h){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-h%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+h%2/2);return a},path:function(a){var h={fill:"none"};u(a)?h.d=a:d(a)&&k(h,a);return this.createElement("path").attr(h)},circle:function(a,h,c){a=d(a)?a:{x:a,y:h,r:c};h=this.createElement("circle");h.xSetter=h.ySetter=function(a,h,d){d.setAttribute("c"+h,a)};return h.attr(a)},arc:function(a,h,c,f,G,b){d(a)&&(h=a.y,c=a.r,f=a.innerR,G=a.start,b=a.end,a=a.x);a=this.symbol("arc",a||0,h||0,c||0,c||0,{innerR:f|| 0,start:G||0,end:b||0});a.r=c;return a},rect:function(a,h,c,f,G,b){G=d(a)?a.r:G;var C=this.createElement("rect");a=d(a)?a:void 0===a?{}:{x:a,y:h,width:Math.max(c,0),height:Math.max(f,0)};void 0!==b&&(a.strokeWidth=b,a=C.crisp(a));a.fill="none";G&&(a.r=G);C.rSetter=function(a,h,d){v(d,{rx:a,ry:a})};return C.attr(a)},setSize:function(a,h,d){var c=this.alignedObjects,f=c.length;this.width=a;this.height=h;for(this.boxWrapper.animate({width:a,height:h},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+ " "+this.attr("height")})},duration:A(d,!0)?void 0:0});f--;)c[f].align()},g:function(a){var h=this.createElement("g");return a?h.attr({"class":"highcharts-"+a}):h},image:function(a,h,d,c,f){var G={preserveAspectRatio:"none"};1d?f>h+b&&fy?f>h+b&&fc&&y>a+b&&yf&&y>a+b&&ya?a+3:Math.round(1.2*a);return{h:h,b:Math.round(.8*h),f:a}},rotCorr:function(a,h,d){var c=a;h&&d&&(c=Math.max(c*Math.cos(h*e),4));return{x:-a/3*Math.sin(h*e),y:c}},label:function(a,d,c,f,G,b,g,A,l){var C=this,B=C.g("button"!==l&&"label"),r=B.text=C.text("",0,0,g).attr({zIndex:1}),x,u,J=0,e=3, p=0,F,L,Q,P,t,m={},n,N,z=/^url\((.*?)\)$/.test(f),M=z,v,S,R,O;l&&B.addClass("highcharts-"+l);M=z;v=function(){return(n||0)%2/2};S=function(){var a=r.element.style,h={};u=(void 0===F||void 0===L||t)&&q(r.textStr)&&r.getBBox();B.width=(F||u.width||0)+2*e+p;B.height=(L||u.height||0)+2*e;N=e+C.fontMetrics(a&&a.fontSize,r).b;M&&(x||(B.box=x=C.symbols[f]||z?C.symbol(f):C.rect(),x.addClass(("button"===l?"":"highcharts-label-box")+(l?" highcharts-"+l+"-box":"")),x.add(B),a=v(),h.x=a,h.y=(A?-N:0)+a),h.width= Math.round(B.width),h.height=Math.round(B.height),x.attr(k(h,m)),m={})};R=function(){var a=p+e,h;h=A?0:N;q(F)&&u&&("center"===t||"right"===t)&&(a+={center:.5,right:1}[t]*(F-u.width));if(a!==r.x||h!==r.y)r.attr("x",a),void 0!==h&&r.attr("y",h);r.x=a;r.y=h};O=function(a,h){x?x.attr(a,h):m[a]=h};B.onAdd=function(){r.add(B);B.attr({text:a||0===a?a:"",x:d,y:c});x&&q(G)&&B.attr({anchorX:G,anchorY:b})};B.widthSetter=function(a){F=a};B.heightSetter=function(a){L=a};B["text-alignSetter"]=function(a){t=a}; B.paddingSetter=function(a){q(a)&&a!==e&&(e=B.padding=a,R())};B.paddingLeftSetter=function(a){q(a)&&a!==p&&(p=a,R())};B.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,u&&B.attr({x:Q}))};B.textSetter=function(a){void 0!==a&&r.textSetter(a);S();R()};B["stroke-widthSetter"]=function(a,h){a&&(M=!0);n=this["stroke-width"]=a;O(h,a)};B.strokeSetter=B.fillSetter=B.rSetter=function(a,h){"fill"===h&&a&&(M=!0);O(h,a)};B.anchorXSetter=function(a,h){G=a;O(h,Math.round(a)-v()-Q)};B.anchorYSetter= function(a,h){b=a;O(h,a-P)};B.xSetter=function(a){B.x=a;J&&(a-=J*((F||u.width)+2*e));Q=Math.round(a);B.attr("translateX",Q)};B.ySetter=function(a){P=B.y=Math.round(a);B.attr("translateY",P)};var T=B.css;return k(B,{css:function(a){if(a){var h={};a=y(a);w(B.textProps,function(d){void 0!==a[d]&&(h[d]=a[d],delete a[d])});r.css(h)}return T.call(B,a)},getBBox:function(){return{width:u.width+2*e,height:u.height+2*e,x:u.x-e,y:u.y-e}},shadow:function(a){a&&(S(),x&&x.shadow(a));return B},destroy:function(){h(B.element, "mouseenter");h(B.element,"mouseleave");r&&(r=r.destroy());x&&(x=x.destroy());E.prototype.destroy.call(B);B=C=S=R=O=null}})}};a.Renderer=D})(K);(function(a){var E=a.attr,D=a.createElement,H=a.css,I=a.defined,v=a.each,n=a.extend,m=a.isFirefox,z=a.isMS,t=a.isWebKit,q=a.pInt,e=a.SVGRenderer,b=a.win,p=a.wrap;n(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace= "nowrap",a.overflow="hidden");this.styles=n(this.styles,a);H(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,l=this.translateX||0,g=this.translateY||0,e=this.x||0,r=this.y||0,u=this.textAlign||"left",f={left:0,center:.5,right:1}[u],B=this.styles;H(b,{marginLeft:l,marginTop:g}); this.shadows&&v(this.shadows,function(a){H(a,{marginLeft:l+1,marginTop:g+1})});this.inverted&&v(b.childNodes,function(d){a.invertChild(d,b)});if("SPAN"===b.tagName){var d=this.rotation,x=q(this.textWidth),c=B&&B.whiteSpace,y=[d,u,b.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(B=a.fontMetrics(b.style.fontSize).b,I(d)&&this.setSpanRotation(d,f,B),H(b,{width:"",whiteSpace:c||"nowrap"}),b.offsetWidth>x&&/[ \-]/.test(b.textContent||b.innerText)&&H(b,{width:x+"px",display:"block",whiteSpace:c|| "normal"}),this.getSpanCorrection(b.offsetWidth,B,f,d,u));H(b,{left:e+(this.xCorr||0)+"px",top:r+(this.yCorr||0)+"px"});t&&(B=b.offsetHeight);this.cTT=y}}else this.alignOnAdd=!0},setSpanRotation:function(a,k,l){var g={},e=z?"-ms-transform":t?"-webkit-transform":m?"MozTransform":b.opera?"-o-transform":"";g[e]=g.transform="rotate("+a+"deg)";g[e+(m?"Origin":"-origin")]=g.transformOrigin=100*k+"% "+l+"px";H(this.element,g)},getSpanCorrection:function(a,b,l){this.xCorr=-a*l;this.yCorr=-b}});n(e.prototype, {html:function(a,b,l){var g=this.createElement("span"),k=g.element,r=g.renderer,u=r.isSVG,f=function(a,d){v(["opacity","visibility"],function(f){p(a,f+"Setter",function(a,f,b,g){a.call(this,f,b,g);d[b]=f})})};g.textSetter=function(a){a!==k.innerHTML&&delete this.bBox;k.innerHTML=this.textStr=a;g.htmlUpdateTransform()};u&&f(g,g.element.style);g.xSetter=g.ySetter=g.alignSetter=g.rotationSetter=function(a,d){"align"===d&&(d="textAlign");g[d]=a;g.htmlUpdateTransform()};g.attr({text:a,x:Math.round(b), y:Math.round(l)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});k.style.whiteSpace="nowrap";g.css=g.htmlCss;u&&(g.add=function(a){var d,b=r.box.parentNode,c=[];if(this.parentGroup=a){if(d=a.div,!d){for(;a;)c.push(a),a=a.parentGroup;v(c.reverse(),function(a){var y,A=E(a.element,"class");A&&(A={className:A});d=a.div=a.div||D("div",A,{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);y=d.style;n(a,{on:function(){g.on.apply({element:c[0].div},arguments);return a},translateXSetter:function(d,h){y.left=d+"px";a[h]=d;a.doTransform=!0},translateYSetter:function(d,h){y.top=d+"px";a[h]=d;a.doTransform=!0}});f(a,y)})}}else d=b;d.appendChild(k);g.added=!0;g.alignOnAdd&&g.htmlUpdateTransform();return g});return g}})})(K);(function(a){var E,D,H=a.createElement,I=a.css,v=a.defined,n=a.deg2rad,m=a.discardElement,z=a.doc,t=a.each,q=a.erase,e=a.extend;E=a.extendClass; var b=a.isArray,p=a.isNumber,w=a.isObject,k=a.merge;D=a.noop;var l=a.pick,g=a.pInt,F=a.SVGElement,r=a.SVGRenderer,u=a.win;a.svg||(D={docMode8:z&&8===z.documentMode,init:function(a,b){var d=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],f=["position: ","absolute",";"],c="div"===b;("shape"===b||c)&&f.push("left:0;top:0;width:1px;height:1px;");f.push("visibility: ",c?"hidden":"visible");d.push(' style\x3d"',f.join(""),'"/\x3e');b&&(d=c||"span"===b||"img"===b?d.join(""):a.prepVML(d),this.element=H(d));this.renderer= a},add:function(a){var f=this.renderer,d=this.element,b=f.box,c=a&&a.inverted,b=a?a.element||a:b;a&&(this.parentGroup=a);c&&f.invertChild(d,b);b.appendChild(d);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:F.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*n),d=Math.sin(a*n);I(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d", b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,g,c){var f=g?Math.cos(g*n):1,B=g?Math.sin(g*n):0,A=l(this.elemHeight,this.element.offsetHeight),r;this.xCorr=0>f&&-a;this.yCorr=0>B&&-A;r=0>f*B;this.xCorr+=B*b*(r?1-d:d);this.yCorr-=f*b*(g?r?d:1-d:1);c&&"left"!==c&&(this.xCorr-=a*d*(0>f?-1:1),g&&(this.yCorr-=A*d*(0>B?-1:1)),I(this.element,{textAlign:c}))},pathToVML:function(a){for(var f=a.length,d=[];f--;)p(a[f])?d[f]= Math.round(10*a[f])-5:"Z"===a[f]?d[f]="x":(d[f]=a[f],!a.isArc||"wa"!==a[f]&&"at"!==a[f]||(d[f+5]===d[f+7]&&(d[f+7]+=a[f+7]>a[f+5]?1:-1),d[f+6]===d[f+8]&&(d[f+8]+=a[f+8]>a[f+6]?1:-1)));return d.join(" ")||"x"},clip:function(a){var f=this,d;a?(d=a.members,q(d,f),d.push(f),f.destroyClip=function(){q(d,f)},a=a.getCSS(f)):(f.destroyClip&&f.destroyClip(),a={clip:f.docMode8?"inherit":"rect(auto)"});return f.css(a)},css:F.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&m(a)},destroy:function(){this.destroyClip&& this.destroyClip();return F.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=u.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var d;a=a.split(/[ ,]/);d=a.length;if(9===d||11===d)a[d-4]=a[d-2]=g(a[d-2])-10*b;return a.join(" ")},shadow:function(a,b,d){var f=[],c,y=this.element,r=this.renderer,A,B=y.style,h,G=y.path,u,k,e,p;G&&"string"!==typeof G.value&&(G="x");k=G;if(a){e=l(a.width,3);p=(a.opacity||.15)/e;for(c=1;3>=c;c++)u=2*e+1-2*c,d&& (k=this.cutOffPath(G.value,u+.5)),h=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',u,'" filled\x3d"false" path\x3d"',k,'" coordsize\x3d"10 10" style\x3d"',y.style.cssText,'" /\x3e'],A=H(r.prepVML(h),null,{left:g(B.left)+l(a.offsetX,1),top:g(B.top)+l(a.offsetY,1)}),d&&(A.cutOff=u+1),h=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',p*c,'"/\x3e'],H(r.prepVML(h),null,null,A),b?b.element.appendChild(A):y.parentNode.insertBefore(A,y),f.push(A);this.shadows=f}return this},updateShadows:D, setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||H(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var f=this.shadows;a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(f)for(d=f.length;d--;)f[d].path=f[d].cutOff?this.cutOffPath(a,f[d].cutOff):a;this.setAttr(b, a)},fillSetter:function(a,b,d){var f=d.nodeName;"SPAN"===f?d.style.color=a:"IMG"!==f&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){H(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:D,rotationSetter:function(a,b,d){d=d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*n)+1)+"px";d.top=Math.round(Math.cos(a*n))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor", this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;p(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(d){d.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping? (this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},D["stroke-opacitySetter"]=D["fill-opacitySetter"],a.VMLElement=D=E(F,D),D.prototype.ySetter=D.prototype.widthSetter=D.prototype.heightSetter=D.prototype.xSetter,D={Element:D,isIE8:-1 q[0]&&b.push([1,q[1]]);t(b,function(h,d){r.test(h[1])?(f=a.color(h[1]),G=f.get("rgb"),x=f.get("a")):(G=h[1],x=1);m.push(100*h[0]+"% "+G);d?(C=x,p=G):(B=x,F=G)});if("fill"===d)if("gradient"===u)d=k.x1||k[0]||0,b=k.y1||k[1]||0,e=k.x2||k[2]||0,k=k.y2||k[3]||0,w='angle\x3d"'+(90-180*Math.atan((k-b)/(e-d))/Math.PI)+'"',n();else{var h=k.r,z=2*h,v=2*h,D=k.cx,E=k.cy,I=g.radialReference,K,h=function(){I&&(K=l.getBBox(),D+=(I[0]-K.x)/K.width-.5,E+=(I[1]-K.y)/K.height-.5,z*=I[2]/K.width,v*=I[2]/K.height);w= 'src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+z+","+v+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+E+'" color2\x3d"'+F+'" ';n()};l.added?h():l.onAdd=h;h=p}else h=G}else r.test(b)&&"IMG"!==g.tagName?(f=a.color(b),l[d+"-opacitySetter"](f.get("a"),d,g),h=f.get("rgb")):(h=g.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=b);return h},prepVML:function(a){var b=this.isIE8;a=a.join("");b?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a= -1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:r.prototype.html,path:function(a){var f={coordsize:"10 10"};b(a)?f.d=a:w(a)&&e(f,a);return this.createElement("shape").attr(f)},circle:function(a,b,d){var f=this.symbol("circle");w(a)&&(d=a.r,b=a.y,a=a.x);f.isCircle=!0;f.r=d;return f.attr({x:a,y:b})},g:function(a){var b; a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(b)},image:function(a,b,d,g,c){var f=this.createElement("img").attr({src:a});1k&&q-l*gb&&(f=Math.round((e-q)/Math.cos(k*m)));else if(e=q+(1-l)*g,q-l*gb&&(r=b-a.x+r*l,u=-1),r=Math.min(F,r),rr||t.autoRotation&&(w.styles||{}).width)f=r;f&&(B.width= f,(t.options.labels.style||{}).textOverflow||(B.textOverflow="ellipsis"),w.css(B))},getPosition:function(a,m,q,e){var b=this.axis,p=b.chart,w=e&&p.oldChartHeight||p.chartHeight;return{x:a?b.translate(m+q,null,null,e)+b.transB:b.left+b.offset+(b.opposite?(e&&p.oldChartWidth||p.chartWidth)-b.right-b.left:0),y:a?w-b.bottom+b.offset-(b.opposite?b.height:0):w-b.translate(m+q,null,null,e)-b.transB}},getLabelPosition:function(a,n,q,e,b,p,w,k){var l=this.axis,g=l.transA,F=l.reversed,r=l.staggerLines,u=l.tickRotCorr|| {x:0,y:0},f=b.y;D(f)||(f=0===l.side?q.rotation?-8:-q.getBBox().height:2===l.side?u.y+8:Math.cos(q.rotation*m)*(u.y-q.getBBox(!1,0).height/2));a=a+b.x+u.x-(p&&e?p*g*(F?-1:1):0);n=n+f-(p&&!e?p*g*(F?1:-1):0);r&&(q=w/(k||1)%r,l.opposite&&(q=r-q-1),n+=l.labelOffset/r*q);return{x:a,y:Math.round(n)}},getMarkPath:function(a,m,q,e,b,p){return p.crispLine(["M",a,m,"L",a+(b?0:-q),m+(b?q:0)],e)},render:function(a,m,q){var e=this.axis,b=e.options,p=e.chart.renderer,w=e.horiz,k=this.type,l=this.label,g=this.pos, F=b.labels,r=this.gridLine,u=k?k+"Tick":"tick",f=e.tickSize(u),B=this.mark,d=!B,x=F.step,c={},y=!0,L=e.tickmarkOffset,A=this.getPosition(w,g,L,m),J=A.x,A=A.y,h=w&&J===e.pos+e.len||!w&&A===e.pos?-1:1,G=k?k+"Grid":"grid",Q=b[G+"LineWidth"],P=b[G+"LineColor"],t=b[G+"LineDashStyle"],G=n(b[u+"Width"],!k&&e.isXAxis?1:0),u=b[u+"Color"];q=n(q,1);this.isActive=!0;r||(c.stroke=P,c["stroke-width"]=Q,t&&(c.dashstyle=t),k||(c.zIndex=1),m&&(c.opacity=0),this.gridLine=r=p.path().attr(c).addClass("highcharts-"+(k? k+"-":"")+"grid-line").add(e.gridGroup));if(!m&&r&&(g=e.getPlotLinePath(g+L,r.strokeWidth()*h,m,!0)))r[this.isNew?"attr":"animate"]({d:g,opacity:q});f&&(e.opposite&&(f[0]=-f[0]),d&&(this.mark=B=p.path().addClass("highcharts-"+(k?k+"-":"")+"tick").add(e.axisGroup),B.attr({stroke:u,"stroke-width":G})),B[d?"attr":"animate"]({d:this.getMarkPath(J,A,f[0],B.strokeWidth()*h,w,p),opacity:q}));l&&I(J)&&(l.xy=A=this.getLabelPosition(J,A,l,w,F,L,a,x),this.isFirst&&!this.isLast&&!n(b.showFirstLabel,1)||this.isLast&& !this.isFirst&&!n(b.showLastLabel,1)?y=!1:!w||e.isRadial||F.step||F.rotation||m||0===q||this.handleOverflow(A),x&&a%x&&(y=!1),y&&I(A.y)?(A.opacity=q,l[this.isNew?"attr":"animate"](A)):l.attr("y",-9999),this.isNew=!1)},destroy:function(){H(this,this.axis)}}})(K);(function(a){var E=a.addEvent,D=a.animObject,H=a.arrayMax,I=a.arrayMin,v=a.AxisPlotLineOrBandExtension,n=a.color,m=a.correctFloat,z=a.defaultOptions,t=a.defined,q=a.deg2rad,e=a.destroyObjectProperties,b=a.each,p=a.extend,w=a.fireEvent,k=a.format, l=a.getMagnitude,g=a.grep,F=a.inArray,r=a.isArray,u=a.isNumber,f=a.isString,B=a.merge,d=a.normalizeTickInterval,x=a.pick,c=a.PlotLineOrBand,y=a.removeEvent,L=a.splat,A=a.syncTimeout,J=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"}, x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,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,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05, minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",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},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45], x:0},title:{rotation:0}},init:function(a,b){var h=b.isX;this.chart=a;this.horiz=a.inverted?!h:h;this.isXAxis=h;this.coll=this.coll||(h?"xAxis":"yAxis");this.opposite=b.opposite;this.side=b.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(b);var d=this.options,c=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.userOptions=b;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames= "category"===c||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===c;this.isDatetimeAxis="datetime"===c;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair, L(a.options.tooltip.crosshairs)[h?0:1],!1);var G;b=this.options.events;-1===F(this,a.axes)&&(h?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&h&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(G in b)E(this,G,b[G]);this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=B(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions, [this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],B(z[this.coll],a))},defaultLabelFormatter:function(){var h=this.axis,b=this.value,d=h.categories,c=this.dateTimeLabelFormat,f=z.lang,g=f.numericSymbols,f=f.numericSymbolMagnitude||1E3,y=g&&g.length,l,A=h.options.labels.format,h=h.isLog?b:h.tickInterval;if(A)l=k(A,this);else if(d)l=b;else if(c)l=a.dateFormat(c,b);else if(y&&1E3<=h)for(;y--&&void 0===l;)d=Math.pow(f,y+1),h>= d&&0===10*b%d&&null!==g[y]&&0!==b&&(l=a.numberFormat(b/d,-1)+g[y]);void 0===l&&(l=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return l},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();b(a.series,function(h){if(h.visible||!d.options.chart.ignoreHiddenSeries){var b=h.options,c=b.threshold,G;a.hasVisibleSeries=!0;a.isLog&&0>=c&&(c=null);if(a.isXAxis)b=h.xData, b.length&&(h=I(b),u(h)||h instanceof Date||(b=g(b,function(a){return u(a)}),h=I(b)),a.dataMin=Math.min(x(a.dataMin,b[0]),h),a.dataMax=Math.max(x(a.dataMax,b[0]),H(b)));else if(h.getExtremes(),G=h.dataMax,h=h.dataMin,t(h)&&t(G)&&(a.dataMin=Math.min(x(a.dataMin,h),h),a.dataMax=Math.max(x(a.dataMax,G),G)),t(c)&&(a.threshold=c),!b.softThreshold||a.isLog)a.softThreshold=!1}})},translate:function(a,b,d,c,f,g){var h=this.linkedParent||this,G=1,y=0,l=c?h.oldTransA:h.transA;c=c?h.oldMin:h.min;var A=h.minPixelPadding; f=(h.isOrdinal||h.isBroken||h.isLog&&f)&&h.lin2val;l||(l=h.transA);d&&(G*=-1,y=h.len);h.reversed&&(G*=-1,y-=G*(h.sector||h.len));b?(a=(a*G+y-A)/l+c,f&&(a=h.lin2val(a))):(f&&(a=h.val2lin(a)),a=G*(a-c)*l+y+G*A+(u(g)?l*g: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,b,d,c,f){var h=this.chart,G=this.left,g=this.top,y,l,A=d&&h.oldChartHeight|| h.chartHeight,r=d&&h.oldChartWidth||h.chartWidth,k;y=this.transB;var e=function(a,h,b){if(ab)c?a=Math.min(Math.max(h,a),b):k=!0;return a};f=x(f,this.translate(a,null,null,d));a=d=Math.round(f+y);y=l=Math.round(A-f-y);u(f)?this.horiz?(y=g,l=A-this.bottom,a=d=e(a,G,G+this.width)):(a=G,d=r-this.right,y=l=e(y,g,g+this.height)):k=!0;return k&&!c?null:h.renderer.crispLine(["M",a,y,"L",d,l],b||1)},getLinearTickPositions:function(a,b,d){var h,c=m(Math.floor(b/a)*a),f=m(Math.ceil(d/a)*a),G=[];if(b=== d&&u(b))return[b];for(b=c;b<=f;){G.push(b);b=m(b+a);if(b===h)break;h=b}return G},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,d=this.minorTickInterval,c=[],f,g=this.pointRangePadding||0;f=this.min-g;var g=this.max+g,y=g-f;if(y&&y/d=this.minRange,y,l,A,r,u,k;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(b(this.series,function(a){r=a.xData;for(l=u=a.xIncrement?1:r.length-1;0=q?(v=q,p=0):c.dataMax<=q&&(z=q,J=0)),c.min=x(D,v,c.dataMin),c.max=x(E,z,c.dataMax));y&&(!h&&0>=Math.min(c.min,x(c.dataMin,c.min))&&a.error(10,1),c.min=m(A(c.min),15),c.max=m(A(c.max),15));c.range&&t(c.max)&& (c.userMin=c.min=D=Math.max(c.min,c.minFromRange()),c.userMax=E=c.max,c.range=null);w(c,"foundExtremes");c.beforePadding&&c.beforePadding();c.adjustForMinRange();!(L||c.axisPointRange||c.usePercentage||e)&&t(c.min)&&t(c.max)&&(A=c.max-c.min)&&(!t(D)&&p&&(c.min-=A*p),!t(E)&&J&&(c.max+=A*J));u(g.floor)?c.min=Math.max(c.min,g.floor):u(g.softMin)&&(c.min=Math.min(c.min,g.softMin));u(g.ceiling)?c.max=Math.min(c.max,g.ceiling):u(g.softMax)&&(c.max=Math.max(c.max,g.softMax));n&&t(c.dataMin)&&(q=q||0,!t(D)&& c.min=q?c.min=q:!t(E)&&c.max>q&&c.dataMax<=q&&(c.max=q));c.tickInterval=c.min===c.max||void 0===c.min||void 0===c.max?1:e&&!B&&F===c.linkedParent.options.tickPixelInterval?B=c.linkedParent.tickInterval:x(B,this.tickAmount?(c.max-c.min)/Math.max(this.tickAmount-1,1):void 0,L?1:(c.max-c.min)*F/Math.max(c.len,F));k&&!h&&b(c.series,function(a){a.processData(c.min!==c.oldMin||c.max!==c.oldMax)});c.setAxisTranslation(!0);c.beforeSetTickPositions&&c.beforeSetTickPositions();c.postProcessTickInterval&& (c.tickInterval=c.postProcessTickInterval(c.tickInterval));c.pointRange&&!B&&(c.tickInterval=Math.max(c.pointRange,c.tickInterval));h=x(g.minTickInterval,c.isDatetimeAxis&&c.closestPointRange);!B&&c.tickIntervalc.tickInterval&&1E3c.max)),!!this.tickAmount));this.tickAmount||(c.tickInterval=c.unsquish());this.setTickPositions()},setTickPositions:function(){var a= this.options,c,b=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,g=a.endOnTick,y;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=c=b&&b.slice();!c&&(c=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange, !0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),c.length>this.len&&(c=[c[0],c.pop()]),this.tickPositions=c,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=c=d);this.trimTicks(c,f,g);this.isLinked||(this.min===this.max&&t(this.min)&&!this.tickAmount&&(y=!0,this.min-=.5,this.max+=.5),this.single=y,b||d||this.adjustTickAmount())},trimTicks:function(a,c,b){var h=a[0],d=a[a.length-1],f=this.minPointOffset|| 0;if(!this.isLinked){if(c)this.min=h;else for(;this.min-f>a[0];)a.shift();if(b)this.max=d;else for(;this.max+fc&&(this.finalTickAmt=c,c=5);this.tickAmount=c},adjustTickAmount:function(){var a=this.tickInterval,c=this.tickPositions,b=this.tickAmount,d=this.finalTickAmt,f=c&&c.length;if(fb&&(this.tickInterval*=2,this.setTickPositions()); if(t(d)){for(a=b=c.length;a--;)(3===d&&1===a%2||2>=d&&0d&&(a=d)),t(b)&&(cd&&(c=d))),this.displayBtn=void 0!==a||void 0!==c,this.setExtremes(a,c,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,c=this.options,b=c.offsets||[0,0,0,0],d=this.horiz,f=x(c.width,a.plotWidth-b[3]+b[1]),g=x(c.height,a.plotHeight-b[0]+b[2]),y=x(c.top,a.plotTop+b[0]),c=x(c.left,a.plotLeft+b[3]),b=/%$/;b.test(g)&&(g= Math.round(parseFloat(g)/100*a.plotHeight));b.test(y)&&(y=Math.round(parseFloat(y)/100*a.plotHeight+a.plotTop));this.left=c;this.top=y;this.width=f;this.height=g;this.bottom=a.chartHeight-g-y;this.right=a.chartWidth-f-c;this.len=Math.max(d?f:g,0);this.pos=d?c:y},getExtremes:function(){var a=this.isLog,c=this.lin2log;return{min:a?m(c(this.min)):this.min,max:a?m(c(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var c= this.isLog,h=this.lin2log,b=c?h(this.min):this.min,c=c?h(this.max):this.max;null===a?a=b:b>a?a=b:ca?"right":195a?"left":"center"},tickSize:function(a){var c=this.options,h=c[a+"Length"],b=x(c[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(b&&h)return"inside"===c[a+"Position"]&&(h=-h),[h,b]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&& this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,c=this.horiz,d=this.tickInterval,f=d,g=this.len/(((this.categories?1:0)+this.max-this.min)/d),y,l=a.rotation,A=this.labelMetrics(),r,u=Number.MAX_VALUE,k,e=function(a){a/=g||1;a=1=a)r=e(Math.abs(A.h/Math.sin(q*a))),c=r+ Math.abs(a/360),c(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/d||!c&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,c=a.renderer,d=this.tickPositions,g=this.ticks,y=this.options.labels,l=this.horiz, A=this.getSlotWidth(),r=Math.max(1,Math.round(A-2*(y.padding||5))),u={},k=this.labelMetrics(),e=y.style&&y.style.textOverflow,x,J=0,p,F;f(y.rotation)||(u.rotation=y.rotation||0);b(d,function(a){(a=g[a])&&a.labelLength>J&&(J=a.labelLength)});this.maxLabelLength=J;if(this.autoRotation)J>r&&J>k.h?u.rotation=this.labelRotation:this.labelRotation=0;else if(A&&(x={width:r+"px"},!e))for(x.textOverflow="clip",p=d.length;!l&&p--;)if(F=d[p],r=g[F].label)r.styles&&"ellipsis"===r.styles.textOverflow?r.css({textOverflow:"clip"}): g[F].labelLength>A&&r.css({width:A+"px"}),r.getBBox().height>this.len/d.length-(k.h-k.f)&&(r.specCss={textOverflow:"ellipsis"});u.rotation&&(x={width:(J>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},e||(x.textOverflow="ellipsis"));if(this.labelAlign=y.align||this.autoLabelAlign(this.labelRotation))u.align=this.labelAlign;b(d,function(a){var c=(a=g[a])&&a.label;c&&(c.attr(u),x&&c.css(B(x,c.specCss)),delete c.specCss,a.rotation=u.rotation)});this.tickRotCorr=c.rotCorr(k.b,this.labelRotation|| 0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},addTitle:function(a){var c=this.chart.renderer,b=this.horiz,h=this.opposite,d=this.options.title,f;this.axisTitle||((f=d.textAlign)||(f=(b?{low:"left",middle:"center",high:"right"}:{low:h?"right":"left",middle:"center",high:h?"left":"right"})[d.align]),this.axisTitle=c.text(d.text,0,0,d.useHTML).attr({zIndex:7,rotation:d.rotation||0,align:f}).addClass("highcharts-axis-title").css(d.style).add(this.axisGroup), this.axisTitle.isNew=!0);this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var c=this.ticks;c[a]?c[a].addLabel():c[a]=new J(this,a)},getOffset:function(){var a=this,c=a.chart,d=c.renderer,f=a.options,g=a.tickPositions,y=a.ticks,l=a.horiz,A=a.side,r=c.inverted?[1,0,3,2][A]:A,u,k,e=0,J,p=0,B=f.title,F=f.labels,w=0,L=c.axisOffset,c=c.clipOffset,m=[-1,1,1,-1][A],q,n=f.className,v=a.axisParent,z=this.tickSize("tick");u=a.hasData();a.showAxis=k=u||x(f.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines; a.axisGroup||(a.gridGroup=d.g("grid").attr({zIndex:f.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(n||"")).add(v),a.axisGroup=d.g("axis").attr({zIndex:f.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(n||"")).add(v),a.labelGroup=d.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(n||"")).add(v));if(u||a.isLinked)b(g,function(c,b){a.generateTick(c,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==A&&2!==A&& {1:"left",3:"right"}[A]!==a.labelAlign&&"center"!==a.labelAlign||b(g,function(a){w=Math.max(y[a].getLabelSize(),w)}),a.staggerLines&&(w*=a.staggerLines,a.labelOffset=w*(a.opposite?-1:1));else for(q in y)y[q].destroy(),delete y[q];B&&B.text&&!1!==B.enabled&&(a.addTitle(k),k&&(e=a.axisTitle.getBBox()[l?"height":"width"],J=B.offset,p=t(J)?0:x(B.margin,l?5:10)));a.renderLine();a.offset=m*x(f.offset,L[A]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};d=0===A?-a.labelMetrics().h:2===A?a.tickRotCorr.y:0;p=Math.abs(w)+ p;w&&(p=p-d+m*(l?x(F.y,a.tickRotCorr.y+8*m):F.x));a.axisTitleMargin=x(J,p);L[A]=Math.max(L[A],a.axisTitleMargin+e+m*a.offset,p,u&&g.length&&z?z[0]:0);f=f.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);c[r]=Math.max(c[r],f)},getLinePath:function(a){var c=this.chart,b=this.opposite,d=this.offset,h=this.horiz,f=this.left+(b?this.width:0)+d,d=c.chartHeight-this.bottom-(b?this.height:0)+d;b&&(a*=-1);return c.renderer.crispLine(["M",h?this.left:f,h?d:this.top,"L",h?c.chartWidth-this.right:f,h?d:c.chartHeight- this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,c=this.left,b=this.top,d=this.len,f=this.options.title,g=a?c:b,y=this.opposite,A=this.offset,l=f.x||0,r=f.y||0,u=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:g+(a?0:d), middle:g+d/2,high:g+(a?d:0)}[f.align],c=(a?b+this.height:c)+(a?1:-1)*(y?-1:1)*this.axisTitleMargin+(2===this.side?u:0);return{x:a?d+l:c+(y?this.width:0)+A+l,y:a?c+r-(y?this.height:0)+A:d+r}},renderMinorTick:function(a){var c=this.chart.hasRendered&&u(this.oldMin),b=this.minorTicks;b[a]||(b[a]=new J(this,a,"minor"));c&&b[a].isNew&&b[a].render(null,!0);b[a].render(null,!1,1)},renderTick:function(a,c){var b=this.isLinked,d=this.ticks,h=this.chart.hasRendered&&u(this.oldMin);if(!b||a>=this.min&&a<=this.max)d[a]|| (d[a]=new J(this,a)),h&&d[a].isNew&&d[a].render(c,!0,.1),d[a].render(c)},render:function(){var a=this,d=a.chart,f=a.options,g=a.isLog,y=a.lin2log,l=a.isLinked,r=a.tickPositions,u=a.axisTitle,k=a.ticks,e=a.minorTicks,x=a.alternateBands,p=f.stackLabels,B=f.alternateGridColor,F=a.tickmarkOffset,w=a.axisLine,L=a.showAxis,m=D(d.renderer.globalAnimation),q,n;a.labelEdge.length=0;a.overlap=!1;b([k,e,x],function(a){for(var c in a)a[c].isActive=!1});if(a.hasData()||l)a.minorTickInterval&&!a.categories&&b(a.getMinorTickPositions(), function(c){a.renderMinorTick(c)}),r.length&&(b(r,function(c,b){a.renderTick(c,b)}),F&&(0===a.min||a.single)&&(k[-1]||(k[-1]=new J(a,-1,null,!0)),k[-1].render(-1))),B&&b(r,function(b,h){n=void 0!==r[h+1]?r[h+1]+F:a.max-F;0===h%2&&b=b.second?0:x*Math.floor(f.getMilliseconds()/x));if(d>=b.second)f[D.hcSetSeconds](d>=b.minute?0:x*Math.floor(f.getSeconds()/x));if(d>=b.minute)f[D.hcSetMinutes](d>=b.hour?0:x*Math.floor(f[D.hcGetMinutes]()/x));if(d>=b.hour)f[D.hcSetHours](d>= b.day?0:x*Math.floor(f[D.hcGetHours]()/x));if(d>=b.day)f[D.hcSetDate](d>=b.month?1:x*Math.floor(f[D.hcGetDate]()/x));d>=b.month&&(f[D.hcSetMonth](d>=b.year?0:x*Math.floor(f[D.hcGetMonth]()/x)),u=f[D.hcGetFullYear]());if(d>=b.year)f[D.hcSetFullYear](u-u%x);if(d===b.week)f[D.hcSetDate](f[D.hcGetDate]()-f[D.hcGetDay]()+e(l,1));u=f[D.hcGetFullYear]();l=f[D.hcGetMonth]();var y=f[D.hcGetDate](),L=f[D.hcGetHours]();if(D.hcTimezoneOffset||D.hcGetTimezoneOffset)c=(!r||!!D.hcGetTimezoneOffset)&&(k-w>4*b.month|| t(w)!==t(k)),f=f.getTime(),f=new D(f+t(f));r=f.getTime();for(w=1;rg.length&&n(g,function(a){0===a%18E5&&"000000000"===H("%H%M%S%L",a)&&(p[a]="day")})}g.info=m(a,{higherRanks:p,totalRange:d*x});return g};E.prototype.normalizeTimeTickInterval=function(a,e){var k=e||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second", [1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];e=k[k.length-1];var l=b[e[0]],g=e[1],p;for(p=0;pm&&(!t||F<=z)&&void 0!==F&&w.push(F),F>z&&(r=!0),F=g;else m=b(m),z=b(z),a=q[t?"minorTickInterval":"tickInterval"],a=v("auto"===a?null:a,this._minorAutoInterval, q.tickPixelInterval/(t?5:1)*(z-m)/((t?e/this.tickPositions.length:e)||1)),a=I(a,null,D(a)),w=H(this.getLinearTickPositions(a,m,z),p),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return w};E.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};E.prototype.lin2log=function(a){return Math.pow(10,a)}})(K);(function(a){var E=a.dateFormat,D=a.each,H=a.extend,I=a.format,v=a.isNumber,n=a.map,m=a.merge,z=a.pick,t=a.splat,q=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this, arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){D(this.chart.series,function(b){var e=b&&b.tt;e&&(!e.isActive||a?b.tt=e.destroy():e.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML, null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,m(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)}, move:function(a,e,w,k){var b=this,g=b.now,p=!1!==b.options.animation&&!b.isHidden&&(1r-p?r:r-p); else if(A)g[a]=Math.max(f,d+p+b>c?d:d+p);else return!1},x=function(a,c,b,d){var h;dc-l?h=!1:g[a]=dc-b/2?c-b-2:d-b/2;return h},c=function(a){var c=u;u=f;f=c;r=a},y=function(){!1!==d.apply(0,u)?!1!==x.apply(0,f)||r||(c(!0),y()):r?g.x=g.y=0:(c(!0),y())};(b.inverted||1y&&(F=!1);a=(b.series&&b.series.yAxis&&b.series.yAxis.pos)+(b.plotY||0);a-=l.plotTop;k.push({target:b.isHeader?l.plotHeight+u:a,rank:b.isHeader?1:0,size:d.tt.getBBox().height+1,point:b,x:y,tt:c})});this.cleanSplit();a.distribute(k,l.plotHeight+u);D(k,function(a){var b=a.point,f=b.series;a.tt.attr({visibility:void 0=== a.pos?"hidden":"inherit",x:F||b.isHeader?a.x:b.plotX+l.plotLeft+z(r.distance,16),y:a.pos+l.plotTop,anchorX:b.isHeader?b.plotX+l.plotLeft:b.plotX+f.xAxis.pos,anchorY:b.isHeader?a.pos+l.plotTop-15:b.plotY+f.yAxis.pos})})},updatePosition:function(a){var b=this.chart,e=this.getLabel(),e=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a);this.move(Math.round(e.x),Math.round(e.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getDateFormat:function(a,p,w,k){var b=E("%m-%d %H:%M:%S.%L", p),g,F,r={millisecond:15,second:12,minute:9,hour:6,day:3},u="millisecond";for(F in e){if(a===e.week&&+E("%w",p)===w&&"00:00:00.000"===b.substr(6)){F="week";break}if(e[F]>a){F=u;break}if(r[F]&&b.substr(r[F])!=="01-01 00:00:00.000".substr(r[F]))break;"week"!==F&&(u=F)}F&&(g=k[F]);return g},getXDateFormat:function(a,e,w){e=e.dateTimeLabelFormats;var b=w&&w.closestPointRange;return(b?this.getDateFormat(b,a.x,w.options.startOfWeek,e):e.day)||e.year},tooltipFooterHeaderFormatter:function(a,e){var b=e?"footer": "header";e=a.series;var k=e.tooltipOptions,l=k.xDateFormat,g=e.xAxis,F=g&&"datetime"===g.options.type&&v(a.key),b=k[b+"Format"];F&&!l&&(l=this.getXDateFormat(a,k,g));F&&l&&(b=b.replace("{point.key}","{point.key:"+l+"}"));return I(b,{point:a,series:e})},bodyFormatter:function(a){return n(a,function(a){var b=a.series.tooltipOptions;return(b.pointFormatter||a.point.tooltipFormatter).call(a.point,b.pointFormat)})}}})(K);(function(a){var E=a.addEvent,D=a.attr,H=a.charts,I=a.color,v=a.css,n=a.defined,m= a.doc,z=a.each,t=a.extend,q=a.fireEvent,e=a.offset,b=a.pick,p=a.removeEvent,w=a.splat,k=a.Tooltip,l=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,l){this.options=l;this.chart=a;this.runChartClick=l.chart.events&&!!l.chart.events.click;this.pinchDown=[];this.lastValidTouch={};k&&l.tooltip.enabled&&(a.tooltip=new k(a,l.tooltip),this.followTouchMove=b(l.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var g=this.chart,l=g.options.chart,e=l.zoomType|| "",g=g.inverted;/touch/.test(a.type)&&(e=b(l.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!g||e&&g;this.zoomVert=e&&!g||a&&g;this.hasZoom=a||e},normalize:function(a,b){var g,u;a=a||l.event;a.target||(a.target=a.srcElement);u=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=e(this.chart.container));void 0===u.pageX?(g=Math.max(a.x,a.clientX-b.left),b=a.y):(g=u.pageX-b.left,b=u.pageY-b.top);return t(a,{chartX:Math.round(g), chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};z(this.chart.axes,function(g){b[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(a[g.horiz?"chartX":"chartY"])})});return b},runPointActions:function(g){var l=this.chart,r=l.series,e=l.tooltip,f=e?e.shared:!1,k=!0,d=l.hoverPoint,x=l.hoverSeries,c,y,p,A=[],J;if(!f&&!x)for(c=0;cc.series.index?-1:1}));if(f)for(c=A.length;c--;)(A[c].x!==A[0].x||A[c].series.noSharedTooltip)&&A.splice(c,1);if(A[0]&&(A[0]!== this.prevKDPoint||e&&e.isHidden)){if(f&&!A[0].series.noSharedTooltip){for(c=0;ck+y&&(l=k+y),f< c?f=c:f>c+p&&(f=c+p),this.hasDragged=Math.sqrt(Math.pow(h-l,2)+Math.pow(q-f,2)),10c.max&&(n=c.max-f,G=!0);G?(A-=.8*(A-p[l][0]),y||(h-=.8*(h-p[l][1])),t()):p[l]=[A,h];x||(b[l]=B-u,b[r]=f);b=x?1/d:d;e[r]=f;e[l]=n;q[x?a?"scaleY": "scaleX":"scale"+g]=d;q["translate"+g]=b*u+(A-b*L)},pinch:function(a){var m=this,t=m.chart,q=m.pinchDown,e=a.touches,b=e.length,p=m.lastValidTouch,w=m.hasZoom,k=m.selectionMarker,l={},g=1===b&&(m.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||m.runChartClick),F={};1e-6&&d(A||b.chartWidth-2*c-w-k.x)&&(this.itemX=w,this.itemY+=h+this.lastLineHeight+J,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,f);this.lastItemY=h+this.itemY+J;this.lastLineHeight=Math.max(p,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];u?this.itemX+=f: (this.itemY+=h+p+J,this.lastLineHeight=p);this.offsetWidth=A||Math.max((u?this.itemX-w-y:f)+c,this.offsetWidth)},getAllItems:function(){var a=[];n(this.chart.series,function(b){var g=b&&b.options;b&&e(g.showInLegend,v(g.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===g.legendType?b.data:b)))});return a},adjustMargins:function(a,b){var g=this.chart,l=this.options,k=l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0);l.floating||n([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/, /(lbv|lm|ltv)/],function(f,r){f.test(k)&&!v(a[r])&&(g[t[r]]=Math.max(g[t[r]],g.legend[(r+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][r]*l[r%2?"x":"y"]+e(l.margin,12)+b[r]))})},render:function(){var a=this,b=a.chart,e=b.renderer,k=a.group,u,f,B,d,x=a.box,c=a.options,y=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;k||(a.group=k=e.g("legend").attr({zIndex:7}).add(),a.contentGroup=e.g().attr({zIndex:1}).add(k),a.scrollGroup=e.g().add(a.contentGroup));a.renderTitle(); u=a.getAllItems();p(u,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});c.reversed&&u.reverse();a.allItems=u;a.display=f=!!u.length;a.lastLineHeight=0;n(u,function(b){a.renderItem(b)});B=(c.width||a.offsetWidth)+y;d=a.lastItemY+a.lastLineHeight+a.titleHeight;d=a.handleOverflow(d);d+=y;x||(a.box=x=e.rect().addClass("highcharts-legend-box").attr({r:c.borderRadius}).add(k),x.isNew=!0);x.attr({stroke:c.borderColor,"stroke-width":c.borderWidth||0,fill:c.backgroundColor|| "none"}).shadow(c.shadow);0l&&!1!==x.enabled?(this.clipHeight=p=Math.max(l-20-this.titleHeight-J,0),this.currentPage=e(this.currentPage,1),this.fullHeight= a,n(m,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=A.length;if(!d||c-A[d-1]>p&&(h||c)!==A[d-1])A.push(h||c),d++;b===m.length-1&&c+a-A[d-1]>p&&A.push(c);c!==h&&(h=c)}),d||(d=b.clipRect=k.clipRect(0,J,9999,0),b.contentGroup.clip(d)),q(p),w||(this.nav=w=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,y,y).on("click",function(){b.scroll(-1,c)}).add(w),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation").css(x.style).add(w), this.down=k.symbol("triangle-down",0,0,y,y).on("click",function(){b.scroll(1,c)}).add(w)),b.scroll(0),a=l):w&&(q(),w.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,g){var e=this.pages,k=e.length;a=this.currentPage+a;var l=this.clipHeight,f=this.options.navigation,p=this.pager,d=this.padding;a>k&&(a=k);0l&&(e=typeof a[0],"string"===e?b.name=a[0]:"number"===e&&(b.x=a[0]),g++);q=w.value;)w=b[++p];w&&w.color&&!this.options.color&&(this.color=w.color);return w},destroy:function(){var a=this.series.chart,b=a.hoverPoints,p;a.pointCount--;b&&(this.setState(),I(b,this),b.length|| (a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)q(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(p in this)this[p]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],b,p=6;p--;)b=a[p],this[b]&&(this[b]=this[b].destroy())},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 b=this.series,e=b.tooltipOptions,w=t(e.valueDecimals,""),k=e.valuePrefix||"",l=e.valueSuffix||"";D(b.pointArrayMap||["y"],function(b){b="{point."+b;if(k||l)a=a.replace(b+"}",k+b+"}"+l);a=a.replace(b+"}",b+":,."+w+"f}")});return n(a,{point:this,series:this.series})},firePointEvent:function(a,b,p){var e=this,k=this.series.options;(k.point.events[a]||e.options&&e.options.events&&e.options.events[a])&& this.importEvents();"click"===a&&k.allowPointSelect&&(p=function(a){e.select&&e.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});v(this,a,b,p)},visible:!0}})(K);(function(a){var E=a.addEvent,D=a.animObject,H=a.arrayMax,I=a.arrayMin,v=a.correctFloat,n=a.Date,m=a.defaultOptions,z=a.defaultPlotOptions,t=a.defined,q=a.each,e=a.erase,b=a.extend,p=a.fireEvent,w=a.grep,k=a.isArray,l=a.isNumber,g=a.isString,F=a.merge,r=a.pick,u=a.removeEvent,f=a.splat,B=a.SVGElement,d=a.syncTimeout,x=a.win;a.Series=a.seriesType("line", null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{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:{hover:{lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,d){var c=this,f,e,h=a.series,y;c.chart=a;c.options=d=c.setOptions(d);c.linkedSeries=[];c.bindAxes();b(c,{name:d.name,state:"",visible:!1!== d.visible,selected:!0===d.selected});e=d.events;for(f in e)E(c,f,e[f]);if(e&&e.click||d.point&&d.point.events&&d.point.events.click||d.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();q(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(d.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(y=h[h.length-1]);c._i=r(y&&y._i,-1)+1;a.orderSeries(this.insert(h))},insert:function(a){var b=this.options.index,c;if(l(b)){for(c=a.length;c--;)if(b>=r(a[c].options.index,a[c]._i)){a.splice(c+ 1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return r(c,a.length-1)},bindAxes:function(){var b=this,d=b.options,f=b.chart,e;q(b.axisTypes||[],function(c){q(f[c],function(a){e=a.options;if(d[c]===e.index||void 0!==d[c]&&d[c]===e.id||void 0===d[c]&&0===e.index)b.insert(a.series),b[c]=a,a.isDirty=!0});b[c]||b.optionalAxis===c||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments,f=l(b)?function(d){var h="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]= h}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(d,2))};q(c.parallelArrays,f)},autoIncrement:function(){var a=this.options,b=this.xIncrement,d,f=a.pointIntervalUnit,b=r(b,a.pointStart,0);this.pointInterval=d=r(this.pointInterval,a.pointInterval,1);f&&(a=new n(b),"day"===f?a=+a[n.hcSetDate](a[n.hcGetDate]()+d):"month"===f?a=+a[n.hcSetMonth](a[n.hcGetMonth]()+d):"year"===f&&(a=+a[n.hcSetFullYear](a[n.hcGetFullYear]()+d)),d=a-b);this.xIncrement=b+d;return b},setOptions:function(a){var b= this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},f=c[this.type];this.userOptions=a;c=F(f,c.series,a);this.tooltipOptions=F(m.tooltip,m.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===f.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative", color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return c},getCyclic:function(a,b,d){var c,f=this.chart,h=this.userOptions,e=a+"Index",g=a+"Counter",y=d?d.length:r(f.options.chart[a+"Count"],f[a+"Count"]);b||(c=r(h[e],h["_"+e]),t(c)||(f.series.length||(f[g]=0),h["_"+e]=c=f[g]%y,f[g]+=1),d&&(b=d[c]));void 0!==c&&(this[e]=c);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color", this.options.color||z[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,d,f,e){var c=this,h=c.points,y=h&&h.length||0,A,u=c.options,x=c.chart,p=null,w=c.xAxis,m=u.turboThreshold,B=this.xData,n=this.yData,t=(A=c.pointArrayMap)&&A.length;b=b||[];A=b.length;d=r(d,!0);if(!1!==e&&A&&y===A&&!c.cropped&&!c.hasGroupedData&&c.visible)q(b,function(a, b){h[b].update&&a!==u.data[b]&&h[b].update(a,!1,null,!1)});else{c.xIncrement=null;c.colorCounter=0;q(this.parallelArrays,function(a){c[a+"Data"].length=0});if(m&&A>m){for(f=0;null===p&&fl||this.forceCrop))if(c[f-1]w)c=[],d=[];else if(c[0]w)e=this.cropData(this.xData,this.yData,q,w),c=e.xData,d=e.yData,e=e.start,h=!0;for(l=c.length||1;--l;)f=p?u(c[l])-u(c[l-1]):c[l]-c[l-1],0f&&this.requireSorting&&a.error(15);this.cropped=h;this.cropStart=e;this.processedXData=c;this.processedYData=d;this.closestPointRange= g},cropData:function(a,b,d,f){var c=a.length,h=0,e=c,g=r(this.cropShoulder,1),y;for(y=0;y=d){h=Math.max(0,y-g);break}for(d=y;df){e=d+g;break}return{xData:a.slice(h,e),yData:b.slice(h,e),start:h,end:e}},generatePoints:function(){var a=this.options.data,b=this.data,d,e=this.processedXData,g=this.processedYData,h=this.pointClass,k=e.length,l=this.cropStart||0,u,r=this.hasGroupedData,x,p=[],q;b||r||(b=[],b.length=a.length,b=this.data=b);for(q=0;q=e&&(c[p-1]||r)<=g,u&&r)if(u=x.length)for(;u--;)null!==x[u]&&(f[h++]=x[u]);else f[h++]=x;this.dataMin=I(f);this.dataMax=H(f)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,d=this.xAxis,f=d.categories,e=this.yAxis,h=this.points,g=h.length,k=!!this.modifyValue,u=a.pointPlacement,x="between"===u||l(u),p=a.threshold, q=a.startFromThreshold?p:0,w,m,B,n,F=Number.MAX_VALUE;"between"===u&&(u=.5);l(u)&&(u*=r(a.pointRange||d.pointRange));for(a=0;a=E&&(z.isNull=!0);z.plotX=w=v(Math.min(Math.max(-1E5,d.translate(D,0,0,0,1,u,"flags"===this.type)),1E5));b&&this.visible&&!z.isNull&&I&&I[D]&&(n=this.getStackIndicator(n,D,this.index),H=I[D],E=H.points[n.key],m=E[0],E=E[1],m===q&&n.key===I[D].base&& (m=r(p,e.min)),e.isLog&&0>=m&&(m=null),z.total=z.stackTotal=H.total,z.percentage=H.total&&z.y/H.total*100,z.stackY=E,H.setOffset(this.pointXOffset||0,this.barW||0));z.yBottom=t(m)?e.translate(m,0,1,0,1):null;k&&(E=this.modifyValue(E,z));z.plotY=m="number"===typeof E&&Infinity!==E?Math.min(Math.max(-1E5,e.translate(E,0,1,0,1)),1E5):void 0;z.isInside=void 0!==m&&0<=m&&m<=e.len&&0<=w&&w<=d.len;z.clientX=x?v(d.translate(D,0,0,0,1,u)):w;z.negative=z.y<(p||0);z.category=f&&void 0!==f[z.x]?f[z.x]:z.x;z.isNull|| (void 0!==B&&(F=Math.min(F,Math.abs(w-B))),B=w);z.zone=this.zones.length&&z.getZone()}this.closestPointRangePx=F},getValidPoints:function(a,b){var c=this.chart;return w(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,f=b.inverted,h=this.clipBox,e=h||b.clipBox,g=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,e.height,c.xAxis,c.yAxis].join(),k=b[g],l=b[g+"m"];k||(a&&(e.width= 0,b[g+"m"]=l=d.clipRect(-99,f?-b.plotLeft:-b.plotTop,99,f?b.chartWidth:b.chartHeight)),b[g]=k=d.clipRect(e),k.count={length:0});a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);!1!==c.clip&&(this.group.clip(a||h?k:b.clipRect),this.markerGroup.clip(l),this.sharedClipKey=g);a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&g&&b[g]&&(h||(b[g]=b[g].destroy()),b[g+"m"]&&(this.markerGroup.clip(),b[g+"m"]=b[g+"m"].destroy())))},animate:function(a){var b= this.chart,c=D(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip();p(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,d,f,e,h,g=this.options.marker,k,u,x,p,q=this.markerGroup,w=r(g.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(f=0;ff&&b.shadow));e&&(e.startX=d.xMap,e.isArea=d.isArea)})},applyZones:function(){var a=this,b=this.chart,d=b.renderer,f=this.zones,e,h,g=this.clips||[],k,l=this.graph,u=this.area,x=Math.max(b.chartWidth,b.chartHeight),p=this[(this.zoneAxis||"y")+"Axis"],w,m,B=b.inverted,n,t,v,F,z=!1;f.length&&(l||u)&&p&&void 0!==p.min&&(m=p.reversed,n=p.horiz,l&&l.hide(),u&&u.hide(),w=p.getExtremes(),q(f,function(c,f){e=m?n?b.plotWidth:0:n?0: p.toPixels(w.min);e=Math.min(Math.max(r(h,e),0),x);h=Math.min(Math.max(Math.round(p.toPixels(r(c.value,w.max),!0)),0),x);z&&(e=h=p.toPixels(w.max));t=Math.abs(e-h);v=Math.min(e,h);F=Math.max(e,h);p.isXAxis?(k={x:B?F:v,y:0,width:t,height:x},n||(k.x=b.plotHeight-k.x)):(k={x:0,y:B?F:v,width:x,height:t},n&&(k.y=b.plotWidth-k.y));B&&d.isVML&&(k=p.isXAxis?{x:0,y:m?v:F,height:k.width,width:b.chartWidth}:{x:k.y-b.plotLeft-b.spacingBox.x,y:0,width:k.height,height:b.chartHeight});g[f]?g[f].animate(k):(g[f]= d.clipRect(k),l&&a["zone-graph-"+f].clip(g[f]),u&&a["zone-area-"+f].clip(g[f]));z=c.value>w.max}),this.clips=g)},invertGroups:function(a){function b(){q(["group","markerGroup"],function(b){c[b]&&(c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,d;c.xAxis&&(d=E(c.chart,"resize",b),E(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,d,f,e){var c=this[a],g=!c;g&&(this[a]=c=this.chart.renderer.g(b).attr({zIndex:f||.1}).add(e),c.addClass("highcharts-series-"+this.index+ " highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className||"")));c.attr({visibility:d})[g?"attr":"animate"](this.getPlotBox());return c},getPlotBox:function(){var a=this.chart,b=this.xAxis,d=this.yAxis;a.inverted&&(b=d,d=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:d?d.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,f,e=a.options,g=!!a.animate&&b.renderer.isSVG&&D(e.animation).duration,h=a.visible?"inherit":"hidden",k= e.zIndex,l=a.hasRendered,u=b.seriesGroup,x=b.inverted;f=a.plotGroup("group","series",h,k,u);a.markerGroup=a.plotGroup("markerGroup","markers",h,k,u);g&&a.animate(!0);f.inverted=a.isCartesian?x:!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(x);!1===e.clip||a.sharedClipKey||l||f.clip(b.clipRect);g&&a.animate();l||(a.animationTimeout=d(function(){a.afterAnimate()}, g));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,d=this.group,f=this.xAxis,e=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:r(f&&f.left,a.plotLeft),translateY:r(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,f=this.chart.inverted;return this.searchKDTree({clientX:f? c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:f?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(d,c,f){var h,e;if(e=d&&d.length)return h=b.kdAxisArray[c%f],d.sort(function(a,b){return a[h]-b[h]}),e=Math.floor(e/2),{point:d[e],left:a(d.slice(0,e),c+1,f),right:a(d.slice(e+1),c+1,f)}}this.buildingKdTree=!0;var b=this,f=b.kdDimensions;delete b.kdTree;d(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),f,f);b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a, b){function d(a,b,g,k){var l=b.point,u=c.kdAxisArray[g%k],x,y,A=l;y=t(a[f])&&t(l[f])?Math.pow(a[f]-l[f],2):null;x=t(a[h])&&t(l[h])?Math.pow(a[h]-l[h],2):null;x=(y||0)+(x||0);l.dist=t(x)?Math.sqrt(x):Number.MAX_VALUE;l.distX=t(y)?Math.sqrt(y):Number.MAX_VALUE;u=a[u]-l[u];x=0>u?"left":"right";y=0>u?"right":"left";b[x]&&(x=d(a,b[x],g+1,k),A=x[e]m;)p--;this.updateParallelArrays(h,"splice",p,0,0);this.updateParallelArrays(h,p);l&&h.name&&(l[m]=h.name);u.splice(p,0,a);x&&(this.data.splice(p,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove? f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),u.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a,b,d){var f=this,c=f.data,e=c[a],g=f.points,l=f.chart,u=function(){g&&g.length===c.length&&g.splice(a,1);c.splice(a,1);f.options.data.splice(a,1);f.updateParallelArrays(e||{series:f},"splice",a,1);e&&e.destroy();f.isDirty=!0;f.isDirtyData=!0;b&&l.redraw()};r(d,l);b=k(b,!0);e?e.firePointEvent("remove",null,u):u()},remove:function(a,b,d){function f(){c.destroy(); e.isDirtyLegend=e.isDirtyBox=!0;e.linkSeries();k(a,!0)&&e.redraw(b)}var c=this,e=c.chart;!1!==d?q(c,"remove",null,f):f()},update:function(a,b){var d=this,f=this.chart,c=this.userOptions,e=this.type,g=a.type||c.type||f.options.chart.type,l=F[e].prototype,u=["group","markerGroup","dataLabelsGroup"],h;if(g&&g!==e||void 0!==a.zIndex)u.length=0;m(u,function(a){u[a]=d[a];delete d[a]});a=w(c,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(h in l)this[h]= void 0;t(this,F[g||e].prototype);m(u,function(a){d[a]=u[a]});this.init(f,a);f.linkSeries();k(b,!0)&&f.redraw(!1)}});t(H.prototype,{update:function(a,b){var d=this.chart;a=d.options[this.coll][this.options.index]=w(this.userOptions,a);this.destroy(!0);this.init(d,t(a,{events:void 0}));d.isDirtyBox=!0;k(b,!0)&&d.redraw()},remove:function(a){for(var b=this.chart,d=this.coll,f=this.series,c=f.length;c--;)f[c]&&f[c].remove(!1);z(b.axes,this);z(b[d],this);b.options[d].splice(this.options.index,1);m(b[d], function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;k(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(K);(function(a){var E=a.color,D=a.each,H=a.map,I=a.pick,v=a.Series,n=a.seriesType;n("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],n=[],t=this.xAxis,q=this.yAxis,e=q.stacks[this.stackKey],b={},p=this.points,w=this.index,k=q.series,l=k.length,g,v=I(q.options.reversedStacks, !0)?1:-1,r,u;if(this.options.stacking){for(r=0;ra&&t>n?(t=Math.max(a,n),e=2*n-t):tI&&e>n?(e=Math.max(I,n),t=2*n-e):e=Math.abs(b)&&.5a.closestPointRange*a.xAxis.transA,w=a.borderWidth=m(p.borderWidth,w?0:1),k=a.yAxis,l=a.translatedThreshold=k.getThreshold(p.threshold),g=m(p.minPointLength, 5),n=a.getColumnMetrics(),r=n.width,u=a.barW=Math.max(r,1+2*w),f=a.pointXOffset=n.offset;b.inverted&&(l-=.5);p.pointPadding&&(u=Math.ceil(u));z.prototype.translate.apply(a);H(a.points,function(e){var d=m(e.yBottom,l),x=999+Math.abs(d),x=Math.min(Math.max(-x,e.plotY),k.len+x),c=e.plotX+f,p=u,w=Math.min(x,d),A,n=Math.max(x,d)-w;Math.abs(n)g?d-g:l-(A?g:0));e.barX=c;e.pointWidth=r;e.tooltipPos=b.inverted?[k.len+k.pos-b.plotLeft- x,a.xAxis.len-c-p/2,n]:[c+p/2,x+k.pos-b.plotTop,n];e.shapeType="rect";e.shapeArgs=a.crispCol.apply(a,e.isNull?[e.plotX,k.len/2,0,0]:[c,w,p,n])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,b){var e=this.options,m,k=this.pointAttrToOptions||{};m=k.stroke||"borderColor";var l=k["stroke-width"]||"borderWidth",g=a&&a.color||this.color,n=a[m]||e[m]||this.color|| g,r=a[l]||e[l]||this[l]||0,k=e.dashStyle;a&&this.zones.length&&(g=(g=a.getZone())&&g.color||a.options.color||this.color);b&&(a=e.states[b],b=a.brightness,g=a.color||void 0!==b&&D(g).brighten(a.brightness).get()||g,n=a[m]||n,r=a[l]||r,k=a.dashStyle||k);m={fill:g,stroke:n,"stroke-width":r};e.borderRadius&&(m.r=e.borderRadius);k&&(m.dashstyle=k);return m},drawPoints:function(){var a=this,b=this.chart,p=a.options,m=b.renderer,k=p.animationLimit||250,l;H(a.points,function(e){var g=e.graphic;if(v(e.plotY)&& null!==e.y){l=e.shapeArgs;if(g)g[b.pointCountt;++t)q=m[t],a=2>t||2===t&&/%$/.test(q),m[t]=D(q,[n,I,z,m[2]][t])+(a?v:0);m[3]>m[2]&&(m[3]=m[2]);return m}}})(K);(function(a){var E=a.addEvent,D=a.defined,H=a.each,I=a.extend,v=a.inArray,n=a.noop,m=a.pick,z=a.Point,t=a.Series,q=a.seriesType,e=a.setAnimation;q("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var b=this,e=b.points,k=b.startAngleRad;a||(H(e,function(a){var e= a.graphic,l=a.shapeArgs;e&&(e.attr({r:a.startR||b.center[3]/2,start:k,end:k}),e.animate({r:l.r,start:l.start,end:l.end},b.options.animation))}),b.animate=null)},updateTotals:function(){var a,e=0,m=this.points,k=m.length,l,g=this.options.ignoreHiddenPoint;for(a=0;al.y&&(l.y=null),e+=g&&!l.visible?0:l.y;this.total=e;for(a=0;a1.5*Math.PI?r-=2*Math.PI:r<-Math.PI/2&&(r+=2*Math.PI);y.slicedTranslation={translateX:Math.round(Math.cos(r)*k),translateY:Math.round(Math.sin(r)*k)};g=Math.cos(r)*a[2]/2;n=Math.sin(r)*a[2]/2;y.tooltipPos=[a[0]+.7*g,a[1]+.7*n];y.half=r<-Math.PI/2||r>Math.PI/2?1:0;y.angle=r;l=Math.min(l,d/5);y.labelPos=[a[0]+g+Math.cos(r)*d,a[1]+n+Math.sin(r)*d,a[0]+g+Math.cos(r)*l,a[1]+n+Math.sin(r)* l,a[0]+g,a[1]+n,0>d?"center":y.half?"right":"left",r]}},drawGraph:null,drawPoints:function(){var a=this,e=a.chart.renderer,m,k,l,g,n=a.options.shadow;n&&!a.shadowGroup&&(a.shadowGroup=e.g("shadow").add(a.group));H(a.points,function(b){if(null!==b.y){k=b.graphic;g=b.shapeArgs;m=b.sliced?b.slicedTranslation:{};var u=b.shadowGroup;n&&!u&&(u=b.shadowGroup=e.g("shadow").add(a.shadowGroup));u&&u.attr(m);l=a.pointAttribs(b,b.selected&&"select");k?k.setRadialReference(a.center).attr(l).animate(I(g,m)):(b.graphic= k=e[b.shapeType](g).addClass(b.getClassName()).setRadialReference(a.center).attr(m).add(a.group),b.visible||k.attr({visibility:"hidden"}),k.attr(l).attr({"stroke-linejoin":"round"}).shadow(n,u))}})},searchPoint:n,sortByAngle:function(a,e){a.sort(function(a,b){return void 0!==a.angle&&(b.angle-a.angle)*e})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:n},{init:function(){z.prototype.init.apply(this,arguments);var a=this,e;a.name=m(a.name,"Slice"); e=function(b){a.slice("select"===b.type)};E(a,"select",e);E(a,"unselect",e);return a},setVisible:function(a,e){var b=this,k=b.series,l=k.chart,g=k.options.ignoreHiddenPoint;e=m(e,g);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,k.options.data[v(b,k.data)]=b.options,H(["graphic","dataLabel","connector","shadowGroup"],function(e){if(b[e])b[e][a?"show":"hide"](!0)}),b.legendItem&&l.legend.colorizeItem(b,a),a||"hover"!==b.state||b.setState(""),g&&(k.isDirty=!0),e&&l.redraw())}, slice:function(a,p,n){var b=this.series;e(n,b.chart);m(p,!0);this.sliced=this.options.sliced=a=D(a)?a:!this.sliced;b.options.data[v(this,b.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+a,b.r+a,{innerR:this.shapeArgs.r,start:b.start,end:b.end})}})})(K);(function(a){var E= a.addEvent,D=a.arrayMax,H=a.defined,I=a.each,v=a.extend,n=a.format,m=a.map,z=a.merge,t=a.noop,q=a.pick,e=a.relativeLength,b=a.Series,p=a.seriesTypes,w=a.stableSort;a.distribute=function(a,b){function e(a,b){return a.target-b.target}var k,l=!0,u=a,f=[],p;p=0;for(k=a.length;k--;)p+=a[k].size;if(p>b){w(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(p=k=0;p<=b;)p+=a[k].size,k++;f=a.splice(k-1,a.length)}w(a,e);for(a=m(a,function(a){return{size:a.size,targets:[a.target]}});l;){for(k=a.length;k--;)l= a[k],p=(Math.min.apply(0,l.targets)+Math.max.apply(0,l.targets))/2,l.pos=Math.min(Math.max(0,p-l.size/2),b-l.size);k=a.length;for(l=!1;k--;)0a[k].pos&&(a[k-1].size+=a[k].size,a[k-1].targets=a[k-1].targets.concat(a[k].targets),a[k-1].pos+a[k-1].size>b&&(a[k-1].pos=b-a[k-1].size),a.splice(k,1),l=!0)}k=0;I(a,function(a){var b=0;I(a.targets,function(){u[k].pos=a.pos+b;b+=u[k].size;k++})});u.push.apply(u,f);w(u,e)};b.prototype.drawDataLabels=function(){var a=this,b=a.options, e=b.dataLabels,p=a.points,r,u,f=a.hasRendered||0,m,d,x=q(e.defer,!0),c=a.chart.renderer;if(e.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(e),d=a.plotGroup("dataLabelsGroup","data-labels",x&&!f?"hidden":"visible",e.zIndex||6),x&&(d.attr({opacity:+f}),f||E(a,"afterAnimate",function(){a.visible&&d.show(!0);d[b.animation?"animate":"attr"]({opacity:1},{duration:200})})),u=e,I(p,function(f){var g,k=f.dataLabel,l,h,x,p=f.connector,y=!k,w;r=f.dlOptions||f.options&&f.options.dataLabels; if(g=q(r&&r.enabled,u.enabled)&&null!==f.y)for(h in e=z(u,r),l=f.getLabelConfig(),m=e.format?n(e.format,l):e.formatter.call(l,e),w=e.style,x=e.rotation,w.color=q(e.color,w.color,a.color,"#000000"),"contrast"===w.color&&(w.color=e.inside||0>e.distance||b.stacking?c.getContrast(f.color||a.color):"#000000"),b.cursor&&(w.cursor=b.cursor),l={fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.borderWidth,r:e.borderRadius||0,rotation:x,padding:e.padding,zIndex:1},l)void 0===l[h]&&delete l[h];!k|| g&&H(m)?g&&H(m)&&(k?l.text=m:(k=f.dataLabel=c[x?"text":"label"](m,0,-9999,e.shape,null,null,e.useHTML,null,"data-label"),k.addClass("highcharts-data-label-color-"+f.colorIndex+" "+(e.className||"")+(e.useHTML?"highcharts-tracker":""))),k.attr(l),k.css(w).shadow(e.shadow),k.added||k.add(d),a.alignDataLabel(f,k,e,null,y)):(f.dataLabel=k.destroy(),p&&(f.connector=p.destroy()))})};b.prototype.alignDataLabel=function(a,b,e,p,r){var g=this.chart,f=g.inverted,k=q(a.plotX,-9999),d=q(a.plotY,-9999),l=b.getBBox(), c,y=e.rotation,m=e.align,A=this.visible&&(a.series.forceDL||g.isInsidePlot(k,Math.round(d),f)||p&&g.isInsidePlot(k,f?p.x+1:p.y+p.height-1,f)),n="justify"===q(e.overflow,"justify");A&&(c=e.style.fontSize,c=g.renderer.fontMetrics(c,b).b,p=v({x:f?g.plotWidth-d:k,y:Math.round(f?g.plotHeight-k:d),width:0,height:0},p),v(e,{width:l.width,height:l.height}),y?(n=!1,f=g.renderer.rotCorr(c,y),f={x:p.x+e.x+p.width/2+f.x,y:p.y+e.y+{top:0,middle:.5,bottom:1}[e.verticalAlign]*p.height},b[r?"attr":"animate"](f).attr({align:m}), k=(y+720)%360,k=180k,"left"===m?f.y-=k?l.height:0:"center"===m?(f.x-=l.width/2,f.y-=l.height/2):"right"===m&&(f.x-=l.width,f.y-=k?0:l.height)):(b.align(e,null,p),f=b.alignAttr),n?this.justifyDataLabel(b,e,f,l,p,r):q(e.crop,!0)&&(A=g.isInsidePlot(f.x,f.y)&&g.isInsidePlot(f.x+l.width,f.y+l.height)),e.shape&&!y&&b.attr({anchorX:a.plotX,anchorY:a.plotY}));A||(b.attr({y:-9999}),b.placed=!1)};b.prototype.justifyDataLabel=function(a,b,e,p,r,u){var f=this.chart,g=b.align,d=b.verticalAlign,k,c,l=a.box? 0:a.padding||0;k=e.x+l;0>k&&("right"===g?b.align="left":b.x=-k,c=!0);k=e.x+p.width-l;k>f.plotWidth&&("left"===g?b.align="right":b.x=f.plotWidth-k,c=!0);k=e.y+l;0>k&&("bottom"===d?b.verticalAlign="top":b.y=-k,c=!0);k=e.y+p.height-l;k>f.plotHeight&&("top"===d?b.verticalAlign="bottom":b.y=f.plotHeight-k,c=!0);c&&(a.placed=!u,a.align(b,null,r))};p.pie&&(p.pie.prototype.drawDataLabels=function(){var e=this,l=e.data,g,p=e.chart,r=e.options.dataLabels,u=q(r.connectorPadding,10),f=q(r.connectorWidth,1),n= p.plotWidth,d=p.plotHeight,x,c=r.distance,y=e.center,w=y[2]/2,A=y[1],t=0l-2?t:C,f),h._attr={visibility:M,align:z[6]},h._pos={x:H+r.x+({left:u,right:-u}[z[6]]||0),y:C+r.y-10},z.x=H,z.y=C,null===e.options.size&&(v=h.width,H-vn-u&&(O[1]=Math.max(Math.round(H+v-n+u),O[1])),0>C-E/2?O[0]= Math.max(Math.round(-C+E/2),O[0]):C+E/2>d&&(O[2]=Math.max(Math.round(C+E/2-d),O[2])))}),0===D(O)||this.verifyDataLabelOverflow(O))&&(this.placeDataLabels(),t&&f&&I(this.points,function(a){var b;x=a.connector;if((h=a.dataLabel)&&h._pos&&a.visible){M=h._attr.visibility;if(b=!x)a.connector=x=p.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(e.dataLabelsGroup),x.attr({"stroke-width":f,stroke:r.connectorColor||a.color||"#666666"});x[b?"attr":"animate"]({d:e.connectorPath(a.labelPos)}); x.attr("visibility",M)}else x&&(a.connector=x.destroy())}))},p.pie.prototype.connectorPath=function(a){var b=a.x,e=a.y;return q(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),e,"C",b,e,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",b+("left"===a[6]?5:-5),e,"L",a[2],a[3],"L",a[4],a[5]]},p.pie.prototype.placeDataLabels=function(){I(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))})}, p.pie.prototype.alignDataLabel=t,p.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,g=this.options,k=g.center,r=g.minSize||80,u,f;null!==k[0]?u=Math.max(b[2]-Math.max(a[1],a[3]),r):(u=Math.max(b[2]-a[1]-a[3],r),b[0]+=(a[3]-a[1])/2);null!==k[1]?u=Math.max(Math.min(u,b[2]-Math.max(a[0],a[2])),r):(u=Math.max(Math.min(u,b[2]-a[0]-a[2]),r),b[1]+=(a[0]-a[2])/2);uq(this.translatedThreshold,f.yAxis.len)),x=q(g.inside,!!this.options.stacking);l&&(p=z(l),0>p.y&&(p.height+=p.y,p.y=0),l=p.y+p.height-f.yAxis.len,0a+e||f+db+k||l+pthis.pointCount))},pan:function(a,b){var f=this,d=f.hoverPoints, e;d&&m(d,function(a){a.setState()});m("xy"===b?[1,0]:[1],function(b){b=f[b?"xAxis":"yAxis"][0];var d=b.horiz,c=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=f[d],k=(b.pointRange||0)/2,h=b.getExtremes(),l=b.toValue(g-c,!0)+k,k=b.toValue(g+b.len-c,!0)-k,p=kk&&0>h&&(b.setExtremes(g,l,!1,!1,{trigger:"pan"}),e=!0);f[d]=c});e&&f.redraw(!1);I(f.container,{cursor:"move"})}});z(l.prototype,{select:function(a, b){var f=this,d=f.series,g=d.chart;a=k(a,!f.selected);f.firePointEvent(a?"select":"unselect",{accumulate:b},function(){f.selected=f.options.selected=a;d.options.data[e(f,d.data)]=f.options;f.setState(a&&"select");b||m(g.getSelectedPoints(),function(a){a.selected&&a!==f&&(a.selected=a.options.selected=!1,d.options.data[e(a,d.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a,b){var f=this.series,d=f.chart,e=d.tooltip,c=d.hoverPoint;if(this.series){if(!b){if(c&& c!==this)c.onMouseOut();if(d.hoverSeries!==f)f.onMouseOver();d.hoverPoint=this}!e||e.shared&&!f.noSharedTooltip?e||this.setState("hover"):(this.setState("hover"),e.refresh(this,a));this.firePointEvent("mouseOver")}},onMouseOut:function(){var a=this.series.chart,b=a.hoverPoints;this.firePointEvent("mouseOut");b&&-1!==e(this,b)||(this.setState(),a.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var a=w(this.series.options.point,this.options).events,b;this.events=a;for(b in a)E(this, b,a[b]);this.hasImportedEvents=!0}},setState:function(a,b){var f=Math.floor(this.plotX),d=this.plotY,e=this.series,c=e.options.states[a]||{},g=n[e.type].marker&&e.options.marker,l=g&&!1===g.enabled,p=g&&g.states&&g.states[a]||{},r=!1===p.enabled,h=e.stateMarkerGraphic,u=this.marker||{},m=e.chart,q=e.halo,w,t=g&&e.markerAttribs;a=a||"";if(!(a===this.state&&!b||this.selected&&"select"!==a||!1===c.enabled||a&&(r||l&&!1===p.enabled)||a&&u.states&&u.states[a]&&!1===u.states[a].enabled)){t&&(w=e.markerAttribs(this, a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),this.graphic.attr(e.pointAttribs(this,a)),w&&this.graphic.animate(w,k(m.options.chart.animation,p.animation,g.animation)),h&&h.hide();else{if(a&&p){g=u.symbol||e.symbol;h&&h.currentSymbol!==g&&(h=h.destroy());if(h)h[b?"animate":"attr"]({x:w.x,y:w.y});else g&&(e.stateMarkerGraphic=h=m.renderer.symbol(g,w.x,w.y,w.width,w.height).add(e.markerGroup),h.currentSymbol= g);h&&h.attr(e.pointAttribs(this,a))}h&&(h[a&&m.isInsidePlot(f,d,m.inverted)?"show":"hide"](),h.element.point=this)}(f=c.halo)&&f.size?(q||(e.halo=q=m.renderer.path().add(t?e.markerGroup:e.group)),q[b?"animate":"attr"]({d:this.haloPath(f.size)}),q.attr({"class":"highcharts-halo highcharts-color-"+k(this.colorIndex,e.colorIndex)}),q.point=this,q.attr(z({fill:this.color||e.color,"fill-opacity":f.opacity,zIndex:-1},f.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.point.haloPath(0)});this.state= a}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});z(g.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&t(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,e=b.tooltip,d=b.hoverPoint;b.hoverSeries=null;if(d)d.onMouseOut();this&&a.events.mouseOut&&t(this,"mouseOut");!e||a.stickyTracking|| e.shared&&!this.noSharedTooltip||e.hide();this.setState()},setState:function(a){var b=this,e=b.options,d=b.graph,g=e.states,c=e.lineWidth,e=0;a=a||"";if(b.state!==a&&(m([b.group,b.markerGroup],function(d){d&&(b.state&&d.removeClass("highcharts-series-"+b.state),a&&d.addClass("highcharts-series-"+a))}),b.state=a,!g[a]||!1!==g[a].enabled)&&(a&&(c=g[a].lineWidth||c+(g[a].lineWidthPlus||0)),d&&!d.dashstyle))for(g={"stroke-width":c},d.attr(g);b["zone-graph-"+e];)b["zone-graph-"+e].attr(g),e+=1},setVisible:function(a, b){var f=this,d=f.chart,e=f.legendItem,c,g=d.options.chart.ignoreHiddenSeries,k=f.visible;c=(f.visible=a=f.options.visible=f.userOptions.visible=void 0===a?!k:a)?"show":"hide";m(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(a){if(f[a])f[a][c]()});if(d.hoverSeries===f||(d.hoverPoint&&d.hoverPoint.series)===f)f.onMouseOut();e&&d.legend.colorizeItem(f,a);f.isDirty=!0;f.options.stacking&&m(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});m(f.linkedSeries,function(b){b.setVisible(a, !1)});g&&(d.isDirtyBox=!0);!1!==b&&d.redraw();t(f,c)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=void 0===a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);t(this,a?"select":"unselect")},drawTracker:a.drawTrackerGraph})})(K);(function(a){var E=a.Chart,D=a.each,H=a.inArray,I=a.isObject,v=a.pick,n=a.splat;E.prototype.setResponsive=function(a){var m=this.options.responsive;m&&m.rules&&D(m.rules,function(m){this.matchResponsiveRule(m, a)},this)};E.prototype.matchResponsiveRule=function(m,n){var t=this.respRules,q=m.condition,e;e=q.callback||function(){return this.chartWidth<=v(q.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=v(q.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=v(q.minWidth,0)&&this.chartHeight>=v(q.minHeight,0)};void 0===m._id&&(m._id=a.uniqueKey());e=e.call(this);!t[m._id]&&e?m.chartOptions&&(t[m._id]=this.currentOptions(m.chartOptions),this.update(m.chartOptions,n)):t[m._id]&&!e&&(this.update(t[m._id],n),delete t[m._id])}; E.prototype.currentOptions=function(a){function m(a,e,b,p){var w,k;for(w in a)if(!p&&-1g.length||void 0===m)return a.call(this,p,m,k,l);c=g.length;for(f=0;fk;g[f]5*q||y){if(g[f]>A){for(w=a.call(this, p,g[b],g[f],l);w.length&&w[0]<=A;)w.shift();w.length&&(A=w[w.length-1]);t=t.concat(w)}b=f+1}if(y)break}a=w.info;if(r&&a.unitRange<=e.hour){f=t.length-1;for(b=1;bk?a-1:a;for(h=void 0;r--;)b=f[r],k=Math.abs(h-b),h&&k<.8*J&&(null===x||k<.8*x)? (d[t[r]]&&!d[t[r+1]]?(k=r+1,h=b):k=r,t.splice(k,1)):h=b}return t});z(D.prototype,{beforeSetTickPositions:function(){var a,e=[],n=!1,k,l=this.getExtremes(),g=l.min,q=l.max,r,u=this.isXAxis&&!!this.options.breaks,l=this.options.ordinal,f=this.chart.options.chart.ignoreHiddenSeries;if(l||u){m(this.series,function(b,d){if(!(f&&!1===b.visible||!1===b.takeOrdinalPosition&&!u)&&(e=e.concat(b.processedXData),a=e.length,e.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)e[d]===e[d+1]&&e.splice(d,1)});a=e.length; if(2k||q-e[e.length-1]>k)&&(n=!0)}n?(this.ordinalPositions=e,k=this.ordinal2lin(Math.max(g,e[0]),!0),r=Math.max(this.ordinal2lin(Math.min(q,e[e.length-1]),!0),1),this.ordinalSlope=q=(q-g)/(r-k),this.ordinalOffset=g-k*q):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=l&&n;this.groupIntervalFactor=null},val2lin:function(a,e){var b=this.ordinalPositions;if(b){var k=b.length, l,g;for(l=k;l--;)if(b[l]===a){g=l;break}for(l=k-1;l--;)if(a>b[l]||0===l){a=(a-b[l])/(b[l+1]-b[l]);g=l+a;break}e=e?g:this.ordinalSlope*(g||0)+this.ordinalOffset}else e=a;return e},lin2val:function(a,e){var b=this.ordinalPositions;if(b){var k=this.ordinalSlope,l=this.ordinalOffset,g=b.length-1,p;if(e)0>a?a=b[0]:a>g?a=b[g]:(g=Math.floor(a),p=a-g);else for(;g--;)if(e=k*g+l,a>=e){k=k*(g+1)+l;p=(a-e)/(k-e);break}return void 0!==p&&void 0!==b[g]?b[g]+(p?p*(b[g+1]-b[g]):0):a}return a},getExtendedPositions:function(){var a= this.chart,e=this.series[0].currentDataGrouping,n=this.ordinalIndex,k=e?e.count+e.unitName:"raw",l=this.getExtremes(),g,q;n||(n=this.ordinalIndex={});n[k]||(g={series:[],chart:a,getExtremes:function(){return{min:l.dataMin,max:l.dataMax}},options:{ordinal:!0},val2lin:D.prototype.val2lin},m(this.series,function(b){q={xAxis:g,xData:b.xData,chart:a,destroyGroupedData:t};q.options={dataGrouping:e?{enabled:!0,forced:!0,approximation:"open",units:[[e.unitName,[e.count]]]}:{enabled:!1}};b.processData.apply(q); g.series.push(q)}),this.beforeSetTickPositions.apply(g),n[k]=g.ordinalPositions);return n[k]},getGroupIntervalFactor:function(a,e,m){var b;m=m.processedXData;var l=m.length,g=[];b=this.groupIntervalFactor;if(!b){for(b=0;bg?(q=x,y=b.ordinalPositions? b:x):(q=b.ordinalPositions?b:x,y=x),x=y.ordinalPositions,r>x[x.length-1]&&x.push(r),this.fixedRange=f-n,g=b.toFixedRange(null,null,d.apply(q,[c.apply(q,[n,!0])+g,!0]),d.apply(y,[c.apply(y,[f,!0])+g,!0])),g.min>=Math.min(p.dataMin,n)&&g.max<=Math.max(r,f)&&b.setExtremes(g.min,g.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,I(this.container,{cursor:"move"})):l=!0}else l=!0;l&&a.apply(this,Array.prototype.slice.call(arguments,1))});q.prototype.gappedPath=function(){var a=this.options.gapSize,e=this.points.slice(), m=e.length-1;if(a&&0this.closestPointRange*a&&e.splice(m+1,0,{isNull:!0});return this.getGraphPath(e)}})(K);(function(a){function E(){return Array.prototype.slice.call(arguments,1)}function D(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,H(this.pointArrayMap,["y"]))}var H=a.pick,I=a.wrap,v=a.each,n=a.extend,m=a.isArray,z=a.fireEvent,t=a.Axis,q=a.Series;n(t.prototype,{isInBreak:function(a,b){var e=a.repeat||Infinity,m=a.from,k=a.to-a.from; b=b>=m?(b-m)%e:e-(m-b)%e;return a.inclusive?b<=k:b=a)break;else if(e.isInBreak(g,a)){b-=a-g.from;break}return b},e.lin2val=function(a){var b,g;for(g=0;g=a);g++)b.tof;)d-=m;for(;db.to||l>b.from&&nb.from&&nb.from&&n>b.to&&n=c[0]);u++);for(u;u<=l;u++){for(;(void 0!==c[x+1]&&a[u]>=c[x+ 1]||u===l)&&(m=c[x],this.dataGroupInfo={start:p,length:r[0].length},p=e.apply(this,r),void 0!==p&&(g.push(m),h.push(p),k.push(this.dataGroupInfo)),p=u,r[0]=[],r[1]=[],r[2]=[],r[3]=[],x+=1,u!==l););if(u===l)break;if(q){m=this.cropStart+u;m=d&&d[m]||this.pointClass.prototype.applyOptions.apply({series:this},[f[m]]);var w,v;for(w=0;wthis.chart.plotSizeX/e||b&&g.forced)&&(f=!0);return f?e:0};H.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof H)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1); else n(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(K);(function(a){var E=a.each,D=a.Point,H=a.seriesType,I=a.seriesTypes;H("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'},threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open", "high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,n){n=I.column.prototype.pointAttribs.call(this,a,n);var m=this.options;delete n.fill;!a.options.color&&m.upColor&&a.openn)););D(p,function(a,c){var d;void 0===a.plotY&&(a.x>=f.min&&a.x<=f.max?a.plotY=b.chartHeight-u.bottom-(u.opposite?u.height:0)+u.offset-b.plotTop:a.shapeArgs={});a.plotX+=t;(l=p[c-1])&&l.plotX===a.plotX&&(void 0===l.stackIndex&&(l.stackIndex=0),d=l.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,b=this.chart,m=b.renderer,n,k,l=this.options,g=l.y,q,r,u,f,t,d,x,c=this.yAxis;for(r=a.length;r--;)u=a[r],x=u.plotX>this.xAxis.len, n=u.plotX,f=u.stackIndex,q=u.options.shape||l.shape,k=u.plotY,void 0!==k&&(k=u.plotY+g-(void 0!==f&&f*l.stackDistance)),t=f?void 0:u.plotX,d=f?void 0:u.plotY,f=u.graphic,void 0!==k&&0<=n&&!x?(f||(f=u.graphic=m.label("",null,null,q,null,null,l.useHTML).attr(this.pointAttribs(u)).css(H(l.style,u.style)).attr({align:"flag"===q?"left":"center",width:l.width,height:l.height,"text-align":l.textAlign}).addClass("highcharts-point").add(this.markerGroup),f.shadow(l.shadow)),0m&&(b-=Math.round((k-m)/2),m=k);b=q[a](b,e,m,k);g&&l&&b.push("M",g,e>l?e:e+k,"L",g,l);return b}});v===t&&D(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=q[a]})})(K);(function(a){function E(a,b,e){this.init(a,b,e)}var D=a.addEvent,H=a.Axis,I=a.correctFloat,v=a.defaultOptions, n=a.defined,m=a.destroyObjectProperties,z=a.doc,t=a.each,q=a.fireEvent,e=a.hasTouch,b=a.isTouchDevice,p=a.merge,w=a.pick,k=a.removeEvent,l=a.wrap,g,F={height:b?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!b,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", trackBorderWidth:1};v.scrollbar=p(!0,F,v.scrollbar);a.swapXY=g=function(a,b){var e=a.length,g;if(b)for(b=0;b=l?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===e.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var e=a.chart.pointer.normalize(b),g=a.options.vertical?"chartY":"chartX",d=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][g]||(e=a.cursorToScrollbarPosition(e)[g], g=a[g],g=e-g,a.hasDragged=!0,a.updatePosition(d[0]+g,d[1]+g),a.hasDragged&&q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b);b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter= !0};a.buttonToMinClick=function(b){var e=I(a.to-a.from)*a.options.step;a.updatePosition(I(a.from-e),I(a.to-e));q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var e=(a.to-a.from)*a.options.step;a.updatePosition(a.from+e,a.to+e);q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var e=a.chart.pointer.normalize(b),g=a.to-a.from,d=a.y+a.scrollbarTop,k=a.x+a.scrollbarLeft;a.options.vertical&&e.chartY>d||!a.options.vertical&& e.chartX>k?a.updatePosition(a.from+g,a.to+g):a.updatePosition(a.from-g,a.to-g);q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a,b){1a&&(b=I(b-a),a=0);this.from=a;this.to=b},update:function(a){this.destroy(); this.init(this.chart.renderer,p(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,f=this.scrollbarGroup.element,g=this.mouseDownHandler,d=this.mouseMoveHandler,k=this.mouseUpHandler,a=[[b[a[0]].element,"click",this.buttonToMinClick],[b[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[f,"mousedown",g],[z,"mousemove",d],[z,"mouseup",k]];e&&a.push([f,"touchstart",g],[z,"touchmove",d],[z,"touchend", k]);t(a,function(a){D.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){k.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,m(a.scrollbarButtons))}};l(H.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&& (b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new E(b.chart.renderer,b.options.scrollbar,b.chart),D(b.scrollbar,"changed",function(a){var e=Math.min(w(b.options.min,b.min),b.min,b.dataMin),d=Math.max(w(b.options.max,b.max),b.max,b.dataMax)-e,f;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(f=e+d*this.to,e+=d*this.from):(f=e+d*(1-this.from),e+=d*(1-this.to));b.setExtremes(e,f,!0,!1,a)}))});l(H.prototype,"render",function(a){var b=Math.min(w(this.options.min, this.min),this.min,this.dataMin),e=Math.max(w(this.options.max,this.max),this.max,this.dataMax),g=this.scrollbar,d;a.apply(this,[].slice.call(arguments,1));g&&(this.horiz?g.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):g.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin:0),this.top,this.width,this.height),isNaN(b)||isNaN(e)||!n(this.min)||!n(this.max)?g.setRange(0,0):(d=(this.min-b)/(e-b),b=(this.max- b)/(e-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?g.setRange(d,b):g.setRange(1-b,1-d)))});l(H.prototype,"getOffset",function(a){var b=this.horiz?2:1,e=this.scrollbar;a.apply(this,[].slice.call(arguments,1));e&&(this.chart.axisOffset[b]+=e.size+e.options.margin)});l(H.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=E})(K);(function(a){function E(a){this.init(a)}var D=a.addEvent,H=a.Axis,I= a.Chart,v=a.color,n=a.defaultOptions,m=a.defined,z=a.destroyObjectProperties,t=a.doc,q=a.each,e=a.erase,b=a.error,p=a.extend,w=a.grep,k=a.hasTouch,l=a.isNumber,g=a.isObject,F=a.merge,r=a.pick,u=a.removeEvent,f=a.Scrollbar,B=a.Series,d=a.seriesTypes,x=a.wrap,c=a.swapXY,y=[].concat(a.defaultDataGroupingUnits),L=function(a){var b=w(arguments,l);if(b.length)return Math[a].apply(0,b)};y[4]=["day",[1,2,3,4]];y[5]=["week",[1,2,3]];d=void 0===d.areaspline?"line":"areaspline";p(n,{navigator:{height:40,margin:25, maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:v("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:d,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:y},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis", tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});E.prototype={drawHandle:function(a,b,c,d){this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2-8),translateY:Math.round(this.top+parseInt(a, 10)+.5)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},getHandlePath:function(a){return c(["M",-4.5,.5,"L",3.5,.5,"L",3.5,15.5,"L",-4.5,15.5,"L",-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12],a)},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,f=this.outline.strokeWidth()/2,h=this.outlineHeight,g=this.scrollbarHeight,k=this.size,l=this.left-g,m=this.top;c?(l-=f,c=m+b+f,b=m+a+f,a=["M",l+h,m-g-f,"L",l+h,c,"L",l,c,"L",l,b, "L",l+h,b,"L",l+h,m+k+g].concat(e?["M",l+h,c-f,"L",l+h,b+f]:[])):(a+=l+g-f,b+=l+g-f,m+=f,a=["M",l,m,"L",a,m,"L",a,m+h,"L",b,m+h,"L",b,m,"L",l+k+2*g,m].concat(e?["M",a-f,m,"L",b+f,m]:[]));this.outline[d]({d:a})},drawMasks:function(a,b,c,d){var e=this.left,f=this.top,h=this.height,g,k,l,m;c?(l=[e,e,e],m=[f,f+a,f+b],k=[h,h,h],g=[a,b-a,this.size-b]):(l=[e,e+a,e+b],m=[f,f,f],k=[a,b-a,this.size-b],g=[h,h,h]);q(this.shades,function(a,b){a[d]({x:l[b],y:m[b],width:k[b],height:g[b]})})},renderElements:function(){var a= this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,e=d.inverted,f=d.renderer,g;a.navigatorGroup=g=f.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();var k={cursor:e?"ns-resize":"ew-resize"};q([!c,c,!c],function(c,d){a.shades[d]=f.rect().addClass("highcharts-navigator-mask"+(1===d?"-inside":"-outside")).attr({fill:c?b.maskFill:"transparent"}).css(1===d&&k).add(g)});a.outline=f.path().addClass("highcharts-navigator-outline").attr({"stroke-width":b.outlineWidth,stroke:b.outlineColor}).add(g); q([0,1],function(c){a.handles[c]=f.path(a.getHandlePath(e)).attr({zIndex:7-c}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][c]).add(g);var d=b.handles;a.handles[c].attr({fill:d.backgroundColor,stroke:d.borderColor,"stroke-width":1}).css(k)})},update:function(a){this.destroy();F(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,f,h,g=this.scrollbarHeight,k,n=this.xAxis;f=this.navigatorEnabled;var p, q=this.rendered;h=e.inverted;var A=e.xAxis[0].minRange;if(!this.hasDragged||m(c)){if(!l(a)||!l(b))if(q)c=0,d=n.width;else return;this.left=r(n.left,e.plotLeft+g);h?(this.size=p=k=r(n.len,e.plotHeight-2*g),e=g):(this.size=p=k=r(n.len,e.plotWidth-2*g),e=k+2*g);c=r(c,n.toPixels(a,!0));d=r(d,n.toPixels(b,!0));l(c)&&Infinity!==Math.abs(c)||(c=0,d=e);a=n.toValue(c,!0);b=n.toValue(d,!0);if(Math.abs(b-a)=g&&(a=g-k,m=this.getUnionExtremes().dataMax),a!==e&&(this.fixedWidth=k,b=d.toFixedRange(a,a+k,null,m),c.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a);a=this.chart;var c=a.xAxis[0],d=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme= d?c.min:c.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,d=b.left,e=b.navigatorSize,f=b.range,g=b.dragOffset,k=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,k&&(d=b.top,c=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,c-d,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-d)):b.grabbedCenter&&(b.hasDragged=!0,c< g?c=g:c>e+g-f&&(c=e+g-f),b.render(0,0,c-g,c-g+f)),b.hasDragged&&b.scrollbar&&b.scrollbar.options.liveRedraw&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))},onMouseUp:function(a){var b=this.chart,c=this.xAxis,d,e,f=a.DOMEvent||a;if(this.hasDragged||"scrollbar"===a.trigger)this.zoomedMin===this.otherHandlePos?d=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(e=this.fixedExtreme),this.zoomedMax===this.navigatorSize&&(e=this.getUnionExtremes().dataMax),c=c.toFixedRange(this.zoomedMin, this.zoomedMax,d,e),m(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:f});"mousemove"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(q(this.eventsToUnbind,function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()}, removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&!1!==this.navigatorOptions.adaptToUpdatedData&&(q(a,function(a){u(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&u(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,c=b.navigator,d=c.enabled,e=b.scrollbar,g=e.enabled,b=d?c.height:0,k=g?e.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=b;this.scrollbarHeight=k;this.scrollbarEnabled= g;this.navigatorEnabled=d;this.navigatorOptions=c;this.scrollbarOptions=e;this.outlineHeight=b+k;var l=this,d=l.baseSeries,e=a.xAxis.length,g=a.yAxis.length,m=d&&d[0]&&d[0].xAxis||a.xAxis[0];a.extraMargin={type:c.opposite?"plotTop":"marginBottom",value:l.outlineHeight+c.margin};a.inverted&&(a.extraMargin.type=c.opposite?"marginRight":"plotLeft");a.isDirtyBox=!0;l.navigatorEnabled?(l.xAxis=new H(a,F({breaks:m.options.breaks,ordinal:m.options.ordinal},c.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", isX:!0,type:"datetime",index:e,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[k,0,-k,0],width:b}:{offsets:[0,-k,0,k],height:b})),l.yAxis=new H(a,F(c.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:g,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),d||c.series.data?l.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.size);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){D(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&&a.baseSeries[0]&& a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(e(this.chart.xAxis,this.xAxis),e(this.chart.axes,this.xAxis));this.yAxis&&(e(this.chart.yAxis,this.yAxis),e(this.chart.axes,this.yAxis));q(this.series||[],function(a){a.destroy&&a.destroy()});q("series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "),function(a){this[a]&&this[a].destroy&&this[a].destroy(); this[a]=null},this);q([this.handles],function(a){z(a)},this)}};a.Navigator=E;x(H.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,h=e.navigator,e=e.rangeSelector,g;this.isXAxis&&(h&&h.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?g=!1:"xy"===f&&(d=this.previousZoom,m(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!==g?g:a.call(this,b,c)});x(I.prototype,"init",function(a,b,c){D(this,"beforeRender", function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new E(this)});a.call(this,b,c)});x(I.prototype,"setChartSize",function(a){var b=this.legend,c=this.navigator,d,e,f,g;a.apply(this,[].slice.call(arguments,1));c&&(e=b.options,f=c.xAxis,g=c.yAxis,d=c.scrollbarHeight,this.inverted?(c.left=c.navigatorOptions.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,c.top=c.navigatorOptions.top||this.chartHeight- c.height-d-this.spacing[2]-("bottom"===e.verticalAlign&&e.enabled&&!e.floating?b.legendHeight+r(e.margin,10):0)),f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize()))});x(B.prototype,"addPoint",function(a,c,d,e,f){var h=this.options.turboThreshold;h&&this.xData.length>h&&g(c,!0)&&this.chart.navigator&&b(20,!0);a.call(this,c,d,e,f)});x(I.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.navigator&&this.navigator.setBaseSeries(); r(c,!0)&&this.redraw();return a});x(B.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.navigator&&this.chart.navigator.setBaseSeries();r(c,!0)&&this.chart.redraw()});I.prototype.callbacks.push(function(a){var b=a.navigator;b&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(K);(function(a){function E(a){this.init(a)}var D=a.addEvent,H=a.Axis,I=a.Chart,v=a.css,n=a.createElement,m=a.dateFormat,z=a.defaultOptions,t=z.global.useUTC,q=a.defined,e=a.destroyObjectProperties,b=a.discardElement, p=a.each,w=a.extend,k=a.fireEvent,l=a.Date,g=a.isNumber,F=a.merge,r=a.pick,u=a.pInt,f=a.splat,B=a.wrap;w(z,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"},labelStyle:{color:"#666666"}}});z.lang=F(z.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});E.prototype={clickButton:function(a,b){var c=this,d=c.chart,e=c.buttonOptions[a],k=d.xAxis[0],l=d.scroller&&d.scroller.getUnionExtremes()||k||{},h= l.dataMin,m=l.dataMax,n,q=k&&Math.round(Math.min(k.max,r(m,k.max))),x=e.type,u,l=e._range,v,w,z,B=e.dataGrouping;if(null!==h&&null!==m){d.fixedRange=l;B&&(this.forcedDataGrouping=!0,H.prototype.setDataGrouping.call(k||{chart:this.chart},B,!1));if("month"===x||"year"===x)k?(x={range:e,max:q,dataMin:h,dataMax:m},n=k.minFromRange.call(x),g(x.newMax)&&(q=x.newMax)):l=e;else if(l)n=Math.max(q-l,h),q=Math.min(n+l,m);else if("ytd"===x)if(k)void 0===m&&(h=Number.MAX_VALUE,m=Number.MIN_VALUE,p(d.series,function(a){a= a.xData;h=Math.min(a[0],h);m=Math.max(a[a.length-1],m)}),b=!1),q=c.getYTDExtremes(m,h,t),n=v=q.min,q=q.max;else{D(d,"beforeRender",function(){c.clickButton(a)});return}else"all"===x&&k&&(n=h,q=m);c.setSelected(a);k?k.setExtremes(n,q,r(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:e}):(u=f(d.options.xAxis)[0],z=u.range,u.range=l,w=u.min,u.min=v,D(d,"load",function(){u.range=z;u.min=w}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1, text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons||[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&k(a,"blur");c&&c.blur&&k(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=D(a.container,"mousedown",f);this.unResize=D(a,"resize", f);p(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);D(a,"load",function(){D(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&&b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,k=a.dataMax,a=this.getYTDExtremes(k,f,t),l=a.min,h=a.max, m=this.selected,n=g(m),q=this.options.allButtonsEnabled,r=this.buttons;p(this.buttonOptions,function(a,d){var g=a._range,p=a.type,t=a.count||1;a=r[d];var y=0;d=d===m;var u=g>k-f,x=g=864E5*{month:28,year:365}[p]*t&&c<=864E5*{month:31,year:366}[p]*t?g=!0:"ytd"===p?(g=h-l===c,v=!d):"all"===p&&(g=b.max-b.min>=k-f,w=!d&&n&&g);p=!q&&(u||x||w||e);g=d&&g||g&&!n&&!v;p?y=3:g&&(n=!0,y=2);a.state!==y&&a.setState(y)})},computeButtonRange:function(a){var b= a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this[a+"Input"];q(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=m(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:m(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"]; v(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){v(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)},drawInput:function(a){function b(){var a=m.value,b=(k.inputDateParser||Date.parse)(a),e=d.xAxis[0],f=d.scroller&&d.scroller.xAxis?d.scroller.xAxis:e,h=f.dataMin,f=f.dataMax;b!==m.previousValue&&(m.previousValue=b,g(b)||(b=a.split("-"),b=Date.UTC(u(b[0]),u(b[1])- 1,u(b[2]))),g(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),l?b>c.maxInput.HCTime?b=void 0:bf&&(b=f),void 0!==b&&e.setExtremes(l?b:e.min,l?e.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))}var c=this,d=c.chart,e=d.renderer.style||{},f=d.renderer,k=d.options.rangeSelector,h=c.div,l="min"===a,m,p,q=this.inputGroup;this[a+"Label"]=p=f.label(z.lang[l?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(q); q.offset+=p.width+5;this[a+"DateBox"]=f=f.label("",q.offset).addClass("highcharts-range-input").attr({padding:2,width:k.inputBoxWidth||90,height:k.inputBoxHeight||17,stroke:k.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click",function(){c.showInput(a);c[a+"Input"].focus()}).add(q);q.offset+=f.width+(l?10:0);this[a+"Input"]=m=n("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:d.plotTop+"px"},h);p.css(F(e,k.labelStyle));f.css(F({color:"#333333"}, e,k.inputStyle));v(m,w({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:e.fontSize,fontFamily:e.fontFamily,left:"-9em"},k.inputStyle));m.onfocus=function(){c.showInput(a)};m.onblur=function(){c.hideInput(a)};m.onchange=b;m.onkeypress=function(a){13===a.keyCode&&b()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=r((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a, b,c){var d=new l(a),e=d[l.hcGetFullYear]();c=c?l.UTC(e,0,1):+new l(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,g=d.options,h=g.exporting&&!1!==g.exporting.enabled&&g.navigation&&g.navigation.buttonOptions,k=g.rangeSelector,l=c.buttons,g=z.lang,m=c.div,m=c.inputGroup,t=k.buttonTheme,u=k.buttonPosition||{},x=k.inputEnabled,v=t&&t.states,B=d.plotLeft,D,E=this.getPosition(),F=c.group,H=c.rendered;!1!== k.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(g.rangeSelectorZoom,r(u.x,B),15).css(k.labelStyle).add(F),D=r(u.x,B)+c.zoomText.getBBox().width+5,p(c.buttonOptions,function(a,b){l[b]=e.button(a.text,D,0,function(){c.clickButton(b);c.isActive=!0},t,v&&v.hover,v&&v.select,v&&v.disabled).attr({"text-align":"center"}).add(F);D+=l[b].width+r(k.buttonSpacing,5)}),!1!==x&&(c.div=m=n("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(m,f),c.inputGroup= m=e.g("input-group").add(),m.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:E.buttonTop}),!1!==x&&(m.align(w({y:E.inputTop,width:m.offset,x:h&&E.inputTop<(h.y||0)+h.height-d.spacing[0]?-40:0},k.inputPosition),!0,d.spacingBox),q(x)||(d=F.getBBox(),m[m.alignAttr.translateXc&&(e?a=b-d:b=a+d);g(a)||(a=b=void 0);return{min:a,max:b}};H.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,k,l=function(a,c){var d=new Date(a);d["set"+b](d["get"+b]()+c);return d.getTime()-a};g(a)?(c=e-a,k=a):(c=e+l(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=r(this.dataMin,Number.MIN_VALUE);g(c)||(c=f);c<=f&&(c=f,void 0===k&&(k=l(c,a.count)),this.newMax=Math.min(c+k,this.dataMax));g(e)||(c=void 0);return c}; B(I.prototype,"init",function(a,b,c){D(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new E(this))});a.call(this,b,c)});I.prototype.callbacks.push(function(a){function b(){c=a.xAxis[0].getExtremes();g(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,e,f;d&&(f=D(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),e=D(a,"redraw",b),b());D(a,"destroy",function(){d&&(e(),f())})});a.RangeSelector=E})(K);(function(a){var E=a.arrayMax,D=a.arrayMin,H=a.Axis, I=a.Chart,v=a.defined,n=a.each,m=a.extend,z=a.format,t=a.inArray,q=a.isNumber,e=a.isString,b=a.map,p=a.merge,w=a.pick,k=a.Point,l=a.Renderer,g=a.Series,F=a.splat,r=a.SVGRenderer,u=a.VMLRenderer,f=a.wrap,B=g.prototype,d=B.init,x=B.processData,c=k.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var g=e(c)||c.nodeName,h=arguments[g?1:0],k=h.series,l=a.getOptions(),m,n=w(h.navigator&&h.navigator.enabled,l.navigator.enabled,!0),q=n?{startOnTick:!1,endOnTick:!1}:null,r={marker:{enabled:!1, radius:2}},t={shadow:!1,borderWidth:0};h.xAxis=b(F(h.xAxis||{}),function(a){return p({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},l.xAxis,a,{type:"datetime",categories:null},q)});h.yAxis=b(F(h.yAxis||{}),function(a){m=w(a.opposite,!0);return p({labels:{y:-2},opposite:m,showLastLabel:!1,title:{text:null}},l.yAxis,a)});h.series=null;h=p({chart:{panning:!0,pinchType:"x"},navigator:{enabled:n},scrollbar:{enabled:w(l.scrollbar.enabled,!0)},rangeSelector:{enabled:w(l.rangeSelector.enabled, !0)},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:r,spline:r,area:r,areaspline:r,arearange:r,areasplinerange:r,column:t,columnrange:t,candlestick:t,ohlc:t}},h,{isStock:!0});h.series=k;return g?new I(c,h,f):new I(h,d)};f(H.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&& (d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});f(H.prototype,"getPlotLinePath",function(a,c,d,f,g,k){var h=this,l=this.isLinked&&!this.series?this.linkedParent.series:this.series,m=h.chart,p=m.renderer,r=h.left,u=h.top,y,x,z,A,B=[],D=[],E,G;if("colorAxis"===h.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var c="xAxis"===a?"yAxis":"xAxis";a=h.options[c];return q(a)?[m[c][a]]:e(a)?[m.get(a)]:b(l,function(a){return a[c]})}(h.coll); n(h.isXAxis?m.yAxis:m.xAxis,function(a){if(v(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=v(a.options[b])?m[b][a.options[b]]:m[b][0];h===b&&D.push(a)}});E=D.length?[]:[h.isXAxis?m.yAxis[0]:m.xAxis[0]];n(D,function(a){-1===t(a,E)&&E.push(a)});G=w(k,h.translate(c,null,null,f));q(G)&&(h.horiz?n(E,function(a){var b;x=a.pos;A=x+a.len;y=z=Math.round(G+h.transB);if(yr+h.width)g?y=z=Math.min(Math.max(r,y),r+h.width):b=!0;b||B.push("M",y,x,"L",z,A)}):n(E, function(a){var b;y=a.pos;z=y+a.len;x=A=Math.round(u+h.height-G);if(xu+h.height)g?x=A=Math.min(Math.max(u,x),h.top+h.height):b=!0;b||B.push("M",y,x,"L",z,A)}));return 0=e&&(u=-(l.translateX+b.width-e));l.attr({x:n+u,y:k,anchorX:g?n:this.opposite? 0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});B.init=function(){d.apply(this,arguments);this.setCompare(this.options.compare)};B.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b/d*100-(100===this.options.compareBase?0:100),c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};B.processData=function(){var a,b=-1,c,d,e,f;x.apply(this, arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a=this.xAxis.min&&0!==f){this.compareValue=f;break}};f(B,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=D(b),this.dataMax= E(b))});H.prototype.setCompare=function(a,b){this.isXAxis||(n(this.series,function(b){b.setCompare(a)}),w(b,!0)&&this.chart.redraw())};k.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0