(function(){function az(o,n){var r;o||(o={});for(r in n){o[r]=n[r]}return o}function at(){var o,n=arguments.length,s={},r=function(u,t){var w,v;typeof u!=="object"&&(u={});for(v in t){t.hasOwnProperty(v)&&(w=t[v],u[v]=w&&typeof w==="object"&&Object.prototype.toString.call(w)!=="[object Array]"&&typeof w.nodeType!=="number"?r(u[v]||{},w):t[v])}return u};for(o=0;o3?v.length%3:0;return t+(r?v.substr(0,r)+u:"")+v.substr(r).replace(/(\d{3})(?=\d)/g,"$1"+u)+(s?n+a5(o-v).toFixed(s).slice(2):"")}function bA(o,n){return Array((n||2)+1-String(o).length).join(0)+o}function bB(o,n,s){var r=o[n];o[n]=function(){var t=Array.prototype.slice.call(arguments);t.unshift(r);return s.apply(this,t)}}function be(y,x){for(var w="{",v=!1,u,t,s,r,o,n=[];(w=y.indexOf(w))!==-1;){u=y.slice(0,w);if(v){t=u.split(":");s=t.shift().split(".");o=s.length;u=x;for(r=0;r-1?r.thousandsSep:"")):u=H(t,u)}}n.push(u);y=y.slice(w+1);w=(v=!v)?"}":"{"}n.push(y);return n.join("")}function bh(n){return a0.pow(10,a3(a0.log(n)/a0.LN10))}function aI(o,n,t,s){var r,t=aB(t,1);r=o/t;n||(n=[1,2,2.5,5,10],s&&s.allowDecimals===!1&&(t===1?n=[1,2,5,10]:t<=0.1&&(n=[1/t])));for(s=0;s=bk[ag]&&(u.setMilliseconds(0),u.setSeconds(t>=bk[d]?0:s*a3(u.getSeconds()/s)));if(t>=bk[d]){u[g](t>=bk[an]?0:s*a3(u[j]()/s))}if(t>=bk[an]){u[bT](t>=bk[aN]?0:s*a3(u[bV]()/s))}if(t>=bk[aN]){u[bG](t>=bk[B]?1:s*a3(u[c]()/s))}t>=bk[B]&&(u[bD](t>=bk[aH]?0:s*a3(u[bm]()/s)),v=u[bv]());t>=bk[aH]&&(v-=v%s,u[bi](v));if(t===bk[bO]){u[bG](u[c]()-u[bo]()+aB(z,1))}D=1;v=u[bv]();for(var z=u.getTime(),r=u[bm](),o=u[c](),n=w?0:(86400000+u.getTimezoneOffset()*60000)%86400000;zr&&(r=o[n])}return r}function aj(o,n){for(var r in o){o[r]&&o[r]!==n&&o[r].destroy&&o[r].destroy(),delete o[r]}}function bN(n){aA||(aA=aX(af));n&&aA.appendChild(n);aA.innerHTML=""}function h(o,n){var r="Highcharts error #"+o+": www.highcharts.com/errors/"+o;if(n){throw r}else{a4.console&&console.log(r)}}function aG(n){return parseFloat(n.toPrecision(14))}function m(o,n){i=aB(o,n.animation)}function l(){var o=a6.global.useUTC,n=o?"getUTC":"get",r=o?"setUTC":"set";a2=o?Date.UTC:function(t,s,x,w,v,u){return(new Date(t,s,aB(x,1),aB(w,0),aB(v,0),aB(u,0))).getTime()};j=n+"Minutes";bV=n+"Hours";bo=n+"Day";c=n+"Date";bm=n+"Month";bv=n+"FullYear";g=r+"Minutes";bT=r+"Hours";bG=r+"Date";bD=r+"Month";bi=r+"FullYear"}function A(){}function bY(o,n,s,r){this.axis=o;this.pos=n;this.type=s||"";this.isNew=!0;!s&&!r&&this.addLabel()}function ak(o,n){this.axis=o;if(n){this.options=n,this.id=n.id}}function bX(o,n,v,u,t,s){var r=o.chart.inverted;this.axis=o;this.isNegative=v;this.options=n;this.x=u;this.total=null;this.points={};this.stack=t;this.percent=s==="percent";this.alignOptions={align:n.align||(r?v?"left":"right":"center"),verticalAlign:n.verticalAlign||(r?"middle":v?"bottom":"top"),y:aB(n.y,r?4:v?14:-6),x:aB(n.x,r?v?-6:6:0)};this.textAlign=n.textAlign||(r?v?"right":"left":"center")}function L(){this.init.apply(this,arguments)}function p(){this.init.apply(this,arguments)}function a(o,n){this.init(o,n)}function e(o,n){this.init(o,n)}function bK(){this.init.apply(this,arguments)}var au,aq=document,a4=window,a0=Math,ax=a0.round,a3=a0.floor,b=a0.ceil,ay=a0.max,bd=a0.min,a5=a0.abs,aW=a0.cos,aD=a0.sin,bM=a0.PI,bu=bM*2/360,aK=navigator.userAgent,bH=a4.opera,bq=/msie/i.test(aK)&&!bH,bP=aq.documentMode===8,bx=/AppleWebKit/.test(aK),a8=/Firefox/.test(aK),bp=/(Mobile|Android|Windows Phone)/.test(aK),bt="http://www.w3.org/2000/svg",aR=!!aq.createElementNS&&!!aq.createElementNS(bt,"svg").createSVGRect,bs=a8&&parseInt(aK.split("Firefox/")[1],10)<4,bF=!aR&&!bq&&!!aq.createElement("canvas").getContext,aT,aE=aq.documentElement.ontouchstart!==au,aO={},br=0,aA,a6,H,i,bQ,bk,ah=function(){},bU=[],af="div",aZ="none",al="rgba(192,192,192,"+(aR?0.0001:0.002)+")",aF="millisecond",ag="second",d="minute",an="hour",aN="day",bO="week",B="month",aH="year",q="stroke-width",a2,j,bV,bo,c,bm,bv,g,bT,bG,bD,bi,aV={};a4.Highcharts=a4.Highcharts?h(16,!0):{};H=function(C,z,y){if(!aw(z)||isNaN(z)){return"Invalid date"}var C=aB(C,"%Y-%m-%d %H:%M:%S"),x=new Date(z),w,v=x[bV](),u=x[bo](),t=x[c](),s=x[bm](),r=x[bv](),o=a6.lang,n=o.weekdays,x=az({a:n[u].substr(0,3),A:n[u],d:bA(t),e:t,b:o.shortMonths[s],B:o.months[s],m:bA(s+1),y:r.toString().substr(2,2),Y:r,H:bA(v),I:bA(v%12||12),l:v%12||12,M:bA(x[j]()),p:v<12?"AM":"PM",P:v<12?"am":"pm",S:bA(x.getSeconds()),L:bA(ax(z%1000),3)},Highcharts.dateFormats);for(w in x){for(;C.indexOf("%"+w)!==-1;){C=C.replace("%"+w,typeof x[w]==="function"?x[w](z):x[w])}}return y?C.substr(0,1).toUpperCase()+C.substr(1):C};aJ.prototype={wrapColor:function(n){if(this.color>=n){this.color=0}},wrapSymbol:function(n){if(this.symbol>=n){this.symbol=0}}};bk=function(){for(var o=0,n=arguments,s=n.length,r={};o-1,t=u?7:3,s,x=x.split(" "),w=[].concat(w),r,o,n=function(z){for(s=z.length;s--;){z[s]==="M"&&z.splice(s+1,0,z[s+1],z[s+2],z[s+1],z[s+2])}};u&&(n(x),n(w));y.isArea&&(r=x.splice(x.length-6,6),o=w.splice(w.length-6,6));if(v<=w.length/t&&x.length===w.length){for(;v--;){w=[].concat(w).splice(0,t).concat(w)}}y.shift=0;if(x.length){for(y=w.length;x.length{point.key}
',pointFormat:'{series.name}: {point.y}
',shadow:!0,snap:bp?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var aS=a6.plotOptions,aU=aS.line;l();var bW=function(o){var n=[],s,r;(function(t){t&&t.stops?r=bJ(t.stops,function(u){return bW(u[1])}):(s=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(t))?n=[bn(s[1]),bn(s[2]),bn(s[3]),parseFloat(s[4],10)]:(s=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(t))?n=[bn(s[1],16),bn(s[2],16),bn(s[3],16),1]:(s=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(t))&&(n=[bn(s[1]),bn(s[2]),bn(s[3]),1])})(o);return{get:function(u){var t;r?(t=at(o),t.stops=[].concat(t.stops),aC(r,function(w,v){t.stops[v]=[t.stops[v][0],w.get(u)]})):t=n&&!isNaN(n[0])?u==="rgb"?"rgb("+n[0]+","+n[1]+","+n[2]+")":u==="a"?n[3]:"rgba("+n.join(",")+")":o;return t},brighten:function(t){if(r){aC(r,function(v){v.brighten(t)})}else{if(bI(t)&&t!==0){var u;for(u=0;u<3;u++){n[u]+=bn(t*255),n[u]<0&&(n[u]=0),n[u]>255&&(n[u]=255)}}}return this},rgba:n,setOpacity:function(t){n[3]=t;return this}}};A.prototype={init:function(o,n){this.element=n==="span"?aX(n):aq.createElementNS(bt,n);this.renderer=o;this.attrSetters={}},opacity:1,animate:function(o,n,r){n=aB(n,i,!0);ar(this);if(n){n=at(n);if(r){n.complete=r}by(this,o,n)}else{this.attr(o),r&&r()}},attr:function(G,F){var D,C,z,y,x=this.element,w=x.nodeName.toLowerCase(),v=this.renderer,u,t=this.attrSetters,s=this.shadows,r,o,n=this;f(G)&&aw(F)&&(D=G,G={},G[D]=F);if(f(G)){D=G,w==="circle"?D={x:"cx",y:"cy"}[D]||D:D==="strokeWidth"&&(D="stroke-width"),n=av(x,D)||this[D]||0,D!=="d"&&D!=="visibility"&&D!=="fill"&&(n=parseFloat(n))}else{for(D in G){if(u=!1,C=G[D],z=t[D]&&t[D].call(this,C,D),z!==!1){z!==au&&(C=z);if(D==="d"){C&&C.join&&(C=C.join(" ")),/(NaN| {2}|^$)/.test(C)&&(C="M 0 0")}else{if(D==="x"&&w==="text"){for(z=0;z1100)&&n.call(r,t)}):r["on"+o]=n;return this},setRadialReference:function(n){this.element.radialReference=n;return this},translate:function(o,n){return this.attr({translateX:o,translateY:n})},invert:function(){this.inverted=!0;this.updateTransform();return this},htmlCss:function(o){var n=this.element;if(n=o&&n.tagName==="SPAN"&&o.width){delete o.width,this.textWidth=n,this.updateTransform()}this.styles=az(this.styles,o);a7(this.element,o);return this},htmlGetBBox:function(){var o=this.element,n=this.bBox;if(!n){if(o.nodeName==="text"){o.style.position="absolute"}n=this.bBox={x:o.offsetLeft,y:o.offsetTop,width:o.offsetWidth,height:o.offsetHeight}}return n},htmlUpdateTransform:function(){if(this.added){var M=this.renderer,K=this.element,J=this.translateX||0,I=this.translateY||0,G=this.x||0,F=this.y||0,D=this.textAlign||"left",C={left:0,center:0.5,right:1}[D],z=D&&D!=="left",y=this.shadows;a7(K,{marginLeft:J,marginTop:I});y&&aC(y,function(N){a7(N,{marginLeft:J+1,marginTop:I+1})});this.inverted&&aC(K.childNodes,function(N){M.invertChild(N,K)});if(K.tagName==="SPAN"){var x,w,y=this.rotation,v;x=0;var u=1,s=0,o;v=bn(this.textWidth);var t=this.xCorr||0,r=this.yCorr||0,n=[y,D,K.innerHTML,this.textWidth].join(",");if(n!==this.cTT){aw(y)&&(x=y*bu,u=aW(x),s=aD(x),this.setSpanRotation(y,s,u));x=aB(this.elemWidth,K.offsetWidth);w=aB(this.elemHeight,K.offsetHeight);if(x>v&&/[ \-]/.test(K.textContent||K.innerText)){a7(K,{width:v+"px",display:"block",whiteSpace:"normal"}),x=v}v=M.fontMetrics(K.style.fontSize).b;t=u<0&&-x;r=s<0&&-w;o=u*s<0;t+=s*v*(o?1-C:C);r-=u*v*(y?o?C:1-C:1);z&&(t-=x*C*(u<0?-1:1),y&&(r-=w*C*(s<0?-1:1)),a7(K,{textAlign:D}));this.xCorr=t;this.yCorr=r}a7(K,{left:G+t+"px",top:F+r+"px"});if(bx){w=K.offsetHeight}this.cTT=n}}else{this.alignOnAdd=!0}},setSpanRotation:function(o){var n={};n[bq?"-ms-transform":bx?"-webkit-transform":a8?"MozTransform":bH?"-o-transform":""]=n.transform="rotate("+o+"deg)";a7(this.element,n)},updateTransform:function(){var o=this.translateX||0,n=this.translateY||0,u=this.scaleX,t=this.scaleY,s=this.inverted,r=this.rotation;s&&(o+=this.attr("width"),n+=this.attr("height"));o=["translate("+o+","+n+")"];s?o.push("rotate(90) scale(-1,1)"):r&&o.push("rotate("+r+" "+(this.x||0)+" "+(this.y||0)+")");(aw(u)||aw(t))&&o.push("scale("+aB(u,1)+" "+aB(t,1)+")");o.length&&av(this.element,"transform",o.join(" "))},toFront:function(){var n=this.element;n.parentNode.appendChild(n);return this},align:function(o,n,w){var v,u,t,s,r={};u=this.renderer;t=u.alignedObjects;if(o){if(this.alignOptions=o,this.alignByTranslate=n,!w||f(w)){this.alignTo=v=w||"renderer",bz(t,this),t.push(this),w=null}}else{o=this.alignOptions,n=this.alignByTranslate,v=this.alignTo}w=aB(w,u[v],u);v=o.align;u=o.verticalAlign;t=(w.x||0)+(o.x||0);s=(w.y||0)+(o.y||0);if(v==="right"||v==="center"){t+=(w.width-(o.width||0))/{right:1,center:2}[v]}r[n?"translateX":"x"]=ax(t);if(u==="bottom"||u==="middle"){s+=(w.height-(o.height||0))/({bottom:1,middle:2}[u]||1)}r[n?"translateY":"y"]=ax(s);this[this.placed?"animate":"attr"](r);this.placed=!0;this.alignAttr=r;return this},getBBox:function(){var o=this.bBox,n=this.renderer,v,u=this.rotation;v=this.element;var t=this.styles,s=u*bu;if(!o){if(v.namespaceURI===bt||n.forExport){try{o=v.getBBox?az({},v.getBBox()):{width:v.offsetWidth,height:v.offsetHeight}}catch(r){}if(!o||o.width<0){o={width:0,height:0}}}else{o=this.htmlGetBBox()}if(n.isSVG){n=o.width;v=o.height;if(bq&&t&&t.fontSize==="11px"&&v.toPrecision(3)==="22.7"){o.height=v=14}if(u){o.width=a5(v*aD(s))+a5(n*aW(s)),o.height=a5(v*aW(s))+a5(n*aD(s))}}this.bBox=o}return o},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(o){var n=this;n.animate({opacity:0},{duration:o||150,complete:function(){n.hide()}})},add:function(o){var n=this.renderer,w=o||n,v=w.element||n.box,u=v.childNodes,t=this.element,s=av(t,"zIndex"),r;if(o){this.parentGroup=o}this.parentInverted=o&&o.inverted;this.textStr!==void 0&&n.buildText(this);if(s){w.handleZ=!0,s=bn(s)}if(w.handleZ){for(w=0;ws||!aw(s)&&aw(n))){v.insertBefore(t,o);r=!0;break}}}r||v.appendChild(t);this.added=!0;ao(this,"add");return this},safeRemoveChild:function(o){var n=o.parentNode;n&&n.removeChild(o)},destroy:function(){var o=this,n=o.element||{},u=o.shadows,t=o.renderer.isSVG&&n.nodeName==="SPAN"&&n.parentNode,s,r;n.onclick=n.onmouseout=n.onmouseover=n.onmousemove=n.point=null;ar(o);if(o.clipPath){o.clipPath=o.clipPath.destroy()}if(o.stops){for(r=0;r/g,'').replace(/<(i|em)>/g,'').replace(//g,"").split(//g),w=C.childNodes,v=/style="([^"]+)"/,u=/href="(http[^"]+)"/,t=av(C,"x"),s=D.styles,r=s&&s.width&&bn(s.width),o=s&&s.lineHeight,n=w.length;n--;){C.removeChild(w[n])}r&&!D.added&&this.box.appendChild(C);x[x.length-1]===""&&x.pop();aC(x,function(I,G){var F,J=0,I=I.replace(//g,"|||");F=I.split("|||");aC(F,function(O){if(O!==""||F.length===1){var M={},N=aq.createElementNS(bt,"tspan"),T;v.test(O)&&(T=O.match(v)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),av(N,"style",T));u.test(O)&&!y&&(av(N,"onclick",'location.href="'+O.match(u)[1]+'"'),a7(N,{cursor:"pointer"}));O=(O.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">");if(O!==" "&&(N.appendChild(aq.createTextNode(O)),J?M.dx=0:M.x=t,av(N,M),!J&&G&&(!aR&&y&&a7(N,{display:"block"}),av(N,"dy",o||z.fontMetrics(/px$/.test(N.style.fontSize)?N.style.fontSize:s.fontSize).h,bx&&N.offsetHeight)),C.appendChild(N),J++,r)){for(var O=O.replace(/([^\^])-/g,"$1- ").split(" "),Q,R,M=D._clipHeight,S=[],P=bn(o||16),K=1;O.length||S.length;){delete D.bBox,Q=D.getBBox(),R=Q.width,Q=R>r,!Q||O.length===1?(O=S,S=[],O.length&&(K++,M&&K*P>M?(O=["..."],D.attr("title",D.textStr)):(N=aq.createElementNS(bt,"tspan"),av(N,{dy:P,x:t}),T&&av(N,"style",T),C.appendChild(N),R>r&&(r=R)))):(N.removeChild(N.firstChild),S.unshift(O.pop())),O.length&&N.appendChild(aq.createTextNode(O.join(" ").replace(/- /g,"-")))}}}})})},button:function(J,I,G,F,D,C,z,y){var x=this.label(J,I,G,null,null,null,null,null,"button"),w=0,v,u,t,r,o,s,J={x1:0,y1:0,x2:0,y2:1},D=at({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:J,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},D);t=D.style;delete D.style;C=at(D,{stroke:"#68A",fill:{linearGradient:J,stops:[[0,"#FFF"],[1,"#ACF"]]}},C);r=C.style;delete C.style;z=at(D,{stroke:"#68A",fill:{linearGradient:J,stops:[[0,"#9BD"],[1,"#CDF"]]}},z);o=z.style;delete z.style;y=at(D,{style:{color:"#CCC"}},y);s=y.style;delete y.style;a9(x.element,bq?"mouseover":"mouseenter",function(){w!==3&&x.attr(C).css(r)});a9(x.element,bq?"mouseout":"mouseleave",function(){w!==3&&(v=[D,C,z][w],u=[t,r,o][w],x.attr(v).css(u))});x.setState=function(n){(x.state=w=n)?n===2?x.attr(z).css(o):n===3&&x.attr(y).css(s):x.attr(D).css(t)};return x.on("click",function(){w!==3&&F.call(x)}).attr(D).css(az({cursor:"default"},t))},crispLine:function(o,n){o[1]===o[4]&&(o[1]=o[4]=ax(o[1])-n%2/2);o[2]===o[5]&&(o[2]=o[5]=ax(o[2])+n%2/2);return o},path:function(o){var n={fill:aZ};bl(o)?n.d=o:aY(o)&&az(n,o);return this.createElement("path").attr(n)},circle:function(o,n,r){o=aY(o)?o:{x:o,y:n,r:r};return this.createElement("circle").attr(o)},arc:function(o,n,u,t,s,r){if(aY(o)){n=o.y,u=o.r,t=o.innerR,s=o.start,r=o.end,o=o.x}o=this.symbol("arc",o||0,n||0,u||0,u||0,{innerR:t||0,start:s||0,end:r||0});o.r=u;return o},rect:function(o,n,u,t,s,r){s=aY(o)?o.r:s;s=this.createElement("rect").attr({rx:s,ry:s,fill:aZ});return s.attr(aY(o)?o:s.crisp(r,o,n,ay(u,0),ay(t,0)))},setSize:function(o,n,t){var s=this.alignedObjects,r=s.length;this.width=o;this.height=n;for(this.boxWrapper[aB(t,!0)?"animate":"attr"]({width:o,height:n});r--;){s[r].align()}},g:function(o){var n=this.createElement("g");return aw(o)?n.attr({"class":"highcharts-"+o}):n},image:function(o,n,u,t,s){var r={preserveAspectRatio:aZ};arguments.length>1&&az(r,{x:n,y:u,width:t,height:s});r=this.createElement("image").attr(r);r.element.setAttributeNS?r.element.setAttributeNS("http://www.w3.org/1999/xlink","href",o):r.element.setAttribute("hc-svg-href",o);return r},symbol:function(z,y,x,w,v,u){var t,s=this.symbols[z],s=s&&s(ax(y),ax(x),w,v,u),r=/^url\((.*?)\)$/,o,n;if(s){t=this.path(s),az(t,{symbolName:z,x:y,y:x,width:w,height:v}),u&&az(t,u)}else{if(r.test(z)){n=function(D,C){D.element&&(D.attr({width:C[0],height:C[1]}),D.alignByTranslate||D.translate(ax((w-C[0])/2),ax((v-C[1])/2)))},o=z.match(r)[1],z=aO[o],t=this.image(o).attr({x:y,y:x}),t.isImg=!0,z?n(t,z):(t.attr({width:0,height:0}),aX("img",{onload:function(){n(t,aO[o]=[this.width,this.height])},src:o}))}}return t},symbols:{circle:function(o,n,t,s){var r=0.166*t;return["M",o+t/2,n,"C",o+t+r,n,o+t+r,n+s,o+t/2,n+s,"C",o-r,n+s,o-r,n,o+t/2,n,"Z"]},square:function(o,n,s,r){return["M",o,n,"L",o+s,n,o+s,n+r,o,n+r,"Z"]},triangle:function(o,n,s,r){return["M",o+s/2,n,"L",o+s,n+r,o,n+r,"Z"]},"triangle-down":function(o,n,s,r){return["M",o,n,"L",o+s,n,o+s/2,n+r,"Z"]},diamond:function(o,n,s,r){return["M",o+s/2,n,"L",o+s,n+r/2,o+s/2,n+r,o,n+r/2,"Z"]},arc:function(z,y,x,w,v){var u=v.start,x=v.r||x||w,t=v.end-0.001,w=v.innerR,s=v.open,r=aW(u),o=aD(u),n=aW(t),t=aD(t),v=v.end-u');if(n){t=r||n==="span"||n==="img"?t.join(""):o.prepVML(t),this.element=aX(t)}this.renderer=o;this.attrSetters={}},add:function(o){var n=this.renderer,s=this.element,r=n.box,r=o?o.element||o:r;o&&o.inverted&&n.invertChild(s,r);r.appendChild(s);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();ao(this,"add");return this},updateTransform:A.prototype.htmlUpdateTransform,setSpanRotation:function(o,n,r){a7(this.element,{filter:o?["progid:DXImageTransform.Microsoft.Matrix(M11=",r,", M12=",-n,", M21=",n,", M22=",r,", sizingMethod='auto expand')"].join(""):aZ})},pathToVML:function(o){for(var n=o.length,s=[],r;n--;){if(bI(o[n])){s[n]=ax(o[n]*10)-5}else{if(o[n]==="Z"){s[n]="x"}else{if(s[n]=o[n],o.isArc&&(o[n]==="wa"||o[n]==="at")){r=o[n]==="wa"?1:-1,s[n+5]===s[n+7]&&(s[n+7]-=r),s[n+6]===s[n+8]&&(s[n+8]-=r)}}}}return s.join(" ")||"x"},attr:function(G,F){var D,C,z,y=this.element||{},x=y.style,w=y.nodeName,v=this.renderer,u=this.symbolName,t,s=this.shadows,r,o=this.attrSetters,n=this;f(G)&&aw(F)&&(D=G,G={},G[D]=F);if(f(G)){D=G,n=D==="strokeWidth"||D==="stroke-width"?this.strokeweight:this[D]}else{for(D in G){if(C=G[D],r=!1,z=o[D]&&o[D].call(this,C,D),z!==!1&&C!==null){z!==au&&(C=z);if(u&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(D)){t||(this.symbolAttr(G),t=!0),r=!0}else{if(D==="d"){C=C||[];this.d=C.join(" ");y.path=C=this.pathToVML(C);if(s){for(z=s.length;z--;){s[z].path=s[z].cutOff?this.cutOffPath(C,s[z].cutOff):C}}r=!0}else{if(D==="visibility"){if(s){for(z=s.length;z--;){s[z].style[D]=C}}w==="DIV"&&(C=C==="hidden"?"-999em":0,bP||(x[D]=C?"visible":"hidden"),D="top");x[D]=C;r=!0}else{if(D==="zIndex"){C&&(x[D]=C),r=!0}else{if(k(D,["x","y","width","height"])!==-1){this[D]=C,D==="x"||D==="y"?D={x:"left",y:"top"}[D]:C=ay(0,C),this.updateClipping?(this[D]=C,this.updateClipping()):x[D]=C,r=!0}else{if(D==="class"&&w==="DIV"){y.className=C}else{if(D==="stroke"){C=v.color(C,y,D),D="strokecolor"}else{if(D==="stroke-width"||D==="strokeWidth"){y.stroked=C?!0:!1,D="strokeweight",this[D]=C,bI(C)&&(C+="px")}else{if(D==="dashstyle"){(y.getElementsByTagName("stroke")[0]||aX(v.prepVML([""]),null,null,y))[D]=C||"solid",this.dashstyle=C,r=!0}else{if(D==="fill"){if(w==="SPAN"){x.color=C}else{if(w!=="IMG"){y.filled=C!==aZ?!0:!1,C=v.color(C,y,D,this),D="fillcolor"}}}else{if(D==="opacity"){r=!0}else{if(w==="shape"&&D==="rotation"){this[D]=y.style[D]=C,y.style.left=-ax(aD(C*bu)+1)+"px",y.style.top=ax(aW(C*bu))+"px"}else{if(D==="translateX"||D==="translateY"||D==="rotation"){this[D]=C,this.updateTransform(),r=!0}else{if(D==="text"){this.bBox=null,y.innerHTML=C,r=!0}}}}}}}}}}}}}}r||(bP?y[D]=C:av(y,D,C))}}}return n},clip:function(o){var n=this,r;o?(r=o.members,bz(r,n),r.push(n),n.destroyClip=function(){bz(r,n)},o=o.getCSS(n)):(n.destroyClip&&n.destroyClip(),o={clip:bP?"inherit":"rect(auto)"});return n.css(o)},css:A.prototype.htmlCss,safeRemoveChild:function(n){n.parentNode&&bN(n)},destroy:function(){this.destroyClip&&this.destroyClip();return A.prototype.destroy.apply(this)},on:function(o,n){this.element["on"+o]=function(){var r=a4.event;r.target=r.srcElement;n(r)};return this},cutOffPath:function(o,n){var r,o=o.split(/[ ,]/);r=o.length;if(r===9||r===11){o[r-4]=o[r-2]=bn(o[r-2])-10*n}return o.join(" ")},shadow:function(G,F,D){var C=[],z,y=this.element,x=this.renderer,w,v=y.style,u,t=y.path,s,r,o,n;t&&typeof t.value!=="string"&&(t="x");r=t;if(G){o=aB(G.width,3);n=(G.opacity||0.15)/o;for(z=1;z<=3;z++){s=o*2+1-2*z;D&&(r=this.cutOffPath(t.value,s+0.5));u=[''];w=aX(x.prepVML(u),null,{left:bn(v.left)+aB(G.offsetX,1),top:bn(v.top)+aB(G.offsetY,1)});if(D){w.cutOff=s+1}u=[''];aX(x.prepVML(u),null,null,w);F?F.element.appendChild(w):y.parentNode.insertBefore(w,y);C.push(w)}this.shadows=C}return this}};bg=bc(A,bg);var bC={Element:bg,isIE8:aK.indexOf("MSIE 8.0")>-1,init:function(o,n,t){var s,r;this.alignedObjects=[];s=this.createElement(af);r=s.element;r.style.position="relative";o.appendChild(s.element);this.isVML=!0;this.box=r;this.boxWrapper=s;this.setSize(n,t,!1);aq.namespaces.hcv||(aq.namespaces.add("hcv","urn:schemas-microsoft-com:vml"),(aq.styleSheets.length?aq.styleSheets[0]:aq.createStyleSheet()).cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ")},isHidden:function(){return !this.box.offsetWidth},clipRect:function(o,n,u,t){var s=this.createElement(),r=aY(o);return az(s,{members:[],left:(r?o.x:o)+1,top:(r?o.y:n)+1,width:(r?o.width:u)-1,height:(r?o.height:t)-1,getCSS:function(w){var v=w.element,C=v.nodeName,w=w.inverted,z=this.top-(C==="shape"?v.offsetTop:0),y=this.left,v=y+this.width,x=z+this.height,z={clip:"rect("+ax(w?y:z)+"px,"+ax(w?x:v)+"px,"+ax(w?v:x)+"px,"+ax(w?z:y)+"px)"};!w&&bP&&C==="DIV"&&az(z,{width:v+"px",height:x+"px"});return z},updateClipping:function(){aC(s.members,function(v){v.css(s.getCSS(v))})}})},color:function(bZ,bb,ab,aa){var Z=this,Y,X=/^rgba/,W,V,U=aZ;bZ&&bZ.linearGradient?V="gradient":bZ&&bZ.radialGradient&&(V="pattern");if(V){var T,S,R=bZ.linearGradient||bZ.radialGradient,P,N,Q,O,n,J="",bZ=bZ.stops,F,I=[],C=function(){W=[''];aX(Z.prepVML(W),null,null,bb)};P=bZ[0];F=bZ[bZ.length-1];P[0]>0&&bZ.unshift([0,P[1]]);F[0]<1&&bZ.push([1,F[1]]);aC(bZ,function(r,o){X.test(r[1])?(Y=bW(r[1]),T=Y.get("rgb"),S=Y.get("a")):(T=r[1],S=1);I.push(r[0]*100+"% "+T);o?(Q=S,O=T):(N=S,n=T)});if(ab==="fill"){if(V==="gradient"){ab=R.x1||R[0]||0,bZ=R.y1||R[1]||0,P=R.x2||R[2]||0,R=R.y2||R[3]||0,J='angle="'+(90-a0.atan((R-bZ)/(P-ab))*180/bM)+'"',C()}else{var U=R.r,K=U*2,G=U*2,z=R.cx,M=R.cy,y=bb.radialReference,D,U=function(){y&&(D=aa.getBBox(),z+=(y[0]-D.x)/D.width-0.5,M+=(y[1]-D.y)/D.height-0.5,K*=y[2]/D.width,G*=y[2]/D.height);J='src="'+a6.global.VMLRadialGradientURL+'" size="'+K+","+G+'" origin="0.5,0.5" position="'+z+","+M+'" color2="'+n+'" ';C()};aa.added?U():a9(aa,"add",U);U=O}}else{U=T}}else{if(X.test(bZ)&&bb.tagName!=="IMG"){Y=bW(bZ),W=["<",ab,' opacity="',Y.get("a"),'"/>'],aX(this.prepVML(W),null,null,bb),U=Y.get("rgb")}else{U=bb.getElementsByTagName(ab);if(U.length){U[0].opacity=1,U[0].type="solid"}U=bZ}}return U},prepVML:function(o){var n=this.isIE8,o=o.join("");n?(o=o.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),o=o.indexOf('style="')===-1?o.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):o.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):o=o.replace("<","1&&r.attr({x:n,y:u,width:t,height:s});return r},rect:function(o,n,v,u,t,s){var r=this.symbol("rect");r.r=aY(o)?o.r:t;return r.attr(aY(o)?o:r.crisp(s,o,n,ay(v,0),ay(u,0)))},invertChild:function(o,n){var r=n.style;a7(o,{flip:"x",left:bn(r.width)-1,top:bn(r.height)-1,rotation:-90})},symbols:{arc:function(z,y,x,w,v){var u=v.start,t=v.end,s=v.r||x||w,x=v.innerR,w=aW(u),r=aD(u),o=aW(t),n=aD(t);if(t-u===0){return["x"]}u=["wa",z-s,y-s,z+s,y+s,z+s*w,y+s*r,z+s*o,y+s*n];v.open&&!x&&u.push("e","M",z,y);u.push("at",z-x,y-x,z+x,y+x,z+x*o,y+x*n,z+x*w,y+x*r,"x","e");u.isArc=!0;return u},circle:function(o,n,t,s,r){r&&(t=s=2*r.r);r&&r.isCircle&&(o-=t/2,n-=s/2);return["wa",o,n,o+t,n+s,o+t,n+s/2,o+t,n+s/2,"e"]},rect:function(o,n,w,v,u){var t=o+w,s=n+v,r;!aw(u)||!u.r?t=bE.prototype.symbols.square.apply(0,arguments):(r=bd(u.r,w,v),t=["M",o+r,n,"L",t-r,n,"wa",t-2*r,n,t,n+2*r,t-r,n,t,n+r,"L",t,s-r,"wa",t-2*r,s-2*r,t,s,t,s-r,t-r,s,"L",o+r,s,"wa",o,s-2*r,o+2*r,s,o+r,s,o,s-r,"L",o,n+r,"wa",o,n,o+2*r,n+2*r,o,n+r,o+r,n,"x","e"]);return t}}};Highcharts.VMLRenderer=bg=function(){this.init.apply(this,arguments)};bg.prototype=at(bE.prototype,bC);aT=bg}var bL;if(bF){Highcharts.CanVGRenderer=bg=function(){bt="http://www.w3.org/1999/xhtml"},bg.prototype.symbols={},bL=function(){function o(){var r=n.length,s;for(s=0;ss&&(z=!1)):u+r>n&&(u=n-r,y&&u+o0&&P.height>0){K=at({align:O&&D&&"center",x:O?!D&&4:10,verticalAlign:!O&&D&&"middle",y:O?D?16:10:D?6:-4,rotation:O&&!D&&90},K);if(!J){Q.label=J=r.text(K.text,0,0,K.useHTML).attr({align:K.textAlign||K.align,rotation:K.rotation,zIndex:o}).css(K.style).add()}P=[u[1],u[4],aB(u[6],u[1])];u=[u[2],u[5],aB(u[7],u[2])];O=aL(P);D=aL(u);J.align(K,!1,{x:O,y:D,width:am(P)-O,height:am(u)-D});J.show()}else{J&&J.hide()}return Q},destroy:function(){bz(this.axis.plotLinesAndBands,this);delete this.axis;aj(this)}};bX.prototype={destroy:function(){aj(this,this.axis)},render:function(o){var n=this.options,r=n.format,r=r?be(r,this):n.formatter.call(this);this.label?this.label.attr({text:r,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(r,0,0,n.useHTML).css(n.style).attr({align:this.textAlign,rotation:n.rotation,visibility:"hidden"}).add(o)},setOffset:function(x,w){var v=this.axis,u=v.chart,t=u.inverted,s=this.isNegative,r=v.translate(this.percent?100:this.total,0,0,0,1),v=v.translate(0),v=a5(r-v),o=u.xAxis[0].translate(this.x)+x,n=u.plotHeight,s={x:t?s?r:r-v:o,y:t?n-o-w:s?n-r-v:n-r,width:t?v:w,height:t?w:v};if(t=this.label){t.align(this.alignOptions,null,s),s=t.alignAttr,t.attr({visibility:this.options.crop===!1||u.isInsidePlot(s.x,s.y)?aR?"inherit":"visible":"hidden"})}}};L.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,gridLineColor:"#C0C0C0",labels:bf,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#4d759e",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return bS(this.total,-1)},style:bf.style}},defaultLeftAxisOptions:{labels:{x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{x:0,y:-5},title:{rotation:0}},init:function(o,n){var u=n.isX;this.horiz=o.inverted?!u:u;this.xOrY=(this.isXAxis=u)?"x":"y";this.opposite=n.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(n);var t=this.options,s=t.type;this.labelFormatter=t.labels.formatter||this.defaultLabelFormatter;this.userOptions=n;this.minPixelPadding=0;this.chart=o;this.reversed=t.reversed;this.zoomEnabled=t.zoomEnabled!==!1;this.categories=t.categories||s==="category";this.isLog=s==="logarithmic";this.isDatetimeAxis=s==="datetime";this.isLinked=aw(t.linkedTo);this.tickmarkOffset=this.categories&&t.tickmarkPlacement==="between"?0.5:0;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=t.minRange||t.maxZoom;this.range=t.range;this.offset=t.offset||0;this.stacks={};this.oldStacks={};this.stackExtremes={};this.min=this.max=null;var r,t=this.options.events;k(this,o.axes)===-1&&(o.axes.push(this),o[u?"xAxis":"yAxis"].push(this));this.series=this.series||[];if(o.inverted&&u&&this.reversed===au){this.reversed=!0}this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(r in t){a9(this,r,t[r])}if(this.isLog){this.val2lin=bj,this.lin2val=bR}},setOptions:function(n){this.options=at(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],at(a6[this.isXAxis?"xAxis":"yAxis"],n))},update:function(o,n){var r=this.chart,o=r.options[this.xOrY+"Axis"][this.options.index]=at(this.userOptions,o);this.destroy(!0);this._addedPlotLB=this.userMin=this.userMax=au;this.init(r,az(o,{events:au}));r.isDirtyBox=!0;aB(n,!0)&&r.redraw()},remove:function(o){var n=this.chart,r=this.xOrY+"Axis";aC(this.series,function(s){s.remove(!1)});bz(n.axes,this);bz(n[r],this);n.options[r].splice(this.options.index,1);aC(n[r],function(t,s){t.options.index=s});this.destroy();n.isDirtyBox=!0;aB(o,!0)&&n.redraw()},defaultLabelFormatter:function(){var o=this.axis,n=this.value,w=o.categories,v=this.dateTimeLabelFormat,u=a6.lang.numericSymbols,t=u&&u.length,s,r=o.options.labels.format,o=o.isLog?n:o.tickInterval;if(r){s=be(r,this)}else{if(w){s=n}else{if(v){s=H(v,n)}else{if(t&&o>=1000){for(;t--&&s===au;){w=Math.pow(1000,t+1),o>=w&&u[t]!==null&&(s=bS(n/w,-1)+u[t])}}}}}s===au&&(s=n>=1000?bS(n,0):bS(n,-1));return s},getSeriesExtremes:function(){var o=this,n=o.chart;o.hasVisibleSeries=!1;o.dataMin=o.dataMax=null;o.stackExtremes={};o.buildStacks();aC(o.series,function(t){if(t.visible||!n.options.chart.ignoreHiddenSeries){var s;s=t.options.threshold;var r;o.hasVisibleSeries=!0;o.isLog&&s<=0&&(s=null);if(o.isXAxis){if(s=t.xData,s.length){o.dataMin=bd(aB(o.dataMin,s[0]),aL(s)),o.dataMax=ay(aB(o.dataMax,s[0]),am(s))}}else{t.getExtremes();r=t.dataMax;t=t.dataMin;if(aw(t)&&aw(r)){o.dataMin=bd(aB(o.dataMin,t),t),o.dataMax=ay(aB(o.dataMax,r),r)}if(aw(s)){if(o.dataMin>=s){o.dataMin=s,o.ignoreMinPadding=!0}else{if(o.dataMaxw+this.width){n=!0}}else{if(z=w,t=o-this.right,uv+this.height){n=!0}}}return n&&!y?null:x.renderer.crispLine(["M",z,u,"L",t,s],C||0)},getPlotBandPath:function(o,n){var s=this.getPlotLinePath(n),r=this.getPlotLinePath(o);r&&s?r.push(s[4],s[5],s[1],s[2]):r=null;return r},getLinearTickPositions:function(o,n,t){for(var s,n=aG(a3(n/o)*o),t=aG(b(t/o)*o),r=[];n<=t;){r.push(n);n=aG(n+o);if(n===s){break}s=n}return r},getLogTickPositions:function(C,z,y,x){var w=this.options,v=this.len,u=[];if(!x){this._minorAutoInterval=null}if(C>=0.5){C=ax(C),u=this.getLinearTickPositions(C,z,y)}else{if(C>=0.08){for(var v=a3(z),t,s,r,o,n,w=C>0.3?[1,2,4]:C>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];vz&&(!x||o<=y)&&u.push(o),o>y&&(n=!0),o=r}}}else{if(z=bR(z),y=bR(y),C=w[x?"minorTickInterval":"tickInterval"],C=aB(C==="auto"?null:C,this._minorAutoInterval,(y-z)*(w.tickPixelInterval/(x?5:1))/((x?v/this.tickPositions.length:v)||1)),C=aI(C,null,bh(C)),u=bJ(this.getLinearTickPositions(C,z,y),bj),!x){this._minorAutoInterval=C/5}}}if(!x){this.tickInterval=C}return u},getMinorTickPositions:function(){var o=this.options,n=this.tickPositions,t=this.minorTickInterval,s=[],r;if(this.isLog){r=n.length;for(o=1;o=this.minRange,u,t,s,r,o;if(this.isXAxis&&this.minRange===au&&!this.isLog){aw(z.min)||aw(z.max)?this.minRange=null:(aC(this.series,function(C){r=C.xData;for(t=o=C.xIncrement?1:r.length-1;t>0;t--){if(s=r[t]-r[t-1],u===au||sn&&(C=0);w=ay(w,C);u=ay(u,f(z)?0:C/2);t=ay(t,z==="on"?0:C);!y.noSharedTooltip&&aw(x)&&(v=aw(v)?bd(v,x):x)}),s=this.ordinalSlope&&v?this.ordinalSlope/v:1,this.minPointOffset=u*=s,this.pointRangePadding=t*=s,this.pointRange=bd(w,n),this.closestPointRange=v}if(o){this.oldTransA=r}this.translationSlope=this.transA=r=this.len/(n+t||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=r*u},setTickPositions:function(I){var G=this,F=G.chart,C=G.options,z=G.isLog,y=G.isDatetimeAxis,x=G.isXAxis,w=G.isLinked,v=G.options.tickPositioner,u=C.maxPadding,t=C.minPadding,s=C.tickInterval,r=C.minTickInterval,o=C.tickPixelInterval,n,D=G.categories;w?(G.linkedParent=F[x?"xAxis":"yAxis"][C.linkedTo],F=G.linkedParent.getExtremes(),G.min=aB(F.min,F.dataMin),G.max=aB(F.max,F.dataMax),C.type!==G.linkedParent.options.type&&h(11,1)):(G.min=aB(G.userMin,C.min,G.dataMin),G.max=aB(G.userMax,C.max,G.dataMax));if(z){!I&&bd(G.min,aB(G.dataMin,G.min))<=0&&h(10,1),G.min=aG(bj(G.min)),G.max=aG(bj(G.max))}if(G.range&&(G.userMin=G.min=ay(G.min,G.max-G.range),G.userMax=G.max,I)){G.range=null}G.beforePadding&&G.beforePadding();G.adjustForMinRange();if(!D&&!G.usePercentage&&!w&&aw(G.min)&&aw(G.max)&&(F=G.max-G.min)){if(!aw(C.min)&&!aw(G.userMin)&&t&&(G.dataMin<0||!G.ignoreMinPadding)){G.min-=F*t}if(!aw(C.max)&&!aw(G.userMax)&&u&&(G.dataMax>0||!G.ignoreMaxPadding)){G.max+=F*u}}G.min===G.max||G.min===void 0||G.max===void 0?G.tickInterval=1:w&&!s&&o===G.linkedParent.options.tickPixelInterval?G.tickInterval=G.linkedParent.tickInterval:(G.tickInterval=aB(s,D?1:(G.max-G.min)*o/ay(G.len,o)),!aw(s)&&G.lenay(2*G.len,200)&&h(19,!0),I=y?(G.getNonLinearTimeTicks||ad)(ba(G.tickInterval,C.units),G.min,G.max,C.startOfWeek,G.ordinalPositions,G.closestPointRange,!0):z?G.getLogTickPositions(G.tickInterval,G.min,G.max):G.getLinearTickPositions(G.tickInterval,G.min,G.max),n&&I.splice(1,I.length-2),G.tickPositions=I}if(!w){z=I[0],y=I[I.length-1],w=G.minPointOffset||0,C.startOnTick?G.min=z:G.min-w>z&&I.shift(),C.endOnTick?G.max=y:G.max+w(n[r]||0)&&this.options.alignTicks!==!1){n[r]=s.length}o.maxTicks=n},adjustTickAmount:function(){var o=this._maxTicksKey,n=this.tickPositions,t=this.chart.maxTicks;if(t&&t[o]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var s=this.tickAmount,r=n.length;this.tickAmount=o=t[o];if(r=this.dataMax&&(n=au));this.displayBtn=o!==au||n!==au;this.setExtremes(o,n,!1,au,{trigger:"zoom"});return !0},setAxisSize:function(){var o=this.chart,n=this.options,v=n.offsetLeft||0,u=n.offsetRight||0,t=this.horiz,s,r;this.left=r=aB(n.left,o.plotLeft+v);this.top=s=aB(n.top,o.plotTop);this.width=v=aB(n.width,o.plotWidth-v+u);this.height=n=aB(n.height,o.plotHeight);this.bottom=o.chartHeight-n-s;this.right=o.chartWidth-v-r;this.len=ay(t?v:n,0);this.pos=t?r:s},getExtremes:function(){var n=this.isLog;return{min:n?aG(bR(this.min)):this.min,max:n?aG(bR(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(o){var n=this.isLog,r=n?bR(this.min):this.min,n=n?bR(this.max):this.max;r>o||o===null?o=r:n15&&n<165?"right":n>195&&n<345?"left":"center"},getOffset:function(){var X=this,W=X.chart,V=W.renderer,U=X.options,T=X.tickPositions,S=X.ticks,R=X.horiz,Q=X.side,P=W.inverted?[1,0,3,2][Q]:Q,O,N=0,M,J=0,I=U.title,F=U.labels,n=0,G=W.axisOffset,o=W.clipOffset,z=[-1,1,1,-1][Q],C,w=1,s=aB(F.maxStaggerLines,5),K,y,u,D;X.hasData=O=X.hasVisibleSeries||aw(X.min)&&aw(X.max)&&!!T;X.showAxis=W=O||aB(U.showEmpty,!0);X.staggerLines=X.horiz&&F.staggerLines;if(!X.axisGroup){X.gridGroup=V.g("grid").attr({zIndex:U.gridZIndex||1}).add(),X.axisGroup=V.g("axis").attr({zIndex:U.zIndex||2}).add(),X.labelGroup=V.g("axis-labels").attr({zIndex:F.zIndex||7}).add()}if(O||X.isLinked){X.labelAlign=aB(F.align||X.autoLabelAlign(F.rotation));aC(T,function(r){S[r]?S[r].addLabel():S[r]=new bY(X,r)});if(X.horiz&&!X.staggerLines&&s&&!F.rotation){for(C=X.reversed?[].concat(T).reverse():T;w1){X.staggerLines=w}}aC(T,function(r){if(Q===0||Q===2||{1:"left",3:"right"}[Q]===X.labelAlign){n=ay(S[r].getLabelSize(),n)}});if(X.staggerLines){n*=X.staggerLines,X.labelOffset=n}}else{for(C in S){S[C].destroy(),delete S[C]}}if(I&&I.text&&I.enabled!==!1){if(!X.axisTitle){X.axisTitle=V.text(I.text,0,0,I.useHTML).attr({zIndex:7,rotation:I.rotation||0,align:I.textAlign||{low:"left",middle:"center",high:"right"}[I.align]}).css(I.style).add(X.axisGroup),X.axisTitle.isNew=!0}if(W){N=X.axisTitle.getBBox()[R?"height":"width"],J=aB(I.margin,R?5:10),M=I.offset}X.axisTitle[W?"show":"hide"]()}X.offset=z*aB(U.offset,G[Q]);X.axisTitleMargin=aB(M,n+J+(Q!==2&&n&&z*U.labels[R?"y":"x"]));G[Q]=ay(G[Q],X.axisTitleMargin+N+z*X.offset);o[P]=ay(o[P],a3(U.lineWidth/2)*2)},getLinePath:function(o){var n=this.chart,u=this.opposite,t=this.offset,s=this.horiz,r=this.left+(u?this.width:0)+t,t=n.chartHeight-this.bottom-(u?this.height:0)+t;u&&(o*=-1);return n.renderer.crispLine(["M",s?this.left:r,s?t:this.top,"L",s?n.chartWidth-this.right:r,s?t:n.chartHeight-this.bottom],o)},getTitlePosition:function(){var x=this.horiz,w=this.left,v=this.top,u=this.len,t=this.options.title,s=x?w:v,r=this.opposite,o=this.offset,n=bn(t.style.fontSize||12),u={low:s+(x?0:u),middle:s+u/2,high:s+(x?u:0)}[t.align],w=(x?v+this.height:w)+(x?1:-1)*(r?-1:1)*this.axisTitleMargin+(this.side===2?n:0);return{x:x?u:w+(r?this.width:0)+o+(t.x||0),y:x?w-(r?this.height:0)+o:u+(t.y||0)}},render:function(){var W=this,V=W.chart,U=V.renderer,T=W.options,S=W.isLog,R=W.isLinked,Q=W.tickPositions,P=W.axisTitle,O=W.stacks,N=W.ticks,M=W.minorTicks,K=W.alternateBands,I=T.stackLabels,F=T.alternateGridColor,C=W.tickmarkOffset,G=T.lineWidth,D,y=V.hasRendered&&aw(W.oldMin)&&!isNaN(W.oldMin);D=W.hasData;var w=W.showAxis,z,u;aC([N,M,K],function(r){for(var o in r){r[o].isActive=!1}});if(D||R){if(W.minorTickInterval&&!W.categories&&aC(W.getMinorTickPositions(),function(o){M[o]||(M[o]=new bY(W,o,"minor"));y&&M[o].isNew&&M[o].render(null,!0);M[o].render(null,!1,1)}),Q.length&&(aC(Q.slice(1).concat([Q[0]]),function(o,r){r=r===Q.length-1?0:r+1;if(!R||o>=W.min&&o<=W.max){N[o]||(N[o]=new bY(W,o)),y&&N[o].isNew&&N[o].render(r,!0),N[o].render(r,!1,1)}}),C&&W.min===0&&(N[-1]||(N[-1]=new bY(W,-1,null,!0)),N[-1].render(-1))),F&&aC(Q,function(o,r){if(r%2===0&&o1||a5(n-s.y)>1)){clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){t&&t.move(o,n,v,u)},32)}},hide:function(){var o=this,n;clearTimeout(this.hideTimer);if(!this.isHidden){n=this.chart.hoverPoints,this.hideTimer=setTimeout(function(){o.label.fadeOut();o.isHidden=!0},aB(this.options.hideDelay,500)),n&&aC(n,function(r){r.setState()}),this.chart.hoverPoints=null}},hideCrosshairs:function(){aC(this.crosshairs,function(n){n&&n.hide()})},getAnchor:function(x,w){var v,u=this.chart,t=u.inverted,s=u.plotTop,r=0,o=0,n,x=ae(x);v=x[0].tooltipPos;this.followPointer&&w&&(w.chartX===au&&(w=u.pointer.normalize(w)),v=[w.chartX-u.plotLeft,w.chartY-s]);v||(aC(x,function(y){n=y.series.yAxis;r+=y.plotX;o+=(y.plotLow?(y.plotLow+y.plotHigh)/2:y.plotY)+(!t&&n?n.top-s:0)}),r/=x.length,o/=x.length,v=[t?u.plotWidth-o:r,this.shared&&!t&&x.length>1&&w?w.chartY-s:t?u.plotHeight-r:o]);return bJ(v,ax)},getPosition:function(C,z,y){var x=this.chart,w=x.plotLeft,v=x.plotTop,u=x.plotWidth,t=x.plotHeight,s=aB(this.options.distance,12),r=y.plotX,y=y.plotY,x=r+w+(x.inverted?s:-C-s),o=y-z+v+15,n;x<7&&(x=w+ay(r,0)+s);x+C>w+u&&(x-=x+C-(w+u),o=y-z+v-s,n=!0);o=o&&y<=o+z&&(o=y+v+s));o+z>v+t&&(o=ay(v,v+t-z-s));return{x:x,y:o}},defaultFormatter:function(o){var n=this.points||ae(this),s=n[0].series,r;r=[s.tooltipHeaderFormatter(n[0])];aC(n,function(t){s=t.series;r.push(s.tooltipFormatter&&s.tooltipFormatter(t)||t.point.tooltipFormatter(s.tooltipOptions.pointFormat))});r.push(o.options.footerFormat||"");return r.join("")},refresh:function(D,C){var z=this.chart,y=this.label,x=this.options,w,v,u={},t,s=[];t=x.formatter||this.defaultFormatter;var u=z.hoverPoints,r,o=x.crosshairs,n=this.shared;clearTimeout(this.hideTimer);this.followPointer=ae(D)[0].series.tooltipOptions.followPointer;v=this.getAnchor(D,C);w=v[0];v=v[1];n&&(!D.series||!D.series.noSharedTooltip)?(z.hoverPoints=D,u&&aC(u,function(F){F.setState()}),aC(D,function(F){F.setState("hover");s.push(F.getLabelConfig())}),u={x:D[0].category,y:D[0].y},u.points=s,D=D[0]):u=D.getLabelConfig();t=t.call(u,this);u=D.series;t===!1?this.hide():(this.isHidden&&(ar(y),y.attr("opacity",1).show()),y.attr({text:t}),r=x.borderColor||D.color||u.color||"#606060",y.attr({stroke:r}),this.updatePosition({plotX:w,plotY:v}),this.isHidden=!1);if(o){o=ae(o);for(y=o.length;y--;){if(n=D.series,x=n[y?"yAxis":"xAxis"],o[y]&&x){if(u=y?aB(D.stackY,D.y):D.x,x.isLog&&(u=bj(u)),y===1&&n.modifyValue&&(u=n.modifyValue(u)),x=x.getPlotLinePath(u,1),this.crosshairs[y]){this.crosshairs[y].attr({d:x,visibility:"visible"})}else{u={"stroke-width":o[y].width||1,stroke:o[y].color||"#C0C0C0",zIndex:o[y].zIndex||2};if(o[y].dashStyle){u.dashstyle=o[y].dashStyle}this.crosshairs[y]=z.renderer.path(x).attr(u).add()}}}}ao(z,"tooltipRefresh",{text:t,x:w+z.plotLeft,y:v+z.plotTop,borderColor:r})},updatePosition:function(o){var n=this.chart,r=this.label,r=(this.options.positioner||this.getPosition).call(this,r.width,r.height,o);this.move(ax(r.x),ax(r.y),o.plotX+n.plotLeft,o.plotY+n.plotTop)}};a.prototype={init:function(o,n){var u=n.chart,t=u.events,s=bF?"":u.zoomType,u=o.inverted,r;this.options=n;this.chart=o;this.zoomX=r=/x/.test(s);this.zoomY=s=/y/.test(s);this.zoomHor=r&&!u||s&&u;this.zoomVert=s&&!u||r&&u;this.runChartClick=t&&!!t.click;this.pinchDown=[];this.lastValidTouch={};if(n.tooltip.enabled){o.tooltip=new p(o,n.tooltip)}this.setDOMEvents()},normalize:function(o,n){var s,r,o=o||a4.event;if(!o.target){o.target=o.srcElement}o=E(o);r=o.touches?o.touches.item(0):o;if(!n){this.chartPosition=n=ap(this.chart.container)}r.pageX===au?(s=ay(o.x,o.clientX-n.left),r=o.y):(s=r.pageX-n.left,r=r.pageY-n.top);return az(o,{chartX:ax(s),chartY:ax(r)})},getCoordinates:function(o){var n={xAxis:[],yAxis:[]};aC(this.chart.axes,function(r){n[r.isXAxis?"xAxis":"yAxis"].push({axis:r,value:r.toValue(o[r.horiz?"chartX":"chartY"])})});return n},getIndex:function(o){var n=this.chart;return n.inverted?n.plotHeight+n.plotTop-o.chartY:o.chartX-n.plotLeft},runPointActions:function(z){var y=this.chart,x=y.series,w=y.tooltip,v,u=y.hoverPoint,t=y.hoverSeries,s,r,o=y.chartWidth,n=this.getIndex(z);if(w&&this.options.tooltip.shared&&(!t||!t.noSharedTooltip)){v=[];s=x.length;for(r=0;ro&&v.splice(s,1)}if(v.length&&v[0].clientX!==this.hoverX){w.refresh(v,z),this.hoverX=v[0].clientX}}if(t&&t.tracker){if((y=t.tooltipPoints[n])&&y!==u){y.onMouseOver(z)}}else{w&&w.followPointer&&!w.isHidden&&(z=w.getAnchor([{}],z),w.updatePosition({plotX:z[0],plotY:z[1]}))}},reset:function(o){var n=this.chart,t=n.hoverSeries,s=n.hoverPoint,r=n.tooltip,n=r&&r.shared?n.hoverPoints:s;(o=o&&r&&n)&&ae(n)[0].plotX===au&&(o=!1);if(o){r.refresh(n)}else{if(s){s.onMouseOut()}if(t){t.onMouseOut()}r&&(r.hide(),r.hideCrosshairs());this.hoverX=null}},scaleGroups:function(o,n){var s=this.chart,r;aC(s.series,function(t){r=o||t.getPlotBox();t.xAxis&&t.xAxis.zoomEnabled&&(t.group.attr(r),t.markerGroup&&(t.markerGroup.attr(r),t.markerGroup.clip(n?s.clipRect:null)),t.dataLabelsGroup&&t.dataLabelsGroup.attr(r))});s.clipRect.attr(n||s.clipBox)},pinchTranslateDirection:function(aa,Z,Y,X,W,V,U){var T=this.chart,S=aa?"x":"y",R=aa?"X":"Y",Q="chart"+R,P=aa?"width":"height",O=T["plot"+(aa?"Left":"Top")],K,J,M=1,N=T.inverted,G=T.bounds[aa?"h":"v"],F=Z.length===1,D=Z[0][Q],I=Y[0][Q],z=!F&&Z[1][Q],C=!F&&Y[1][Q],y,Y=function(){!F&&a5(D-z)>20&&(M=a5(I-C)/a5(D-z));J=(O-I)/M+D;K=T["plot"+(aa?"Width":"Height")]/M};Y();Z=J;ZG.max&&(Z=G.max-K,y=!0);y?(I-=0.8*(I-U[S][0]),F||(C-=0.8*(C-U[S][1])),Y()):U[S]=[I,C];N||(V[S]=J-O,V[P]=K);V=N?1/M:M;W[P]=K;W[S]=Z;X[N?aa?"scaleY":"scaleX":"scale"+R]=M;X["translate"+R]=V*O+(I-V*D)},pinch:function(G){var F=this,D=F.chart,C=F.pinchDown,z=D.tooltip&&D.tooltip.options.followTouchMove,y=G.touches,x=y.length,w=F.lastValidTouch,v=F.zoomHor||F.pinchHor,u=F.zoomVert||F.pinchVert,t=v||u,s=F.selectionMarker,r={},o=x===1&&(F.inClass(G.target,"highcharts-tracker")&&D.runTrackerClick||D.runChartClick),n={};(t||z)&&!o&&G.preventDefault();bJ(y,function(I){return F.normalize(I)});if(G.type==="touchstart"){aC(y,function(J,I){C[I]={chartX:J.chartX,chartY:J.chartY}}),w.x=[C[0].chartX,C[1]&&C[1].chartX],w.y=[C[0].chartY,C[1]&&C[1].chartY],aC(D.axes,function(J){if(J.zoomEnabled){var I=D.bounds[J.horiz?"h":"v"],O=J.minPixelPadding,N=J.toPixels(J.dataMin),M=J.toPixels(J.dataMax),K=bd(N,M),N=ay(N,M);I.min=bd(J.pos,K-O);I.max=ay(J.pos+J.len,N+O)}})}else{if(C.length){if(!s){F.selectionMarker=s=az({destroy:ah},D.plotBox)}v&&F.pinchTranslateDirection(!0,C,y,r,s,n,w);u&&F.pinchTranslateDirection(!1,C,y,r,s,n,w);F.hasPinched=t;F.scaleGroups(r,n);!t&&z&&x===1&&this.runPointActions(F.normalize(G))}}},dragStart:function(o){var n=this.chart;n.mouseIsDown=o.type;n.cancelClick=!1;n.mouseDownX=this.mouseDownX=o.chartX;n.mouseDownY=this.mouseDownY=o.chartY},drag:function(F){var D=this.chart,C=D.options.chart,z=F.chartX,y=F.chartY,x=this.zoomHor,w=this.zoomVert,v=D.plotLeft,u=D.plotTop,t=D.plotWidth,s=D.plotHeight,r,o=this.mouseDownX,n=this.mouseDownY;zv+t&&(z=v+t);yu+s&&(y=u+s);this.hasDragged=Math.sqrt(Math.pow(o-z,2)+Math.pow(n-y,2));if(this.hasDragged>10){r=D.isInsidePlot(o-v,n-u);if(D.hasCartesianSeries&&(this.zoomX||this.zoomY)&&r&&!this.selectionMarker){this.selectionMarker=D.renderer.rect(v,u,x?1:t,w?1:s,0).attr({fill:C.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add()}this.selectionMarker&&x&&(z-=o,this.selectionMarker.attr({width:a5(z),x:(z>0?0:z)+o}));this.selectionMarker&&w&&(z=y-n,this.selectionMarker.attr({height:a5(z),y:(z>0?0:z)+n}));r&&!this.selectionMarker&&C.panning&&D.pan(F,C.panning)}},drop:function(o){var n=this.chart,w=this.hasPinched;if(this.selectionMarker){var v={xAxis:[],yAxis:[],originalEvent:o.originalEvent||o},u=this.selectionMarker,t=u.x,s=u.y,r;if(this.hasDragged||w){aC(n.axes,function(y){if(y.zoomEnabled){var x=y.horiz,z=y.toValue(x?t:s),x=y.toValue(x?t+u.width:s+u.height);!isNaN(z)&&!isNaN(x)&&(v[y.xOrY+"Axis"].push({axis:y,min:bd(z,x),max:ay(z,x)}),r=!0)}}),r&&ao(n,"selection",v,function(x){n.zoom(az(x,w?{animation:!1}:null))})}this.selectionMarker=this.selectionMarker.destroy();w&&this.scaleGroups()}if(n){a7(n.container,{cursor:n._cursor}),n.cancelClick=this.hasDragged>10,n.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]}},onContainerMouseDown:function(n){n=this.normalize(n);n.preventDefault&&n.preventDefault();this.dragStart(n)},onDocumentMouseUp:function(n){this.drop(n)},onDocumentMouseMove:function(o){var n=this.chart,s=this.chartPosition,r=n.hoverSeries,o=this.normalize(o,s);s&&r&&!this.inClass(o.target,"highcharts-tracker")&&!n.isInsidePlot(o.chartX-n.plotLeft,o.chartY-n.plotTop)&&this.reset()},onContainerMouseLeave:function(){this.reset();this.chartPosition=null},onContainerMouseMove:function(o){var n=this.chart,o=this.normalize(o);o.returnValue=!1;n.mouseIsDown==="mousedown"&&this.drag(o);(this.inClass(o.target,"highcharts-tracker")||n.isInsidePlot(o.chartX-n.plotLeft,o.chartY-n.plotTop))&&!n.openMenu&&this.runPointActions(o)},inClass:function(o,n){for(var r;o;){if(r=av(o,"class")){if(r.indexOf(n)!==-1){return !0}else{if(r.indexOf("highcharts-container")!==-1){return !1}}}o=o.parentNode}},onTrackerMouseOut:function(o){var n=this.chart.hoverSeries;if(n&&!n.options.stickyTracking&&!this.inClass(o.toElement||o.relatedTarget,"highcharts-tooltip")){n.onMouseOut()}},onContainerClick:function(x){var w=this.chart,v=w.hoverPoint,u=w.plotLeft,t=w.plotTop,s=w.inverted,r,o,n,x=this.normalize(x);x.cancelBubble=!0;if(!w.cancelClick){v&&this.inClass(x.target,"highcharts-tracker")?(r=this.chartPosition,o=v.plotX,n=v.plotY,az(v,{pageX:r.left+u+(s?w.plotWidth-n:o),pageY:r.top+t+(s?w.plotHeight-o:n)}),ao(v.series,"click",az(x,{point:v})),w.hoverPoint&&v.firePointEvent("click",x)):(az(x,this.getCoordinates(x)),w.isInsidePlot(x.chartX-u,x.chartY-t)&&ao(w,"click",x))}},onContainerTouchStart:function(o){var n=this.chart;o.touches.length===1?(o=this.normalize(o),n.isInsidePlot(o.chartX-n.plotLeft,o.chartY-n.plotTop)?(this.runPointActions(o),this.pinch(o)):this.reset()):o.touches.length===2&&this.pinch(o)},onContainerTouchMove:function(n){(n.touches.length===1||n.touches.length===2)&&this.pinch(n)},onDocumentTouchEnd:function(n){this.drop(n)},setDOMEvents:function(){var o=this,n=o.chart.container,r;this._events=r=[[n,"onmousedown","onContainerMouseDown"],[n,"onmousemove","onContainerMouseMove"],[n,"onclick","onContainerClick"],[n,"mouseleave","onContainerMouseLeave"],[aq,"mousemove","onDocumentMouseMove"],[aq,"mouseup","onDocumentMouseUp"]];aE&&r.push([n,"ontouchstart","onContainerTouchStart"],[n,"ontouchmove","onContainerTouchMove"],[aq,"touchend","onDocumentTouchEnd"]);aC(r,function(s){o["_"+s[2]]=function(t){o[s[2]](t)};s[1].indexOf("on")===0?s[0][s[1]]=o["_"+s[2]]:a9(s[0],s[1],o["_"+s[2]])})},destroy:function(){var n=this;aC(n._events,function(o){o[1].indexOf("on")===0?o[0][o[1]]=null:bw(o[0],o[1],n["_"+o[2]])});delete n._events;clearInterval(n.tooltipTimeout)}};e.prototype={init:function(o,n){var u=this,t=n.itemStyle,s=aB(n.padding,8),r=n.itemMarginTop||0;this.options=n;if(n.enabled){u.baseline=bn(t.fontSize)+3+r,u.itemStyle=t,u.itemHiddenStyle=at(t,n.itemHiddenStyle),u.itemMarginTop=r,u.padding=s,u.initialItemX=s,u.initialItemY=s-5,u.maxItemWidth=0,u.chart=o,u.itemHeight=0,u.lastLineHeight=0,u.render(),a9(u.chart,"endResize",function(){u.positionCheckboxes()})}},colorizeItem:function(y,x){var w=this.options,v=y.legendItem,u=y.legendLine,t=y.legendSymbol,s=this.itemHiddenStyle.color,w=x?w.itemStyle.color:s,r=x?y.color:s,s=y.options&&y.options.marker,o={stroke:r,fill:r},n;v&&v.css({fill:w,color:w});u&&u.attr({stroke:r});if(t){if(s&&t.isMarker){for(n in s=y.convertAttribs(s),s){v=s[n],v!==au&&(o[n]=v)}}t.attr(o)}},positionItem:function(o){var n=this.options,u=n.symbolPadding,n=!n.rtl,t=o._legendItemPos,s=t[0],t=t[1],r=o.checkbox;o.legendGroup&&o.legendGroup.translate(n?s:this.legendWidth-s-2*u-4,t);if(r){r.x=s,r.y=t}},destroyItem:function(o){var n=o.checkbox;aC(["legendItem","legendLine","legendSymbol","legendGroup"],function(r){o[r]&&(o[r]=o[r].destroy())});n&&bN(o.checkbox)},destroy:function(){var o=this.group,n=this.box;if(n){this.box=n.destroy()}if(o){this.group=o.destroy()}},positionCheckboxes:function(o){var n=this.group.alignAttr,s,r=this.clipHeight||this.legendHeight;if(n){s=n.translateY,aC(this.allItems,function(v){var u=v.checkbox,t;u&&(t=s+u.y+(o||0)+3,a7(u,{left:n.translateX+v.legendItemWidth+u.x-20+"px",top:t+"px",display:t>s-6&&t(G||U.chartWidth-2*M-F)){V.itemX=F,V.itemY+=I+V.lastLineHeight+D,V.lastLineHeight=0}V.maxItemWidth=ay(V.maxItemWidth,S);V.lastItemY=I+V.itemY+D;V.lastLineHeight=ay(Q,V.lastLineHeight);W._legendItemPos=[V.itemX,V.itemY];R?V.itemX+=S:(V.itemY+=I+Q+D,V.lastLineHeight=Q);V.offsetWidth=G||ay((R?V.itemX-F-K:S)+M,V.offsetWidth)},render:function(){var D=this,C=D.chart,z=C.renderer,y=D.group,x,w,v,u,t=D.box,s=D.options,r=D.padding,o=s.borderWidth,n=s.backgroundColor;D.itemX=D.initialItemX;D.itemY=D.initialItemY;D.offsetWidth=0;D.lastItemY=0;if(!y){D.group=y=z.g("legend").attr({zIndex:7}).add(),D.contentGroup=z.g().attr({zIndex:1}).add(y),D.scrollGroup=z.g().add(D.contentGroup)}D.renderTitle();x=[];aC(C.series,function(G){var F=G.options;F.showInLegend&&!aw(F.linkedTo)&&(x=x.concat(G.legendItems||(F.legendType==="point"?G.data:G)))});ai(x,function(G,F){return(G.options&&G.options.legendIndex||0)-(F.options&&F.options.legendIndex||0)});s.reversed&&x.reverse();D.allItems=x;D.display=w=!!x.length;aC(x,function(F){D.renderItem(F)});v=s.width||D.offsetWidth;u=D.lastItemY+D.lastLineHeight+D.titleHeight;u=D.handleOverflow(u);if(o||n){v+=r;u+=r;if(t){if(v>0&&u>0){t[t.isNew?"attr":"animate"](t.crisp(null,null,null,v,u)),t.isNew=!1}}else{D.box=t=z.rect(0,0,v,u,s.borderRadius,o||0).attr({stroke:s.borderColor,"stroke-width":o||0,fill:n||aZ}).add(y).shadow(s.shadow),t.isNew=!0}t[w?"show":"hide"]()}D.legendWidth=v;D.legendHeight=u;aC(x,function(F){D.positionItem(F)});w&&y.align(az({width:v,height:u},s),!0,"spacingBox");C.isResizing||this.positionCheckboxes()},handleOverflow:function(C){var z=this,y=this.chart,x=y.renderer,w=this.options,v=w.y,v=y.spacingBox.height+(w.verticalAlign==="top"?-v:v)-this.padding,u=w.maxHeight,t=this.clipRect,s=w.navigation,r=aB(s.animation,!0),o=s.arrowSize||12,n=this.nav;w.layout==="horizontal"&&(v/=2);u&&(v=bd(v,u));if(C>v&&!w.useHTML){this.clipHeight=y=v-20-this.titleHeight;this.pageCount=b(C/y);this.currentPage=aB(this.currentPage,1);this.fullHeight=C;if(!t){t=z.clipRect=x.clipRect(0,0,9999,0),z.contentGroup.clip(t)}t.attr({height:y});if(!n){this.nav=n=x.g().attr({zIndex:1}).add(this.group),this.up=x.symbol("triangle",0,0,o,o).on("click",function(){z.scroll(-1,r)}).add(n),this.pager=x.text("",15,10).css(s.style).add(n),this.down=x.symbol("triangle-down",0,0,o,o).on("click",function(){z.scroll(1,r)}).add(n)}z.scroll(0);C=v}else{if(n){t.attr({height:y.chartHeight}),n.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0}}return C},scroll:function(x,w){var v=this.pageCount,u=this.currentPage+x,t=this.clipHeight,s=this.options.navigation,r=s.activeColor,o=s.inactiveColor,s=this.pager,n=this.padding;u>v&&(u=v);if(u>0){w!==au&&m(w,this.chart),this.nav.attr({translateX:n,translateY:t+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:u===1?o:r}).css({cursor:u===1?"default":"pointer"}),s.attr({text:u+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:u===v?o:r}).css({cursor:u===v?"default":"pointer"}),t=-bd(t*(u-1),this.fullHeight-t+n)+1,this.scrollGroup.animate({translateY:t}),s.attr({text:u+"/"+v}),this.currentPage=u,this.positionCheckboxes(t)}}};/Trident.*?11\.0/.test(aK)&&bB(e.prototype,"positionItem",function(o,n){var r=this;setTimeout(function(){o.call(r,n)})});bK.prototype={init:function(o,n){var v,u=o.series;o.series=null;v=at(a6,o);v.series=o.series=u;u=v.chart;this.margin=this.splashArray("margin",u);this.spacing=this.splashArray("spacing",u);var t=u.events;this.bounds={h:{},v:{}};this.callback=n;this.isResizing=0;this.options=v;this.axes=[];this.series=[];this.hasCartesianSeries=u.showAxes;var s=this,r;s.index=bU.length;bU.push(s);u.reflow!==!1&&a9(s,"load",function(){s.initReflow()});if(t){for(r in t){a9(s,r,t[r])}}s.xAxis=[];s.yAxis=[];s.animation=bF?!1:aB(u.animation,!0);s.pointCount=0;s.counters=new aJ;s.firstRender()},initSeries:function(o){var n=this.options.chart;(n=aV[o.type||n.type||n.defaultSeriesType])||h(17,!0);n=new n;n.init(this,o);return n},addSeries:function(o,n,t){var s,r=this;o&&(n=aB(n,!0),ao(r,"addSeries",{options:o},function(){s=r.initSeries(o);r.isDirtyLegend=!0;r.linkSeries();n&&r.redraw(t)}));return s},addAxis:function(o,n,u,t){var s=n?"xAxis":"yAxis",r=this.options;new L(this,at(o,{index:this[s].length,isX:n}));r[s]=ae(r[s]||{});r[s].push(o);aB(u,!0)&&this.redraw(t)},isInsidePlot:function(o,n,s){var r=s?n:o,o=s?o:n;return r>=0&&r<=this.plotWidth&&o>=0&&o<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&aC(this.axes,function(n){n.adjustTickAmount()});this.maxTicks=null},redraw:function(F){var D=this.axes,C=this.series,z=this.pointer,y=this.legend,x=this.isDirtyLegend,w,v,u=this.isDirtyBox,t=C.length,s=t,r=this.renderer,o=r.isHidden(),n=[];m(F,this);o&&this.cloneRenderTo();for(this.layOutTitles();s--;){if(F=C[s],F.options.stacking&&(w=!0,F.isDirty)){v=!0;break}}if(v){for(s=t;s--;){if(F=C[s],F.options.stacking){F.isDirty=!0}}}aC(C,function(G){G.isDirty&&G.options.legendType==="point"&&(x=!0)});if(x&&y.options.enabled){y.render(),this.isDirtyLegend=!1}w&&this.getStacks();if(this.hasCartesianSeries){if(!this.isResizing){this.maxTicks=null,aC(D,function(G){G.setScale()})}this.adjustTickAmounts();this.getMargins();aC(D,function(G){G.isDirty&&(u=!0)});aC(D,function(G){if(G.isDirtyExtremes){G.isDirtyExtremes=!1,n.push(function(){ao(G,"afterSetExtremes",az(G.eventArgs,G.getExtremes()));delete G.eventArgs})}(u||w)&&G.redraw()})}u&&this.drawChartBox();aC(C,function(G){G.isDirty&&G.visible&&(!G.isCartesian||G.xAxis)&&G.redraw()});z&&z.reset&&z.reset(!0);r.draw();ao(this,"redraw");o&&this.cloneRenderTo(!0);aC(n,function(G){G.call()})},showLoading:function(o){var n=this.options,s=this.loadingDiv,r=n.loading;if(!s){this.loadingDiv=s=aX(af,{className:"highcharts-loading"},az(r.style,{zIndex:10,display:aZ}),this.container),this.loadingSpan=aX("span",null,r.labelStyle,s)}this.loadingSpan.innerHTML=o||n.lang.loading;if(!this.loadingShown){a7(s,{opacity:0,display:"",left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px"}),by(s,{opacity:r.style.opacity},{duration:r.showDuration||0}),this.loadingShown=!0}},hideLoading:function(){var o=this.options,n=this.loadingDiv;n&&by(n,{opacity:0},{duration:o.loading.hideDuration||100,complete:function(){a7(n,{display:aZ})}});this.loadingShown=!1},get:function(o){var n=this.axes,t=this.series,s,r;for(s=0;sbd(w.dataMin,w.min)&&y=18&&o<=25&&(o=15)}u&&(u.css({width:(t.width||r)+"px"}).align(az({y:o+s.margin},t),!1,"spacingBox"),!t.floating&&!t.verticalAlign&&(o=b(o+u.getBBox().height)));this.titleOffset=o},getChartSize:function(){var o=this.options.chart,n=this.renderToClone||this.renderTo;this.containerWidth=ac(n,"width");this.containerHeight=ac(n,"height");this.chartWidth=ay(0,o.width||this.containerWidth||600);this.chartHeight=ay(0,aB(o.height,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(o){var n=this.renderToClone,r=this.container;o?n&&(this.renderTo.appendChild(r),bN(n),delete this.renderToClone):(r&&r.parentNode===this.renderTo&&this.renderTo.removeChild(r),this.renderToClone=n=this.renderTo.cloneNode(0),a7(n,{position:"absolute",top:"-9999px",display:"block"}),aq.body.appendChild(n),r&&n.appendChild(r))},getContainer:function(){var o,n=this.options.chart,t,s,r;this.renderTo=o=n.renderTo;r="highcharts-"+br++;if(f(o)){this.renderTo=o=aq.getElementById(o)}o||h(13,!0);t=bn(av(o,"data-highcharts-chart"));!isNaN(t)&&bU[t]&&bU[t].destroy();av(o,"data-highcharts-chart",this.index);o.innerHTML="";o.offsetWidth||this.cloneRenderTo();this.getChartSize();t=this.chartWidth;s=this.chartHeight;this.container=o=aX(af,{className:"highcharts-container"+(n.className?" "+n.className:""),id:r},az({position:"relative",overflow:"hidden",width:t+"px",height:s+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},n.style),this.renderToClone||o);this._cursor=o.style.cursor;this.renderer=n.forExport?new bE(o,t,s,!0):new aT(o,t,s);bF&&this.renderer.create(this,o,t,s)},getMargins:function(){var z=this.spacing,y,x=this.legend,w=this.margin,v=this.options.legend,u=aB(v.margin,10),t=v.x,s=v.y,r=v.align,o=v.verticalAlign,n=this.titleOffset;this.resetMargins();y=this.axisOffset;if(n&&!aw(w[0])){this.plotTop=ay(this.plotTop,n+this.options.title.margin+z[0])}if(x.display&&!v.floating){if(r==="right"){if(!aw(w[1])){this.marginRight=ay(this.marginRight,x.legendWidth-t+u+z[1])}}else{if(r==="left"){if(!aw(w[3])){this.plotLeft=ay(this.plotLeft,x.legendWidth+t+u+z[3])}}else{if(o==="top"){if(!aw(w[0])){this.plotTop=ay(this.plotTop,x.legendHeight+s+u+z[0])}}else{if(o==="bottom"&&!aw(w[2])){this.marginBottom=ay(this.marginBottom,x.legendHeight-s+u+z[2])}}}}}this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);this.hasCartesianSeries&&aC(this.axes,function(C){C.getOffset()});aw(w[3])||(this.plotLeft+=y[3]);aw(w[0])||(this.plotTop+=y[0]);aw(w[2])||(this.marginBottom+=y[2]);aw(w[1])||(this.marginRight+=y[1]);this.setChartSize()},initReflow:function(){function o(u){var w=t.width||ac(s,"width"),v=t.height||ac(s,"height"),u=u?u.target:a4;if(!n.hasUserSize&&w&&v&&(u===a4||u===aq)){if(w!==n.containerWidth||v!==n.containerHeight){clearTimeout(r),n.reflowTimeout=r=setTimeout(function(){if(n.container){n.setSize(w,v,!1),n.hasUserSize=null}},100)}n.containerWidth=w;n.containerHeight=v}}var n=this,t=n.options.chart,s=n.renderTo,r;n.reflow=o;a9(a4,"resize",o);a9(n,"destroy",function(){bw(a4,"resize",o)})},setSize:function(o,n,v){var u=this,t,s,r;u.isResizing+=1;r=function(){u&&ao(u,"endResize",null,function(){u.isResizing-=1})};m(v,u);u.oldChartHeight=u.chartHeight;u.oldChartWidth=u.chartWidth;if(aw(o)){u.chartWidth=t=ay(0,ax(o)),u.hasUserSize=!!t}if(aw(n)){u.chartHeight=s=ay(0,ax(n))}a7(u.container,{width:t+"px",height:s+"px"});u.setChartSize(!0);u.renderer.setSize(t,s,v);u.maxTicks=null;aC(u.axes,function(w){w.isDirty=!0;w.setScale()});aC(u.series,function(w){w.isDirty=!0});u.isDirtyLegend=!0;u.isDirtyBox=!0;u.getMargins();u.redraw(v);u.oldChartHeight=null;ao(u,"resize");i===!1?r():setTimeout(r,i&&i.duration||500)},setChartSize:function(C){var z=this.inverted,y=this.renderer,x=this.chartWidth,w=this.chartHeight,v=this.options.chart,u=this.spacing,t=this.clipOffset,s,r,o,n;this.plotLeft=s=ax(this.plotLeft);this.plotTop=r=ax(this.plotTop);this.plotWidth=o=ay(0,ax(x-s-this.marginRight));this.plotHeight=n=ay(0,ax(w-r-this.marginBottom));this.plotSizeX=z?n:o;this.plotSizeY=z?o:n;this.plotBorderWidth=v.plotBorderWidth||0;this.spacingBox=y.spacingBox={x:u[3],y:u[0],width:x-u[3]-u[1],height:w-u[0]-u[2]};this.plotBox=y.plotBox={x:s,y:r,width:o,height:n};x=2*a3(this.plotBorderWidth/2);z=b(ay(x,t[3])/2);y=b(ay(x,t[0])/2);this.clipBox={x:z,y:y,width:a3(this.plotSizeX-ay(x,t[1])/2-z),height:a3(this.plotSizeY-ay(x,t[2])/2-y)};C||aC(this.axes,function(D){D.setAxisSize();D.setAxisTranslation()})},resetMargins:function(){var o=this.spacing,n=this.margin;this.plotTop=aB(n[0],o[0]);this.marginRight=aB(n[1],o[1]);this.marginBottom=aB(n[2],o[2]);this.plotLeft=aB(n[3],o[3]);this.axisOffset=[0,0,0,0];this.clipOffset=[0,0,0,0]},drawChartBox:function(){var U=this.options.chart,T=this.renderer,S=this.chartWidth,R=this.chartHeight,Q=this.chartBackground,P=this.plotBackground,O=this.plotBorder,N=this.plotBGImage,M=U.borderWidth||0,K=U.backgroundColor,J=U.plotBackgroundColor,I=U.plotBackgroundImage,G=U.plotBorderWidth||0,C,z=this.plotLeft,D=this.plotTop,F=this.plotWidth,x=this.plotHeight,w=this.plotBox,v=this.clipRect,y=this.clipBox;C=M+(U.shadow?8:0);if(M||K){if(Q){Q.animate(Q.crisp(null,null,null,S-C,R-C))}else{Q={fill:K||aZ};if(M){Q.stroke=U.borderColor,Q["stroke-width"]=M}this.chartBackground=T.rect(C/2,C/2,S-C,R-C,U.borderRadius,M).attr(Q).add().shadow(U.shadow)}}if(J){P?P.animate(w):this.plotBackground=T.rect(z,D,F,x,0).attr({fill:J}).add().shadow(U.plotShadow)}if(I){N?N.animate(w):this.plotBGImage=T.image(I,z,D,F,x).add()}v?v.animate({width:y.width,height:y.height}):this.clipRect=T.clipRect(y);if(G){O?O.animate(O.crisp(null,z,D,F,x)):this.plotBorder=T.rect(z,D,F,x,0,-G).attr({stroke:U.plotBorderColor,"stroke-width":G,zIndex:1}).add()}this.isDirtyBox=!1},propFromSeries:function(){var o=this,n=o.options.chart,u,t=o.options.series,s,r;aC(["inverted","angular","polar"],function(v){u=aV[n.type||n.defaultSeriesType];r=o[v]||n[v]||u&&u.prototype[v];for(s=t&&t.length;!r&&s--;){(u=aV[t[s].type])&&u.prototype[v]&&(r=!0)}o[v]=r})},linkSeries:function(){var o=this,n=o.series;aC(n,function(r){r.linkedSeries.length=0});aC(n,function(r){var s=r.options.linkedTo;if(f(s)&&(s=s===":previous"?o.series[r.index-1]:o.get(s))){s.linkedSeries.push(r),r.linkedParent=s}})},render:function(){var o=this,n=o.axes,v=o.renderer,u=o.options,t=u.labels,s=u.credits,r;o.setTitle();o.legend=new e(o,u.legend);o.getStacks();aC(n,function(w){w.setScale()});o.getMargins();o.maxTicks=null;aC(n,function(w){w.setTickPositions(!0);w.setMaxTicks()});o.adjustTickAmounts();o.getMargins();o.drawChartBox();o.hasCartesianSeries&&aC(n,function(w){w.render()});if(!o.seriesGroup){o.seriesGroup=v.g("series-group").attr({zIndex:3}).add()}aC(o.series,function(w){w.translate();w.setTooltipPoints();w.render()});t.items&&aC(t.items,function(w){var z=az(t.style,w.style),y=bn(z.left)+o.plotLeft,x=bn(z.top)+o.plotTop+12;delete z.left;delete z.top;v.text(w.html,y,x).attr({zIndex:2}).css(z).add()});if(s.enabled&&!o.credits){r=s.href,o.credits=v.text(s.text,0,0).on("click",function(){if(r){location.href=r}}).attr({align:s.position.align,zIndex:8}).css(s.style).add().align(s.position)}o.hasRendered=!0},destroy:function(){var o=this,n=o.axes,u=o.series,t=o.container,s,r=t&&t.parentNode;ao(o,"destroy");bU[o.index]=au;o.renderTo.removeAttribute("data-highcharts-chart");bw(o);for(s=n.length;s--;){n[s]=n[s].destroy()}for(s=u.length;s--;){u[s]=u[s].destroy()}aC("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(v){var w=o[v];w&&w.destroy&&(o[v]=w.destroy())});if(t){t.innerHTML="",bw(t),r&&bN(t)}for(s in o){delete o[s]}},isReadyToRender:function(){var n=this;return !aR&&a4==a4.top&&aq.readyState!=="complete"||bF&&!a4.canvg?(bF?bL.push(function(){n.firstRender()},n.options.global.canvasToolsURL):aq.attachEvent("onreadystatechange",function(){aq.detachEvent("onreadystatechange",n.firstRender);aq.readyState==="complete"&&n.firstRender()}),!1):!0},firstRender:function(){var o=this,n=o.options,r=o.callback;if(o.isReadyToRender()){o.getContainer(),ao(o,"init"),o.resetMargins(),o.setChartSize(),o.propFromSeries(),o.getAxes(),aC(n.series||[],function(s){o.initSeries(s)}),o.linkSeries(),ao(o,"beforeRender"),o.pointer=new a(o,n),o.render(),o.renderer.draw(),r&&r.apply(o,[o]),aC(o.callbacks,function(s){s.apply(o,[o])}),o.cloneRenderTo(!0),ao(o,"load")}},splashArray:function(o,n){var r=n[o],r=aY(r)?r:[r,r,r,r];return[aB(n[o+"Top"],r[0]),aB(n[o+"Right"],r[1]),aB(n[o+"Bottom"],r[2]),aB(n[o+"Left"],r[3])]}};bK.prototype.callbacks=[];var aP=function(){};aP.prototype={init:function(o,n,r){this.series=o;this.applyOptions(n,r);this.pointAttr={};if(o.options.colorByPoint&&(n=o.options.colors||o.chart.options.colors,this.color=this.color||n[o.colorCounter++],o.colorCounter===n.length)){o.colorCounter=0}o.chart.pointCount++;return this},applyOptions:function(o,n){var s=this.series,r=s.pointValKey,o=aP.prototype.optionsToObject.call(this,o);az(this,o);this.options=this.options?az(this.options,o):o;if(r){this.y=this[r]}if(this.x===au&&s){this.x=n===au?s.autoIncrement():n}return this},optionsToObject:function(o){var n,v=this.series,u=v.pointArrayMap||["y"],t=u.length,s=0,r=0;if(typeof o==="number"||o===null){n={y:o}}else{if(bl(o)){n={};if(o.length>t){v=typeof o[0];if(v==="string"){n.name=o[0]}else{if(v==="number"){n.x=o[0]}}s++}for(;ro+1&&n.push(s.slice(o+1,u)),o=u):u===r-1&&n.push(s.slice(o+1,u+1))})}}this.segments=n},setOptions:function(o){var n=this.chart.options,s=n.plotOptions,r=s[this.type];this.userOptions=o;o=at(r,s.series,o);this.tooltipOptions=at(n.tooltip,o.tooltip);r.marker===null&&delete o.marker;return o},getColor:function(){var o=this.options,n=this.userOptions,t=this.chart.options.colors,s=this.chart.counters,r;r=o.color||aS[this.type].color;if(!r&&!o.colorByPoint){aw(n._colorIndex)?o=n._colorIndex:(n._colorIndex=s.color,o=s.color++),r=t[o]}this.color=r;s.wrapColor(t.length)},getSymbol:function(){var o=this.userOptions,n=this.options.marker,s=this.chart,r=s.options.symbols,s=s.counters;this.symbol=n.symbol;if(!this.symbol){aw(o._symbolIndex)?o=o._symbolIndex:(o._symbolIndex=s.symbol,o=s.symbol++),this.symbol=r[o]}if(/^url/.test(this.symbol)){n.radius=0}s.wrapSymbol(r.length)},drawLegendSymbol:function(o){var n=this.options,v=n.marker,u=o.options,t;t=u.symbolWidth;var s=this.chart.renderer,r=this.legendGroup,o=o.baseline-ax(s.fontMetrics(u.itemStyle.fontSize).b*0.3);if(n.lineWidth){u={"stroke-width":n.lineWidth};if(n.dashStyle){u.dashstyle=n.dashStyle}this.legendLine=s.path(["M",0,o,"L",t,o]).attr(u).add(r)}if(v&&v.enabled){n=v.radius,this.legendSymbol=t=s.symbol(this.symbol,t/2-n,o-n,2*n,2*n).add(r),t.isMarker=!0}},addPoint:function(I,G,F,D){var C=this.options,z=this.data,y=this.graph,x=this.area,w=this.chart,v=this.xData,u=this.yData,t=this.zData,r=this.names,o=y&&y.shift||0,n=C.data,J;m(D,w);F&&aC([y,x,this.graphNeg,this.areaNeg],function(s){if(s){s.shift=o+1}});if(x){x.isArea=!0}G=aB(G,!0);D={series:this};this.pointClass.prototype.applyOptions.apply(D,[I]);y=D.x;x=v.length;if(this.requireSorting&&yy;){x--}}v.splice(x,0,y);u.splice(x,0,this.toYData?this.toYData(D):D.y);t.splice(x,0,D.z);if(r){r[y]=D.name}n.splice(x,0,I);J&&(this.data.splice(x,0,null),this.processData());C.legendType==="point"&&this.generatePoints();F&&(z[0]&&z[0].remove?z[0].remove(!1):(z.shift(),v.shift(),u.shift(),t.shift(),n.shift()));this.isDirtyData=this.isDirty=!0;G&&(this.getAttribs(),w.redraw())},setData:function(G,F){var D=this.points,C=this.options,z=this.chart,y=null,x=this.xAxis,w=x&&x.categories&&!x.categories.length?[]:null,v;this.xIncrement=null;this.pointRange=x&&x.categories?1:C.pointRange;this.colorCounter=0;var u=[],t=[],s=[],r=G?G.length:[];v=aB(C.turboThreshold,1000);var o=this.pointArrayMap,o=o&&o.length,n=!!this.toYData;if(v&&r>v){for(v=0;y===null&&vo||this.forceCrop)){if(z=s.min,s=s.max,y[w-1]s){y=[],x=[]}else{if(y[0]s){v=this.cropData(this.xData,this.yData,z,s),y=v.xData,x=v.yData,v=v.start,u=!0}}}for(s=y.length-1;s>=0;s--){w=y[s]-y[s-1],w>0&&(t===au||w=v){s=ay(0,n-o);break}}for(;nu){r=n+o;break}}return{xData:x.slice(s,r),yData:w.slice(s,r),start:s,end:r}},generatePoints:function(){var D=this.options.data,C=this.data,z,y=this.processedXData,x=this.processedYData,w=this.pointClass,v=y.length,u=this.cropStart||0,t,s=this.hasGroupedData,r,o=[],n;if(!C&&!s){C=[],C.length=D.length,C=this.data=C}for(n=0;n0),r=this.getExtremesFromAll||this.cropped||(z[n+1]||r)>=t&&(z[n-1]||r)<=u,s&&r){if(s=o.length){for(;s--;){o[s]!==null&&(w[v++]=o[s])}}else{w[v++]=o}}}this.dataMin=aB(void 0,aL(w));this.dataMax=aB(void 0,am(w))},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var J=this.options,I=J.stacking,G=this.xAxis,F=G.categories,D=this.yAxis,C=this.points,z=C.length,y=!!this.modifyValue,x=J.pointPlacement,w=x==="between"||bI(x),v=J.threshold,J=0;J=t.min&&w<=t.max){r=x[o+1];w=v===au?0:v+1;for(v=x[o+1]?bd(ay(0,a3((u.clientX+(r?r.wrappedClientX||r.clientX:s))/2)),s):s;w>=0&&w<=v;){n[w++]=u}}}this.tooltipPoints=n}},tooltipHeaderFormatter:function(o){var n=this.tooltipOptions,v=n.xDateFormat,u=n.dateTimeLabelFormats,t=this.xAxis,s=t&&t.options.type==="datetime",n=n.headerFormat,t=t&&t.closestPointRange,r;if(s&&!v){if(t){for(r in bk){if(bk[r]>=t){v=u[r];break}}}else{v=u.day}}s&&v&&bI(o.key)&&(n=n.replace("{point.key}","{point.key:"+v+"}"));return be(n,{point:o,series:this})},onMouseOver:function(){var o=this.chart,n=o.hoverSeries;if(n&&n!==this){n.onMouseOut()}this.options.events.mouseOver&&ao(this,"mouseOver");this.setState("hover");o.hoverSeries=this},onMouseOut:function(){var o=this.options,n=this.chart,s=n.tooltip,r=n.hoverPoint;if(r){r.onMouseOut()}this&&o.events.mouseOut&&ao(this,"mouseOut");s&&!o.stickyTracking&&(!s.shared||this.noSharedTooltip)&&s.hide();this.setState();n.hoverSeries=null},animate:function(o){var n=this,w=n.chart,v=w.renderer,u;u=n.options.animation;var t=w.clipBox,s=w.inverted,r;if(u&&!aY(u)){u=aS[n.type].animation}r="_sharedClip"+u.duration+u.easing;if(o){o=w[r],u=w[r+"m"],o||(w[r]=o=v.clipRect(az(t,{width:0})),w[r+"m"]=u=v.clipRect(-99,s?-w.plotLeft:-w.plotTop,99,s?w.chartWidth:w.chartHeight)),n.group.clip(o),n.markerGroup.clip(u),n.sharedClipKey=r}else{if(o=w[r]){o.animate({width:w.plotSizeX},u),w[r+"m"].animate({width:w.plotSizeX+99},u)}n.animate=null;n.animationTimeout=setTimeout(function(){n.afterAnimate()},u.duration)}},afterAnimate:function(){var o=this.chart,n=this.sharedClipKey,r=this.group;r&&this.options.clip!==!1&&(r.clip(o.clipRect),this.markerGroup.clip());setTimeout(function(){n&&o[n]&&(o[n]=o[n].destroy(),o[n+"m"]=o[n+"m"].destroy())},100)},drawPoints:function(){var F,D=this.points,C=this.chart,z,y,x,w,v,u,t,s,r=this.options.marker,o,n=this.markerGroup;if(r.enabled||this._hasPointMarkers){for(x=D.length;x--;){if(w=D[x],z=a3(w.plotX),y=w.plotY,s=w.graphic,u=w.marker||{},F=r.enabled&&u.enabled===au||u.enabled,o=C.isInsidePlot(ax(z),y,C.inverted),F&&y!==au&&!isNaN(y)&&w.y!==null){if(F=w.pointAttr[w.selected?"select":""],v=F.r,u=aB(u.symbol,this.symbol),t=u.indexOf("url")===0,s){s.attr({visibility:o?aR?"inherit":"visible":"hidden"}).animate(az({x:z-v,y:y-v},s.symbolName?{width:2*v,height:2*v}:{}))}else{if(o&&(v>0||t)){w.graphic=C.renderer.symbol(u,z-v,y-v,2*v,2*v).attr(F).add(n)}}}else{if(s){w.graphic=s.destroy()}}}}},convertAttribs:function(o,n,w,v){var u=this.pointAttrToOptions,t,s,r={},o=o||{},n=n||{},w=w||{},v=v||{};for(t in u){s=u[t],r[t]=aB(o[s],n[t],w[t],v[t])}return r},getAttribs:function(){var G=this,F=G.options,D=aS[G.type].marker?F.marker:F,C=D.states,z=C.hover,y,x=G.color,w={stroke:x,fill:x},v=G.points||[],u=[],t,s=G.pointAttrToOptions,r=F.negativeColor,o=D.lineColor,n;F.marker?(z.radius=z.radius||D.radius+2,z.lineWidth=z.lineWidth||D.lineWidth+1):z.color=z.color||bW(z.color||x).brighten(z.brightness).get();u[""]=G.convertAttribs(D,w);aC(["hover","select"],function(I){u[I]=G.convertAttribs(C[I],u[""])});G.pointAttr=u;for(x=v.length;x--;){w=v[x];if((D=w.options&&w.options.marker||w.options)&&D.enabled===!1){D.radius=0}if(w.negative&&r){w.color=w.fillColor=r}y=F.colorByPoint||w.color;if(w.options){for(n in s){aw(D[s[n]])&&(y=!0)}}if(y){D=D||{};t=[];C=D.states||{};y=C.hover=C.hover||{};if(!F.marker){y.color=bW(y.color||w.color).brighten(y.brightness||z.brightness).get()}t[""]=G.convertAttribs(az({color:w.color,fillColor:w.color,lineColor:o===null?w.color:au},D),u[""]);t.hover=G.convertAttribs(C.hover,u.hover,t[""]);t.select=G.convertAttribs(C.select,u.select,t[""])}else{t=u}w.pointAttr=t}},update:function(o,n){var u=this.chart,t=this.type,s=aV[t].prototype,r,o=at(this.userOptions,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},o);this.remove(!1);for(r in s){s.hasOwnProperty(r)&&(this[r]=au)}az(this,aV[o.type||t].prototype);this.init(u,o);aB(n,!0)&&u.redraw(!1)},destroy:function(){var x=this,w=x.chart,v=/AppleWebKit\/533/.test(aK),u,t,s=x.data||[],r,o,n;ao(x,"destroy");bw(x);aC(["xAxis","yAxis"],function(y){if(n=x[y]){bz(n.series,x),n.isDirty=n.forceRedraw=!0,n.stacks={}}});x.legendItem&&x.chart.legend.destroyItem(x);for(t=s.length;t--;){(r=s[t])&&r.destroy&&r.destroy()}x.points=null;clearTimeout(x.animationTimeout);aC("area,graph,dataLabelsGroup,group,markerGroup,tracker,graphNeg,areaNeg,posClip,negClip".split(","),function(y){x[y]&&(u=v&&y==="group"?"hide":"destroy",x[y][u]())});if(w.hoverSeries===x){w.hoverSeries=null}bz(w.series,x);for(o in x){delete x[o]}},drawDataLabels:function(){var o=this,n=o.options.dataLabels,v=o.points,u,t,s,r;if(n.enabled||o._hasPointLabels){o.dlProcessOptions&&o.dlProcessOptions(n),r=o.plotGroup("dataLabelsGroup","data-labels",o.visible?"visible":"hidden",n.zIndex||6),t=n,aC(v,function(F){var C,z=F.dataLabel,y,x,w=F.connector,D=!0;u=F.options&&F.options.dataLabels;C=aB(u&&u.enabled,t.enabled);if(z&&!C){F.dataLabel=z.destroy()}else{if(C){n=at(t,u);C=n.rotation;y=F.getLabelConfig();s=n.format?be(n.format,y):n.formatter.call(y,n);n.style.color=aB(n.color,n.style.color,o.color,"black");if(z){if(aw(s)){z.attr({text:s}),D=!1}else{if(F.dataLabel=z=z.destroy(),w){F.connector=w.destroy()}}}else{if(aw(s)){z={fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth,r:n.borderRadius||0,rotation:C,padding:n.padding,zIndex:1};for(x in z){z[x]===au&&delete z[x]}z=F.dataLabel=o.chart.renderer[C?"text":"label"](s,0,-999,null,null,null,n.useHTML).attr(z).css(n.style).add(r).shadow(n.shadow)}}z&&o.alignDataLabel(F,z,n,null,D)}}})}},alignDataLabel:function(y,x,w,v,u){var t=this.chart,s=t.inverted,r=aB(y.plotX,-999),o=aB(y.plotY,-999),n=x.getBBox();if(y=this.visible&&t.isInsidePlot(y.plotX,y.plotY,s)){v=az({x:s?t.plotWidth-o:r,y:ax(s?t.plotHeight-r:o),width:0,height:0},v),az(w,{width:n.width,height:n.height}),w.rotation?(s={align:w.align,x:v.x+w.x+v.width/2,y:v.y+w.y+v.height/2},x[u?"attr":"animate"](s)):(x.align(w,null,v),s=x.alignAttr,aB(w.overflow,"justify")==="justify"?this.justifyDataLabel(x,w,s,n,v,u):aB(w.crop,!0)&&(y=t.isInsidePlot(s.x,s.y)&&t.isInsidePlot(s.x+n.width,s.y+n.height)))}y||x.attr({y:-999})},justifyDataLabel:function(z,y,x,w,v,u){var t=this.chart,s=y.align,r=y.verticalAlign,o,n;o=x.x;if(o<0){s==="right"?y.align="left":y.x=-o,n=!0}o=x.x+w.width;if(o>t.plotWidth){s==="left"?y.align="right":y.x=t.plotWidth-o,n=!0}o=x.y;if(o<0){r==="bottom"?y.verticalAlign="top":y.y=-o,n=!0}o=x.y+w.height;if(o>t.plotHeight){r==="top"?y.verticalAlign="bottom":y.y=t.plotHeight-o,n=!0}if(n){z.placed=!u,z.align(y,null,v)}},getSegmentPath:function(o){var n=this,s=[],r=n.options.step;aC(o,function(x,w){var v=x.plotX,u=x.plotY,t;n.getPointSpline?s.push.apply(s,n.getPointSpline(o,x,w)):(s.push(w?"L":"M"),r&&w&&(t=o[w-1],r==="right"?s.push(t.plotX,u):r==="center"?s.push((t.plotX+v)/2,t.plotY,(t.plotX+v)/2,u):s.push(v,t.plotY)),s.push(x.plotX,x.plotY))});return s},getGraphPath:function(){var o=this,n=[],s,r=[];aC(o.segments,function(t){s=o.getSegmentPath(t);t.length>1?n=n.concat(s):r.push(t[0])});o.singlePoints=r;return o.graphPath=n},drawGraph:function(){var o=this,n=this.options,v=[["graph",n.lineColor||this.color]],u=n.lineWidth,t=n.dashStyle,s=this.getGraphPath(),r=n.negativeColor;r&&v.push(["graphNeg",r]);aC(v,function(z,y){var x=z[0],w=o[x];if(w){ar(w),w.animate({d:s})}else{if(u&&s.length){w={stroke:z[1],"stroke-width":u,zIndex:1},t?w.dashstyle=t:w["stroke-linecap"]=w["stroke-linejoin"]="round",o[x]=o.chart.renderer.path(s).attr(w).add(o.group).shadow(!y&&n.shadow)}}})},clipNeg:function(){var C=this.options,z=this.chart,y=z.renderer,x=C.negativeColor||C.negativeFillColor,w,v=this.graph,u=this.area,t=this.posClip,s=this.negClip;w=z.chartWidth;var r=z.chartHeight,o=ay(w,r),n=this.yAxis;if(x&&(v||u)){x=ax(n.toPixels(C.threshold||0,!0));C={x:0,y:0,width:o,height:x};o={x:0,y:x,width:o,height:o};if(z.inverted){C.height=o.y=z.plotWidth-x,y.isVML&&(C={x:z.plotWidth-x-z.plotLeft,y:0,width:w,height:r},o={x:x+z.plotLeft-w,y:0,width:z.plotLeft+x,height:w})}n.reversed?(z=o,w=C):(z=C,w=o);t?(t.animate(z),s.animate(w)):(this.posClip=t=y.clipRect(z),this.negClip=s=y.clipRect(w),v&&this.graphNeg&&(v.clip(t),this.graphNeg.clip(s)),u&&(u.clip(t),this.areaNeg.clip(s)))}},invertGroups:function(){function o(){var s={width:n.yAxis.len,height:n.xAxis.len};aC(["group","markerGroup"],function(t){n[t]&&n[t].attr(s).invert()})}var n=this,r=n.chart;if(n.xAxis){a9(r,"resize",o),a9(n,"destroy",function(){bw(r,"resize",o)}),o(),n.invertGroups=o}},plotGroup:function(o,n,v,u,t){var s=this[o],r=!s;r&&(this[o]=s=this.chart.renderer.g(n).attr({visibility:v,zIndex:u||0.1}).add(t));s[r?"attr":"animate"](this.getPlotBox());return s},getPlotBox:function(){return{translateX:this.xAxis?this.xAxis.left:this.chart.plotLeft,translateY:this.yAxis?this.yAxis.top:this.chart.plotTop,scaleX:1,scaleY:1}},render:function(){var o=this.chart,n,w=this.options,v=w.animation&&!!this.animate&&o.renderer.isSVG,u=this.visible?"visible":"hidden",t=w.zIndex,s=this.hasRendered,r=o.seriesGroup;n=this.plotGroup("group","series",u,t,r);this.markerGroup=this.plotGroup("markerGroup","markers",u,t,r);v&&this.animate(!0);this.getAttribs();n.inverted=this.isCartesian?o.inverted:!1;this.drawGraph&&(this.drawGraph(),this.clipNeg());this.drawDataLabels();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();o.inverted&&this.invertGroups();w.clip!==!1&&!this.sharedClipKey&&!s&&n.clip(o.clipRect);v?this.animate():s||this.afterAnimate();this.isDirty=this.isDirtyData=!1;this.hasRendered=!0},redraw:function(){var o=this.chart,n=this.isDirtyData,t=this.group,s=this.xAxis,r=this.yAxis;t&&(o.inverted&&t.attr({width:o.plotWidth,height:o.plotHeight}),t.animate({translateX:aB(s&&s.left,o.plotLeft),translateY:aB(r&&r.top,o.plotTop)}));this.translate();this.setTooltipPoints(!0);this.render();n&&ao(this,"updatedData")},setState:function(o){var n=this.options,t=this.graph,s=this.graphNeg,r=n.states,n=n.lineWidth,o=o||"";if(this.state!==o){this.state=o,r[o]&&r[o].enabled===!1||(o&&(n=r[o].lineWidth||n+1),t&&!t.dashstyle&&(o={"stroke-width":n},t.attr(o),s&&s.attr(o)))}},setVisible:function(o,n){var w=this,v=w.chart,u=w.legendItem,t,s=v.options.chart.ignoreHiddenSeries,r=w.visible;t=(w.visible=o=w.userOptions.visible=o===au?!r:o)?"show":"hide";aC(["group","dataLabelsGroup","markerGroup","tracker"],function(x){if(w[x]){w[x][t]()}});if(v.hoverSeries===w){w.onMouseOut()}u&&v.legend.colorizeItem(w,o);w.isDirty=!0;w.options.stacking&&aC(v.series,function(x){if(x.options.stacking&&x.visible){x.isDirty=!0}});aC(w.linkedSeries,function(x){x.setVisible(o,!1)});if(s){v.isDirtyBox=!0}n!==!1&&v.redraw();ao(w,t)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(n){this.selected=n=n===au?!this.selected:n;if(this.checkbox){this.checkbox.checked=n}ao(this,n?"select":"unselect")},drawTracker:function(){var F=this,D=F.options,C=D.trackByArea,z=[].concat(C?F.areaPath:F.graphPath),y=z.length,x=F.chart,w=x.pointer,v=x.renderer,u=x.options.tooltip.snap,t=F.tracker,s=D.cursor,r=s&&{cursor:s},s=F.singlePoints,o,n=function(){if(x.hoverSeries!==F){F.onMouseOver()}};if(y&&!C){for(o=y+1;o--;){z[o]==="M"&&z.splice(o+1,0,z[o+1]-u,z[o+2],"L"),(o&&z[o]==="M"||o===y)&&z.splice(o,0,"L",z[o-2]+u,z[o-1])}}for(o=0;o=0;u--){r=aB(o[u].yBottom,s),uC&&s>w?(s=ay(C,w),o=2*w-s):su&&o>w?(o=ay(u,w),s=2*w-o):ou?C-u:v-(w.translate(F.y,0,1,0,1)<=v?u:0)));F.barX=J;F.pointWidth=t;C=a5(J)<0.5;G=ax(J+G)+o;J=ax(J)+o;G-=J;D=a5(I)<0.5;K=ax(I+K)+n;I=ax(I)+n;K-=I;C&&(J+=1,G-=1);D&&(I-=1,K+=1);F.shapeType="rect";F.shapeArgs={x:J,y:I,width:G,height:K}})},getSymbol:ah,drawLegendSymbol:bf.prototype.drawLegendSymbol,drawGraph:ah,drawPoints:function(){var o=this,n=o.options,s=o.chart.renderer,r;aC(o.points,function(v){var u=v.plotY,t=v.graphic;if(u!==au&&!isNaN(u)&&v.y!==null){r=v.shapeArgs,t?(ar(t),t.animate(at(r))):v.graphic=s[v.shapeType](r).attr(v.pointAttr[v.selected?"select":""]).add(o.group).shadow(n.shadow,null,n.stacking&&!n.borderRadius)}else{if(t){v.graphic=t.destroy()}}})},drawTracker:function(){var o=this,n=o.chart,u=n.pointer,t=o.options.cursor,s=t&&{cursor:t},r=function(x){var w=x.target,v;if(n.hoverSeries!==o){o.onMouseOver()}for(;w&&!v;){v=w.point,w=w.parentNode}if(v!==au&&v!==n.hoverPoint){v.onMouseOver(x)}};aC(o.points,function(v){if(v.graphic){v.graphic.element.point=v}if(v.dataLabel){v.dataLabel.element.point=v}});if(!o._hasTracking){aC(o.trackerGroups,function(v){if(o[v]&&(o[v].addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(w){u.onTrackerMouseOut(w)}).css(s),aE)){o[v].on("touchstart",r)}}),o._hasTracking=!0}},alignDataLabel:function(y,x,w,v,u){var t=this.chart,s=t.inverted,r=y.dlBox||y.shapeArgs,o=y.below||y.plotY>aB(this.translatedThreshold,t.plotSizeY),n=aB(w.inside,!!this.options.stacking);if(r&&(v=at(r),s&&(v={x:t.plotWidth-v.y-v.height,y:t.plotHeight-v.x-v.width,width:v.height,height:v.width}),!n)){s?(v.x+=o?0:v.width,v.width=0):(v.y+=o?v.height:0,v.height=0)}w.align=aB(w.align,!s||n?"center":o?"right":"left");w.verticalAlign=aB(w.verticalAlign,s||n?"middle":o?"top":"bottom");a1.prototype.alignDataLabel.call(this,y,x,w,v,u)},animate:function(o){var n=this.yAxis,t=this.options,s=this.chart.inverted,r={};if(aR){o?(r.scaleY=0.001,o=bd(n.pos+n.len,ay(n.pos,n.toPixels(t.threshold))),s?r.translateX=o-n.len:r.translateY=o,this.group.attr(r)):(r.scaleY=1,r[s?"translateX":"translateY"]=n.pos,this.group.animate(r,this.options.animation),this.animate=null)}},remove:function(){var o=this,n=o.chart;n.hasRendered&&aC(n.series,function(r){if(r.type===o.type){r.isDirty=!0}});a1.prototype.remove.apply(o,arguments)}});aV.column=bg;aS.bar=at(aS.column);bC=bc(bg,{type:"bar",inverted:!0});aV.bar=bC;aS.scatter=at(aU,{lineWidth:0,tooltip:{headerFormat:'{series.name}
',pointFormat:"x: {point.x}
y: {point.y}
",followPointer:!0},stickyTracking:!1});bC=bc(a1,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["markerGroup"],drawTracker:bg.prototype.drawTracker,setTooltipPoints:ah});aV.scatter=bC;aS.pie=at(aU,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});aU={type:"pie",isCartesian:!1,pointClass:bc(aP,{init:function(){aP.prototype.init.apply(this,arguments);var o=this,n;if(o.y<0){o.y=null}az(o,{visible:o.visible!==!1,name:aB(o.name,"Slice")});n=function(r){o.slice(r.type==="select")};a9(o,"select",n);a9(o,"unselect",n);return o},setVisible:function(o){var n=this,t=n.series,s=t.chart,r;n.visible=n.options.visible=o=o===au?!n.visible:o;t.options.data[k(n,t.data)]=n.options;r=o?"show":"hide";aC(["graphic","dataLabel","connector","shadowGroup"],function(u){if(n[u]){n[u][r]()}});n.legendItem&&s.legend.colorizeItem(n,o);if(!t.isDirty&&t.options.ignoreHiddenPoint){t.isDirty=!0,s.redraw()}},slice:function(o,n,s){var r=this.series;m(s,r.chart);aB(n,!0);this.sliced=this.options.sliced=o=aw(o)?o:!this.sliced;r.options.data[k(this,r.data)]=this.options;o=o?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(o);this.shadowGroup&&this.shadowGroup.animate(o)}}),requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:ah,animate:function(o){var n=this,s=n.points,r=n.startAngleRad;if(!o){aC(s,function(t){var u=t.graphic,t=t.shapeArgs;u&&(u.attr({r:n.center[3]/2,start:r,end:r}),u.animate({r:t.r,start:t.start,end:t.end},n.options.animation))}),n.animate=null}},setData:function(o,n){a1.prototype.setData.call(this,o,!1);this.processData();this.generatePoints();aB(n,!0)&&this.chart.redraw()},generatePoints:function(){var o,n=0,u,t,s,r=this.options.ignoreHiddenPoint;a1.prototype.generatePoints.call(this);u=this.points;t=u.length;for(o=0;o0?s.y/n*100:0,s.total=n}},getCenter:function(){var o=this.options,n=this.chart,w=2*(o.slicedOffset||0),v,u=n.plotWidth-2*w,t=n.plotHeight-2*w,n=o.center,o=[aB(n[0],"50%"),aB(n[1],"50%"),o.size||"100%",o.innerSize||0],s=bd(u,t),r;return bJ(o,function(y,x){r=/%$/.test(y);v=x<2||x===2&&r;return(r?[u,t,s,s][x]*bn(y)/100:y)+(v?w:0)})},translate:function(J){this.generatePoints();var I=0,G=this.options,F=G.slicedOffset,D=F+G.borderWidth,C,z,y,x=G.startAngle||0,w=this.startAngleRad=bM/180*(x-90),x=(this.endAngleRad=bM/180*((G.endAngle||x+360)-90))-w,v=this.points,u=G.dataLabels.distance,G=G.ignoreHiddenPoint,t,s=v.length,r;if(!J){this.center=J=this.getCenter()}this.getX=function(n,o){y=a0.asin((n-J[1])/(J[2]/2+u));return J[0]+(o?-1:1)*aW(y)*(J[2]/2+u)};for(t=0;t0.75*x&&(y-=2*bM);r.slicedTranslation={translateX:ax(aW(y)*F),translateY:ax(aD(y)*F)};C=aW(y)*J[2]/2;z=aD(y)*J[2]/2;r.tooltipPos=[J[0]+C*0.7,J[1]+z*0.7];r.half=y<-bM/2||y>bM/2?1:0;r.angle=y;D=bd(D,u/2);r.labelPos=[J[0]+C+aW(y)*u,J[1]+z+aD(y)*u,J[0]+C+aW(y)*D,J[1]+z+aD(y)*D,J[0]+C,J[1]+z,u<0?"center":r.half?"right":"left",y]}},setTooltipPoints:ah,drawGraph:null,drawPoints:function(){var o=this,n=o.chart.renderer,v,u,t=o.options.shadow,s,r;if(t&&!o.shadowGroup){o.shadowGroup=n.g("shadow").add(o.group)}aC(o.points,function(w){u=w.graphic;r=w.shapeArgs;s=w.shadowGroup;if(t&&!s){s=w.shadowGroup=n.g("shadow").add(o.shadowGroup)}v=w.sliced?w.slicedTranslation:{translateX:0,translateY:0};s&&s.attr(v);u?u.animate(az(r,v)):w.graphic=u=n.arc(r).setRadialReference(o.center).attr(w.pointAttr[w.selected?"select":""]).attr({"stroke-linejoin":"round"}).attr(v).add(o.group).shadow(t,s);w.visible===!1&&w.setVisible(!1)})},sortByAngle:function(o,n){o.sort(function(r,s){return r.angle!==void 0&&(s.angle-r.angle)*n})},drawDataLabels:function(){var cd=this,cc=cd.data,cb,ca=cd.chart,b9=cd.options.dataLabels,b8=aB(b9.connectorPadding,10),b7=aB(b9.connectorWidth,1),b6=ca.plotWidth,ca=ca.plotHeight,b5,b4,b3=aB(b9.softConnector,!0),b2=b9.distance,b1=cd.center,b0=b1[2]/2,bZ=b1[1],X=b2>0,ab,T,V,R,aa=[[],[]],P,t,Y,S,bb,Z=[0,0,0,0],Q=function(u,r){return r.y-u.y};if(cd.visible&&(b9.enabled||cd._hasPointLabels)){a1.prototype.drawDataLabels.apply(cd);aC(cc,function(r){r.dataLabel&&aa[r.half].push(r)});for(S=0;!R&&cc[S];){R=cc[S]&&cc[S].dataLabel&&(cc[S].dataLabel.getBBox().height||21),S++}for(S=2;S--;){var cc=[],s=[],U=aa[S],N=U.length,W;cd.sortByAngle(U,S-0.5);if(b2>0){for(bb=bZ-b0-b2;bb<=bZ+b0+b2;bb+=R){cc.push(bb)}T=cc.length;if(N>T){cb=[].concat(U);cb.sort(Q);for(bb=N;bb--;){cb[bb].rank=bb}for(bb=N;bb--;){U[bb].rank>=T&&U.splice(bb,1)}N=U.length}for(bb=0;bb0){if(T=s.pop(),W=T.i,t=T.y,cb>t&&cc[W+1]!==null||cbb6-b8&&(Z[1]=ay(ax(P+T-b6+b8),Z[1])),t-R/2<0?Z[0]=ay(ax(-t+R/2),Z[0]):t+R/2>ca&&(Z[2]=ay(ax(t+R/2-ca),Z[2]))}}}if(am(Z)===0||this.verifyDataLabelOverflow(Z)){this.placeDataLabels(),X&&b7&&aC(this.points,function(r){b5=r.connector;V=r.labelPos;if((ab=r.dataLabel)&&ab._pos){Y=ab._attr.visibility,P=ab.connX,t=ab.connY,b4=b3?["M",P+(V[6]==="left"?5:-5),t,"C",P,t,2*V[2]-V[4],2*V[3]-V[5],V[2],V[3],"L",V[4],V[5]]:["M",P+(V[6]==="left"?5:-5),t,"L",V[2],V[3],"L",V[4],V[5]],b5?(b5.animate({d:b4}),b5.attr("visibility",Y)):r.connector=b5=cd.chart.renderer.path(b4).attr({"stroke-width":b7,stroke:b9.connectorColor||r.color||"#606060",visibility:Y}).add(cd.group)}else{if(b5){r.connector=b5.destroy()}}})}}},verifyDataLabelOverflow:function(o){var n=this.center,u=this.options,t=u.center,s=u=u.minSize||80,r;t[0]!==null?s=ay(n[2]-ay(o[1],o[3]),u):(s=ay(n[2]-o[1]-o[3],u),n[0]+=(o[3]-o[1])/2);t[1]!==null?s=ay(bd(s,n[2]-ay(o[0],o[2])),u):(s=ay(bd(s,n[2]-o[0]-o[2]),u),n[1]+=(o[0]-o[2])/2);s