var Profile,trnToolTips;(function(n,t){typeof module=="object"&&module.exports?module.exports=n.document?t(n):t:n.Highcharts=t(n)})(typeof window!="undefined"?window:this,function(n){function oi(t,i){var r="Highcharts error #"+t+": www.highcharts.com/errors/"+t;if(i)throw Error(r);n.console&&console.log(r)}function sf(n,t,i){this.options=t,this.elem=n,this.prop=i}function c(){var t,n=arguments,r,i={},u=function(n,t){var r,i;typeof n!="object"&&(n={});for(i in t)t.hasOwnProperty(i)&&(r=t[i],n[i]=r&&typeof r=="object"&&Object.prototype.toString.call(r)!=="[object Array]"&&i!=="renderTo"&&typeof r.nodeType!="number"?u(n[i]||{},r):t[i]);return n};for(n[0]===!0&&(i=n[1],n=Array.prototype.slice.call(n,2)),r=n.length,t=0;t<r;t++)i=u(i,n[t]);return i}function a(n,t){return parseInt(n,t||10)}function bi(n){return typeof n=="string"}function ir(n){return Object.prototype.toString.call(n)==="[object Array]"}function hi(n,t){for(var i=n.length;i--;)if(n[i]===t){n.splice(i,1);break}}function r(n){return n!==s&&n!==null}function it(n,t,i){var u,f;if(bi(t))r(i)?n.setAttribute(t,i):n&&n.getAttribute&&(f=n.getAttribute(t));else if(r(t)&&lt(t))for(u in t)n.setAttribute(u,t[u]);return f}function li(n){return ir(n)?n:[n]}function kr(n,t,i){if(t)return setTimeout(n,t,i);n.call(0,i)}function y(n,t){gi&&!dt&&t&&t.opacity!==s&&(t.filter="alpha(opacity="+t.opacity*100+")"),f(n.style,t)}function yt(n,t,i,r,u){return n=h.createElement(n),t&&f(n,t),u&&y(n,{padding:0,border:"none",margin:0}),i&&y(n,i),r&&r.appendChild(n),n}function si(n,t){var i=function(){};return i.prototype=new n,f(i.prototype,t),i}function fr(n,t,i){return Array((t||2)+1-String(n).length).join(i||0)+n}function ou(n){return(ru&&ru(n)||ef||0)*6e4}function sr(n,t){for(var e="{",h=!1,i,r,s,u,f,c=[];(e=n.indexOf(e))!==-1;){if(i=n.slice(0,e),h){for(r=i.split(":"),s=r.shift().split("."),f=s.length,i=t,u=0;u<f;u++)i=i[s[u]];r.length&&(r=r.join(":"),s=/\.([0-9])/,u=ft.lang,f=void 0,/f$/.test(r)?(f=(f=r.match(s))?f[1]:-1,i!==null&&(i=o.numberFormat(i,f,u.decimalPoint,r.indexOf(",")>-1?u.thousandsSep:""))):i=br(r,i))}c.push(i),n=n.slice(e+1),e=(h=!h)?"}":"{"}return c.push(n),c.join("")}function nf(n){return ct.pow(10,et(ct.log(n)/ct.LN10))}function du(n,i,r,u,f){var o,e=n,r=t(r,1);for(o=n/r,i||(i=[1,2,2.5,5,10],u===!1&&(r===1?i=[1,2,5,10]:r<=.1&&(i=[1/r]))),u=0;u<i.length;u++)if(e=i[u],f&&e*r>=n||!f&&o<=(i[u]+(i[u+1]||i[u]))/2)break;return e*=r}function au(n,t){for(var u=n.length,r,i=0;i<u;i++)n[i].safeI=i;for(n.sort(function(n,i){return r=t(n,i),r===0?n.safeI-i.safeI:r}),i=0;i<u;i++)delete n[i].safeI}function or(n){for(var t=n.length,i=n[0];t--;)n[t]<i&&(i=n[t]);return i}function er(n){for(var t=n.length,i=n[0];t--;)n[t]>i&&(i=n[t]);return i}function gr(n,t){for(var i in n)n[i]&&n[i]!==t&&n[i].destroy&&n[i].destroy(),delete n[i]}function vr(n){wu||(wu=yt(lr)),n&&wu.appendChild(n),wu.innerHTML=""}function at(n,t){return parseFloat(n.toPrecision(t||14))}function yr(n,i){i.renderer.globalAnimation=t(n,i.animation)}function uu(n){return lt(n)?c(n):{duration:n?500:0}}function kf(){var f=ft.global,u=f.useUTC,r=u?"getUTC":"get",i=u?"setUTC":"set";ui=f.Date||n.Date,ef=u&&f.timezoneOffset,ru=u&&f.getTimezoneOffset,lu=function(n,i,r,f,e,o){var s;return u?(s=ui.UTC.apply(0,arguments),s+=ou(s)):s=new ui(n,i,t(r,1),t(f,0),t(e,0),t(o,0)).getTime(),s},of=r+"Minutes",cf=r+"Hours",hf=r+"Day",dr=r+"Date",su=r+"Month",nu=r+"FullYear",vf=i+"Milliseconds",af=i+"Seconds",yf=i+"Minutes",pf=i+"Hours",yu=i+"Date",lf=i+"Month",rf=i+"FullYear"}function ii(n){if(!(this instanceof ii))return new ii(n);this.init(n)}function ut(){}function wr(n,t,i,r){this.axis=n,this.pos=t,this.type=i||"",this.isNew=!0,!i&&!r&&this.addLabel()}function wf(n,i,r,u,f){var e=n.chart.inverted;this.axis=n,this.isNegative=r,this.options=i,this.x=u,this.total=null,this.points={},this.stack=f,this.rightCliff=this.leftCliff=0,this.alignOptions={align:i.align||(e?r?"left":"right":"center"),verticalAlign:i.verticalAlign||(e?"middle":r?"bottom":"top"),y:t(i.y,e?4:r?14:-6),x:t(i.x,e?r?-6:6:0)},this.textAlign=i.textAlign||(e?r?"right":"left":"center")}var s,h=n.document,ct=Math,e=ct.round,et=ct.floor,yi=ct.ceil,u=ct.max,l=ct.min,g=ct.abs,ht=ct.cos,pt=ct.sin,ci=ct.PI,gt=ci/180,wi=n.navigator&&n.navigator.userAgent||"",bf=n.opera,gi=/(msie|trident|edge)/i.test(wi)&&!bf,cu=h&&h.documentMode===8,bu=!gi&&/AppleWebKit/.test(wi),cr=/Firefox/.test(wi),gf=/(Mobile|Android|Windows Phone)/.test(wi),ur="http://www.w3.org/2000/svg",dt=h&&h.createElementNS&&!!h.createElementNS(ur,"svg").createSVGRect,ie=cr&&parseInt(wi.split("Firefox/")[1],10)<4,ti=h&&!dt&&!gi&&!!h.createElement("canvas").getContext,iu,fu,df={},ff=0,wu,ft,br,v,pi=function(){},rt=[],tu=0,lr="div",st="M",tt="L",re=/^[0-9]+$/,vu=["plotTop","marginRight","marginBottom","plotLeft"],ui,lu,ef,ru,of,cf,hf,dr,su,nu,vf,af,yf,pf,yu,lf,rf,d={},o,ki,fi,ri,i,tr,uf,di,w,ot,p,ar,rr,vt,bt,vi,nt,ne,wt,tf,kt,hr,hu,pr,pu,nr,k,ei,ni;o=n.Highcharts?oi(16,!0):{win:n},o.seriesTypes=d,ki=[],sf.prototype={dSetter:function(){var r=this.paths[0],u=this.paths[1],t=[],f=this.now,n=r.length,i;if(f===1)t=this.toD;else if(n===u.length&&f<1)for(;n--;)i=parseFloat(r[n]),t[n]=isNaN(i)?r[n]:f*parseFloat(u[n]-i)+i;else t=u;this.elem.attr("d",t)},update:function(){var n=this.elem,t=this.prop,i=this.now,r=this.options.step;this[t+"Setter"]?this[t+"Setter"]():n.attr?n.element&&n.attr(t,i):n.style[t]=i+this.unit,r&&r.call(n,i,this)},run:function(n,t,i){var f=this,r=function(n){return r.stopped?!1:f.step(n)},u;this.startTime=+new ui,this.start=n,this.end=t,this.unit=i,this.now=this.start,this.pos=0,r.elem=this.elem,r()&&ki.push(r)===1&&(r.timerId=setInterval(function(){for(u=0;u<ki.length;u++)ki[u]()||ki.splice(u--,1);ki.length||clearInterval(r.timerId)},13))},step:function(n){var u=+new ui,t,i=this.options;t=this.elem;var f=i.complete,e=i.duration,r=i.curAnim,o;if(t.attr&&!t.element)t=!1;else if(n||u>=e+this.startTime){this.now=this.end,this.pos=1,this.update(),n=r[this.prop]=!0;for(o in r)r[o]!==!0&&(n=!1);n&&f&&f.call(t),t=!1}else this.pos=i.easing((u-this.startTime)/e),this.now=this.start+(this.end-this.start)*this.pos,this.update(),t=!0;return t},initPath:function(n,t,i){function w(n){for(r=n.length;r--;)(n[r]===st||n[r]===tt)&&n.splice(r+1,0,n[r+1],n[r+2],n[r+1],n[r+2])}function p(n,t){for(;n.length<e;){n[0]=t[e-n.length];var i=n.slice(0,u);[].splice.apply(n,[0,0].concat(i)),a&&(i=n.slice(n.length-u),[].splice.apply(n,[n.length,0].concat(i)),r--)}n[0]="M"}function y(n,t){for(var i=(e-n.length)/u;i>0&&i--;)f=n.slice().splice(n.length/l-u,u*l),f[0]=t[e-u-i*u],v&&(f[u-6]=f[u-2],f[u-5]=f[u-1]),[].splice.apply(n,[n.length/l,0].concat(f)),a&&i--}var t=t||"",s,h=n.startX,c=n.endX,v=t.indexOf("C")>-1,u=v?7:3,e,f,r,t=t.split(" "),i=i.slice(),a=n.isArea,l=a?2:1,b;if(v&&(w(t),w(i)),h&&c){for(r=0;r<h.length;r++)if(h[r]===c[0]){s=r;break}else if(h[0]===c[c.length-h.length+r]){s=r,b=!0;break}s===void 0&&(t=[])}return t.length&&o.isNumber(s)&&(e=i.length+s*l*u,b?(p(t,i),y(i,t)):(p(i,t),y(t,i))),[t,i]}};var f=o.extend=function(n,t){var i;n||(n={});for(i in t)n[i]=t[i];return n},lt=o.isObject=function(n,t){return n&&typeof n=="object"&&(!t||!ir(n))},b=o.isNumber=function(n){return typeof n=="number"&&!isNaN(n)},t=o.pick=function(){for(var i=arguments,t,r=i.length,n=0;n<r;n++)if(t=i[n],t!==s&&t!==null)return t},eu=o.wrap=function(n,t,i){var r=n[t];n[t]=function(){var n=Array.prototype.slice.call(arguments);return n.unshift(r),i.apply(this,n)}};if(br=function(n,i,u){if(!r(i)||isNaN(i))return ft.lang.invalidDate||"";var n=t(n,"%Y-%m-%d %H:%M:%S"),s=new ui(i-ou(i)),h,c=s[cf](),l=s[hf](),y=s[dr](),v=s[su](),p=s[nu](),a=ft.lang,w=a.weekdays,b=a.shortWeekdays,s=f({a:b?b[l]:w[l].substr(0,3),A:w[l],d:fr(y),e:fr(y,2," "),w:l,b:a.shortMonths[v],B:a.months[v],m:fr(v+1),y:p.toString().substr(2,2),Y:p,H:fr(c),k:c,I:fr(c%12||12),l:c%12||12,M:fr(s[of]()),p:c<12?"AM":"PM",P:c<12?"am":"pm",S:fr(s.getSeconds()),L:fr(e(i%1e3),3)},o.dateFormats);for(h in s)for(;n.indexOf("%"+h)!==-1;)n=n.replace("%"+h,typeof s[h]=="function"?s[h](i):s[h]);return u?n.substr(0,1).toUpperCase()+n.substr(1):n},v={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},o.numberFormat=function(n,i,r,u){var n=+n||0,i=+i,o=ft.lang,s=(n.toString().split(".")[1]||"").length,f,e,h=Math.abs(n);return i===-1?i=Math.min(s,20):b(i)||(i=2),f=String(a(h.toFixed(i))),e=f.length>3?f.length%3:0,r=t(r,o.decimalPoint),u=t(u,o.thousandsSep),n=n<0?"-":"",n+=e?f.substr(0,e)+u:"",n+=f.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+u),i&&(u=Math.abs(h-f+Math.pow(10,-Math.max(i,s)-1)),n+=r+u.toFixed(i).slice(2)),n},Math.easeInOutSine=function(n){return-.5*(Math.cos(Math.PI*n)-1)},fi=function(t,i){var r;return i==="width"?Math.min(t.offsetWidth,t.scrollWidth)-fi(t,"padding-left")-fi(t,"padding-right"):i==="height"?Math.min(t.offsetHeight,t.scrollHeight)-fi(t,"padding-top")-fi(t,"padding-bottom"):(r=n.getComputedStyle(t,void 0))&&a(r.getPropertyValue(i))},ri=function(n,t){return t.indexOf?t.indexOf(n):[].indexOf.call(t,n)},tr=function(n,t){return[].filter.call(n,t)},di=function(n,t){for(var r=[],i=0,u=n.length;i<u;i++)r[i]=t.call(n[i],n[i],i,n);return r},uf=function(t){var i=h.documentElement,t=t.getBoundingClientRect();return{top:t.top+(n.pageYOffset||i.scrollTop)-(i.clientTop||0),left:t.left+(n.pageXOffset||i.scrollLeft)-(i.clientLeft||0)}},rr=function(n){for(var t=ki.length;t--;)ki[t].elem===n&&(ki[t].stopped=!0)},i=function(n,t){return Array.prototype.forEach.call(n,t)},w=function(t,i,r){function f(i){i.target=i.srcElement||n,r.call(t,i)}var u=t.hcEvents=t.hcEvents||{};t.addEventListener?t.addEventListener(i,r,!1):t.attachEvent&&(t.hcEventsIE||(t.hcEventsIE={}),t.hcEventsIE[r.toString()]=f,t.attachEvent("on"+i,f)),u[i]||(u[i]=[]),u[i].push(r)},ot=function(n,t,i){function e(t,i){n.removeEventListener?n.removeEventListener(t,i,!1):n.attachEvent&&(i=n.hcEventsIE[i.toString()],n.detachEvent("on"+t,i))}function o(){var u,f,i;if(n.nodeName)for(i in t?(u={},u[t]=!0):u=r,u)if(r[i])for(f=r[i].length;f--;)e(i,r[i][f])}var u,r=n.hcEvents,f;r&&(t?(u=r[t]||[],i?(f=ri(i,u),f>-1&&(u.splice(f,1),r[t]=u),e(t,i)):(o(),r[t]=[])):(o(),n.hcEvents={}))},p=function(n,t,i,r){var u,e,o,i;if(u=n.hcEvents,i=i||{},h.createEvent&&(n.dispatchEvent||n.fireEvent))u=h.createEvent("Events"),u.initEvent(t,!0,!0),u.target=n,f(u,i),n.dispatchEvent?n.dispatchEvent(u):n.fireEvent(t,u);else if(u)for(u=u[t]||[],e=u.length,i.preventDefault||(i.preventDefault=function(){i.defaultPrevented=!0}),i.target=n,i.type||(i.type=t),t=0;t<e;t++)(o=u[t])&&o.call(n,i)===!1&&i.preventDefault();r&&!i.defaultPrevented&&r(i)},ar=function(n,t,i){var u,o="",r,e,f;lt(i)||(u=arguments,i={duration:u[2],easing:u[3],complete:u[4]}),b(i.duration)||(i.duration=400),i.easing=typeof i.easing=="function"?i.easing:Math[i.easing]||Math.easeInOutSine,i.curAnim=c(t);for(f in t)e=new sf(n,i,f),r=null,f==="d"?(e.paths=e.initPath(n,n.d,t.d),e.toD=t.d,u=0,r=1):n.attr?u=n.attr(f):(u=parseFloat(fi(n,f))||0,f!=="opacity"&&(o="px")),r||(r=t[f]),r.match&&r.match("px")&&(r=r.replace(/px/g,"")),e.run(u,r,o)},n.jQuery&&(n.jQuery.fn.highcharts=function(){var n=[].slice.call(arguments);if(this[0])return n[0]?(new o[bi(n[0])?n.shift():"Chart"](this[0],n[0],n[1]),this):rt[it(this[0],"data-highcharts-chart")]}),h&&!h.defaultView&&(fi=function(n,t){var i;return(i={width:"clientWidth",height:"clientHeight"}[t],n.style[t])?a(n.style[t]):(t==="opacity"&&(t="filter"),i)?(n.style.zoom=1,Math.max(n[i]-2*fi(n,"padding"),0)):(i=n.currentStyle[t.replace(/\-(\w)/g,function(n,t){return t.toUpperCase()})],t==="filter"&&(i=i.replace(/alpha\(opacity=([0-9]+)\)/,function(n,t){return t/100})),i===""?1:a(i))}),Array.prototype.forEach||(i=function(n,t){for(var i=0,r=n.length;i<r;i++)if(t.call(n[i],n[i],i,n)===!1)return i}),Array.prototype.indexOf||(ri=function(n,t){var r,i=0;if(t)for(r=t.length;i<r;i++)if(t[i]===n)return i;return-1}),Array.prototype.filter||(tr=function(n,t){for(var r=[],i=0,u=n.length;i<u;i++)t(n[i],i)&&r.push(n[i]);return r}),o.Fx=sf,o.inArray=ri,o.each=i,o.grep=tr,o.offset=uf,o.map=di,o.addEvent=w,o.removeEvent=ot,o.fireEvent=p,o.animate=ar,o.animObject=uu,o.stop=rr,ft={colors:"#7cb5ec,#434348,#90ed7d,#f7a35c,#8085e9,#f15c80,#e4d354,#2b908f,#f45b5b,#91e8e1".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",numericSymbols:"k,M,G,T,P,E".split(","),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/modules/canvas-tools.js",VMLRadialGradientURL:"http://code.highcharts.com/4.2.6/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}},width:null,height:null},title:{text:"Chart title",align:"center",margin:15,style:{color:"#333333",fontSize:"18px"},widthAdjust:-44},subtitle:{text:"",align:"center",style:{color:"#555555"},widthAdjust:-44},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},lineWidth:2,marker:{lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0,lineWidthPlus:1,radiusPlus:2},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return this.y===null?"":o.numberFormat(this.y,-1)},style:{color:"contrast",fontSize:"11px",fontWeight:"bold",textShadow:"0 0 6px contrast, 0 0 3px 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}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#909090",borderRadius:0,navigation:{activeColor:"#274b6d",inactiveColor:"#CCC"},shadow:!1,itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"white",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:dt,backgroundColor:"rgba(249, 249, 249, .85)",borderWidth:1,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',shadow:!0,snap:gf?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",pointerEvents:"none",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"}}},vt=ft.plotOptions,bt=vt.line,kf(),ii.prototype={parsers:[{regex:/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*\)/,parse:function(n){return[a(n[1]),a(n[2]),a(n[3]),parseFloat(n[4],10)]}},{regex:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(n){return[a(n[1],16),a(n[2],16),a(n[3],16),1]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(n){return[a(n[1]),a(n[2]),a(n[3]),1]}}],init:function(n){var u,t,i,r;if((this.input=n)&&n.stops)this.stops=di(n.stops,function(n){return new ii(n[1])});else for(i=this.parsers.length;i--&&!t;)r=this.parsers[i],(u=r.regex.exec(n))&&(t=r.parse(u));this.rgba=t||[]},get:function(n){var u=this.input,t=this.rgba,r;return this.stops?(r=c(u),r.stops=[].concat(r.stops),i(this.stops,function(t,i){r.stops[i]=[r.stops[i][0],t.get(n)]})):r=t&&b(t[0])?n==="rgb"||!n&&t[3]===1?"rgb("+t[0]+","+t[1]+","+t[2]+")":n==="a"?t[3]:"rgba("+t.join(",")+")":u,r},brighten:function(n){var t,r=this.rgba;if(this.stops)i(this.stops,function(t){t.brighten(n)});else if(b(n)&&n!==0)for(t=0;t<3;t++)r[t]+=a(n*255),r[t]<0&&(r[t]=0),r[t]>255&&(r[t]=255);return this},setOpacity:function(n){return this.rgba[3]=n,this}},ut.prototype={opacity:1,textProps:"direction,fontSize,fontWeight,fontFamily,fontStyle,color,lineHeight,width,textDecoration,textOverflow,textShadow".split(","),init:function(n,t){this.element=t==="span"?yt(t):h.createElementNS(ur,t),this.renderer=n},animate:function(n,i,r){return i=t(i,this.renderer.globalAnimation,!0),rr(this),i?(r&&(i.complete=r),ar(this,n,i)):this.attr(n,null,r),this},colorGradient:function(n,t,u){var s=this.renderer,k,o,f,b,v,a,y,p,w,l,h,e=[],d;if(n.linearGradient?o="linearGradient":n.radialGradient&&(o="radialGradient"),o){f=n[o],v=s.gradients,y=n.stops,l=u.radialReference,ir(f)&&(n[o]=f={x1:f[0],y1:f[1],x2:f[2],y2:f[3],gradientUnits:"userSpaceOnUse"}),o==="radialGradient"&&l&&!r(f.gradientUnits)&&(b=f,f=c(f,s.getRadialAttr(l,b),{gradientUnits:"userSpaceOnUse"}));for(h in f)h!=="id"&&e.push(h,f[h]);for(h in y)e.push(y[h]);e=e.join(","),v[e]?l=v[e].attr("id"):(f.id=l="highcharts-"+ff++,v[e]=a=s.createElement(o).attr(f).add(s.defs),a.radAttr=b,a.stops=[],i(y,function(n){n[1].indexOf("rgba")===0?(k=ii(n[1]),p=k.get("rgb"),w=k.get("a")):(p=n[1],w=1),n=s.createElement("stop").attr({offset:n[0],"stop-color":p,"stop-opacity":w}).add(a),a.stops.push(n)})),d="url("+s.url+"#"+l+")",u.setAttribute(t,d),u.gradient=e,n.toString=function(){return d}}},applyTextShadow:function(n){var t=this.element,f,o=n.indexOf("contrast")!==-1,r={},e=this.renderer.forExport,h=e||t.style.textShadow!==s&&!gi;o&&(r.textShadow=n=n.replace(/contrast/g,this.renderer.getContrast(t.style.fill))),(bu||e)&&(r.textRendering="geometricPrecision"),h?this.css(r):(this.fakeTS=!0,this.ySetter=this.xSetter,f=[].slice.call(t.getElementsByTagName("tspan")),i(n.split(/\s?,\s?/g),function(n){var o=t.firstChild,r,e,n=n.split(" ");r=n[n.length-1],(e=n[n.length-2])&&i(f,function(n,i){var f;i===0&&(n.setAttribute("x",t.getAttribute("x")),i=t.getAttribute("y"),n.setAttribute("y",i||0),i===null&&t.setAttribute("y",0)),f=n.cloneNode(1),it(f,{"class":"highcharts-text-shadow",fill:r,stroke:r,"stroke-opacity":1/u(a(e),3),"stroke-width":e,"stroke-linejoin":"round"}),t.insertBefore(f,o)})}))},attr:function(n,t,i){var r,f=this.element,e,o=this,u;if(typeof n=="string"&&t!==s&&(r=n,n={},n[r]=t),typeof n=="string")o=(this[n+"Getter"]||this._defaultGetter).call(this,n,f);else{for(r in n)t=n[r],u=!1,this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(r)&&(e||(this.symbolAttr(n),e=!0),u=!0),this.rotation&&(r==="x"||r==="y")&&(this.doTransform=!0),u||(u=this[r+"Setter"]||this._defaultSetter,u.call(this,t,r,f),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(r)&&this.updateShadows(r,t,u));this.doTransform&&(this.updateTransform(),this.doTransform=!1)}return i&&i(),o},updateShadows:function(n,t,i){for(var r=this.shadows,u=r.length;u--;)i.call(r[u],n==="height"?Math.max(t-(r[u].cutHeight||0),0):n==="d"?this.d:t,n,r[u])},addClass:function(n){var t=this.element,i=it(t,"class")||"";return i.indexOf(n)===-1&&it(t,"class",i+" "+n),this},symbolAttr:function(n){var r=this;i("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(i){r[i]=t(n[i],r[i])}),r.attr({d:r.renderer.symbols[r.symbolName](r.x,r.y,r.width,r.height,r)})},clip:function(n){return this.attr("clip-path",n?"url("+this.renderer.url+"#"+n.id+")":"none")},crisp:function(n){var t,r={},i,u=this.strokeWidth||0;i=e(u)%2/2,n.x=et(n.x||this.x||0)+i,n.y=et(n.y||this.y||0)+i,n.width=et((n.width||this.width||0)-2*i),n.height=et((n.height||this.height||0)-2*i),n.strokeWidth=u;for(t in n)this[t]!==n[t]&&(this[t]=r[t]=n[t]);return r},css:function(n){var i=this.styles,u={},e=this.element,r,t,o="";if(r=!i,n&&n.color&&(n.fill=n.color),i)for(t in n)n[t]!==i[t]&&(u[t]=n[t],r=!0);if(r){if(r=this.textWidth=n&&n.width&&e.nodeName.toLowerCase()==="text"&&a(n.width)||this.textWidth,i&&(n=f(i,u)),this.styles=n,r&&(ti||!dt&&this.renderer.forExport)&&delete n.width,gi&&!dt)y(this.element,n);else{i=function(n,t){return"-"+t.toLowerCase()};for(t in n)o+=t.replace(/([A-Z])/g,i)+":"+n[t]+";";it(e,"style",o)}r&&this.added&&this.renderer.buildText(this)}return this},on:function(n,t){var r=this,i=r.element;return fu&&n==="click"?(i.ontouchstart=function(n){r.touchEventFired=ui.now(),n.preventDefault(),t.call(i,n)},i.onclick=function(n){(wi.indexOf("Android")===-1||ui.now()-(r.touchEventFired||0)>1100)&&t.call(i,n)}):i["on"+n]=t,this},setRadialReference:function(n){var t=this.renderer.gradients[this.element.gradient];return this.element.radialReference=n,t&&t.radAttr&&t.animate(this.renderer.getRadialAttr(n,t.radAttr)),this},translate:function(n,t){return this.attr({translateX:n,translateY:t})},invert:function(){return this.inverted=!0,this.updateTransform(),this},updateTransform:function(){var n=this.translateX||0,u=this.translateY||0,f=this.scaleX,e=this.scaleY,o=this.inverted,s=this.rotation,i=this.element;o&&(n+=this.attr("width"),u+=this.attr("height")),n=["translate("+n+","+u+")"],o?n.push("rotate(90) scale(-1,1)"):s&&n.push("rotate("+s+" "+(i.getAttribute("x")||0)+" "+(i.getAttribute("y")||0)+")"),(r(f)||r(e))&&n.push("scale("+t(f,1)+" "+t(e,1)+")"),n.length&&i.setAttribute("transform",n.join(" "))},toFront:function(){var n=this.element;return n.parentNode.appendChild(n),this},align:function(n,i,r){var f,u,o,h,s={};return u=this.renderer,o=u.alignedObjects,n?(this.alignOptions=n,this.alignByTranslate=i,!r||bi(r))&&(this.alignTo=f=r||"renderer",hi(o,this),o.push(this),r=null):(n=this.alignOptions,i=this.alignByTranslate,f=this.alignTo),r=t(r,u[f],u),f=n.align,u=n.verticalAlign,o=(r.x||0)+(n.x||0),h=(r.y||0)+(n.y||0),(f==="right"||f==="center")&&(o+=(r.width-(n.width||0))/{right:1,center:2}[f]),s[i?"translateX":"x"]=e(o),(u==="bottom"||u==="middle")&&(h+=(r.height-(n.height||0))/({bottom:1,middle:2}[u]||1)),s[i?"translateY":"y"]=e(h),this[this.placed?"animate":"attr"](s),this.placed=!0,this.alignAttr=s,this},getBBox:function(n,r){var u,c=this.renderer,e,v,l,h=this.element,y=this.styles;e=this.textStr;var b,p=h.style,a,w=c.cache,k=c.cacheKeys,o;if(v=t(r,this.rotation),l=v*gt,e!==s&&(o=["",v||0,y&&y.fontSize,h.style.width].join(","),o=e===""||re.test(e)?"num:"+e.toString().length+o:e+o),o&&!n&&(u=w[o]),!u){if(h.namespaceURI===ur||c.forExport){try{a=this.fakeTS&&function(n){i(h.querySelectorAll(".highcharts-text-shadow"),function(t){t.style.display=n})},cr&&p.textShadow?(b=p.textShadow,p.textShadow=""):a&&a("none"),u=h.getBBox?f({},h.getBBox()):{width:h.offsetWidth,height:h.offsetHeight},b?p.textShadow=b:a&&a("")}catch(d){}(!u||u.width<0)&&(u={width:0,height:0})}else u=this.htmlGetBBox();if(c.isSVG&&(c=u.width,e=u.height,gi&&y&&y.fontSize==="11px"&&e.toPrecision(3)==="16.9"&&(u.height=e=14),v&&(u.width=g(e*pt(l))+g(c*ht(l)),u.height=g(e*ht(l))+g(c*pt(l)))),o){for(;k.length>250;)delete w[k.shift()];w[o]||k.push(o),w[o]=u}}return u},show:function(n){return this.attr({visibility:n?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(n){var t=this;t.animate({opacity:0},{duration:n||150,complete:function(){t.attr({y:-9999})}})},add:function(n){var t=this.renderer,r=this.element,i;return n&&(this.parentGroup=n),this.parentInverted=n&&n.inverted,this.textStr!==void 0&&t.buildText(this),this.added=!0,(!n||n.handleZ||this.zIndex)&&(i=this.zIndexSetter()),i||(n?n.element:t.box).appendChild(r),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(n){var t=n.parentNode;t&&t.removeChild(n)},destroy:function(){var n=this,t=n.element||{},f=n.shadows,r=n.renderer.isSVG&&t.nodeName==="SPAN"&&n.parentGroup,e,u;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,rr(n),n.clipPath&&(n.clipPath=n.clipPath.destroy()),n.stops){for(u=0;u<n.stops.length;u++)n.stops[u]=n.stops[u].destroy();n.stops=null}for(n.safeRemoveChild(t),f&&i(f,function(t){n.safeRemoveChild(t)});r&&r.div&&r.div.childNodes.length===0;)t=r.parentGroup,n.safeRemoveChild(r.div),delete r.div,r=t;n.alignTo&&hi(n.renderer.alignedObjects,n);for(e in n)delete n[e];return null},shadow:function(n,i,r){var c=[],e,f,h=this.element,o,s,l,a;if(n){for(s=t(n.width,3),l=(n.opacity||.15)/s,a=this.parentInverted?"(-1,-1)":"("+t(n.offsetX,1)+", "+t(n.offsetY,1)+")",e=1;e<=s;e++)f=h.cloneNode(0),o=s*2+1-2*e,it(f,{isShadow:"true",stroke:n.color||"black","stroke-opacity":l*e,"stroke-width":o,transform:"translate"+a,fill:"none"}),r&&(it(f,"height",u(it(f,"height")-o,0)),f.cutHeight=o),i?i.element.appendChild(f):h.parentNode.insertBefore(f,h),c.push(f);this.shadows=c}return this},xGetter:function(n){return this.element.nodeName==="circle"&&(n={x:"cx",y:"cy"}[n]||n),this._defaultGetter(n)},_defaultGetter:function(n){return n=t(this[n],this.element?this.element.getAttribute(n):null,0),/^[\-0-9\.]+$/.test(n)&&(n=parseFloat(n)),n},dSetter:function(n,t,i){n&&n.join&&(n=n.join(" ")),/(NaN| {2}|^$)/.test(n)&&(n="M 0 0"),i.setAttribute(t,n),this[t]=n},dashstyleSetter:function(n){var t,i=this["stroke-width"];if(i==="inherit"&&(i=1),n=n&&n.toLowerCase()){for(n=n.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(","),t=n.length;t--;)n[t]=a(n[t])*i;n=n.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",n)}},alignSetter:function(n){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[n])},opacitySetter:function(n,t,i){this[t]=n,i.setAttribute(t,n)},titleSetter:function(n){var i=this.element.getElementsByTagName("title")[0];i||(i=h.createElementNS(ur,"title"),this.element.appendChild(i)),i.firstChild&&i.removeChild(i.firstChild),i.appendChild(h.createTextNode(String(t(n),"").replace(/<[^>]*>/g,"")))},textSetter:function(n){n!==this.textStr&&(delete this.bBox,this.textStr=n,this.added&&this.renderer.buildText(this))},fillSetter:function(n,t,i){typeof n=="string"?i.setAttribute(t,n):n&&this.colorGradient(n,t,i)},visibilitySetter:function(n,t,i){n==="inherit"?i.removeAttribute(t):i.setAttribute(t,n)},zIndexSetter:function(n,t){var f=this.renderer,u=this.parentGroup,f=(u||f).element||f.box,i,h,e=this.element,o,s;if(i=this.added,r(n)&&(e.zIndex=n,n=+n,this[t]===n&&(i=!1),this[t]=n),i){for((n=this.zIndex)&&u&&(u.handleZ=!0),u=f.childNodes,s=0;s<u.length&&!o;s++)(i=u[s],h=i.zIndex,i!==e&&(a(h)>n||!r(n)&&r(h)))&&(f.insertBefore(e,i),o=!0);o||f.appendChild(e)}return o},_defaultSetter:function(n,t,i){i.setAttribute(t,n)}},ut.prototype.yGetter=ut.prototype.xGetter,ut.prototype.translateXSetter=ut.prototype.translateYSetter=ut.prototype.rotationSetter=ut.prototype.verticalAlignSetter=ut.prototype.scaleXSetter=ut.prototype.scaleYSetter=function(n,t){this[t]=n,this.doTransform=!0},ut.prototype["stroke-widthSetter"]=ut.prototype.strokeSetter=function(n,t,i){this[t]=n,this.stroke&&this["stroke-width"]?(this.strokeWidth=this["stroke-width"],ut.prototype.fillSetter.call(this,this.stroke,"stroke",i),i.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):t==="stroke-width"&&n===0&&this.hasStroke&&(i.removeAttribute("stroke"),this.hasStroke=!1)},vi=function(){this.init.apply(this,arguments)},vi.prototype={Element:ut,init:function(t,i,r,u,f,e){var s,u=this.createElement("svg").attr({version:"1.1"}).css(this.getStyle(u)),o;s=u.element,t.appendChild(s),t.innerHTML.indexOf("xmlns")===-1&&it(s,"xmlns",ur),this.isSVG=!0,this.box=s,this.boxWrapper=u,this.alignedObjects=[],this.url=(cr||bu)&&h.getElementsByTagName("base").length?n.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(h.createTextNode("Created with Highcharts 4.2.6")),this.defs=this.createElement("defs").add(),this.allowHTML=e,this.forExport=f,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(i,r,!1),cr&&t.getBoundingClientRect&&(this.subPixelFix=i=function(){y(t,{left:0,top:0}),o=t.getBoundingClientRect(),y(t,{left:yi(o.left)-o.left+"px",top:yi(o.top)-o.top+"px"})},i(),w(n,"resize",i))},getStyle:function(n){return this.style=f({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},n)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),gr(this.gradients||{}),this.gradients=null,t&&(this.defs=t.destroy()),this.subPixelFix&&ot(n,"resize",this.subPixelFix),this.alignedObjects=null},createElement:function(n){var t=new this.Element;return t.init(this,n),t},draw:function(){},getRadialAttr:function(n,t){return{cx:n[0]-n[2]/2+t.cx*n[2],cy:n[1]-n[2]/2+t.cy*n[2],r:t.r*n[2]}},buildText:function(n){for(var f=n.element,o=this,rt=o.forExport,r=t(n.textStr,"").toString(),g=r.indexOf("<")!==-1,d=f.childNodes,b,l,c,v=it(f,"x"),u=n.styles,e=n.textWidth,nt=u&&u.lineHeight,p=u&&u.textShadow,w=u&&u.textOverflow==="ellipsis",tt=d.length,s=e&&!n.added&&this.box,k=function(n){return nt?a(nt):o.fontMetrics(/(px|em)$/.test(n&&n.style.fontSize)?n.style.fontSize:u&&u.fontSize||o.style.fontSize||12,n).h},ut=function(n){return n.replace(/&lt;/g,"<").replace(/&gt;/g,">")};tt--;)f.removeChild(d[tt]);!g&&!p&&!w&&!e&&r.indexOf(" ")===-1?f.appendChild(h.createTextNode(ut(r))):(b=/<.*style="([^"]+)".*>/,l=/<.*href="(http[^"]+)".*>/,s&&s.appendChild(f),r=g?r.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g):[r],r=tr(r,function(n){return n!==""}),i(r,function(t,r){var s,a=0,t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");s=t.split("|||"),i(s,function(t){var p,i,tt;if((t!==""||s.length===1)&&(p={},i=h.createElementNS(ur,"tspan"),b.test(t)&&(tt=t.match(b)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),it(i,"style",tt)),l.test(t)&&!rt&&(it(i,"onclick",'location.href="'+t.match(l)[1]+'"'),y(i,{cursor:"pointer"})),t=ut(t.replace(/<(.|\n)*?>/g,"")||" "),t!==" ")){if(i.appendChild(h.createTextNode(t)),a?p.dx=0:r&&v!==null&&(p.x=v),it(i,p),f.appendChild(i),!a&&r&&(!dt&&rt&&y(i,{display:"block"}),it(i,"dy",k(i))),e){for(var p=t.replace(/([^\^])-/g,"$1- ").split(" "),ot=s.length>1||r||p.length>1&&u.whiteSpace!=="nowrap",d,g,ft=[],st=k(i),ht=1,ct=n.rotation,nt=t,et=nt.length;(ot||w)&&(p.length||ft.length);)n.rotation=0,d=n.getBBox(!0),g=d.width,!dt&&o.forExport&&(g=o.measureSpanWidth(i.firstChild.data,n.styles)),d=g>e,c===void 0&&(c=d),w&&c?(et/=2,nt===""||!d&&et<.5?p=[]:(nt=t.substring(0,nt.length+(d?-1:1)*yi(et)),p=[nt+(e>3?"…":"")],i.removeChild(i.firstChild))):!d||p.length===1?(p=ft,ft=[],p.length&&(ht++,i=h.createElementNS(ur,"tspan"),it(i,{dy:st,x:v}),tt&&it(i,"style",tt),f.appendChild(i)),g>e&&(e=g)):(i.removeChild(i.firstChild),ft.unshift(p.pop())),p.length&&i.appendChild(h.createTextNode(p.join(" ").replace(/- /g,"-")));n.rotation=ct}a++}})}),c&&n.attr("title",n.textStr),s&&s.removeChild(f),p&&n.applyTextShadow&&n.applyTextShadow(p))},getContrast:function(n){return n=ii(n).rgba,n[0]+n[1]+n[2]>384?"#000000":"#FFFFFF"},button:function(n,t,i,r,u,e,o,s,h){var l=this.label(n,t,i,h,null,null,null,null,"button"),a=0,b,k,v,y,p,d,n={x1:0,y1:0,x2:0,y2:1},u=c({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:n,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},u);return v=u.style,delete u.style,e=c(u,{stroke:"#68A",fill:{linearGradient:n,stops:[[0,"#FFF"],[1,"#ACF"]]}},e),y=e.style,delete e.style,o=c(u,{stroke:"#68A",fill:{linearGradient:n,stops:[[0,"#9BD"],[1,"#CDF"]]}},o),p=o.style,delete o.style,s=c(u,{style:{color:"#CCC"}},s),d=s.style,delete s.style,w(l.element,gi?"mouseover":"mouseenter",function(){a!==3&&l.attr(e).css(y)}),w(l.element,gi?"mouseout":"mouseleave",function(){a!==3&&(b=[u,e,o][a],k=[v,y,p][a],l.attr(b).css(k))}),l.setState=function(n){(l.state=a=n)?n===2?l.attr(o).css(p):n===3&&l.attr(s).css(d):l.attr(u).css(v)},l.on("click",function(n){a!==3&&r.call(l,n)}).attr(u).css(f({cursor:"default"},v))},crispLine:function(n,t){return n[1]===n[4]&&(n[1]=n[4]=e(n[1])-t%2/2),n[2]===n[5]&&(n[2]=n[5]=e(n[2])+t%2/2),n},path:function(n){var t={fill:"none"};return ir(n)?t.d=n:lt(n)&&f(t,n),this.createElement("path").attr(t)},circle:function(n,t,i){return n=lt(n)?n:{x:n,y:t,r:i},t=this.createElement("circle"),t.xSetter=t.ySetter=function(n,t,i){i.setAttribute("c"+t,n)},t.attr(n)},arc:function(n,t,i,r,u,f){return lt(n)&&(t=n.y,i=n.r,r=n.innerR,u=n.start,f=n.end,n=n.x),n=this.symbol("arc",n||0,t||0,i||0,i||0,{innerR:r||0,start:u||0,end:f||0}),n.r=i,n},rect:function(n,t,i,r,f,e){var f=lt(n)?n.r:f,o=this.createElement("rect"),n=lt(n)?n:n===s?{}:{x:n,y:t,width:u(i,0),height:u(r,0)};return e!==s&&(o.strokeWidth=e,n=o.crisp(n)),f&&(n.r=f),o.rSetter=function(n,t,i){it(i,{rx:n,ry:n})},o.attr(n)},setSize:function(n,i,r){var u=this.alignedObjects,f=u.length;for(this.width=n,this.height=i,this.boxWrapper[t(r,!0)?"animate":"attr"]({width:n,height:i});f--;)u[f].align()},g:function(n){var t=this.createElement("g");return r(n)?t.attr({"class":"highcharts-"+n}):t},image:function(n,t,i,r,u){var e={preserveAspectRatio:"none"};return arguments.length>1&&f(e,{x:t,y:i,width:r,height:u}),e=this.createElement("image").attr(e),e.element.setAttributeNS?e.element.setAttributeNS("http://www.w3.org/1999/xlink","href",n):e.element.setAttribute("hc-svg-href",n),e},symbol:function(n,t,i,r,u,o){var l=this,s,a=this.symbols[n],a=a&&a(e(t),e(i),r,u,o),p=/^url\((.*?)\)$/,c,v;return a?(s=this.path(a),f(s,{symbolName:n,x:t,y:i,width:r,height:u}),o&&f(s,o)):p.test(n)&&(v=function(n,t){n.element&&(n.attr({width:t[0],height:t[1]}),n.alignByTranslate||n.translate(e((r-t[0])/2),e((u-t[1])/2)))},c=n.match(p)[1],n=df[c]||o&&o.width&&o.height&&[o.width,o.height],s=this.image(c).attr({x:t,y:i}),s.isImg=!0,n?v(s,n):(s.attr({width:0,height:0}),yt("img",{onload:function(){this.width===0&&(y(this,{position:"absolute",top:"-999em"}),h.body.appendChild(this)),v(s,df[c]=[this.width,this.height]),this.parentNode&&this.parentNode.removeChild(this),l.imgCount--,!l.imgCount&&rt[l.chartIndex].onload&&rt[l.chartIndex].onload()},src:c}),this.imgCount++)),s},symbols:{circle:function(n,t,i,r){var u=.166*i;return[st,n+i/2,t,"C",n+i+u,t,n+i+u,t+r,n+i/2,t+r,"C",n-u,t+r,n-u,t,n+i/2,t,"Z"]},square:function(n,t,i,r){return[st,n,t,tt,n+i,t,n+i,t+r,n,t+r,"Z"]},triangle:function(n,t,i,r){return[st,n+i/2,t,tt,n+i,t+r,n,t+r,"Z"]},"triangle-down":function(n,t,i,r){return[st,n,t,tt,n+i,t,n+i/2,t+r,"Z"]},diamond:function(n,t,i,r){return[st,n+i/2,t,tt,n+i,t+r/2,n+i/2,t+r,n,t+r/2,"Z"]},arc:function(n,t,i,r,u){var e=u.start,i=u.r||i||r,f=u.end-.001,r=u.innerR,o=u.open,s=ht(e),h=pt(e),c=ht(f),f=pt(f),u=u.end-e<ci?0:1;return[st,n+i*s,t+i*h,"A",i,i,0,u,1,n+i*c,t+i*f,o?st:tt,n+r*c,t+r*f,"A",r,r,0,u,0,n+r*s,t+r*h,o?"":"Z"]},callout:function(n,t,i,r,u){var f=l(u&&u.r||0,i,r),o=f+6,e=u&&u.anchorX,u=u&&u.anchorY,s;return s=["M",n+f,t,"L",n+i-f,t,"C",n+i,t,n+i,t,n+i,t+f,"L",n+i,t+r-f,"C",n+i,t+r,n+i,t+r,n+i-f,t+r,"L",n+f,t+r,"C",n,t+r,n,t+r,n,t+r-f,"L",n,t+f,"C",n,t,n,t,n+f,t],e&&e>i&&u>t+o&&u<t+r-o?s.splice(13,3,"L",n+i,u-6,n+i+6,u,n+i,u+6,n+i,t+r-f):e&&e<0&&u>t+o&&u<t+r-o?s.splice(33,3,"L",n,u+6,n-6,u,n,u-6,n,t+f):u&&u>r&&e>n+o&&e<n+i-o?s.splice(23,3,"L",e+6,t+r,e,t+r+6,e-6,t+r,n+f,t+r):u&&u<0&&e>n+o&&e<n+i-o&&s.splice(3,3,"L",e-6,t,e,t-6,e+6,t,i-f,t),s}},clipRect:function(n,t,i,r){var u="highcharts-"+ff++,f=this.createElement("clipPath").attr({id:u}).add(this.defs),n=this.rect(n,t,i,r,0).add(f);return n.id=u,n.clipPath=f,n.count=0,n},text:function(n,t,i,r){var f=ti||!dt&&this.forExport,u={};return r&&(this.allowHTML||!this.forExport)?this.html(n,t,i):(u.x=Math.round(t||0),i&&(u.y=Math.round(i)),(n||n===0)&&(u.text=n),n=this.createElement("text").attr(u),f&&n.css({position:"absolute"}),r||(n.xSetter=function(n,t,i){for(var f=i.getElementsByTagName("tspan"),u,e=i.getAttribute(t),r=0;r<f.length;r++)u=f[r],u.getAttribute(t)===e&&u.setAttribute(t,n);i.setAttribute(t,n)}),n)},fontMetrics:function(t,i){var r,u,t=t||this.style.fontSize;return!t&&i&&n.getComputedStyle&&(i=i.element||i,t=(r=n.getComputedStyle(i,""))&&r.fontSize),t=/px/.test(t)?a(t):/em/.test(t)?parseFloat(t)*12:12,r=t<24?t+3:e(t*1.2),u=e(r*.8),{h:r,b:u,f:t}},rotCorr:function(n,t,i){var r=n;return t&&i&&(r=u(r*ht(t*gt),4)),{x:-n/3*pt(t*gt),y:r}},label:function(n,t,u,o,h,l,a,v,y){var g=this,p=g.g(y),w=g.text("",0,0,a).attr({zIndex:1}),b,d,et=0,k=3,ht=0,nt,ct,st,yt,ft=0,it={},lt,at,vt,rt,tt,pt;return vt=function(){var n,t;n=w.element.style,d=(nt===void 0||ct===void 0||p.styles.textAlign)&&r(w.textStr)&&w.getBBox(),p.width=(nt||d.width||0)+2*k+ht,p.height=(ct||d.height||0)+2*k,lt=k+g.fontMetrics(n&&n.fontSize,w).b,at&&(b||(n=ft,t=(v?-lt:0)+ft,p.box=b=g.symbols[o]?g.symbol(o,n,t,p.width,p.height,it):g.rect(n,t,p.width,p.height,0,it["stroke-width"]),b.isImg||b.attr("fill","none"),b.add(p)),b.isImg||b.attr(f({width:e(p.width),height:e(p.height)},it)),it=null)},rt=function(){var n=p.styles,n=n&&n.textAlign,i=ht+k,t;t=v?0:lt,r(nt)&&d&&(n==="center"||n==="right")&&(i+={center:.5,right:1}[n]*(nt-d.width)),(i!==w.x||t!==w.y)&&(w.attr("x",i),t!==s&&w.attr("y",t)),w.x=i,w.y=t},tt=function(n,t){b?b.attr(n,t):it[n]=t},p.onAdd=function(){w.add(p),p.attr({text:n||n===0?n:"",x:t,y:u}),b&&r(h)&&p.attr({anchorX:h,anchorY:l})},p.widthSetter=function(n){nt=n},p.heightSetter=function(n){ct=n},p.paddingSetter=function(n){r(n)&&n!==k&&(k=p.padding=n,rt())},p.paddingLeftSetter=function(n){r(n)&&n!==ht&&(ht=n,rt())},p.alignSetter=function(n){n={left:0,center:.5,right:1}[n],n!==et&&(et=n,d&&p.attr({x:st}))},p.textSetter=function(n){n!==s&&w.textSetter(n),vt(),rt()},p["stroke-widthSetter"]=function(n,t){n&&(at=!0),ft=n%2/2,tt(t,n)},p.strokeSetter=p.fillSetter=p.rSetter=function(n,t){t==="fill"&&n&&(at=!0),tt(t,n)},p.anchorXSetter=function(n,t){h=n,tt(t,e(n)-ft-st)},p.anchorYSetter=function(n,t){l=n,tt(t,n-yt)},p.xSetter=function(n){p.x=n,et&&(n-=et*((nt||d.width)+2*k)),st=e(n),p.attr("translateX",st)},p.ySetter=function(n){yt=p.y=e(n),p.attr("translateY",yt)},pt=p.css,f(p,{css:function(n){if(n){var t={},n=c(n);i(p.textProps,function(i){n[i]!==s&&(t[i]=n[i],delete n[i])}),w.css(t)}return pt.call(p,n)},getBBox:function(){return{width:d.width+2*k,height:d.height+2*k,x:d.x-k,y:d.y-k}},shadow:function(n){return b&&b.shadow(n),p},destroy:function(){ot(p.element,"mouseenter"),ot(p.element,"mouseleave"),w&&(w=w.destroy()),b&&(b=b.destroy()),ut.prototype.destroy.call(p),p=g=vt=rt=tt=null}})}},iu=vi,f(ut.prototype,{htmlCss:function(n){var t=this.element;return(t=n&&t.tagName==="SPAN"&&n.width)&&(delete n.width,this.textWidth=t,this.updateTransform()),n&&n.textOverflow==="ellipsis"&&(n.whiteSpace="nowrap",n.overflow="hidden"),this.styles=f(this.styles,n),y(this.element,n),this},htmlGetBBox:function(){var n=this.element;return n.nodeName==="text"&&(n.style.position="absolute"),{x:n.offsetLeft,y:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var e=this.renderer,n=this.element,o=this.translateX||0,s=this.translateY||0,p=this.x||0,w=this.y||0,f=this.textAlign||"left",h={left:0,center:.5,right:1}[f],t=this.shadows,u=this.styles;if(y(n,{marginLeft:o,marginTop:s}),t&&i(t,function(n){y(n,{marginLeft:o+1,marginTop:s+1})}),this.inverted&&i(n.childNodes,function(t){e.invertChild(t,n)}),n.tagName==="SPAN"){var t=this.rotation,c=a(this.textWidth),l=u&&u.whiteSpace,v=[t,f,n.innerHTML,this.textWidth,this.textAlign].join(",");v!==this.cTT&&(u=e.fontMetrics(n.style.fontSize).b,r(t)&&this.setSpanRotation(t,h,u),y(n,{width:"",whiteSpace:l||"nowrap"}),n.offsetWidth>c&&/[ \-]/.test(n.textContent||n.innerText)&&y(n,{width:c+"px",display:"block",whiteSpace:l||"normal"}),this.getSpanCorrection(n.offsetWidth,u,h,t,f)),y(n,{left:p+(this.xCorr||0)+"px",top:w+(this.yCorr||0)+"px"}),bu&&(u=n.offsetHeight),this.cTT=v}}else this.alignOnAdd=!0},setSpanRotation:function(n,t,i){var r={},u=gi?"-ms-transform":bu?"-webkit-transform":cr?"MozTransform":bf?"-o-transform":"";r[u]=r.transform="rotate("+n+"deg)",r[u+(cr?"Origin":"-origin")]=r.transformOrigin=t*100+"% "+i+"px",y(this.element,r)},getSpanCorrection:function(n,t,i){this.xCorr=-n*i,this.yCorr=-t}}),f(vi.prototype,{html:function(n,t,r){var u=this.createElement("span"),o=u.element,s=u.renderer,h=s.isSVG,c=function(n,t){i(["opacity","visibility"],function(i){eu(n,i+"Setter",function(n,i,r,u){n.call(this,i,r,u),t[r]=i})})};return u.textSetter=function(n){n!==o.innerHTML&&delete this.bBox,o.innerHTML=this.textStr=n,u.htmlUpdateTransform()},h&&c(u,u.element.style),u.xSetter=u.ySetter=u.alignSetter=u.rotationSetter=function(n,t){t==="align"&&(t="textAlign"),u[t]=n,u.htmlUpdateTransform()},u.attr({text:n,x:e(t),y:e(r)}).css({position:"absolute",fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),o.style.whiteSpace="nowrap",u.css=u.htmlCss,h&&(u.add=function(n){var t,r=s.box.parentNode,e=[];if(this.parentGroup=n){if(t=n.div,!t){for(;n;)e.push(n),n=n.parentGroup;i(e.reverse(),function(n){var i,u=it(n.element,"class");u&&(u={className:u}),t=n.div=n.div||yt(lr,u,{position:"absolute",left:(n.translateX||0)+"px",top:(n.translateY||0)+"px",opacity:n.opacity},t||r),i=t.style,f(n,{translateXSetter:function(t,r){i.left=t+"px",n[r]=t,n.doTransform=!0},translateYSetter:function(t,r){i.top=t+"px",n[r]=t,n.doTransform=!0}}),c(n,i)})}}else t=r;return t.appendChild(o),u.added=!0,u.alignOnAdd&&u.htmlUpdateTransform(),u}),u}}),dt||ti||(nt={init:function(n,t){var i=["<",t,' filled="f" stroked="f"'],r=["position: ","absolute",";"],u=t===lr;(t==="shape"||u)&&r.push("left:0;top:0;width:1px;height:1px;"),r.push("visibility: ",u?"hidden":"visible"),i.push(' style="',r.join(""),'"/>'),t&&(i=u||t==="span"||t==="img"?i.join(""):n.prepVML(i),this.element=yt(i)),this.renderer=n},add:function(n){var i=this.renderer,r=this.element,t=i.box,u=n&&n.inverted,t=n?n.element||n:t;return n&&(this.parentGroup=n),u&&i.invertChild(r,t),t.appendChild(r),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),this.onAdd&&this.onAdd(),this},updateTransform:ut.prototype.htmlUpdateTransform,setSpanRotation:function(){var n=this.rotation,t=ht(n*gt),i=pt(n*gt);y(this.element,{filter:n?["progid:DXImageTransform.Microsoft.Matrix(M11=",t,", M12=",-i,", M21=",i,", M22=",t,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(n,i,r,u,f){var e=u?ht(u*gt):1,o=u?pt(u*gt):0,h=t(this.elemHeight,this.element.offsetHeight),s;this.xCorr=e<0&&-n,this.yCorr=o<0&&-h,s=e*o<0,this.xCorr+=o*i*(s?1-r:r),this.yCorr-=e*i*(u?s?r:1-r:1),f&&f!=="left"&&(this.xCorr-=n*r*(e<0?-1:1),u&&(this.yCorr-=h*r*(o<0?-1:1)),y(this.element,{textAlign:f}))},pathToVML:function(n){for(var t=n.length,i=[];t--;)b(n[t])?i[t]=e(n[t]*10)-5:n[t]==="Z"?i[t]="x":(i[t]=n[t],n.isArc&&(n[t]==="wa"||n[t]==="at"))&&(i[t+5]===i[t+7]&&(i[t+7]+=n[t+7]>n[t+5]?1:-1),i[t+6]===i[t+8]&&(i[t+8]+=n[t+8]>n[t+6]?1:-1));return i.join(" ")||"x"},clip:function(n){var t=this,i;return n?(i=n.members,hi(i,t),i.push(t),t.destroyClip=function(){hi(i,t)},n=n.getCSS(t)):(t.destroyClip&&t.destroyClip(),n={clip:cu?"inherit":"rect(auto)"}),t.css(n)},css:ut.prototype.htmlCss,safeRemoveChild:function(n){n.parentNode&&vr(n)},destroy:function(){return this.destroyClip&&this.destroyClip(),ut.prototype.destroy.apply(this)},on:function(t,i){return this.element["on"+t]=function(){var t=n.event;t.target=t.srcElement,i(t)},this},cutOffPath:function(n,t){var i,n=n.split(/[ ,]/);return i=n.length,(i===9||i===11)&&(n[i-4]=n[i-2]=a(n[i-2])-10*t),n.join(" ")},shadow:function(n,i,r){var v=[],f,e=this.element,y=this.renderer,u,p=e.style,s,o=e.path,h,c,l,w;if(o&&typeof o.value!="string"&&(o="x"),c=o,n){for(l=t(n.width,3),w=(n.opacity||.15)/l,f=1;f<=3;f++)h=l*2+1-2*f,r&&(c=this.cutOffPath(o.value,h+.5)),s=['<shape isShadow="true" strokeweight="',h,'" filled="false" path="',c,'" coordsize="10 10" style="',e.style.cssText,'" />'],u=yt(y.prepVML(s),null,{left:a(p.left)+t(n.offsetX,1),top:a(p.top)+t(n.offsetY,1)}),r&&(u.cutOff=h+1),s=['<stroke color="',n.color||"black",'" opacity="',w*f,'"/>'],yt(y.prepVML(s),null,null,u),i?i.element.appendChild(u):e.parentNode.insertBefore(u,e),v.push(u);this.shadows=v}return this},updateShadows:pi,setAttr:function(n,t){cu?this.element[n]=t:this.element.setAttribute(n,t)},classSetter:function(n){this.element.className=n},dashstyleSetter:function(n,t,i){(i.getElementsByTagName("stroke")[0]||yt(this.renderer.prepVML(["<stroke/>"]),null,null,i))[t]=n||"solid",this[t]=n},dSetter:function(n,t,i){var r=this.shadows,n=n||[];if(this.d=n.join&&n.join(" "),i.path=n=this.pathToVML(n),r)for(i=r.length;i--;)r[i].path=r[i].cutOff?this.cutOffPath(n,r[i].cutOff):n;this.setAttr(t,n)},fillSetter:function(n,t,i){var r=i.nodeName;r==="SPAN"?i.style.color=n:r!=="IMG"&&(i.filled=n!=="none",this.setAttr("fillcolor",this.renderer.color(n,i,t,this)))},"fill-opacitySetter":function(n,t,i){yt(this.renderer.prepVML(["<",t.split("-")[0],' opacity="',n,'"/>']),null,null,i)},opacitySetter:pi,rotationSetter:function(n,t,i){i=i.style,this[t]=i[t]=n,i.left=-e(pt(n*gt)+1)+"px",i.top=e(ht(n*gt))+"px"},strokeSetter:function(n,t,i){this.setAttr("strokecolor",this.renderer.color(n,i,t,this))},"stroke-widthSetter":function(n,t,i){i.stroked=!!n,this[t]=n,b(n)&&(n+="px"),this.setAttr("strokeweight",n)},titleSetter:function(n,t){this.setAttr(t,n)},visibilitySetter:function(n,t,r){n==="inherit"&&(n="visible"),this.shadows&&i(this.shadows,function(i){i.style[t]=n}),r.nodeName==="DIV"&&(n=n==="hidden"?"-999em":0,cu||(r.style[t]=n?"visible":"hidden"),t="top"),r.style[t]=n},xSetter:function(n,t,i){this[t]=n,t==="x"?t="left":t==="y"&&(t="top"),this.updateClipping?(this[t]=n,this.updateClipping()):i.style[t]=n},zIndexSetter:function(n,t,i){i.style[t]=n}},nt["stroke-opacitySetter"]=nt["fill-opacitySetter"],o.VMLElement=nt=si(ut,nt),nt.prototype.ySetter=nt.prototype.widthSetter=nt.prototype.heightSetter=nt.prototype.xSetter,pu={Element:nt,isIE8:wi.indexOf("MSIE 8.0")>-1,init:function(n,t,i,r){var u;if(this.alignedObjects=[],r=this.createElement(lr).css(f(this.getStyle(r),{position:"relative"})),u=r.element,n.appendChild(r.element),this.isVML=!0,this.box=u,this.boxWrapper=r,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(t,i,!1),!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(e){h.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(n,t,r,u){var s=this.createElement(),o=lt(n);return f(s,{members:[],count:0,left:(o?n.x:n)+1,top:(o?n.y:t)+1,width:(o?n.width:r)-1,height:(o?n.height:u)-1,getCSS:function(n){var t=n.element,o=t.nodeName,n=n.inverted,i=this.top-(o==="shape"?t.offsetTop:0),r=this.left,t=r+this.width,u=i+this.height,i={clip:"rect("+e(n?r:i)+"px,"+e(n?u:t)+"px,"+e(n?t:u)+"px,"+e(n?i:r)+"px)"};return!n&&cu&&o==="DIV"&&f(i,{width:t+"px",height:u+"px"}),i},updateClipping:function(){i(s.members,function(n){n.element&&n.css(s.getCSS(n))})}})},color:function(n,t,r,u){var st=this,s,tt=/^rgba/,ot,l,e="none";if(n&&n.linearGradient?l="gradient":n&&n.radialGradient&&(l="pattern"),l){var h,v,f=n.linearGradient||n.radialGradient,c,ut,rt,it,nt,y="",n=n.stops,p,et=[],g=function(){ot=['<fill colors="'+et.join(",")+'" opacity="',rt,'" o:opacity2="',ut,'" type="',l,'" ',y,'focus="100%" method="any" />'],yt(st.prepVML(ot),null,null,t)};if(c=n[0],p=n[n.length-1],c[0]>0&&n.unshift([0,c[1]]),p[0]<1&&n.push([1,p[1]]),i(n,function(n,t){tt.test(n[1])?(s=ii(n[1]),h=s.get("rgb"),v=s.get("a")):(h=n[1],v=1),et.push(n[0]*100+"% "+h),t?(rt=v,it=h):(ut=v,nt=h)}),r==="fill")if(l==="gradient")r=f.x1||f[0]||0,n=f.y1||f[1]||0,c=f.x2||f[2]||0,f=f.y2||f[3]||0,y='angle="'+(90-ct.atan((f-n)/(c-r))*180/ci)+'"',g();else{var e=f.r,d=e*2,k=e*2,b=f.cx,w=f.cy,a=t.radialReference,o,e=function(){a&&(o=u.getBBox(),b+=(a[0]-o.x)/o.width-.5,w+=(a[1]-o.y)/o.height-.5,d*=a[2]/o.width,k*=a[2]/o.height),y='src="'+ft.global.VMLRadialGradientURL+'" size="'+d+","+k+'" origin="0.5,0.5" position="'+b+","+w+'" color2="'+nt+'" ',g()};u.added?e():u.onAdd=e,e=it}else e=h}else tt.test(n)&&t.tagName!=="IMG"?(s=ii(n),u[r+"-opacitySetter"](s.get("a"),r,t),e=s.get("rgb")):(e=t.getElementsByTagName(r),e.length&&(e[0].opacity=1,e[0].type="solid"),e=n);return e},prepVML:function(n){var t=this.isIE8,n=n.join("");return t?(n=n.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),n=n.indexOf('style="')===-1?n.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):n.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):n=n.replace("<","<hcv:"),n},text:vi.prototype.html,path:function(n){var t={coordsize:"10 10"};return ir(n)?t.d=n:lt(n)&&f(t,n),this.createElement("shape").attr(t)},circle:function(n,t,i){var r=this.symbol("circle");return lt(n)&&(i=n.r,t=n.y,n=n.x),r.isCircle=!0,r.r=i,r.attr({x:n,y:t})},g:function(n){var t;return n&&(t={className:"highcharts-"+n,"class":"highcharts-"+n}),this.createElement(lr).attr(t)},image:function(n,t,i,r,u){var f=this.createElement("img").attr({src:n});return arguments.length>1&&f.attr({x:t,y:i,width:r,height:u}),f},createElement:function(n){return n==="rect"?this.symbol(n):vi.prototype.createElement.call(this,n)},invertChild:function(n,t){var f=this,u=t.style,r=n.tagName==="IMG"&&n.style;y(n,{flip:"x",left:a(u.width)-(r?a(r.top):1),top:a(u.height)-(r?a(r.left):1),rotation:-90}),i(n.childNodes,function(t){f.invertChild(t,n)})},symbols:{arc:function(n,t,i,r,u){var f=u.start,o=u.end,e=u.r||i||r,i=u.innerR,r=ht(f),s=pt(f),h=ht(o),c=pt(o);return o-f==0?["x"]:(f=["wa",n-e,t-e,n+e,t+e,n+e*r,t+e*s,n+e*h,t+e*c],u.open&&!i&&f.push("e",st,n,t),f.push("at",n-i,t-i,n+i,t+i,n+i*h,t+i*c,n+i*r,t+i*s,"x","e"),f.isArc=!0,f)},circle:function(n,t,i,r,u){return u&&(i=r=2*u.r),u&&u.isCircle&&(n-=i/2,t-=r/2),["wa",n,t,n+i,t+r,n+i,t+r/2,n+i,t+r/2,"e"]},rect:function(n,t,i,u,f){return vi.prototype.symbols[!r(f)||!f.r?"square":"callout"].call(0,n,t,i,u,f)}}},o.VMLRenderer=nt=function(){this.init.apply(this,arguments)},nt.prototype=c(vi.prototype,pu),iu=nt),vi.prototype.measureSpanWidth=function(n,t){var i=h.createElement("span"),r;return r=h.createTextNode(n),i.appendChild(r),y(i,t),this.box.appendChild(i),r=i.offsetWidth,vr(i),r},ti&&(o.CanVGRenderer=nt=function(){ur="http://www.w3.org/1999/xhtml"},nt.prototype.symbols={},ne=function(){function t(){for(var i=n.length,t=0;t<i;t++)n[t]();n=[]}var n=[];return{push:function(i,r){if(n.length===0){var f=h.getElementsByTagName("head")[0],u=h.createElement("script");u.type="text/javascript",u.src=r,u.onload=t,f.appendChild(u)}n.push(i)}}}(),iu=nt),wr.prototype={addLabel:function(){var n=this.axis,e=n.options,h=n.chart,i=n.categories,o=n.names,u=this.pos,s=e.labels,f=n.tickPositions,l=u===f[0],a=u===f[f.length-1],o=i?t(i[u],o[u],u):u,i=this.label,f=f.info,v;n.isDatetimeAxis&&f&&(v=e.dateTimeLabelFormats[f.higherRanks[u]||f.unitName]),this.isFirst=l,this.isLast=a,e=n.labelFormatter.call({axis:n,chart:h,isFirst:l,isLast:a,dateTimeLabelFormat:v,value:n.isLog?at(n.lin2log(o)):o}),r(i)?i&&i.attr({text:e}):(this.labelLength=(this.label=i=r(e)&&s.enabled?h.renderer.text(e,0,0,s.useHTML).css(c(s.style)).add(n.labelGroup):null)&&i.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(n){var i=this.axis,o=n.x,y=i.chart.chartWidth,h=i.chart.spacing,p=t(i.labelLeft,l(i.pos,h[3])),h=t(i.labelRight,u(i.pos+i.len,y-h[1])),w=this.label,c=this.rotation,f={left:0,center:.5,right:1}[i.labelAlign],s=w.getBBox().width,a=i.getSlotWidth(),r=a,k=1,v,b={};c?c<0&&o-f*s<p?v=e(o/ht(c*gt)-p):c>0&&o+f*s>h&&(v=e((y-o)/ht(c*gt))):(y=o+(1-f)*s,o-f*s<p?r=n.x+r*(1-f)-p:y>h&&(r=h-n.x+r*f,k=-1),r=l(a,r),r<a&&i.labelAlign==="center"&&(n.x+=k*(a-r-f*(a-l(s,r)))),s>r||i.autoRotation&&w.styles.width)&&(v=r),v&&(b.width=v,i.options.labels.style.textOverflow||(b.textOverflow="ellipsis"),w.css(b))},getPosition:function(n,t,i,r){var u=this.axis,f=u.chart,e=r&&f.oldChartHeight||f.chartHeight;return{x:n?u.translate(t+i,null,null,r)+u.transB:u.left+u.offset+(u.opposite?(r&&f.oldChartWidth||f.chartWidth)-u.right-u.left:0),y:n?e-u.bottom+u.offset-(u.opposite?u.height:0):e-u.translate(t+i,null,null,r)-u.transB}},getLabelPosition:function(n,t,i,u,f,o,s,h){var c=this.axis,y=c.transA,p=c.reversed,l=c.staggerLines,a=c.tickRotCorr||{x:0,y:0},v=f.y;return r(v)||(v=c.side===0?i.rotation?-8:-i.getBBox().height:c.side===2?a.y+8:ht(i.rotation*gt)*(a.y-i.getBBox(!1,0).height/2)),n=n+f.x+a.x-(o&&u?o*y*(p?-1:1):0),t=t+v-(o&&!u?o*y*(p?1:-1):0),l&&(i=s/(h||1)%l,c.opposite&&(i=l-i-1),t+=i*(c.labelOffset/l)),{x:n,y:e(t)}},getMarkPath:function(n,t,i,r,u,f){return f.crispLine([st,n,t,tt,n+(u?0:-i),t+(u?i:0)],r)},render:function(n,i,r){var u=this.axis,c=u.options,k=u.chart.renderer,v=u.horiz,h=this.type,l=this.label,a=this.pos,y=c.labels,o=this.gridLine,e=h?h+"Grid":"grid",d=h?h+"Tick":"tick",w=c[e+"LineWidth"],ft=c[e+"LineColor"],rt=c[e+"LineDashStyle"],e=u.tickSize(d),d=c[d+"Color"],ut=this.mark,nt=y.step,tt=!0,g=u.tickmarkOffset,f=this.getPosition(v,a,g,i),p=f.x,f=f.y,it=v&&p===u.pos+u.len||!v&&f===u.pos?-1:1,r=t(r,1);this.isActive=!0,w&&(a=u.getPlotLinePath(a+g,w*it,i,!0),o===s&&(o={stroke:ft,"stroke-width":w},rt&&(o.dashstyle=rt),h||(o.zIndex=1),i&&(o.opacity=0),this.gridLine=o=w?k.path(a).attr(o).add(u.gridGroup):null),!i&&o&&a&&o[this.isNew?"attr":"animate"]({d:a,opacity:r})),e&&(u.opposite&&(e[0]=-e[0]),h=this.getMarkPath(p,f,e[0],e[1]*it,v,k),ut?ut.animate({d:h,opacity:r}):this.mark=k.path(h).attr({stroke:d,"stroke-width":e[1],opacity:r}).add(u.axisGroup)),l&&b(p)&&(l.xy=f=this.getLabelPosition(p,f,l,v,y,g,n,nt),this.isFirst&&!this.isLast&&!t(c.showFirstLabel,1)||this.isLast&&!this.isFirst&&!t(c.showLastLabel,1)?tt=!1:v&&!u.isRadial&&!y.step&&!y.rotation&&!i&&r!==0&&this.handleOverflow(f),nt&&n%nt&&(tt=!1),tt&&b(f.y)?(f.opacity=r,l[this.isNew?"attr":"animate"](f)):(rr(l),l.attr("y",-9999)),this.isNew=!1)},destroy:function(){gr(this,this.axis)}},o.PlotLineOrBand=function(n,t){this.axis=n,t&&(this.options=t,this.id=t.id)},o.PlotLineOrBand.prototype={render:function(){var u=this,e=u.axis,a=e.horiz,n=u.options,h=n.label,l=u.label,p=n.width,v=n.to,y=n.from,f=r(y)&&r(v),w=n.value,d=n.dashStyle,s=u.svgElem,i=[],g,b=n.color,nt=t(n.zIndex,0),k=n.events,o={},tt=e.chart.renderer,i=e.log2lin;if(e.isLog&&(y=i(y),v=i(v),w=i(w)),p)(i=e.getPlotLinePath(w,p),o={stroke:b,"stroke-width":p},d)&&(o.dashstyle=d);else if(f)i=e.getPlotBandPath(y,v,n),b&&(o.fill=b),n.borderWidth&&(o.stroke=n.borderColor,o["stroke-width"]=n.borderWidth);else return;if(o.zIndex=nt,s)i?(s.show(),s.animate({d:i})):(s.hide(),l)&&(u.label=l=l.destroy());else if(i&&i.length&&(u.svgElem=s=tt.path(i).attr(o).add(),k))for(g in n=function(n){s.on(n,function(t){k[n].apply(u,[t])})},k)n(g);return h&&r(h.text)&&i&&i.length&&e.width>0&&e.height>0&&!i.flat?(h=c({align:a&&f&&"center",x:a?!f&&4:10,verticalAlign:!a&&f&&"middle",y:a?f?16:10:f?6:-4,rotation:a&&!f&&90},h),this.renderLabel(h,i,f,nt)):l&&l.hide(),u},renderLabel:function(n,t,i,r){var u=this.label,f=this.axis.chart.renderer;u||(u={align:n.textAlign||n.align,rotation:n.rotation},u.zIndex=r,this.label=u=f.text(n.text,0,0,n.useHTML).attr(u).css(n.style).add()),r=[t[1],t[4],i?t[6]:t[1]],t=[t[2],t[5],i?t[7]:t[2]],i=or(r),f=or(t),u.align(n,!1,{x:i,y:f,width:er(r)-i,height:er(t)-f}),u.show()},destroy:function(){hi(this.axis.plotLinesAndBands,this),delete this.axis,gr(this)}},wt=o.Axis=function(){this.init.apply(this,arguments)},wt.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:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0},lineColor:"#C0D0E0",lineWidth:1,minPadding:.01,maxPadding:.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},lineWidth:0,maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return o.numberFormat(this.total,-1)},style:c(vt.line.dataLabels.style,{color:"#000000"})}},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(n,i){var f=i.isX,e,o,u;this.chart=n,this.horiz=n.inverted?!f:f,this.coll=(this.isXAxis=f)?"xAxis":"yAxis",this.opposite=i.opposite,this.side=i.side||(this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(i),u=this.options,e=u.type,this.labelFormatter=u.labels.formatter||this.defaultLabelFormatter,this.userOptions=i,this.minPixelPadding=0,this.reversed=u.reversed,this.visible=u.visible!==!1,this.zoomEnabled=u.zoomEnabled!==!1,this.categories=u.categories||e==="category",this.names=this.names||[],this.isLog=e==="logarithmic",this.isDatetimeAxis=e==="datetime",this.isLinked=r(u.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=u.minRange||u.maxZoom,this.range=u.range,this.offset=u.offset||0,this.stacks={},this.oldStacks={},this.stacksTouched=0,this.min=this.max=null,this.crosshair=t(u.crosshair,li(n.options.tooltip.crosshairs)[f?0:1],!1),u=this.options.events,ri(this,n.axes)===-1&&(f&&!this.isColorAxis?n.axes.splice(n.xAxis.length,0,this):n.axes.push(this),n[this.coll].push(this)),this.series=this.series||[],n.inverted&&f&&this.reversed===s&&(this.reversed=!0),this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(o in u)w(this,o,u[o]);this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(n){this.options=c(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],c(ft[this.coll],n))},defaultLabelFormatter:function(){var i=this.axis,n=this.value,r=i.categories,e=this.dateTimeLabelFormat,f=ft.lang.numericSymbols,u=f&&f.length,t,h=i.options.labels.format,i=i.isLog?n:i.tickInterval;if(h)t=sr(h,this);else if(r)t=n;else if(e)t=br(e,n);else if(u&&i>=1e3)for(;u--&&t===s;)r=Math.pow(1e3,u+1),i>=r&&n*10%r==0&&f[u]!==null&&n!==0&&(t=o.numberFormat(n/r,-1)+f[u]);return t===s&&(t=g(n)>=1e4?o.numberFormat(n,-1):o.numberFormat(n,-1,s,"")),t},getSeriesExtremes:function(){var n=this,f=n.chart;n.hasVisibleSeries=!1,n.dataMin=n.dataMax=n.threshold=null,n.softThreshold=!n.isXAxis,n.buildStacks&&n.buildStacks(),i(n.series,function(i){if(i.visible||!f.options.chart.ignoreHiddenSeries){var e=i.options,o=e.threshold,s;n.hasVisibleSeries=!0,n.isLog&&o<=0&&(o=null),n.isXAxis?(e=i.xData,e.length)&&(i=or(e),!b(i)&&!(i instanceof ui)&&(e=tr(e,function(n){return b(n)}),i=or(e)),n.dataMin=l(t(n.dataMin,e[0]),i),n.dataMax=u(t(n.dataMax,e[0]),er(e))):(i.getExtremes(),s=i.dataMax,i=i.dataMin,r(i)&&r(s)&&(n.dataMin=l(t(n.dataMin,i),i),n.dataMax=u(t(n.dataMax,s),s)),r(o)&&(n.threshold=o),(!e.softThreshold||n.isLog)&&(n.softThreshold=!1))}})},translate:function(n,t,i,r,u,f){var e=this.linkedParent||this,o=1,h=0,s=r?e.oldTransA:e.transA,r=r?e.oldMin:e.min,c=e.minPixelPadding,u=(e.isOrdinal||e.isBroken||e.isLog&&u)&&e.lin2val;return s||(s=e.transA),i&&(o*=-1,h=e.len),e.reversed&&(o*=-1,h-=o*(e.sector||e.len)),t?(n=n*o+h,n-=c,n=n/s+r,u&&(n=e.lin2val(n))):(u&&(n=e.val2lin(n)),f==="between"&&(f=.5),n=o*(n-r)*s+h+o*c+(b(f)?s*f*e.pointRange:0)),n},toPixels:function(n,t){return this.translate(n,!1,!this.horiz,null,!0)+(t?0:this.pos)},toValue:function(n,t){return this.translate(n-(t?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(n,i,r,f,o){var h=this.chart,a=this.left,v=this.top,s,c,p=r&&h.oldChartHeight||h.chartHeight,k=r&&h.oldChartWidth||h.chartWidth,y;s=this.transB;var w=function(n,t,i){return(n<t||n>i)&&(f?n=l(u(t,n),i):y=!0),n},o=t(o,this.translate(n,null,null,r)),n=r=e(o+s);return s=c=e(p-o-s),b(o)?this.horiz?(s=v,c=p-this.bottom,n=r=w(n,a,a+this.width)):(n=a,r=k-this.right,s=c=w(s,v,v+this.height)):y=!0,y&&!f?null:h.renderer.crispLine([st,n,s,tt,r,c],i||1)},getLinearTickPositions:function(n,t,i){var r,f=at(et(t/n)*n),e=at(yi(i/n)*n),u=[];if(t===i&&b(t))return[t];for(t=f;t<=e;){if(u.push(t),t=at(t+n),t===r)break;r=t}return u},getMinorTickPositions:function(){var f=this.options,t=this.tickPositions,u=this.minorTickInterval,i=[],n,r=this.pointRangePadding||0,e;if(n=this.min-r,r=this.max+r,e=r-n,e&&e/u<this.len/3)if(this.isLog)for(r=t.length,n=1;n<r;n++)i=i.concat(this.getLogTickPositions(u,t[n-1],t[n],!0));else if(this.isDatetimeAxis&&f.minorTickInterval==="auto")i=i.concat(this.getTimeTicks(this.normalizeTimeTickInterval(u),n,r,f.startOfWeek));else for(t=n+(t[0]-n)%u;t<=r;t+=u)i.push(t);return i.length!==0&&this.trimTicks(i,f.startOnTick,f.endOnTick),i},adjustForMinRange:function(){var o=this.options,n=this.min,u=this.max,f,y=this.dataMax-this.dataMin>=this.minRange,c,h,v,a,p,e;this.isXAxis&&this.minRange===s&&!this.isLog&&(r(o.min)||r(o.max)?this.minRange=null:(i(this.series,function(n){for(a=n.xData,h=p=n.xIncrement?1:a.length-1;h>0;h--)(v=a[h]-a[h-1],c===s||v<c)&&(c=v)}),this.minRange=l(c*5,this.dataMax-this.dataMin))),u-n<this.minRange&&(e=this.minRange,f=(e-u+n)/2,f=[n-f,t(o.min,n-f)],y&&(f[2]=this.dataMin),n=er(f),u=[n+e,t(o.max,n+e)],y&&(u[2]=this.dataMax),u=or(u),u-n<e&&(f[0]=u-e,f[1]=t(o.min,u-e),n=er(f))),this.min=n,this.max=u},getClosest:function(){var n;return this.categories?n=1:i(this.series,function(t){var i=t.closestPointRange;!t.noSharedTooltip&&r(i)&&(n=r(n)?l(n,i):i)}),n},setAxisTranslation:function(n){var r=this,v=r.max-r.min,h=r.axisPointRange||0,e,o=0,s=0,f=r.linkedParent,y=!!r.categories,c=r.transA,a=r.isXAxis;(a||y||h)&&(f?(o=f.minPointOffset,s=f.pointRangePadding):(e=r.getClosest(),i(r.series,function(n){var i=y?1:a?t(n.options.pointRange,e,0):r.axisPointRange||0,n=n.options.pointPlacement;h=u(h,i),r.single||(o=u(o,bi(n)?0:i/2),s=u(s,n==="on"?0:i))})),f=r.ordinalSlope&&e?r.ordinalSlope/e:1,r.minPointOffset=o*=f,r.pointRangePadding=s*=f,r.pointRange=l(h,v),a)&&(r.closestPointRange=e),n&&(r.oldTransA=c),r.translationSlope=r.transA=c=r.len/(v+s||1),r.transB=r.horiz?r.left:r.bottom,r.minPixelPadding=c*o},minFromRange:function(){return this.max-this.range},setTickInterval:function(n){var f=this,s=f.chart,e=f.options,tt=f.isLog,v=f.log2lin,nt=f.isDatetimeAxis,ft=f.isXAxis,y=f.isLinked,g=e.maxPadding,w=e.minPadding,h=e.tickInterval,k=e.tickPixelInterval,d=f.categories,o=f.threshold,it=f.softThreshold,rt,ut,c,a;!nt&&!d&&!y&&this.getTickAmount(),c=t(f.userMin,e.min),a=t(f.userMax,e.max),y?(f.linkedParent=s[f.coll][e.linkedTo],s=f.linkedParent.getExtremes(),f.min=t(s.min,s.dataMin),f.max=t(s.max,s.dataMax),e.type!==f.linkedParent.options.type&&oi(11,1)):(!it&&r(o)&&(f.dataMin>=o?(rt=o,w=0):f.dataMax<=o&&(ut=o,g=0)),f.min=t(c,rt,f.dataMin),f.max=t(a,ut,f.dataMax)),tt&&(!n&&l(f.min,t(f.dataMin,f.min))<=0&&oi(10,1),f.min=at(v(f.min),15),f.max=at(v(f.max),15)),f.range&&r(f.max)&&(f.userMin=f.min=c=u(f.min,f.minFromRange()),f.userMax=a=f.max,f.range=null),p(f,"foundExtremes"),f.beforePadding&&f.beforePadding(),f.adjustForMinRange(),!d&&!f.axisPointRange&&!f.usePercentage&&!y&&r(f.min)&&r(f.max)&&(v=f.max-f.min)&&(!r(c)&&w&&(f.min-=v*w),!r(a)&&g&&(f.max+=v*g)),b(e.floor)&&(f.min=u(f.min,e.floor)),b(e.ceiling)&&(f.max=l(f.max,e.ceiling)),it&&r(f.dataMin)&&((o=o||0,!r(c)&&f.min<o&&f.dataMin>=o)?f.min=o:!r(a)&&f.max>o&&f.dataMax<=o&&(f.max=o)),f.tickInterval=f.min===f.max||f.min===void 0||f.max===void 0?1:y&&!h&&k===f.linkedParent.options.tickPixelInterval?h=f.linkedParent.tickInterval:t(h,this.tickAmount?(f.max-f.min)/u(this.tickAmount-1,1):void 0,d?1:(f.max-f.min)*k/u(f.len,k)),ft&&!n&&i(f.series,function(n){n.processData(f.min!==f.oldMin||f.max!==f.oldMax)}),f.setAxisTranslation(!0),f.beforeSetTickPositions&&f.beforeSetTickPositions(),f.postProcessTickInterval&&(f.tickInterval=f.postProcessTickInterval(f.tickInterval)),f.pointRange&&!h&&(f.tickInterval=u(f.pointRange,f.tickInterval)),n=t(e.minTickInterval,f.isDatetimeAxis&&f.closestPointRange),!h&&f.tickInterval<n&&(f.tickInterval=n),nt||tt||h||(f.tickInterval=du(f.tickInterval,null,nf(f.tickInterval),t(e.allowDecimals,!(f.tickInterval>.5&&f.tickInterval<5&&f.max>1e3&&f.max<9999)),!!this.tickAmount)),!this.tickAmount&&this.len&&(f.tickInterval=f.unsquish()),this.setTickPositions()},setTickPositions:function(){var t=this.options,n,u=t.tickPositions,i=t.tickPositioner,e=t.startOnTick,o=t.endOnTick,f;this.tickmarkOffset=this.categories&&t.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.minorTickInterval=t.minorTickInterval==="auto"&&this.tickInterval?this.tickInterval/5:t.minorTickInterval,this.tickPositions=n=u&&u.slice(),!n&&(n=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),n.length>this.len&&(n=[n[0],n.pop()]),this.tickPositions=n,i&&(i=i.apply(this,[this.min,this.max])))&&(this.tickPositions=n=i),this.isLinked||(this.trimTicks(n,e,o),this.min===this.max&&r(this.min)&&!this.tickAmount&&(f=!0,this.min-=.5,this.max+=.5),this.single=f,!u&&!i&&this.adjustTickAmount())},trimTicks:function(n,t,i){var u=n[0],f=n[n.length-1],e=this.minPointOffset||0;if(t)this.min=u;else for(;this.min-e>n[0];)n.shift();if(i)this.max=f;else for(;this.max+e<n[n.length-1];)n.pop();n.length===0&&r(u)&&n.push((f+u)/2)},alignToOthers:function(){var n={},t,r=this.options;return this.chart.options.chart.alignTicks!==!1&&r.alignTicks!==!1&&i(this.chart[this.coll],function(i){var r=i.options,r=[i.horiz?r.left:r.top,r.width,r.height,r.pane].join(",");i.series.length&&(n[r]?t=!0:n[r]=1)}),t},getTickAmount:function(){var t=this.options,n=t.tickAmount,i=t.tickPixelInterval;!r(t.tickInterval)&&this.len<i&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(n=2),!n&&this.alignToOthers()&&(n=yi(this.len/i)+1),n<4&&(this.finalTickAmt=n,n=5),this.tickAmount=n},adjustTickAmount:function(){var t=this.tickInterval,n=this.tickPositions,i=this.tickAmount,u=this.finalTickAmt,f=n&&n.length;if(f<i){for(;n.length<i;)n.push(at(n[n.length-1]+t));this.transA*=(f-1)/(i-1),this.max=n[n.length-1]}else f>i&&(this.tickInterval*=2,this.setTickPositions());if(r(u)){for(t=i=n.length;t--;)(u===3&&t%2==1||u<=2&&t>0&&t<i-1)&&n.splice(t,1);this.finalTickAmt=s}},setScale:function(){var t,n;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),n=this.len!==this.oldAxisLength,i(this.series,function(n){(n.isDirtyData||n.isDirty||n.xAxis.isDirty)&&(t=!0)}),n||t||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty)||(this.isDirty=n||this.min!==this.oldMin||this.max!==this.oldMax):this.cleanStacks&&this.cleanStacks()},setExtremes:function(n,r,u,e,o){var s=this,h=s.chart,u=t(u,!0);i(s.series,function(n){delete n.kdTree}),o=f(o,{min:n,max:r}),p(s,"setExtremes",o,function(){s.userMin=n,s.userMax=r,s.eventArgs=o,u&&h.redraw(e)})},zoom:function(n,i){var e=this.dataMin,o=this.dataMax,f=this.options,h=l(e,t(f.min,e)),f=u(o,t(f.max,o));return this.allowZoomOutside||(r(e)&&n<=h&&(n=h),r(o)&&i>=f&&(i=f)),this.displayBtn=n!==s||i!==s,this.setExtremes(n,i,!1,s,{trigger:"zoom"}),!0},setAxisSize:function(){var n=this.chart,i=this.options,e=i.offsetLeft||0,s=this.horiz,o=t(i.width,n.plotWidth-e+(i.offsetRight||0)),r=t(i.height,n.plotHeight),f=t(i.top,n.plotTop),i=t(i.left,n.plotLeft+e),e=/%$/;e.test(r)&&(r=Math.round(parseFloat(r)/100*n.plotHeight)),e.test(f)&&(f=Math.round(parseFloat(f)/100*n.plotHeight+n.plotTop)),this.left=i,this.top=f,this.width=o,this.height=r,this.bottom=n.chartHeight-r-f,this.right=n.chartWidth-o-i,this.len=u(s?o:r,0),this.pos=s?i:f},getExtremes:function(){var n=this.isLog,t=this.lin2log;return{min:n?at(t(this.min)):this.min,max:n?at(t(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(n){var t=this.isLog,r=this.lin2log,i=t?r(this.min):this.min,t=t?r(this.max):this.max;return n===null?n=i:i>n?n=i:t<n&&(n=t),this.translate(n,0,1,0,1)},autoLabelAlign:function(n){return n=(t(n,0)-this.side*90+720)%360,n>15&&n<165?"right":n>195&&n<345?"left":"center"},tickSize:function(n){var r=this.options,i=r[n+"Length"],u=t(r[n+"Width"],n==="tick"&&this.isXAxis?1:0);if(u&&i)return r[n+"Position"]==="inside"&&(i=-i),[i,u]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var n=this.options.labels,y=this.horiz,f=this.tickInterval,e=f,h=this.len/(((this.categories?1:0)+this.max-this.min)/f),c,u=n.rotation,l=this.labelMetrics(),o,a=Number.MAX_VALUE,s,v=function(n){return n/=h||1,n=n>1?yi(n):1,n*f};return y?(s=!n.staggerLines&&!n.step&&(r(u)?[u]:h<t(n.autoRotationLimit,80)&&n.autoRotation))&&i(s,function(n){var t;(n===u||n&&n>=-90&&n<=90)&&(o=v(g(l.h/pt(gt*n))),t=o+g(n/360),t<a&&(a=t,c=n,e=o))}):n.step||(e=v(l.h)),this.autoRotation=s,this.labelRotation=t(c,u),e},getSlotWidth:function(){var n=this.chart,t=this.horiz,i=this.options.labels,u=Math.max(this.tickPositions.length-(this.categories?0:1),1),r=n.margin[3];return t&&(i.step||0)<2&&!i.rotation&&(this.staggerLines||1)*n.plotWidth/u||!t&&(r&&r-n.spacing[3]||n.chartWidth*.33)},renderUnsquish:function(){var h=this.chart,b=h.renderer,f=this.tickPositions,l=this.ticks,o=this.options.labels,k=this.horiz,a=this.getSlotWidth(),n=u(1,e(a-2*(o.padding||5))),t={},v=this.labelMetrics(),w=o.style.textOverflow,r,s=0,y,p;if(bi(o.rotation)||(t.rotation=o.rotation||0),this.autoRotation)i(f,function(n){(n=l[n])&&n.labelLength>s&&(s=n.labelLength)}),s>n&&s>v.h?t.rotation=this.labelRotation:this.labelRotation=0;else if(a&&(r={width:n+"px"},!w))for(r.textOverflow="clip",y=f.length;!k&&y--;)(p=f[y],n=l[p].label)&&(n.styles.textOverflow==="ellipsis"?n.css({textOverflow:"clip"}):l[p].labelLength>a&&n.css({width:a+"px"}),n.getBBox().height>this.len/f.length-(v.h-v.f))&&(n.specCss={textOverflow:"ellipsis"});t.rotation&&(r={width:(s>h.chartHeight*.5?h.chartHeight*.33:h.chartHeight)+"px"},!w)&&(r.textOverflow="ellipsis"),(this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation))&&(t.align=this.labelAlign),i(f,function(n){var i=(n=l[n])&&n.label;i&&(i.attr(t),r&&i.css(c(r,i.specCss)),delete i.specCss,n.rotation=t.rotation)}),this.tickRotCorr=b.rotCorr(v.b,this.labelRotation||0,this.side!==0)},hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},getOffset:function(){var n=this,c=n.chart,l=c.renderer,o=n.options,g=n.tickPositions,s=n.ticks,b=n.horiz,f=n.side,rt=c.inverted?[1,0,3,2][f]:f,p,d,it=0,k,h=0,e=o.title,y=o.labels,a=0,ut=n.opposite,tt=c.axisOffset,c=c.clipOffset,w=[-1,1,1,-1][f],v,nt=n.axisParent,ft=this.tickSize("tick");if(p=n.hasData(),n.showAxis=d=p||t(o.showEmpty,!0),n.staggerLines=n.horiz&&y.staggerLines,n.axisGroup||(n.gridGroup=l.g("grid").attr({zIndex:o.gridZIndex||1}).add(nt),n.axisGroup=l.g("axis").attr({zIndex:o.zIndex||2}).add(nt),n.labelGroup=l.g("axis-labels").attr({zIndex:y.zIndex||7}).addClass("highcharts-"+n.coll.toLowerCase()+"-labels").add(nt)),p||n.isLinked)(i(g,function(t){s[t]?s[t].addLabel():s[t]=new wr(n,t)}),n.renderUnsquish(),y.reserveSpace!==!1&&(f===0||f===2||{1:"left",3:"right"}[f]===n.labelAlign||n.labelAlign==="center")&&i(g,function(n){a=u(s[n].getLabelSize(),a)}),n.staggerLines)&&(a*=n.staggerLines,n.labelOffset=a*(n.opposite?-1:1));else for(v in s)s[v].destroy(),delete s[v];e&&e.text&&e.enabled!==!1&&(n.axisTitle||((v=e.textAlign)||(v=(b?{low:"left",middle:"center",high:"right"}:{low:ut?"right":"left",middle:"center",high:ut?"left":"right"})[e.align]),n.axisTitle=l.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:v}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(e.style).add(n.axisGroup),n.axisTitle.isNew=!0),d&&(it=n.axisTitle.getBBox()[b?"height":"width"],k=e.offset,h=r(k)?0:t(e.margin,b?5:10)),n.axisTitle[d?"show":"hide"](!0)),n.offset=w*t(o.offset,tt[f]),n.tickRotCorr=n.tickRotCorr||{x:0,y:0},l=f===0?-n.labelMetrics().h:f===2?n.tickRotCorr.y:0,h=Math.abs(a)+h,a&&(h-=l,h+=w*(b?t(y.y,n.tickRotCorr.y+w*8):y.x)),n.axisTitleMargin=t(k,h),tt[f]=u(tt[f],n.axisTitleMargin+it+w*n.offset,h,p&&g.length&&ft?ft[0]:0),o=o.offset?0:et(o.lineWidth/2)*2,c[rt]=u(c[rt],o)},getLinePath:function(n){var t=this.chart,u=this.opposite,i=this.offset,r=this.horiz,f=this.left+(u?this.width:0)+i,i=t.chartHeight-this.bottom-(u?this.height:0)+i;return u&&(n*=-1),t.renderer.crispLine([st,r?this.left:f,r?i:this.top,tt,r?t.chartWidth-this.right:f,r?i:t.chartHeight-this.bottom],n)},getTitlePosition:function(){var n=this.horiz,i=this.left,e=this.top,t=this.len,r=this.options.title,u=n?i:e,f=this.opposite,o=this.offset,s=r.x||0,h=r.y||0,c=this.chart.renderer.fontMetrics(r.style.fontSize).f,t={low:u+(n?0:t),middle:u+t/2,high:u+(n?t:0)}[r.align],i=(n?e+this.height:i)+(n?1:-1)*(f?-1:1)*this.axisTitleMargin+(this.side===2?c:0);return{x:n?t+s:i+(f?this.width:0)+o+s,y:n?i+h-(f?this.height:0)+o:t+h}},render:function(){var n=this,a=n.chart,g=a.renderer,f=n.options,rt=n.isLog,tt=n.lin2log,nt=n.isLinked,h=n.tickPositions,l=n.axisTitle,t=n.ticks,u=n.minorTicks,r=n.alternateBands,d=f.stackLabels,it=f.alternateGridColor,e=n.tickmarkOffset,p=f.lineWidth,v,k=a.hasRendered&&b(n.oldMin),w=n.showAxis,ut=uu(g.globalAnimation),y,c;n.labelEdge.length=0,n.overlap=!1,i([t,u,r],function(n){for(var t in n)n[t].isActive=!1}),(n.hasData()||nt)&&(n.minorTickInterval&&!n.categories&&i(n.getMinorTickPositions(),function(t){u[t]||(u[t]=new wr(n,t,"minor")),k&&u[t].isNew&&u[t].render(null,!0),u[t].render(null,!1,1)}),h.length&&(i(h,function(i,r){(!nt||i>=n.min&&i<=n.max)&&(t[i]||(t[i]=new wr(n,i)),k&&t[i].isNew&&t[i].render(r,!0,.1),t[i].render(r))}),e&&(n.min===0||n.single))&&(t[-1]||(t[-1]=new wr(n,-1,null,!0)),t[-1].render(-1)),it&&i(h,function(t,i){c=h[i+1]!==s?h[i+1]+e:n.max-e,i%2==0&&t<n.max&&c<=n.max+(a.polar?-e:e)&&(r[t]||(r[t]=new o.PlotLineOrBand(n)),y=t+e,r[t].options={from:rt?tt(y):y,to:rt?tt(c):c,color:it},r[t].render(),r[t].isActive=!0)}),n._addedPlotLB||(i((f.plotLines||[]).concat(f.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0)),i([t,u,r],function(n){var t,i,u=[],f=ut.duration;for(t in n)n[t].isActive||(n[t].render(t,!1,0),n[t].isActive=!1,u.push(t));kr(function(){for(i=u.length;i--;)n[u[i]]&&!n[u[i]].isActive&&(n[u[i]].destroy(),delete n[u[i]])},n===r||!a.hasRendered||!f?0:f)}),p&&(v=n.getLinePath(p),n.axisLine?n.axisLine.animate({d:v}):n.axisLine=g.path(v).attr({stroke:f.lineColor,"stroke-width":p,zIndex:7}).add(n.axisGroup),n.axisLine[w?"show":"hide"](!0)),l&&w&&(l[l.isNew?"attr":"animate"](n.getTitlePosition()),l.isNew=!1),d&&d.enabled&&n.renderStackTotals(),n.isDirty=!1},redraw:function(){this.visible&&(this.render(),i(this.plotLinesAndBands,function(n){n.render()})),i(this.series,function(n){n.isDirty=!0})},destroy:function(n){var t=this,r=t.stacks,u,f=t.plotLinesAndBands;n||ot(t);for(u in r)gr(r[u]),r[u]=null;for(i([t.ticks,t.minorTicks,t.alternateBands],function(n){gr(n)}),n=f.length;n--;)f[n].destroy();i("stackTotalGroup,axisLine,axisTitle,axisGroup,gridGroup,labelGroup,cross".split(","),function(n){t[n]&&(t[n]=t[n].destroy())}),this._addedPlotLB=this.chart._labelPanes=this.ordinalSlope=void 0},drawCrosshair:function(n,i){var u,f=this.crosshair,e,o;n||(n=this.cross&&this.cross.e),this.crosshair&&(r(i)||!t(f.snap,!0))!==!1?(t(f.snap,!0)?r(i)&&(u=this.isXAxis?i.plotX:this.len-i.plotY):u=this.horiz?n.chartX-this.pos:this.len-n.chartY+this.pos,u=this.isRadial?this.getPlotLinePath(this.isXAxis?i.x:t(i.stackY,i.y))||null:this.getPlotLinePath(null,null,null,null,u)||null,u===null)?this.hideCrosshair():(e=this.categories&&!this.isRadial,o=t(f.width,e?this.transA:1),this.cross?this.cross.attr({d:u,visibility:"visible","stroke-width":o}):(e={"pointer-events":"none","stroke-width":o,stroke:f.color||(e?"rgba(155,200,255,0.2)":"#C0C0C0"),zIndex:t(f.zIndex,2)},f.dashStyle&&(e.dashstyle=f.dashStyle),this.cross=this.chart.renderer.path(u).attr(e).add()),this.cross.e=n):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}},f(wt.prototype,{getPlotBandPath:function(n,t){var i=this.getPlotLinePath(t,null,null,!0),r=this.getPlotLinePath(n,null,null,!0);return r&&i?(r.flat=r.toString()===i.toString(),r.push(i[4],i[5],i[1],i[2])):r=null,r},addPlotBand:function(n){return this.addPlotBandOrLine(n,"plotBands")},addPlotLine:function(n){return this.addPlotBandOrLine(n,"plotLines")},addPlotBandOrLine:function(n,t){var i=new o.PlotLineOrBand(this,n).render(),r=this.userOptions;return i&&(t&&(r[t]=r[t]||[],r[t].push(n)),this.plotLinesAndBands.push(i)),i},removePlotBandOrLine:function(n){for(var r=this.plotLinesAndBands,u=this.options,f=this.userOptions,t=r.length;t--;)r[t].id===n&&r[t].destroy();i([u.plotLines||[],f.plotLines||[],u.plotBands||[],f.plotBands||[]],function(i){for(t=i.length;t--;)i[t].id===n&&hi(i,i[t])})}}),wt.prototype.getTimeTicks=function(n,u,e,o){var a=[],y={},p=ft.global.useUTC,l,s=new ui(u-ou(u)),h=n.unitRange,c=n.count;if(r(u)){s[vf](h>=v.second?0:c*et(s.getMilliseconds()/c)),h>=v.second&&s[af](h>=v.minute?0:c*et(s.getSeconds()/c)),h>=v.minute&&s[yf](h>=v.hour?0:c*et(s[of]()/c)),h>=v.hour&&s[pf](h>=v.day?0:c*et(s[cf]()/c)),h>=v.day&&s[yu](h>=v.month?1:c*et(s[dr]()/c)),h>=v.month&&(s[lf](h>=v.year?0:c*et(s[su]()/c)),l=s[nu]()),h>=v.year&&(l-=l%c,s[rf](l)),h===v.week&&s[yu](s[dr]()-s[hf]()+t(o,1)),u=1,(ef||ru)&&(s=s.getTime(),s=new ui(s+ou(s))),l=s[nu]();for(var o=s.getTime(),w=s[su](),b=s[dr](),k=!p||!!ru,d=(v.day+(p?ou(s):s.getTimezoneOffset()*6e4))%v.day;o<e;)a.push(o),h===v.year?o=lu(l+u*c,0):h===v.month?o=lu(l,w+u*c):k&&(h===v.day||h===v.week)?o=lu(l,w,b+u*c*(h===v.day?1:7)):o+=h*c,u++;a.push(o),i(tr(a,function(n){return h<=v.hour&&n%v.day===d}),function(n){y[n]="day"})}return a.info=f(n,{higherRanks:y,totalRange:h*c}),a},wt.prototype.normalizeTimeTickInterval=function(n,t){for(var i=t||[["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]],r=i[i.length-1],f=v[r[0]],o=r[1],e=0;e<i.length;e++)if(r=i[e],f=v[r[0]],o=r[1],i[e+1]&&n<=(f*o[o.length-1]+v[i[e+1][0]])/2)break;return f===v.year&&n<5*f&&(o=[1,2,5]),i=du(n/f,o,r[0]==="year"?u(nf(n/f),1):1),{unitRange:f,count:i,unitName:r[0]}},wt.prototype.getLogTickPositions=function(n,i,r,u){var o=this.options,f=this.len,a=this.lin2log,p=this.log2lin,c=[],l,w,v,h,y;if(u||(this._minorAutoInterval=null),n>=.5)n=e(n),c=this.getLinearTickPositions(n,i,r);else if(n>=.08)for(f=et(i),o=n>.3?[1,2,4]:n>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];f<r+1&&!y;f++)for(w=o.length,l=0;l<w&&!y;l++)v=p(a(f)*o[l]),v>i&&(!u||h<=r)&&h!==s&&c.push(h),h>r&&(y=!0),h=v;else(i=a(i),r=a(r),n=o[u?"minorTickInterval":"tickInterval"],n=t(n==="auto"?null:n,this._minorAutoInterval,(r-i)*(o.tickPixelInterval/(u?5:1))/((u?f/this.tickPositions.length:f)||1)),n=du(n,null,nf(n)),c=di(this.getLinearTickPositions(n,i,r),p),u)||(this._minorAutoInterval=n/5);return u||(this.tickInterval=n),c},wt.prototype.log2lin=function(n){return ct.log(n)/ct.LN10},wt.prototype.lin2log=function(n){return ct.pow(10,n)},tf=o.Tooltip=function(){this.init.apply(this,arguments)},tf.prototype={init:function(n,t){var r=t.borderWidth,i=t.style,u=a(i.padding);this.chart=n,this.options=t,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.label=n.renderer.label("",0,0,t.shape||"callout",null,null,t.useHTML,null,"tooltip").attr({padding:u,fill:t.backgroundColor,"stroke-width":r,r:t.borderRadius,zIndex:8}).css(i).css({padding:0}).add().attr({y:-9e9}),ti||this.label.shadow(t.shadow),this.shared=t.shared},destroy:function(){this.label&&(this.label=this.label.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(n,t,i,r){var u=this,e=u.now,o=u.options.animation!==!1&&!u.isHidden&&(g(n-e.x)>1||g(t-e.y)>1),h=u.followPointer||u.len>1;f(e,{x:o?(2*e.x+n)/3:n,y:o?(e.y+t)/2:t,anchorX:h?s:o?(2*e.anchorX+i)/3:i,anchorY:h?s:o?(e.anchorY+r)/2:r}),u.label.attr(e),o&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){u&&u.move(n,t,i,r)},32))},hide:function(n){var i=this;clearTimeout(this.hideTimer),n=t(n,this.options.hideDelay,500),this.isHidden||(this.hideTimer=kr(function(){i.label[n?"fadeOut":"hide"](),i.isHidden=!0},n))},getAnchor:function(n,t){var u,r=this.chart,f=r.inverted,c=r.plotTop,v=r.plotLeft,o=0,h=0,l,a,n=li(n);return u=n[0].tooltipPos,this.followPointer&&t&&(t.chartX===s&&(t=r.pointer.normalize(t)),u=[t.chartX-r.plotLeft,t.chartY-c]),u||(i(n,function(n){l=n.series.yAxis,a=n.series.xAxis,o+=n.plotX+(!f&&a?a.left-v:0),h+=(n.plotLow?(n.plotLow+n.plotHigh)/2:n.plotY)+(!f&&l?l.top-c:0)}),o/=n.length,h/=n.length,u=[f?r.plotWidth-h:o,this.shared&&!f&&n.length>1&&t?t.chartY-c:f?r.plotHeight-o:h]),di(u,e)},getPosition:function(n,i,r){var f=this.chart,o=this.distance,e={},s=r.h||0,h,c=["y",f.chartHeight,i,r.plotY+f.plotTop,f.plotTop,f.plotTop+f.plotHeight],a=["x",f.chartWidth,n,r.plotX+f.plotLeft,f.plotLeft,f.plotLeft+f.plotWidth],p=!this.followPointer&&t(r.ttBelow,!f.inverted==!!r.negative),w=function(n,t,i,r,f,h){var a=i<r-o,v=r+o+i<t,c=r-o-i;if(r+=o,p&&v)e[n]=r;else if(!p&&a)e[n]=c;else if(a)e[n]=l(h-i,c-s<0?c:c-s);else if(v)e[n]=u(f,r+s+i>t?r:r+s);else return!1},b=function(n,t,i,r){var u;return r<o||r>t-o?u=!1:e[n]=r<i/2?1:r>t-i/2?t-i-2:r-i/2,u},v=function(n){var t=c;c=a,a=t,h=n},y=function(){w.apply(0,c)!==!1?b.apply(0,a)===!1&&!h&&(v(!0),y()):h?e.x=e.y=0:(v(!0),y())};return(f.inverted||this.len>1)&&v(),y(),e},defaultFormatter:function(n){var i=this.points||li(this),t;return t=[n.tooltipFooterHeaderFormatter(i[0])],t=t.concat(n.bodyFormatter(i)),t.push(n.tooltipFooterHeaderFormatter(i[0],!0)),t.join("")},refresh:function(n,r){var e=this.chart,o=this.label,v=this.options,h,c,s,u={},f,l=[],a,y;f=v.formatter||this.defaultFormatter,u=e.hoverPoints,y=this.shared,clearTimeout(this.hideTimer),this.followPointer=li(n)[0].series.tooltipOptions.followPointer,s=this.getAnchor(n,r),h=s[0],c=s[1],y&&(!n.series||!n.series.noSharedTooltip)?(e.hoverPoints=n,u&&i(u,function(n){n.setState()}),i(n,function(n){n.setState("hover"),l.push(n.getLabelConfig())}),u={x:n[0].category,y:n[0].y},u.points=l,this.len=l.length,n=n[0]):u=n.getLabelConfig(),f=f.call(u,this),u=n.series,this.distance=t(u.tooltipOptions.distance,16),f===!1?this.hide():(this.isHidden&&(rr(o),o.attr("opacity",1).show()),o.attr({text:f}),a=v.borderColor||n.color||u.color||"#606060",o.attr({stroke:a}),this.updatePosition({plotX:h,plotY:c,negative:n.negative,ttBelow:n.ttBelow,h:s[2]||0}),this.isHidden=!1),p(e,"tooltipRefresh",{text:f,x:h+e.plotLeft,y:c+e.plotTop,borderColor:a})},updatePosition:function(n){var i=this.chart,t=this.label,t=(this.options.positioner||this.getPosition).call(this,t.width,t.height,n);this.move(e(t.x),e(t.y||0),n.plotX+i.plotLeft,n.plotY+i.plotTop)},getXDateFormat:function(n,t,i){var u,t=t.dateTimeLabelFormats,f=i&&i.closestPointRange,r,e={millisecond:15,second:12,minute:9,hour:6,day:3},o,s="millisecond";if(f){o=br("%m-%d %H:%M:%S.%L",n.x);for(r in v){if(f===v.week&&+br("%w",n.x)===i.options.startOfWeek&&o.substr(6)==="00:00:00.000"){r="week";break}if(v[r]>f){r=s;break}if(e[r]&&o.substr(e[r])!=="01-01 00:00:00.000".substr(e[r]))break;r!=="week"&&(s=r)}r&&(u=t[r])}else u=t.day;return u||t.year},tooltipFooterHeaderFormatter:function(n,t){var i=t?"footer":"header",u=n.series,f=u.tooltipOptions,r=f.xDateFormat,e=u.xAxis,o=e&&e.options.type==="datetime"&&b(n.key),i=f[i+"Format"];return o&&!r&&(r=this.getXDateFormat(n,f,e)),o&&r&&(i=i.replace("{point.key}","{point.key:"+r+"}")),sr(i,{point:n,series:u})},bodyFormatter:function(n){return di(n,function(n){var t=n.series.tooltipOptions;return(t.pointFormatter||n.point.tooltipFormatter).call(n.point,t.pointFormat)})}},fu=h&&h.documentElement.ontouchstart!==s,hr=o.Pointer=function(n,t){this.init(n,t)},hr.prototype={init:function(n,i){var r=i.chart,e=r.events,u=ti?"":r.zoomType,r=n.inverted,f;this.options=i,this.chart=n,this.zoomX=f=/x/.test(u),this.zoomY=u=/y/.test(u),this.zoomHor=f&&!r||u&&r,this.zoomVert=u&&!r||f&&r,this.hasZoom=f||u,this.runChartClick=e&&!!e.click,this.pinchDown=[],this.lastValidTouch={},o.Tooltip&&i.tooltip.enabled&&(n.tooltip=new tf(n,i.tooltip),this.followTouchMove=t(i.tooltip.followTouchMove,!0)),this.setDOMEvents()},normalize:function(t,i){var o,r,t=t||n.event;return t.target||(t.target=t.srcElement),r=t.touches?t.touches.length?t.touches.item(0):t.changedTouches[0]:t,i||(this.chartPosition=i=uf(this.chart.container)),r.pageX===s?(o=u(t.x,t.clientX-i.left),r=t.y):(o=r.pageX-i.left,r=r.pageY-i.top),f(t,{chartX:e(o),chartY:e(r)})},getCoordinates:function(n){var t={xAxis:[],yAxis:[]};return i(this.chart.axes,function(i){t[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(n[i.horiz?"chartX":"chartY"])})}),t},runPointActions:function(n){var l=this.chart,f=l.series,u=l.tooltip,c=u?u.shared:!1,a=l.hoverPoint,e=l.hoverSeries,o,v=[Number.MAX_VALUE,Number.MAX_VALUE],y,k,s=[],r=[],p;if(!c&&!e)for(o=0;o<f.length;o++)(f[o].directTouch||!f[o].options.stickyTracking)&&(f=[]);if(e&&(c?e.noSharedTooltip:e.directTouch)&&a?r=[a]:(i(f,function(i){y=i.noSharedTooltip&&c,k=!c&&i.directTouch,i.visible&&!y&&!k&&t(i.options.enableMouseTracking,!0)&&(p=i.searchPoint(n,!y&&i.kdDimensions===1))&&p.series&&s.push(p)}),i(s,function(n){n&&i(["dist","distX"],function(t,i){if(b(n[t])){var u=n[t]===v[i]&&n.series.group.zIndex>=r[i].series.group.zIndex;(n[t]<v[i]||u)&&(v[i]=n[t],r[i]=n)}})})),c)for(o=s.length;o--;)(s[o].clientX!==r[1].clientX||s[o].series.noSharedTooltip)&&s.splice(o,1);if(r[0]&&(r[0]!==this.prevKDPoint||u&&u.isHidden))if(c&&!r[0].series.noSharedTooltip)s.length&&u&&u.refresh(s,n),i(s,function(t){t.onMouseOver(n,t!==(e&&e.directTouch&&a||r[0]))}),this.prevKDPoint=r[1];else{if(u&&u.refresh(r[0],n),!e||!e.directTouch)r[0].onMouseOver(n);this.prevKDPoint=r[0]}else f=e&&e.tooltipOptions.followPointer,u&&f&&!u.isHidden&&(f=u.getAnchor([{}],n),u.updatePosition({plotX:f[0],plotY:f[1]}));this._onDocumentMouseMove||(this._onDocumentMouseMove=function(n){if(rt[kt])rt[kt].pointer.onDocumentMouseMove(n)},w(h,"mousemove",this._onDocumentMouseMove)),i(c?s:[t(a,r[1])],function(t){i(l.axes,function(i){(!t||t.series[i.coll]===i)&&i.drawCrosshair(n,t)})})},reset:function(n,t){var r=this.chart,s=r.hoverSeries,u=r.hoverPoint,o=r.hoverPoints,f=r.tooltip,e=f&&f.shared?o:u;n&&e&&i(li(e),function(t){t.series.isCartesian&&t.plotX===void 0&&(n=!1)}),n?f&&e&&(f.refresh(e),u&&(u.setState(u.state,!0),i(r.axes,function(n){n.crosshair&&n.drawCrosshair(null,u)}))):(u&&u.onMouseOut(),o&&i(o,function(n){n.setState()}),s&&s.onMouseOut(),f&&f.hide(t),this._onDocumentMouseMove&&(ot(h,"mousemove",this._onDocumentMouseMove),this._onDocumentMouseMove=null),i(r.axes,function(n){n.hideCrosshair()}),this.hoverX=this.prevKDPoint=r.hoverPoints=r.hoverPoint=null)},scaleGroups:function(n,t){var r=this.chart,u;i(r.series,function(i){u=n||i.getPlotBox(),i.xAxis&&i.xAxis.zoomEnabled&&(i.group.attr(u),i.markerGroup&&(i.markerGroup.attr(u),i.markerGroup.clip(t?r.clipRect:null)),i.dataLabelsGroup&&i.dataLabelsGroup.attr(u))}),r.clipRect.attr(t||r.clipBox)},dragStart:function(n){var t=this.chart;t.mouseIsDown=n.type,t.cancelClick=!1,t.mouseDownX=this.mouseDownX=n.chartX,t.mouseDownY=this.mouseDownY=n.chartY},drag:function(n){var i=this.chart,o=i.options.chart,t=n.chartX,u=n.chartY,v=this.zoomHor,y=this.zoomVert,f=i.plotLeft,e=i.plotTop,c=i.plotWidth,l=i.plotHeight,a,r=this.selectionMarker,s=this.mouseDownX,h=this.mouseDownY,p=o.panKey&&n[o.panKey+"Key"];r&&r.touch||(t<f?t=f:t>f+c&&(t=f+c),u<e?u=e:u>e+l&&(u=e+l),this.hasDragged=Math.sqrt(Math.pow(s-t,2)+Math.pow(h-u,2)),this.hasDragged>10)&&(a=i.isInsidePlot(s-f,h-e),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&a&&!p&&!r&&(this.selectionMarker=r=i.renderer.rect(f,e,v?1:c,y?1:l,0).attr({fill:o.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add()),r&&v&&(t-=s,r.attr({width:g(t),x:(t>0?0:t)+s})),r&&y&&(t=u-h,r.attr({height:g(t),y:(t>0?0:t)+h})),a&&!r&&o.panning&&i.pan(n,o.panning))},drop:function(n){var v=this,e=this.chart,o=this.hasPinched;if(this.selectionMarker){var s={originalEvent:n,xAxis:[],yAxis:[]},t=this.selectionMarker,h=t.attr?t.attr("x"):t.x,c=t.attr?t.attr("y"):t.y,w=t.attr?t.attr("width"):t.width,b=t.attr?t.attr("height"):t.height,a;(this.hasDragged||o)&&(i(e.axes,function(t){if(t.zoomEnabled&&r(t.min)&&(o||v[{xAxis:"zoomX",yAxis:"zoomY"}[t.coll]])){var i=t.horiz,f=n.type==="touchend"?t.minPixelPadding:0,e=t.toValue((i?h:c)+f),i=t.toValue((i?h+w:c+b)-f);s[t.coll].push({axis:t,min:l(e,i),max:u(e,i)}),a=!0}}),a&&p(e,"selection",s,function(n){e.zoom(f(n,o?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),o&&this.scaleGroups()}e&&(y(e.container,{cursor:e._cursor}),e.cancelClick=this.hasDragged>10,e.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){rt[kt]&&rt[kt].pointer.drop(n)},onDocumentMouseMove:function(n){var t=this.chart,i=this.chartPosition,n=this.normalize(n,i);i&&!this.inClass(n.target,"highcharts-tracker")&&!t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop)&&this.reset()},onContainerMouseLeave:function(n){var t=rt[kt];t&&(n.relatedTarget||n.toElement)&&(t.pointer.reset(),t.pointer.chartPosition=null)},onContainerMouseMove:function(n){var t=this.chart;r(kt)&&rt[kt]&&rt[kt].mouseIsDown||(kt=t.index),n=this.normalize(n),n.returnValue=!1,t.mouseIsDown==="mousedown"&&this.drag(n),(this.inClass(n.target,"highcharts-tracker")||t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop))&&!t.openMenu&&this.runPointActions(n)},inClass:function(n,t){for(var i;n;){if(i=it(n,"class")){if(i.indexOf(t)!==-1)return!0;if(i.indexOf("highcharts-container")!==-1)return!1}n=n.parentNode}},onTrackerMouseOut:function(n){var t=this.chart.hoverSeries,n=n.relatedTarget||n.toElement;!t||!n||t.options.stickyTracking||this.inClass(n,"highcharts-tooltip")||this.inClass(n,"highcharts-series-"+t.index)||t.onMouseOut()},onContainerClick:function(n){var t=this.chart,i=t.hoverPoint,r=t.plotLeft,u=t.plotTop,n=this.normalize(n);t.cancelClick||(i&&this.inClass(n.target,"highcharts-tracker")?(p(i.series,"click",f(n,{point:i})),t.hoverPoint&&i.firePointEvent("click",n)):(f(n,this.getCoordinates(n)),t.isInsidePlot(n.chartX-r,n.chartY-u)&&p(t,"click",n)))},setDOMEvents:function(){var n=this,t=n.chart.container;t.onmousedown=function(t){n.onContainerMouseDown(t)},t.onmousemove=function(t){n.onContainerMouseMove(t)},t.onclick=function(t){n.onContainerClick(t)},w(t,"mouseleave",n.onContainerMouseLeave),tu===1&&w(h,"mouseup",n.onDocumentMouseUp),fu&&(t.ontouchstart=function(t){n.onContainerTouchStart(t)},t.ontouchmove=function(t){n.onContainerTouchMove(t)},tu===1&&w(h,"touchend",n.onDocumentTouchEnd))},destroy:function(){var n;ot(this.chart.container,"mouseleave",this.onContainerMouseLeave),tu||(ot(h,"mouseup",this.onDocumentMouseUp),ot(h,"touchend",this.onDocumentTouchEnd)),clearInterval(this.tooltipTimeout);for(n in this)this[n]=null}},f(o.Pointer.prototype,{pinchTranslate:function(n,t,i,r,u,f){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,n,t,i,r,u,f),(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,n,t,i,r,u,f)},pinchTranslateDirection:function(n,t,i,r,u,f,e,o){var v=this.chart,c=n?"x":"y",tt=n?"X":"Y",p="chart"+tt,ut=n?"width":"height",nt=v["plot"+(n?"Left":"Top")],l,d,s=o||1,it=v.inverted,b=v.bounds[n?"h":"v"],a=t.length===1,w=t[0][p],h=i[0][p],rt=!a&&t[1][p],y=!a&&i[1][p],k,i=function(){!a&&g(w-rt)>20&&(s=o||g(h-y)/g(w-rt)),d=(nt-h)/s+w,l=v["plot"+(n?"Width":"Height")]/s};i(),t=d,t<b.min?(t=b.min,k=!0):t+l>b.max&&(t=b.max-l,k=!0),k?(h-=.8*(h-e[c][0]),a||(y-=.8*(y-e[c][1])),i()):e[c]=[h,y],it||(f[c]=d-nt,f[ut]=l),f=it?1/s:s,u[ut]=l,u[c]=t,r[it?n?"scaleY":"scaleX":"scale"+tt]=s,r["translate"+tt]=f*nt+(h-f*w)},pinch:function(n){var r=this,o=r.chart,e=r.pinchDown,s=n.touches,h=s.length,c=r.lastValidTouch,a=r.hasZoom,v=r.selectionMarker,y={},w=h===1&&(r.inClass(n.target,"highcharts-tracker")&&o.runTrackerClick||r.runChartClick),p={};h>1&&(r.initiated=!0),a&&r.initiated&&!w&&n.preventDefault(),di(s,function(n){return r.normalize(n)}),n.type==="touchstart"?(i(s,function(n,t){e[t]={chartX:n.chartX,chartY:n.chartY}}),c.x=[e[0].chartX,e[1]&&e[1].chartX],c.y=[e[0].chartY,e[1]&&e[1].chartY],i(o.axes,function(n){if(n.zoomEnabled){var r=o.bounds[n.horiz?"h":"v"],f=n.minPixelPadding,i=n.toPixels(t(n.options.min,n.dataMin)),e=n.toPixels(t(n.options.max,n.dataMax)),s=l(i,e),i=u(i,e);r.min=l(n.pos,s-f),r.max=u(n.pos+n.len,i+f)}}),r.res=!0):e.length&&(v||(r.selectionMarker=v=f({destroy:pi,touch:!0},o.plotBox)),r.pinchTranslate(e,s,y,v,p,c),r.hasPinched=a,r.scaleGroups(y,p),!a&&r.followTouchMove&&h===1?this.runPointActions(r.normalize(n)):r.res&&(r.res=!1,this.reset(!1,0)))},touch:function(n,i){var r=this.chart,u;kt=r.index,n.touches.length===1?(n=this.normalize(n),r.isInsidePlot(n.chartX-r.plotLeft,n.chartY-r.plotTop)&&!r.openMenu)?(i&&this.runPointActions(n),n.type==="touchmove"&&(r=this.pinchDown,u=r[0]?Math.sqrt(Math.pow(r[0].chartX-n.chartX,2)+Math.pow(r[0].chartY-n.chartY,2))>=4:!1),t(u,!0)&&this.pinch(n)):i&&this.reset():n.touches.length===2&&this.pinch(n)},onContainerTouchStart:function(n){this.touch(n,!0)},onContainerTouchMove:function(n){this.touch(n)},onDocumentTouchEnd:function(n){rt[kt]&&rt[kt].pointer.drop(n)}}),n.PointerEvent||n.MSPointerEvent){var ai={},gu=!!n.PointerEvent,te=function(){var n,t=[];t.item=function(n){return this[n]};for(n in ai)ai.hasOwnProperty(n)&&t.push({pageX:ai[n].pageX,pageY:ai[n].pageY,target:ai[n].target});return t},ku=function(n,t,i,r){(n.pointerType==="touch"||n.pointerType===n.MSPOINTER_TYPE_TOUCH)&&rt[kt]&&(r(n),r=rt[kt].pointer,r[t]({type:i,target:n.currentTarget,preventDefault:pi,touches:te()}))};f(hr.prototype,{onContainerPointerDown:function(n){ku(n,"onContainerTouchStart","touchstart",function(n){ai[n.pointerId]={pageX:n.pageX,pageY:n.pageY,target:n.currentTarget}})},onContainerPointerMove:function(n){ku(n,"onContainerTouchMove","touchmove",function(n){ai[n.pointerId]={pageX:n.pageX,pageY:n.pageY},ai[n.pointerId].target||(ai[n.pointerId].target=n.currentTarget)})},onDocumentPointerUp:function(n){ku(n,"onDocumentTouchEnd","touchend",function(n){delete ai[n.pointerId]})},batchMSEvents:function(n){n(this.chart.container,gu?"pointerdown":"MSPointerDown",this.onContainerPointerDown),n(this.chart.container,gu?"pointermove":"MSPointerMove",this.onContainerPointerMove),n(h,gu?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),eu(hr.prototype,"init",function(n,t,i){n.call(this,t,i),this.hasZoom&&y(t.container,{"-ms-touch-action":"none","touch-action":"none"})}),eu(hr.prototype,"setDOMEvents",function(n){n.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(w)}),eu(hr.prototype,"destroy",function(n){this.batchMSEvents(ot),n.call(this)})}return hu=o.Legend=function(n,t){this.init(n,t)},hu.prototype={init:function(n,i){var r=this,u=i.itemStyle,f=i.itemMarginTop||0;this.options=i,i.enabled&&(r.itemStyle=u,r.itemHiddenStyle=c(u,i.itemHiddenStyle),r.itemMarginTop=f,r.padding=u=t(i.padding,8),r.initialItemX=u,r.initialItemY=u-5,r.maxItemWidth=0,r.chart=n,r.itemHeight=0,r.symbolWidth=t(i.symbolWidth,16),r.pages=[],r.render(),w(r.chart,"endResize",function(){r.positionCheckboxes()}))},colorizeItem:function(n,t){var u=this.options,r=n.legendItem,c=n.legendLine,f=n.legendSymbol,i=this.itemHiddenStyle.color,u=t?u.itemStyle.color:i,e=t?n.legendColor||n.color||"#CCC":i,i=n.options&&n.options.marker,o={fill:e},h;if(r&&r.css({fill:u,color:u}),c&&c.attr({stroke:e}),f){if(i&&f.isMarker)for(h in o.stroke=e,i=n.convertAttribs(i),i)r=i[h],r!==s&&(o[h]=r);f.attr(o)}},positionItem:function(n){var i=this.options,f=i.symbolPadding,i=!i.rtl,t=n._legendItemPos,r=t[0],t=t[1],u=n.checkbox;(n=n.legendGroup)&&n.element&&n.translate(i?r:this.legendWidth-r-2*f-4,t),u&&(u.x=r,u.y=t)},destroyItem:function(n){var t=n.checkbox;i(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){n[t]&&(n[t]=n[t].destroy())}),t&&vr(n.checkbox)},destroy:function(){var n=this.group,t=this.box;t&&(this.box=t.destroy()),n&&(this.group=n.destroy())},positionCheckboxes:function(n){var r=this.group.alignAttr,t,u=this.clipHeight||this.legendHeight,f=this.titleHeight;r&&(t=r.translateY,i(this.allItems,function(i){var e=i.checkbox,o;e&&(o=t+f+e.y+(n||0)+3,y(e,{left:r.translateX+i.checkboxOffset+e.x-20+"px",top:o+"px",display:o>t-6&&o<t+u-6?"":"none"}))}))},renderTitle:function(){var n=this.padding,t=this.options.title,i=0;t.text&&(this.title||(this.title=this.chart.renderer.label(t.text,n-3,n-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(t.style).add(this.group)),n=this.title.getBBox(),i=n.height,this.offsetWidth=n.width,this.contentGroup.attr({translateY:i})),this.titleHeight=i},setText:function(n){var t=this.options;n.legendItem.attr({text:t.labelFormat?sr(t.labelFormat,n):t.labelFormatter.call(n)})},renderItem:function(n){var nt=this.chart,o=nt.renderer,i=this.options,h=i.layout==="horizontal",r=this.symbolWidth,f=i.symbolPadding,y=this.itemStyle,g=this.itemHiddenStyle,b=this.padding,d=h?t(i.itemDistance,20):0,k=!i.rtl,tt=i.width,p=i.itemMarginBottom||0,v=this.itemMarginTop,a=this.initialItemX,s=n.legendItem,w=n.series&&n.series.drawLegendSymbol?n.series:n,l=w.options,l=this.createCheckboxForItem&&l&&l.showCheckbox,it=i.useHTML;s||(n.legendGroup=o.g("legend-item").attr({zIndex:1}).add(this.scrollGroup),n.legendItem=s=o.text("",k?r+f:-f,this.baseline||0,it).css(c(n.visible?y:g)).attr({align:k?"left":"right",zIndex:2}).add(n.legendGroup),this.baseline||(this.fontMetrics=o.fontMetrics(y.fontSize,s),this.baseline=this.fontMetrics.f+3+v,s.attr("y",this.baseline)),w.drawLegendSymbol(this,n),this.setItemEvents&&this.setItemEvents(n,s,it,y,g),l&&this.createCheckboxForItem(n)),this.colorizeItem(n,n.visible),this.setText(n),o=s.getBBox(),r=n.checkboxOffset=i.itemWidth||n.legendItemWidth||r+f+o.width+d+(l?20:0),this.itemHeight=f=e(n.legendItemHeight||o.height),h&&this.itemX-a+r>(tt||nt.chartWidth-2*b-a-i.x)&&(this.itemX=a,this.itemY+=v+this.lastLineHeight+p,this.lastLineHeight=0),this.maxItemWidth=u(this.maxItemWidth,r),this.lastItemY=v+this.itemY+p,this.lastLineHeight=u(f,this.lastLineHeight),n._legendItemPos=[this.itemX,this.itemY],h?this.itemX+=r:(this.itemY+=v+f+p,this.lastLineHeight=f),this.offsetWidth=tt||u((h?this.itemX-a-d:r)+b,this.offsetWidth)},getAllItems:function(){var n=[];return i(this.chart.series,function(i){var u=i.options;t(u.showInLegend,r(u.linkedTo)?!1:s,!0)&&(n=n.concat(i.legendItems||(u.legendType==="point"?i.data:i)))}),n},adjustMargins:function(n,f){var o=this.chart,e=this.options,s=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||i([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(i,h){i.test(s)&&!r(n[h])&&(o[vu[h]]=u(o[vu[h]],o.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*e[h%2?"x":"y"]+t(e.margin,12)+f[h]))})},render:function(){var n=this,a=n.chart,h=a.renderer,s=n.group,e,c,o,t,r=n.box,u=n.options,v=n.padding,l=u.borderWidth,y=u.backgroundColor;n.itemX=n.initialItemX,n.itemY=n.initialItemY,n.offsetWidth=0,n.lastItemY=0,s||(n.group=s=h.g("legend").attr({zIndex:7}).add(),n.contentGroup=h.g().attr({zIndex:1}).add(s),n.scrollGroup=h.g().add(n.contentGroup)),n.renderTitle(),e=n.getAllItems(),au(e,function(n,t){return(n.options&&n.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)}),u.reversed&&e.reverse(),n.allItems=e,n.display=c=!!e.length,n.lastLineHeight=0,i(e,function(t){n.renderItem(t)}),o=(u.width||n.offsetWidth)+v,t=n.lastItemY+n.lastLineHeight+n.titleHeight,t=n.handleOverflow(t),t+=v,(l||y)&&(r?o>0&&t>0&&(r[r.isNew?"attr":"animate"](r.crisp({width:o,height:t})),r.isNew=!1):(n.box=r=h.rect(0,0,o,t,u.borderRadius,l||0).attr({stroke:u.borderColor,"stroke-width":l||0,fill:y||"none"}).add(s).shadow(u.shadow),r.isNew=!0),r[c?"show":"hide"]()),n.legendWidth=o,n.legendHeight=t,i(e,function(t){n.positionItem(t)}),c&&s.align(f({width:o,height:t},u),!0,"spacingBox"),a.isResizing||this.positionCheckboxes()},handleOverflow:function(n){var f=this,k=this.chart,h=k.renderer,c=this.options,r=c.y,r=k.spacingBox.height+(c.verticalAlign==="top"?-r:r)-this.padding,g=c.maxHeight,b,p=this.clipRect,w=c.navigation,nt=t(w.animation,!0),y=w.arrowSize||12,s=this.nav,o=this.pages,v=this.padding,a,d=this.allItems,tt=function(n){p.attr({height:n}),f.contentGroup.div&&(f.contentGroup.div.style.clip="rect("+v+"px,9999px,"+(v+n)+"px,0)")};return c.layout==="horizontal"&&(r/=2),g&&(r=l(r,g)),o.length=0,n>r&&w.enabled!==!1?(this.clipHeight=b=u(r-20-this.titleHeight-v,0),this.currentPage=t(this.currentPage,1),this.fullHeight=n,i(d,function(n,t){var i=n._legendItemPos[1],u=e(n.legendItem.getBBox().height),r=o.length;(!r||i-o[r-1]>b&&(a||i)!==o[r-1])&&(o.push(a||i),r++),t===d.length-1&&i+u-o[r-1]>b&&o.push(i),i!==a&&(a=i)}),p||(p=f.clipRect=h.clipRect(0,v,9999,0),f.contentGroup.clip(p)),tt(b),s||(this.nav=s=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,y,y).on("click",function(){f.scroll(-1,nt)}).add(s),this.pager=h.text("",15,10).css(w.style).add(s),this.down=h.symbol("triangle-down",0,0,y,y).on("click",function(){f.scroll(1,nt)}).add(s)),f.scroll(0),n=r):s&&(tt(k.chartHeight),s.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),n},scroll:function(n,t){var r=this.pages,u=r.length,i=this.currentPage+n,o=this.clipHeight,f=this.options.navigation,e=f.activeColor,f=f.inactiveColor,h=this.pager,c=this.padding;i>u&&(i=u),i>0&&(t!==s&&yr(t,this.chart),this.nav.attr({translateX:c,translateY:o+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:i===1?f:e}).css({cursor:i===1?"default":"pointer"}),h.attr({text:i+"/"+u}),this.down.attr({x:18+this.pager.getBBox().width,fill:i===u?f:e}).css({cursor:i===u?"default":"pointer"}),r=-r[i-1]+this.initialItemY,this.scrollGroup.animate({translateY:r}),this.currentPage=i,this.positionCheckboxes(r))}},nt=o.LegendSymbolMixin={drawRectangle:function(n,t){var i=n.options.symbolHeight||n.fontMetrics.f;t.legendSymbol=this.chart.renderer.rect(0,n.baseline-i+1,n.symbolWidth,i,n.options.symbolRadius||0).attr({zIndex:3}).add(t.legendGroup)},drawLineMarker:function(n){var t=this.options,i=t.marker,u=n.symbolWidth,f=this.chart.renderer,o=this.legendGroup,n=n.baseline-e(n.fontMetrics.b*.3),r;t.lineWidth&&(r={"stroke-width":t.lineWidth},t.dashStyle&&(r.dashstyle=t.dashStyle),this.legendLine=f.path([st,0,n,tt,u,n]).attr(r).add(o)),i&&i.enabled!==!1&&(t=i.radius,this.legendSymbol=i=f.symbol(this.symbol,u/2-t,n-t,2*t,2*t,i).add(o),i.isMarker=!0)}},(/Trident\/7\.0/.test(wi)||cr)&&eu(hu.prototype,"positionItem",function(n,t){var r=this,i=function(){t._legendItemPos&&n.call(r,t)};i(),setTimeout(i)}),pr=o.Chart=function(){this.getArgs.apply(this,arguments)},o.chart=function(n,t,i){return new pr(n,t,i)},pr.prototype={callbacks:[],getArgs:function(){var n=[].slice.call(arguments);(bi(n[0])||n[0].nodeName)&&(this.renderTo=n.shift()),this.init(n[0],n[1])},init:function(n,i){var f,u=n.series,e,r,o;if(n.series=null,f=c(ft,n),f.series=n.series=u,this.userOptions=n,u=f.chart,this.margin=this.splashArray("margin",u),this.spacing=this.splashArray("spacing",u),e=u.events,this.bounds={h:{},v:{}},this.callback=i,this.isResizing=0,this.options=f,this.axes=[],this.series=[],this.hasCartesianSeries=u.showAxes,r=this,r.index=rt.length,rt.push(r),tu++,u.reflow!==!1&&w(r,"load",function(){r.initReflow()}),e)for(o in e)w(r,o,e[o]);r.xAxis=[],r.yAxis=[],r.animation=ti?!1:t(u.animation,!0),r.pointCount=r.colorCounter=r.symbolCounter=0,r.firstRender()},initSeries:function(n){var t=this.options.chart;return(t=d[n.type||t.type||t.defaultSeriesType])||oi(17,!0),t=new t,t.init(this,n),t},isInsidePlot:function(n,t,i){var r=i?t:n,n=i?n:t;return r>=0&&r<=this.plotWidth&&n>=0&&n<=this.plotHeight},redraw:function(n){var u=this.axes,t=this.series,s=this.pointer,h=this.legend,c=this.isDirtyLegend,e,l,a=this.hasCartesianSeries,o=this.isDirtyBox,v=t.length,r=v,y=this.renderer,w=y.isHidden(),b=[];for(yr(n,this),w&&this.cloneRenderTo(),this.layOutTitles();r--;)if(n=t[r],n.options.stacking&&(e=!0,n.isDirty)){l=!0;break}if(l)for(r=v;r--;)(n=t[r],n.options.stacking)&&(n.isDirty=!0);i(t,function(n){n.isDirty&&n.options.legendType==="point"&&(n.updateTotals&&n.updateTotals(),c=!0),n.isDirtyData&&p(n,"updatedData")}),c&&h.options.enabled&&(h.render(),this.isDirtyLegend=!1),e&&this.getStacks(),a&&!this.isResizing&&(this.maxTicks=null,i(u,function(n){n.setScale()})),this.getMargins(),a&&(i(u,function(n){n.isDirty&&(o=!0)}),i(u,function(n){var t=n.min+","+n.max;n.extKey!==t&&(n.extKey=t,b.push(function(){p(n,"afterSetExtremes",f(n.eventArgs,n.getExtremes())),delete n.eventArgs})),(o||e)&&n.redraw()})),o&&this.drawChartBox(),i(t,function(n){n.isDirty&&n.visible&&(!n.isCartesian||n.xAxis)&&n.redraw()}),s&&s.reset(!0),y.draw(),p(this,"redraw"),w&&this.cloneRenderTo(!0),i(b,function(n){n.call()})},get:function(n){for(var i=this.axes,r=this.series,u,t=0;t<i.length;t++)if(i[t].options.id===n)return i[t];for(t=0;t<r.length;t++)if(r[t].options.id===n)return r[t];for(t=0;t<r.length;t++)for(u=r[t].points||[],i=0;i<u.length;i++)if(u[i].id===n)return u[i];return null},getAxes:function(){var r=this,n=this.options,t=n.xAxis=li(n.xAxis||{}),n=n.yAxis=li(n.yAxis||{});i(t,function(n,t){n.index=t,n.isX=!0}),i(n,function(n,t){n.index=t}),t=t.concat(n),i(t,function(n){new wt(r,n)})},getSelectedPoints:function(){var n=[];return i(this.series,function(t){n=n.concat(tr(t.points||[],function(n){return n.selected}))}),n},getSelectedSeries:function(){return tr(this.series,function(n){return n.selected})},setTitle:function(n,t,r){var e,u=this,f=u.options,o;o=f.title=c(f.title,n),e=f.subtitle=c(f.subtitle,t),f=e,i([["title",n,o],["subtitle",t,f]],function(n){var t=n[0],i=u[t],r=n[1],n=n[2];i&&r&&(u[t]=i=i.destroy()),n&&n.text&&!i&&(u[t]=u.renderer.text(n.text,0,0,n.useHTML).attr({align:n.align,"class":"highcharts-"+t,zIndex:n.zIndex||4}).css(n.style).add())}),u.layOutTitles(r)},layOutTitles:function(n){var e=0,i=this.title,s=this.subtitle,r=this.options,u=r.title,r=r.subtitle,h=this.renderer,o=this.spacingBox;!i||(i.css({width:(u.width||o.width+u.widthAdjust)+"px"}).align(f({y:h.fontMetrics(u.style.fontSize,i).b-3},u),!1,o),u.floating||u.verticalAlign)||(e=i.getBBox().height),s&&(s.css({width:(r.width||o.width+r.widthAdjust)+"px"}).align(f({y:e+(u.margin-13)+h.fontMetrics(r.style.fontSize,i).b},r),!1,o),!r.floating&&!r.verticalAlign&&(e=yi(e+s.getBBox().height))),i=this.titleOffset!==e,this.titleOffset=e,!this.isDirtyBox&&i&&(this.isDirtyBox=i,this.hasRendered&&t(n,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var n=this.options.chart,i=n.width,n=n.height,f=this.renderToClone||this.renderTo;r(i)||(this.containerWidth=fi(f,"width")),r(n)||(this.containerHeight=fi(f,"height")),this.chartWidth=u(0,i||this.containerWidth||600),this.chartHeight=u(0,t(n,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(n){var t=this.renderToClone,i=this.container;n?t&&(this.renderTo.appendChild(i),vr(t),delete this.renderToClone):(i&&i.parentNode===this.renderTo&&this.renderTo.removeChild(i),this.renderToClone=t=this.renderTo.cloneNode(0),y(t,{position:"absolute",top:"-9999px",display:"block"}),t.style.setProperty&&t.style.setProperty("display","block","important"),h.body.appendChild(t),i&&t.appendChild(i))},getContainer:function(){var n,u=this.options,i=u.chart,t,r,e;n=this.renderTo,e="highcharts-"+ff++,n||(this.renderTo=n=i.renderTo),bi(n)&&(this.renderTo=n=h.getElementById(n)),n||oi(13,!0),t=a(it(n,"data-highcharts-chart")),b(t)&&rt[t]&&rt[t].hasRendered&&rt[t].destroy(),it(n,"data-highcharts-chart",this.index),n.innerHTML="",!i.skipClone&&!n.offsetWidth&&this.cloneRenderTo(),this.getChartSize(),t=this.chartWidth,r=this.chartHeight,this.container=n=yt(lr,{className:"highcharts-container"+(i.className?" "+i.className:""),id:e},f({position:"relative",overflow:"hidden",width:t+"px",height:r+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},i.style),this.renderToClone||n),this._cursor=n.style.cursor,this.renderer=new(o[i.renderer]||iu)(n,t,r,i.style,i.forExport,u.exporting&&u.exporting.allowHTML),ti&&this.renderer.create(this,n,t,r),this.renderer.chartIndex=this.index},getMargins:function(n){var t=this.spacing,i=this.margin,f=this.titleOffset;this.resetMargins(),f&&!r(i[0])&&(this.plotTop=u(this.plotTop,f+this.options.title.margin+t[0])),this.legend.display&&this.legend.adjustMargins(i,t),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),n||this.getAxisMargins()},getAxisMargins:function(){var n=this,t=n.axisOffset=[0,0,0,0],u=n.margin;n.hasCartesianSeries&&i(n.axes,function(n){n.visible&&n.getOffset()}),i(vu,function(i,f){r(u[f])||(n[i]+=t[f])}),n.setChartSize()},reflow:function(t){var i=this,u=i.options.chart,f=i.renderTo,o=r(u.width),e=u.width||fi(f,"width"),u=u.height||fi(f,"height"),f=t?t.target:n;!o&&!i.isPrinting&&e&&u&&(f===n||f===h)&&((e!==i.containerWidth||u!==i.containerHeight)&&(clearTimeout(i.reflowTimeout),i.reflowTimeout=kr(function(){i.container&&i.setSize(void 0,void 0,!1)},t?100:0)),i.containerWidth=e,i.containerHeight=u)},initReflow:function(){var t=this,i=function(n){t.reflow(n)};w(n,"resize",i),w(t,"destroy",function(){ot(n,"resize",i)})},setSize:function(n,t,r){var u=this,f=u.renderer;u.isResizing+=1,yr(r,u),u.oldChartHeight=u.chartHeight,u.oldChartWidth=u.chartWidth,n!==void 0&&(u.options.chart.width=n),t!==void 0&&(u.options.chart.height=t),u.getChartSize(),n=f.globalAnimation,(n?ar:y)(u.container,{width:u.chartWidth+"px",height:u.chartHeight+"px"},n),u.setChartSize(!0),f.setSize(u.chartWidth,u.chartHeight,r),u.maxTicks=null,i(u.axes,function(n){n.isDirty=!0,n.setScale()}),i(u.series,function(n){n.isDirty=!0}),u.isDirtyLegend=!0,u.isDirtyBox=!0,u.layOutTitles(),u.getMargins(),u.redraw(r),u.oldChartHeight=null,p(u,"resize"),kr(function(){u&&p(u,"endResize",null,function(){u.isResizing-=1})},uu(n).duration)},setChartSize:function(n){var f=this.inverted,o=this.renderer,t=this.chartWidth,v=this.chartHeight,y=this.options.chart,r=this.spacing,s=this.clipOffset,l,a,h,c;this.plotLeft=l=e(this.plotLeft),this.plotTop=a=e(this.plotTop),this.plotWidth=h=u(0,e(t-l-this.marginRight)),this.plotHeight=c=u(0,e(v-a-this.marginBottom)),this.plotSizeX=f?c:h,this.plotSizeY=f?h:c,this.plotBorderWidth=y.plotBorderWidth||0,this.spacingBox=o.spacingBox={x:r[3],y:r[0],width:t-r[3]-r[1],height:v-r[0]-r[2]},this.plotBox=o.plotBox={x:l,y:a,width:h,height:c},t=2*et(this.plotBorderWidth/2),f=yi(u(t,s[3])/2),o=yi(u(t,s[0])/2),this.clipBox={x:f,y:o,width:et(this.plotSizeX-u(t,s[1])/2-f),height:u(0,et(this.plotSizeY-u(t,s[2])/2-o))},n||i(this.axes,function(n){n.setAxisSize(),n.setAxisTranslation()})},resetMargins:function(){var n=this;i(vu,function(i,r){n[i]=t(n.margin[r],n.spacing[r])}),n.axisOffset=[0,0,0,0],n.clipOffset=[0,0,0,0]},drawChartBox:function(){var n=this.options.chart,r=this.renderer,b=this.chartWidth,w=this.chartHeight,t=this.chartBackground,p=this.plotBackground,s=this.plotBorder,y=this.plotBGImage,u=n.borderWidth||0,v=n.backgroundColor,g=n.plotBackgroundColor,d=n.plotBackgroundImage,c=n.plotBorderWidth||0,i,h=this.plotLeft,o=this.plotTop,e=this.plotWidth,f=this.plotHeight,k=this.plotBox,a=this.clipRect,l=this.clipBox;i=u+(n.shadow?8:0),(u||v)&&(t?t.animate(t.crisp({width:b-i,height:w-i})):(t={fill:v||"none"},u&&(t.stroke=n.borderColor,t["stroke-width"]=u),this.chartBackground=r.rect(i/2,i/2,b-i,w-i,n.borderRadius,u).attr(t).addClass("highcharts-background").add().shadow(n.shadow))),g&&(p?p.animate(k):this.plotBackground=r.rect(h,o,e,f,0).attr({fill:g}).add().shadow(n.plotShadow)),d&&(y?y.animate(k):this.plotBGImage=r.image(d,h,o,e,f).add()),a?a.animate({width:l.width,height:l.height}):this.clipRect=r.clipRect(l),c&&(s?(s.strokeWidth=-c,s.animate(s.crisp({x:h,y:o,width:e,height:f}))):this.plotBorder=r.rect(h,o,e,f,0,-c).attr({stroke:n.plotBorderColor,"stroke-width":c,fill:"none",zIndex:1}).add()),this.isDirtyBox=!1},propFromSeries:function(){var t=this,u=t.options.chart,n,f=t.options.series,e,r;i(["inverted","angular","polar"],function(i){for(n=d[u.type||u.defaultSeriesType],r=t[i]||u[i]||n&&n.prototype[i],e=f&&f.length;!r&&e--;)(n=d[f[e].type])&&n.prototype[i]&&(r=!0);t[i]=r})},linkSeries:function(){var n=this,r=n.series;i(r,function(n){n.linkedSeries.length=0}),i(r,function(i){var r=i.options.linkedTo;bi(r)&&(r=r===":previous"?n.series[i.index-1]:n.get(r))&&(r.linkedSeries.push(i),i.linkedParent=r,i.visible=t(i.options.visible,r.options.visible,i.visible))})},renderSeries:function(){i(this.series,function(n){n.translate(),n.render()})},renderLabels:function(){var n=this,t=n.options.labels;t.items&&i(t.items,function(i){var r=f(t.style,i.style),u=a(r.left)+n.plotLeft,e=a(r.top)+n.plotTop+12;delete r.left,delete r.top,n.renderer.text(i.html,u,e).attr({zIndex:2}).css(r).add()})},render:function(){var n=this.axes,o=this.renderer,u=this.options,f,e,t,r;this.setTitle(),this.legend=new hu(this,u.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),f=this.plotWidth,e=this.plotHeight-=21,i(n,function(n){n.setScale()}),this.getAxisMargins(),t=f/this.plotWidth>1.1,r=e/this.plotHeight>1.05,(t||r)&&(this.maxTicks=null,i(n,function(n){(n.horiz&&t||!n.horiz&&r)&&n.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&i(n,function(n){n.visible&&n.render()}),this.seriesGroup||(this.seriesGroup=o.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.showCredits(u.credits),this.hasRendered=!0},showCredits:function(t){t.enabled&&!this.credits&&(this.credits=this.renderer.text(t.text,0,0).on("click",function(){t.href&&(n.location.href=t.href)}).attr({align:t.position.align,zIndex:8}).css(t.style).add().align(t.position))},destroy:function(){var n=this,u=n.axes,f=n.series,r=n.container,t,e=r&&r.parentNode;for(p(n,"destroy"),rt[n.index]=s,tu--,n.renderTo.removeAttribute("data-highcharts-chart"),ot(n),t=u.length;t--;)u[t]=u[t].destroy();for(t=f.length;t--;)f[t]=f[t].destroy();i("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(t){var i=n[t];i&&i.destroy&&(n[t]=i.destroy())}),r&&(r.innerHTML="",ot(r),e&&vr(r));for(t in n)delete n[t]},isReadyToRender:function(){var t=this;return!dt&&n==n.top&&h.readyState!=="complete"||ti&&!n.canvg?(ti?ne.push(function(){t.firstRender()},t.options.global.canvasToolsURL):h.attachEvent("onreadystatechange",function(){h.detachEvent("onreadystatechange",t.firstRender),h.readyState==="complete"&&t.firstRender()}),!1):!0},firstRender:function(){var n=this,t=n.options;n.isReadyToRender()&&(n.getContainer(),p(n,"init"),n.resetMargins(),n.setChartSize(),n.propFromSeries(),n.getAxes(),i(t.series||[],function(t){n.initSeries(t)}),n.linkSeries(),p(n,"beforeRender"),o.Pointer&&(n.pointer=new hr(n,t)),n.render(),n.renderer.draw(),!n.renderer.imgCount&&n.onload&&n.onload(),n.cloneRenderTo(!0))},onload:function(){var n=this;i([this.callback].concat(this.callbacks),function(t){t&&n.index!==void 0&&t.apply(n,[n])}),p(n,"load"),this.onload=null},splashArray:function(n,i){var r=i[n],r=lt(r)?r:[r,r,r,r];return[t(i[n+"Top"],r[0]),t(i[n+"Right"],r[1]),t(i[n+"Bottom"],r[2]),t(i[n+"Left"],r[3])]}},pu=o.CenteredSeriesMixin={getCenter:function(){for(var r=this.options,f=this.chart,e=2*(r.slicedOffset||0),o=f.plotWidth-2*e,f=f.plotHeight-2*e,n=r.center,n=[t(n[0],"50%"),t(n[1],"50%"),r.size||"100%",r.innerSize||0],s=l(o,f),u,i=0;i<4;++i)u=n[i],r=i<2||i===2&&/%$/.test(u),n[i]=(/%$/.test(u)?[o,f,s,n[2]][i]*parseFloat(u)/100:parseFloat(u))+(r?e:0);return n[3]>n[2]&&(n[3]=n[2]),n}},nr=function(){},nr.prototype={init:function(n,t,i){return this.series=n,this.color=n.color,this.applyOptions(t,i),this.pointAttr={},n.options.colorByPoint&&(t=n.options.colors||n.chart.options.colors,this.color=this.color||t[n.colorCounter++],n.colorCounter===t.length)&&(n.colorCounter=0),n.chart.pointCount++,this},applyOptions:function(n,t){var i=this.series,r=i.options.pointValKey||i.pointValKey,n=nr.prototype.optionsToObject.call(this,n);return f(this,n),this.options=this.options?f(this.options,n):n,r&&(this.y=this[r]),this.isNull=this.x===null||!b(this.y,!0),this.x===void 0&&i&&(this.x=t===void 0?i.autoIncrement(this):t),i.xAxis&&i.xAxis.names&&(i.xAxis.names[this.x]=this.name),this},optionsToObject:function(n){var i={},t=this.series,u=t.options.keys,f=u||t.pointArrayMap||["y"],o=f.length,r=0,e=0;if(b(n)||n===null)i[f[0]]=n;else if(ir(n))for(!u&&n.length>o&&(t=typeof n[0],t==="string"?i.name=n[0]:t==="number"&&(i.x=n[0]),r++);e<o;)u&&n[r]===void 0||(i[f[e]]=n[r]),r++,e++;else typeof n=="object"&&(i=n,n.dataLabels&&(t._hasPointLabels=!0),n.marker&&(t._hasPointMarkers=!0));return i},destroy:function(){var n=this.series.chart,t=n.hoverPoints,i;n.pointCount--,t&&(this.setState(),hi(t,this),!t.length)&&(n.hoverPoints=null),this===n.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(ot(this),this.destroyElements()),this.legendItem&&n.legend.destroyItem(this);for(i in this)this[i]=null},destroyElements:function(){for(var i=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],n,t=6;t--;)n=i[t],this[n]&&(this[n]=this[n].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(n){var u=this.series,r=u.tooltipOptions,o=t(r.valueDecimals,""),f=r.valuePrefix||"",e=r.valueSuffix||"";return i(u.pointArrayMap||["y"],function(t){t="{point."+t,(f||e)&&(n=n.replace(t+"}",f+t+"}"+e)),n=n.replace(t+"}",t+":,."+o+"f}")}),sr(n,{point:this,series:this.series})},firePointEvent:function(n,t,i){var r=this,u=this.series.options;(u.point.events[n]||r.options&&r.options.events&&r.options.events[n])&&this.importEvents(),n==="click"&&u.allowPointSelect&&(i=function(n){r.select&&r.select(null,n.ctrlKey||n.metaKey||n.shiftKey)}),p(this,n,t,i)},visible:!0},k=o.Series=function(){},k.prototype={isCartesian:!0,type:"line",pointClass:nr,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],init:function(n,r){var u=this,s,e,o=n.series,h=function(n,i){return t(n.options.index,n._i)-t(i.options.index,i._i)};u.chart=n,u.options=r=u.setOptions(r),u.linkedSeries=[],u.bindAxes(),f(u,{name:r.name,state:"",pointAttr:{},visible:r.visible!==!1,selected:r.selected===!0}),ti&&(r.animation=!1),e=r.events;for(s in e)w(u,s,e[s]);(e&&e.click||r.point&&r.point.events&&r.point.events.click||r.allowPointSelect)&&(n.runTrackerClick=!0),u.getColor(),u.getSymbol(),i(u.parallelArrays,function(n){u[n+"Data"]=[]}),u.setData(r.data,!1),u.isCartesian&&(n.hasCartesianSeries=!0),o.push(u),u._i=o.length-1,au(o,h),this.yAxis&&au(this.yAxis.series,h),i(o,function(n,t){n.index=t,n.name=n.name||"Series "+(t+1)})},bindAxes:function(){var n=this,t=n.options,u=n.chart,r;i(n.axisTypes||[],function(f){i(u[f],function(i){r=i.options,(t[f]===r.index||t[f]!==s&&t[f]===r.id||t[f]===s&&r.index===0)&&(i.series.push(n),n[f]=i,i.isDirty=!0)}),!n[f]&&n.optionalAxis!==f&&oi(18,!0)})},updateParallelArrays:function(n,t){var r=n.series,u=arguments,f=b(t)?function(i){var u=i==="y"&&r.toYData?r.toYData(n):n[i];r[i+"Data"][t]=u}:function(n){Array.prototype[t].apply(r[n+"Data"],Array.prototype.slice.call(u,2))};i(r.parallelArrays,f)},autoIncrement:function(n){var e,i=this.options,u=this.xIncrement,f=i.pointIntervalUnit,r=this.xAxis,o,u=t(u,i.pointStart,0);return this.pointInterval=i=t(this.pointInterval,i.pointInterval,1),r&&r.categories&&n.name&&((this.requireSorting=!1,e=(o=ir(r.categories))?r.categories:r.names,r=e,n=ri(n.name,r),n===-1)?o||(u=r.length):u=n),f&&(n=new ui(u),f==="day"?n=+n[yu](n[dr]()+i):f==="month"?n=+n[lf](n[su]()+i):f==="year"&&(n=+n[rf](n[nu]()+i)),i=n-u),this.xIncrement=u+i,u},setOptions:function(n){var i=this.chart,t=i.options.plotOptions,i=i.userOptions||{},u=i.plotOptions||{},f=t[this.type];return this.userOptions=n,t=c(f,t.series,n),this.tooltipOptions=c(ft.tooltip,ft.plotOptions[this.type].tooltip,i.tooltip,u.series&&u.series.tooltip,u[this.type]&&u[this.type].tooltip,n.tooltip),f.marker===null&&delete t.marker,this.zoneAxis=t.zoneAxis,n=this.zones=(t.zones||[]).slice(),(t.negativeColor||t.negativeFillColor)&&!t.zones&&n.push({value:t[this.zoneAxis+"Threshold"]||t.threshold||0,color:t.negativeColor,fillColor:t.negativeFillColor}),n.length&&r(n[n.length-1].value)&&n.push({color:this.color,fillColor:this.fillColor}),t},getCyclic:function(n,t,i){var u=this.userOptions,f="_"+n+"Index",e=n+"Counter";t||(r(u[f])?t=u[f]:(u[f]=t=this.chart[e]%i.length,this.chart[e]+=1),t=i[t]),this[n]=t},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||vt[this.type].color,this.chart.options.colors)},getSymbol:function(){var n=this.options.marker;this.getCyclic("symbol",n.symbol,this.chart.options.symbols),/^url/.test(this.symbol)&&(n.radius=0)},drawLegendSymbol:nt.drawLineMarker,setData:function(n,r,u,f){var e=this,c=e.points,w=c&&c.length||0,h,l=e.options,k=e.chart,o=null,y=e.xAxis,d=l.turboThreshold,p=this.xData,a=this.yData,v=(h=e.pointArrayMap)&&h.length,n=n||[];if(h=n.length,r=t(r,!0),f!==!1&&h&&w===h&&!e.cropped&&!e.hasGroupedData&&e.visible)i(n,function(n,t){c[t].update&&n!==l.data[t]&&c[t].update(n,!1,null,!1)});else{if(e.xIncrement=null,e.colorCounter=0,i(this.parallelArrays,function(n){e[n+"Data"].length=0}),d&&h>d){for(u=0;o===null&&u<h;)o=n[u],u++;if(b(o)){for(o=t(l.pointStart,0),v=t(l.pointInterval,1),u=0;u<h;u++)p[u]=o,a[u]=n[u],o+=v;e.xIncrement=o}else if(ir(o))if(v)for(u=0;u<h;u++)o=n[u],p[u]=o[0],a[u]=o.slice(1,v+1);else for(u=0;u<h;u++)o=n[u],p[u]=o[0],a[u]=o[1];else oi(12)}else for(u=0;u<h;u++)n[u]!==s&&(o={series:e},e.pointClass.prototype.applyOptions.apply(o,[n[u]]),e.updateParallelArrays(o,u));for(bi(a[0])&&oi(14,!0),e.data=[],e.options.data=e.userOptions.data=n,u=w;u--;)c[u]&&c[u].destroy&&c[u].destroy();y&&(y.minRange=y.userMinRange),e.isDirty=e.isDirtyData=k.isDirtyBox=!0,u=!1}l.legendType==="point"&&(this.processData(),this.generatePoints()),r&&k.redraw(u)},processData:function(n){var t=this.xData,l=this.yData,r=t.length,f,a,o,u,i,e;f=0,u=this.xAxis,e=this.options,i=e.cropThreshold;var y=this.getExtremesFromAll||e.getExtremesFromAll,v=this.isCartesian,e=u&&u.val2lin,p=u&&u.isLog,h,c;if(v&&!this.isDirty&&!u.isDirty&&!this.yAxis.isDirty&&!n)return!1;for(u&&(n=u.getExtremes(),h=n.min,c=n.max),v&&this.sorted&&!y&&(!i||r>i||this.forceCrop)&&(t[r-1]<h||t[0]>c?(t=[],l=[]):(t[0]<h||t[r-1]>c)&&(f=this.cropData(this.xData,this.yData,h,c),t=f.xData,l=f.yData,f=f.start,a=!0)),i=t.length||1;--i;)r=p?e(t[i])-e(t[i-1]):t[i]-t[i-1],r>0&&(o===s||r<o)?o=r:r<0&&this.requireSorting&&oi(15);this.cropped=a,this.cropStart=f,this.processedXData=t,this.processedYData=l,this.closestPointRange=o},cropData:function(n,i,r,f){for(var h=n.length,o=0,s=h,c=t(this.cropShoulder,1),e=0;e<h;e++)if(n[e]>=r){o=u(0,e-c);break}for(r=e;r<h;r++)if(n[r]>f){s=r+c;break}return{xData:n.slice(o,s),yData:i.slice(o,s),start:o,end:s}},generatePoints:function(){var f=this.options.data,t=this.data,c,e=this.processedXData,v=this.processedYData,l=this.pointClass,o=e.length,a=this.cropStart||0,i,u=this.hasGroupedData,h,r=[],n;for(t||u||(t=[],t.length=f.length,t=this.data=t),n=0;n<o;n++)i=a+n,u?(r[n]=(new l).init(this,[e[n]].concat(li(v[n]))),r[n].dataGroup=this.groupMap[n]):(t[i]?h=t[i]:f[i]!==s&&(t[i]=h=(new l).init(this,f[i],e[n])),r[n]=h),r[n].index=i;if(t&&(o!==(c=t.length)||u))for(n=0;n<c;n++)(n===a&&!u&&(n+=o),t[n])&&(t[n].destroyElements(),t[n].plotX=s);this.data=t,this.points=r},getExtremes:function(n){var c=this.yAxis,o=this.processedXData,u,e=[],h=0;u=this.xAxis.getExtremes();var l=u.min,a=u.max,r,f,t,i,n=n||this.stackedYData||this.processedYData||[];for(u=n.length,i=0;i<u;i++)if(f=o[i],t=n[i],r=t!==null&&t!==s&&(!c.isLog||t.length||t>0),f=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(o[i+1]||f)>=l&&(o[i-1]||f)<=a,r&&f)if(r=t.length)for(;r--;)t[r]!==null&&(e[h++]=t[r]);else e[h++]=t;this.dataMin=or(e),this.dataMax=er(e)},translate:function(){var v,a;this.processedXData||this.processData(),this.generatePoints();for(var e=this.options,ut=e.stacking,p=this.xAxis,tt=p.categories,o=this.yAxis,rt=this.points,et=rt.length,ot=!!this.modifyValue,k=e.pointPlacement,ft=k==="between"||b(k),w=e.threshold,it=e.startFromThreshold?w:0,c,f,d,y,nt=Number.MAX_VALUE,e=0;e<et;e++){var n=rt[e],h=n.x,i=n.y;f=n.low,v=ut&&o.stacks[(this.negStacks&&i<(it?0:w)?"-":"")+this.stackKey],o.isLog&&i!==null&&i<=0&&(n.y=i=null,oi(10)),n.plotX=c=at(l(u(-1e5,p.translate(h,0,0,0,1,k,this.type==="flags")),1e5)),ut&&this.visible&&!n.isNull&&v&&v[h]&&(y=this.getStackIndicator(y,h,this.index),a=v[h],i=a.points[y.key],f=i[0],i=i[1],f===it&&y.key===v[h].base&&(f=t(w,o.min)),o.isLog&&f<=0&&(f=null),n.total=n.stackTotal=a.total,n.percentage=a.total&&n.y/a.total*100,n.stackY=i,a.setOffset(this.pointXOffset||0,this.barW||0)),n.yBottom=r(f)?o.translate(f,0,1,0,1):null,ot&&(i=this.modifyValue(i,n)),n.plotY=f=typeof i=="number"&&i!==Infinity?l(u(-1e5,o.translate(i,0,1,0,1)),1e5):s,n.isInside=f!==s&&f>=0&&f<=o.len&&c>=0&&c<=p.len,n.clientX=ft?at(p.translate(h,0,0,0,1)):c,n.negative=n.y<(w||0),n.category=tt&&tt[n.x]!==s?tt[n.x]:n.x,n.isNull||(d!==void 0&&(nt=l(nt,g(c-d))),d=c)}this.closestPointRangePx=nt},getValidPoints:function(n,t){var i=this.chart;return tr(n||this.points||[],function(n){return t&&!i.isInsidePlot(n.plotX,n.plotY,i.inverted)?!1:!n.isNull})},setClip:function(n){var t=this.chart,u=this.options,o=t.renderer,s=t.inverted,f=this.clipBox,e=f||t.clipBox,i=this.sharedClipKey||["_sharedClip",n&&n.duration,n&&n.easing,e.height,u.xAxis,u.yAxis].join(","),r=t[i],h=t[i+"m"];r||(n&&(e.width=0,t[i+"m"]=h=o.clipRect(-99,s?-t.plotLeft:-t.plotTop,99,s?t.chartWidth:t.chartHeight)),t[i]=r=o.clipRect(e),r.count={length:0}),n&&!r.count[this.index]&&(r.count[this.index]=!0,r.count.length+=1),u.clip!==!1&&(this.group.clip(n||f?r:t.clipRect),this.markerGroup.clip(h),this.sharedClipKey=i),n||(r.count[this.index]&&(delete r.count[this.index],r.count.length-=1),r.count.length===0&&i&&t[i]&&(f||(t[i]=t[i].destroy()),t[i+"m"]&&(t[i+"m"]=t[i+"m"].destroy())))},animate:function(n){var i=this.chart,t=this.options.animation,r;t&&!lt(t)&&(t=vt[this.type].animation),n?this.setClip(t):(r=this.sharedClipKey,(n=i[r])&&n.animate({width:i.plotSizeX},t),i[r+"m"]&&i[r+"m"].animate({width:i.plotSizeX+99},t),this.animate=null)},afterAnimate:function(){this.setClip(),p(this,"afterAnimate")},drawPoints:function(){var r,w=this.points,d=this.chart,v,h,a,n,i,l,y,u,o=this.options.marker,k=this.pointAttr[""],e,p,c,g=this.markerGroup,nt=t(o.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*o.radius);if(o.enabled!==!1||this._hasPointMarkers)for(a=w.length;a--;)(n=w[a],v=et(n.plotX),h=n.plotY,u=n.graphic,e=n.marker||{},p=!!n.marker,r=nt&&e.enabled===s||e.enabled,c=n.isInside,r&&b(h)&&n.y!==null)?(r=n.pointAttr[n.selected?"select":""]||k,i=r.r,l=t(e.symbol,this.symbol),y=l.indexOf("url")===0,u)?u[c?"show":"hide"](!0).attr(r).animate(f({x:v-i,y:h-i},u.symbolName?{width:2*i,height:2*i}:{})):c&&(i>0||y)&&(n.graphic=d.renderer.symbol(l,v-i,h-i,2*i,2*i,p?e:o).attr(r).add(g)):u&&(n.graphic=u.destroy())},convertAttribs:function(n,i,r,u){var e=this.pointAttrToOptions,f,o,s={},n=n||{},i=i||{},r=r||{},u=u||{};for(f in e)o=e[f],s[f]=t(n[o],i[f],r[f],u[f]);return s},getAttribs:function(){var e=this,y=e.options,o=vt[e.type].marker?y.marker:y,a=o.states,u=a.hover,s,v=e.color,nt=e.options.negativeColor,h={stroke:v,fill:v},d=e.points||[],n,c=[],l,g=e.pointAttrToOptions,tt,k,w,b,p,it;if(s=e.hasPointSpecificOptions,tt=o.lineColor,k=o.fillColor,n=y.turboThreshold,w=e.zones,b=e.zoneAxis||"y",y.marker?(u.radius=+u.radius||+o.radius+ +u.radiusPlus,u.lineWidth=u.lineWidth||o.lineWidth+u.lineWidthPlus):(u.color=u.color||ii(u.color||v).brighten(u.brightness).get(),u.negativeColor=u.negativeColor||ii(u.negativeColor||nt).brighten(u.brightness).get()),c[""]=e.convertAttribs(o,h),i(["hover","select"],function(n){c[n]=e.convertAttribs(a[n],c[""])}),e.pointAttr=c,v=d.length,!n||v<n||s)for(;v--;){if(n=d[v],(o=n.options&&n.options.marker||n.options)&&o.enabled===!1&&(o.radius=0),h=null,w.length){for(s=0,h=w[s];n[b]>=h.value;)h=w[++s];n.color=n.fillColor=h=t(h.color,e.color)}if(s=y.colorByPoint||n.color,n.options)for(it in g)r(o[g[it]])&&(s=!0);s?(o=o||{},l=[],a=o.states||{},s=a.hover=a.hover||{},y.marker&&(!n.negative||s.fillColor||u.fillColor)||(s[e.pointAttrToOptions.fill]=s.color||!n.options.color&&u[n.negative&&nt?"negativeColor":"color"]||ii(n.color).brighten(s.brightness||u.brightness).get()),p={color:n.color},k||(p.fillColor=n.color),tt||(p.lineColor=n.color),o.hasOwnProperty("color")&&!o.color&&delete o.color,h&&!u.fillColor&&(s.fillColor=h),l[""]=e.convertAttribs(f(p,o),c[""]),l.hover=e.convertAttribs(a.hover,c.hover,l[""]),l.select=e.convertAttribs(a.select,c.select,l[""])):l=c,n.pointAttr=l}},destroy:function(){var n=this,f=n.chart,s=/AppleWebKit\/533/.test(wi),r,o=n.data||[],e,t,u;for(p(n,"destroy"),ot(n),i(n.axisTypes||[],function(t){(u=n[t])&&(hi(u.series,n),u.isDirty=u.forceRedraw=!0)}),n.legendItem&&n.chart.legend.destroyItem(n),r=o.length;r--;)(e=o[r])&&e.destroy&&e.destroy();n.points=null,clearTimeout(n.animationTimeout);for(t in n)n[t]instanceof ut&&!n[t].survive&&(r=s&&t==="group"?"hide":"destroy",n[t][r]());f.hoverSeries===n&&(f.hoverSeries=null),hi(f.series,n);for(t in n)delete n[t]},getGraphPath:function(n,t,u){var e=this,h=e.options,f=h.step,l,s=[],c=[],o,n=n||e.points;return(l=n.reversed)&&n.reverse(),(f={right:1,center:2}[f]||f&&3)&&l&&(f=4-f),h.connectNulls&&!t&&!u&&(n=this.getValidPoints(n)),i(n,function(i,l){var v=i.plotX,y=i.plotY,a=n[l-1];(i.leftCliff||a&&a.rightCliff)&&!u&&(o=!0),i.isNull&&!r(t)&&l>0?o=!h.connectNulls:i.isNull&&!t?o=!0:(l===0||o?a=[st,i.plotX,i.plotY]:e.getPointSpline?a=e.getPointSpline(n,i,l):f?(a=f===1?[tt,a.plotX,y]:f===2?[tt,(a.plotX+v)/2,a.plotY,tt,(a.plotX+v)/2,y]:[tt,v,a.plotY],a.push(tt,v,y)):a=[tt,v,y],c.push(i.x),f&&c.push(i.x),s.push.apply(s,a),o=!1)}),s.xMap=c,e.graphPath=s},drawGraph:function(){var r=this,n=this.options,u=[["graph",n.lineColor||this.color,n.dashStyle]],f=n.lineWidth,e=n.linecap!=="square",t=(this.gappedPath||this.getGraphPath).call(this);i(this.zones,function(t,i){u.push(["zoneGraph"+i,t.color||r.color,t.dashStyle||n.dashStyle])}),i(u,function(i,u){var s=i[0],o=r[s];o?(o.endX=t.xMap,o.animate({d:t})):f&&t.length&&(o={stroke:i[1],"stroke-width":f,fill:"none",zIndex:1},i[2]?o.dashstyle=i[2]:e&&(o["stroke-linecap"]=o["stroke-linejoin"]="round"),o=r[s]=r.chart.renderer.path(t).attr(o).add(r.group).shadow(u<2&&n.shadow)),o&&(o.startX=t.xMap,o.isArea=t.isArea)})},applyZones:function(){var g=this,n=this.chart,it=n.renderer,tt=this.zones,o,h,c=this.clips||[],r,p=this.graph,v=this.area,b=u(n.chartWidth,n.chartHeight),f=this[(this.zoneAxis||"y")+"Axis"],a,nt=f.reversed,rt=n.inverted,k=f.horiz,d,y,w,ut=!1;tt.length&&(p||v)&&f.min!==s&&(p&&p.hide(),v&&v.hide(),a=f.getExtremes(),i(tt,function(i,s){o=nt?k?n.plotWidth:0:k?0:f.toPixels(a.min),o=l(u(t(h,o),0),b),h=l(u(e(f.toPixels(t(i.value,a.max),!0)),0),b),ut&&(o=h=f.toPixels(a.max)),d=Math.abs(o-h),y=l(o,h),w=u(o,h),f.isXAxis?(r={x:rt?w:y,y:0,width:d,height:b},k)||(r.x=n.plotHeight-r.x):(r={x:0,y:rt?w:y,width:b,height:d},k)&&(r.y=n.plotWidth-r.y),n.inverted&&it.isVML&&(r=f.isXAxis?{x:0,y:nt?y:w,height:r.width,width:n.chartWidth}:{x:r.y-n.plotLeft-n.spacingBox.x,y:0,width:r.height,height:n.chartHeight}),c[s]?c[s].animate(r):(c[s]=it.clipRect(r),p&&g["zoneGraph"+s].clip(c[s]),v&&g["zoneArea"+s].clip(c[s])),ut=i.value>a.max}),this.clips=c)},invertGroups:function(){function t(){var t={width:n.yAxis.len,height:n.xAxis.len};i(["group","markerGroup"],function(i){n[i]&&n[i].attr(t).invert()})}var n=this,r=n.chart;n.xAxis&&(w(r,"resize",t),w(n,"destroy",function(){ot(r,"resize",t)}),t(),n.invertGroups=t)},plotGroup:function(n,t,i,r,u){var f=this[n],e=!f;return e&&(this[n]=f=this.chart.renderer.g(t).attr({zIndex:r||.1}).add(u),f.addClass("highcharts-series-"+this.index)),f.attr({visibility:i})[e?"attr":"animate"](this.getPlotBox()),f},getPlotBox:function(){var i=this.chart,t=this.xAxis,n=this.yAxis;return i.inverted&&(t=n,n=this.xAxis),{translateX:t?t.left:i.plotLeft,translateY:n?n.top:i.plotTop,scaleX:1,scaleY:1}},render:function(){var n=this,t=n.chart,r,u=n.options,f=!!n.animate&&t.renderer.isSVG&&uu(u.animation).duration,e=n.visible?"inherit":"hidden",o=u.zIndex,s=n.hasRendered,h=t.seriesGroup;r=n.plotGroup("group","series",e,o,h),n.markerGroup=n.plotGroup("markerGroup","markers",e,o,h),f&&n.animate(!0),n.getAttribs(),r.inverted=n.isCartesian?t.inverted:!1,n.drawGraph&&(n.drawGraph(),n.applyZones()),i(n.points,function(n){n.redraw&&n.redraw()}),n.drawDataLabels&&n.drawDataLabels(),n.visible&&n.drawPoints(),n.drawTracker&&n.options.enableMouseTracking!==!1&&n.drawTracker(),t.inverted&&n.invertGroups(),u.clip!==!1&&!n.sharedClipKey&&!s&&r.clip(t.clipRect),f&&n.animate(),s||(n.animationTimeout=kr(function(){n.afterAnimate()},f)),n.isDirty=n.isDirtyData=!1,n.hasRendered=!0},redraw:function(){var n=this.chart,f=this.isDirty||this.isDirtyData,i=this.group,r=this.xAxis,u=this.yAxis;i&&(n.inverted&&i.attr({width:n.plotWidth,height:n.plotHeight}),i.animate({translateX:t(r&&r.left,n.plotLeft),translateY:t(u&&u.top,n.plotTop)})),this.translate(),this.render(),f&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(n,t){var i=this.xAxis,r=this.yAxis,u=this.chart.inverted;return this.searchKDTree({clientX:u?i.len-n.chartY+i.pos:n.chartX-i.pos,plotY:u?r.len-n.chartX+r.pos:n.chartY-r.pos},t)},buildKDTree:function(){function t(i,r,u){var e,f;if(f=i&&i.length)return e=n.kdAxisArray[r%u],i.sort(function(n,t){return n[e]-t[e]}),f=Math.floor(f/2),{point:i[f],left:t(i.slice(0,f),r+1,u),right:t(i.slice(f+1),r+1,u)}}var n=this,i=n.kdDimensions;delete n.kdTree,kr(function(){n.kdTree=t(n.getValidPoints(null,!n.directTouch),i,i)},n.options.kdNow?0:1)},searchKDTree:function(n,t){function e(n,t,s,h){var l=t.point,a=o.kdAxisArray[s%h],c,v,y=l;return v=r(n[u])&&r(l[u])?Math.pow(n[u]-l[u],2):null,c=r(n[f])&&r(l[f])?Math.pow(n[f]-l[f],2):null,c=(v||0)+(c||0),l.dist=r(c)?Math.sqrt(c):Number.MAX_VALUE,l.distX=r(v)?Math.sqrt(v):Number.MAX_VALUE,a=n[a]-l[a],c=a<0?"left":"right",v=a<0?"right":"left",t[c]&&(c=e(n,t[c],s+1,h),y=c[i]<y[i]?c:l),t[v]&&Math.sqrt(a*a)<y[i]&&(n=e(n,t[v],s+1,h),y=n[i]<y[i]?n:y),y}var o=this,u=this.kdAxisArray[0],f=this.kdAxisArray[1],i=t?"distX":"dist";return this.kdTree||this.buildKDTree(),this.kdTree?e(n,this.kdTree,this.kdDimensions,this.kdDimensions):void 0}},wf.prototype={destroy:function(){gr(this,this.axis)},render:function(n){var t=this.options,i=t.format,i=i?sr(i,this):t.formatter.call(this);this.label?this.label.attr({text:i,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(i,null,null,t.useHTML).css(t.style).attr({align:this.textAlign,rotation:t.rotation,visibility:"hidden"}).add(n)},setOffset:function(n,t){var i=this.axis,e=i.chart,r=e.inverted,u=i.reversed,u=this.isNegative&&!u||!this.isNegative&&u,f=i.translate(i.usePercentage?100:this.total,0,0,0,1),i=i.translate(0),i=g(f-i),s=e.xAxis[0].translate(this.x)+n,o=e.plotHeight,u={x:r?u?f:f-i:s,y:r?o-s-t:u?o-f-i:o-f,width:r?i:t,height:r?t:i};(r=this.label)&&(r.align(this.alignOptions,null,u),u=r.alignAttr,r[this.options.crop===!1||e.isInsidePlot(u.x,u.y)?"show":"hide"](!0))}},pr.prototype.getStacks=function(){var n=this;i(n.yAxis,function(n){n.stacks&&n.hasVisibleSeries&&(n.oldStacks=n.stacks)}),i(n.series,function(i){i.options.stacking&&(i.visible===!0||n.options.chart.ignoreHiddenSeries===!1)&&(i.stackKey=i.type+t(i.options.stack,""))})},wt.prototype.buildStacks=function(){var r=this.series,u,f=t(this.options.reversedStacks,!0),i=r.length,n;if(!this.isXAxis){for(this.usePercentage=!1,n=i;n--;)r[f?n:i-n-1].setStackedPoints();for(n=i;n--;)u=r[f?n:i-n-1],u.setStackCliffs&&u.setStackCliffs();if(this.usePercentage)for(n=0;n<i;n++)r[n].setPercentStacks()}},wt.prototype.renderStackTotals=function(){var n=this.chart,f=n.renderer,i=this.stacks,r,u,t=this.stackTotalGroup;t||(this.stackTotalGroup=t=f.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),t.translate(n.plotLeft,n.plotTop);for(r in i)for(u in n=i[r],n)n[u].render(t)},wt.prototype.resetStacks=function(){var n=this.stacks,t,i;if(!this.isXAxis)for(t in n)for(i in n[t])n[t][i].touched<this.stacksTouched?(n[t][i].destroy(),delete n[t][i]):(n[t][i].total=null,n[t][i].cum=0)},wt.prototype.cleanStacks=function(){var n,t,i;if(!this.isXAxis){this.oldStacks&&(n=this.stacks=this.oldStacks);for(t in n)for(i in n[t])n[t][i].cum=n[t][i].total}},k.prototype.setStackedPoints=function(){if(this.options.stacking&&!(this.visible!==!0&&this.chart.options.chart.ignoreHiddenSeries!==!1)){var rt=this.processedXData,d=this.processedYData,k=[],it=d.length,c=this.options,b=c.threshold,v=c.startFromThreshold?b:0,tt=c.stack,c=c.stacking,y=this.stackKey,nt="-"+y,w=this.negStacks,s=this.yAxis,e=s.stacks,p=s.oldStacks,a,f,n,l,h,i,o;for(s.stacksTouched+=1,h=0;h<it;h++)i=rt[h],o=d[h],a=this.getStackIndicator(a,i,this.index),l=a.key,n=(f=w&&o<(v?0:b))?nt:y,e[n]||(e[n]={}),e[n][i]||(p[n]&&p[n][i]?(e[n][i]=p[n][i],e[n][i].total=null):e[n][i]=new wf(s,s.options.stackLabels,f,i,tt)),n=e[n][i],o!==null&&(n.points[l]=n.points[this.index]=[t(n.cum,v)],r(n.cum)||(n.base=l),n.touched=s.stacksTouched,a.index>0&&this.singleStacks===!1&&(n.points[l][0]=n.points[this.index+","+i+",0"][0])),c==="percent"?(f=f?y:nt,w&&e[f]&&e[f][i]?(f=e[f][i],n.total=f.total=u(f.total,n.total)+g(o)||0):n.total=at(n.total+(g(o)||0))):n.total=at(n.total+(o||0)),n.cum=t(n.cum,v)+(o||0),o!==null&&(n.points[l].push(n.cum),k[h]=n.cum);c==="percent"&&(s.usePercentage=!0),this.stackedYData=k,s.oldStacks={}}},k.prototype.setPercentStacks=function(){var n=this,r=n.stackKey,u=n.yAxis.stacks,f=n.processedXData,t;i([r,"-"+r],function(i){for(var s,r,e,o=f.length;o--;)(r=f[o],t=n.getStackIndicator(t,r,n.index),s=(e=u[i]&&u[i][r])&&e.points[t.key],r=s)&&(e=e.total?100/e.total:0,r[0]=at(r[0]*e),r[1]=at(r[1]*e),n.stackedYData[o]=r[1])})},k.prototype.getStackIndicator=function(n,t,i){return!r(n)||n.x!==t?n={x:t,index:0}:n.index++,n.key=[i,t,n.index].join(","),n},f(pr.prototype,{addSeries:function(n,i,r){var f,u=this;return n&&(i=t(i,!0),p(u,"addSeries",{options:n},function(){f=u.initSeries(n),u.isDirtyLegend=!0,u.linkSeries(),i&&u.redraw(r)})),f},addAxis:function(n,i,r,u){var f=i?"xAxis":"yAxis",e=this.options,n=c(n,{index:this[f].length,isX:i});new wt(this,n),e[f]=li(e[f]||{}),e[f].push(n),t(r,!0)&&this.redraw(u)},showLoading:function(n){var t=this,u=t.options,i=t.loadingDiv,r=u.loading,e=function(){i&&y(i,{left:t.plotLeft+"px",top:t.plotTop+"px",width:t.plotWidth+"px",height:t.plotHeight+"px"})};i||(t.loadingDiv=i=yt(lr,{className:"highcharts-loading"},f(r.style,{zIndex:10,display:"none"}),t.container),t.loadingSpan=yt("span",null,r.labelStyle,i),w(t,"redraw",e)),t.loadingSpan.innerHTML=n||u.lang.loading,t.loadingShown||(y(i,{opacity:0,display:""}),ar(i,{opacity:r.style.opacity},{duration:r.showDuration||0}),t.loadingShown=!0),e()},hideLoading:function(){var t=this.options,n=this.loadingDiv;n&&ar(n,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){y(n,{display:"none"})}}),this.loadingShown=!1}}),f(nr.prototype,{update:function(n,i,r,u){function l(){f.applyOptions(n),f.y===null&&o&&(f.graphic=o.destroy()),lt(n,!0)&&(f.redraw=function(){o&&o.element&&n&&n.marker&&n.marker.symbol&&(f.graphic=o.destroy()),n&&n.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy()),f.redraw=null}),s=f.index,e.updateParallelArrays(f,s),a&&f.name&&(a[f.x]=f.name),c.data[s]=lt(c.data[s],!0)?f.options:n,e.isDirty=e.isDirtyData=!0,!e.fixedBox&&e.hasCartesianSeries&&(h.isDirtyBox=!0),c.legendType==="point"&&(h.isDirtyLegend=!0),i&&h.redraw(r)}var f=this,e=f.series,o=f.graphic,s,h=e.chart,c=e.options,a=e.xAxis&&e.xAxis.names,i=t(i,!0);u===!1?l():f.firePointEvent("update",{options:n},l)},remove:function(n,t){this.series.removePoint(ri(this,this.series.data),n,t)}}),f(k.prototype,{addPoint:function(n,i,r,u){var h=this.options,e=this.data,c=this.chart,l=this.xAxis&&this.xAxis.names,a=h.data,v,s=this.xData,f,o;if(yr(u,c),i=t(i,!0),u={series:this},this.pointClass.prototype.applyOptions.apply(u,[n]),o=u.x,f=s.length,this.requireSorting&&o<s[f-1])for(v=!0;f&&s[f-1]>o;)f--;this.updateParallelArrays(u,"splice",f,0,0),this.updateParallelArrays(u,f),l&&u.name&&(l[o]=u.name),a.splice(f,0,n),v&&(this.data.splice(f,0,null),this.processData()),h.legendType==="point"&&this.generatePoints(),r&&(e[0]&&e[0].remove?e[0].remove(!1):(e.shift(),this.updateParallelArrays(u,"shift"),a.shift())),this.isDirtyData=this.isDirty=!0,i&&(this.getAttribs(),c.redraw())},removePoint:function(n,i,r){var u=this,e=u.data,f=e[n],o=u.points,s=u.chart,h=function(){o&&o.length===e.length&&o.splice(n,1),e.splice(n,1),u.options.data.splice(n,1),u.updateParallelArrays(f||{series:u},"splice",n,1),f&&f.destroy(),u.isDirty=!0,u.isDirtyData=!0,i&&s.redraw()};yr(r,s),i=t(i,!0),f?f.firePointEvent("remove",null,h):h()},remove:function(n,i){var u=this,r=u.chart;p(u,"remove",null,function(){u.destroy(),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(),t(n,!0)&&r.redraw(i)})},update:function(n,r){var e=this,o=this.chart,a=this.userOptions,h=this.type,v=d[h].prototype,u=["group","markerGroup","dataLabelsGroup"],l;(n.type&&n.type!==h||n.zIndex!==void 0)&&(u.length=0),i(u,function(n){u[n]=e[n],delete e[n]}),n=c(a,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},n),this.remove(!1);for(l in v)this[l]=s;f(this,d[n.type||h].prototype),i(u,function(n){e[n]=u[n]}),this.init(o,n),o.linkSeries(),t(r,!0)&&o.redraw(!1)}}),f(wt.prototype,{update:function(n,i){var r=this.chart,n=r.options[this.coll][this.options.index]=c(this.userOptions,n);this.destroy(!0),this.init(r,f(n,{events:s})),r.isDirtyBox=!0,t(i,!0)&&r.redraw()},remove:function(n){for(var r=this.chart,u=this.coll,f=this.series,e=f.length;e--;)f[e]&&f[e].remove(!1);hi(r.axes,this),hi(r[u],this),r.options[u].splice(this.options.index,1),i(r[u],function(n,t){n.options.index=t}),this.destroy(),r.isDirtyBox=!0,t(n,!0)&&r.redraw()},setTitle:function(n,t){this.update({title:n},t)},setCategories:function(n,t){this.update({categories:n},t)}}),ei=si(k),d.line=ei,vt.area=c(bt,{softThreshold:!1,threshold:0}),ni=si(k,{type:"area",singleStacks:!1,getStackPoints:function(){var o=[],f=[],p=this.xAxis,e=this.yAxis,u=e.stacks[this.stackKey],r={},s=this.points,h=this.index,l=e.series,a=l.length,v,y=t(e.options.reversedStacks,!0)?1:-1,n,c;if(this.options.stacking){for(n=0;n<s.length;n++)r[s[n].x]=s[n];for(c in u)u[c].total!==null&&f.push(c);f.sort(function(n,t){return n-t}),v=di(l,function(){return this.visible}),i(f,function(t,s){var c=0,l,w;if(r[t]&&!r[t].isNull)o.push(r[t]),i([-1,1],function(i){var c=i===1?"rightNull":"leftNull",e=0,o=u[f[s+i]];if(o)for(n=h;n>=0&&n<a;)l=o.points[n],l||(n===h?r[t][c]=!0:v[n]&&(w=u[t].points[n])&&(e-=w[1]-w[0])),n+=y;r[t][i===1?"rightCliff":"leftCliff"]=e});else{for(n=h;n>=0&&n<a;){if(l=u[t].points[n]){c=l[1];break}n+=y}c=e.toPixels(c,!0),o.push({isNull:!0,plotX:p.toPixels(t,!0),plotY:c,yBottom:c})}})}return o},getGraphPath:function(n){var f=k.prototype.getGraphPath,u=this.options,e=u.stacking,o=this.yAxis,i,r,s=[],h=[],y=this.index,c,p=o.stacks[this.stackKey],w=u.threshold,l=o.getThreshold(u.threshold),a,u=u.connectNulls||e==="percent",v=function(t,i,r){var u=n[t],t=e&&p[u.x].points[y],v=u[r+"Null"]||0,r=u[r+"Cliff"]||0,f,a,u=!0;r||v?(f=(v?t[0]:t[1])+r,a=t[0]+r,u=!!v):!e&&n[i]&&n[i].isNull&&(f=a=w),f!==void 0&&(h.push({plotX:c,plotY:f===null?l:o.getThreshold(f),isNull:u}),s.push({plotX:c,plotY:a===null?l:o.getThreshold(a)}))},n=n||this.points;for(e&&(n=this.getStackPoints()),i=0;i<n.length;i++)(r=n[i].isNull,c=t(n[i].rectPlotX,n[i].plotX),a=t(n[i].yBottom,l),!r||u)&&(u||v(i,i-1,"left"),r&&!e&&u||(h.push(n[i]),s.push({x:i,plotX:c,plotY:a})),u||v(i,i+1,"right"));return i=f.call(this,h,!0,!0),s.reversed=!0,r=f.call(this,s,!0,!0),r.length&&(r[0]=tt),r=i.concat(r),f=f.call(this,h,!1,u),r.xMap=i.xMap,this.areaPath=r,f},drawGraph:function(){this.areaPath=[],k.prototype.drawGraph.apply(this);var n=this,r=this.areaPath,u=this.options,f=[["area",this.color,u.fillColor]];i(this.zones,function(t,i){f.push(["zoneArea"+i,t.color||n.color,t.fillColor||u.fillColor])}),i(f,function(i){var e=i[0],f=n[e];f?(f.endX=r.xMap,f.animate({d:r})):(f={fill:i[2]||i[1],zIndex:0},i[2]||(f["fill-opacity"]=t(u.fillOpacity,.75)),f=n[e]=n.chart.renderer.path(r).attr(f).add(n.group),f.isArea=!0),f.startX=r.xMap,f.shiftUnit=u.step?2:1})},drawLegendSymbol:nt.drawRectangle}),d.area=ni,vt.spline=c(bt),ei=si(k,{type:"spline",getPointSpline:function(n,i,r){var c=i.plotX,f=i.plotY,s=n[r-1],r=n[r+1],a,o,h,e,v;return s&&!s.isNull&&r&&!r.isNull&&(n=s.plotY,h=r.plotX,r=r.plotY,v=0,a=(1.5*c+s.plotX)/2.5,o=(1.5*f+n)/2.5,h=(1.5*c+h)/2.5,e=(1.5*f+r)/2.5,h!==a&&(v=(e-o)*(h-c)/(h-a)+f-e),o+=v,e+=v,o>n&&o>f?(o=u(n,f),e=2*f-o):o<n&&o<f&&(o=l(n,f),e=2*f-o),e>r&&e>f?(e=u(r,f),o=2*f-e):e<r&&e<f&&(e=l(r,f),o=2*f-e),i.rightContX=h,i.rightContY=e),i=["C",t(s.rightContX,s.plotX),t(s.rightContY,s.plotY),t(a,c),t(o,f),c,f],s.rightContX=s.rightContY=null,i}}),d.spline=ei,vt.areaspline=c(vt.area),ni=ni.prototype,ei=si(ei,{type:"areaspline",getStackPoints:ni.getStackPoints,getGraphPath:ni.getGraphPath,setStackCliffs:ni.setStackCliffs,drawGraph:ni.drawGraph,drawLegendSymbol:nt.drawRectangle}),d.areaspline=ei,vt.column=c(bt,{borderColor:"#FFFFFF",borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1,halo:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0}),ei=si(k,{type:"column",pointAttrToOptions:{stroke:"borderColor",fill:"color",r:"borderRadius"},cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){k.prototype.init.apply(this,arguments);var n=this,t=n.chart;t.hasRendered&&i(t.series,function(t){t.type===n.type&&(t.isDirty=!0)})},getColumnMetrics:function(){var n=this,r=n.options,u=n.xAxis,a=n.yAxis,v=u.reversed,f,o={},e=0;r.grouping===!1?e=1:i(n.chart.series,function(t){var r=t.options,u=t.yAxis,i;t.type===n.type&&t.visible&&a.len===u.len&&a.pos===u.pos&&(r.stacking?(f=t.stackKey,o[f]===s&&(o[f]=e++),i=o[f]):r.grouping!==!1&&(i=e++),t.columnIndex=i)});var h=l(g(u.transA)*(u.ordinalSlope||r.pointRange||u.closestPointRange||u.tickInterval||1),u.len),y=h*r.groupPadding,c=(h-2*y)/e,r=l(r.maxPointWidth||u.len,t(r.pointWidth,c*(1-2*r.pointPadding)));return n.columnMetrics={width:r,offset:(c-r)/2+(y+((n.columnIndex||0)+(v?1:0))*c-h/2)*(v?-1:1)}},crispCol:function(n,t,i,r){var e=this.chart,u=this.borderWidth,f=-(u%2?.5:0),u=u%2?.5:1;return e.inverted&&e.renderer.isVML&&(u+=1),i=Math.round(n+i)+f,n=Math.round(n)+f,i-=n,r=Math.round(t+r)+u,f=g(t)<=.5&&r>.5,t=Math.round(t)+u,r-=t,f&&r&&(t-=1,r+=1),{x:n,y:t,width:i,height:r}},translate:function(){var n=this,e=n.chart,o=n.options,v=n.borderWidth=t(o.borderWidth,n.closestPointRange*n.xAxis.transA<2?0:1),r=n.yAxis,s=n.translatedThreshold=r.getThreshold(o.threshold),f=t(o.minPointLength,5),c=n.getColumnMetrics(),a=c.width,h=n.barW=u(a,1+2*v),y=n.pointXOffset=c.offset;e.inverted&&(s-=.5),o.pointPadding&&(h=yi(h)),k.prototype.translate.apply(n),i(n.points,function(i){var v=l(t(i.yBottom,s),9e4),o=999+g(v),o=l(u(-o,i.plotY),r.len+o),p=i.plotX+y,b=h,w=l(o,v),k,c=u(o,v)-w;g(c)<f&&f&&(c=f,k=!r.reversed&&!i.negative||r.reversed&&i.negative,w=g(w-s)>f?v-f:s-(k?f:0)),i.barX=p,i.pointWidth=a,i.tooltipPos=e.inverted?[r.len+r.pos-e.plotLeft-o,n.xAxis.len-p-b/2,c]:[p+b/2,o+r.pos-e.plotTop,c],i.shapeType="rect",i.shapeArgs=n.crispCol(p,w,b,c)})},getSymbol:pi,drawLegendSymbol:nt.drawRectangle,drawGraph:pi,drawPoints:function(){var n=this,e=this.chart,t=n.options,o=e.renderer,s=t.animationLimit||250,u,f;i(n.points,function(i){var h=i.graphic,l;b(i.plotY)&&i.y!==null?(u=i.shapeArgs,l=r(n.borderWidth)?{"stroke-width":n.borderWidth}:{},f=i.pointAttr[i.selected?"select":""]||n.pointAttr[""],h?(rr(h),h.attr(l).attr(f)[e.pointCount<s?"animate":"attr"](c(u))):i.graphic=o[i.shapeType](u).attr(l).attr(f).add(i.group||n.group).shadow(t.shadow,null,t.stacking&&!t.borderRadius)):h&&(i.graphic=h.destroy())})},animate:function(n){var t=this,i=this.yAxis,o=t.options,e=this.chart.inverted,r={};dt&&(n?(r.scaleY=.001,n=l(i.pos+i.len,u(i.pos,i.toPixels(o.threshold))),e?r.translateX=n-i.len:r.translateY=n,t.group.attr(r)):(r[e?"translateX":"translateY"]=i.pos,t.group.animate(r,f(uu(t.options.animation),{step:function(n,i){t.group.attr({scaleY:u(.001,i.pos)})}})),t.animate=null))},remove:function(){var n=this,t=n.chart;t.hasRendered&&i(t.series,function(t){t.type===n.type&&(t.isDirty=!0)}),k.prototype.remove.apply(n,arguments)}}),d.column=ei,vt.bar=c(vt.column),ni=si(ei,{type:"bar",inverted:!0}),d.bar=ni,vt.scatter=c(bt,{lineWidth:0,marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 10px;"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}),ni=si(k,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&k.prototype.drawGraph.call(this)}}),d.scatter=ni,vt.pie=c(bt,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){if(this.y!==null)return this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}}),bt={type:"pie",isCartesian:!1,pointClass:si(nr,{init:function(){nr.prototype.init.apply(this,arguments);var n=this,i;return n.name=t(n.name,"Slice"),i=function(t){n.slice(t.type==="select")},w(n,"select",i),w(n,"unselect",i),n},setVisible:function(n,r){var u=this,f=u.series,e=f.chart,o=f.options.ignoreHiddenPoint,r=t(r,o);n!==u.visible&&(u.visible=u.options.visible=n=n===s?!u.visible:n,f.options.data[ri(u,f.data)]=u.options,i(["graphic","dataLabel","connector","shadowGroup"],function(t){u[t]&&u[t][n?"show":"hide"](!0)}),u.legendItem&&e.legend.colorizeItem(u,n),!n&&u.state==="hover"&&u.setState(""),o&&(f.isDirty=!0),r&&e.redraw())},slice:function(n,i,u){var f=this.series;yr(u,f.chart),t(i,!0),this.sliced=this.options.sliced=n=r(n)?n:!this.sliced,f.options.data[ri(this,f.data)]=this.options,n=n?this.slicedTranslation:{translateX:0,translateY:0},this.graphic.animate(n),this.shadowGroup&&this.shadowGroup.animate(n)},haloPath:function(n){var t=this.shapeArgs,i=this.series.chart;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(i.plotLeft+t.x,i.plotTop+t.y,t.r+n,t.r+n,{innerR:this.shapeArgs.r,start:t.start,end:t.end})}}),requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},animate:function(n){var t=this,u=t.points,r=t.startAngleRad;n||(i(u,function(n){var i=n.graphic,u=n.shapeArgs;i&&(i.attr({r:n.startR||t.center[3]/2,start:r,end:r}),i.animate({r:u.r,start:u.start,end:u.end},t.options.animation))}),t.animate=null)},updateTotals:function(){for(var i=0,r=this.points,u=r.length,n,f=this.options.ignoreHiddenPoint,t=0;t<u;t++)n=r[t],n.y<0&&(n.y=null),i+=f&&!n.visible?0:n.y;for(this.total=i,t=0;t<u;t++)n=r[t],n.percentage=i>0&&(n.visible||!f)?n.y/i*100:0,n.total=i},generatePoints:function(){k.prototype.generatePoints.call(this),this.updateTotals()},translate:function(n){this.generatePoints();var v=0,o=this.options,y=o.slicedOffset,h=y+o.borderWidth,u,f,i,c=o.startAngle||0,p=this.startAngleRad=ci/180*(c-90),c=(this.endAngleRad=ci/180*(t(o.endAngle,c+360)-90))-p,w=this.points,s=o.dataLabels.distance,o=o.ignoreHiddenPoint,a,b=w.length,r;for(n||(this.center=n=this.getCenter()),this.getX=function(t,r){return i=ct.asin(l((t-n[1])/(n[2]/2+s),1)),n[0]+(r?-1:1)*ht(i)*(n[2]/2+s)},a=0;a<b;a++)r=w[a],u=p+v*c,(!o||r.visible)&&(v+=r.percentage/100),f=p+v*c,r.shapeType="arc",r.shapeArgs={x:n[0],y:n[1],r:n[2]/2,innerR:n[3]/2,start:e(u*1e3)/1e3,end:e(f*1e3)/1e3},i=(f+u)/2,i>1.5*ci?i-=2*ci:i<-ci/2&&(i+=2*ci),r.slicedTranslation={translateX:e(ht(i)*y),translateY:e(pt(i)*y)},u=ht(i)*n[2]/2,f=pt(i)*n[2]/2,r.tooltipPos=[n[0]+u*.7,n[1]+f*.7],r.half=i<-ci/2||i>ci/2?1:0,r.angle=i,h=l(h,s/2),r.labelPos=[n[0]+u+ht(i)*s,n[1]+f+pt(i)*s,n[0]+u+ht(i)*h,n[1]+f+pt(i)*h,n[0]+u,n[1]+f,s<0?"center":r.half?"right":"left",i]},drawGraph:null,drawPoints:function(){var n=this,o=n.chart.renderer,u,e,s=n.options.shadow,t,r,h,c;s&&!n.shadowGroup&&(n.shadowGroup=o.g("shadow").add(n.group)),i(n.points,function(i){i.y!==null&&(e=i.graphic,h=i.shapeArgs,t=i.shadowGroup,r=i.pointAttr[i.selected?"select":""],r.stroke||(r.stroke=r.fill),s&&!t&&(t=i.shadowGroup=o.g("shadow").add(n.shadowGroup)),u=i.sliced?i.slicedTranslation:{translateX:0,translateY:0},t&&t.attr(u),e?e.setRadialReference(n.center).attr(r).animate(f(h,u)):(c={"stroke-linejoin":"round"},i.visible||(c.visibility="hidden"),i.graphic=e=o[i.shapeType](h).setRadialReference(n.center).attr(r).attr(c).attr(u).add(n.group).shadow(s,t)))})},searchPoint:pi,sortByAngle:function(n,t){n.sort(function(n,i){return n.angle!==void 0&&(i.angle-n.angle)*t})},drawLegendSymbol:nt.drawRectangle,getCenter:pu.getCenter,getSymbol:pi},bt=si(k,bt),d.pie=bt,k.prototype.drawDataLabels=function(){var u=this,h=u.options,y=h.cursor,n=h.dataLabels,k=u.points,l,a,v=u.hasRendered||0,e,o,p=t(n.defer,!0),b=u.chart.renderer;(n.enabled||u._hasPointLabels)&&(u.dlProcessOptions&&u.dlProcessOptions(n),o=u.plotGroup("dataLabelsGroup","data-labels",p&&!v?"hidden":"visible",n.zIndex||6),p&&(o.attr({opacity:+v}),v||w(u,"afterAnimate",function(){u.visible&&o.show(!0),o[h.animation?"animate":"attr"]({opacity:1},{duration:200})})),a=n,i(k,function(i){var p,v=i.dataLabel,k,d,nt=i.connector,tt=!0,w,g={};if(l=i.dlOptions||i.options&&i.options.dataLabels,p=t(l&&l.enabled,a.enabled)&&i.y!==null,v&&!p)i.dataLabel=v.destroy();else if(p){if(n=c(a,l),w=n.style,p=n.rotation,k=i.getLabelConfig(),e=n.format?sr(n.format,k):n.formatter.call(k,n),w.color=t(n.color,w.color,u.color,"black"),v)r(e)?(v.attr({text:e}),tt=!1):(i.dataLabel=v=v.destroy(),nt)&&(i.connector=nt.destroy());else if(r(e)){v={fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth,r:n.borderRadius||0,rotation:p,padding:n.padding,zIndex:1},w.color==="contrast"&&(g.color=n.inside||n.distance<0||h.stacking?b.getContrast(i.color||u.color):"#000000"),y&&(g.cursor=y);for(d in v)v[d]===s&&delete v[d];v=i.dataLabel=b[p?"text":"label"](e,0,-9999,n.shape,null,null,n.useHTML).attr(v).css(f(w,g)).add(o).shadow(n.shadow)}v&&u.alignDataLabel(i,v,n,null,tt)}}))},k.prototype.alignDataLabel=function(n,i,r,u,o){var l=this.chart,s=l.inverted,h=t(n.plotX,-9999),y=t(n.plotY,-9999),c=i.getBBox(),b=l.renderer.fontMetrics(r.style.fontSize).b,a=r.rotation,v=r.align,p=this.visible&&(n.series.forceDL||l.isInsidePlot(h,e(y),s)||u&&l.isInsidePlot(h,s?u.x+1:u.y+u.height-1,s)),w=t(r.overflow,"justify")==="justify";p&&(u=f({x:s?l.plotWidth-y:h,y:e(s?l.plotHeight-h:y),width:0,height:0},u),f(r,{width:c.width,height:c.height}),a?(w=!1,s=l.renderer.rotCorr(b,a),s={x:u.x+r.x+u.width/2+s.x,y:u.y+r.y+{top:0,middle:.5,bottom:1}[r.verticalAlign]*u.height},i[o?"attr":"animate"](s).attr({align:v}),h=(a+720)%360,h=h>180&&h<360,v==="left"?s.y-=h?c.height:0:v==="center"?(s.x-=c.width/2,s.y-=c.height/2):v==="right"&&(s.x-=c.width,s.y-=h?0:c.height)):(i.align(r,null,u),s=i.alignAttr),w?this.justifyDataLabel(i,r,s,c,u,o):t(r.crop,!0)&&(p=l.isInsidePlot(s.x,s.y)&&l.isInsidePlot(s.x+c.width,s.y+c.height)),r.shape&&!a&&i.attr({anchorX:n.plotX,anchorY:n.plotY})),p||(rr(i),i.attr({y:-9999}),i.placed=!1)},k.prototype.justifyDataLabel=function(n,t,i,r,u,f){var s=this.chart,c=t.align,l=t.verticalAlign,e,o,h=n.box?0:n.padding||0;e=i.x+h,e<0&&(c==="right"?t.align="left":t.x=-e,o=!0),e=i.x+r.width-h,e>s.plotWidth&&(c==="left"?t.align="right":t.x=s.plotWidth-e,o=!0),e=i.y+h,e<0&&(l==="bottom"?t.verticalAlign="top":t.y=-e,o=!0),e=i.y+r.height-h,e>s.plotHeight&&(l==="top"?t.verticalAlign="bottom":t.y=s.plotHeight-e,o=!0),o&&(n.placed=!f,n.align(t,null,u))},d.pie&&(d.pie.prototype.drawDataLabels=function(){var a=this,b=a.data,f,lt=a.chart,nt=a.options.dataLabels,ut=t(nt.connectorPadding,10),wt=t(nt.connectorWidth,1),bt=lt.plotWidth,kt=lt.plotHeight,rt,pt,ti=t(nt.softConnector,!0),it=nt.distance,yt=a.center,ht=yt[2]/2,ct=yt[1],ni=it>0,y,s,r,gt=[[],[]],v,o,et,ft,n,w=[0,0,0,0],dt=function(n,t){return t.y-n.y},at,ot;if(a.visible&&(nt.enabled||a._hasPointLabels)){for(k.prototype.drawDataLabels.apply(a),i(b,function(n){n.dataLabel&&n.visible&&(gt[n.half].push(n),n.dataLabel._pos=null)}),ft=2;ft--;){var p=[],vt=[],c=gt[ft],d=c.length,h;if(d){for(a.sortByAngle(c,ft-.5),n=b=0;!b&&c[n];)b=c[n]&&c[n].dataLabel&&(c[n].dataLabel.getBBox().height||21),n++;if(it>0){for(s=l(ct+ht+it,lt.plotHeight),n=u(0,ct-ht-it);n<=s;n+=b)p.push(n);if(s=p.length,d>s){for(f=[].concat(c),f.sort(dt),n=d;n--;)f[n].rank=n;for(n=d;n--;)c[n].rank>=s&&c.splice(n,1);d=c.length}for(n=0;n<d;n++){for(f=c[n],r=f.labelPos,f=9999,ot=0;ot<s;ot++)at=g(p[ot]-r[1]),at<f&&(f=at,h=ot);if(h<n&&p[n]!==null)h=n;else for(s<d-n+h&&p[n]!==null&&(h=s-d+n);p[h]===null;)h++;vt.push({i:h,y:p[h]}),p[h]=null}vt.sort(dt)}for(n=0;n<d;n++)f=c[n],r=f.labelPos,y=f.dataLabel,et=f.visible===!1?"hidden":"inherit",f=r[1],it>0?(s=vt.pop(),h=s.i,o=s.y,f>o&&p[h+1]!==null||f<o&&p[h-1]!==null)&&(o=l(u(0,f),lt.plotHeight)):o=f,v=nt.justify?yt[0]+(ft?-1:1)*(ht+it):a.getX(o===ct-ht-it||o===ct+ht+it?f:o,ft),y._attr={visibility:et,align:r[6]},y._pos={x:v+nt.x+({left:ut,right:-ut}[r[6]]||0),y:o+nt.y-10},y.connX=v,y.connY=o,this.options.size===null&&(s=y.width,v-s<ut?w[3]=u(e(s-v+ut),w[3]):v+s>bt-ut&&(w[1]=u(e(v+s-bt+ut),w[1])),o-b/2<0?w[0]=u(e(-o+b/2),w[0]):o+b/2>kt&&(w[2]=u(e(o+b/2-kt),w[2])))}}(er(w)===0||this.verifyDataLabelOverflow(w))&&(this.placeDataLabels(),ni&&wt&&i(this.points,function(n){rt=n.connector,r=n.labelPos,(y=n.dataLabel)&&y._pos&&n.visible?(et=y._attr.visibility,v=y.connX,o=y.connY,pt=ti?[st,v+(r[6]==="left"?5:-5),o,"C",v,o,2*r[2]-r[4],2*r[3]-r[5],r[2],r[3],tt,r[4],r[5]]:[st,v+(r[6]==="left"?5:-5),o,tt,r[2],r[3],tt,r[4],r[5]],rt?(rt.animate({d:pt}),rt.attr("visibility",et)):n.connector=rt=a.chart.renderer.path(pt).attr({"stroke-width":wt,stroke:nt.connectorColor||n.color||"#606060",visibility:et}).add(a.dataLabelsGroup)):rt&&(n.connector=rt.destroy())}))}},d.pie.prototype.placeDataLabels=function(){i(this.points,function(n){var t=n.dataLabel;t&&n.visible&&((n=t._pos)?(t.attr(t._attr),t[t.moved?"animate":"attr"](n),t.moved=!0):t&&t.attr({y:-9999}))})},d.pie.prototype.alignDataLabel=pi,d.pie.prototype.verifyDataLabelOverflow=function(n){var t=this.center,r=this.options,e=r.center,f=r.minSize||80,i=f,o;return e[0]!==null?i=u(t[2]-u(n[1],n[3]),f):(i=u(t[2]-n[1]-n[3],f),t[0]+=(n[3]-n[1])/2),e[1]!==null?i=u(l(i,t[2]-u(n[0],n[2])),f):(i=u(l(i,t[2]-n[0]-n[2]),f),t[1]+=(n[0]-n[2])/2),i<t[2]?(t[2]=i,t[3]=Math.min(/%$/.test(r.innerSize||0)?i*parseFloat(r.innerSize||0)/100:parseFloat(r.innerSize||0),i),this.translate(t),this.drawDataLabels&&this.drawDataLabels()):o=!0,o}),d.column&&(d.column.prototype.alignDataLabel=function(n,i,r,u,f){var o=this.chart.inverted,s=n.series,e=n.dlBox||n.shapeArgs,h=t(n.below,n.plotY>t(this.translatedThreshold,s.yAxis.len)),l=t(r.inside,!!this.options.stacking);e&&(u=c(e),u.y<0&&(u.height+=u.y,u.y=0),e=u.y+u.height-s.yAxis.len,e>0&&(u.height-=e),o&&(u={x:s.yAxis.len-u.y-u.height,y:s.xAxis.len-u.x-u.width,width:u.height,height:u.width}),l||(o?(u.x+=h?0:u.width,u.width=0):(u.y+=h?u.height:0,u.height=0))),r.align=t(r.align,!o||l?"center":h?"right":"left"),r.verticalAlign=t(r.verticalAlign,o||l?"middle":h?"top":"bottom"),k.prototype.alignDataLabel.call(this,n,i,r,u,f)}),function(n){var i=n.Chart,t=n.each,r=n.pick,u=n.addEvent;i.prototype.callbacks.push(function(n){function i(){var i=[];t(n.series,function(n){var u=n.options.dataLabels,f=n.dataLabelCollections||["dataLabel"];(u.enabled||n._hasPointLabels)&&!u.allowOverlap&&n.visible&&t(f,function(u){t(n.points,function(n){n[u]&&(n[u].labelrank=r(n.labelrank,n.shapeArgs&&n.shapeArgs.height),i.push(n[u]))})})}),n.hideOverlappingLabels(i)}i(),u(n,"redraw",i)}),i.prototype.hideOverlappingLabels=function(n){for(var l=n.length,f,i,r,e,o,s,h,c,u=0;u<l;u++)(f=n[u])&&(f.oldOpacity=f.opacity,f.newOpacity=1);for(n.sort(function(n,t){return(t.labelrank||0)-(n.labelrank||0)}),u=0;u<l;u++)for(i=n[u],f=u+1;f<l;++f)(r=n[f],i&&r&&i.placed&&r.placed&&i.newOpacity!==0&&r.newOpacity!==0&&(e=i.alignAttr,o=r.alignAttr,s=i.parentGroup,h=r.parentGroup,c=2*(i.box?0:i.padding),e=!(o.x+h.translateX>e.x+s.translateX+(i.width-c)||o.x+h.translateX+(r.width-c)<e.x+s.translateX||o.y+h.translateY>e.y+s.translateY+(i.height-c)||o.y+h.translateY+(r.height-c)<e.y+s.translateY)))&&((i.labelrank<r.labelrank?i:r).newOpacity=0);t(n,function(n){var i,t;n&&(t=n.newOpacity,n.oldOpacity!==t&&n.placed&&(t?n.show(!0):i=function(){n.hide()},n.alignAttr.opacity=t,n[n.isOld?"animate":"attr"](n.alignAttr,null,i)),n.isOld=!0)})}}(o),bt=o.TrackerMixin={drawTrackerPoint:function(){var n=this,t=n.chart,f=t.pointer,r=n.options.cursor,e=r&&{cursor:r},u=function(n){for(var r=n.target,i;r&&!i;)i=r.point,r=r.parentNode;if(i!==s&&i!==t.hoverPoint)i.onMouseOver(n)};i(n.points,function(n){n.graphic&&(n.graphic.element.point=n),n.dataLabel&&(n.dataLabel.element.point=n)}),n._hasTracking||(i(n.trackerGroups,function(t){if(n[t]&&(n[t].addClass("highcharts-tracker").on("mouseover",u).on("mouseout",function(n){f.onTrackerMouseOut(n)}).css(e),fu))n[t].on("touchstart",u)}),n._hasTracking=!0)},drawTrackerGraph:function(){var t=this,e=t.options,u=e.trackByArea,r=[].concat(u?t.areaPath:t.graphPath),o=r.length,f=t.chart,a=f.pointer,v=f.renderer,s=f.options.tooltip.snap,h=t.tracker,n=e.cursor,y=n&&{cursor:n},c=function(){f.hoverSeries!==t&&t.onMouseOver()},l="rgba(192,192,192,"+(dt?.0001:.002)+")";if(o&&!u)for(n=o+1;n--;)r[n]===st&&r.splice(n+1,0,r[n+1]-s,r[n+2],tt),(n&&r[n]===st||n===o)&&r.splice(n,0,tt,r[n-2]+s,r[n-1]);h?h.attr({d:r}):(t.tracker=v.path(r).attr({"stroke-linejoin":"round",visibility:t.visible?"visible":"hidden",stroke:l,fill:u?l:"none","stroke-width":e.lineWidth+(u?0:2*s),zIndex:2}).add(t.group),i([t.tracker,t.markerGroup],function(n){if(n.addClass("highcharts-tracker").on("mouseover",c).on("mouseout",function(n){a.onTrackerMouseOut(n)}).css(y),fu)n.on("touchstart",c)}))}},d.column&&(ei.prototype.drawTracker=bt.drawTrackerPoint),d.pie&&(d.pie.prototype.drawTracker=bt.drawTrackerPoint),d.scatter&&(ni.prototype.drawTracker=bt.drawTrackerPoint),f(hu.prototype,{setItemEvents:function(n,t,i,r,u){var f=this;(i?t:n.legendGroup).on("mouseover",function(){n.setState("hover"),t.css(f.options.itemHoverStyle)}).on("mouseout",function(){t.css(n.visible?r:u),n.setState()}).on("click",function(t){var i=function(){n.setVisible&&n.setVisible()},t={browserEvent:t};n.firePointEvent?n.firePointEvent("legendItemClick",t,i):p(n,"legendItemClick",t,i)})},createCheckboxForItem:function(n){n.checkbox=yt("input",{type:"checkbox",checked:n.selected,defaultChecked:n.selected},this.options.itemCheckboxStyle,this.chart.container),w(n.checkbox,"click",function(t){p(n.series||n,"checkboxClick",{checked:t.target.checked,item:n},function(){n.select()})})}}),ft.legend.itemStyle.cursor="pointer",f(pr.prototype,{showResetZoom:function(){var t=this,i=ft.lang,n=t.options.chart.resetZoomButton,r=n.theme,u=r.states,f=n.relativeTo==="chart"?null:"plotBox";this.resetZoomButton=t.renderer.button(i.resetZoom,null,null,function(){t.zoomOut()},r,u&&u.hover).attr({align:n.position.align,title:i.resetZoomTitle}).add().align(n.position,!1,f)},zoomOut:function(){var n=this;p(n,"selection",{resetSelection:!0},function(){n.zoom()})},zoom:function(n){var u,e=this.pointer,f=!1,r;!n||n.resetSelection?i(this.axes,function(n){u=n.zoom()}):i(n.xAxis.concat(n.yAxis),function(n){var t=n.axis,i=t.isXAxis;(e[i?"zoomX":"zoomY"]||e[i?"pinchX":"pinchY"])&&(u=t.zoom(n.min,n.max),t.displayBtn&&(f=!0))}),r=this.resetZoomButton,f&&!r?this.showResetZoom():!f&&lt(r)&&(this.resetZoomButton=r.destroy()),u&&this.redraw(t(this.options.chart.animation,n&&n.animation,this.pointCount<100))},pan:function(n,t){var r=this,f=r.hoverPoints,e;f&&i(f,function(n){n.setState()}),i(t==="xy"?[1,0]:[1],function(t){var t=r[t?"xAxis":"yAxis"][0],f=t.horiz,o=n[f?"chartX":"chartY"],f=f?"mouseDownX":"mouseDownY",i=r[f],s=(t.pointRange||0)/2,h=t.getExtremes(),c=t.toValue(i-o,!0)+s,s=t.toValue(i+t.len-o,!0)-s,i=i>o;t.series.length&&(i||c>l(h.dataMin,h.min))&&(!i||s<u(h.dataMax,h.max))&&(t.setExtremes(c,s,!1,!1,{trigger:"pan"}),e=!0),r[f]=o}),e&&r.redraw(!1),y(r.container,{cursor:"move"})}}),f(nr.prototype,{select:function(n,r){var u=this,f=u.series,e=f.chart,n=t(n,!u.selected);u.firePointEvent(n?"select":"unselect",{accumulate:r},function(){u.selected=u.options.selected=n,f.options.data[ri(u,f.data)]=u.options,u.setState(n&&"select"),r||i(e.getSelectedPoints(),function(n){n.selected&&n!==u&&(n.selected=n.options.selected=!1,f.options.data[ri(n,f.data)]=n.options,n.setState(""),n.firePointEvent("unselect"))})})},onMouseOver:function(n,t){var i=this.series,r=i.chart,u=r.tooltip,f=r.hoverPoint;r.hoverSeries!==i&&i.onMouseOver(),f&&f!==this&&f.onMouseOut(),this.series&&(this.firePointEvent("mouseOver"),u&&(!u.shared||i.noSharedTooltip)&&u.refresh(this,n),this.setState("hover"),!t)&&(r.hoverPoint=this)},onMouseOut:function(){var n=this.series.chart,t=n.hoverPoints;this.firePointEvent("mouseOut"),t&&ri(this,t)!==-1||(this.setState(),n.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var n=c(this.series.options.point,this.options).events,t;this.events=n;for(t in n)w(this,t,n[t]);this.hasImportedEvents=!0}},setState:function(n,t){var e=et(this.plotX),a=this.plotY,u=this.series,v=u.options.states,i=vt[u.type].marker&&u.options.marker,p=i&&!i.enabled,s=i&&i.states[n],w=s&&s.enabled===!1,r=u.stateMarkerGraphic,o=this.marker||{},h=u.chart,l=u.halo,y,n=n||"";y=this.pointAttr[n]||u.pointAttr[n],n===this.state&&!t||this.selected&&n!=="select"||v[n]&&v[n].enabled===!1||n&&(w||p&&s.enabled===!1)||n&&o.states&&o.states[n]&&o.states[n].enabled===!1||(this.graphic?(i=i&&this.graphic.symbolName&&y.r,this.graphic.attr(c(y,i?{x:e-i,y:a-i,width:2*i,height:2*i}:{})),r&&r.hide()):(n&&s&&((i=s.radius,o=o.symbol||u.symbol,r&&r.currentSymbol!==o&&(r=r.destroy()),r)?r[t?"animate":"attr"]({x:e-i,y:a-i}):o&&(u.stateMarkerGraphic=r=h.renderer.symbol(o,e-i,a-i,2*i,2*i).attr(y).add(u.markerGroup),r.currentSymbol=o)),r&&(r[n&&h.isInsidePlot(e,a,h.inverted)?"show":"hide"](),r.element.point=this)),(e=v[n]&&v[n].halo)&&e.size?(l||(u.halo=l=h.renderer.path().add(h.seriesGroup)),l.attr(f({fill:this.color||u.color,"fill-opacity":e.opacity,zIndex:-1},e.attributes))[t?"animate":"attr"]({d:this.haloPath(e.size)})):l&&l.attr({d:[]}),this.state=n)},haloPath:function(n){var t=this.series,i=t.chart,r=t.getPlotBox(),u=i.inverted,f=Math.floor(this.plotX);return i.renderer.symbols.circle(r.translateX+(u?t.yAxis.len-this.plotY:f)-n,r.translateY+(u?t.xAxis.len-f:this.plotY)-n,n*2,n*2)}}),f(k.prototype,{onMouseOver:function(){var t=this.chart,n=t.hoverSeries;n&&n!==this&&n.onMouseOut(),this.options.events.mouseOver&&p(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var i=this.options,n=this.chart,t=n.tooltip,r=n.hoverPoint;n.hoverSeries=null,r&&r.onMouseOut(),this&&i.events.mouseOut&&p(this,"mouseOut"),t&&!i.stickyTracking&&(!t.shared||this.noSharedTooltip)&&t.hide(),this.setState()},setState:function(n){var t=this.options,r=this.graph,i=t.states,u=t.lineWidth,t=0,n=n||"";if(this.state!==n&&(this.state=n,!(i[n]&&i[n].enabled===!1)&&(n&&(u=i[n].lineWidth||u+(i[n].lineWidthPlus||0)),r&&!r.dashstyle)))for(n={"stroke-width":u},r.attr(n);this["zoneGraph"+t];)this["zoneGraph"+t].attr(n),t+=1},setVisible:function(n,t){var r=this,u=r.chart,e=r.legendItem,f,o=u.options.chart.ignoreHiddenSeries,h=r.visible;f=(r.visible=n=r.userOptions.visible=n===s?!h:n)?"show":"hide",i(["group","dataLabelsGroup","markerGroup","tracker"],function(n){r[n]&&r[n][f]()}),(u.hoverSeries===r||(u.hoverPoint&&u.hoverPoint.series)===r)&&r.onMouseOut(),e&&u.legend.colorizeItem(r,n),r.isDirty=!0,r.options.stacking&&i(u.series,function(n){n.options.stacking&&n.visible&&(n.isDirty=!0)}),i(r.linkedSeries,function(t){t.setVisible(n,!1)}),o&&(u.isDirtyBox=!0),t!==!1&&u.redraw(),p(r,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(n){this.selected=n=n===s?!this.selected:n,this.checkbox&&(this.checkbox.checked=n),p(this,n?"select":"unselect")},drawTracker:bt.drawTrackerGraph}),f(o,{Color:ii,Point:nr,Tick:wr,Renderer:iu,SVGElement:ut,SVGRenderer:vi,arrayMin:or,arrayMax:er,charts:rt,correctFloat:at,dateFormat:br,error:oi,format:sr,pathAnim:void 0,getOptions:function(){return ft},hasBidiBug:ie,isTouchDevice:gf,setOptions:function(n){return ft=c(!0,ft,n),kf(),ft},addEvent:w,removeEvent:ot,createElement:yt,discardElement:vr,css:y,each:i,map:di,merge:c,splat:li,stableSort:au,extendClass:si,pInt:a,svg:dt,canvas:ti,vml:!dt&&!ti,product:"Highcharts",version:"4.2.6"}),o}),Highcharts.theme={colors:["#2a9fd6","#fdb715","#2b908f","#90ee7e","#f45b5b","#7798BF","#aaeeee","#ff0066","#eeaaee","#55BF3B","#DF5353","#7798BF","#aaeeee"],chart:{backgroundColor:"transparent",style:{fontFamily:"'Forza-Medium', sans-serif"},plotBorderColor:"#606063"},credits:{text:"Destiny Tracker",href:"http://destinytracker.com",style:{color:"#666"}},title:{style:{color:"#E0E0E3",textTransform:"uppercase",fontSize:"20px"}},subtitle:{style:{color:"#E0E0E3",textTransform:"uppercase"}},xAxis:{gridLineColor:"#424242",labels:{style:{color:"#E0E0E3"}},lineColor:"#424242",minorGridLineColor:"#505053",tickColor:"#424242",title:{style:{color:"#A0A0A3"}}},yAxis:{gridLineColor:"#424242",labels:{style:{color:"#E0E0E3"}},lineColor:"#424242",minorGridLineColor:"#505053",tickColor:"#424242",tickWidth:1,title:{style:{color:"#A0A0A3"}}},tooltip:{useHTML:!0,borderWidth:0,style:{padding:0},formatter:function(){for(var r='<div class="axis-name">'+this.x+'</div><div class="series">',u=[].concat(this.points),n,i,t=0;t<u.length;t++)n=u[t],i="",i=n.point.low&&n.point.high?['<span class="value-low">',n.point.low,"<span>",'<span class="value-high">',n.point.high,"</span>"].join(""):n.y,r+=['<div class="serie" style="color: '+n.series.color+';">','<span class="serie-name">',n.series.name,"</span>",'<span class="serie-value">',i,"</span>","</div>"].join("");return r+="</div>"},shared:!0},plotOptions:{series:{dataLabels:{color:"#B0B0B3"},marker:{lineColor:"#333"}},boxplot:{fillColor:"#505053"},candlestick:{lineColor:"white"},errorbar:{color:"white"},line:{marker:{enabled:!1}}},legend:{itemStyle:{color:"#E0E0E3"},itemHoverStyle:{color:"#FFF"},itemHiddenStyle:{color:"#606063"}},labels:{style:{color:"#707073"}},drilldown:{activeAxisLabelStyle:{color:"#F0F0F3"},activeDataLabelStyle:{color:"#F0F0F3"}},navigation:{buttonOptions:{symbolStroke:"#DDDDDD",theme:{fill:"#505053"}}},rangeSelector:{buttonTheme:{fill:"#505053",stroke:"#000000",style:{color:"#CCC"},states:{hover:{fill:"#707073",stroke:"#000000",style:{color:"white"}},select:{fill:"#000003",stroke:"#000000",style:{color:"white"}}}},inputBoxBorderColor:"#505053",inputStyle:{backgroundColor:"#333",color:"silver"},labelStyle:{color:"silver"}},navigator:{handles:{backgroundColor:"#666",borderColor:"#AAA"},outlineColor:"#CCC",maskFill:"rgba(255,255,255,0.1)",series:{color:"#7798BF",lineColor:"#A6C7ED"},xAxis:{gridLineColor:"#505053"}},scrollbar:{barBackgroundColor:"#808083",barBorderColor:"#808083",buttonArrowColor:"#CCC",buttonBackgroundColor:"#606063",buttonBorderColor:"#606063",rifleColor:"#FFF",trackBackgroundColor:"#404043",trackBorderColor:"#404043"},legendBackgroundColor:"rgba(0, 0, 0, 0.5)",background2:"#505053",dataLabelsColor:"#B0B0B3",textColor:"#C0C0C0",contrastTextColor:"#F0F0F3",maskColor:"rgba(255,255,255,0.3)"},Highcharts.setOptions(Highcharts.theme),Profile={platform:"",name:""},Profile.init=function(n,t){this.platform=n,this.name=t},Profile.update=function(){return $("#profile-update").html('<i class="fa fa-cog fa-spin"></i> Updating Stats'),$("#profile-update").addClass("active"),$.ajax({url:"/destiny/player/update/"+this.platform+"/"+this.name+"?page=ajax",type:"GET"}).success(function(n){var t=n.Result;$("#profile-update").text("Update Stats"),$("#profile-update").removeClass("active").attr("disabled","disabled"),t=="Success"?window.location.href="/destiny/overview/"+Profile.platform+"/"+Profile.name+"?refresh=1":$(".page-main").prepend('<div class="alert alert-danger">'+n.error+"</div>")})},$(function(){if(localStorage!==undefined){var t="compare-players",u=$("#compare-box").data("platform"),n=$("#compare-box").data("name");i();$("#compare-box").on("click",".compare-toggle",function(){var f=r();f.filter(function(t){return t.name==n}).length==0?(f.push({platform:u,name:n}),localStorage.setItem(t,JSON.stringify(f)),i()):(f=f.filter(function(t){return t.name!=n}),localStorage.setItem(t,JSON.stringify(f)),i()),ga("send","event","Compare Toggle",{page:"/profile"})});function i(){$("#compare-box").empty();var t=r(),i=t.filter(function(t){return t.name==n}).length>0;i?$("#compare-box").html('<div id="compare" class="btn-group"><a href="javascript:void(0);" class="btn btn-primary compare-toggle waggle"><i class="ion-arrow-swap"></i></a><a id="do-compare" href="/compare" class="btn btn-default">Compare!</a></div>'):$("#compare-box").html('<div id="compare" class="btn-group"><a href="javascript:void(0);" class="btn btn-default compare-toggle"><i class="ion-arrow-swap"></i></a></div>')}function r(){var n=localStorage.getItem(t)||"";return n!=""?JSON.parse(n):[]}}}),function e(n,t,i){function u(r,o){var h,c,s;if(!t[r]){if(!n[r]){if(h=typeof require=="function"&&require,!o&&h)return h(r,!0);if(f)return f(r,!0);c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c;}s=t[r]={exports:{}},n[r][0].call(s.exports,function(t){var i=n[r][1][t];return u(i?i:t)},s,s.exports,e,n,t,i)}return t[r].exports}for(var f=typeof require=="function"&&require,r=0;r<i.length;r++)u(i[r]);return u}({1:[function(n,t){var r,u;r||(r={map:function(n,t){var i={};return t?n.map(function(n,r){return i.index=r,t.call(i,n)}):n.slice()},naturalOrder:function(n,t){return n<t?-1:n>t?1:0},sum:function(n,t){var i={};return n.reduce(t?function(n,r,u){return i.index=u,n+t.call(i,r)}:function(n,t){return n+t},0)},max:function(n,t){return Math.max.apply(null,t?r.map(n,t):n)}}),u=function(){function i(n,i,r){return(n<<2*t)+(i<<t)+r}function u(n){function r(){t.sort(n),i=!0}var t=[],i=!1;return{push:function(n){t.push(n),i=!1},peek:function(n){return i||r(),n===undefined&&(n=t.length-1),t[n]},pop:function(){return i||r(),t.pop()},size:function(){return t.length},map:function(n){return t.map(n)},debug:function(){return i||r(),t}}}function f(n,t,i,r,u,f,e){var o=this;o.r1=n,o.r2=t,o.g1=i,o.g2=r,o.b1=u,o.b2=f,o.histo=e}function o(){this.vboxes=new u(function(n,t){return r.naturalOrder(n.vbox.count()*n.vbox.volume(),t.vbox.count()*t.vbox.volume())})}function h(r){var h=1<<3*t,u=new Array(h),f,e,o,s;return r.forEach(function(t){e=t[0]>>n,o=t[1]>>n,s=t[2]>>n,f=i(e,o,s),u[f]=(u[f]||0)+1}),u}function c(t,i){var o=1e6,s=0,h=1e6,c=0,l=1e6,a=0,r,u,e;return t.forEach(function(t){r=t[0]>>n,u=t[1]>>n,e=t[2]>>n,r<o?o=r:r>s&&(s=r),u<h?h=u:u>c&&(c=u),e<l?l=e:e>a&&(a=e)}),new f(o,s,h,c,l,a,i)}function l(n,t){function p(n){var f=n+"1",r=n+"2",o,c,e,l,i,a=0;for(u=t[f];u<=t[r];u++)if(h[u]>s/2){for(e=t.copy(),l=t.copy(),o=u-t[f],c=t[r]-u,i=o<=c?Math.min(t[r]-1,~~(u+c/2)):Math.max(t[f],~~(u-1-o/2));!h[i];)i++;for(a=y[i];!a&&h[i-1];)a=y[--i];return e[r]=i,l[f]=e[r]+1,[e,l]}}if(t.count()){var a=t.r2-t.r1+1,v=t.g2-t.g1+1,w=t.b2-t.b1+1,l=r.max([a,v,w]);if(t.count()==1)return[t.copy()];var s=0,h=[],y=[],u,f,e,o,c;if(l==a)for(u=t.r1;u<=t.r2;u++){for(o=0,f=t.g1;f<=t.g2;f++)for(e=t.b1;e<=t.b2;e++)c=i(u,f,e),o+=n[c]||0;s+=o,h[u]=s}else if(l==v)for(u=t.g1;u<=t.g2;u++){for(o=0,f=t.r1;f<=t.r2;f++)for(e=t.b1;e<=t.b2;e++)c=i(f,u,e),o+=n[c]||0;s+=o,h[u]=s}else for(u=t.b1;u<=t.b2;u++){for(o=0,f=t.r1;f<=t.r2;f++)for(e=t.g1;e<=t.g2;e++)c=i(f,e,u),o+=n[c]||0;s+=o,h[u]=s}return h.forEach(function(n,t){y[t]=s-n}),l==a?p("r"):l==v?p("g"):p("b")}}function a(n,i){function b(n,t){for(var u=1,r=0,i;r<e;){if(i=n.pop(),!i.count()){n.push(i),r++;continue}var f=l(v,i),o=f[0],s=f[1];if(!o)return;if(n.push(o),s&&(n.push(s),u++),u>=t)return;if(r++>e)return}}var w,a,f,y;if(!n.length||i<2||i>256)return!1;var v=h(n),k=1<<3*t,p=0;for(v.forEach(function(){p++}),p<=i,w=c(n,v),a=new u(function(n,t){return r.naturalOrder(n.count(),t.count())}),a.push(w),b(a,s*i),f=new u(function(n,t){return r.naturalOrder(n.count()*n.volume(),t.count()*t.volume())});a.size();)f.push(a.pop());for(b(f,i-f.size()),y=new o;f.size();)y.push(f.pop());return y}var t=5,n=8-t,e=1e3,s=.75;return f.prototype={volume:function(n){var t=this;return(!t._volume||n)&&(t._volume=(t.r2-t.r1+1)*(t.g2-t.g1+1)*(t.b2-t.b1+1)),t._volume},count:function(n){var t=this,o=t.histo,e,r,u,f;if(!t._count_set||n){for(e=0,r=t.r1;r<=t.r2;r++)for(u=t.g1;u<=t.g2;u++)for(f=t.b1;f<=t.b2;f++)index=i(r,u,f),e+=o[index]||0;t._count=e,t._count_set=!0}return t._count},copy:function(){var n=this;return new f(n.r1,n.r2,n.g1,n.g2,n.b1,n.b2,n.histo)},avg:function(n){var r=this,y=r.histo;if(!r._avg||n){for(var f=0,u=1<<8-t,c=0,l=0,a=0,e,s,h,v,o=r.r1;o<=r.r2;o++)for(s=r.g1;s<=r.g2;s++)for(h=r.b1;h<=r.b2;h++)v=i(o,s,h),e=y[v]||0,f+=e,c+=e*(o+.5)*u,l+=e*(s+.5)*u,a+=e*(h+.5)*u;r._avg=f?[~~(c/f),~~(l/f),~~(a/f)]:[~~(u*(r.r1+r.r2+1)/2),~~(u*(r.g1+r.g2+1)/2),~~(u*(r.b1+r.b2+1)/2)]}return r._avg},contains:function(t){var i=this,r=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,r>=i.r1&&r<=i.r2&&gval>=i.g1&&gval<=i.g2&&bval>=i.b1&&bval<=i.b2}},o.prototype={push:function(n){this.vboxes.push({vbox:n,color:n.avg()})},palette:function(){return this.vboxes.map(function(n){return n.color})},size:function(){return this.vboxes.size()},map:function(n){for(var i=this.vboxes,t=0;t<i.size();t++)if(i.peek(t).vbox.contains(n))return i.peek(t).color;return this.nearest(n)},nearest:function(n){for(var i=this.vboxes,r,u,f,t=0;t<i.size();t++)u=Math.sqrt(Math.pow(n[0]-i.peek(t).color[0],2)+Math.pow(n[1]-i.peek(t).color[1],2)+Math.pow(n[2]-i.peek(t).color[2],2)),(u<r||r===undefined)&&(r=u,f=i.peek(t).color);return f},forcebw:function(){var n=this.vboxes,t,u,i;n.sort(function(n,t){return r.naturalOrder(r.sum(n.color),r.sum(t.color))}),t=n[0].color,t[0]<5&&t[1]<5&&t[2]<5&&(n[0].color=[0,0,0]),u=n.length-1,i=n[u].color,i[0]>251&&i[1]>251&&i[2]>251&&(n[u].color=[255,255,255])}},{quantize:a}}(),t.exports=u.quantize},{}],2:[function(n){(function(){var i,t,r,u=function(n,t){return function(){return n.apply(t,arguments)}},f=[].slice;window.Swatch=t=function(){function n(n,t){this.rgb=n,this.population=t}return n.prototype.hsl=void 0,n.prototype.rgb=void 0,n.prototype.population=1,n.yiq=0,n.prototype.getHsl=function(){return this.hsl?this.hsl:this.hsl=r.rgbToHsl(this.rgb[0],this.rgb[1],this.rgb[2])},n.prototype.getPopulation=function(){return this.population},n.prototype.getRgb=function(){return this.rgb},n.prototype.getHex=function(){return"#"+(16777216+(this.rgb[0]<<16)+(this.rgb[1]<<8)+this.rgb[2]).toString(16).slice(1,7)},n.prototype.getTitleTextColor=function(){return this._ensureTextColors(),this.yiq<200?"#fff":"#000"},n.prototype.getBodyTextColor=function(){return this._ensureTextColors(),this.yiq<150?"#fff":"#000"},n.prototype._ensureTextColors=function(){if(!this.yiq)return this.yiq=(this.rgb[0]*299+this.rgb[1]*587+this.rgb[2]*114)/1e3},n}(),window.Vibrant=r=function(){function r(n,r,f){this.swatches=u(this.swatches,this);var y,c,l,p,a,e,h,w,o,b,s,v;for(typeof r=="undefined"&&(r=64),typeof f=="undefined"&&(f=5),h=new i(n),w=h.getImageData(),s=w.data,b=h.getPixelCount(),c=[],e=0;e<b;)o=e*4,v=s[o+0],a=s[o+1],l=s[o+2],y=s[o+3],y>=125&&(v>250&&a>250&&l>250||c.push([v,a,l])),e=e+f;p=this.quantize(c,r),this._swatches=p.vboxes.map(function(){return function(n){return new t(n.color,n.vbox.count())}}(this)),this.maxPopulation=this.findMaxPopulation,this.generateVarationColors(),this.generateEmptySwatches(),h.removeCanvas()}return r.prototype.quantize=n("quantize"),r.prototype._swatches=[],r.prototype.TARGET_DARK_LUMA=.26,r.prototype.MAX_DARK_LUMA=.45,r.prototype.MIN_LIGHT_LUMA=.55,r.prototype.TARGET_LIGHT_LUMA=.74,r.prototype.MIN_NORMAL_LUMA=.3,r.prototype.TARGET_NORMAL_LUMA=.5,r.prototype.MAX_NORMAL_LUMA=.7,r.prototype.TARGET_MUTED_SATURATION=.3,r.prototype.MAX_MUTED_SATURATION=.4,r.prototype.TARGET_VIBRANT_SATURATION=1,r.prototype.MIN_VIBRANT_SATURATION=.35,r.prototype.WEIGHT_SATURATION=3,r.prototype.WEIGHT_LUMA=6,r.prototype.WEIGHT_POPULATION=1,r.prototype.VibrantSwatch=void 0,r.prototype.MutedSwatch=void 0,r.prototype.DarkVibrantSwatch=void 0,r.prototype.DarkMutedSwatch=void 0,r.prototype.LightVibrantSwatch=void 0,r.prototype.LightMutedSwatch=void 0,r.prototype.HighestPopulation=0,r.prototype.generateVarationColors=function(){return this.VibrantSwatch=this.findColorVariation(this.TARGET_NORMAL_LUMA,this.MIN_NORMAL_LUMA,this.MAX_NORMAL_LUMA,this.TARGET_VIBRANT_SATURATION,this.MIN_VIBRANT_SATURATION,1),this.LightVibrantSwatch=this.findColorVariation(this.TARGET_LIGHT_LUMA,this.MIN_LIGHT_LUMA,1,this.TARGET_VIBRANT_SATURATION,this.MIN_VIBRANT_SATURATION,1),this.DarkVibrantSwatch=this.findColorVariation(this.TARGET_DARK_LUMA,0,this.MAX_DARK_LUMA,this.TARGET_VIBRANT_SATURATION,this.MIN_VIBRANT_SATURATION,1),this.MutedSwatch=this.findColorVariation(this.TARGET_NORMAL_LUMA,this.MIN_NORMAL_LUMA,this.MAX_NORMAL_LUMA,this.TARGET_MUTED_SATURATION,0,this.MAX_MUTED_SATURATION),this.LightMutedSwatch=this.findColorVariation(this.TARGET_LIGHT_LUMA,this.MIN_LIGHT_LUMA,1,this.TARGET_MUTED_SATURATION,0,this.MAX_MUTED_SATURATION),this.DarkMutedSwatch=this.findColorVariation(this.TARGET_DARK_LUMA,0,this.MAX_DARK_LUMA,this.TARGET_MUTED_SATURATION,0,this.MAX_MUTED_SATURATION)},r.prototype.generateEmptySwatches=function(){var n;return this.VibrantSwatch===void 0&&this.DarkVibrantSwatch!==void 0&&(n=this.DarkVibrantSwatch.getHsl(),n[2]=this.TARGET_NORMAL_LUMA,this.VibrantSwatch=new t(r.hslToRgb(n[0],n[1],n[2]),0)),this.DarkVibrantSwatch===void 0&&this.VibrantSwatch!==void 0?(n=this.VibrantSwatch.getHsl(),n[2]=this.TARGET_DARK_LUMA,this.DarkVibrantSwatch=new t(r.hslToRgb(n[0],n[1],n[2]),0)):void 0},r.prototype.findMaxPopulation=function(){for(var u,t=0,i=this._swatches,n=0,r=i.length;n<r;n++)u=i[n],t=Math.max(t,u.getPopulation());return t},r.prototype.findColorVariation=function(n,t,i,r,u,f){for(var s,c,e,v,h=void 0,l=0,a=this._swatches,o=0,y=a.length;o<y;o++)e=a[o],c=e.getHsl()[1],s=e.getHsl()[2],c>=u&&c<=f&&s>=t&&s<=i&&!this.isAlreadySelected(e)&&(v=this.createComparisonValue(c,r,s,n,e.getPopulation(),this.HighestPopulation),(h===void 0||v>l)&&(h=e,l=v));return h},r.prototype.createComparisonValue=function(n,t,i,r,u,f){return this.weightedMean(this.invertDiff(n,t),this.WEIGHT_SATURATION,this.invertDiff(i,r),this.WEIGHT_LUMA,u/f,this.WEIGHT_POPULATION)},r.prototype.invertDiff=function(n,t){return 1-Math.abs(n-t)},r.prototype.weightedMean=function(){for(var e,u,t=1<=arguments.length?f.call(arguments,0):[],i=0,r=0,n=0;n<t.length;)e=t[n],u=t[n+1],i+=e*u,r+=u,n+=2;return i/r},r.prototype.swatches=function(){return{Vibrant:this.VibrantSwatch,Muted:this.MutedSwatch,DarkVibrant:this.DarkVibrantSwatch,DarkMuted:this.DarkMutedSwatch,LightVibrant:this.LightVibrantSwatch,LightMuted:this.LightMuted}},r.prototype.isAlreadySelected=function(n){return this.VibrantSwatch===n||this.DarkVibrantSwatch===n||this.LightVibrantSwatch===n||this.MutedSwatch===n||this.DarkMutedSwatch===n||this.LightMutedSwatch===n},r.rgbToHsl=function(n,t,i){var f,r,s,u,e,o;if(n/=255,t/=255,i/=255,u=Math.max(n,t,i),e=Math.min(n,t,i),r=void 0,o=void 0,s=(u+e)/2,u===e)r=o=0;else{f=u-e,o=s>.5?f/(2-u-e):f/(u+e);switch(u){case n:r=(t-i)/f+(t<i?6:0);break;case t:r=(i-n)/f+2;break;case i:r=(n-t)/f+4}r/=6}return[r,o,s]},r.hslToRgb=function(n,t,i){var u,f,e,o,r,s;return s=void 0,f=void 0,u=void 0,e=function(n,t,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?n+(t-n)*6*i:i<1/2?t:i<2/3?n+(t-n)*(2/3-i)*6:n},t===0?s=f=u=i:(r=i<.5?i*(1+t):i+t-i*t,o=2*i-r,s=e(o,r,n+1/3),f=e(o,r,n),u=e(o,r,n-1/3)),[s*255,f*255,u*255]},r}(),window.CanvasImage=i=function(){function n(n){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),document.body.appendChild(this.canvas),this.width=this.canvas.width=n.width,this.height=this.canvas.height=n.height,this.context.drawImage(n,0,0,this.width,this.height)}return n.prototype.clear=function(){return this.context.clearRect(0,0,this.width,this.height)},n.prototype.update=function(n){return this.context.putImageData(n,0,0)},n.prototype.getPixelCount=function(){return this.width*this.height},n.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},n.prototype.removeCanvas=function(){return this.canvas.parentNode.removeChild(this.canvas)},n}()}).call(this)},{quantize:1}]},{},[2]),trnDeltas={},trnDeltas.process=function(n,t,i,r){var o=r,h=localStorage.getItem(t),u=h!=null?JSON.parse(h):[],s=u.map(function(n){return n.uniqueid}).indexOf(i),c=s>=0?u[s]:null,f,l,e;c==null?(f={},f.data=JSON.parse(o),f.uniqueid=i,u.push(f),u.length>10&&u.shift(),localStorage.setItem(t,JSON.stringify(u))):(l=JSON.parse(o),e=!1,c.data.forEach(function(t){var r=l.filter(function(n){return n.Field==t.Field}),i;r.length>0&&(i=r[0],parseFloat(i.Value)>parseFloat(t.Value)?($(n+' div[data-stat="'+i.Field+'"]').append('<i class="ion ion-android-arrow-dropdown delta-down"></i>'),e=!0):parseFloat(i.Value)<parseFloat(t.Value)&&($(n+' div[data-stat="'+i.Field+'"]').append('<i class="ion ion-android-arrow-dropup delta-up"></i>'),e=!0))}),e&&(u[s].data=JSON.parse(o),localStorage.setItem(t,JSON.stringify(u))))},trnToolTips={modal:'<div class="modal" id="helpmodal" tabindex="-1" role="dialog" style="margin-top: 100px;"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title"></h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div>',templates:[]},trnToolTips.showHelpTemplate=function(n){trnToolTips.templates[n]&&trnToolTips.showHelp(trnToolTips.templates[n].title,trnToolTips.templates[n].desc)},trnToolTips.showHelp=function(n,t){$("#helpmodal").length===0&&$("body").append(trnToolTips.modal),$("#helpmodal .modal-title").text(n),$("#helpmodal .modal-body").html(t),$("#helpmodal").modal("show")},trnToolTips.addTemplate=function(n,t,i){trnToolTips.templates[n]={title:t,desc:i}}